xf86-video-intel: Branch 'dri2-swapbuffers' - 138 commits - configure.ac Makefile.am man/intel.man NEWS README RELEASING src/bios_reader/bios_reader.c src/brw_structs.h src/common.h src/drmmode_display.c src/exa_sf.g4a src/exa_sf.g4b src/exa_sf_mask.g4a src/exa_sf_mask.g4b src/exa_wm_affine.g4i src/exa_wm_ca.g4a src/exa_wm_ca.g4b src/exa_wm_ca_srcalpha.g4a src/exa_wm_ca_srcalpha.g4b src/exa_wm.g4i src/exa_wm_mask_affine.g4a src/exa_wm_mask_affine.g4b src/exa_wm_mask_projective.g4a src/exa_wm_mask_projective.g4b src/exa_wm_mask_sample_a.g4a src/exa_wm_mask_sample_a.g4b src/exa_wm_mask_sample_argb.g4a src/exa_wm_mask_sample_argb.g4b src/exa_wm_noca.g4a src/exa_wm_noca.g4b src/exa_wm_nomask.g4a src/exa_wm_projective.g4i src/exa_wm_src_affine.g4a src/exa_wm_src_affine.g4b src/exa_wm_src_projective.g4a src/exa_wm_src_projective.g4b src/exa_wm_src_sample_a.g4a src/exa_wm_src_sample_a.g4b src/exa_wm_src_sample_argb.g4a src/exa_wm_src_sample_argb.g4b src/exa_wm_src_sample_planar.g4a src/exa_wm_src_sample_planar.g4b src/exa_wm_write.g4a src/exa_wm_write.g4b src/exa_wm_xy.g4a src/exa_wm_xy.g4b src/exa_wm_yuv_rgb.g4a src/exa_wm_yuv_rgb.g4b src/i810_driver.c src/i810.h src/i810_reg.h src/i830_accel.c src/i830_batchbuffer.c src/i830_batchbuffer.h src/i830_bios.c src/i830_bios.h src/i830_crt.c src/i830_cursor.c src/i830_debug.c src/i830_display.c src/i830_dri.c src/i830_dri.h src/i830_driver.c src/i830_dvo.c src/i830_exa.c src/i830.h src/i830_hdmi.c src/i830_hwmc.c src/i830_hwmc.h src/i830_lvds.c src/i830_memory.c src/i830_quirks.c src/i830_render.c src/i830_sdvo.c src/i830_sdvo_regs.h src/i830_tv.c src/i830_uxa.c src/i830_video.c src/i915_hwmc.c src/i915_hwmc.h src/i915_render.c src/i915_video.c src/i965_hwmc.c src/i965_hwmc.h src/i965_render.c src/i965_video.c src/Makefile.am src/packed_yuv_sf.g4a src/packed_yuv_sf.g4b src/packed_yuv_wm.g4a src/packed_yuv_wm.g4b src/reg_dumper/gtt.c src/render_program/exa_sf.g4a src/render_program/exa_sf.g4b src/render_program/exa_sf.g4b.gen5 src/render_program/exa_sf_mask.g4a src/render_program/exa_sf_mask.g4b src/render_program/exa_sf_mask.g4b.gen5 src/render_program/exa_wm_affine.g4i src/render_program/exa_wm_ca.g4a src/render_program/exa_wm_ca.g4b src/render_program/exa_wm_ca.g4b.gen5 src/render_program/exa_wm_ca_srcalpha.g4a src/render_program/exa_wm_ca_srcalpha.g4b src/render_program/exa_wm_ca_srcalpha.g4b.gen5 src/render_program/exa_wm.g4i src/render_program/exa_wm_mask_affine.g4a src/render_program/exa_wm_mask_affine.g4b src/render_program/exa_wm_mask_affine.g4b.gen5 src/render_program/exa_wm_mask_projective.g4a src/render_program/exa_wm_mask_projective.g4b src/render_program/exa_wm_mask_projective.g4b.gen5 src/render_program/exa_wm_mask_sample_a.g4a src/render_program/exa_wm_mask_sample_a.g4b src/render_program/exa_wm_mask_sample_a.g4b.gen5 src/render_program/exa_wm_mask_sample_argb.g4a src/render_program/exa_wm_mask_sample_argb.g4b src/render_program/exa_wm_mask_sample_argb.g4b.gen5 src/render_program/exa_wm_noca.g4a src/render_program/exa_wm_noca.g4b src/render_program/exa_wm_noca.g4b.gen5 src/render_program/exa_wm_projective.g4i src/render_program/exa_wm_src_affine.g4a src/render_program/exa_wm_src_affine.g4b src/render_program/exa_wm_src_affine.g4b.gen5 src/render_program/exa_wm_src_projective.g4a src/render_program/exa_wm_src_projective.g4b src/render_program/exa_wm_src_projective.g4b.gen5 src/render_program/exa_wm_src_sample_a.g4a src/render_program/exa_wm_src_sample_a.g4b src/render_program/exa_wm_src_sample_a.g4b.gen5 src/render_program/exa_wm_src_sample_argb.g4a src/render_program/exa_wm_src_sample_argb.g4b src/render_program/exa_wm_src_sample_argb.g4b.gen5 src/render_program/exa_wm_src_sample_planar.g4a src/render_program/exa_wm_src_sample_planar.g4b src/render_program/exa_wm_src_sample_planar.g4b.gen5 src/render_program/exa_wm_write.g4a src/render_program/exa_wm_write.g4b src/render_program/exa_wm_write.g4b.gen5 src/render_program/exa_wm_xy.g4a src/render_program/exa_wm_xy.g4b src/render_program/exa_wm_xy.g4b.gen5 src/render_program/exa_wm_yuv_rgb.g4a src/render_program/exa_wm_yuv_rgb.g4b src/render_program/exa_wm_yuv_rgb.g4b.gen5 src/render_program/Makefile.am src/xvmc/addidct.g4i src/xvmc/backward.g4b src/xvmc/block_clear.g4i src/xvmc/dri2.c src/xvmc/dri2.h src/xvmc/dual_prime.g4a src/xvmc/dual_prime.g4b src/xvmc/dual_prime_igd.g4a src/xvmc/dual_prime_igd.g4b src/xvmc/f_b.g4b src/xvmc/field_backward.g4a src/xvmc/field_backward.g4b src/xvmc/field_backward_igd.g4a src/xvmc/field_backward_igd.g4b src/xvmc/field_f_b.g4a src/xvmc/field_f_b.g4b src/xvmc/field_f_b_igd.g4a src/xvmc/field_f_b_igd.g4b src/xvmc/field_forward.g4a src/xvmc/field_forward.g4b src/xvmc/field_forward_igd.g4a src/xvmc/field_forward_igd.g4b src/xvmc/forward.g4b src/xvmc/frame_backward.g4a src/xvmc/frame_backward.g4b src/xvmc/frame_backward_igd.g4a src/xvmc/frame_backward_igd.g4b src/xvmc/frame_f_b.g4a src/xvmc/frame_f_b.g4b src/xvmc/frame_f_b_igd.g4a src/xvmc/frame_f_b_igd.g4b src/xvmc/frame_forward.g4a src/xvmc/frame_forward.g4b src/xvmc/frame_forward_igd.g4a src/xvmc/frame_forward_igd.g4b src/xvmc/I810XvMC.h src/xvmc/i915_xvmc.c src/xvmc/i915_xvmc.h src/xvmc/i965_xvmc.c src/xvmc/intel_batchbuffer.c src/xvmc/intel_batchbuffer.h src/xvmc/intel_xvmc.c src/xvmc/intel_xvmc.h src/xvmc/ipicture.g4a src/xvmc/ipicture.g4b src/xvmc/Makefile.am src/xvmc/motion_field_uv.g4i src/xvmc/motion_field_uv_igd.g4i src/xvmc/motion_field_y.g4i src/xvmc/motion_field_y_igd.g4i src/xvmc/motion_frame_uv.g4i src/xvmc/motion_frame_uv_igd.g4i src/xvmc/motion_frame_y.g4i src/xvmc/motion_frame_y_igd.g4i src/xvmc/null.g4a src/xvmc/null.g4b src/xvmc/read_field_x0y0_uv.g4i src/xvmc/read_field_x0y0_uv_igd.g4i src/xvmc/read_field_x0y0_y.g4i src/xvmc/read_field_x0y0_y_igd.g4i src/xvmc/read_field_x0y1_uv.g4i src/xvmc/read_field_x0y1_uv_igd.g4i src/xvmc/read_field_x0y1_y.g4i src/xvmc/read_field_x0y1_y_igd.g4i src/xvmc/read_field_x1y0_uv.g4i src/xvmc/read_field_x1y0_uv_igd.g4i src/xvmc/read_field_x1y0_y.g4i src/xvmc/read_field_x1y0_y_igd.g4i src/xvmc/read_field_x1y1_uv.g4i src/xvmc/read_field_x1y1_uv_igd.g4i src/xvmc/read_field_x1y1_y.g4i src/xvmc/read_field_x1y1_y_igd.g4i src/xvmc/read_frame_x0y0_uv.g4i src/xvmc/read_frame_x0y0_uv_igd.g4i src/xvmc/read_frame_x0y0_y.g4i src/xvmc/read_frame_x0y0_y_igd.g4i src/xvmc/read_frame_x0y1_uv.g4i src/xvmc/read_frame_x0y1_uv_igd.g4i src/xvmc/read_frame_x0y1_y.g4i src/xvmc/read_frame_x0y1_y_igd.g4i src/xvmc/read_frame_x1y0_uv.g4i src/xvmc/read_frame_x1y0_uv_igd.g4i src/xvmc/read_frame_x1y0_y.g4i src/xvmc/read_frame_x1y0_y_igd.g4i src/xvmc/read_frame_x1y1_uv.g4i src/xvmc/read_frame_x1y1_uv_igd.g4i src/xvmc/read_frame_x1y1_y.g4i src/xvmc/read_frame_x1y1_y_igd.g4i src/xvmc/shader src/xvmc/xf86dri.c src/xvmc/xf86dri.h src/xvmc/xf86dristr.h src/xvmc/xvmc_vld.c src/xvmc/xvmc_vld.h uxa/uxa-render.c

Kristian Høgsberg krh at kemper.freedesktop.org
Fri Jul 17 11:43:56 PDT 2009


Rebased ref, commits from common ancestor:
commit e152fdcf1aba5eff9d38788b6660366bfdd46c4a
Author: Jesse Barnes <jbarnes at virtuousgeek.org>
Date:   Fri May 1 14:52:26 2009 -0700

    Add support for DRI2 SwapBuffers request
    
    Support the new DRI2 SwapBuffers request with a KMS-specific page flip ioctl.
    Doesn't help prevent tearing from CopyRegion requests, but full buffer swaps
    look nice.
    
    There's still an open issue with buffer resize in here somewhere; maybe
    pI830->front_buffer isn't getting fully fixed up at swap time?

diff --git a/src/drmmode_display.c b/src/drmmode_display.c
index df10fb5..03b494d 100644
--- a/src/drmmode_display.c
+++ b/src/drmmode_display.c
@@ -30,6 +30,7 @@
 #endif
 
 #include <errno.h>
+#include <poll.h>
 
 #include "xorgVersion.h"
 
@@ -346,6 +347,7 @@ static PixmapPtr
 drmmode_crtc_shadow_create(xf86CrtcPtr crtc, void *data, int width, int height)
 {
 	ScrnInfoPtr pScrn = crtc->scrn;
+	I830Ptr     pI830 = I830PTR(pScrn);
 	drmmode_crtc_private_ptr drmmode_crtc = crtc->driver_private;
 	drmmode_ptr drmmode = drmmode_crtc->drmmode;
 	unsigned long rotate_pitch;
@@ -378,12 +380,16 @@ drmmode_crtc_shadow_create(xf86CrtcPtr crtc, void *data, int width, int height)
 	if (drmmode_crtc->rotate_bo)
 		i830_set_pixmap_bo(rotate_pixmap, drmmode_crtc->rotate_bo);
 
+	pI830->shadow_present = TRUE;
+
 	return rotate_pixmap;
 }
 
 static void
 drmmode_crtc_shadow_destroy(xf86CrtcPtr crtc, PixmapPtr rotate_pixmap, void *data)
 {
+	ScrnInfoPtr pScrn = crtc->scrn;
+	I830Ptr     pI830 = I830PTR(pScrn);
 	drmmode_crtc_private_ptr drmmode_crtc = crtc->driver_private;
 	drmmode_ptr drmmode = drmmode_crtc->drmmode;
 
@@ -401,6 +407,7 @@ drmmode_crtc_shadow_destroy(xf86CrtcPtr crtc, PixmapPtr rotate_pixmap, void *dat
 		dri_bo_unreference(drmmode_crtc->rotate_bo);
 		drmmode_crtc->rotate_bo = NULL;
 	}
+	pI830->shadow_present = FALSE;
 }
 
 static void
@@ -1089,6 +1096,88 @@ drmmode_xf86crtc_resize (ScrnInfoPtr scrn, int width, int height)
 	return FALSE;
 }
 
+Bool
+drmmode_do_pageflip(DrawablePtr pDraw, dri_bo *new_front, dri_bo *old_front)
+{
+    ScreenPtr pScreen = pDraw->pScreen;
+    ScrnInfoPtr pScrn = xf86Screens[pScreen->myNum];
+    I830Ptr pI830 = I830PTR(pScrn);
+    xf86CrtcConfigPtr config = XF86_CRTC_CONFIG_PTR(pScrn);
+    drmmode_crtc_private_ptr drmmode_crtc = config->crtc[0]->driver_private;
+    drmmode_ptr drmmode = drmmode_crtc->drmmode;
+    unsigned int pitch = pScrn->displayWidth * pI830->cpp;
+    int i, old_fb_id;
+    unsigned int crtc_id;
+    struct pollfd drmpoll;
+    drmEventContext handler = { .page_flip_handler = NULL };
+
+    /*
+     * Create a new handle for the back buffer
+     */
+    old_fb_id = drmmode->fb_id;
+    if (drmModeAddFB(drmmode->fd, pScrn->virtualX, pScrn->virtualY,
+		     pScrn->depth, pScrn->bitsPerPixel, pitch,
+		     new_front->handle, &drmmode->fb_id))
+	    goto error_out;
+
+    /*
+     * Queue flips on all enabled CRTCs
+     * Note that if/when we get per-CRTC buffers, we'll have to update this.
+     * Right now it assumes a single shared fb across all CRTCs, with the
+     * kernel fixing up the offset of each CRTC as necessary.
+     *
+     * Also, flips queued on disabled or incorrectly configured displays
+     * may never complete; this is a configuration error.
+     */
+    for (i = 0; i < config->num_crtc; i++) {
+	    xf86CrtcPtr crtc = config->crtc[i];
+
+	    if (!crtc->enabled)
+		    continue;
+
+	    drmmode_crtc = crtc->driver_private;
+	    crtc_id = drmmode_crtc->mode_crtc->crtc_id;
+	    if (drmModePageFlip(drmmode->fd, crtc_id, drmmode->fb_id, NULL)) {
+		    xf86DrvMsg(pScrn->scrnIndex, X_WARNING,
+			       "flip queue failed: %s\n", strerror(errno));
+		    goto error_undo;
+	    }
+    }
+
+retry:
+    drmpoll.fd = drmmode->fd;
+    drmpoll.events = POLLIN;
+    if (poll(&drmpoll, 1, -1) < 0) {
+	    if (errno == EINTR)
+		    goto retry;
+	    xf86DrvMsg(pScrn->scrnIndex, X_WARNING, "poll failed: %s\n",
+		       strerror(errno));
+	    goto error_undo;
+    }
+
+    drmHandleEvent(drmmode->fd, &handler);
+
+    dri_bo_pin(new_front, 0);
+    dri_bo_unpin(new_front);
+
+    pScrn->fbOffset = new_front->offset;
+    pI830->front_buffer->bo = new_front;
+    pI830->front_buffer->offset = new_front->offset;
+
+    drmModeRmFB(drmmode->fd, old_fb_id);
+
+    return TRUE;
+
+error_undo:
+    drmModeRmFB(drmmode->fd, drmmode->fb_id);
+    drmmode->fb_id = old_fb_id;
+
+error_out:
+    xf86DrvMsg(pScrn->scrnIndex, X_WARNING, "Page flip failed: %s\n",
+	       strerror(errno));
+    return FALSE;
+}
+
 static const xf86CrtcConfigFuncsRec drmmode_xf86crtc_config_funcs = {
 	drmmode_xf86crtc_resize
 };
@@ -1096,8 +1185,10 @@ static const xf86CrtcConfigFuncsRec drmmode_xf86crtc_config_funcs = {
 Bool drmmode_pre_init(ScrnInfoPtr pScrn, int fd, int cpp)
 {
 	xf86CrtcConfigPtr   xf86_config;
+	I830Ptr pI830 = I830PTR(pScrn);
 	drmmode_ptr drmmode;
-	int i;
+	unsigned int i, bad_crtc = 0;
+	int ret;
 
 	drmmode = xnfalloc(sizeof *drmmode);
 	drmmode->fd = fd;
@@ -1124,6 +1215,14 @@ Bool drmmode_pre_init(ScrnInfoPtr pScrn, int fd, int cpp)
 
 	xf86InitialConfiguration(pScrn, TRUE);
 
+	/* Check for swapbuffers support */
+	ret = drmModePageFlip(drmmode->fd, bad_crtc, 1, NULL);
+	if (ret < 0 && errno == ENOENT) { /* bad CRTC or FB number */
+		xf86DrvMsg(pScrn->scrnIndex, X_INFO,
+			   "Kernel page flipping support detected, enabling\n");
+		pI830->use_swap_buffers = TRUE;
+	}
+
 	return TRUE;
 }
 
diff --git a/src/i830.h b/src/i830.h
index f7ca687..b4f5d7a 100644
--- a/src/i830.h
+++ b/src/i830.h
@@ -65,6 +65,7 @@ SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 #include "sarea.h"
 #define _XF86DRI_SERVER_
 #include "dri.h"
+#include "dri2.h"
 #include "GL/glxint.h"
 #include "i830_dri.h"
 #include "intel_bufmgr.h"
@@ -395,6 +396,7 @@ typedef struct _I830Rec {
 #endif
 
    XF86ModReqInfo shadowReq; /* to test for later libshadow */
+   Bool shadow_present;
    Rotation rotation;
    void (*PointerMoved)(int, int, int);
    CreateScreenResourcesProcPtr    CreateScreenResources;
@@ -490,6 +492,8 @@ typedef struct _I830Rec {
    int drmSubFD;
    char deviceName[64];
 
+   Bool use_swap_buffers;
+
    /* Broken-out options. */
    OptionInfoPtr Options;
 
@@ -685,6 +689,8 @@ void I830DRI2CloseScreen(ScreenPtr pScreen);
 extern Bool drmmode_pre_init(ScrnInfoPtr pScrn, int fd, int cpp);
 extern int drmmode_get_pipe_from_crtc_id(drm_intel_bufmgr *bufmgr, xf86CrtcPtr crtc);
 extern int drmmode_output_dpms_status(xf86OutputPtr output);
+extern Bool drmmode_do_pageflip(DrawablePtr pDraw, dri_bo *new_front,
+				dri_bo *old_front);
 
 extern Bool i830_crtc_on(xf86CrtcPtr crtc);
 extern int i830_crtc_to_pipe(xf86CrtcPtr crtc);
diff --git a/src/i830_dri.c b/src/i830_dri.c
index 40d11e4..0f38d09 100644
--- a/src/i830_dri.c
+++ b/src/i830_dri.c
@@ -45,6 +45,8 @@ USE OR OTHER DEALINGS IN THE SOFTWARE.
 #include <errno.h>
 #include <unistd.h>
 #include <fcntl.h>
+#include <sys/time.h>
+#include <time.h>
 
 #include "xf86.h"
 #include "xf86_OSproc.h"
@@ -73,11 +75,6 @@ USE OR OTHER DEALINGS IN THE SOFTWARE.
 extern XF86ModuleData dri2ModuleData;
 #endif
 
-typedef struct {
-    PixmapPtr pPixmap;
-    unsigned int attachment;
-} I830DRI2BufferPrivateRec, *I830DRI2BufferPrivatePtr;
-
 #ifndef USE_DRI2_1_1_0
 static DRI2BufferPtr
 I830DRI2CreateBuffers(DrawablePtr pDraw, unsigned int *attachments, int count)
@@ -359,6 +356,70 @@ I830DRI2CopyRegion(DrawablePtr pDraw, RegionPtr pRegion,
 
 }
 
+#if DRI2INFOREC_VERSION >= 4
+/* Check various flip constraints (drawable parameters vs screen params) */
+static Bool
+i830_flip_ok(DrawablePtr pDraw)
+{
+    ScreenPtr pScreen = pDraw->pScreen;
+    ScrnInfoPtr pScrn = xf86Screens[pScreen->myNum];
+    I830Ptr pI830 = I830PTR(pScrn);
+
+    if (pI830->shadow_present)
+	return FALSE;
+    if (pDraw->width != pScrn->virtualX)
+	return FALSE;
+    if (pDraw->height != pScrn->virtualY)
+	return FALSE;
+    if (pDraw->depth != pScrn->depth)
+	return FALSE;
+
+    return TRUE;
+}
+
+/*
+ * DRI2SwapBuffers should try to do a buffer swap if possible, however:
+ *   - if we're swapping buffers smaller than the screen, we have to blit
+ *   - if the back buffer doesn't match the screen depth, we have to blit
+ *   - otherwise we try to swap, and return to the caller the new front
+ *     and back buffers
+ */
+static Bool
+I830DRI2SwapBuffers(DrawablePtr pDraw, DRI2BufferPtr front, DRI2BufferPtr back)
+{
+    ScreenPtr pScreen = pDraw->pScreen;
+    I830DRI2BufferPrivatePtr front_priv, back_priv;
+    dri_bo *tmp_bo;
+    int tmp;
+
+    front_priv = front->driverPrivate;
+    back_priv = back->driverPrivate;
+
+    if (!i830_flip_ok(pDraw))
+	return FALSE;
+
+    /* Swap BO names so DRI works */
+    tmp = front->name;
+    front->name = back->name;
+    back->name = tmp;
+
+    /* Swap pixmap bos */
+    dri_bo_reference(i830_get_pixmap_bo(front_priv->pPixmap));
+
+    tmp_bo = i830_get_pixmap_bo(front_priv->pPixmap);
+    i830_set_pixmap_bo(front_priv->pPixmap,
+		       i830_get_pixmap_bo(back_priv->pPixmap));
+    i830_set_pixmap_bo(back_priv->pPixmap, tmp_bo); /* should be screen */
+
+    if (front_priv->pPixmap != pScreen->GetScreenPixmap(pScreen))
+	FatalError("swapbuffers with bad front\n");
+
+    /* Page flip the full screen buffer */
+    return drmmode_do_pageflip(pDraw, i830_get_pixmap_bo(front_priv->pPixmap),
+			       i830_get_pixmap_bo(back_priv->pPixmap));
+}
+#endif
+
 Bool I830DRI2ScreenInit(ScreenPtr pScreen)
 {
     ScrnInfoPtr pScrn = xf86Screens[pScreen->myNum];
@@ -428,6 +489,13 @@ Bool I830DRI2ScreenInit(ScreenPtr pScreen)
 # endif
 #endif
 
+#if DRI2INFOREC_VERSION >= 4
+    if (pI830->use_swap_buffers) {
+	info.version = 4;
+	info.SwapBuffers = I830DRI2SwapBuffers;
+    }
+#endif
+
     info.CopyRegion = I830DRI2CopyRegion;
 
     return DRI2ScreenInit(pScreen, &info);
diff --git a/src/i830_dri.h b/src/i830_dri.h
index bedbcbe..e35e940 100644
--- a/src/i830_dri.h
+++ b/src/i830_dri.h
@@ -2,6 +2,7 @@
 #ifndef _I830_DRI_H
 #define _I830_DRI_H
 
+#include "xorg-server.h"
 #include "xf86drm.h"
 #include "i830_common.h"
 
@@ -58,4 +59,9 @@ typedef struct {
    int dummy;
 } I830DRIContextRec, *I830DRIContextPtr;
 
+typedef struct {
+    PixmapPtr pPixmap;
+    unsigned int attachment;
+} I830DRI2BufferPrivateRec, *I830DRI2BufferPrivatePtr;
+
 #endif
commit e386e7b14b139f15205e14b173e8222bf38d9e18
Author: Keith Packard <keithp at keithp.com>
Date:   Wed Jul 15 09:43:04 2009 -0700

    Reset framebuffer offset when rebinding aperture (22760).
    
    scrn->fbOffset may be changed when binding objects to the aperture during
    server initialization or VT enter. This was accidentally removed when the
    NoAlloc option was eliminated.
    
    Signed-off-by: Keith Packard <keithp at keithp.com>

diff --git a/src/i830_memory.c b/src/i830_memory.c
index f2f3966..cc9d376 100644
--- a/src/i830_memory.c
+++ b/src/i830_memory.c
@@ -1581,6 +1581,9 @@ i830_bind_all_memory(ScrnInfoPtr pScrn)
 	i830_update_cursor_offsets(pScrn);
     i830_set_max_gtt_map_size(pScrn);
 
+    if (pI830->front_buffer)
+	pScrn->fbOffset = pI830->front_buffer->offset;
+
     return TRUE;
 }
 
commit b74bf3f9a65af9e72921d4e9028d9d4d023f8bc6
Author: Barry Scott <barry.scott at onelan.co.uk>
Date:   Mon Jul 13 16:34:20 2009 -0700

    Fix XV scan line calculation when rotated.

diff --git a/src/i830_video.c b/src/i830_video.c
index 4bba902..92b6324 100644
--- a/src/i830_video.c
+++ b/src/i830_video.c
@@ -2539,7 +2539,7 @@ I830PutImage(ScrnInfoPtr pScrn,
 
         if (sync) {
 	    BoxPtr box;
-	    int y1, y2;
+	    pixman_box16_t box_in_crtc_coordinates;
 	    int pipe = -1, event, load_scan_lines_pipe;
 
 	    if (pixmap_is_scanout(pPixmap))
@@ -2555,16 +2555,17 @@ I830PutImage(ScrnInfoPtr pScrn,
 		}
 
 		box = REGION_EXTENTS(unused, clipBoxes);
-		y1 = box->y1 - crtc->y;
-		y2 = box->y2 - crtc->y;
+		box_in_crtc_coordinates = *box;
+		if (crtc->transform_in_use)
+		    pixman_f_transform_bounds (&crtc->f_framebuffer_to_crtc, &box_in_crtc_coordinates);
 
 		BEGIN_BATCH(5);
 		/* The documentation says that the LOAD_SCAN_LINES command
 		 * always comes in pairs. Don't ask me why. */
 		OUT_BATCH(MI_LOAD_SCAN_LINES_INCL | load_scan_lines_pipe);
-		OUT_BATCH((y1 << 16) | y2);
+		OUT_BATCH((box_in_crtc_coordinates.y1 << 16) | box_in_crtc_coordinates.y2);
 		OUT_BATCH(MI_LOAD_SCAN_LINES_INCL | load_scan_lines_pipe);
-		OUT_BATCH((y1 << 16) | y2);
+		OUT_BATCH((box_in_crtc_coordinates.y1 << 16) | box_in_crtc_coordinates.y2);
 		OUT_BATCH(MI_WAIT_FOR_EVENT | event);
 		ADVANCE_BATCH();
 	    }
commit 82905c7c0b871a97ec435a765c2ca407903ba595
Author: Carl Worth <cworth at cworth.org>
Date:   Mon Jul 13 05:29:49 2009 -0700

    Increment version to 2.7.99.902

diff --git a/configure.ac b/configure.ac
index 486fed7..077c1ff 100644
--- a/configure.ac
+++ b/configure.ac
@@ -22,7 +22,7 @@
 
 AC_PREREQ(2.57)
 AC_INIT([xf86-video-intel],
-        2.7.99.901,
+        2.7.99.902,
         [https://bugs.freedesktop.org/enter_bug.cgi?product=xorg],
         xf86-video-intel)
 
commit 925bc6cbd430a00928fac2ef58724dd37c3bc349
Author: Carl Worth <cworth at cworth.org>
Date:   Mon Jul 13 05:27:40 2009 -0700

    RELEASING: Fix typo in instructions

diff --git a/RELEASING b/RELEASING
index 2196c8f..e32ecf6 100644
--- a/RELEASING
+++ b/RELEASING
@@ -37,7 +37,7 @@ The process for releasing a new tarball is as follows:
 
 	At the very least, add the release notes from the NEWS file.
 
-	The message is generated as xf86-video-inte-<version>.announce
+	The message is generated as xf86-video-intel-<version>.announce
 
 	For snapshots and release candidates, mail to:
 
commit 67c0afc7b7446a7b98aa7c65043ddba4c7c72b82
Author: Carl Worth <cworth at cworth.org>
Date:   Mon Jul 13 05:27:06 2009 -0700

    NEWS: Add notes for 2.7.99.902

diff --git a/NEWS b/NEWS
index 294a78c..ddc2f40 100644
--- a/NEWS
+++ b/NEWS
@@ -1,3 +1,10 @@
+Snapshot 2.7.99.902 (2009-07-13)
+--------------------------------
+This is the first release candidate in preparation for the upcoming
+2.8.0 release. Most major and critical bugs should be fixed, but some
+minor bugs may still be present. We will appreciate any feedback we
+can get from testing of this snapshot to improve the 2.8.0 release.
+
 Snapshot 2.7.99.901 (2009-06-10)
 --------------------------------
 This is the first release candidate in preparation for the upcoming
commit 34c674dd45879b8ba8395b93b16c8a9e7b848f1f
Author: Keith Packard <keithp at keithp.com>
Date:   Sat Jul 11 22:53:42 2009 -0700

    Remove vestiges of NoAccel options from i830_driver.c
    
    The enum and OptionInfoRec weren't removed in the initial patch
    
    Signed-off-by: Keith Packard <keithp at keithp.com>

diff --git a/src/i830_driver.c b/src/i830_driver.c
index fe2565c..dfc2bdf 100644
--- a/src/i830_driver.c
+++ b/src/i830_driver.c
@@ -162,7 +162,6 @@ static PciChipsets I830PciChipsets[] = {
  */
 
 typedef enum {
-   OPTION_NOACCEL,
    OPTION_DRI,
    OPTION_VIDEO_KEY,
    OPTION_COLOR_KEY,
@@ -181,7 +180,6 @@ typedef enum {
 } I830Opts;
 
 static OptionInfoRec I830Options[] = {
-   {OPTION_NOACCEL,	"NoAccel",	OPTV_BOOLEAN,	{0},	FALSE},
    {OPTION_DRI,		"DRI",		OPTV_BOOLEAN,	{0},	TRUE},
    {OPTION_COLOR_KEY,	"ColorKey",	OPTV_INTEGER,	{0},	FALSE},
    {OPTION_VIDEO_KEY,	"VideoKey",	OPTV_INTEGER,	{0},	FALSE},
commit 33d6e7a2355dfb8ad324c4fa28ce61c7e051b435
Author: Keith Packard <keithp at keithp.com>
Date:   Sat Jul 11 22:53:11 2009 -0700

    intel.man: Mark NoAccel option as i810/i815 only
    
    The NoAccel option is not valid for other chips.
    
    Signed-off-by: Keith Packard <keithp at keithp.com>

diff --git a/man/intel.man b/man/intel.man
index 6330e4b..d498d7e 100644
--- a/man/intel.man
+++ b/man/intel.man
@@ -56,11 +56,6 @@ The following driver
 .B Options
 are supported
 .TP
-.BI "Option \*qNoAccel\*q \*q" boolean \*q
-Disable or enable acceleration.
-.IP
-Default: acceleration is enabled.
-.TP
 .BI "Option \*qColorKey\*q \*q" integer \*q
 This sets the default pixel value for the YUV video overlay key.
 .IP
@@ -134,6 +129,11 @@ This option specifies the amount of system memory to use for graphics, in KB.
 The default is 8192 if AGP allocable memory is < 128 MB, 16384 if < 192 MB,
 24576 if higher. DRI require at least a value of 16384. Higher values may give
 better 3D performance, at expense of available system memory.
+.TP
+.BI "Option \*qNoAccel\*q \*q" boolean \*q
+Disable or enable acceleration.
+.IP
+Default: acceleration is enabled.
 
 .PP
 The following driver
commit ed8a9a94e1a670ca35311c9ed83d0c479530d41a
Author: Keith Packard <keithp at keithp.com>
Date:   Fri Jul 10 17:13:14 2009 -0700

    i830_uxa_prepare_access: Flush and wait for idle for non-bo pixmaps
    
    Without kernel support and explicit knowledge about where in the ring the
    last rendering operation for a specific pixmap was, we must synchronize with
    any outstanding rendering before accessing a pixmap which does not have a
    buffer object.
    
    Signed-off-by: Keith Packard <keithp at keithp.com>

diff --git a/src/i830_uxa.c b/src/i830_uxa.c
index c3fdcec..2050c48 100644
--- a/src/i830_uxa.c
+++ b/src/i830_uxa.c
@@ -477,13 +477,12 @@ static Bool
 i830_uxa_prepare_access (PixmapPtr pixmap, uxa_access_t access)
 {
     dri_bo *bo = i830_get_pixmap_bo (pixmap);
+    ScrnInfoPtr scrn = xf86Screens[pixmap->drawable.pScreen->myNum];
+
+    intel_batch_flush(scrn, FALSE);
 
     if (bo) {
-	ScreenPtr screen = pixmap->drawable.pScreen;
-	ScrnInfoPtr scrn = xf86Screens[screen->myNum];
 	I830Ptr i830 = I830PTR(scrn);
-	
-	intel_batch_flush(scrn, FALSE);
 
 	/* No VT sema or GEM?  No GTT mapping. */
 	if (!scrn->vtSema || !i830->have_gem) {
@@ -517,7 +516,9 @@ i830_uxa_prepare_access (PixmapPtr pixmap, uxa_access_t access)
 	    drm_intel_gem_bo_start_gtt_access(bo, access == UXA_ACCESS_RW);
 	    pixmap->devPrivate.ptr = i830->FbBase + bo->offset;
 	}
-    }
+    } else
+	i830_wait_ring_idle(scrn);
+
     return TRUE;
 }
 
commit cb19ac207b784d814f6f389110fd1b21a0f34e8b
Author: Keith Packard <keithp at keithp.com>
Date:   Fri Jul 10 14:01:02 2009 -0700

    KMS: Keep screen pixmap devPrivate.ptr NULL during init and resize
    
    The frame buffer only has a valid address between prepare_access and
    finish_access calls, so remove all other attempts to compute an address from
    the driver.
    
    Signed-off-by: Keith Packard <keithp at keithp.com>

diff --git a/src/drmmode_display.c b/src/drmmode_display.c
index 7cfdc5b..df10fb5 100644
--- a/src/drmmode_display.c
+++ b/src/drmmode_display.c
@@ -1056,12 +1056,9 @@ drmmode_xf86crtc_resize (ScrnInfoPtr scrn, int width, int height)
 		goto fail;
 
 	i830_set_pixmap_bo(screen->GetScreenPixmap(screen), pI830->front_buffer->bo);
-	scrn->fbOffset = pI830->front_buffer->offset;
 
 	screen->ModifyPixmapHeader(screen->GetScreenPixmap(screen),
 				   width, height, -1, -1, pitch * pI830->cpp, NULL);
-	xf86DrvMsg(scrn->scrnIndex, X_INFO, "New front buffer at 0x%lx\n",
-		   pI830->front_buffer->offset);
 
 	for (i = 0; i < xf86_config->num_crtc; i++) {
 		xf86CrtcPtr crtc = xf86_config->crtc[i];
commit 704b88dd50a7e7e3f362264b86d0401bee8603aa
Author: Keith Packard <keithp at keithp.com>
Date:   Wed Jul 8 13:06:47 2009 -0700

    i830_bind_memory: Under UMS: Bind GEM bos with dri_bo_pin, else through the GART
    
    We only need to get static offsets for objects when not running KMS,
    otherwise the kernel will manage those as needed for us.
    
    Binding objects is done in one of two ways. For GEM buffer objects, we use
    dri_bo_pin. For GART allocated memory, we bind that to the GART.

diff --git a/src/i830_memory.c b/src/i830_memory.c
index 556b511..f2f3966 100644
--- a/src/i830_memory.c
+++ b/src/i830_memory.c
@@ -199,10 +199,11 @@ i830_bind_memory(ScrnInfoPtr pScrn, i830_memory *mem)
 {
     I830Ptr pI830 = I830PTR(pScrn);
 
-    if (mem == NULL || mem->bound)
+    if (mem == NULL || mem->bound || pI830->use_drm_mode)
 	return TRUE;
 
-    if (mem->bo != NULL && !pI830->use_drm_mode) {
+    if (pI830->have_gem && mem->bo != NULL) {
+
 	if (dri_bo_pin(mem->bo, mem->alignment) != 0) {
 	    xf86DrvMsg(pScrn->scrnIndex, X_ERROR,
 		       "Failed to pin %s: %s\n",
@@ -213,9 +214,7 @@ i830_bind_memory(ScrnInfoPtr pScrn, i830_memory *mem)
 	mem->bound = TRUE;
 	mem->offset = mem->bo->offset;
 	mem->end = mem->offset + mem->size;
-    }
-
-    if (!mem->bound) {
+    } else {
 	if (!pI830->gtt_acquired)
 	    return TRUE;
 
@@ -228,8 +227,7 @@ i830_bind_memory(ScrnInfoPtr pScrn, i830_memory *mem)
 	mem->bound = TRUE;
     }
 
-    if (mem->tiling != TILE_NONE && !pI830->use_drm_mode &&
-	!pI830->kernel_exec_fencing) {
+    if (mem->tiling != TILE_NONE && !pI830->kernel_exec_fencing) {
 	mem->fence_nr = i830_set_tiling(pScrn, mem->offset, mem->pitch,
 					mem->allocated_size, mem->tiling);
     }
@@ -1114,7 +1112,7 @@ i830_allocate_framebuffer(ScrnInfoPtr pScrn)
 	return NULL;
     }
 
-    if (!pI830->use_drm_mode && pI830->FbBase && front_buffer->bound)
+    if (pI830->FbBase && front_buffer->bound)
 	memset (pI830->FbBase + front_buffer->offset, 0, size);
 
     i830_set_max_gtt_map_size(pScrn);
commit 7b273732f70e91df8b41d5c48e1379271557dd8e
Author: Keith Packard <keithp at keithp.com>
Date:   Wed Jul 8 11:53:13 2009 -0700

    Allocate GTT space for GEM only under UMS
    
    GEM requires GTT space to map objects. Under KMS, the kernel driver has
    already provided all available GTT space to GEM, so the X server need not do
    anything.
    
    Signed-off-by: Keith Packard <keithp at keithp.com>

diff --git a/src/i830_driver.c b/src/i830_driver.c
index e5e5fd7..fe2565c 100644
--- a/src/i830_driver.c
+++ b/src/i830_driver.c
@@ -2674,8 +2674,8 @@ I830ScreenInit(int scrnIndex, ScreenPtr pScreen, int argc, char **argv)
    if (!pI830->use_drm_mode)
        I830MapMMIO(pScrn);
 
-   /* Need FB mapped to set up the fake bufmgr if we end up doing that
-    * in i830_memory_init() -> i830_allocator_init().
+   /* Need FB mapped to access non-GEM objects like
+    * a UMS frame buffer, or the fake bufmgr.
     */
    if (!pI830->use_drm_mode) {
       if (!I830MapMem(pScrn))
@@ -2701,10 +2701,6 @@ I830ScreenInit(int scrnIndex, ScreenPtr pScreen, int argc, char **argv)
    if (!miSetPixmapDepths())
       return FALSE;
 
-   i830_init_bufmgr(pScrn);
-
-   pScrn->fbOffset = pI830->front_buffer->offset;
-
    if (!pI830->use_drm_mode) {
        vgaHWSetMmioFuncs(hwp, pI830->MMIOBase, 0);
        vgaHWGetIOBase(hwp);
diff --git a/src/i830_memory.c b/src/i830_memory.c
index 2953f3b..556b511 100644
--- a/src/i830_memory.c
+++ b/src/i830_memory.c
@@ -334,10 +334,8 @@ i830_reset_allocations(ScrnInfoPtr pScrn)
     }
 
     /* Free any allocations in buffer objects */
-    if (pI830->memory_manager) {
-	while (pI830->bo_list != NULL)
-	    i830_free_memory(pScrn, pI830->bo_list);
-    }
+    while (pI830->bo_list != NULL)
+        i830_free_memory(pScrn, pI830->bo_list);
 
     /* Null out the pointers for all the allocations we just freed.  This is
      * kind of gross, but at least it's just one place now.
@@ -405,12 +403,14 @@ i830_allocator_init(ScrnInfoPtr pScrn, unsigned long size)
 
     pI830->memory_list = start;
 
-    /* Now that we have our manager set up, initialize the kernel MM if
-     * possible, covering almost all of the aperture.  We need libdri interface
-     * 5.4 or newer so we can rely on the lock being held after DRIScreenInit,
-     * rather than after DRIFinishScreenInit.
+    /* Now that we have our manager set up, give the kernel a piece of the
+     * aperture for GEM buffer object mapping. This is only needed for UXA
+     * and/or DRI2 when the kernel hasn't already managed this itself under
+     * KMS.  We need libdri interface5.4 or newer so we can rely on the lock
+     * being held after DRIScreenInit, rather than after DRIFinishScreenInit.
      */
-    if (pI830->directRenderingType == DRI_DRI2) {
+
+    if (!pI830->use_drm_mode) {
 	int mmsize;
 
 	/* Take over all of the graphics aperture minus enough to for
@@ -426,53 +426,49 @@ i830_allocator_init(ScrnInfoPtr pScrn, unsigned long size)
 	}
 	if (pI830->CursorNeedsPhysical) {
 	    mmsize -= 2 * (ROUND_TO(HWCURSOR_SIZE, GTT_PAGE_SIZE) +
-		    ROUND_TO(HWCURSOR_SIZE_ARGB, GTT_PAGE_SIZE));
+			   ROUND_TO(HWCURSOR_SIZE_ARGB, GTT_PAGE_SIZE));
 	}
 	if (pI830->fb_compression)
 	    mmsize -= MB(6) + ROUND_TO_PAGE(FBC_LL_SIZE + FBC_LL_PAD);
+
 	/* Can't do GEM on stolen memory */
 	mmsize -= pI830->stolen_size;
 
 	/* Create the aperture allocation */
 	pI830->memory_manager =
-	    i830_allocate_aperture(pScrn, "DRI memory manager",
-				   mmsize, 0, GTT_PAGE_SIZE,
-				   ALIGN_BOTH_ENDS | NEED_NON_STOLEN,
-				   TILE_NONE);
+		i830_allocate_aperture(pScrn, "DRI memory manager",
+				       mmsize, 0, GTT_PAGE_SIZE,
+				       ALIGN_BOTH_ENDS | NEED_NON_STOLEN,
+				       TILE_NONE);
 
 	if (pI830->memory_manager != NULL) {
-	    if (!pI830->use_drm_mode) {
-		struct drm_i915_gem_init init;
-		int ret;
-
-		sp.param = I915_SETPARAM_NUM_USED_FENCES;
-		sp.value = 0; /* kernel gets them all */
-
-		ret = drmCommandWrite(pI830->drmSubFD, DRM_I915_SETPARAM,
-				      &sp, sizeof(sp));
-		if (ret == 0)
-		    pI830->kernel_exec_fencing = TRUE;
-
-		init.gtt_start = pI830->memory_manager->offset;
-		init.gtt_end = pI830->memory_manager->offset +
-		    pI830->memory_manager->size;
-
-		/* Tell the kernel to manage it */
-		ret = ioctl(pI830->drmSubFD, DRM_IOCTL_I915_GEM_INIT, &init);
-		if (ret != 0) {
-		    xf86DrvMsg(pScrn->scrnIndex, X_ERROR,
-			       "Failed to initialize kernel memory manager\n");
-		    i830_free_memory(pScrn, pI830->memory_manager);
-		    pI830->memory_manager = NULL;
-		}
+	    struct drm_i915_gem_init init;
+	    int ret;
+
+	    sp.param = I915_SETPARAM_NUM_USED_FENCES;
+	    sp.value = 0; /* kernel gets them all */
+
+	    ret = drmCommandWrite(pI830->drmSubFD, DRM_I915_SETPARAM,
+				  &sp, sizeof(sp));
+	    if (ret == 0)
+		pI830->kernel_exec_fencing = TRUE;
+	    init.gtt_start = pI830->memory_manager->offset;
+	    init.gtt_end = pI830->memory_manager->offset + pI830->memory_manager->size;
+
+	    /* Tell the kernel to manage it */
+	    ret = ioctl(pI830->drmSubFD, DRM_IOCTL_I915_GEM_INIT, &init);
+	    if (ret == 0) {
 		pI830->have_gem = TRUE;
 		i830_init_bufmgr(pScrn);
+	    } else {
+		xf86DrvMsg(pScrn->scrnIndex, X_ERROR,
+			   "Failed to initialize kernel memory manager\n");
+		i830_free_memory(pScrn, pI830->memory_manager);
+		pI830->memory_manager = NULL;
 	    }
 	} else {
 	    xf86DrvMsg(pScrn->scrnIndex, X_ERROR,
 		       "Failed to allocate space for kernel memory manager\n");
-	    i830_free_memory(pScrn, pI830->memory_manager);
-	    pI830->memory_manager = NULL;
 	}
     }
 
@@ -842,9 +838,15 @@ i830_allocate_memory(ScrnInfoPtr pScrn, const char *name,
 	size = i830_get_fence_size(pI830, size);
 	alignment = i830_get_fence_alignment(pI830, size);
     }
-    if (pI830->use_drm_mode || (pI830->memory_manager &&
-				!(flags & NEED_PHYSICAL_ADDR) &&
-				!(flags & NEED_LIFETIME_FIXED)))
+    /*
+     * Create a kernel buffer object when suitable.
+     * Under KMS, all graphics memory must be managed by the
+     * kernel. Under UMS, we separately reserve space for
+     * a few objects (overlays, power context, cursors, etc).
+     */
+    if (pI830->have_gem &&
+	(pI830->use_drm_mode ||
+	 !(flags & (NEED_PHYSICAL_ADDR|NEED_LIFETIME_FIXED))))
     {
 	return i830_allocate_memory_bo(pScrn, name, size, pitch, alignment, flags, tile_format);
     } else
@@ -917,31 +919,33 @@ i830_describe_allocations(ScrnInfoPtr pScrn, int verbosity, const char *prefix)
 		   "%s0x%08lx:            end of aperture\n",
 		   prefix, pI830->FbMapSize);
 
+    xf86DrvMsgVerb(pScrn->scrnIndex, X_INFO, verbosity,
+		   "%sBO memory allocation layout:\n", prefix);
     if (pI830->memory_manager) {
 	xf86DrvMsgVerb(pScrn->scrnIndex, X_INFO, verbosity,
-		       "%sBO memory allocation layout:\n", prefix);
-	xf86DrvMsgVerb(pScrn->scrnIndex, X_INFO, verbosity,
 		       "%s0x%08lx:            start of memory manager\n",
 		       prefix, pI830->memory_manager->offset);
-	for (mem = pI830->bo_list; mem != NULL; mem = mem->next) {
-	    char *tile_suffix = "";
-
-	    if (mem->tiling == TILE_XMAJOR)
-		tile_suffix = " X tiled";
-	    else if (mem->tiling == TILE_YMAJOR)
-		tile_suffix = " Y tiled";
-
-	    if (mem->bound) {
-		xf86DrvMsgVerb(pScrn->scrnIndex, X_INFO, verbosity,
-			       "%s0x%08lx-0x%08lx: %s (%ld kB)%s\n", prefix,
-			       mem->offset, mem->end - 1, mem->name,
-			       mem->size / 1024, tile_suffix);
-	    } else {
-		xf86DrvMsgVerb(pScrn->scrnIndex, X_INFO, verbosity,
-			       "%sunpinned          : %s (%ld kB)%s\n", prefix,
-			       mem->name, mem->size / 1024, tile_suffix);
-	    }
+    }
+    for (mem = pI830->bo_list; mem != NULL; mem = mem->next) {
+	char *tile_suffix = "";
+
+	if (mem->tiling == TILE_XMAJOR)
+	    tile_suffix = " X tiled";
+	else if (mem->tiling == TILE_YMAJOR)
+	    tile_suffix = " Y tiled";
+
+	if (mem->bound) {
+	    xf86DrvMsgVerb(pScrn->scrnIndex, X_INFO, verbosity,
+			   "%s0x%08lx-0x%08lx: %s (%ld kB)%s\n", prefix,
+			   mem->offset, mem->end - 1, mem->name,
+			   mem->size / 1024, tile_suffix);
+	} else {
+	    xf86DrvMsgVerb(pScrn->scrnIndex, X_INFO, verbosity,
+			   "%sunpinned          : %s (%ld kB)%s\n", prefix,
+			   mem->name, mem->size / 1024, tile_suffix);
 	}
+    }
+    if (pI830->memory_manager) {
 	xf86DrvMsgVerb(pScrn->scrnIndex, X_INFO, verbosity,
 		       "%s0x%08lx:            end of memory manager\n",
 		       prefix, pI830->memory_manager->end);
@@ -953,7 +957,7 @@ i830_allocate_ringbuffer(ScrnInfoPtr pScrn)
 {
     I830Ptr pI830 = I830PTR(pScrn);
 
-    if (pI830->memory_manager || pI830->ring.mem != NULL)
+    if (pI830->have_gem || pI830->ring.mem != NULL)
 	return TRUE;
 
     /* We don't have any mechanism in the DRM yet to alert it that we've moved
@@ -1277,7 +1281,7 @@ i830_allocate_2d_memory(ScrnInfoPtr pScrn)
 	return FALSE;
     }
 
-    if (pI830->memory_manager == NULL) {
+    if (!pI830->have_gem) {
 	pI830->fake_bufmgr_mem = i830_allocate_memory(pScrn, "fake bufmgr",
 						      MB(8), PITCH_NONE, GTT_PAGE_SIZE, 0,
 						      TILE_NONE);
@@ -1286,6 +1290,7 @@ i830_allocate_2d_memory(ScrnInfoPtr pScrn)
 		       "Failed to allocate fake bufmgr space.\n");
 	    return FALSE;
 	}
+	i830_init_bufmgr(pScrn);
     }
 
     if (!pI830->use_drm_mode)
commit 56bfee8705f5d7d965227013b205dbc4c93e220c
Author: Keith Packard <keithp at keithp.com>
Date:   Fri Jul 10 14:49:20 2009 -0700

    Always set screen pixmap data pointer at init and resize times
    
    For non-DRM environments, the screen pixmap will be GART allocated memory
    and not a libdrm buffer object and so uxa will only use devPrivate.ptr to
    find the associated memory. Make sure devPrivate.ptr is set each time the
    framebuffer is allocated so that uxa will be able to draw to it.
    
    Signed-off-by: Keith Packard <keithp at keithp.com>

diff --git a/src/i830_driver.c b/src/i830_driver.c
index ee39a1b..e5e5fd7 100644
--- a/src/i830_driver.c
+++ b/src/i830_driver.c
@@ -880,7 +880,6 @@ i830_xf86crtc_resize (ScrnInfoPtr scrn, int width, int height)
 	i830_memory *new_front, *old_front;
 	Bool	    tiled;
 	ScreenPtr   screen = screenInfo.screens[scrn->scrnIndex];
-	pointer	    data = NULL;
 
 	scrn->displayWidth = i830_pad_drawable_width(width, i830->cpp);
 	tiled = i830_tiled_width(i830, &scrn->displayWidth, i830->cpp);
@@ -900,15 +899,15 @@ i830_xf86crtc_resize (ScrnInfoPtr scrn, int width, int height)
 	i830_set_pixmap_bo(screen->GetScreenPixmap(screen),
 			   new_front->bo);
 	scrn->fbOffset = i830->front_buffer->offset;
-	if (!new_front->bo)
-	    data = i830->FbBase + scrn->fbOffset;
+
 	screen->ModifyPixmapHeader(screen->GetScreenPixmap(screen),
 				   width, height, -1, -1, scrn->displayWidth * i830->cpp,
-				   data);
+				   i830->FbBase + scrn->fbOffset);
+
 	/* ick. xf86EnableDisableFBAccess smashes the screen pixmap devPrivate,
 	 * so update the value it uses
 	 */
-	scrn->pixmapPrivate.ptr = data;
+	scrn->pixmapPrivate.ptr = i830->FbBase + scrn->fbOffset;
 	xf86DrvMsg(scrn->scrnIndex, X_INFO, "New front buffer at 0x%lx\n",
 		   i830->front_buffer->offset);
 	i830_set_new_crtc_bo(scrn);
@@ -2719,6 +2718,12 @@ I830ScreenInit(int scrnIndex, ScreenPtr pScreen, int argc, char **argv)
     if (pScrn->virtualX > pScrn->displayWidth)
 	pScrn->displayWidth = pScrn->virtualX;
 
+   /* If the front buffer is not a BO, we need to
+    * set the initial framebuffer pixmap to point at
+    * it
+    */
+   pScrn->fbOffset = pI830->front_buffer->offset;
+
    DPRINTF(PFX, "assert( if(!fbScreenInit(pScreen, ...) )\n");
    if (!fbScreenInit(pScreen, pI830->FbBase + pScrn->fbOffset, 
                      pScrn->virtualX, pScrn->virtualY,
commit 98087a0b966d5dc69faf72719153a2c878ba3de1
Author: Keith Packard <keithp at keithp.com>
Date:   Wed Jul 8 11:47:25 2009 -0700

    Make xorg.conf DRI option work under KMS. Fix name of I830AccelMethodInit
    
    KMS mode does not call I830AccelMethodInit as that does the user
    modesetting initialization (yes, it was misnamed), but that means that the DRI option
    was ignored. Create a new i830_check_dri_option function to do the option
    detection, then remove that from I830AccelMethodInit, which is renamed
    i830_user_modesetting_init to reflect what it actually does.
    
    Signed-off-by: Keith Packard <keithp at keithp.com>

diff --git a/src/i830_driver.c b/src/i830_driver.c
index cc0a1f6..ee39a1b 100644
--- a/src/i830_driver.c
+++ b/src/i830_driver.c
@@ -1301,12 +1301,10 @@ I830PreInitCrtcConfig(ScrnInfoPtr pScrn)
     xf86CrtcSetSizeRange (pScrn, 320, 200, max_width, max_height);
 }
 
-static Bool
-I830AccelMethodInit(ScrnInfoPtr pScrn)
+static void
+i830_check_dri_option(ScrnInfoPtr pScrn)
 {
     I830Ptr pI830 = I830PTR(pScrn);
-    int i, num_pipe;
-
     pI830->directRenderingType = DRI_NONE;
     if (!xf86ReturnOptValBool(pI830->Options, OPTION_DRI, TRUE))
 	pI830->directRenderingType = DRI_DISABLED;
@@ -1316,6 +1314,13 @@ I830AccelMethodInit(ScrnInfoPtr pScrn)
 		"runs only at depths 16 and 24.\n");
 	pI830->directRenderingType = DRI_DISABLED;
     }
+}
+
+static Bool
+i830_user_modesetting_init(ScrnInfoPtr pScrn)
+{
+    I830Ptr pI830 = I830PTR(pScrn);
+    int i, num_pipe;
 
     I830MapMMIO(pScrn);
 
@@ -1442,7 +1447,6 @@ I830DrmModeInit(ScrnInfoPtr pScrn)
 	return FALSE;
     }
 
-    pI830->directRenderingType = DRI_NONE;
     pI830->have_gem = TRUE;
 
     i830_init_bufmgr(pScrn);
@@ -1587,6 +1591,8 @@ I830PreInit(ScrnInfoPtr pScrn, int flags)
    if (!i830_detect_chipset(pScrn))
        return FALSE;
 
+   i830_check_dri_option(pScrn);
+
    if (pI830->use_drm_mode) {
        if (!I830DrmModeInit(pScrn))
 	   return FALSE;
@@ -1595,7 +1601,7 @@ I830PreInit(ScrnInfoPtr pScrn, int flags)
 	   xf86DrvMsg(pScrn->scrnIndex, X_WARNING,
 		      "VBIOS initialization failed.\n");
       I830PreInitCrtcConfig(pScrn);
-      if (!I830AccelMethodInit(pScrn))
+      if (!i830_user_modesetting_init(pScrn))
          return FALSE;
    }
 
commit d655a3ff423e69c19a5dc07140cbf3caaa32cb86
Author: Keith Packard <keithp at keithp.com>
Date:   Wed Jul 8 18:06:40 2009 -0700

    Remove NoAccel support
    
    This removes yet another 'debugging' option that hasn't seen real use in a
    long time, and wasn't supported under KMS in any case.
    
    Signed-off-by: Keith Packard <keithp at keithp.com>

diff --git a/src/drmmode_display.c b/src/drmmode_display.c
index e9296dc..7cfdc5b 100644
--- a/src/drmmode_display.c
+++ b/src/drmmode_display.c
@@ -329,8 +329,6 @@ drmmode_crtc_shadow_allocate(xf86CrtcPtr crtc, int width, int height)
 		return NULL;
 	}
 
-	drm_intel_gem_bo_map_gtt(drmmode_crtc->rotate_bo);
-
 	ret = drmModeAddFB(drmmode->fd, width, height, crtc->scrn->depth,
 			   crtc->scrn->bitsPerPixel, rotate_pitch,
 			   drmmode_crtc->rotate_bo->handle,
@@ -341,7 +339,7 @@ drmmode_crtc_shadow_allocate(xf86CrtcPtr crtc, int width, int height)
 		return NULL;
 	}
 
-	return drmmode_crtc->rotate_bo->virtual;
+	return drmmode_crtc->rotate_bo;
 }
 
 static PixmapPtr
@@ -353,8 +351,14 @@ drmmode_crtc_shadow_create(xf86CrtcPtr crtc, void *data, int width, int height)
 	unsigned long rotate_pitch;
 	PixmapPtr rotate_pixmap;
 
-	if (!data)
+	if (!data) {
 		data = drmmode_crtc_shadow_allocate (crtc, width, height);
+		if (!data) {
+			xf86DrvMsg(pScrn->scrnIndex, X_ERROR,
+				   "Couldn't allocate shadow pixmap for rotated CRTC\n");
+			return NULL;
+		}
+	}
 
 	rotate_pitch =
 		i830_pad_drawable_width(width, drmmode->cpp) * drmmode->cpp;
@@ -363,11 +367,12 @@ drmmode_crtc_shadow_create(xf86CrtcPtr crtc, void *data, int width, int height)
 					       pScrn->depth,
 					       pScrn->bitsPerPixel,
 					       rotate_pitch,
-					       data);
+					       NULL);
 
 	if (rotate_pixmap == NULL) {
 		xf86DrvMsg(pScrn->scrnIndex, X_ERROR,
 			   "Couldn't allocate shadow pixmap for rotated CRTC\n");
+		return NULL;
 	}
 
 	if (drmmode_crtc->rotate_bo)
@@ -393,7 +398,6 @@ drmmode_crtc_shadow_destroy(xf86CrtcPtr crtc, PixmapPtr rotate_pixmap, void *dat
 		 * unbound. */
 		drmModeRmFB(drmmode->fd, drmmode_crtc->rotate_fb_id);
 		drmmode_crtc->rotate_fb_id = 0;
-		drm_intel_gem_bo_unmap_gtt(drmmode_crtc->rotate_bo);
 		dri_bo_unreference(drmmode_crtc->rotate_bo);
 		drmmode_crtc->rotate_bo = NULL;
 	}
diff --git a/src/i830.h b/src/i830.h
index dc5e0c8..f7ca687 100644
--- a/src/i830.h
+++ b/src/i830.h
@@ -317,12 +317,6 @@ enum backlight_control {
     BCM_KERNEL,
 };
 
-typedef enum accel_method {
-    ACCEL_UNINIT = 0,
-    ACCEL_NONE,
-    ACCEL_UXA
-} accel_method_t;
-
 enum dri_type {
     DRI_DISABLED,
     DRI_NONE,
@@ -431,7 +425,6 @@ typedef struct _I830Rec {
 
    Bool fence_used[FENCE_NEW_NR];
 
-   accel_method_t accel;
    CloseScreenProcPtr CloseScreen;
 
    void (*batch_flush_notify)(ScrnInfoPtr pScrn);
@@ -827,8 +820,7 @@ i830_wait_ring_idle(ScrnInfoPtr pScrn)
 {
    I830Ptr pI830 = I830PTR(pScrn);
 
-   if (pI830->accel != ACCEL_NONE)
-       I830WaitLpRing(pScrn, pI830->ring.mem->size - 8, 0);
+   I830WaitLpRing(pScrn, pI830->ring.mem->size - 8, 0);
 }
 
 static inline int i830_fb_compression_supported(I830Ptr pI830)
@@ -841,10 +833,9 @@ static inline int i830_fb_compression_supported(I830Ptr pI830)
 	return FALSE;
     if (IS_IGDNG(pI830))
 	return FALSE;
-    /* fbc depends on tiled surface. And we don't support tiled
-     * front buffer with unaccelerated.
+    /* fbc depends on tiled surface.
      */
-    if (!pI830->tiling || (IS_I965G(pI830) && pI830->accel == ACCEL_NONE))
+    if (!pI830->tiling)
 	return FALSE;
     /* We have not gotten FBC to work consistently on 965GM. Our best
      * working theory right now is that FBC simply isn't reliable on
diff --git a/src/i830_accel.c b/src/i830_accel.c
index b365e3f..96a7bde 100644
--- a/src/i830_accel.c
+++ b/src/i830_accel.c
@@ -136,7 +136,7 @@ I830Sync(ScrnInfoPtr pScrn)
    if (I810_DEBUG & (DEBUG_VERBOSE_ACCEL | DEBUG_VERBOSE_SYNC))
       ErrorF("I830Sync\n");
 
-   if (pI830->accel == ACCEL_NONE || !pScrn->vtSema || !pI830->batch_bo)
+   if (!pScrn->vtSema || !pI830->batch_bo)
        return;
 
    I830EmitFlush(pScrn);
@@ -236,12 +236,5 @@ I830AccelInit(ScreenPtr pScreen)
     if (pI830->directRenderingType >= DRI_DRI2)
 	pI830->accel_pixmap_pitch_alignment = 512;
 
-    switch (pI830->accel) {
-    case ACCEL_UXA:
-	return i830_uxa_init(pScreen);
-    case ACCEL_UNINIT:
-    case ACCEL_NONE:
-	break;
-    }
-    return FALSE;
+    return i830_uxa_init(pScreen);
 }
diff --git a/src/i830_dri.c b/src/i830_dri.c
index 240c519..40d11e4 100644
--- a/src/i830_dri.c
+++ b/src/i830_dri.c
@@ -373,11 +373,6 @@ Bool I830DRI2ScreenInit(ScreenPtr pScreen)
     int dri2_minor = 0;
 #endif
 
-    if (pI830->accel != ACCEL_UXA) {
-	xf86DrvMsg(pScrn->scrnIndex, X_WARNING, "DRI2 requires UXA\n");
-	return FALSE;
-    }
-
 #ifdef USE_DRI2_1_1_0
     if (xf86LoaderCheckSymbol("DRI2Version")) {
 	DRI2Version(& dri2_major, & dri2_minor);
diff --git a/src/i830_driver.c b/src/i830_driver.c
index 257bd6c..cc0a1f6 100644
--- a/src/i830_driver.c
+++ b/src/i830_driver.c
@@ -598,49 +598,6 @@ I830LoadPalette(ScrnInfoPtr pScrn, int numColors, int *indices,
    }
 }
 
-static void
-i830_update_front_offset(ScrnInfoPtr pScrn)
-{
-   ScreenPtr pScreen = pScrn->pScreen;
-   I830Ptr pI830 = I830PTR(pScrn);
-   int pitch = pScrn->displayWidth * pI830->cpp;
-   pointer data = NULL;
-
-   /* Update buffer locations, which may have changed as a result of
-    * i830_bind_all_memory().
-    */
-   pScrn->fbOffset = pI830->front_buffer->offset;
-
-   if (pI830->starting || pI830->accel == ACCEL_UXA)
-       return;
-
-   /* If we are still in ScreenInit, there is no screen pixmap to be updated
-    * yet.  We'll fix it up at CreateScreenResources.
-    */
-   if (!pI830->have_gem) {
-       data = pI830->FbBase + pScrn->fbOffset; /* default to legacy */
-   } else {
-      dri_bo *bo = pI830->front_buffer->bo;
-
-      if (bo) {
-	  if (pI830->kernel_exec_fencing) {
-	      if (drm_intel_gem_bo_map_gtt(bo))
-		  xf86DrvMsg(pScrn->scrnIndex, X_WARNING, "%s: bo map failed\n",
-			     __FUNCTION__);
-	      data = bo->virtual;
-	  } else {
-	      /* Will already be pinned by bind_all_memory in this case */
-	      drm_intel_gem_bo_start_gtt_access(bo, 1);
-	      data = pI830->FbBase + bo->offset;
-	  }
-      }
-   }
-   if (!pScreen->ModifyPixmapHeader(pScreen->GetScreenPixmap(pScreen),
-				       pScrn->virtualX, pScrn->virtualY, -1, -1,
-				       pitch, data))
-       FatalError("Couldn't adjust screen pixmap\n");
-}
-
 /**
  * Adjust the screen pixmap for the current location of the front buffer.
  * This is done at EnterVT when buffers are bound as long as the resources
@@ -657,10 +614,7 @@ i830CreateScreenResources(ScreenPtr pScreen)
    if (!(*pScreen->CreateScreenResources)(pScreen))
       return FALSE;
 
-   i830_update_front_offset(pScrn);
-
-   if (pI830->accel == ACCEL_UXA)
-      i830_uxa_create_screen_resources(pScreen);
+   i830_uxa_create_screen_resources(pScreen);
 
    return TRUE;
 }
@@ -1265,13 +1219,6 @@ i830_detect_chipset(ScrnInfoPtr pScrn)
     return TRUE;
 }
 
-static const char *accel_name[] = 
-{
-   "unspecified",
-   "no",
-   "UXA",
-};
-
 static Bool
 I830LoadSyms(ScrnInfoPtr pScrn)
 {
@@ -1358,26 +1305,13 @@ static Bool
 I830AccelMethodInit(ScrnInfoPtr pScrn)
 {
     I830Ptr pI830 = I830PTR(pScrn);
-    MessageType from = X_PROBED;
     int i, num_pipe;
 
-    if (xf86ReturnOptValBool(pI830->Options, OPTION_NOACCEL, FALSE)) {
-	pI830->accel = ACCEL_NONE;
-    } else {
-       pI830->accel = ACCEL_UXA;
-	xf86DrvMsg(pScrn->scrnIndex, from, "Using %s for acceleration\n",
-		   accel_name[pI830->accel]);
-    }
-
     pI830->directRenderingType = DRI_NONE;
     if (!xf86ReturnOptValBool(pI830->Options, OPTION_DRI, TRUE))
 	pI830->directRenderingType = DRI_DISABLED;
 
-    if (pI830->accel == ACCEL_NONE) {
-	xf86DrvMsg(pScrn->scrnIndex, X_CONFIG, "DRI is disabled because it "
-		"needs 2D acceleration.\n");
-	pI830->directRenderingType = DRI_DISABLED;
-    } else if (pScrn->depth != 16 && pScrn->depth != 24) {
+    if (pScrn->depth != 16 && pScrn->depth != 24) {
 	xf86DrvMsg(pScrn->scrnIndex, X_CONFIG, "DRI is disabled because it "
 		"runs only at depths 16 and 24.\n");
 	pI830->directRenderingType = DRI_DISABLED;
@@ -1501,8 +1435,6 @@ I830DrmModeInit(ScrnInfoPtr pScrn)
 {
     I830Ptr pI830 = I830PTR(pScrn);
 
-    pI830->accel = ACCEL_UXA;
-
     if (drmmode_pre_init(pScrn, pI830->drmSubFD, pI830->cpp) == FALSE) {
 	xf86DrvMsg(pScrn->scrnIndex, X_ERROR,
 		   "Kernel modesetting setup failed\n");
@@ -1681,11 +1613,6 @@ I830PreInit(ScrnInfoPtr pScrn, int flags)
    }
    pScrn->currentMode = pScrn->modes;
 
-   if (!IS_I965G(pI830) && pScrn->virtualY > 2048) {
-      xf86DrvMsg(pScrn->scrnIndex, X_ERROR, "Cannot support > 2048 vertical lines. disabling acceleration.\n");
-      pI830->accel = ACCEL_NONE;
-   }
-
    /* Set display resolution */
    xf86SetDpi(pScrn, 0, 0);
 
@@ -1731,19 +1658,17 @@ i830_stop_ring(ScrnInfoPtr pScrn, Bool flush)
 
    DPRINTF(PFX, "ResetState: flush is %s\n", BOOLTOSTRING(flush));
 
-   /* Flush the ring buffer (if enabled), then disable it. */
-   if (pI830->accel != ACCEL_NONE) {
-      temp = INREG(LP_RING + RING_LEN);
-      if (temp & RING_VALID) {
-	 i830_refresh_ring(pScrn);
-	 i830_wait_ring_idle(pScrn);
-      }
-
-      OUTREG(LP_RING + RING_LEN, 0);
-      OUTREG(LP_RING + RING_HEAD, 0);
-      OUTREG(LP_RING + RING_TAIL, 0);
-      OUTREG(LP_RING + RING_START, 0);
+   /* Flush the ring buffer, then disable it. */
+   temp = INREG(LP_RING + RING_LEN);
+   if (temp & RING_VALID) {
+      i830_refresh_ring(pScrn);
+      i830_wait_ring_idle(pScrn);
    }
+
+   OUTREG(LP_RING + RING_LEN, 0);
+   OUTREG(LP_RING + RING_HEAD, 0);
+   OUTREG(LP_RING + RING_TAIL, 0);
+   OUTREG(LP_RING + RING_START, 0);
 }
 
 static void
@@ -1754,9 +1679,6 @@ i830_start_ring(ScrnInfoPtr pScrn)
 
    DPRINTF(PFX, "SetRingRegs\n");
 
-   if (pI830->accel == ACCEL_NONE)
-      return;
-
    OUTREG(LP_RING + RING_LEN, 0);
    OUTREG(LP_RING + RING_TAIL, 0);
    OUTREG(LP_RING + RING_HEAD, 0);
@@ -2253,9 +2175,6 @@ IntelEmitInvarientState(ScrnInfoPtr pScrn)
 {
    I830Ptr pI830 = I830PTR(pScrn);
 
-   if (pI830->accel == ACCEL_NONE)
-      return;
-
    /* If we've emitted our state since the last clobber by another client,
     * skip it.
     */
@@ -2286,13 +2205,13 @@ I830BlockHandler(int i,
     pI830->BlockHandler = pScreen->BlockHandler;
     pScreen->BlockHandler = I830BlockHandler;
 
-    if (pScrn->vtSema && pI830->accel != ACCEL_NONE) {
+    if (pScrn->vtSema) {
        Bool flushed = FALSE;
        /* Emit a flush of the rendering cache, or on the 965 and beyond
 	* rendering results may not hit the framebuffer until significantly
 	* later.
 	*/
-       if (pI830->accel != ACCEL_NONE && (pI830->need_mi_flush || pI830->batch_used))
+       if (pI830->need_mi_flush || pI830->batch_used)
        {
 	  flushed = TRUE;
 	  I830EmitFlush(pScrn);
@@ -2308,8 +2227,7 @@ I830BlockHandler(int i,
        pI830->need_mi_flush = FALSE;
     }
 
-    if (pI830->accel == ACCEL_UXA)
-	i830_uxa_block_handler (pScreen);
+    i830_uxa_block_handler (pScreen);
 
     I830VideoBlockHandler(i, blockData, pTimeout, pReadmask);
 }
@@ -2778,20 +2696,6 @@ I830ScreenInit(int scrnIndex, ScreenPtr pScreen, int argc, char **argv)
    if (!miSetPixmapDepths())
       return FALSE;
 
-   if (pI830->accel == ACCEL_NONE) {
-      xf86DrvMsg(pScrn->scrnIndex, X_PROBED, "Xv is disabled because it "
-		 "needs 2D acceleration.\n");
-      pI830->XvEnabled = FALSE;
-   }
-
-   if (pI830->accel != ACCEL_NONE && !pI830->use_drm_mode) {
-      if (!pI830->have_gem && pI830->ring.mem->size == 0) {
-	  xf86DrvMsg(pScrn->scrnIndex, X_WARNING,
-		     "Disabling acceleration because the ring buffer "
-		      "allocation failed.\n");
-	   pI830->accel = ACCEL_NONE;
-      }
-   }
    i830_init_bufmgr(pScrn);
 
    pScrn->fbOffset = pI830->front_buffer->offset;
@@ -2837,11 +2741,10 @@ I830ScreenInit(int scrnIndex, ScreenPtr pScreen, int argc, char **argv)
 
    xf86DiDGAInit (pScreen, pI830->LinearAddr + pScrn->fbOffset);
 
-   if (pI830->accel != ACCEL_NONE) {
-      if (!I830AccelInit(pScreen)) {
-	 xf86DrvMsg(pScrn->scrnIndex, X_ERROR,
-		    "Hardware acceleration initialization failed\n");
-      }
+   if (!I830AccelInit(pScreen)) {
+      xf86DrvMsg(pScrn->scrnIndex, X_ERROR,
+		 "Hardware acceleration initialization failed\n");
+      return FALSE;
    }
 
    if (IS_I965G(pI830))
@@ -3036,7 +2939,7 @@ I830LeaveVT(int scrnIndex, int flags)
 	 FatalError("DRM_I915_LEAVEVT failed: %s\n", strerror(ret));
    }
 
-   if (pI830->accel == ACCEL_UXA && IS_I965G(pI830))
+   if (IS_I965G(pI830))
       gen4_render_state_cleanup(pScrn);
 
    ret = drmDropMaster(pI830->drmSubFD);
@@ -3121,12 +3024,9 @@ I830EnterVT(int scrnIndex, int flags)
 
    i830_describe_allocations(pScrn, 1, "");
 
-   /* Update the screen pixmap in case the buffer moved */
-   i830_update_front_offset(pScrn);
-
    intel_batch_init(pScrn);
 
-   if (pI830->accel == ACCEL_UXA && IS_I965G(pI830))
+   if (IS_I965G(pI830))
       gen4_render_state_init(pScrn);
 
    if (!pI830->use_drm_mode) {
diff --git a/src/i830_memory.c b/src/i830_memory.c
index 387e52b..2953f3b 100644
--- a/src/i830_memory.c
+++ b/src/i830_memory.c
@@ -445,15 +445,14 @@ i830_allocator_init(ScrnInfoPtr pScrn, unsigned long size)
 		struct drm_i915_gem_init init;
 		int ret;
 
-		if (pI830->accel == ACCEL_UXA) {
-		    sp.param = I915_SETPARAM_NUM_USED_FENCES;
-		    sp.value = 0; /* kernel gets them all */
-
-		    ret = drmCommandWrite(pI830->drmSubFD, DRM_I915_SETPARAM,
-					  &sp, sizeof(sp));
-		    if (ret == 0)
-			pI830->kernel_exec_fencing = TRUE;
-		}
+		sp.param = I915_SETPARAM_NUM_USED_FENCES;
+		sp.value = 0; /* kernel gets them all */
+
+		ret = drmCommandWrite(pI830->drmSubFD, DRM_I915_SETPARAM,
+				      &sp, sizeof(sp));
+		if (ret == 0)
+		    pI830->kernel_exec_fencing = TRUE;
+
 		init.gtt_start = pI830->memory_manager->offset;
 		init.gtt_end = pI830->memory_manager->offset +
 		    pI830->memory_manager->size;
@@ -954,7 +953,7 @@ i830_allocate_ringbuffer(ScrnInfoPtr pScrn)
 {
     I830Ptr pI830 = I830PTR(pScrn);
 
-    if (pI830->accel == ACCEL_NONE || pI830->memory_manager || pI830->ring.mem != NULL)
+    if (pI830->memory_manager || pI830->ring.mem != NULL)
 	return TRUE;
 
     /* We don't have any mechanism in the DRM yet to alert it that we've moved
@@ -1264,7 +1263,8 @@ i830_allocate_2d_memory(ScrnInfoPtr pScrn)
 	}
 
 	/* Allocate the ring buffer first, so it ends up in stolen mem. */
-	i830_allocate_ringbuffer(pScrn);
+	if (!i830_allocate_ringbuffer(pScrn))
+	    return FALSE;
     }
 
     if (pI830->fb_compression)
diff --git a/src/i830_uxa.c b/src/i830_uxa.c
index f423805..c3fdcec 100644
--- a/src/i830_uxa.c
+++ b/src/i830_uxa.c
@@ -452,30 +452,19 @@ i830_transform_is_affine (PictTransformPtr t)
 dri_bo *
 i830_get_pixmap_bo(PixmapPtr pixmap)
 {
-    ScreenPtr screen = pixmap->drawable.pScreen;
-    ScrnInfoPtr scrn = xf86Screens[screen->myNum];
-    I830Ptr i830 = I830PTR(scrn);
-
-    if (i830->accel == ACCEL_UXA)
-	return dixLookupPrivate(&pixmap->devPrivates, &uxa_pixmap_index);
-    else
-	return NULL;
+    return dixLookupPrivate(&pixmap->devPrivates, &uxa_pixmap_index);
 }
 
 void
 i830_set_pixmap_bo(PixmapPtr pixmap, dri_bo *bo)
 {
-    ScrnInfoPtr pScrn = xf86Screens[pixmap->drawable.pScreen->myNum];
-    I830Ptr i830 = I830PTR(pScrn);
     dri_bo  *old_bo = i830_get_pixmap_bo (pixmap);
 
     if (old_bo)
 	dri_bo_unreference (old_bo);
-    if (i830->accel == ACCEL_UXA) {
-	if (bo != NULL)
-	    dri_bo_reference(bo);
-	dixSetPrivate(&pixmap->devPrivates, &uxa_pixmap_index, bo);
-    }
+    if (bo != NULL)
+	dri_bo_reference(bo);
+    dixSetPrivate(&pixmap->devPrivates, &uxa_pixmap_index, bo);
 }
 
 static void
@@ -698,10 +687,9 @@ i830_uxa_init (ScreenPtr pScreen)
 	return FALSE;
 
     i830->uxa_driver = uxa_driver_alloc();
-    if (i830->uxa_driver == NULL) {
-	i830->accel = ACCEL_NONE;
+    if (i830->uxa_driver == NULL)
 	return FALSE;
-    }
+
     memset(i830->uxa_driver, 0, sizeof(*i830->uxa_driver));
 
     i830->bufferOffset = 0;
@@ -743,10 +731,9 @@ i830_uxa_init (ScreenPtr pScreen)
     i830->uxa_driver->pixmap_is_offscreen = i830_uxa_pixmap_is_offscreen;
 
     if(!uxa_driver_init(pScreen, i830->uxa_driver)) {
-	xf86DrvMsg(scrn->scrnIndex, X_INFO,
+	xf86DrvMsg(scrn->scrnIndex, X_ERROR,
 		   "UXA initialization failed\n");
 	xfree(i830->uxa_driver);
-	i830->accel = ACCEL_NONE;
 	return FALSE;
     }
 
commit 4e4b947f0b13f4a62606ccfd5729d5eb26ca0e92
Author: Eric Anholt <eric at anholt.net>
Date:   Thu Jul 9 15:52:16 2009 -0700

    Remove bad comment about 3DSTATE_DRAWING_RECTANGLE size.

diff --git a/src/i965_render.c b/src/i965_render.c
index 8ab984d..eeb23e1 100644
--- a/src/i965_render.c
+++ b/src/i965_render.c
@@ -1233,7 +1233,7 @@ i965_emit_composite_state(ScrnInfoPtr pScrn)
 	/* The drawing rectangle clipping is always on.  Set it to values that
 	 * shouldn't do any clipping.
 	 */
-	OUT_BATCH(BRW_3DSTATE_DRAWING_RECTANGLE | 2); /* XXX 3 for BLC or CTG */
+	OUT_BATCH(BRW_3DSTATE_DRAWING_RECTANGLE | 2);
 	OUT_BATCH(0x00000000);	/* ymin, xmin */
 	OUT_BATCH(DRAW_YMAX(pDst->drawable.height - 1) |
 		  DRAW_XMAX(pDst->drawable.width - 1)); /* ymax, xmax */
commit 9155cfca75a207bce0fad945f32f0cb33eab8c4e
Author: Eric Anholt <eric at anholt.net>
Date:   Thu Jul 9 14:16:07 2009 -0700

    Fix lols in trying to figure out whether this is a 64-bit build.
    
    Noticed by:	Michel Dänzer <michel at daenzer.net>

diff --git a/src/i830_uxa.c b/src/i830_uxa.c
index ef7ac84..f423805 100644
--- a/src/i830_uxa.c
+++ b/src/i830_uxa.c
@@ -638,7 +638,7 @@ i830_uxa_create_pixmap (ScreenPtr screen, int w, int h, int depth, unsigned usag
 	 * Note that size should fit in 32 bits.  We throw out >32767x32767x4,
 	 * and pitch alignment could get us up to 32768x32767x4.
 	 */
-	if (sizeof(unsigned int) == 4 &&
+	if (sizeof(unsigned long) == 4 &&
 	    size > (unsigned int)(1024 * 1024 * 1024))
 	{
 	    fbDestroyPixmap (pixmap);
commit 40e7c9505265823786cf730214db84812a5e494e
Author: Eric Anholt <eric at anholt.net>
Date:   Mon Jul 6 11:54:50 2009 -0700

    Refuse to allocate giant BOs on 32-bit systems.
    
    The overcommit of address space combined with these buffers hitting SW
    fallbacks all the time means that we're probably better off telling the
    application "no" instead of likely silently failing later.
    
    Bug #22601.

diff --git a/src/i830_uxa.c b/src/i830_uxa.c
index eb35014..ef7ac84 100644
--- a/src/i830_uxa.c
+++ b/src/i830_uxa.c
@@ -627,6 +627,22 @@ i830_uxa_create_pixmap (ScreenPtr screen, int w, int h, int depth, unsigned usag
 	     * with drm_intel_bufmgr_check_aperture().
 	     */
 	    size = i830_get_fence_size(i830, stride * h);
+	    assert(size >= stride * h);
+	}
+
+	/* Fail very large allocations on 32-bit systems.  Large BOs will
+	 * tend to hit SW fallbacks frequently, and also will tend to fail
+	 * to successfully map when doing SW fallbacks because we overcommit
+	 * address space for BO access.
+	 *
+	 * Note that size should fit in 32 bits.  We throw out >32767x32767x4,
+	 * and pitch alignment could get us up to 32768x32767x4.
+	 */
+	if (sizeof(unsigned int) == 4 &&
+	    size > (unsigned int)(1024 * 1024 * 1024))
+	{
+	    fbDestroyPixmap (pixmap);
+	    return NullPixmap;
 	}
 
 	bo = drm_intel_bo_alloc_for_render(i830->bufmgr, "pixmap", size, 0);
commit 6337cd23e692cae789d07f429442c425c18e1d4f
Author: Eric Anholt <eric at anholt.net>
Date:   Wed Jul 1 15:54:38 2009 -0700

    Initialize the other argument to drmSetInterfaceVersion.
    
    The kernel ignores it if dd_major is -1, anyway.

diff --git a/src/i830_driver.c b/src/i830_driver.c
index 8986368..257bd6c 100644
--- a/src/i830_driver.c
+++ b/src/i830_driver.c
@@ -1460,6 +1460,7 @@ i830_open_drm_master(ScrnInfoPtr scrn)
     sv.drm_di_major = 1;
     sv.drm_di_minor = 1;
     sv.drm_dd_major = -1;
+    sv.drm_dd_minor = -1;
     err = drmSetInterfaceVersion(i830->drmSubFD, &sv);
     if (err != 0) {
 	xf86DrvMsg(scrn->scrnIndex, X_ERROR,
commit 216d939858abc924f2e32c95518f937f29ea018e
Author: ling.ma at intel.com <ling.ma at intel.com>
Date:   Tue Jul 7 14:26:02 2009 +0800

    enable sdvo lvds scaling function
    
    Currently we implemented basic sdvo lvds function,
    But except for sdvo lvds fixed mode, we can not switch
    to other modes, otherwise display get black. The patch
    intends to work for all modes whose HDisplay and VDisplay
    are lower than fixed mode.
    
    Signed-off-by: Ma Ling <ling.ma at intel.com>

diff --git a/src/i830_sdvo.c b/src/i830_sdvo.c
index acfe599..8f3193b 100644
--- a/src/i830_sdvo.c
+++ b/src/i830_sdvo.c
@@ -95,6 +95,11 @@ struct i830_sdvo_priv {
      * This is set if we detect output of sdvo device as LVDS.
      */
     Bool is_lvds;
+    DisplayModePtr sdvo_lvds_fixed_mode;
+    /**
+     *This is set if output is LVDS or TV.
+     */
+    uint8_t sdvo_flags;
 
     /**
      * Returned SDTV resolutions allowed for the current format, if the
@@ -614,6 +619,8 @@ static Bool
 i830_sdvo_create_preferred_input_timing(xf86OutputPtr output, uint16_t clock,
 					uint16_t width, uint16_t height)
 {
+    I830OutputPrivatePtr    intel_output = output->driver_private;
+    struct i830_sdvo_priv   *dev_priv = intel_output->dev_priv;
     struct i830_sdvo_preferred_input_timing_args args;
     uint8_t status;
 
@@ -622,7 +629,11 @@ i830_sdvo_create_preferred_input_timing(xf86OutputPtr output, uint16_t clock,
     args.width = width;
     args.height = height;
     args.interlace = 0;
-    args.scaled = 0;
+    if (dev_priv->is_lvds &&
+        (dev_priv->sdvo_lvds_fixed_mode->HDisplay != width ||
+        (dev_priv->sdvo_lvds_fixed_mode->VDisplay != height)))
+        args.scaled = 1;
+
     i830_sdvo_write_cmd(output, SDVO_CMD_CREATE_PREFERRED_INPUT_TIMING,
 			&args, sizeof(args));
     status = i830_sdvo_read_response(output, NULL, 0);
@@ -1012,12 +1023,7 @@ i830_sdvo_mode_fixup(xf86OutputPtr output, DisplayModePtr mode,
     I830OutputPrivatePtr    intel_output = output->driver_private;
     struct i830_sdvo_priv   *dev_priv = intel_output->dev_priv;
 
-    if (!dev_priv->is_tv) {
-	/* Make the CRTC code factor in the SDVO pixel multiplier.  The SDVO
-	 * device will be told of the multiplier during mode_set.
-	 */
-	adjusted_mode->Clock *= i830_sdvo_get_pixel_multiplier(mode);
-    } else {
+    if (dev_priv->is_tv) {
 	struct i830_sdvo_dtd output_dtd;
 	Bool success;
 
@@ -1048,6 +1054,7 @@ i830_sdvo_mode_fixup(xf86OutputPtr output, DisplayModePtr mode,
 	    i830_sdvo_get_preferred_input_timing(output, &input_dtd);
 
 	    i830_sdvo_get_mode_from_dtd(adjusted_mode, &input_dtd);
+	    dev_priv->sdvo_flags = input_dtd.part2.sdvo_flags;
 
 	    xf86SetModeCrtc(adjusted_mode, 0);
 
@@ -1063,7 +1070,47 @@ i830_sdvo_mode_fixup(xf86OutputPtr output, DisplayModePtr mode,
 	} else {
 	    return FALSE;
 	}
-    }
+    } else if (dev_priv->is_lvds) {
+        struct i830_sdvo_dtd output_dtd;
+        Bool success;
+
+        /* Set output timings */
+        i830_sdvo_get_dtd_from_mode(&output_dtd,
+                                    dev_priv->sdvo_lvds_fixed_mode);
+        i830_sdvo_set_target_output(output, dev_priv->controlled_output);
+        i830_sdvo_set_output_timing(output, &output_dtd);
+
+        /* Set the input timing to the screen. Assume always input 0. */
+        i830_sdvo_set_target_input(output, TRUE, FALSE);
+
+
+        success = i830_sdvo_create_preferred_input_timing(output,
+                                                          mode->Clock / 10,
+                                                          mode->HDisplay,
+                                                          mode->VDisplay);
+        if (success) {
+            struct i830_sdvo_dtd input_dtd;
+
+            i830_sdvo_get_preferred_input_timing(output, &input_dtd);
+
+            i830_sdvo_get_mode_from_dtd(adjusted_mode, &input_dtd);
+            dev_priv->sdvo_flags = input_dtd.part2.sdvo_flags;
+
+            xf86SetModeCrtc(adjusted_mode, 0);
+
+            /* adjust origin mode's clock for current input,
+              for correct pixel mulitiplier setting. */
+            mode->Clock = adjusted_mode->Clock;
+
+            /* Clock range is required to be in 100-200Mhz */
+            adjusted_mode->Clock *= i830_sdvo_get_pixel_multiplier(mode);
+        } else
+            return FALSE;
+    } else
+	/* Make the CRTC code factor in the SDVO pixel multiplier.  The SDVO
+	 * device will be told of the multiplier during mode_set.
+	 */
+	adjusted_mode->Clock *= i830_sdvo_get_pixel_multiplier(mode);
 
     return TRUE;
 }
@@ -1107,9 +1154,10 @@ i830_sdvo_mode_set(xf86OutputPtr output, DisplayModePtr mode,
 
     /* We have tried to get input timing in mode_fixup, and filled into
        adjusted_mode */
-    if (dev_priv->is_tv)
+    if (dev_priv->is_tv || dev_priv->is_lvds) {
 	i830_sdvo_get_dtd_from_mode(&input_dtd, adjusted_mode);
-    else
+        input_dtd.part2.sdvo_flags = dev_priv->sdvo_flags;
+    } else
 	i830_sdvo_get_dtd_from_mode(&input_dtd, mode);
 
     /* If it's a TV, we already set the output timing in mode_fixup.
@@ -1122,7 +1170,7 @@ i830_sdvo_mode_set(xf86OutputPtr output, DisplayModePtr mode,
     if (dev_priv->is_tv)
 	i830_sdvo_set_tv_format(output);
 
-    if (!dev_priv->is_tv) {
+    if (!dev_priv->is_tv && !dev_priv->is_lvds) {
 	/* Set the output timing to the screen */
 	i830_sdvo_set_output_timing(output, &input_dtd);
     }
@@ -1185,6 +1233,8 @@ i830_sdvo_mode_set(xf86OutputPtr output, DisplayModePtr mode,
     } else {
 	sdvox |= (sdvo_pixel_multiply - 1) << SDVO_PORT_MULTIPLY_SHIFT;
     }
+    if (dev_priv->sdvo_flags & SDVO_STALL_FLAG)
+        sdvox |= SDVO_STALL_SELECT;
 
     i830_sdvo_write_sdvox(output, sdvox);
 
@@ -1343,6 +1393,16 @@ i830_sdvo_mode_valid(xf86OutputPtr output, DisplayModePtr pMode)
 
     if (dev_priv->pixel_clock_max < pMode->Clock)
 	return MODE_CLOCK_HIGH;
+    if (dev_priv->is_lvds) {
+        if (dev_priv->sdvo_lvds_fixed_mode == NULL)
+            return MODE_PANEL;
+
+        if (pMode->HDisplay > dev_priv->sdvo_lvds_fixed_mode->HDisplay)
+            return MODE_PANEL;
+
+        if (pMode->VDisplay > dev_priv->sdvo_lvds_fixed_mode->VDisplay)
+            return MODE_PANEL;
+    }
 
     return MODE_OK;
 }
@@ -1556,6 +1616,8 @@ i830_sdvo_check_hdmi_encode (xf86OutputPtr output)
 /* This function will try to fetch native modes for sdvo lvds output*/
 static DisplayModePtr i830_sdvo_lvds_fetch_modes(xf86OutputPtr  output)
 {
+    I830OutputPrivatePtr intel_output =output->driver_private;
+    struct i830_sdvo_priv *dev_priv = intel_output->dev_priv;
     I830Ptr                 pI830 = I830PTR(output->scrn);
     DisplayModePtr          modes;
 
@@ -1573,8 +1635,11 @@ static DisplayModePtr i830_sdvo_lvds_fetch_modes(xf86OutputPtr  output)
 
 end:
     /* Guarantee the the first preferred mode is chosen by xserver */
-    if (modes != NULL)
+    if (modes != NULL) {
+        dev_priv->sdvo_lvds_fixed_mode = xf86DuplicateMode(modes);
         modes->type |= (M_T_DRIVER | M_T_PREFERRED);
+        xf86SetModeCrtc(dev_priv->sdvo_lvds_fixed_mode, 0);
+    }
     return modes;
 }
 
@@ -1958,6 +2023,10 @@ i830_sdvo_destroy (xf86OutputPtr output)
 		xfree(randr_output->name);
 	}
 
+	if (dev_priv->sdvo_lvds_fixed_mode)
+		xf86DeleteMode(&dev_priv->sdvo_lvds_fixed_mode,
+			dev_priv->sdvo_lvds_fixed_mode);
+
 	xfree (intel_output);
     }
 }
diff --git a/src/i830_sdvo_regs.h b/src/i830_sdvo_regs.h
index ab38355..9fb99b6 100644
--- a/src/i830_sdvo_regs.h
+++ b/src/i830_sdvo_regs.h
@@ -722,3 +722,5 @@ struct i830_sdvo_encode{
     uint8_t dvi_rev;
     uint8_t hdmi_rev;
 } __attribute__ ((packed));
+
+#define SDVO_STALL_FLAG (1 << 7)
commit 0402f4f331148084552bd3963dbcb3fb900be8ea
Author: Simon Farnsworth <simon.farnsworth at onelan.co.uk>
Date:   Thu Jun 18 12:33:47 2009 +0100

    Raise XV limit to 2048x2048 to match hardware limits.
    
    The bigrequests limit isn't present in current X servers (tested using
    textured video on a 965 with both image and window at 2048x2048 on a
    1920x1200 display, and image at 2048x2048, window at 1024x1024).
    
    Remove the artificial limit, enabling full-screen HD video when
    rotated.

diff --git a/src/i830_video.c b/src/i830_video.c
index 573d681..4bba902 100644
--- a/src/i830_video.c
+++ b/src/i830_video.c
@@ -112,19 +112,11 @@ static Atom xvSyncToVblank;
 
 /* Limits for the overlay/textured video source sizes.  The documented hardware
  * limits are 2048x2048 or better for overlay and both of our textured video
- * implementations.  However, we run into the bigrequests limit of (currently)
- * 4MB, which even the planar format's 2048*2048*1.5 bytes is larger than.
- * Conveniently, the HD resolution, even in packed format, takes
- * (1920*1088*2) bytes, which is just shy of 4MB.  Additionally, on the 830
- * and 845, larger sizes resulted in the card hanging, so we keep the limits
- * lower there.
- *
- * While the HD resolution is actually 1920x1080, we increase our advertised
- * size to 1088 because some software wants to send an image aligned to
- * 16-pixel boundaries.
+ * implementations.  Additionally, on the 830 and 845, larger sizes resulted in
+ * the card hanging, so we keep the limits lower there.
  */
-#define IMAGE_MAX_WIDTH		1920
-#define IMAGE_MAX_HEIGHT	1088
+#define IMAGE_MAX_WIDTH		2048
+#define IMAGE_MAX_HEIGHT	2048
 #define IMAGE_MAX_WIDTH_LEGACY	1024
 #define IMAGE_MAX_HEIGHT_LEGACY	1088
 
commit a66357832388ba9db21a4b3bf8311d9d1f1ab308
Author: Keith Packard <keithp at keithp.com>
Date:   Tue Jul 7 14:13:57 2009 -0700

    non-DRI FB resize failed to assign the screen pixmap devPrivate.ptr (22328)
    
    When not using DRI, the screen pixmap is not in a bo, and so the usual
    enable/disable access functions don't adjust the pixmap devPrivate field,
    leaving it to the frame buffer allocation code to assign this correctly.
    
    During mode setting and fb resizing, FB access is disabled, and the
    screen pixmap devPrivate is stashed away by xf86EnableDisableFBAccess,
    to be restored when FB access is turned back on. This means that we have to
    set the pixmap devPrivate.ptr (in case xf86EnableDisableFBAccess doesn't
    do this), along with storing the address in the scrn->pixmapPrivate field.
    
    Signed-off-by: Keith Packard <keithp at keithp.com>
    Reviewed-by: Jesse Barnes <jbarnes at virtuousgeek.org>

diff --git a/src/i830_driver.c b/src/i830_driver.c
index d1acaa5..8986368 100644
--- a/src/i830_driver.c
+++ b/src/i830_driver.c
@@ -926,6 +926,7 @@ i830_xf86crtc_resize (ScrnInfoPtr scrn, int width, int height)
 	i830_memory *new_front, *old_front;
 	Bool	    tiled;
 	ScreenPtr   screen = screenInfo.screens[scrn->scrnIndex];
+	pointer	    data = NULL;
 
 	scrn->displayWidth = i830_pad_drawable_width(width, i830->cpp);
 	tiled = i830_tiled_width(i830, &scrn->displayWidth, i830->cpp);
@@ -945,9 +946,15 @@ i830_xf86crtc_resize (ScrnInfoPtr scrn, int width, int height)
 	i830_set_pixmap_bo(screen->GetScreenPixmap(screen),
 			   new_front->bo);
 	scrn->fbOffset = i830->front_buffer->offset;
+	if (!new_front->bo)
+	    data = i830->FbBase + scrn->fbOffset;
 	screen->ModifyPixmapHeader(screen->GetScreenPixmap(screen),
 				   width, height, -1, -1, scrn->displayWidth * i830->cpp,
-				   NULL);
+				   data);
+	/* ick. xf86EnableDisableFBAccess smashes the screen pixmap devPrivate,
+	 * so update the value it uses
+	 */
+	scrn->pixmapPrivate.ptr = data;
 	xf86DrvMsg(scrn->scrnIndex, X_INFO, "New front buffer at 0x%lx\n",
 		   i830->front_buffer->offset);
 	i830_set_new_crtc_bo(scrn);
commit c889b34e432198d5410a068eff3089ff5314ac27
Author: Chris Wilson <chris at chris-wilson.co.uk>
Date:   Tue Jul 7 18:05:01 2009 +0100

    Check for a valid I830Ptr before closing master.
    
    After failing to become DRM master, the X server dies attempting to close
    the master fd during free:
    
    (EE) intel(0): [drm] failed to set drm interface version.
    (EE) intel(0): Failed to become DRM master.
    (EE) intel(0): failed to get resources: Bad file descriptor
    (EE) intel(0): Kernel modesetting setup failed
    
    Backtrace:
    0: X(xorg_backtrace+0x3b) [0x8133a3b]
    1: X(xf86SigHandler+0x55) [0x80c7945]
    2: [0xb805d400]
    3: /usr/lib/xorg/modules/drivers//intel_drv.so [0xb7b4bfcc]
    4: X(xf86DeleteScreen+0x6b) [0x80d465b]
    5: X(InitOutput+0x548) [0x80b0158]
    6: X(main+0x1cb) [0x807220b]
    7: /lib/tls/i686/cmov/libc.so.6(__libc_start_main+0xe5) [0xb7d107a5]
    8: X [0x8071881]
    Saw signal 11.  Server aborting.
     ddxSigGiveUp: Closing log
     ddxSigGiveUp: re-raising 11
    Segmentation fault
    
    Signed-off-by: Chris Wilson <chris at chris-wilson.co.uk>

diff --git a/src/i830_driver.c b/src/i830_driver.c
index c125a73..d1acaa5 100644
--- a/src/i830_driver.c
+++ b/src/i830_driver.c
@@ -1482,7 +1482,7 @@ static void
 i830_close_drm_master(ScrnInfoPtr scrn)
 {
     I830Ptr i830 = I830PTR(scrn);
-    if (i830->drmSubFD > 0) {
+    if (i830 && i830->drmSubFD > 0) {
 	drmClose(i830->drmSubFD);
 	i830->drmSubFD = -1;
     }
commit 705042f497b7b3843c2dcc5c160fb8dfeac1472a
Author: Keith Packard <keithp at keithp.com>
Date:   Mon Jul 6 13:49:31 2009 -0700

    Handle DRI2INFOREC version 3
    
    This DRI2 version does not support the old CreateBuffers/DestroyBuffers
    interface anymore.
    
    Signed-off-by: Keith Packard <keithp at keithp.com>

diff --git a/src/i830_dri.c b/src/i830_dri.c
index 31df642..240c519 100644
--- a/src/i830_dri.c
+++ b/src/i830_dri.c
@@ -415,16 +415,22 @@ Bool I830DRI2ScreenInit(ScreenPtr pScreen)
     info.driverName = IS_I965G(pI830) ? "i965" : "i915";
     info.deviceName = p;
 
-#ifdef USE_DRI2_1_1_0
+#if DRI2INFOREC_VERSION >= 3
+    info.version = 3;
+    info.CreateBuffer = I830DRI2CreateBuffer;
+    info.DestroyBuffer = I830DRI2DestroyBuffer;
+#else
+# ifdef USE_DRI2_1_1_0
     info.version = 2;
     info.CreateBuffers = NULL;
     info.DestroyBuffers = NULL;
     info.CreateBuffer = I830DRI2CreateBuffer;
     info.DestroyBuffer = I830DRI2DestroyBuffer;
-#else
+# else
     info.version = 1;
     info.CreateBuffers = I830DRI2CreateBuffers;
     info.DestroyBuffers = I830DRI2DestroyBuffers;
+# endif
 #endif
 
     info.CopyRegion = I830DRI2CopyRegion;
commit 2ebc7d32e47b5edd5b776c39f936ed4e053caac2
Author: Keith Packard <keithp at keithp.com>
Date:   Thu Jul 2 13:13:14 2009 -0700

    Update to multi-API DRI2 interface
    
    The DRI2 interface was changed to support both old and new drivers in an
    API/ABI compatible fashion. This change syncs the intel driver with the new
    version of the DRI2 API.
    
    Signed-off-by: Keith Packard <keithp at keithp.com>

diff --git a/src/i830_dri.c b/src/i830_dri.c
index 7e2d97e..31df642 100644
--- a/src/i830_dri.c
+++ b/src/i830_dri.c
@@ -161,24 +161,24 @@ I830DRI2CreateBuffers(DrawablePtr pDraw, unsigned int *attachments, int count)
 
 #else
 
-static DRI2BufferPtr
+static DRI2Buffer2Ptr
 I830DRI2CreateBuffer(DrawablePtr pDraw, unsigned int attachment,
 		     unsigned int format)
 {
     ScreenPtr pScreen = pDraw->pScreen;
     ScrnInfoPtr pScrn = xf86Screens[pScreen->myNum];
     I830Ptr pI830 = I830PTR(pScrn);
-    DRI2BufferPtr buffers;
+    DRI2Buffer2Ptr buffer;
     dri_bo *bo;
     I830DRI2BufferPrivatePtr privates;
     PixmapPtr pPixmap;
 
-    buffers = xcalloc(1, sizeof *buffers);
-    if (buffers == NULL)
+    buffer = xcalloc(1, sizeof *buffer);
+    if (buffer == NULL)
 	return NULL;
     privates = xcalloc(1, sizeof *privates);
     if (privates == NULL) {
-	xfree(buffers);
+	xfree(buffer);
 	return NULL;
     }
 
@@ -217,21 +217,21 @@ I830DRI2CreateBuffer(DrawablePtr pDraw, unsigned int attachment,
     }
 
 
-    buffers->attachment = attachment;
-    buffers->pitch = pPixmap->devKind;
-    buffers->cpp = pPixmap->drawable.bitsPerPixel / 8;
-    buffers->driverPrivate = privates;
-    buffers->format = format;
-    buffers->flags = 0; /* not tiled */
+    buffer->attachment = attachment;
+    buffer->pitch = pPixmap->devKind;
+    buffer->cpp = pPixmap->drawable.bitsPerPixel / 8;
+    buffer->driverPrivate = privates;
+    buffer->format = format;
+    buffer->flags = 0; /* not tiled */
     privates->pPixmap = pPixmap;
     privates->attachment = attachment;
 
     bo = i830_get_pixmap_bo (pPixmap);
-    if (dri_bo_flink(bo, &buffers->name) != 0) {
+    if (dri_bo_flink(bo, &buffer->name) != 0) {
 	/* failed to name buffer */
     }
 
-    return buffers;
+    return buffer;
 }
 
 #endif
@@ -261,7 +261,7 @@ I830DRI2DestroyBuffers(DrawablePtr pDraw, DRI2BufferPtr buffers, int count)
 #else
 
 static void
-I830DRI2DestroyBuffer(DrawablePtr pDraw, DRI2BufferPtr buffer)
+I830DRI2DestroyBuffer(DrawablePtr pDraw, DRI2Buffer2Ptr buffer)
 {
     if (buffer) {
 	I830DRI2BufferPrivatePtr private = buffer->driverPrivate;
commit f6f79eb629184366b1355743d601129a526da90c
Author: Rémi Cardona <remi at gentoo.org>
Date:   Mon Jul 6 11:01:31 2009 +0200

    remove unused shader program
    
    This file is not even referenced by any Makefile.am
    
    Acked-by: Zhenyu Wang <zhenyuw at linux.intel.com>

diff --git a/src/render_program/exa_wm_nomask.g4a b/src/render_program/exa_wm_nomask.g4a
deleted file mode 100644
index eb535fe..0000000
--- a/src/render_program/exa_wm_nomask.g4a
+++ /dev/null
@@ -1,143 +0,0 @@
-/*
- * Copyright © 2006 Intel Corporation
- *
- * Permission is hereby granted, free of charge, to any person obtaining a
- * copy of this software and associated documentation files (the "Software"),
- * to deal in the Software without restriction, including without limitation
- * the rights to use, copy, modify, merge, publish, distribute, sublicense,
- * and/or sell copies of the Software, and to permit persons to whom the
- * Software is furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice (including the next
- * paragraph) shall be included in all copies or substantial portions of the
- * Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
- * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
- * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
- * IN THE SOFTWARE.
- *
- * Authors:
- *    Wang Zhenyu <zhenyu.z.wang at intel.com>
- */
-
-/*
- * This's for exa composite operation in no mask picture case.
- * The simplest case is just sending what src picture has to dst picture.
- */
-
-/* I think this should be same as in g4a program for texture video,
-   as we also use 16-pixel dispatch. and SF scale in g3 is useful for us. */
-
-/* The initial payload of the thread is always g0.
- * WM_URB (incoming URB entries) is g3
- * X0_R is g4
- * X1_R is g5
- * Y0_R is g6
- * Y1_R is g7
- */
-
-
-/* Load X and Y coordinates and compute per-pixel coordinates */
-add (16)	g4<1>UW		g1.8<2,4,0>UW	0x10101010V	{ align1 };
-add (16)	g6<1>UW		g1.10<2,4,0>UW	0x11001100V	{ align1 };
-
-    /* Now, map these screen space coordinates into texture coordinates. */
-    
-    /* subtract screen-space X origin of vertex 0. */
-add (16)	g12<1>F		g4<8,8,1>UW	-g1.0<0,1,0>F { compr align1 };
-
-    /* subtract screen-space Y origin of vertex 0. */
-add (16)	g16<1>F		g6<8,8,1>UW	-g1.4<0,1,0>F { compr align1 };
-
-	/* g8/g9 = X * du/dx */
-mul (16)	g8<1>F		g12<8,8,1>F	g3.0<0,1,0>F { compr align1 };
-
-	/* g10/g11 = Y * du/dy */
-mul (16)	g10<1>F		g16<8,8,1>F	g3.4<0,1,0>F { compr align1 };
-
-	/* g8/g9 = X du/dx + Y du/dy */
-add (16)	g8<1>F		g8<8,8,1>F	g10<8,8,1>F { compr align1 };
-
-	/* m1/m2 = g8/g9 + uo */
-add (16)	m1<1>F		g8<8,8,1>F	g3.12<0,1,0>F { compr align1 };
-
-
-	/* g8/g9 = X * dv/dx */
-mul (16)	g8<1>F		g12<8,8,1>F	g3.16<0,1,0>F { compr align1 };
-
-	/* g10/g11 = Y * du/dy */
-mul (16)	g10<1>F		g16<8,8,1>F	g3.20<0,1,0>F { compr align1 };
-
-	/* g8/g9 = X du/dx + Y du/dy */
-add (16)	g8<1>F		g8<8,8,1>F	g10<8,8,1>F { compr align1 };
-
-	/* m3/m4 = g8/g9 + vo */
-add (16)	m3<1>F		g8<8,8,1>F	g3.28<0,1,0>F { compr align1 };
-
-
-/* prepare sampler read back gX register, which would be written back to output */
-
-/* use simd16 sampler, param 0 is u, param 1 is v. */
-/* 'payload' loading, assuming tex coord start from g4 */
-
-/* m0 will be copied with g0, as it contains send desc */
-/* emit sampler 'send' cmd */
-send (16) 0 		/* msg reg index */
-	g12<1>UW 	/* readback */
-	g0<8,8,1>UW  	/* copy to msg start reg*/
-	sampler (1,0,F)  /* sampler message description, (binding_table,sampler_index,datatype)
-			 /* here(src->dst) we should use src_sampler and src_surface */
-	mlen 5 rlen 8 { align1 };   /* required message len 5, readback len 8 */
-
-mov (8) g19<1>UD g19<8,8,1>UD { align1 };  /* wait sampler return */
-/* if we set up read-back reg correctly, emit dataport write 'send' cmd with EOT */
-
-/* m0, m1 are all direct passed by PS thread payload */
-mov (8) m1<1>F g1<8,8,1>F { align1 };
-
-/* prepare data in m2-m5 for subspan(1,0), m6-m9 for subspan(3,2), then it's ready to write */
-/* g12 -> m2
-   g13 -> m6
-   g14 -> m3
-   g15 -> m7
-   g16 -> m4
-   g17 -> m8
-   g18 -> m5
-   g19 -> m9
-*/
-mov (8) m2<1>F g12<8,8,1>F { align1 };
-mov (8) m3<1>F g14<8,8,1>F { align1 };
-mov (8) m4<1>F g16<8,8,1>F { align1 };
-mov (8) m5<1>F g18<8,8,1>F { align1 };
-mov (8) m6<1>F g13<8,8,1>F { align1 };
-mov (8) m7<1>F g15<8,8,1>F { align1 };
-mov (8) m8<1>F g17<8,8,1>F { align1 };
-mov (8) m9<1>F g19<8,8,1>F { align1 };
-
-/* m0, m1 are all direct passed by PS thread payload */
-mov (8) m1<1>UD g1<8,8,1>UD { align1 };
-
-/* write */
-send (16) 0 acc0<1>UW g0<8,8,1>UW write (
-	0,  /* binding_table */
-	8,  /* pixel scordboard clear, msg type simd16 single source */
-	4,  /* render target write */
-	0   /* no write commit message */
-	) 
-	mlen 10
-	rlen 0
-	{ align1 EOT };
-
-nop;
-nop;
-nop;
-nop;
-nop;
-nop;
-nop;
-nop;
-nop;
commit 7e722ada533777c5e9ddf44bb4d770bacf8e13bf
Author: Zhenyu Wang <zhenyuw at linux.intel.com>
Date:   Mon Jul 6 16:25:13 2009 +0800

    Disable FBC on IGDNG
    
    Don't make FBC count for memory allocation.
    
    Signed-off-by: Zhenyu Wang <zhenyuw at linux.intel.com>

diff --git a/src/i830.h b/src/i830.h
index 25ed424..dc5e0c8 100644
--- a/src/i830.h
+++ b/src/i830.h
@@ -839,6 +839,8 @@ static inline int i830_fb_compression_supported(I830Ptr pI830)
 	return FALSE;
     if (IS_IGD(pI830))
 	return FALSE;
+    if (IS_IGDNG(pI830))
+	return FALSE;
     /* fbc depends on tiled surface. And we don't support tiled
      * front buffer with unaccelerated.
      */
commit 74227141923a2f5049592219ab80e8733062a5d9
Author: Barry Scott <barry.scott at onelan.co.uk>
Date:   Tue Jun 23 14:14:50 2009 +0100

    Fix segv for clipped movie window
    
    When playing a movie that is clipped on its left and right edges the Xorg
    server will SEGV sometimes. This is because the intel driver ignores the
    clipping info when it copies the planes out of the XV data.
    
    The check for the optimised copy was wrong to ignore the width required.
    Which leads to too much data being copied by the memcpy. It the source buffer
    happens to end exactly on a page boundary the server will SEGV.
    
    As we reviewed the code we checked the calculation of src1, src2 and src3.
    The patch includes additional comments to make it clear what the elements of
    the calculation are.
    
    This bug exists in git head and we also see it in 2.4.1.
    
    Barry
    
    Reviewed-by: Ian Romanick <ian.d.romanick at intel.com>

diff --git a/src/i830_video.c b/src/i830_video.c
index c295159..573d681 100644
--- a/src/i830_video.c
+++ b/src/i830_video.c
@@ -1399,7 +1399,8 @@ I830CopyPlanarData(ScrnInfoPtr pScrn, I830PortPrivPtr pPriv,
 
     switch (pPriv->rotation) {
     case RR_Rotate_0:
-	if (srcPitch == dstPitch2)
+       /* optimise for the case of no clipping */
+	if (srcPitch == dstPitch2 && srcPitch == w)
 	    memcpy (dst1, src1, srcPitch * h);
 	else
 	    for (i = 0; i < h; i++) {
@@ -1438,7 +1439,11 @@ I830CopyPlanarData(ScrnInfoPtr pScrn, I830PortPrivPtr pPriv,
     }
 
     /* Copy V data for YV12, or U data for I420 */
-    src2 = buf + (srcH * srcPitch) + ((top * srcPitch) >> 2) + (left >> 1);
+    src2 = buf +                            /* start of YUV data */
+                (srcH * srcPitch) +         /* move over Luma plane */
+                ((top * srcPitch) >> 2) +   /* move down from by top lines */
+                    (left >> 1);            /* move left by left pixels */
+
 #if 0
     ErrorF("src2 is %p, offset is %ld\n", src2,
 	   (unsigned long)src2 - (unsigned long)buf);
@@ -1457,7 +1462,8 @@ I830CopyPlanarData(ScrnInfoPtr pScrn, I830PortPrivPtr pPriv,
 
     switch (pPriv->rotation) {
     case RR_Rotate_0:
-	if (srcPitch2 == dstPitch)
+       /* optimise for the case of no clipping */
+	if (srcPitch2 == dstPitch && srcPitch2 == (w/2))
 	    memcpy (dst2, src2, h/2 * srcPitch2);
 	else
 	    for (i = 0; i < h / 2; i++) {
@@ -1496,8 +1502,11 @@ I830CopyPlanarData(ScrnInfoPtr pScrn, I830PortPrivPtr pPriv,
     }
 
     /* Copy U data for YV12, or V data for I420 */
-    src3 = buf + (srcH * srcPitch) + ((srcH >> 1) * srcPitch2) +
-    ((top * srcPitch) >> 2) + (left >> 1);
+    src3 = buf +                            /* start of YUV data */
+                (srcH * srcPitch) +         /* move over Luma plane */
+                ((srcH >> 1) * srcPitch2) + /* move over Chroma plane */
+                ((top * srcPitch) >> 2) +   /* move down from by top lines */
+                    (left >> 1);            /* move left by left pixels */
 #if 0
     ErrorF("src3 is %p, offset is %ld\n", src3,
 	   (unsigned long)src3 - (unsigned long)buf);
@@ -1516,7 +1525,8 @@ I830CopyPlanarData(ScrnInfoPtr pScrn, I830PortPrivPtr pPriv,
 
     switch (pPriv->rotation) {
     case RR_Rotate_0:
-	if (srcPitch2 == dstPitch)
+       /* optimise for the case of no clipping */
+	if (srcPitch2 == dstPitch && srcPitch2 == (w/2))
 	    memcpy (dst3, src3, srcPitch2 * h/2);
 	else
 	    for (i = 0; i < h / 2; i++) {
commit c1755599db1d9a20954b84ccc07afd892bb6ac9e
Author: Jesse Barnes <jbarnes at virtuousgeek.org>
Date:   Thu Jul 2 13:04:51 2009 -0700

    Clear the bo on the rotate scratch pixmap
    
    Since the scratch pixmap header will be re-used after allocation, we
    need to clear its bo attachment when we stop using it, otherwise a later
    user will use a bogus bo.
    
    Reviewed-by: Keith Packard <keithp at keithp.com>
    Signed-off-by: Jesse Barnes <jbarnes at virtuousgeek.org>

diff --git a/src/drmmode_display.c b/src/drmmode_display.c
index d5904ad..e9296dc 100644
--- a/src/drmmode_display.c
+++ b/src/drmmode_display.c
@@ -382,8 +382,10 @@ drmmode_crtc_shadow_destroy(xf86CrtcPtr crtc, PixmapPtr rotate_pixmap, void *dat
 	drmmode_crtc_private_ptr drmmode_crtc = crtc->driver_private;
 	drmmode_ptr drmmode = drmmode_crtc->drmmode;
 
-	if (rotate_pixmap)
+	if (rotate_pixmap) {
+		i830_set_pixmap_bo(rotate_pixmap, NULL);
 		FreeScratchPixmapHeader(rotate_pixmap);
+	}
 
 
 	if (data) {
diff --git a/src/i830_display.c b/src/i830_display.c
index 26874c5..59ededc 100644
--- a/src/i830_display.c
+++ b/src/i830_display.c
@@ -1966,8 +1966,10 @@ i830_crtc_shadow_destroy(xf86CrtcPtr crtc, PixmapPtr rotate_pixmap, void *data)
     ScrnInfoPtr pScrn = crtc->scrn;
     I830CrtcPrivatePtr intel_crtc = crtc->driver_private;
 
-    if (rotate_pixmap)
+    if (rotate_pixmap) {
+	i830_set_pixmap_bo(rotate_pixmap, NULL);
 	FreeScratchPixmapHeader(rotate_pixmap);
+    }
 
     if (data) {
 	/* Be sure to sync acceleration before the memory gets unbound. */
commit 324b4686204feb3a7370eeecaff8ba44635f73ca
Author: Daniel Vetter <daniel.vetter at ffwll.ch>
Date:   Thu Jul 2 14:15:37 2009 +0200

    Xv i830_display_video splitup: extract i830_update_scaling_factors
    
    Just moved the code, no other changes.
    
    Signed-off-by: Daniel Vetter <daniel.vetter at ffwll.ch>

diff --git a/src/i830_video.c b/src/i830_video.c
index 58991a4..c295159 100644
--- a/src/i830_video.c
+++ b/src/i830_video.c
@@ -1887,6 +1887,90 @@ i830_update_polyphase_coeffs(I830OverlayRegPtr	overlay,
 		    N_HORIZ_UV_TAPS);
 }
 
+/*
+ * Calculate horizontal and vertical scaling factors and polyphase
+ * coefficients.
+ */
+
+static Bool
+i830_update_scaling_factors(I830OverlayRegPtr overlay,
+	short src_w, short src_h, short drw_w, short drw_h)
+{
+    int xscaleInt, xscaleFract, yscaleInt, yscaleFract;
+    int xscaleIntUV, xscaleFractUV;
+    int yscaleIntUV, yscaleFractUV;
+    uint32_t newval;
+    Bool scaleChanged = FALSE;
+
+    /*
+     * Y down-scale factor as a multiple of 4096.
+     */
+    xscaleFract = ((src_w - 1) << 12) / drw_w;
+    yscaleFract = ((src_h - 1) << 12) / drw_h;
+
+    /* Calculate the UV scaling factor.
+     * UV is half the size of Y -- YUV420 */
+    xscaleFractUV = xscaleFract / 2;
+    yscaleFractUV = yscaleFract / 2;
+
+    /*
+     * To keep the relative Y and UV ratios exact, round the Y scales
+     * to a multiple of the Y/UV ratio.
+     */
+    xscaleFract = xscaleFractUV * 2;
+    yscaleFract = yscaleFractUV * 2;
+
+    /* Integer (un-multiplied) values. */
+    xscaleInt = xscaleFract >> 12;
+    yscaleInt = yscaleFract >> 12;
+
+    xscaleIntUV = xscaleFractUV >> 12;
+    yscaleIntUV = yscaleFractUV >> 12;
+
+    OVERLAY_DEBUG("xscale: %x.%03x, yscale: %x.%03x\n", xscaleInt,
+		  xscaleFract & 0xFFF, yscaleInt, yscaleFract & 0xFFF);
+    OVERLAY_DEBUG("UV xscale: %x.%03x, UV yscale: %x.%03x\n", xscaleIntUV,
+		  xscaleFractUV & 0xFFF, yscaleIntUV, yscaleFractUV & 0xFFF);
+
+    /* shouldn't get here */
+    if (xscaleInt > 7) {
+	OVERLAY_DEBUG("xscale: bad scale\n");
+	return FALSE;
+    }
+
+    /* shouldn't get here */
+    if (xscaleIntUV > 7) {
+	OVERLAY_DEBUG("xscaleUV: bad scale\n");
+	return FALSE;
+    }
+
+    newval = (xscaleInt << 16) |
+    ((xscaleFract & 0xFFF) << 3) | ((yscaleFract & 0xFFF) << 20);
+    if (newval != overlay->YRGBSCALE) {
+	scaleChanged = TRUE;
+	overlay->YRGBSCALE = newval;
+    }
+
+    newval = (xscaleIntUV << 16) | ((xscaleFractUV & 0xFFF) << 3) |
+    ((yscaleFractUV & 0xFFF) << 20);
+    if (newval != overlay->UVSCALE) {
+	scaleChanged = TRUE;
+	overlay->UVSCALE = newval;
+    }
+
+    newval = yscaleInt << 16 | yscaleIntUV;
+    if (newval != overlay->UVSCALEV) {
+	scaleChanged = TRUE;
+	overlay->UVSCALEV = newval;
+    }
+
+    if (scaleChanged) {
+	i830_update_polyphase_coeffs(overlay, xscaleFract, xscaleFractUV);
+    }
+
+    return scaleChanged;
+}
+
 static void
 i830_display_video(ScrnInfoPtr pScrn, xf86CrtcPtr crtc,
 		   int id, short width, short height,
@@ -2025,89 +2109,8 @@ i830_display_video(ScrnInfoPtr pScrn, xf86CrtcPtr crtc,
 		  overlay->DWINPOS, overlay->DWINSZ);
     OVERLAY_DEBUG("dst: %d x %d, src: %d x %d\n", drw_w, drw_h, src_w, src_h);
 
-    /* 
-     * Calculate horizontal and vertical scaling factors and polyphase
-     * coefficients.
-     */
-
-    {
-	int xscaleInt, xscaleFract, yscaleInt, yscaleFract;
-	int xscaleIntUV, xscaleFractUV;
-	int yscaleIntUV, yscaleFractUV;
-	/* UV is half the size of Y -- YUV420 */
-	int uvratio = 2;
-	uint32_t newval;
-
-	/*
-	 * Y down-scale factor as a multiple of 4096.
-	 */
-	xscaleFract = ((src_w - 1) << 12) / drw_w;
-	yscaleFract = ((src_h - 1) << 12) / drw_h;
-
-	/* Calculate the UV scaling factor. */
-	xscaleFractUV = xscaleFract / uvratio;
-	yscaleFractUV = yscaleFract / uvratio;
-
-	/*
-	 * To keep the relative Y and UV ratios exact, round the Y scales
-	 * to a multiple of the Y/UV ratio.
-	 */
-	xscaleFract = xscaleFractUV * uvratio;
-	yscaleFract = yscaleFractUV * uvratio;
-
-	/* Integer (un-multiplied) values. */
-	xscaleInt = xscaleFract >> 12;
-	yscaleInt = yscaleFract >> 12;
-
-	xscaleIntUV = xscaleFractUV >> 12;
-	yscaleIntUV = yscaleFractUV >> 12;
-
-	OVERLAY_DEBUG("xscale: %x.%03x, yscale: %x.%03x\n", xscaleInt,
-		      xscaleFract & 0xFFF, yscaleInt, yscaleFract & 0xFFF);
-	OVERLAY_DEBUG("UV xscale: %x.%03x, UV yscale: %x.%03x\n", xscaleIntUV,
-		      xscaleFractUV & 0xFFF, yscaleIntUV, yscaleFractUV & 0xFFF);
-
-	/* shouldn't get here */
-	if (xscaleInt > 7) {
-	    OVERLAY_DEBUG("xscale: bad scale\n");
-	    return;
-	}
-
-	/* shouldn't get here */
-	if (xscaleIntUV > 7) {
-	    OVERLAY_DEBUG("xscaleUV: bad scale\n");
-	    return;
-	}
-
-	newval = (xscaleInt << 16) |
-	((xscaleFract & 0xFFF) << 3) | ((yscaleFract & 0xFFF) << 20);
-	if (newval != overlay->YRGBSCALE) {
-	    scaleChanged = TRUE;
-	    overlay->YRGBSCALE = newval;
-	}
-
-	newval = (xscaleIntUV << 16) | ((xscaleFractUV & 0xFFF) << 3) |
-	((yscaleFractUV & 0xFFF) << 20);
-	if (newval != overlay->UVSCALE) {
-	    scaleChanged = TRUE;
-	    overlay->UVSCALE = newval;
-	}
-
-	newval = yscaleInt << 16 | yscaleIntUV;
-	if (newval != overlay->UVSCALEV) {
-	    scaleChanged = TRUE;
-	    overlay->UVSCALEV = newval;
-	}
-
-	/* Recalculate coefficients if the scaling changed. */
-
-	/*
-	 * Only Horizontal coefficients so far.
-	 */
-	if (scaleChanged) {
-	    i830_update_polyphase_coeffs(overlay, xscaleFract, xscaleFractUV);
-	}
-    }
+    scaleChanged = i830_update_scaling_factors(overlay,
+	    src_w, src_h, drw_w, drw_h);
 
     OCMD = OVERLAY_ENABLE;
     
commit c2410addbfb99fcd7069591d9f387c35ed760522
Author: Daniel Vetter <daniel.vetter at ffwll.ch>
Date:   Thu Jul 2 14:15:36 2009 +0200

    Xv i830_display_video splitup: extract i830_update_polyphase_coeffs
    
    To slightly clean up the implementation of i830_update_polyphase_coeffs,
    introduce the two small helper functions i830_limit_coeff and
    i830_store coeffs_in_overlay_regs.
    
    Signed-off-by: Daniel Vetter <daniel.vetter at ffwll.ch>
    Reviewed-by: Ian Romanick <ian.d.romanick at intel.com>

diff --git a/src/i830_video.c b/src/i830_video.c
index e5be7e9..58991a4 100644
--- a/src/i830_video.c
+++ b/src/i830_video.c
@@ -1833,6 +1833,61 @@ i830_update_dst_box_to_crtc_coords(ScrnInfoPtr pScrn, xf86CrtcPtr crtc,
 }
 
 static void
+i830_store_coeffs_in_overlay_regs(uint16_t *reg_coeffs, coeffPtr new_coeffs,
+	int max_taps)
+{
+    int i, j, pos;
+
+    for (i = 0; i < N_PHASES; i++) {
+	for (j = 0; j < max_taps; j++) {
+	    pos = i * max_taps + j;
+	    reg_coeffs[pos] = (new_coeffs[pos].sign << 15 |
+				      new_coeffs[pos].exponent << 12 |
+				      new_coeffs[pos].mantissa);
+	}
+    }
+}
+
+static double
+i830_limit_coeff(double coeff)
+{
+    /* Limit to between 1.0 and 3.0. */
+    if (coeff < MIN_CUTOFF_FREQ)
+	coeff = MIN_CUTOFF_FREQ;
+    if (coeff > MAX_CUTOFF_FREQ)
+	coeff = MAX_CUTOFF_FREQ;
+
+    return coeff;
+}
+
+static void
+i830_update_polyphase_coeffs(I830OverlayRegPtr	overlay,
+	int xscaleFract, int xscaleFractUV)
+{
+    /*
+     * Only Horizontal coefficients so far.
+     */
+    double fCutoffY;
+    double fCutoffUV;
+    coeffRec xcoeffY[N_HORIZ_Y_TAPS * N_PHASES];
+    coeffRec xcoeffUV[N_HORIZ_UV_TAPS * N_PHASES];
+
+    fCutoffY = xscaleFract / 4096.0;
+    fCutoffUV = xscaleFractUV / 4096.0;
+
+    fCutoffUV = i830_limit_coeff(fCutoffUV);
+    fCutoffY = i830_limit_coeff(fCutoffY);
+
+    UpdateCoeff(N_HORIZ_Y_TAPS, fCutoffY, TRUE, TRUE, xcoeffY);
+    UpdateCoeff(N_HORIZ_UV_TAPS, fCutoffUV, TRUE, FALSE, xcoeffUV);
+
+    i830_store_coeffs_in_overlay_regs(overlay->Y_HCOEFS, xcoeffY,
+		    N_HORIZ_Y_TAPS);
+    i830_store_coeffs_in_overlay_regs(overlay->UV_HCOEFS, xcoeffUV,
+		    N_HORIZ_UV_TAPS);
+}
+
+static void
 i830_display_video(ScrnInfoPtr pScrn, xf86CrtcPtr crtc,
 		   int id, short width, short height,
 		   int dstPitch, int x1, int y1, int x2, int y2, BoxPtr dstBox,
@@ -1982,9 +2037,6 @@ i830_display_video(ScrnInfoPtr pScrn, xf86CrtcPtr crtc,
 	/* UV is half the size of Y -- YUV420 */
 	int uvratio = 2;
 	uint32_t newval;
-	coeffRec xcoeffY[N_HORIZ_Y_TAPS * N_PHASES];
-	coeffRec xcoeffUV[N_HORIZ_UV_TAPS * N_PHASES];
-	int i, j, pos;
 
 	/*
 	 * Y down-scale factor as a multiple of 4096.
@@ -2053,41 +2105,7 @@ i830_display_video(ScrnInfoPtr pScrn, xf86CrtcPtr crtc,
 	 * Only Horizontal coefficients so far.
 	 */
 	if (scaleChanged) {
-	    double fCutoffY;
-	    double fCutoffUV;
-
-	    fCutoffY = xscaleFract / 4096.0;
-	    fCutoffUV = xscaleFractUV / 4096.0;
-
-	    /* Limit to between 1.0 and 3.0. */
-	    if (fCutoffY < MIN_CUTOFF_FREQ)
-		fCutoffY = MIN_CUTOFF_FREQ;
-	    if (fCutoffY > MAX_CUTOFF_FREQ)
-		fCutoffY = MAX_CUTOFF_FREQ;
-	    if (fCutoffUV < MIN_CUTOFF_FREQ)
-		fCutoffUV = MIN_CUTOFF_FREQ;
-	    if (fCutoffUV > MAX_CUTOFF_FREQ)
-		fCutoffUV = MAX_CUTOFF_FREQ;
-
-	    UpdateCoeff(N_HORIZ_Y_TAPS, fCutoffY, TRUE, TRUE, xcoeffY);
-	    UpdateCoeff(N_HORIZ_UV_TAPS, fCutoffUV, TRUE, FALSE, xcoeffUV);
-
-	    for (i = 0; i < N_PHASES; i++) {
-		for (j = 0; j < N_HORIZ_Y_TAPS; j++) {
-		    pos = i * N_HORIZ_Y_TAPS + j;
-		    overlay->Y_HCOEFS[pos] = (xcoeffY[pos].sign << 15 |
-					      xcoeffY[pos].exponent << 12 |
-					      xcoeffY[pos].mantissa);
-		}
-	    }
-	    for (i = 0; i < N_PHASES; i++) {
-		for (j = 0; j < N_HORIZ_UV_TAPS; j++) {
-		    pos = i * N_HORIZ_UV_TAPS + j;
-		    overlay->UV_HCOEFS[pos] = (xcoeffUV[pos].sign << 15 |
-					       xcoeffUV[pos].exponent << 12 |
-					       xcoeffUV[pos].mantissa);
-		}
-	    }
+	    i830_update_polyphase_coeffs(overlay, xscaleFract, xscaleFractUV);
 	}
     }
 
commit 795c11c49cf10525f02127a3629d35378d802fa7
Author: Daniel Vetter <daniel.vetter at ffwll.ch>
Date:   Thu Jul 2 14:15:34 2009 +0200

    Xv i830_display_video splitup: extract i830_update_dst_box_to_crtc_coords
    
    Just moved the code ouf of line.
    
    Signed-off-by: Daniel Vetter <daniel.vetter at ffwll.ch>

diff --git a/src/i830_video.c b/src/i830_video.c
index e142fb5..e5be7e9 100644
--- a/src/i830_video.c
+++ b/src/i830_video.c
@@ -1781,6 +1781,58 @@ i830_swidth (I830Ptr pI830, unsigned int offset,
 }
 
 static void
+i830_update_dst_box_to_crtc_coords(ScrnInfoPtr pScrn, xf86CrtcPtr crtc,
+		BoxPtr dstBox)
+{
+    int tmp;
+
+    /* for overlay, we should take it from crtc's screen
+     * coordinate to current crtc's display mode.
+     * yeah, a bit confusing.
+     */
+    switch (crtc->rotation & 0xf) {
+    case RR_Rotate_0:
+	dstBox->x1 -= crtc->x;
+	dstBox->x2 -= crtc->x;
+	dstBox->y1 -= crtc->y;
+	dstBox->y2 -= crtc->y;
+	break;
+    case RR_Rotate_90:
+	tmp = dstBox->x1;
+	dstBox->x1 = dstBox->y1 - crtc->x;
+	dstBox->y1 = pScrn->virtualX - tmp - crtc->y;
+	tmp = dstBox->x2;
+	dstBox->x2 = dstBox->y2 - crtc->x;
+	dstBox->y2 = pScrn->virtualX - tmp - crtc->y;
+	tmp = dstBox->y1;
+	dstBox->y1 = dstBox->y2;
+	dstBox->y2 = tmp;
+	break;
+    case RR_Rotate_180:
+	tmp = dstBox->x1;
+	dstBox->x1 = pScrn->virtualX - dstBox->x2 - crtc->x;
+	dstBox->x2 = pScrn->virtualX - tmp - crtc->x;
+	tmp = dstBox->y1;
+	dstBox->y1 = pScrn->virtualY - dstBox->y2 - crtc->y;
+	dstBox->y2 = pScrn->virtualY - tmp - crtc->y;
+	break;
+    case RR_Rotate_270:
+	tmp = dstBox->x1;
+	dstBox->x1 = pScrn->virtualY - dstBox->y1 - crtc->x;
+	dstBox->y1 = tmp - crtc->y;
+	tmp = dstBox->x2;
+	dstBox->x2 = pScrn->virtualY - dstBox->y2 - crtc->x;
+	dstBox->y2 = tmp - crtc->y;
+	tmp = dstBox->x1;
+	dstBox->x1 = dstBox->x2;
+	dstBox->x2 = tmp;
+	break;
+    }
+
+    return;
+}
+
+static void
 i830_display_video(ScrnInfoPtr pScrn, xf86CrtcPtr crtc,
 		   int id, short width, short height,
 		   int dstPitch, int x1, int y1, int x2, int y2, BoxPtr dstBox,
@@ -1824,48 +1876,7 @@ i830_display_video(ScrnInfoPtr pScrn, xf86CrtcPtr crtc,
     if (!pPriv->overlayOK)
 	return;
 
-    switch (crtc->rotation & 0xf) {
-	/* for overlay, we should take it from crtc's screen
-	 * coordinate to current crtc's display mode.
-	 * yeah, a bit confusing.
-	 */
-    case RR_Rotate_0:
-	dstBox->x1 -= crtc->x;
-	dstBox->x2 -= crtc->x;
-	dstBox->y1 -= crtc->y;
-	dstBox->y2 -= crtc->y;
-	break;
-    case RR_Rotate_90:
-	tmp = dstBox->x1;
-	dstBox->x1 = dstBox->y1 - crtc->x;
-	dstBox->y1 = pScrn->virtualX - tmp - crtc->y;
-	tmp = dstBox->x2;
-	dstBox->x2 = dstBox->y2 - crtc->x;
-	dstBox->y2 = pScrn->virtualX - tmp - crtc->y;
-	tmp = dstBox->y1;
-	dstBox->y1 = dstBox->y2;
-	dstBox->y2 = tmp;
-	break;
-    case RR_Rotate_180:
-	tmp = dstBox->x1;
-	dstBox->x1 = pScrn->virtualX - dstBox->x2 - crtc->x;
-	dstBox->x2 = pScrn->virtualX - tmp - crtc->x;
-	tmp = dstBox->y1;
-	dstBox->y1 = pScrn->virtualY - dstBox->y2 - crtc->y;
-	dstBox->y2 = pScrn->virtualY - tmp - crtc->y;
-	break;
-    case RR_Rotate_270:
-	tmp = dstBox->x1;
-	dstBox->x1 = pScrn->virtualY - dstBox->y1 - crtc->x;
-	dstBox->y1 = tmp - crtc->y;
-	tmp = dstBox->x2;
-	dstBox->x2 = pScrn->virtualY - dstBox->y2 - crtc->x;
-	dstBox->y2 = tmp - crtc->y;
-	tmp = dstBox->x1;
-	dstBox->x1 = dstBox->x2;
-	dstBox->x2 = tmp;
-	break;
-    }
+    i830_update_dst_box_to_crtc_coords(pScrn, crtc, dstBox);
 
     if (crtc->rotation & (RR_Rotate_90 | RR_Rotate_270)) {
 	tmp = width;
commit 4100abdf5d208bbcbb4ceabad0572c04221443c9
Author: Daniel Vetter <daniel.vetter at ffwll.ch>
Date:   Tue Jun 30 13:12:45 2009 +0200

    Xv: kill !textured condition
    
    This is in the overlay path and therefore always true.
    
    Signed-off-by: Daniel Vetter <daniel.vetter at ffwll.ch>

diff --git a/src/i830_video.c b/src/i830_video.c
index f8bd4a2..e142fb5 100644
--- a/src/i830_video.c
+++ b/src/i830_video.c
@@ -1055,8 +1055,7 @@ I830StopVideo(ScrnInfoPtr pScrn, pointer data, Bool shutdown)
 	}
 
 	if (pPriv->buf) {
-	    if (!pPriv->textured)
-		drm_intel_bo_unpin(pPriv->buf);
+	    drm_intel_bo_unpin(pPriv->buf);
 	    drm_intel_bo_unreference(pPriv->buf);
 	    pPriv->buf = NULL;
 	    pPriv->videoStatus = 0;
commit b0df0fe91e2b800ed096f369850aa1af4be2f157
Author: Daniel Vetter <daniel.vetter at ffwll.ch>
Date:   Tue Jun 30 13:12:44 2009 +0200

    Xv overlay: implement GAMMA5 errata
    
    - also ensure that the most significant byte is zero
    - while I was looking at the code, add the Overlay suffix to
    SetPortAttribute like in the textured case.
    
    Signed-off-by: Daniel Vetter <daniel.vetter at ffwll.ch>

diff --git a/src/i830_video.c b/src/i830_video.c
index 9e70d89..f8bd4a2 100644
--- a/src/i830_video.c
+++ b/src/i830_video.c
@@ -92,7 +92,7 @@ static void I830InitOffscreenImages(ScreenPtr);
 static XF86VideoAdaptorPtr I830SetupImageVideoOverlay(ScreenPtr);
 static XF86VideoAdaptorPtr I830SetupImageVideoTextured(ScreenPtr);
 static void I830StopVideo(ScrnInfoPtr, pointer, Bool);
-static int I830SetPortAttribute(ScrnInfoPtr, Atom, INT32, pointer);
+static int I830SetPortAttributeOverlay(ScrnInfoPtr, Atom, INT32, pointer);
 static int I830SetPortAttributeTextured(ScrnInfoPtr, Atom, INT32, pointer);
 static int I830GetPortAttribute(ScrnInfoPtr, Atom, INT32 *, pointer);
 static void I830QueryBestSize(ScrnInfoPtr, Bool,
@@ -782,12 +782,26 @@ static uint32_t I830BoundGammaElt (uint32_t elt, uint32_t eltPrev)
 
 static uint32_t I830BoundGamma (uint32_t gamma, uint32_t gammaPrev)
 {
-    return (I830BoundGammaElt (gamma >> 24, gammaPrev >> 24) << 24 |
-	    I830BoundGammaElt (gamma >> 16, gammaPrev >> 16) << 16 |
+    return (I830BoundGammaElt (gamma >> 16, gammaPrev >> 16) << 16 |
 	    I830BoundGammaElt (gamma >>  8, gammaPrev >>  8) <<  8 |
 	    I830BoundGammaElt (gamma      , gammaPrev      ));
 }
 
+static uint32_t I830Gamma5Errata(uint32_t gamma)
+{
+    int i;
+
+    for (i = 0; i < 3; i++) {
+	if ((gamma >> i*8 & 0xff) == 0x80) {
+	    /* According to Intel docs, overlay fails if GAMMA5 is 0x80.
+	     * In this case, change the value to 0x81 */
+	    gamma += 1 << i*8;
+	}
+    }
+
+    return gamma;
+}
+
 static void
 I830UpdateGamma(ScrnInfoPtr pScrn)
 {
@@ -809,6 +823,7 @@ I830UpdateGamma(ScrnInfoPtr pScrn)
     gamma3 = I830BoundGamma (gamma3, gamma2);
     gamma4 = I830BoundGamma (gamma4, gamma3);
     gamma5 = I830BoundGamma (gamma5, gamma4);
+    gamma5 = I830Gamma5Errata(gamma5);
 #if 0
     ErrorF ("Bounded  gamma: 0x%lx 0x%lx 0x%lx 0x%lx 0x%lx 0x%lx\n",
 	    gamma0, gamma1, gamma2, gamma3, gamma4, gamma5);
@@ -877,7 +892,7 @@ I830SetupImageVideoOverlay(ScreenPtr pScreen)
     adapt->GetVideo = NULL;
     adapt->GetStill = NULL;
     adapt->StopVideo = I830StopVideo;
-    adapt->SetPortAttribute = I830SetPortAttribute;
+    adapt->SetPortAttribute = I830SetPortAttributeOverlay;
     adapt->GetPortAttribute = I830GetPortAttribute;
     adapt->QueryBestSize = I830QueryBestSize;
     adapt->PutImage = I830PutImage;
@@ -1083,7 +1098,7 @@ I830SetPortAttributeTextured(ScrnInfoPtr pScrn,
 }
 
 static int
-I830SetPortAttribute(ScrnInfoPtr pScrn,
+I830SetPortAttributeOverlay(ScrnInfoPtr pScrn,
 		     Atom attribute, INT32 value, pointer data)
 {
     I830PortPrivPtr pPriv = (I830PortPrivPtr) data;
@@ -2775,7 +2790,7 @@ I830GetSurfaceAttribute(ScrnInfoPtr pScrn, Atom attribute, INT32 * value)
 static int
 I830SetSurfaceAttribute(ScrnInfoPtr pScrn, Atom attribute, INT32 value)
 {
-    return I830SetPortAttribute(pScrn, attribute, value, NULL);
+    return I830SetPortAttributeOverlay(pScrn, attribute, value, NULL);
 }
 
 static int
commit 5ef4d3cde1335350d82469ebbaed1b547a59552c
Author: Daniel Vetter <daniel.vetter at ffwll.ch>
Date:   Tue Jun 30 13:12:43 2009 +0200

    Xv: kill unneeded indirection
    
    overlay and textured video have the exact same QueryImageAttributes
    function.
    
    Signed-off-by: Daniel Vetter <daniel.vetter at ffwll.ch>

diff --git a/src/i830_video.c b/src/i830_video.c
index d543cc4..9e70d89 100644
--- a/src/i830_video.c
+++ b/src/i830_video.c
@@ -101,10 +101,8 @@ static void I830QueryBestSize(ScrnInfoPtr, Bool,
 static int I830PutImage(ScrnInfoPtr, short, short, short, short, short, short,
 			short, short, int, unsigned char *, short, short,
 			Bool, RegionPtr, pointer, DrawablePtr);
-static int I830QueryImageAttributesOverlay(ScrnInfoPtr, int, unsigned short *,
+static int I830QueryImageAttributes(ScrnInfoPtr, int, unsigned short *,
 					   unsigned short *, int *, int *);
-static int I830QueryImageAttributesTextured(ScrnInfoPtr, int, unsigned short *,
-					    unsigned short *, int *, int *);
 
 #define MAKE_ATOM(a) MakeAtom(a, sizeof(a) - 1, TRUE)
 
@@ -883,7 +881,7 @@ I830SetupImageVideoOverlay(ScreenPtr pScreen)
     adapt->GetPortAttribute = I830GetPortAttribute;
     adapt->QueryBestSize = I830QueryBestSize;
     adapt->PutImage = I830PutImage;
-    adapt->QueryImageAttributes = I830QueryImageAttributesOverlay;
+    adapt->QueryImageAttributes = I830QueryImageAttributes;
 
     pPriv->textured = FALSE;
     pPriv->colorKey = pI830->colorKey & ((1 << pScrn->depth) - 1);
@@ -999,7 +997,7 @@ I830SetupImageVideoTextured(ScreenPtr pScreen)
     adapt->GetPortAttribute = I830GetPortAttribute;
     adapt->QueryBestSize = I830QueryBestSize;
     adapt->PutImage = I830PutImage;
-    adapt->QueryImageAttributes = I830QueryImageAttributesTextured;
+    adapt->QueryImageAttributes = I830QueryImageAttributes;
 
     for (i = 0; i < nports; i++) {
 	I830PortPrivPtr pPriv = &portPrivs[i];
@@ -2554,7 +2552,7 @@ static int
 I830QueryImageAttributes(ScrnInfoPtr pScrn,
 			 int id,
 			 unsigned short *w, unsigned short *h,
-			 int *pitches, int *offsets, Bool textured)
+			 int *pitches, int *offsets)
 {
     I830Ptr pI830 = I830PTR(pScrn);
     int size, tmp;
@@ -2635,24 +2633,6 @@ I830QueryImageAttributes(ScrnInfoPtr pScrn,
     return size;
 }
 
-static int
-I830QueryImageAttributesOverlay(ScrnInfoPtr pScrn,
-				int id,
-				unsigned short *w, unsigned short *h,
-				int *pitches, int *offsets)
-{
-    return I830QueryImageAttributes(pScrn, id, w, h, pitches, offsets, FALSE);
-}
-
-static int
-I830QueryImageAttributesTextured(ScrnInfoPtr pScrn,
-				 int id,
-				 unsigned short *w, unsigned short *h,
-				 int *pitches, int *offsets)
-{
-    return I830QueryImageAttributes(pScrn, id, w, h, pitches, offsets, TRUE);
-}
-
 void
 I830VideoBlockHandler(int i, pointer blockData, pointer pTimeout,
 		      pointer pReadmask)
commit 1e4784bf26e3c154f5673f7b5add3ef7af3b1474
Author: Eric Anholt <eric at anholt.net>
Date:   Tue Jun 30 19:52:36 2009 -0700

    uxa: Fix segfault on source-only picture usage with FallbackDebug.
    
    Bug #22107.

diff --git a/uxa/uxa-render.c b/uxa/uxa-render.c
index 2d81ac4..33af636 100644
--- a/uxa/uxa-render.c
+++ b/uxa/uxa-render.c
@@ -44,6 +44,11 @@ static void uxa_composite_fallback_pict_desc(PicturePtr pict, char *string, int
 	return;
     }
 
+    if (pict->pDrawable == NULL) {
+	snprintf(string, n, "source-only");
+	return;
+    }
+
     switch (pict->format)
     {
     case PICT_a8r8g8b8:
commit 7e79fc8aa93df4df37c25cf37ee0ec6c7caca1d9
Author: Zhenyu Wang <zhenyuw at linux.intel.com>
Date:   Tue Jun 30 15:40:34 2009 +0800

    Fix 945GM VT switch in UMS
    
    Bug #19578. We should set private intel_crtc state according
    to current, as fail to do so pipe A needs active won't be taken
    care of. Also make sure pipe swap operation always set during
    VT switch.
    
    Signed-off-by: Zhenyu Wang <zhenyuw at linux.intel.com>

diff --git a/src/i830_display.c b/src/i830_display.c
index a7eafb9..26874c5 100644
--- a/src/i830_display.c
+++ b/src/i830_display.c
@@ -1257,6 +1257,7 @@ i830_crtc_dpms(xf86CrtcPtr crtc, int mode)
 	if ((pipe == 0) && (pI830->quirk_flag & QUIRK_PIPEA_FORCE))
 	    disable_pipe = FALSE;
 	i830_crtc_disable(crtc, disable_pipe);
+	intel_crtc->enabled = FALSE;
 	break;
     }
 
diff --git a/src/i830_driver.c b/src/i830_driver.c
index 45a8aee..c125a73 100644
--- a/src/i830_driver.c
+++ b/src/i830_driver.c
@@ -2786,9 +2786,6 @@ I830ScreenInit(int scrnIndex, ScreenPtr pScreen, int argc, char **argv)
    }
    i830_init_bufmgr(pScrn);
 
-   if (!pI830->use_drm_mode)
-       I830SwapPipes(pScrn);
-
    pScrn->fbOffset = pI830->front_buffer->offset;
 
    if (!pI830->use_drm_mode) {
@@ -3077,6 +3074,9 @@ I830EnterVT(int scrnIndex, int flags)
 
    /* Get the hardware into a known state if needed */
    if (!pI830->use_drm_mode) {
+
+       I830SwapPipes(pScrn);
+
        /* Disable outputs */
        for (i = 0; i < xf86_config->num_output; i++) {
 	   xf86OutputPtr   output = xf86_config->output[i];
commit 50392ac8234d643c8a99e1753bdb196c0062a891
Author: Zhenyu Wang <zhenyu.z.wang at intel.com>
Date:   Mon May 18 13:53:33 2009 +0800

    Load fbcon too if kernel mode setting is checked on
    
    If i915 module has already been loaded and kms check is true,
    it would be nice to load fbcon module too.
    
    Signed-off-by: Zhenyu Wang <zhenyu.z.wang at intel.com>

diff --git a/src/i830_driver.c b/src/i830_driver.c
index 40255cd..45a8aee 100644
--- a/src/i830_driver.c
+++ b/src/i830_driver.c
@@ -1012,14 +1012,13 @@ static Bool i830_kernel_mode_enabled(ScrnInfoPtr pScrn)
     busIdString = DRICreatePCIBusID(PciInfo);
 
     ret = drmCheckModesettingSupported(busIdString);
-    if (ret)
-	if (xf86LoadKernelModule("i915")) {
+    if (ret) {
+	if (xf86LoadKernelModule("i915"))
 	    ret = drmCheckModesettingSupported(busIdString);
-
-	    /* Be nice to the user and load fbcon too */
-	    if (!ret)
-		(void) xf86LoadKernelModule("fbcon");
-	}
+    }
+    /* Be nice to the user and load fbcon too */
+    if (!ret)
+	(void) xf86LoadKernelModule("fbcon");
     xfree(busIdString);
     if (ret)
 	return FALSE;
commit 058ad9e6ab4a00ff66046d94c2129056011ebee9
Author: Jesse Barnes <jbarnes at virtuousgeek.org>
Date:   Tue Jun 30 16:02:19 2009 -0700

    Don't try to pin buffers in KMS mode
    
    The only things we try to pin in KMS mode are the cursor objects and
    front buffer, and those are taken care of by the kernel anyway, so we
    shouldn't even bother trying to pin them (well, not entirely true,
    XvMC tries to pin as well, but it needs work w/KMS anyway).
    
    Signed-off-by: Jesse Barnes <jbarnes at virtuousgeek.org>

diff --git a/src/i830_memory.c b/src/i830_memory.c
index 5e07213..387e52b 100644
--- a/src/i830_memory.c
+++ b/src/i830_memory.c
@@ -202,7 +202,7 @@ i830_bind_memory(ScrnInfoPtr pScrn, i830_memory *mem)
     if (mem == NULL || mem->bound)
 	return TRUE;
 
-    if (mem->bo != NULL) {
+    if (mem->bo != NULL && !pI830->use_drm_mode) {
 	if (dri_bo_pin(mem->bo, mem->alignment) != 0) {
 	    xf86DrvMsg(pScrn->scrnIndex, X_ERROR,
 		       "Failed to pin %s: %s\n",
@@ -249,7 +249,7 @@ i830_unbind_memory(ScrnInfoPtr pScrn, i830_memory *mem)
 	!pI830->kernel_exec_fencing)
 	i830_clear_tiling(pScrn, mem->fence_nr);
 
-    if (mem->bo != NULL) {
+    if (mem->bo != NULL && !pI830->use_drm_mode) {
 	if (dri_bo_unpin(mem->bo) == 0) {
 	    mem->bound = FALSE;
 	    /* Give buffer obviously wrong offset/end until it's re-pinned. */
commit cec9fc6f6cffce186606f39982d0d78ff7c63bbf
Author: Jesse Barnes <jbarnes at virtuousgeek.org>
Date:   Tue Jun 30 12:27:59 2009 -0700

    Make KMS set_resource function return TRUE
    
    This is what's expected by the server, and allows the EDID for example
    to be exported in the KMS case.
    
    Signed-off-by: Jesse Barnes <jbarnes at virtuousgeek.org>

diff --git a/src/drmmode_display.c b/src/drmmode_display.c
index f45d933..d5904ad 100644
--- a/src/drmmode_display.c
+++ b/src/drmmode_display.c
@@ -892,8 +892,8 @@ drmmode_output_set_property(xf86OutputPtr output, Atom property,
 	    }
 	}
     }
-    /* no property found? */
-    return FALSE;
+
+    return TRUE;
 }
 
 static const xf86OutputFuncsRec drmmode_output_funcs = {
commit 53e248af4365232416d2143a791a07c6751f8319
Author: Jesse Barnes <jbarnes at virtuousgeek.org>
Date:   Tue Jun 30 12:00:28 2009 -0700

    Use DVO timing block instead of fp_timing when parsing LFP data
    
    The KMS side was correct, but the UMS patch was broken.  We need to use
    the DVO timing block of the LFP data to get the timing, not the
    fp_timing block.
    
    Fixes fdo bug #22529.
    
    Signed-off-by: Jesse Barnes <jbarnes at virtuousgeek.org>

diff --git a/src/i830_bios.c b/src/i830_bios.c
index 62b9f5d..60c307c 100644
--- a/src/i830_bios.c
+++ b/src/i830_bios.c
@@ -144,11 +144,11 @@ parse_integrated_panel_data(I830Ptr pI830, struct bdb_header *bdb)
     if (!lvds_lfp_data_ptrs)
 	return;
 
-    lfp_data_size = lvds_lfp_data_ptrs->ptr[1].fp_timing_offset -
-	lvds_lfp_data_ptrs->ptr[0].fp_timing_offset;
+    lfp_data_size = lvds_lfp_data_ptrs->ptr[1].dvo_timing_offset -
+	lvds_lfp_data_ptrs->ptr[0].dvo_timing_offset;
     entry = (struct bdb_lvds_lfp_data_entry *)((uint8_t *)lvds_data->data +
 					       (lfp_data_size * lvds_options->panel_type));
-    timing_ptr = (unsigned char *)&entry->fp_timing;
+    timing_ptr = (unsigned char *)&entry->dvo_timing;
 
     if (pI830->skip_panel_detect)
 	return;
commit 362883c2f9a3442f7678e6e815f41b21baaa3f53
Author: Jesse Barnes <jbarnes at virtuousgeek.org>
Date:   Mon Jun 29 16:26:15 2009 -0700

    Add a few error messages for DRM initialization
    
    Makes it easier to see where things go wrong.
    
    Signed-off-by: Jesse Barnes <jbarnes at virtuousgeek.org>

diff --git a/src/i830_driver.c b/src/i830_driver.c
index bd7a32c..40255cd 100644
--- a/src/i830_driver.c
+++ b/src/i830_driver.c
@@ -1440,7 +1440,8 @@ i830_open_drm_master(ScrnInfoPtr scrn)
     if (i830->drmSubFD == -1) {
 	xfree(busid);
 	xf86DrvMsg(scrn->scrnIndex, X_ERROR,
-		   "[drm] Failed to open DRM device for %s\n", busid);
+		   "[drm] Failed to open DRM device for %s: %s\n", busid,
+		   strerror(errno));
 	return FALSE;
     }
 
@@ -1455,6 +1456,8 @@ i830_open_drm_master(ScrnInfoPtr scrn)
     sv.drm_dd_major = -1;
     err = drmSetInterfaceVersion(i830->drmSubFD, &sv);
     if (err != 0) {
+	xf86DrvMsg(scrn->scrnIndex, X_ERROR,
+		   "[drm] failed to set drm interface version.\n");
 	drmClose(i830->drmSubFD);
 	i830->drmSubFD = -1;
 	return FALSE;
@@ -1594,7 +1597,9 @@ I830PreInit(ScrnInfoPtr pScrn, int flags)
 
    pI830->PciInfo = xf86GetPciInfoForEntity(pI830->pEnt->index);
 
-   i830_open_drm_master(pScrn);
+   if (!i830_open_drm_master(pScrn))
+       xf86DrvMsg(pScrn->scrnIndex, X_ERROR, "Failed to become DRM master.\n");
+
 
    if (xf86RegisterResources(pI830->pEnt->index, NULL, ResNone)) {
       PreInitCleanup(pScrn);
commit afac333bef4a0ac934f0e4d933dc5053d81ca88c
Author: Zhenyu Wang <zhenyuw at linux.intel.com>
Date:   Tue Jun 30 11:10:52 2009 +0800

    Remove unused packed yuv sampler shader programs
    
    Signed-off-by: Zhenyu Wang <zhenyuw at linux.intel.com>

diff --git a/src/render_program/Makefile.am b/src/render_program/Makefile.am
index 72923d6..c9a0bfc 100644
--- a/src/render_program/Makefile.am
+++ b/src/render_program/Makefile.am
@@ -1,6 +1,4 @@
 INTEL_G4A =				\
-	packed_yuv_sf.g4a		\
-	packed_yuv_wm.g4a		\
 	exa_sf.g4a 			\
 	exa_sf_mask.g4a 		\
 	exa_wm_src_affine.g4a 		\
@@ -25,8 +23,6 @@ INTEL_G4I =				\
 	exa_wm_projective.g4i
 
 INTEL_G4B = 				\
-	packed_yuv_sf.g4b		\
-	packed_yuv_wm.g4b		\
 	exa_sf.g4b 			\
 	exa_sf_mask.g4b 		\
 	exa_wm_src_affine.g4b 		\
@@ -47,8 +43,6 @@ INTEL_G4B = 				\
 
 
 INTEL_G4B_GEN5 = 				\
-	packed_yuv_sf.g4b.gen5			\
-	packed_yuv_wm.g4b.gen5			\
 	exa_sf.g4b.gen5 			\
 	exa_sf_mask.g4b.gen5 			\
 	exa_wm_src_affine.g4b.gen5 		\
diff --git a/src/render_program/packed_yuv_sf.g4a b/src/render_program/packed_yuv_sf.g4a
deleted file mode 100644
index 5a02399..0000000
--- a/src/render_program/packed_yuv_sf.g4a
+++ /dev/null
@@ -1,45 +0,0 @@
-/*
- * Copyright © 2006 Intel Corporation
- *
- * Permission is hereby granted, free of charge, to any person obtaining a
- * copy of this software and associated documentation files (the "Software"),
- * to deal in the Software without restriction, including without limitation
- * the rights to use, copy, modify, merge, publish, distribute, sublicense,
- * and/or sell copies of the Software, and to permit persons to whom the
- * Software is furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice (including the next
- * paragraph) shall be included in all copies or substantial portions of the
- * Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
- * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
- * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
- * IN THE SOFTWARE.
- *
- * Authors:
- *    Keith Packard <keithp at keithp.com>
- *    Eric Anholt <eric at anholt.net>
- *
- */
-
-send (1) 0 g6<1>F g1.12<0,1,0>F math inv scalar mlen 1 rlen 1 { align1 };
-send (1) 0 g6.4<1>F g1.20<0,1,0>F math inv scalar mlen 1 rlen 1 { align1 };
-add (8) g7<1>F g4<8,8,1>F -g3<8,8,1>F { align1 };
-mul (1) g7<1>F g7<0,1,0>F g6<0,1,0>F { align1 };
-mul (1) g7.4<1>F g7.4<0,1,0>F g6.4<0,1,0>F { align1 };
-mov (8) m1<1>F g7<0,1,0>F { align1 };
-mov (8) m2<1>F g7.4<0,1,0>F { align1 };
-mov (8) m3<1>F g3<8,8,1>F { align1 };
-send (8) 0 null g0<8,8,1>F urb 0 transpose used complete mlen 4 rlen 0 { align1 EOT };
-nop;
-nop;
-nop;
-nop;
-nop;
-nop;
-nop;
-nop;
diff --git a/src/render_program/packed_yuv_sf.g4b b/src/render_program/packed_yuv_sf.g4b
deleted file mode 100644
index 830d176..0000000
--- a/src/render_program/packed_yuv_sf.g4b
+++ /dev/null
@@ -1,17 +0,0 @@
-   { 0x00000031, 0x20c01fbd, 0x0000002c, 0x01110081 },
-   { 0x00000031, 0x20c41fbd, 0x00000034, 0x01110081 },
-   { 0x00600040, 0x20e077bd, 0x008d0080, 0x008d4060 },
-   { 0x00000041, 0x20e077bd, 0x000000e0, 0x000000c0 },
-   { 0x00000041, 0x20e477bd, 0x000000e4, 0x000000c4 },
-   { 0x00600001, 0x202003be, 0x000000e0, 0x00000000 },
-   { 0x00600001, 0x204003be, 0x000000e4, 0x00000000 },
-   { 0x00600001, 0x206003be, 0x008d0060, 0x00000000 },
-   { 0x00600031, 0x20001fbc, 0x008d0000, 0x8640c800 },
-   { 0x0000007e, 0x00000000, 0x00000000, 0x00000000 },
-   { 0x0000007e, 0x00000000, 0x00000000, 0x00000000 },
-   { 0x0000007e, 0x00000000, 0x00000000, 0x00000000 },
-   { 0x0000007e, 0x00000000, 0x00000000, 0x00000000 },
-   { 0x0000007e, 0x00000000, 0x00000000, 0x00000000 },
-   { 0x0000007e, 0x00000000, 0x00000000, 0x00000000 },
-   { 0x0000007e, 0x00000000, 0x00000000, 0x00000000 },
-   { 0x0000007e, 0x00000000, 0x00000000, 0x00000000 },
diff --git a/src/render_program/packed_yuv_sf.g4b.gen5 b/src/render_program/packed_yuv_sf.g4b.gen5
deleted file mode 100644
index d4d235a..0000000
--- a/src/render_program/packed_yuv_sf.g4b.gen5
+++ /dev/null
@@ -1,17 +0,0 @@
-   { 0x00000031, 0x20c01fbd, 0x1000002c, 0x02100081 },
-   { 0x00000031, 0x20c41fbd, 0x10000034, 0x02100081 },
-   { 0x00600040, 0x20e077bd, 0x008d0080, 0x008d4060 },
-   { 0x00000041, 0x20e077bd, 0x000000e0, 0x000000c0 },
-   { 0x00000041, 0x20e477bd, 0x000000e4, 0x000000c4 },
-   { 0x00600001, 0x202003be, 0x000000e0, 0x00000000 },
-   { 0x00600001, 0x204003be, 0x000000e4, 0x00000000 },
-   { 0x00600001, 0x206003be, 0x008d0060, 0x00000000 },
-   { 0x00600031, 0x20001fbc, 0x648d0000, 0x8808c800 },
-   { 0x0000007e, 0x00000000, 0x00000000, 0x00000000 },
-   { 0x0000007e, 0x00000000, 0x00000000, 0x00000000 },
-   { 0x0000007e, 0x00000000, 0x00000000, 0x00000000 },
-   { 0x0000007e, 0x00000000, 0x00000000, 0x00000000 },
-   { 0x0000007e, 0x00000000, 0x00000000, 0x00000000 },
-   { 0x0000007e, 0x00000000, 0x00000000, 0x00000000 },
-   { 0x0000007e, 0x00000000, 0x00000000, 0x00000000 },
-   { 0x0000007e, 0x00000000, 0x00000000, 0x00000000 },
diff --git a/src/render_program/packed_yuv_wm.g4a b/src/render_program/packed_yuv_wm.g4a
deleted file mode 100644
index 2be52b5..0000000
--- a/src/render_program/packed_yuv_wm.g4a
+++ /dev/null
@@ -1,221 +0,0 @@
-/*
- * Copyright © 2006 Intel Corporation
- *
- * Permission is hereby granted, free of charge, to any person obtaining a
- * copy of this software and associated documentation files (the "Software"),
- * to deal in the Software without restriction, including without limitation
- * the rights to use, copy, modify, merge, publish, distribute, sublicense,
- * and/or sell copies of the Software, and to permit persons to whom the
- * Software is furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice (including the next
- * paragraph) shall be included in all copies or substantial portions of the
- * Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
- * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
- * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
- * IN THE SOFTWARE.
- *
- * Authors:
- *    Keith Packard <keithp at keithp.com>
- *    Eric Anholt <eric at anholt.net>
- *
- */
-
-include(`exa_wm.g4i')
-
-define(`YCbCr_base',	`g12')
-define(`Cr',		`g12')
-define(`Cr_01',		`g12')
-define(`Cr_23',		`g13')
-define(`Y',		`g14')
-define(`Y_01',		`g14')
-define(`Y_23',		`g15')
-define(`Cb',		`g16')
-define(`Cb_01',		`g16')
-define(`Cb_23',		`g17')
-
-/* The initial payload of the thread is always g0.
- * WM_URB (incoming URB entries) is g3
- * X0_R is g4
- * X1_R is g5
- * Y0_R is g6
- * Y1_R is g7
- */
-
-    /* Set up the X/Y screen coordinates of the pixels in our 4 subspans.  Each
-     * subspan is a 2x2 rectangle, and the screen x/y of the upper left of each
-     * subspan are given in GRF register 1.2 through 1.5 (which, with the word
-     * addressing below, are 1.4 through 1.11).
-     *
-     * The result is WM_X*_R and WM_Y*R being:
-     *
-     * X0: {ss0.x, ss0.x+1, ss0.x,   ss0.x+1, ss1.x, ss1.x+1, ss1.x,   ss1.x+y}
-     * Y0: {ss0.y, ss0.y,   ss0.y+1, ss0.y+1, ss1.y, ss1.y,   ss1.y+1, ss1.y+1}
-     * X1: {ss2.x, ss2.x+1, ss2.x,   ss2.x+1, ss3.x, ss3.x+1, ss3.x,   ss3.x+y}
-     * Y1: {ss2.y, ss2.y,   ss2.y+1, ss2.y+1, ss3.y, ss3.y,   ss3.y+1, ss3.y+1}
-     */
-
-    /* Set up ss0.x coordinates*/
-mov (1) g4<1>F g1.8<0,1,0>UW { align1 };
-add (1) g4.4<1>F g1.8<0,1,0>UW 1UD { align1 };
-mov (1) g4.8<1>F g1.8<0,1,0>UW { align1 };
-add (1) g4.12<1>F g1.8<0,1,0>UW 1UD { align1 };
-    /* Set up ss0.y coordinates */
-mov (1) g6<1>F g1.10<0,1,0>UW { align1 };
-mov (1) g6.4<1>F g1.10<0,1,0>UW { align1 };
-add (1) g6.8<1>F g1.10<0,1,0>UW 1UD { align1 };
-add (1) g6.12<1>F g1.10<0,1,0>UW 1UD { align1 };
-    /* set up ss1.x coordinates */
-mov (1) g4.16<1>F g1.12<0,1,0>UW { align1 };
-add (1) g4.20<1>F g1.12<0,1,0>UW 1UD { align1 };
-mov (1) g4.24<1>F g1.12<0,1,0>UW { align1 };
-add (1) g4.28<1>F g1.12<0,1,0>UW 1UD { align1 };
-    /* set up ss1.y coordinates */
-mov (1) g6.16<1>F g1.14<0,1,0>UW { align1 };
-mov (1) g6.20<1>F g1.14<0,1,0>UW { align1 };
-add (1) g6.24<1>F g1.14<0,1,0>UW 1UD { align1 };
-add (1) g6.28<1>F g1.14<0,1,0>UW 1UD { align1 };
-    /* Set up ss2.x coordinates */
-mov (1) g5<1>F g1.16<0,1,0>UW { align1 };
-add (1) g5.4<1>F g1.16<0,1,0>UW 1UD { align1 };
-mov (1) g5.8<1>F g1.16<0,1,0>UW { align1 };
-add (1) g5.12<1>F g1.16<0,1,0>UW 1UD { align1 };
-    /* Set up ss2.y coordinates */
-mov (1) g7<1>F g1.18<0,1,0>UW { align1 };
-mov (1) g7.4<1>F g1.18<0,1,0>UW { align1 };
-add (1) g7.8<1>F g1.18<0,1,0>UW 1UD { align1 };
-add (1) g7.12<1>F g1.18<0,1,0>UW 1UD { align1 };
-    /* Set up ss3.x coordinates */
-mov (1) g5.16<1>F g1.20<0,1,0>UW { align1 };
-add (1) g5.20<1>F g1.20<0,1,0>UW 1UD { align1 };
-mov (1) g5.24<1>F g1.20<0,1,0>UW { align1 };
-add (1) g5.28<1>F g1.20<0,1,0>UW 1UD { align1 };
-    /* Set up ss3.y coordinates */
-mov (1) g7.16<1>F g1.22<0,1,0>UW { align1 };
-mov (1) g7.20<1>F g1.22<0,1,0>UW { align1 };
-add (1) g7.24<1>F g1.22<0,1,0>UW 1UD { align1 };
-add (1) g7.28<1>F g1.22<0,1,0>UW 1UD { align1 };
-
-    /* Now, map these screen space coordinates into texture coordinates. */
-    /* subtract screen-space X origin of vertex 0. */
-add (8) g4<1>F g4<8,8,1>F -g1<0,1,0>F { align1 };
-add (8) g5<1>F g5<8,8,1>F -g1<0,1,0>F { align1 };
-    /* scale by texture X increment */
-mul (8) g4<1>F g4<8,8,1>F g3<0,1,0>F { align1 };
-mul (8) g5<1>F g5<8,8,1>F g3<0,1,0>F { align1 };
-    /* add in texture X offset */
-add (8) g4<1>F g4<8,8,1>F g3.12<0,1,0>F { align1 };
-add (8) g5<1>F g5<8,8,1>F g3.12<0,1,0>F { align1 };
-    /* subtract screen-space Y origin of vertex 0. */
-add (8) g6<1>F g6<8,8,1>F -g1.4<0,1,0>F { align1 };
-add (8) g7<1>F g7<8,8,1>F -g1.4<0,1,0>F { align1 };
-    /* scale by texture Y increment */
-mul (8) g6<1>F g6<8,8,1>F g3.20<0,1,0>F { align1 };
-mul (8) g7<1>F g7<8,8,1>F g3.20<0,1,0>F { align1 };
-    /* add in texture Y offset */
-add (8) g6<1>F g6<8,8,1>F g3.28<0,1,0>F { align1 };
-add (8) g7<1>F g7<8,8,1>F g3.28<0,1,0>F { align1 };
-    /* sampler  */
-mov (8) m1<1>F g4<8,8,1>F { align1 };
-mov (8) m2<1>F g5<8,8,1>F { align1 };
-mov (8) m3<1>F g6<8,8,1>F { align1 };
-mov (8) m4<1>F g7<8,8,1>F { align1 };
-
-    /*
-     * g0 holds the PS thread payload, which (oddly) contains
-     * precisely what the sampler wants to see in m0
-     */
-send  (16)
-    0	/* load g0 to m0 */
-    YCbCr_base<1>UW
-    g0<8,8,1>UW 
-    sampler (1,0,F)
-    mlen 5 rlen 8 { align1 };
-
-    /* color space conversion function:
-     * R = Clamp ( 1.164(Y-16/255) + 1.596(Cr-128/255), 0, 1)
-     * G = Clamp ( 1.164(Y-16/255) - 0.813(Cr-128/255) - 0.392(Cb-128/255), 0, 1)
-     * B = Clamp ( 1.164(Y-16/255) + 2.017(Cb-128/255), 0, 1)
-     *
-     * Y is g14, g15.
-     * Cr is g12, g13.
-     * Cb is g16, g17.
-     *
-     * R is g2, g6.
-     * G is g3, g7.
-     * B is g4, g8.
-     */
-
-    /* Normalize Y, Cb and Cr:
-     *
-     * Y = (Y - 16/255) * 1.164
-     * Cr = Cr - 128 / 255
-     * Cb = Cb - 128 / 255
-     */
-add (16)    Y<1>F		Y<8,8,1>F	-0.0627451F { compr align1 };
-mul (16)    Y<1>F		Y<8,8,1>F	1.164F	    { compr align1 };
-
-add (16)    Cr<1>F		Cr<8,8,1>F	-0.501961F  { compr align1 };
-
-add (16)    Cb<1>F		Cb<8,8,1>F	-0.501961F  { compr align1 };
-
-    /* 
-     * R = Y + Cr * 1.596
-     */
-mul (8)	    null		Cr_01<8,8,1>F	1.596F	    { align1 };
-mac.sat (8) data_port_r_01<1>F	Y_01<8,8,1>F	1F	    { align1  };
-mul (8)     null		Cr_23<8,8,1>F	1.596F	    { align1 };
-mac.sat (8) data_port_r_23<1>F	Y_23<8,8,1>F	1F	    { align1  };
-     
-    /*
-     * G = Cr * -0.813 + Cb * -0.392 + Y
-     */
-mul (8)	    null		Cr_01<8,8,1>F	-0.813F	    { align1 };
-mac (8)	    null		Cb_01<8,8,1>F	-0.392F	    { align1 };
-mac.sat (8) data_port_g_01<1>F	Y_01<8,8,1>F	1F	    { align1 };
-mul (8)	    null		Cr_23<8,8,1>F	-0.813F	    { align1 };
-mac (8)	    null		Cb_23<8,8,1>F	-0.392F	    { align1 };
-mac.sat (8) data_port_g_23<1>F	Y_23<8,8,1>F	1F	    { align1 };
-
-    /*
-     * B = Cb * 2.017 + Y
-     */
-mul (8)	    null		Cb_01<8,8,1>F	2.017F	    { align1 };
-mac.sat (8) data_port_b_01<1>F	Y_01<8,8,1>F	1F	    { align1 };
-mul (8)	    null		Cb_23<8,8,1>F	2.017F	    { align1 };
-mac.sat (8) data_port_b_23<1>F	Y_23<8,8,1>F	1F	    { align1 };
-
-    /*
-     * A = 1.0
-     */
-mov (8)	    data_port_a_01<1>F	1.0F			    { align1 };
-mov (8)	    data_port_a_23<1>F	1.0F			    { align1 };
-
-   /*
-    * Pass through control information:
-    */
-mov (8)	    m1<1>UD		g1<8,8,1>UD		    { align1 mask_disable };
-
-   /*
-    * Send framebuffer write message: XXX: acc0?
-    */
-send (16) 0 acc0<1>UW g0<8,8,1>UW write (
-	0, /* binding table index 0 */
-	8, /* pixel scoreboard clear */
-	4, /* render target write */
-	0 /* no write commit message */
-	) mlen 10 rlen 0 { align1 EOT };
-   /* padding */
-nop;
-nop;
-nop;
-nop;
-nop;
-nop;
-nop;
-nop;
diff --git a/src/render_program/packed_yuv_wm.g4b b/src/render_program/packed_yuv_wm.g4b
deleted file mode 100644
index f2e650a..0000000
--- a/src/render_program/packed_yuv_wm.g4b
+++ /dev/null
@@ -1,79 +0,0 @@
-   { 0x00000001, 0x2080013d, 0x00000028, 0x00000000 },
-   { 0x00000040, 0x20840d3d, 0x00000028, 0x00000001 },
-   { 0x00000001, 0x2088013d, 0x00000028, 0x00000000 },
-   { 0x00000040, 0x208c0d3d, 0x00000028, 0x00000001 },
-   { 0x00000001, 0x20c0013d, 0x0000002a, 0x00000000 },
-   { 0x00000001, 0x20c4013d, 0x0000002a, 0x00000000 },
-   { 0x00000040, 0x20c80d3d, 0x0000002a, 0x00000001 },
-   { 0x00000040, 0x20cc0d3d, 0x0000002a, 0x00000001 },
-   { 0x00000001, 0x2090013d, 0x0000002c, 0x00000000 },
-   { 0x00000040, 0x20940d3d, 0x0000002c, 0x00000001 },
-   { 0x00000001, 0x2098013d, 0x0000002c, 0x00000000 },
-   { 0x00000040, 0x209c0d3d, 0x0000002c, 0x00000001 },
-   { 0x00000001, 0x20d0013d, 0x0000002e, 0x00000000 },
-   { 0x00000001, 0x20d4013d, 0x0000002e, 0x00000000 },
-   { 0x00000040, 0x20d80d3d, 0x0000002e, 0x00000001 },
-   { 0x00000040, 0x20dc0d3d, 0x0000002e, 0x00000001 },
-   { 0x00000001, 0x20a0013d, 0x00000030, 0x00000000 },
-   { 0x00000040, 0x20a40d3d, 0x00000030, 0x00000001 },
-   { 0x00000001, 0x20a8013d, 0x00000030, 0x00000000 },
-   { 0x00000040, 0x20ac0d3d, 0x00000030, 0x00000001 },
-   { 0x00000001, 0x20e0013d, 0x00000032, 0x00000000 },
-   { 0x00000001, 0x20e4013d, 0x00000032, 0x00000000 },
-   { 0x00000040, 0x20e80d3d, 0x00000032, 0x00000001 },
-   { 0x00000040, 0x20ec0d3d, 0x00000032, 0x00000001 },
-   { 0x00000001, 0x20b0013d, 0x00000034, 0x00000000 },
-   { 0x00000040, 0x20b40d3d, 0x00000034, 0x00000001 },
-   { 0x00000001, 0x20b8013d, 0x00000034, 0x00000000 },
-   { 0x00000040, 0x20bc0d3d, 0x00000034, 0x00000001 },
-   { 0x00000001, 0x20f0013d, 0x00000036, 0x00000000 },
-   { 0x00000001, 0x20f4013d, 0x00000036, 0x00000000 },
-   { 0x00000040, 0x20f80d3d, 0x00000036, 0x00000001 },
-   { 0x00000040, 0x20fc0d3d, 0x00000036, 0x00000001 },
-   { 0x00600040, 0x208077bd, 0x008d0080, 0x00004020 },
-   { 0x00600040, 0x20a077bd, 0x008d00a0, 0x00004020 },
-   { 0x00600041, 0x208077bd, 0x008d0080, 0x00000060 },
-   { 0x00600041, 0x20a077bd, 0x008d00a0, 0x00000060 },
-   { 0x00600040, 0x208077bd, 0x008d0080, 0x0000006c },
-   { 0x00600040, 0x20a077bd, 0x008d00a0, 0x0000006c },
-   { 0x00600040, 0x20c077bd, 0x008d00c0, 0x00004024 },
-   { 0x00600040, 0x20e077bd, 0x008d00e0, 0x00004024 },
-   { 0x00600041, 0x20c077bd, 0x008d00c0, 0x00000074 },
-   { 0x00600041, 0x20e077bd, 0x008d00e0, 0x00000074 },
-   { 0x00600040, 0x20c077bd, 0x008d00c0, 0x0000007c },
-   { 0x00600040, 0x20e077bd, 0x008d00e0, 0x0000007c },
-   { 0x00600001, 0x202003be, 0x008d0080, 0x00000000 },
-   { 0x00600001, 0x204003be, 0x008d00a0, 0x00000000 },
-   { 0x00600001, 0x206003be, 0x008d00c0, 0x00000000 },
-   { 0x00600001, 0x208003be, 0x008d00e0, 0x00000000 },
-   { 0x00800031, 0x21801d29, 0x008d0000, 0x02580001 },
-   { 0x00802040, 0x21c07fbd, 0x008d01c0, 0xbd808081 },
-   { 0x00802041, 0x21c07fbd, 0x008d01c0, 0x3f94fdf4 },
-   { 0x00802040, 0x21807fbd, 0x008d0180, 0xbf008084 },
-   { 0x00802040, 0x22007fbd, 0x008d0200, 0xbf008084 },
-   { 0x00600041, 0x20007fbc, 0x008d0180, 0x3fcc49ba },
-   { 0x80600048, 0x20407fbe, 0x008d01c0, 0x3f800000 },
-   { 0x00600041, 0x20007fbc, 0x008d01a0, 0x3fcc49ba },
-   { 0x80600048, 0x20c07fbe, 0x008d01e0, 0x3f800000 },
-   { 0x00600041, 0x20007fbc, 0x008d0180, 0xbf5020c5 },
-   { 0x00600048, 0x20007fbc, 0x008d0200, 0xbec8b439 },
-   { 0x80600048, 0x20607fbe, 0x008d01c0, 0x3f800000 },
-   { 0x00600041, 0x20007fbc, 0x008d01a0, 0xbf5020c5 },
-   { 0x00600048, 0x20007fbc, 0x008d0220, 0xbec8b439 },
-   { 0x80600048, 0x20e07fbe, 0x008d01e0, 0x3f800000 },
-   { 0x00600041, 0x20007fbc, 0x008d0200, 0x40011687 },
-   { 0x80600048, 0x20807fbe, 0x008d01c0, 0x3f800000 },
-   { 0x00600041, 0x20007fbc, 0x008d0220, 0x40011687 },
-   { 0x80600048, 0x21007fbe, 0x008d01e0, 0x3f800000 },
-   { 0x00600001, 0x20a003fe, 0x00000000, 0x3f800000 },
-   { 0x00600001, 0x212003fe, 0x00000000, 0x3f800000 },
-   { 0x00600201, 0x20200022, 0x008d0020, 0x00000000 },
-   { 0x00800031, 0x24001d28, 0x008d0000, 0x85a04800 },
-   { 0x0000007e, 0x00000000, 0x00000000, 0x00000000 },
-   { 0x0000007e, 0x00000000, 0x00000000, 0x00000000 },
-   { 0x0000007e, 0x00000000, 0x00000000, 0x00000000 },
-   { 0x0000007e, 0x00000000, 0x00000000, 0x00000000 },
-   { 0x0000007e, 0x00000000, 0x00000000, 0x00000000 },
-   { 0x0000007e, 0x00000000, 0x00000000, 0x00000000 },
-   { 0x0000007e, 0x00000000, 0x00000000, 0x00000000 },
-   { 0x0000007e, 0x00000000, 0x00000000, 0x00000000 },
diff --git a/src/render_program/packed_yuv_wm.g4b.gen5 b/src/render_program/packed_yuv_wm.g4b.gen5
deleted file mode 100644
index 43fefa6..0000000
--- a/src/render_program/packed_yuv_wm.g4b.gen5
+++ /dev/null
@@ -1,79 +0,0 @@
-   { 0x00000001, 0x2080013d, 0x00000028, 0x00000000 },
-   { 0x00000040, 0x20840d3d, 0x00000028, 0x00000001 },
-   { 0x00000001, 0x2088013d, 0x00000028, 0x00000000 },
-   { 0x00000040, 0x208c0d3d, 0x00000028, 0x00000001 },
-   { 0x00000001, 0x20c0013d, 0x0000002a, 0x00000000 },
-   { 0x00000001, 0x20c4013d, 0x0000002a, 0x00000000 },
-   { 0x00000040, 0x20c80d3d, 0x0000002a, 0x00000001 },
-   { 0x00000040, 0x20cc0d3d, 0x0000002a, 0x00000001 },
-   { 0x00000001, 0x2090013d, 0x0000002c, 0x00000000 },
-   { 0x00000040, 0x20940d3d, 0x0000002c, 0x00000001 },
-   { 0x00000001, 0x2098013d, 0x0000002c, 0x00000000 },
-   { 0x00000040, 0x209c0d3d, 0x0000002c, 0x00000001 },
-   { 0x00000001, 0x20d0013d, 0x0000002e, 0x00000000 },
-   { 0x00000001, 0x20d4013d, 0x0000002e, 0x00000000 },
-   { 0x00000040, 0x20d80d3d, 0x0000002e, 0x00000001 },
-   { 0x00000040, 0x20dc0d3d, 0x0000002e, 0x00000001 },
-   { 0x00000001, 0x20a0013d, 0x00000030, 0x00000000 },
-   { 0x00000040, 0x20a40d3d, 0x00000030, 0x00000001 },
-   { 0x00000001, 0x20a8013d, 0x00000030, 0x00000000 },
-   { 0x00000040, 0x20ac0d3d, 0x00000030, 0x00000001 },
-   { 0x00000001, 0x20e0013d, 0x00000032, 0x00000000 },
-   { 0x00000001, 0x20e4013d, 0x00000032, 0x00000000 },
-   { 0x00000040, 0x20e80d3d, 0x00000032, 0x00000001 },
-   { 0x00000040, 0x20ec0d3d, 0x00000032, 0x00000001 },
-   { 0x00000001, 0x20b0013d, 0x00000034, 0x00000000 },
-   { 0x00000040, 0x20b40d3d, 0x00000034, 0x00000001 },
-   { 0x00000001, 0x20b8013d, 0x00000034, 0x00000000 },
-   { 0x00000040, 0x20bc0d3d, 0x00000034, 0x00000001 },
-   { 0x00000001, 0x20f0013d, 0x00000036, 0x00000000 },
-   { 0x00000001, 0x20f4013d, 0x00000036, 0x00000000 },
-   { 0x00000040, 0x20f80d3d, 0x00000036, 0x00000001 },
-   { 0x00000040, 0x20fc0d3d, 0x00000036, 0x00000001 },
-   { 0x00600040, 0x208077bd, 0x008d0080, 0x00004020 },
-   { 0x00600040, 0x20a077bd, 0x008d00a0, 0x00004020 },
-   { 0x00600041, 0x208077bd, 0x008d0080, 0x00000060 },
-   { 0x00600041, 0x20a077bd, 0x008d00a0, 0x00000060 },
-   { 0x00600040, 0x208077bd, 0x008d0080, 0x0000006c },
-   { 0x00600040, 0x20a077bd, 0x008d00a0, 0x0000006c },
-   { 0x00600040, 0x20c077bd, 0x008d00c0, 0x00004024 },
-   { 0x00600040, 0x20e077bd, 0x008d00e0, 0x00004024 },
-   { 0x00600041, 0x20c077bd, 0x008d00c0, 0x00000074 },
-   { 0x00600041, 0x20e077bd, 0x008d00e0, 0x00000074 },
-   { 0x00600040, 0x20c077bd, 0x008d00c0, 0x0000007c },
-   { 0x00600040, 0x20e077bd, 0x008d00e0, 0x0000007c },
-   { 0x00600001, 0x202003be, 0x008d0080, 0x00000000 },
-   { 0x00600001, 0x204003be, 0x008d00a0, 0x00000000 },
-   { 0x00600001, 0x206003be, 0x008d00c0, 0x00000000 },
-   { 0x00600001, 0x208003be, 0x008d00e0, 0x00000000 },
-   { 0x00800031, 0x21801d29, 0x208d0000, 0x0a8a0001 },
-   { 0x00802040, 0x21c07fbd, 0x008d01c0, 0xbd808081 },
-   { 0x00802041, 0x21c07fbd, 0x008d01c0, 0x3f94fdf4 },
-   { 0x00802040, 0x21807fbd, 0x008d0180, 0xbf008084 },
-   { 0x00802040, 0x22007fbd, 0x008d0200, 0xbf008084 },
-   { 0x00600041, 0x20007fbc, 0x008d0180, 0x3fcc49ba },
-   { 0x80600048, 0x20407fbe, 0x008d01c0, 0x3f800000 },
-   { 0x00600041, 0x20007fbc, 0x008d01a0, 0x3fcc49ba },
-   { 0x80600048, 0x20c07fbe, 0x008d01e0, 0x3f800000 },
-   { 0x00600041, 0x20007fbc, 0x008d0180, 0xbf5020c5 },
-   { 0x00600048, 0x20007fbc, 0x008d0200, 0xbec8b439 },
-   { 0x80600048, 0x20607fbe, 0x008d01c0, 0x3f800000 },
-   { 0x00600041, 0x20007fbc, 0x008d01a0, 0xbf5020c5 },
-   { 0x00600048, 0x20007fbc, 0x008d0220, 0xbec8b439 },
-   { 0x80600048, 0x20e07fbe, 0x008d01e0, 0x3f800000 },
-   { 0x00600041, 0x20007fbc, 0x008d0200, 0x40011687 },
-   { 0x80600048, 0x20807fbe, 0x008d01c0, 0x3f800000 },
-   { 0x00600041, 0x20007fbc, 0x008d0220, 0x40011687 },
-   { 0x80600048, 0x21007fbe, 0x008d01e0, 0x3f800000 },
-   { 0x00600001, 0x20a003fe, 0x00000000, 0x3f800000 },
-   { 0x00600001, 0x212003fe, 0x00000000, 0x3f800000 },
-   { 0x00600201, 0x20200022, 0x008d0020, 0x00000000 },
-   { 0x00800031, 0x24001d28, 0x548d0000, 0x94084800 },
-   { 0x0000007e, 0x00000000, 0x00000000, 0x00000000 },
-   { 0x0000007e, 0x00000000, 0x00000000, 0x00000000 },
-   { 0x0000007e, 0x00000000, 0x00000000, 0x00000000 },
-   { 0x0000007e, 0x00000000, 0x00000000, 0x00000000 },
-   { 0x0000007e, 0x00000000, 0x00000000, 0x00000000 },
-   { 0x0000007e, 0x00000000, 0x00000000, 0x00000000 },
-   { 0x0000007e, 0x00000000, 0x00000000, 0x00000000 },
-   { 0x0000007e, 0x00000000, 0x00000000, 0x00000000 },
commit 150c9adebc0b502f19c970783f411928e5a5c3b1
Author: Zhenyu Wang <zhenyuw at linux.intel.com>
Date:   Tue Jun 30 10:42:41 2009 +0800

    Xv: fix domain usage for binding table on i965+ chips
    
    Signed-off-by: Zhenyu Wang <zhenyuw at linux.intel.com>

diff --git a/src/i965_video.c b/src/i965_video.c
index 012799b..805b33f 100644
--- a/src/i965_video.c
+++ b/src/i965_video.c
@@ -857,7 +857,7 @@ i965_emit_video_setup(ScrnInfoPtr pScrn, drm_intel_bo *bind_bo, int n_src_surf)
     OUT_BATCH(0); /* clip */
     OUT_BATCH(0); /* sf */
     /* Only the PS uses the binding table */
-    OUT_RELOC(bind_bo, I915_GEM_DOMAIN_INSTRUCTION, 0, 0);
+    OUT_RELOC(bind_bo, I915_GEM_DOMAIN_SAMPLER, 0, 0);
 
     /* Blend constant color (magenta is fun) */
     OUT_BATCH(BRW_3DSTATE_CONSTANT_COLOR | 3);
commit 7770958e42d60966d95702e75c704e20ae2d90dd
Author: Zhenyu Wang <zhenyuw at linux.intel.com>
Date:   Tue Jun 30 10:41:26 2009 +0800

    Add XV support on IGDNG
    
    This brings necessary change for IGDNG for texture video support
    from 2D render code.
    
    Signed-off-by: Zhenyu Wang <zhenyuw at linux.intel.com>

diff --git a/src/i965_video.c b/src/i965_video.c
index d459027..012799b 100644
--- a/src/i965_video.c
+++ b/src/i965_video.c
@@ -110,6 +110,27 @@ static const uint32_t ps_kernel_planar_static[][4] = {
 #include "exa_wm_write.g4b"
 };
 
+/* new program for IGDNG */
+static const uint32_t sf_kernel_static_gen5[][4] = {
+#include "exa_sf.g4b.gen5"
+};
+
+static const uint32_t ps_kernel_packed_static_gen5[][4] = {
+#include "exa_wm_xy.g4b.gen5"
+#include "exa_wm_src_affine.g4b.gen5"
+#include "exa_wm_src_sample_argb.g4b.gen5"
+#include "exa_wm_yuv_rgb.g4b.gen5"
+#include "exa_wm_write.g4b.gen5"
+};
+
+static const uint32_t ps_kernel_planar_static_gen5[][4] = {
+#include "exa_wm_xy.g4b.gen5"
+#include "exa_wm_src_affine.g4b.gen5"
+#include "exa_wm_src_sample_planar.g4b.gen5"
+#include "exa_wm_yuv_rgb.g4b.gen5"
+#include "exa_wm_write.g4b.gen5"
+};
+
 #define ALIGN(i,m)    (((i) + (m) - 1) & ~((m) - 1))
 #define MIN(a,b) ((a) < (b) ? (a) : (b))
 
@@ -498,7 +519,10 @@ i965_create_vs_state(ScrnInfoPtr scrn)
 	return NULL;
 
     /* Set up the vertex shader to be disabled (passthrough) */
-    vs_state->thread4.nr_urb_entries = URB_VS_ENTRIES;
+    if (IS_IGDNG(pI830))
+	vs_state->thread4.nr_urb_entries = URB_VS_ENTRIES >> 2;
+    else
+	vs_state->thread4.nr_urb_entries = URB_VS_ENTRIES;
     vs_state->thread4.urb_entry_allocation_size = URB_VS_ENTRY_SIZE - 1;
     vs_state->vs6.vs_enable = 0;
     vs_state->vs6.vert_cache_disable = 1;
@@ -531,8 +555,12 @@ i965_create_sf_state(ScrnInfoPtr scrn)
     drm_intel_bo *sf_bo, *kernel_bo;
     struct brw_sf_unit_state *sf_state;
 
-    kernel_bo = i965_create_program(scrn, &sf_kernel_static[0][0],
-				    sizeof(sf_kernel_static));
+    if (IS_IGDNG(pI830))
+	kernel_bo = i965_create_program(scrn, &sf_kernel_static_gen5[0][0],
+				        sizeof(sf_kernel_static_gen5));
+    else
+	kernel_bo = i965_create_program(scrn, &sf_kernel_static[0][0],
+				        sizeof(sf_kernel_static));
 
     if (!kernel_bo)
 	return NULL;
@@ -591,11 +619,19 @@ i965_create_wm_state(ScrnInfoPtr scrn, drm_intel_bo *sampler_bo, Bool is_packed)
     struct brw_wm_unit_state *wm_state;
 
     if (is_packed) {
-	kernel_bo = i965_create_program(scrn, &ps_kernel_packed_static[0][0],
-					sizeof(ps_kernel_packed_static));
+	if (IS_IGDNG(pI830))
+	    kernel_bo = i965_create_program(scrn, &ps_kernel_packed_static_gen5[0][0],
+					    sizeof(ps_kernel_packed_static_gen5));
+	else
+	    kernel_bo = i965_create_program(scrn, &ps_kernel_packed_static[0][0],
+					    sizeof(ps_kernel_packed_static));
     } else {
-	kernel_bo = i965_create_program(scrn, &ps_kernel_planar_static[0][0],
-					sizeof(ps_kernel_planar_static));
+	if (IS_IGDNG(pI830))
+	    kernel_bo = i965_create_program(scrn, &ps_kernel_planar_static_gen5[0][0],
+					    sizeof(ps_kernel_planar_static_gen5));
+	else
+	    kernel_bo = i965_create_program(scrn, &ps_kernel_planar_static[0][0],
+					    sizeof(ps_kernel_planar_static));
     }
     if (!kernel_bo)
 	return NULL;
@@ -616,6 +652,13 @@ i965_create_wm_state(ScrnInfoPtr scrn, drm_intel_bo *sampler_bo, Bool is_packed)
 	wm_state->thread1.binding_table_entry_count = 2;
     else
 	wm_state->thread1.binding_table_entry_count = 7;
+
+    /* binding table entry count is only used for prefetching, and it has to
+     * be set 0 for IGDNG
+     */
+    if (IS_IGDNG(pI830))
+	wm_state->thread1.binding_table_entry_count = 0;
+
     /* Though we never use the scratch space in our WM kernel, it has to be
      * set, and the minimum allocation is 1024 bytes.
      */
@@ -631,7 +674,10 @@ i965_create_wm_state(ScrnInfoPtr scrn, drm_intel_bo *sampler_bo, Bool is_packed)
 	intel_emit_reloc(wm_bo, offsetof(struct brw_wm_unit_state, wm4),
 			 sampler_bo, 0,
 			 I915_GEM_DOMAIN_INSTRUCTION, 0) >> 5;
-    wm_state->wm4.sampler_count = 1; /* 1-4 samplers used */
+    if (IS_IGDNG(pI830))
+	wm_state->wm4.sampler_count = 0;
+    else
+	wm_state->wm4.sampler_count = 1; /* 1-4 samplers used */
     wm_state->wm5.max_threads = PS_MAX_THREADS - 1;
     wm_state->wm5.thread_dispatch_enable = 1;
     wm_state->wm5.enable_16_pix = 1;
@@ -713,6 +759,7 @@ i965_emit_video_setup(ScrnInfoPtr pScrn, drm_intel_bo *bind_bo, int n_src_surf)
     int urb_clip_start, urb_clip_size;
     int urb_sf_start, urb_sf_size;
     int urb_cs_start, urb_cs_size;
+    int pipe_ctl;
 
     IntelEmitInvarientState(pScrn);
     pI830->last_3d = LAST_3D_VIDEO;
@@ -736,9 +783,12 @@ i965_emit_video_setup(ScrnInfoPtr pScrn, drm_intel_bo *bind_bo, int n_src_surf)
     ADVANCE_BATCH();
 
     /* brw_debug (pScrn, "before base address modify"); */
-    BEGIN_BATCH(12);
+    if (IS_IGDNG(pI830))
+	BEGIN_BATCH(14);
+    else
+	BEGIN_BATCH(12);
     /* Match Mesa driver setup */
-    if (IS_G4X(pI830))
+    if (IS_G4X(pI830) || IS_IGDNG(pI830))
 	OUT_BATCH(NEW_PIPELINE_SELECT | PIPELINE_SELECT_3D);
     else
 	OUT_BATCH(BRW_PIPELINE_SELECT | PIPELINE_SELECT_3D);
@@ -751,14 +801,28 @@ i965_emit_video_setup(ScrnInfoPtr pScrn, drm_intel_bo *bind_bo, int n_src_surf)
     /* Zero out the two base address registers so all offsets are
      * absolute
      */
-    OUT_BATCH(BRW_STATE_BASE_ADDRESS | 4);
-    OUT_BATCH(0 | BASE_ADDRESS_MODIFY);  /* Generate state base address */
-    OUT_BATCH(0 | BASE_ADDRESS_MODIFY);  /* Surface state base address */
-    OUT_BATCH(0 | BASE_ADDRESS_MODIFY);  /* media base addr, don't care */
-    /* general state max addr, disabled */
-    OUT_BATCH(0x10000000 | BASE_ADDRESS_MODIFY);
-    /* media object state max addr, disabled */
-    OUT_BATCH(0x10000000 | BASE_ADDRESS_MODIFY);
+    if (IS_IGDNG(pI830)) {
+	OUT_BATCH(BRW_STATE_BASE_ADDRESS | 6);
+	OUT_BATCH(0 | BASE_ADDRESS_MODIFY);  /* Generate state base address */
+	OUT_BATCH(0 | BASE_ADDRESS_MODIFY);  /* Surface state base address */
+	OUT_BATCH(0 | BASE_ADDRESS_MODIFY);  /* media base addr, don't care */
+	OUT_BATCH(0 | BASE_ADDRESS_MODIFY);  /* Instruction base address */
+	/* general state max addr, disabled */
+	OUT_BATCH(0x10000000 | BASE_ADDRESS_MODIFY);
+	/* media object state max addr, disabled */
+	OUT_BATCH(0x10000000 | BASE_ADDRESS_MODIFY);
+	/* Instruction max addr, disabled */
+	OUT_BATCH(0x10000000 | BASE_ADDRESS_MODIFY);
+    } else {
+	OUT_BATCH(BRW_STATE_BASE_ADDRESS | 4);
+	OUT_BATCH(0 | BASE_ADDRESS_MODIFY);  /* Generate state base address */
+	OUT_BATCH(0 | BASE_ADDRESS_MODIFY);  /* Surface state base address */
+	OUT_BATCH(0 | BASE_ADDRESS_MODIFY);  /* media base addr, don't care */
+	/* general state max addr, disabled */
+	OUT_BATCH(0x10000000 | BASE_ADDRESS_MODIFY);
+	/* media object state max addr, disabled */
+	OUT_BATCH(0x10000000 | BASE_ADDRESS_MODIFY);
+    }
 
     /* Set system instruction pointer */
     OUT_BATCH(BRW_STATE_SIP | 0);
@@ -771,14 +835,17 @@ i965_emit_video_setup(ScrnInfoPtr pScrn, drm_intel_bo *bind_bo, int n_src_surf)
 
     /* brw_debug (pScrn, "after base address modify"); */
 
+    if (IS_IGDNG(pI830))
+	pipe_ctl = BRW_PIPE_CONTROL_NOWRITE;
+    else
+	pipe_ctl = BRW_PIPE_CONTROL_NOWRITE | BRW_PIPE_CONTROL_IS_FLUSH;
+
     BEGIN_BATCH(38);
+
     OUT_BATCH(MI_NOOP);
 
     /* Pipe control */
-    OUT_BATCH(BRW_PIPE_CONTROL |
-	      BRW_PIPE_CONTROL_NOWRITE |
-	      BRW_PIPE_CONTROL_IS_FLUSH |
-	      2);
+    OUT_BATCH(BRW_PIPE_CONTROL | pipe_ctl | 2);
     OUT_BATCH(0);			/* Destination address */
     OUT_BATCH(0);			/* Immediate data low DW */
     OUT_BATCH(0);			/* Immediate data high DW */
@@ -849,27 +916,50 @@ i965_emit_video_setup(ScrnInfoPtr pScrn, drm_intel_bo *bind_bo, int n_src_surf)
 	      (URB_CS_ENTRIES << 0));
 
     /* Set up our vertex elements, sourced from the single vertex buffer. */
-    OUT_BATCH(BRW_3DSTATE_VERTEX_ELEMENTS | 3);
-    /* offset 0: X,Y -> {X, Y, 1.0, 1.0} */
-    OUT_BATCH((0 << VE0_VERTEX_BUFFER_INDEX_SHIFT) |
-	      VE0_VALID |
-	      (BRW_SURFACEFORMAT_R32G32_FLOAT << VE0_FORMAT_SHIFT) |
-	      (0 << VE0_OFFSET_SHIFT));
-    OUT_BATCH((BRW_VFCOMPONENT_STORE_SRC << VE1_VFCOMPONENT_0_SHIFT) |
-	      (BRW_VFCOMPONENT_STORE_SRC << VE1_VFCOMPONENT_1_SHIFT) |
-	      (BRW_VFCOMPONENT_STORE_1_FLT << VE1_VFCOMPONENT_2_SHIFT) |
-	      (BRW_VFCOMPONENT_STORE_1_FLT << VE1_VFCOMPONENT_3_SHIFT) |
-	      (0 << VE1_DESTINATION_ELEMENT_OFFSET_SHIFT));
-    /* offset 8: S0, T0 -> {S0, T0, 1.0, 1.0} */
-    OUT_BATCH((0 << VE0_VERTEX_BUFFER_INDEX_SHIFT) |
-	      VE0_VALID |
-	      (BRW_SURFACEFORMAT_R32G32_FLOAT << VE0_FORMAT_SHIFT) |
-	      (8 << VE0_OFFSET_SHIFT));
-    OUT_BATCH((BRW_VFCOMPONENT_STORE_SRC << VE1_VFCOMPONENT_0_SHIFT) |
-	      (BRW_VFCOMPONENT_STORE_SRC << VE1_VFCOMPONENT_1_SHIFT) |
-	      (BRW_VFCOMPONENT_STORE_1_FLT << VE1_VFCOMPONENT_2_SHIFT) |
-	      (BRW_VFCOMPONENT_STORE_1_FLT << VE1_VFCOMPONENT_3_SHIFT) |
-	      (4 << VE1_DESTINATION_ELEMENT_OFFSET_SHIFT));
+
+    if (IS_IGDNG(pI830)) {
+	OUT_BATCH(BRW_3DSTATE_VERTEX_ELEMENTS | 3);
+	/* offset 0: X,Y -> {X, Y, 1.0, 1.0} */
+	OUT_BATCH((0 << VE0_VERTEX_BUFFER_INDEX_SHIFT) |
+	          VE0_VALID |
+	          (BRW_SURFACEFORMAT_R32G32_FLOAT << VE0_FORMAT_SHIFT) |
+	          (0 << VE0_OFFSET_SHIFT));
+	OUT_BATCH((BRW_VFCOMPONENT_STORE_SRC << VE1_VFCOMPONENT_0_SHIFT) |
+	          (BRW_VFCOMPONENT_STORE_SRC << VE1_VFCOMPONENT_1_SHIFT) |
+	          (BRW_VFCOMPONENT_STORE_1_FLT << VE1_VFCOMPONENT_2_SHIFT) |
+	          (BRW_VFCOMPONENT_STORE_1_FLT << VE1_VFCOMPONENT_3_SHIFT));
+	/* offset 8: S0, T0 -> {S0, T0, 1.0, 1.0} */
+	OUT_BATCH((0 << VE0_VERTEX_BUFFER_INDEX_SHIFT) |
+	          VE0_VALID |
+	          (BRW_SURFACEFORMAT_R32G32_FLOAT << VE0_FORMAT_SHIFT) |
+	          (8 << VE0_OFFSET_SHIFT));
+	OUT_BATCH((BRW_VFCOMPONENT_STORE_SRC << VE1_VFCOMPONENT_0_SHIFT) |
+	          (BRW_VFCOMPONENT_STORE_SRC << VE1_VFCOMPONENT_1_SHIFT) |
+	          (BRW_VFCOMPONENT_STORE_1_FLT << VE1_VFCOMPONENT_2_SHIFT) |
+	          (BRW_VFCOMPONENT_STORE_1_FLT << VE1_VFCOMPONENT_3_SHIFT));
+    } else {
+	OUT_BATCH(BRW_3DSTATE_VERTEX_ELEMENTS | 3);
+	/* offset 0: X,Y -> {X, Y, 1.0, 1.0} */
+	OUT_BATCH((0 << VE0_VERTEX_BUFFER_INDEX_SHIFT) |
+	          VE0_VALID |
+	          (BRW_SURFACEFORMAT_R32G32_FLOAT << VE0_FORMAT_SHIFT) |
+	          (0 << VE0_OFFSET_SHIFT));
+	OUT_BATCH((BRW_VFCOMPONENT_STORE_SRC << VE1_VFCOMPONENT_0_SHIFT) |
+	          (BRW_VFCOMPONENT_STORE_SRC << VE1_VFCOMPONENT_1_SHIFT) |
+	          (BRW_VFCOMPONENT_STORE_1_FLT << VE1_VFCOMPONENT_2_SHIFT) |
+	          (BRW_VFCOMPONENT_STORE_1_FLT << VE1_VFCOMPONENT_3_SHIFT) |
+	          (0 << VE1_DESTINATION_ELEMENT_OFFSET_SHIFT));
+	/* offset 8: S0, T0 -> {S0, T0, 1.0, 1.0} */
+	OUT_BATCH((0 << VE0_VERTEX_BUFFER_INDEX_SHIFT) |
+	          VE0_VALID |
+	          (BRW_SURFACEFORMAT_R32G32_FLOAT << VE0_FORMAT_SHIFT) |
+	          (8 << VE0_OFFSET_SHIFT));
+	OUT_BATCH((BRW_VFCOMPONENT_STORE_SRC << VE1_VFCOMPONENT_0_SHIFT) |
+	          (BRW_VFCOMPONENT_STORE_SRC << VE1_VFCOMPONENT_1_SHIFT) |
+	          (BRW_VFCOMPONENT_STORE_1_FLT << VE1_VFCOMPONENT_2_SHIFT) |
+	          (BRW_VFCOMPONENT_STORE_1_FLT << VE1_VFCOMPONENT_3_SHIFT) |
+	          (4 << VE1_DESTINATION_ELEMENT_OFFSET_SHIFT));
+    }
 
     OUT_BATCH(MI_NOOP);			/* pad to quadword */
     ADVANCE_BATCH();
@@ -1112,7 +1202,8 @@ I965DisplayVideoTextured(ScrnInfoPtr pScrn, I830PortPrivPtr pPriv, int id,
 
 	drm_intel_bo_unmap(vb_bo);
 
-	i965_pre_draw_debug(pScrn);
+	if (!IS_IGDNG(pI830))
+	    i965_pre_draw_debug(pScrn);
 
 	/* If this command won't fit in the current batch, flush.
 	 * Assume that it does after being flushed.
@@ -1134,7 +1225,10 @@ I965DisplayVideoTextured(ScrnInfoPtr pScrn, I830PortPrivPtr pPriv, int id,
 		  VB0_VERTEXDATA |
 		  ((4 * 4) << VB0_BUFFER_PITCH_SHIFT));
 	OUT_RELOC(vb_bo, I915_GEM_DOMAIN_VERTEX, 0, 0);
-	OUT_BATCH(3); /* four corners to our rectangle */
+	if (IS_IGDNG(pI830))
+	    OUT_RELOC(vb_bo, I915_GEM_DOMAIN_VERTEX, 0, (vb_bo->offset + i) * 4);
+	else
+	    OUT_BATCH(3); /* four corners to our rectangle */
 	OUT_BATCH(0); /* reserved */
 
 	OUT_BATCH(BRW_3DPRIMITIVE |
@@ -1154,7 +1248,9 @@ I965DisplayVideoTextured(ScrnInfoPtr pScrn, I830PortPrivPtr pPriv, int id,
 
 	drm_intel_bo_unreference(vb_bo);
 
-	i965_post_draw_debug(pScrn);
+	if (!IS_IGDNG(pI830))
+	    i965_post_draw_debug(pScrn);
+
     }
 
     /* release reference once we're finished */
commit f806fe7d675b966680a63406167ce37e4f8a1ae8
Author: Xiang Haihao <haihao.xiang at intel.com>
Date:   Thu Jun 25 15:39:32 2009 +0800

    Enable 2D composite on IGDNG
    
    This patch enables 2D composite on IGDNG. IGDNG requires
    new compiled shader programs for Gen5 and some command changes.
    The most notable is the layout of vertex element has changed,
    but we tried to keep it as origin to not change shader programs.
    Also vertex buffer state requires end address of vertex buffer
    instead of origin max index.
    
    Signed-off-by: Zhenyu Wang <zhenyuw at linux.intel.com>

diff --git a/src/brw_structs.h b/src/brw_structs.h
index 022915d..1cee5bd 100644
--- a/src/brw_structs.h
+++ b/src/brw_structs.h
@@ -838,6 +838,27 @@ struct brw_wm_unit_state
    
    float global_depth_offset_constant;  
    float global_depth_offset_scale;   
+
+   struct {
+      unsigned int pad0:1;
+      unsigned int grf_reg_count_1:3; 
+      unsigned int pad1:2;
+      unsigned int kernel_start_pointer_1:26;
+   } wm8;       
+
+   struct {
+      unsigned int pad0:1;
+      unsigned int grf_reg_count_2:3; 
+      unsigned int pad1:2;
+      unsigned int kernel_start_pointer_2:26;
+   } wm9;       
+
+   struct {
+      unsigned int pad0:1;
+      unsigned int grf_reg_count_3:3; 
+      unsigned int pad1:2;
+      unsigned int kernel_start_pointer_3:26;
+   } wm10;       
 };
 
 /* The hardware supports two different modes for border color. The
diff --git a/src/i830_uxa.c b/src/i830_uxa.c
index faf4d5d..eb35014 100644
--- a/src/i830_uxa.c
+++ b/src/i830_uxa.c
@@ -722,14 +722,6 @@ i830_uxa_init (ScreenPtr pScreen)
  	i830->uxa_driver->done_composite = i830_done_composite;
     }
 
-    /* FIXME */
-    if (IS_IGDNG(i830)) {
-	i830->uxa_driver->check_composite = NULL;
-	i830->uxa_driver->prepare_composite = NULL;
-	i830->uxa_driver->composite = NULL;
-	i830->uxa_driver->done_composite = NULL;
-    }
-
     i830->uxa_driver->prepare_access = i830_uxa_prepare_access;
     i830->uxa_driver->finish_access = i830_uxa_finish_access;
     i830->uxa_driver->pixmap_is_offscreen = i830_uxa_pixmap_is_offscreen;
diff --git a/src/i965_render.c b/src/i965_render.c
index e527f11..8ab984d 100644
--- a/src/i965_render.c
+++ b/src/i965_render.c
@@ -390,6 +390,89 @@ static const uint32_t ps_kernel_masknoca_projective_static [][4] = {
 #include "exa_wm_write.g4b"
 };
 
+/* new programs for IGDNG */
+static const uint32_t sf_kernel_static_gen5[][4] = {
+#include "exa_sf.g4b.gen5"
+};
+
+static const uint32_t sf_kernel_mask_static_gen5[][4] = {
+#include "exa_sf_mask.g4b.gen5"
+};
+
+static const uint32_t ps_kernel_nomask_affine_static_gen5 [][4] = {
+#include "exa_wm_xy.g4b.gen5"
+#include "exa_wm_src_affine.g4b.gen5"
+#include "exa_wm_src_sample_argb.g4b.gen5"
+#include "exa_wm_write.g4b.gen5"
+};
+
+static const uint32_t ps_kernel_nomask_projective_static_gen5 [][4] = {
+#include "exa_wm_xy.g4b.gen5"
+#include "exa_wm_src_projective.g4b.gen5"
+#include "exa_wm_src_sample_argb.g4b.gen5"
+#include "exa_wm_write.g4b.gen5"
+};
+
+static const uint32_t ps_kernel_maskca_affine_static_gen5 [][4] = {
+#include "exa_wm_xy.g4b.gen5"
+#include "exa_wm_src_affine.g4b.gen5"
+#include "exa_wm_src_sample_argb.g4b.gen5"
+#include "exa_wm_mask_affine.g4b.gen5"
+#include "exa_wm_mask_sample_argb.g4b.gen5"
+#include "exa_wm_ca.g4b.gen5"
+#include "exa_wm_write.g4b.gen5"
+};
+
+static const uint32_t ps_kernel_maskca_projective_static_gen5 [][4] = {
+#include "exa_wm_xy.g4b.gen5"
+#include "exa_wm_src_projective.g4b.gen5"
+#include "exa_wm_src_sample_argb.g4b.gen5"
+#include "exa_wm_mask_projective.g4b.gen5"
+#include "exa_wm_mask_sample_argb.g4b.gen5"
+#include "exa_wm_ca.g4b.gen5"
+#include "exa_wm_write.g4b.gen5"
+};
+
+static const uint32_t ps_kernel_maskca_srcalpha_affine_static_gen5 [][4] = {
+#include "exa_wm_xy.g4b.gen5"
+#include "exa_wm_src_affine.g4b.gen5"
+#include "exa_wm_src_sample_a.g4b.gen5"
+#include "exa_wm_mask_affine.g4b.gen5"
+#include "exa_wm_mask_sample_argb.g4b.gen5"
+#include "exa_wm_ca_srcalpha.g4b.gen5"
+#include "exa_wm_write.g4b.gen5"
+};
+
+static const uint32_t ps_kernel_maskca_srcalpha_projective_static_gen5 [][4] = {
+#include "exa_wm_xy.g4b.gen5"
+#include "exa_wm_src_projective.g4b.gen5"
+#include "exa_wm_src_sample_a.g4b.gen5"
+#include "exa_wm_mask_projective.g4b.gen5"
+#include "exa_wm_mask_sample_argb.g4b.gen5"
+#include "exa_wm_ca_srcalpha.g4b.gen5"
+#include "exa_wm_write.g4b.gen5"
+};
+
+static const uint32_t ps_kernel_masknoca_affine_static_gen5 [][4] = {
+#include "exa_wm_xy.g4b.gen5"
+#include "exa_wm_src_affine.g4b.gen5"
+#include "exa_wm_src_sample_argb.g4b.gen5"
+#include "exa_wm_mask_affine.g4b.gen5"
+#include "exa_wm_mask_sample_a.g4b.gen5"
+#include "exa_wm_noca.g4b.gen5"
+#include "exa_wm_write.g4b.gen5"
+};
+
+static const uint32_t ps_kernel_masknoca_projective_static_gen5 [][4] = {
+#include "exa_wm_xy.g4b.gen5"
+#include "exa_wm_src_projective.g4b.gen5"
+#include "exa_wm_src_sample_argb.g4b.gen5"
+#include "exa_wm_mask_projective.g4b.gen5"
+#include "exa_wm_mask_sample_a.g4b.gen5"
+#include "exa_wm_noca.g4b.gen5"
+#include "exa_wm_write.g4b.gen5"
+};
+
 #define WM_STATE_DECL(kernel) \
     struct brw_wm_unit_state wm_state_ ## kernel[SAMPLER_STATE_FILTER_COUNT] \
 						[SAMPLER_STATE_EXTEND_COUNT] \
@@ -431,11 +514,13 @@ typedef enum {
 
 #define KERNEL(kernel_enum, kernel, masked) \
     [kernel_enum] = {&kernel, sizeof(kernel), masked}
-static struct wm_kernel_info {
+struct wm_kernel_info {
     void *data;
     unsigned int size;
     Bool has_mask;
-} wm_kernels[] = {
+};
+
+static struct wm_kernel_info wm_kernels[] = {
     KERNEL(WM_KERNEL_NOMASK_AFFINE,
 	   ps_kernel_nomask_affine_static, FALSE),
     KERNEL(WM_KERNEL_NOMASK_PROJECTIVE,
@@ -453,6 +538,25 @@ static struct wm_kernel_info {
     KERNEL(WM_KERNEL_MASKNOCA_PROJECTIVE,
 	   ps_kernel_masknoca_projective_static, TRUE),
 };
+
+static struct wm_kernel_info wm_kernels_gen5[] = {
+    KERNEL(WM_KERNEL_NOMASK_AFFINE,
+	   ps_kernel_nomask_affine_static_gen5, FALSE),
+    KERNEL(WM_KERNEL_NOMASK_PROJECTIVE,
+	   ps_kernel_nomask_projective_static_gen5, FALSE),
+    KERNEL(WM_KERNEL_MASKCA_AFFINE,
+	   ps_kernel_maskca_affine_static_gen5, TRUE),
+    KERNEL(WM_KERNEL_MASKCA_PROJECTIVE,
+	   ps_kernel_maskca_projective_static_gen5, TRUE),
+    KERNEL(WM_KERNEL_MASKCA_SRCALPHA_AFFINE,
+	   ps_kernel_maskca_srcalpha_affine_static_gen5, TRUE),
+    KERNEL(WM_KERNEL_MASKCA_SRCALPHA_PROJECTIVE,
+	   ps_kernel_maskca_srcalpha_projective_static_gen5, TRUE),
+    KERNEL(WM_KERNEL_MASKNOCA_AFFINE,
+	   ps_kernel_masknoca_affine_static_gen5, TRUE),
+    KERNEL(WM_KERNEL_MASKNOCA_PROJECTIVE,
+	   ps_kernel_masknoca_projective_static_gen5, TRUE),
+};
 #undef KERNEL
 
 typedef struct _brw_cc_unit_state_padded {
@@ -768,7 +872,12 @@ gen4_create_wm_state(ScrnInfoPtr scrn,
     wm_state->thread3.dispatch_grf_start_reg = 3; /* must match kernel */
 
     wm_state->wm4.stats_enable = 1;  /* statistic */
-    wm_state->wm4.sampler_count = 1; /* 1-4 samplers used */
+    
+    if (IS_IGDNG(pI830))
+        wm_state->wm4.sampler_count = 0; /* hardware requirement */
+    else
+        wm_state->wm4.sampler_count = 1; /* 1-4 samplers used */
+
     wm_state->wm4.sampler_state_pointer =
 	intel_emit_reloc(wm_state_bo, offsetof(struct brw_wm_unit_state, wm4),
 			 sampler_bo,
@@ -794,6 +903,12 @@ gen4_create_wm_state(ScrnInfoPtr scrn,
 	wm_state->thread3.urb_entry_read_length = 2;
     }
 
+    /* binding table entry count is only used for prefetching, and it has to 
+     * be set 0 for IGDNG
+     */
+    if (IS_IGDNG(pI830))
+        wm_state->thread1.binding_table_entry_count = 0;
+
     drm_intel_bo_unmap(wm_state_bo);
 
     return wm_state_bo;
@@ -819,11 +934,15 @@ gen4_create_cc_viewport(ScrnInfoPtr scrn)
 static drm_intel_bo *
 gen4_create_vs_unit_state(ScrnInfoPtr scrn)
 {
+    I830Ptr pI830 = I830PTR(scrn);
     struct brw_vs_unit_state vs_state;
     memset(&vs_state, 0, sizeof(vs_state));
 
     /* Set up the vertex shader to be disabled (passthrough) */
-    vs_state.thread4.nr_urb_entries = URB_VS_ENTRIES;
+    if (IS_IGDNG(pI830))
+        vs_state.thread4.nr_urb_entries = URB_VS_ENTRIES >> 2; /* hardware requirement */
+    else
+        vs_state.thread4.nr_urb_entries = URB_VS_ENTRIES;
     vs_state.thread4.urb_entry_allocation_size = URB_VS_ENTRY_SIZE - 1;
     vs_state.vs6.vs_enable = 0;
     vs_state.vs6.vert_cache_disable = 1;
@@ -1040,10 +1159,13 @@ i965_emit_composite_state(ScrnInfoPtr pScrn)
 	ADVANCE_BATCH();
     }
     {
-        BEGIN_BATCH(12);
+        if (IS_IGDNG(pI830))
+            BEGIN_BATCH(14);
+        else
+            BEGIN_BATCH(12);
 
         /* Match Mesa driver setup */
-	if (IS_G4X(pI830))
+	if (IS_G4X(pI830) || IS_IGDNG(pI830))
 	    OUT_BATCH(NEW_PIPELINE_SELECT | PIPELINE_SELECT_3D);
 	else
 	    OUT_BATCH(BRW_PIPELINE_SELECT | PIPELINE_SELECT_3D);
@@ -1055,15 +1177,28 @@ i965_emit_composite_state(ScrnInfoPtr pScrn)
 	/* Zero out the two base address registers so all offsets are
 	 * absolute.
 	 */
-	OUT_BATCH(BRW_STATE_BASE_ADDRESS | 4);
-	OUT_BATCH(0 | BASE_ADDRESS_MODIFY);  /* Generate state base address */
-	OUT_BATCH(0 | BASE_ADDRESS_MODIFY);  /* Surface state base address */
-	OUT_BATCH(0 | BASE_ADDRESS_MODIFY);  /* media base addr, don't care */
-	/* general state max addr, disabled */
-	OUT_BATCH(0x10000000 | BASE_ADDRESS_MODIFY);
-	/* media object state max addr, disabled */
-	OUT_BATCH(0x10000000 | BASE_ADDRESS_MODIFY);
-
+        if (IS_IGDNG(pI830)) {
+            OUT_BATCH(BRW_STATE_BASE_ADDRESS | 6);
+            OUT_BATCH(0 | BASE_ADDRESS_MODIFY);  /* Generate state base address */
+            OUT_BATCH(0 | BASE_ADDRESS_MODIFY);  /* Surface state base address */
+            OUT_BATCH(0 | BASE_ADDRESS_MODIFY);  /* media base addr, don't care */
+            OUT_BATCH(0 | BASE_ADDRESS_MODIFY);  /* Instruction base address */
+            /* general state max addr, disabled */
+            OUT_BATCH(0x10000000 | BASE_ADDRESS_MODIFY);
+            /* media object state max addr, disabled */
+            OUT_BATCH(0x10000000 | BASE_ADDRESS_MODIFY);
+            /* Instruction max addr, disabled */
+            OUT_BATCH(0x10000000 | BASE_ADDRESS_MODIFY);
+        } else {
+            OUT_BATCH(BRW_STATE_BASE_ADDRESS | 4);
+            OUT_BATCH(0 | BASE_ADDRESS_MODIFY);  /* Generate state base address */
+            OUT_BATCH(0 | BASE_ADDRESS_MODIFY);  /* Surface state base address */
+            OUT_BATCH(0 | BASE_ADDRESS_MODIFY);  /* media base addr, don't care */
+            /* general state max addr, disabled */
+            OUT_BATCH(0x10000000 | BASE_ADDRESS_MODIFY);
+            /* media object state max addr, disabled */
+            OUT_BATCH(0x10000000 | BASE_ADDRESS_MODIFY);
+        }
 	/* Set system instruction pointer */
 	OUT_BATCH(BRW_STATE_SIP | 0);
 	OUT_RELOC(render_state->sip_kernel_bo,
@@ -1072,12 +1207,16 @@ i965_emit_composite_state(ScrnInfoPtr pScrn)
 	ADVANCE_BATCH();
     }
     {
+	int pipe_ctrl;        
 	BEGIN_BATCH(26);
 	/* Pipe control */
-	OUT_BATCH(BRW_PIPE_CONTROL |
-		  BRW_PIPE_CONTROL_NOWRITE |
-		  BRW_PIPE_CONTROL_IS_FLUSH |
-		  2);
+        
+	if (IS_IGDNG(pI830))
+            pipe_ctrl = BRW_PIPE_CONTROL_NOWRITE;
+	else
+            pipe_ctrl = BRW_PIPE_CONTROL_NOWRITE | BRW_PIPE_CONTROL_IS_FLUSH;
+
+	OUT_BATCH(BRW_PIPE_CONTROL | pipe_ctrl | 2);
 	OUT_BATCH(0);			       /* Destination address */
 	OUT_BATCH(0);			       /* Immediate data low DW */
 	OUT_BATCH(0);			       /* Immediate data high DW */
@@ -1174,44 +1313,92 @@ i965_emit_composite_state(ScrnInfoPtr pScrn)
 	    src_format = BRW_SURFACEFORMAT_R32G32B32_FLOAT;
 	    w_component = BRW_VFCOMPONENT_STORE_SRC;
 	}
-	BEGIN_BATCH(pMask?7:5);
-	/* Set up our vertex elements, sourced from the single vertex buffer.
-	 * that will be set up later.
-	 */
-	
-	OUT_BATCH(BRW_3DSTATE_VERTEX_ELEMENTS | ((2 * (1 + nelem)) - 1));
+
+        if (IS_IGDNG(pI830)) {
+            BEGIN_BATCH(pMask?9:7);
+	    /*
+	     * The reason to add this extra vertex element in the header is that
+	     * IGDNG has different vertex header definition and origin method to
+	     * set destination element offset doesn't exist anymore, which means
+	     * hardware requires a predefined vertex element layout.
+	     *
+	     * haihao proposed this approach to fill the first vertex element, so
+	     * origin layout for Gen4 doesn't need to change, and origin shader
+	     * programs behavior is also kept.
+	     *
+	     * I think this is not bad. - zhenyu
+	     */
+
+	    OUT_BATCH(BRW_3DSTATE_VERTEX_ELEMENTS | ((2 * (2 + nelem)) - 1));
+	    OUT_BATCH((0 << VE0_VERTEX_BUFFER_INDEX_SHIFT) |
+                      VE0_VALID |
+                      (BRW_SURFACEFORMAT_R32G32_FLOAT << VE0_FORMAT_SHIFT) |
+                      (0 << VE0_OFFSET_SHIFT));
+
+	    OUT_BATCH((BRW_VFCOMPONENT_STORE_0 << VE1_VFCOMPONENT_0_SHIFT) |
+                      (BRW_VFCOMPONENT_STORE_0 << VE1_VFCOMPONENT_1_SHIFT) |
+                      (BRW_VFCOMPONENT_STORE_0 << VE1_VFCOMPONENT_2_SHIFT) |
+                      (BRW_VFCOMPONENT_STORE_0 << VE1_VFCOMPONENT_3_SHIFT));
+        } else {
+            BEGIN_BATCH(pMask?7:5);
+            /* Set up our vertex elements, sourced from the single vertex buffer.
+             * that will be set up later.
+             */
+            OUT_BATCH(BRW_3DSTATE_VERTEX_ELEMENTS | ((2 * (1 + nelem)) - 1));
+        }
+
 	/* x,y */
 	OUT_BATCH((0 << VE0_VERTEX_BUFFER_INDEX_SHIFT) |
 		  VE0_VALID |
 		  (BRW_SURFACEFORMAT_R32G32_FLOAT << VE0_FORMAT_SHIFT) |
-		  (0				<< VE0_OFFSET_SHIFT));
-	OUT_BATCH((BRW_VFCOMPONENT_STORE_SRC	<< VE1_VFCOMPONENT_0_SHIFT) |
-		  (BRW_VFCOMPONENT_STORE_SRC	<< VE1_VFCOMPONENT_1_SHIFT) |
-		  (BRW_VFCOMPONENT_STORE_1_FLT	<< VE1_VFCOMPONENT_2_SHIFT) |
-		  (BRW_VFCOMPONENT_STORE_1_FLT	<< VE1_VFCOMPONENT_3_SHIFT) |
-		  (4				<< VE1_DESTINATION_ELEMENT_OFFSET_SHIFT));
+		  (0                            << VE0_OFFSET_SHIFT));
+
+        if (IS_IGDNG(pI830))
+            OUT_BATCH((BRW_VFCOMPONENT_STORE_SRC	<< VE1_VFCOMPONENT_0_SHIFT) |
+                      (BRW_VFCOMPONENT_STORE_SRC	<< VE1_VFCOMPONENT_1_SHIFT) |
+                      (BRW_VFCOMPONENT_STORE_1_FLT	<< VE1_VFCOMPONENT_2_SHIFT) |
+                      (BRW_VFCOMPONENT_STORE_1_FLT	<< VE1_VFCOMPONENT_3_SHIFT));
+        else
+            OUT_BATCH((BRW_VFCOMPONENT_STORE_SRC	<< VE1_VFCOMPONENT_0_SHIFT) |
+                      (BRW_VFCOMPONENT_STORE_SRC	<< VE1_VFCOMPONENT_1_SHIFT) |
+                      (BRW_VFCOMPONENT_STORE_1_FLT	<< VE1_VFCOMPONENT_2_SHIFT) |
+                      (BRW_VFCOMPONENT_STORE_1_FLT	<< VE1_VFCOMPONENT_3_SHIFT) |
+                      (4				<< VE1_DESTINATION_ELEMENT_OFFSET_SHIFT));
 	/* u0, v0, w0 */
 	OUT_BATCH((0				<< VE0_VERTEX_BUFFER_INDEX_SHIFT) |
 		  VE0_VALID					     |
 		  (src_format			<< VE0_FORMAT_SHIFT) |
-		  ((2 * 4)			<< VE0_OFFSET_SHIFT)); /* offset vb in bytes */
-	OUT_BATCH((BRW_VFCOMPONENT_STORE_SRC	<< VE1_VFCOMPONENT_0_SHIFT) |
-		  (BRW_VFCOMPONENT_STORE_SRC	<< VE1_VFCOMPONENT_1_SHIFT) |
-		  (w_component			<< VE1_VFCOMPONENT_2_SHIFT) |
-		  (BRW_VFCOMPONENT_STORE_1_FLT	<< VE1_VFCOMPONENT_3_SHIFT) |
-		  ((4 + 4)			<< VE1_DESTINATION_ELEMENT_OFFSET_SHIFT)); /* VUE offset in dwords */
+		  ((2 * 4)                      << VE0_OFFSET_SHIFT)); /* offset vb in bytes */
+
+        if (IS_IGDNG(pI830))
+            OUT_BATCH((BRW_VFCOMPONENT_STORE_SRC	<< VE1_VFCOMPONENT_0_SHIFT) |
+                      (BRW_VFCOMPONENT_STORE_SRC	<< VE1_VFCOMPONENT_1_SHIFT) |
+                      (w_component			<< VE1_VFCOMPONENT_2_SHIFT) |
+                      (BRW_VFCOMPONENT_STORE_1_FLT	<< VE1_VFCOMPONENT_3_SHIFT));
+        else
+            OUT_BATCH((BRW_VFCOMPONENT_STORE_SRC	<< VE1_VFCOMPONENT_0_SHIFT) |
+                      (BRW_VFCOMPONENT_STORE_SRC	<< VE1_VFCOMPONENT_1_SHIFT) |
+                      (w_component			<< VE1_VFCOMPONENT_2_SHIFT) |
+                      (BRW_VFCOMPONENT_STORE_1_FLT	<< VE1_VFCOMPONENT_3_SHIFT) |
+                      ((4 + 4)			<< VE1_DESTINATION_ELEMENT_OFFSET_SHIFT)); /* VUE offset in dwords */
 	/* u1, v1, w1 */
    	if (pMask) {
 	    OUT_BATCH((0			    << VE0_VERTEX_BUFFER_INDEX_SHIFT) |
 		      VE0_VALID							    |
 		      (src_format		    << VE0_FORMAT_SHIFT) |
-		      (((2 + selem) * 4)    	    << VE0_OFFSET_SHIFT));  /* vb offset in bytes */
+		      (((2 + selem) * 4)            << VE0_OFFSET_SHIFT));  /* vb offset in bytes */
 	    
-	    OUT_BATCH((BRW_VFCOMPONENT_STORE_SRC    << VE1_VFCOMPONENT_0_SHIFT) |
-		      (BRW_VFCOMPONENT_STORE_SRC    << VE1_VFCOMPONENT_1_SHIFT) |
-		      (w_component		    << VE1_VFCOMPONENT_2_SHIFT) |
-		      (BRW_VFCOMPONENT_STORE_1_FLT  << VE1_VFCOMPONENT_3_SHIFT) |
-		      ((4 + 4 + 4)		    << VE1_DESTINATION_ELEMENT_OFFSET_SHIFT)); /* VUE offset in dwords */
+            if (IS_IGDNG(pI830))
+                OUT_BATCH((BRW_VFCOMPONENT_STORE_SRC    << VE1_VFCOMPONENT_0_SHIFT) |
+                          (BRW_VFCOMPONENT_STORE_SRC    << VE1_VFCOMPONENT_1_SHIFT) |
+                          (w_component		    << VE1_VFCOMPONENT_2_SHIFT) |
+                          (BRW_VFCOMPONENT_STORE_1_FLT  << VE1_VFCOMPONENT_3_SHIFT));
+            else
+                OUT_BATCH((BRW_VFCOMPONENT_STORE_SRC    << VE1_VFCOMPONENT_0_SHIFT) |
+                          (BRW_VFCOMPONENT_STORE_SRC    << VE1_VFCOMPONENT_1_SHIFT) |
+                          (w_component		    << VE1_VFCOMPONENT_2_SHIFT) |
+                          (BRW_VFCOMPONENT_STORE_1_FLT  << VE1_VFCOMPONENT_3_SHIFT) |
+                          ((4 + 4 + 4)		    << VE1_DESTINATION_ELEMENT_OFFSET_SHIFT)); /* VUE offset in dwords */
    	}
 
 	ADVANCE_BATCH();
@@ -1583,7 +1770,12 @@ i965_composite(PixmapPtr pDst, int srcX, int srcY, int maskX, int maskY,
 	      VB0_VERTEXDATA |
 	      (render_state->vertex_size << VB0_BUFFER_PITCH_SHIFT));
     OUT_RELOC(vb_bo, I915_GEM_DOMAIN_VERTEX, 0, render_state->vb_offset * 4);
-    OUT_BATCH(3);
+
+    if (IS_IGDNG(pI830))
+        OUT_RELOC(vb_bo, I915_GEM_DOMAIN_VERTEX, 0, render_state->vb_offset * 4 + i * 4);
+    else
+        OUT_BATCH(3);
+
     OUT_BATCH(0); // ignore for VERTEXDATA, but still there
 
     OUT_BATCH(BRW_3DPRIMITIVE |
@@ -1644,14 +1836,25 @@ gen4_render_state_init(ScrnInfoPtr pScrn)
     render_state->vs_state_bo = gen4_create_vs_unit_state(pScrn);
 
     /* Set up the two SF states (one for blending with a mask, one without) */
-    sf_kernel_bo = intel_bo_alloc_for_data(pScrn,
-					   sf_kernel_static,
-					   sizeof(sf_kernel_static),
-					   "sf kernel");
-    sf_kernel_mask_bo = intel_bo_alloc_for_data(pScrn,
-						sf_kernel_mask_static,
-						sizeof(sf_kernel_mask_static),
-						"sf mask kernel");
+    if (IS_IGDNG(pI830)) {
+	sf_kernel_bo = intel_bo_alloc_for_data(pScrn,
+					       sf_kernel_static_gen5,
+					       sizeof(sf_kernel_static_gen5),
+					       "sf kernel gen5");
+	sf_kernel_mask_bo = intel_bo_alloc_for_data(pScrn,
+						    sf_kernel_mask_static_gen5,
+						    sizeof(sf_kernel_mask_static_gen5),
+						    "sf mask kernel");
+    } else {
+	sf_kernel_bo = intel_bo_alloc_for_data(pScrn,
+					       sf_kernel_static,
+					       sizeof(sf_kernel_static),
+					       "sf kernel");
+	sf_kernel_mask_bo = intel_bo_alloc_for_data(pScrn,
+						    sf_kernel_mask_static,
+						    sizeof(sf_kernel_mask_static),
+						    "sf mask kernel");
+    }
     render_state->sf_state_bo = gen4_create_sf_state(pScrn, sf_kernel_bo);
     render_state->sf_mask_state_bo = gen4_create_sf_state(pScrn,
 							  sf_kernel_mask_bo);
@@ -1659,10 +1862,16 @@ gen4_render_state_init(ScrnInfoPtr pScrn)
     drm_intel_bo_unreference(sf_kernel_mask_bo);
 
     for (m = 0; m < WM_KERNEL_COUNT; m++) {
-	render_state->wm_kernel_bo[m] =
-	    intel_bo_alloc_for_data(pScrn,
-				    wm_kernels[m].data, wm_kernels[m].size,
-				    "WM kernel");
+	if (IS_IGDNG(pI830))
+	    render_state->wm_kernel_bo[m] =
+		intel_bo_alloc_for_data(pScrn,
+				        wm_kernels_gen5[m].data, wm_kernels_gen5[m].size,
+				        "WM kernel gen5");
+	else
+	    render_state->wm_kernel_bo[m] =
+		intel_bo_alloc_for_data(pScrn,
+				        wm_kernels[m].data, wm_kernels[m].size,
+				        "WM kernel");
     }
 
     /* Set up the WM states: each filter/extend type for source and mask, per
@@ -1682,11 +1891,18 @@ gen4_render_state_init(ScrnInfoPtr pScrn)
 						  border_color_bo);
 
 		    for (m = 0; m < WM_KERNEL_COUNT; m++) {
-			render_state->wm_state_bo[m][i][j][k][l] =
-			    gen4_create_wm_state(pScrn,
-						 wm_kernels[m].has_mask,
-						 render_state->wm_kernel_bo[m],
-						 sampler_state_bo);
+			if (IS_IGDNG(pI830))
+			    render_state->wm_state_bo[m][i][j][k][l] =
+				gen4_create_wm_state(pScrn,
+						     wm_kernels_gen5[m].has_mask,
+						     render_state->wm_kernel_bo[m],
+						     sampler_state_bo);
+			else
+			    render_state->wm_state_bo[m][i][j][k][l] =
+				gen4_create_wm_state(pScrn,
+						     wm_kernels[m].has_mask,
+						     render_state->wm_kernel_bo[m],
+						     sampler_state_bo);
 		    }
 		    drm_intel_bo_unreference(sampler_state_bo);
 		}
commit 9fb34012f667e37f480085696ef9c2632d6eb7e1
Author: Zhenyu Wang <zhenyuw at linux.intel.com>
Date:   Thu Jun 25 15:30:04 2009 +0800

    Add new compiled shader program for IGDNG
    
    Also check intel-gen4asm tool here for new -g option, which is
    required to compile new programs.
    
    Signed-off-by: Zhenyu Wang <zhenyuw at linux.intel.com>

diff --git a/configure.ac b/configure.ac
index 397336c..486fed7 100644
--- a/configure.ac
+++ b/configure.ac
@@ -47,6 +47,15 @@ AC_PROG_CC
 AM_PROG_CC_C_O
 
 AC_CHECK_PROG(gen4asm, [intel-gen4asm], yes, no)
+
+if test x$gen4asm != xno; then
+	intel-gen4asm -g 5 src/render_program/exa_sf.g4a > /dev/null
+
+	if test "$?" !=  "0"; then
+		echo "Error: Require new intel-gen4asm with -g option!"
+		exit 1
+	fi
+fi
 AM_CONDITIONAL(HAVE_GEN4ASM, test x$gen4asm = xyes)
 
 AC_CHECK_HEADERS(sys/mman.h)
diff --git a/src/render_program/Makefile.am b/src/render_program/Makefile.am
index 820303f..72923d6 100644
--- a/src/render_program/Makefile.am
+++ b/src/render_program/Makefile.am
@@ -46,21 +46,43 @@ INTEL_G4B = 				\
 	exa_wm_xy.g4b
 
 
+INTEL_G4B_GEN5 = 				\
+	packed_yuv_sf.g4b.gen5			\
+	packed_yuv_wm.g4b.gen5			\
+	exa_sf.g4b.gen5 			\
+	exa_sf_mask.g4b.gen5 			\
+	exa_wm_src_affine.g4b.gen5 		\
+	exa_wm_src_projective.g4b.gen5 		\
+	exa_wm_src_sample_argb.g4b.gen5 	\
+	exa_wm_src_sample_a.g4b.gen5 		\
+	exa_wm_src_sample_planar.g4b.gen5 	\
+	exa_wm_mask_affine.g4b.gen5 		\
+	exa_wm_mask_projective.g4b.gen5 	\
+	exa_wm_mask_sample_argb.g4b.gen5 	\
+	exa_wm_mask_sample_a.g4b.gen5 		\
+	exa_wm_noca.g4b.gen5			\
+	exa_wm_ca.g4b.gen5			\
+	exa_wm_ca_srcalpha.g4b.gen5		\
+	exa_wm_write.g4b.gen5 			\
+	exa_wm_yuv_rgb.g4b.gen5			\
+	exa_wm_xy.g4b.gen5
+
 EXTRA_DIST = 		\
 	$(INTEL_G4A)	\
 	$(INTEL_G4I)	\
-	$(INTEL_G4B)
+	$(INTEL_G4B)	\
+	$(INTEL_G4B_GEN5)
 
 if HAVE_GEN4ASM
 
 SUFFIXES = .g4a .g4b
 .g4a.g4b:
-	m4 -I$(srcdir) -s $< > $*.g4m && intel-gen4asm -o $@ $*.g4m && rm $*.g4m
+	m4 -I$(srcdir) -s $< > $*.g4m && intel-gen4asm -o $@ $*.g4m && intel-gen4asm -g 5 -o $@.gen5 $*.g4m && rm $*.g4m
 
 $(INTEL_G4B): $(INTEL_G4I)
 
 BUILT_SOURCES= $(INTEL_G4B)
 
 clean-local:
-	-rm -f $(INTEL_G4B)
+	-rm -f $(INTEL_G4B) $(INTEL_G4B_GEN5)
 endif
diff --git a/src/render_program/exa_sf.g4b.gen5 b/src/render_program/exa_sf.g4b.gen5
new file mode 100644
index 0000000..a838f47
--- /dev/null
+++ b/src/render_program/exa_sf.g4b.gen5
@@ -0,0 +1,15 @@
+   { 0x00400031, 0x20c01fbd, 0x1069002c, 0x02100001 },
+   { 0x00400001, 0x206003be, 0x00690060, 0x00000000 },
+   { 0x00400040, 0x20e077bd, 0x00690080, 0x006940a0 },
+   { 0x00400041, 0x202077be, 0x006900e0, 0x000000c0 },
+   { 0x00400040, 0x20e077bd, 0x006900a0, 0x00694060 },
+   { 0x00400041, 0x204077be, 0x006900e0, 0x000000c8 },
+   { 0x00600031, 0x20001fbc, 0x648d0000, 0x8808c800 },
+   { 0x0000007e, 0x00000000, 0x00000000, 0x00000000 },
+   { 0x0000007e, 0x00000000, 0x00000000, 0x00000000 },
+   { 0x0000007e, 0x00000000, 0x00000000, 0x00000000 },
+   { 0x0000007e, 0x00000000, 0x00000000, 0x00000000 },
+   { 0x0000007e, 0x00000000, 0x00000000, 0x00000000 },
+   { 0x0000007e, 0x00000000, 0x00000000, 0x00000000 },
+   { 0x0000007e, 0x00000000, 0x00000000, 0x00000000 },
+   { 0x0000007e, 0x00000000, 0x00000000, 0x00000000 },
diff --git a/src/render_program/exa_sf_mask.g4b.gen5 b/src/render_program/exa_sf_mask.g4b.gen5
new file mode 100644
index 0000000..ca4d8c4
--- /dev/null
+++ b/src/render_program/exa_sf_mask.g4b.gen5
@@ -0,0 +1,15 @@
+   { 0x00400031, 0x20c01fbd, 0x1069002c, 0x02100001 },
+   { 0x00600001, 0x206003be, 0x008d0060, 0x00000000 },
+   { 0x00600040, 0x20e077bd, 0x008d0080, 0x008d40a0 },
+   { 0x00600041, 0x202077be, 0x008d00e0, 0x000000c0 },
+   { 0x00600040, 0x20e077bd, 0x008d00a0, 0x008d4060 },
+   { 0x00600041, 0x204077be, 0x008d00e0, 0x000000c8 },
+   { 0x00600031, 0x20001fbc, 0x648d0000, 0x8808c800 },
+   { 0x0000007e, 0x00000000, 0x00000000, 0x00000000 },
+   { 0x0000007e, 0x00000000, 0x00000000, 0x00000000 },
+   { 0x0000007e, 0x00000000, 0x00000000, 0x00000000 },
+   { 0x0000007e, 0x00000000, 0x00000000, 0x00000000 },
+   { 0x0000007e, 0x00000000, 0x00000000, 0x00000000 },
+   { 0x0000007e, 0x00000000, 0x00000000, 0x00000000 },
+   { 0x0000007e, 0x00000000, 0x00000000, 0x00000000 },
+   { 0x0000007e, 0x00000000, 0x00000000, 0x00000000 },
diff --git a/src/render_program/exa_wm_ca.g4b.gen5 b/src/render_program/exa_wm_ca.g4b.gen5
new file mode 100644
index 0000000..372e8b2
--- /dev/null
+++ b/src/render_program/exa_wm_ca.g4b.gen5
@@ -0,0 +1,4 @@
+   { 0x00802041, 0x21c077bd, 0x008d01c0, 0x008d02c0 },
+   { 0x00802041, 0x220077bd, 0x008d0200, 0x008d0300 },
+   { 0x00802041, 0x224077bd, 0x008d0240, 0x008d0340 },
+   { 0x00802041, 0x228077bd, 0x008d0280, 0x008d0380 },
diff --git a/src/render_program/exa_wm_ca_srcalpha.g4b.gen5 b/src/render_program/exa_wm_ca_srcalpha.g4b.gen5
new file mode 100644
index 0000000..963d676
--- /dev/null
+++ b/src/render_program/exa_wm_ca_srcalpha.g4b.gen5
@@ -0,0 +1,4 @@
+   { 0x00802041, 0x21c077bd, 0x008d02c0, 0x008d0280 },
+   { 0x00802041, 0x220077bd, 0x008d0300, 0x008d0280 },
+   { 0x00802041, 0x224077bd, 0x008d0340, 0x008d0280 },
+   { 0x00802041, 0x228077bd, 0x008d0380, 0x008d0280 },
diff --git a/src/render_program/exa_wm_mask_affine.g4b.gen5 b/src/render_program/exa_wm_mask_affine.g4b.gen5
new file mode 100644
index 0000000..14a5451
--- /dev/null
+++ b/src/render_program/exa_wm_mask_affine.g4b.gen5
@@ -0,0 +1,8 @@
+   { 0x00802041, 0x23c077bd, 0x008d0100, 0x000000a0 },
+   { 0x00802041, 0x238077bd, 0x008d0140, 0x000000a4 },
+   { 0x00802040, 0x23c077bd, 0x008d03c0, 0x008d0380 },
+   { 0x00802040, 0x210077be, 0x008d03c0, 0x000000ac },
+   { 0x00802041, 0x23c077bd, 0x008d0100, 0x000000b0 },
+   { 0x00802041, 0x238077bd, 0x008d0140, 0x000000b4 },
+   { 0x00802040, 0x23c077bd, 0x008d03c0, 0x008d0380 },
+   { 0x00802040, 0x214077be, 0x008d03c0, 0x000000bc },
diff --git a/src/render_program/exa_wm_mask_projective.g4b.gen5 b/src/render_program/exa_wm_mask_projective.g4b.gen5
new file mode 100644
index 0000000..c357459
--- /dev/null
+++ b/src/render_program/exa_wm_mask_projective.g4b.gen5
@@ -0,0 +1,16 @@
+   { 0x00802041, 0x23c077bd, 0x008d0100, 0x000000c0 },
+   { 0x00802041, 0x238077bd, 0x008d0140, 0x000000c4 },
+   { 0x00802040, 0x23c077bd, 0x008d03c0, 0x008d0380 },
+   { 0x00802040, 0x23c077bd, 0x008d03c0, 0x000000cc },
+   { 0x00600031, 0x21801fbd, 0x108d03c0, 0x02100001 },
+   { 0x00600031, 0x21a01fbd, 0x108d03e0, 0x02100001 },
+   { 0x00802041, 0x23c077bd, 0x008d0100, 0x000000a0 },
+   { 0x00802041, 0x238077bd, 0x008d0140, 0x000000a4 },
+   { 0x00802040, 0x23c077bd, 0x008d03c0, 0x008d0380 },
+   { 0x00802040, 0x23c077bd, 0x008d03c0, 0x000000ac },
+   { 0x00802041, 0x210077be, 0x008d03c0, 0x008d0180 },
+   { 0x00802041, 0x23c077bd, 0x008d0100, 0x000000b0 },
+   { 0x00802041, 0x238077bd, 0x008d0140, 0x000000b4 },
+   { 0x00802040, 0x23c077bd, 0x008d03c0, 0x008d0380 },
+   { 0x00802040, 0x23c077bd, 0x008d03c0, 0x000000bc },
+   { 0x00802041, 0x214077be, 0x008d03c0, 0x008d0180 },
diff --git a/src/render_program/exa_wm_mask_sample_a.g4b.gen5 b/src/render_program/exa_wm_mask_sample_a.g4b.gen5
new file mode 100644
index 0000000..d9740ac
--- /dev/null
+++ b/src/render_program/exa_wm_mask_sample_a.g4b.gen5
@@ -0,0 +1,2 @@
+   { 0x00000201, 0x20080061, 0x00000000, 0x00007000 },
+   { 0x07800031, 0x23801d29, 0x208d0000, 0x0a2a0102 },
diff --git a/src/render_program/exa_wm_mask_sample_argb.g4b.gen5 b/src/render_program/exa_wm_mask_sample_argb.g4b.gen5
new file mode 100644
index 0000000..f0a6ddd
--- /dev/null
+++ b/src/render_program/exa_wm_mask_sample_argb.g4b.gen5
@@ -0,0 +1,2 @@
+   { 0x00000201, 0x20080061, 0x00000000, 0x00000000 },
+   { 0x07800031, 0x22c01d29, 0x208d0000, 0x0a8a0102 },
diff --git a/src/render_program/exa_wm_noca.g4b.gen5 b/src/render_program/exa_wm_noca.g4b.gen5
new file mode 100644
index 0000000..1506334
--- /dev/null
+++ b/src/render_program/exa_wm_noca.g4b.gen5
@@ -0,0 +1,4 @@
+   { 0x00802041, 0x21c077bd, 0x008d01c0, 0x008d0380 },
+   { 0x00802041, 0x220077bd, 0x008d0200, 0x008d0380 },
+   { 0x00802041, 0x224077bd, 0x008d0240, 0x008d0380 },
+   { 0x00802041, 0x228077bd, 0x008d0280, 0x008d0380 },
diff --git a/src/render_program/exa_wm_src_affine.g4b.gen5 b/src/render_program/exa_wm_src_affine.g4b.gen5
new file mode 100644
index 0000000..d30da87
--- /dev/null
+++ b/src/render_program/exa_wm_src_affine.g4b.gen5
@@ -0,0 +1,8 @@
+   { 0x00802041, 0x23c077bd, 0x008d0100, 0x00000060 },
+   { 0x00802041, 0x238077bd, 0x008d0140, 0x00000064 },
+   { 0x00802040, 0x23c077bd, 0x008d03c0, 0x008d0380 },
+   { 0x00802040, 0x204077be, 0x008d03c0, 0x0000006c },
+   { 0x00802041, 0x23c077bd, 0x008d0100, 0x00000070 },
+   { 0x00802041, 0x238077bd, 0x008d0140, 0x00000074 },
+   { 0x00802040, 0x23c077bd, 0x008d03c0, 0x008d0380 },
+   { 0x00802040, 0x208077be, 0x008d03c0, 0x0000007c },
diff --git a/src/render_program/exa_wm_src_projective.g4b.gen5 b/src/render_program/exa_wm_src_projective.g4b.gen5
new file mode 100644
index 0000000..ae3db8c
--- /dev/null
+++ b/src/render_program/exa_wm_src_projective.g4b.gen5
@@ -0,0 +1,16 @@
+   { 0x00802041, 0x23c077bd, 0x008d0100, 0x00000080 },
+   { 0x00802041, 0x238077bd, 0x008d0140, 0x00000084 },
+   { 0x00802040, 0x23c077bd, 0x008d03c0, 0x008d0380 },
+   { 0x00802040, 0x23c077bd, 0x008d03c0, 0x0000008c },
+   { 0x00600031, 0x21801fbd, 0x108d03c0, 0x02100001 },
+   { 0x00600031, 0x21a01fbd, 0x108d03e0, 0x02100001 },
+   { 0x00802041, 0x23c077bd, 0x008d0100, 0x00000060 },
+   { 0x00802041, 0x238077bd, 0x008d0140, 0x00000064 },
+   { 0x00802040, 0x23c077bd, 0x008d03c0, 0x008d0380 },
+   { 0x00802040, 0x23c077bd, 0x008d03c0, 0x0000006c },
+   { 0x00802041, 0x204077be, 0x008d03c0, 0x008d0180 },
+   { 0x00802041, 0x23c077bd, 0x008d0100, 0x00000070 },
+   { 0x00802041, 0x238077bd, 0x008d0140, 0x00000074 },
+   { 0x00802040, 0x23c077bd, 0x008d03c0, 0x008d0380 },
+   { 0x00802040, 0x23c077bd, 0x008d03c0, 0x0000007c },
+   { 0x00802041, 0x208077be, 0x008d03c0, 0x008d0180 },
diff --git a/src/render_program/exa_wm_src_sample_a.g4b.gen5 b/src/render_program/exa_wm_src_sample_a.g4b.gen5
new file mode 100644
index 0000000..8cd411c
--- /dev/null
+++ b/src/render_program/exa_wm_src_sample_a.g4b.gen5
@@ -0,0 +1,2 @@
+   { 0x00000201, 0x20080061, 0x00000000, 0x00007000 },
+   { 0x01800031, 0x22801d29, 0x208d0000, 0x0a2a0001 },
diff --git a/src/render_program/exa_wm_src_sample_argb.g4b.gen5 b/src/render_program/exa_wm_src_sample_argb.g4b.gen5
new file mode 100644
index 0000000..f8cb41e
--- /dev/null
+++ b/src/render_program/exa_wm_src_sample_argb.g4b.gen5
@@ -0,0 +1,2 @@
+   { 0x00000201, 0x20080061, 0x00000000, 0x00000000 },
+   { 0x01800031, 0x21c01d29, 0x208d0000, 0x0a8a0001 },
diff --git a/src/render_program/exa_wm_src_sample_planar.g4b.gen5 b/src/render_program/exa_wm_src_sample_planar.g4b.gen5
new file mode 100644
index 0000000..a381e68
--- /dev/null
+++ b/src/render_program/exa_wm_src_sample_planar.g4b.gen5
@@ -0,0 +1,4 @@
+   { 0x00000201, 0x20080061, 0x00000000, 0x0000e000 },
+   { 0x01800031, 0x22001d29, 0x208d0000, 0x0a2a0001 },
+   { 0x01800031, 0x21c01d29, 0x208d0000, 0x0a2a0203 },
+   { 0x01800031, 0x22401d29, 0x208d0000, 0x0a2a0405 },
diff --git a/src/render_program/exa_wm_write.g4b.gen5 b/src/render_program/exa_wm_write.g4b.gen5
new file mode 100644
index 0000000..c40560f
--- /dev/null
+++ b/src/render_program/exa_wm_write.g4b.gen5
@@ -0,0 +1,18 @@
+   { 0x00600001, 0x204003be, 0x008d01c0, 0x00000000 },
+   { 0x00600001, 0x206003be, 0x008d0200, 0x00000000 },
+   { 0x00600001, 0x208003be, 0x008d0240, 0x00000000 },
+   { 0x00600001, 0x20a003be, 0x008d0280, 0x00000000 },
+   { 0x00601001, 0x20c003be, 0x008d01e0, 0x00000000 },
+   { 0x00601001, 0x20e003be, 0x008d0220, 0x00000000 },
+   { 0x00601001, 0x210003be, 0x008d0260, 0x00000000 },
+   { 0x00601001, 0x212003be, 0x008d02a0, 0x00000000 },
+   { 0x00600201, 0x20200022, 0x008d0020, 0x00000000 },
+   { 0x00800031, 0x24001d28, 0x548d0000, 0x94084800 },
+   { 0x0000007e, 0x00000000, 0x00000000, 0x00000000 },
+   { 0x0000007e, 0x00000000, 0x00000000, 0x00000000 },
+   { 0x0000007e, 0x00000000, 0x00000000, 0x00000000 },
+   { 0x0000007e, 0x00000000, 0x00000000, 0x00000000 },
+   { 0x0000007e, 0x00000000, 0x00000000, 0x00000000 },
+   { 0x0000007e, 0x00000000, 0x00000000, 0x00000000 },
+   { 0x0000007e, 0x00000000, 0x00000000, 0x00000000 },
+   { 0x0000007e, 0x00000000, 0x00000000, 0x00000000 },
diff --git a/src/render_program/exa_wm_xy.g4b.gen5 b/src/render_program/exa_wm_xy.g4b.gen5
new file mode 100644
index 0000000..327fc29
--- /dev/null
+++ b/src/render_program/exa_wm_xy.g4b.gen5
@@ -0,0 +1,4 @@
+   { 0x00800040, 0x23c06d29, 0x00480028, 0x10101010 },
+   { 0x00800040, 0x23806d29, 0x0048002a, 0x11001100 },
+   { 0x00802040, 0x2100753d, 0x008d03c0, 0x00004020 },
+   { 0x00802040, 0x2140753d, 0x008d0380, 0x00004024 },
diff --git a/src/render_program/exa_wm_yuv_rgb.g4b.gen5 b/src/render_program/exa_wm_yuv_rgb.g4b.gen5
new file mode 100644
index 0000000..01f6e2b
--- /dev/null
+++ b/src/render_program/exa_wm_yuv_rgb.g4b.gen5
@@ -0,0 +1,12 @@
+   { 0x00802040, 0x23007fbd, 0x008d0200, 0xbd808081 },
+   { 0x00802041, 0x23007fbd, 0x008d0300, 0x3f94fdf4 },
+   { 0x00802040, 0x22c07fbd, 0x008d01c0, 0xbf008084 },
+   { 0x00802040, 0x23407fbd, 0x008d0240, 0xbf008084 },
+   { 0x00802001, 0x240003bc, 0x008d0300, 0x00000000 },
+   { 0x80802048, 0x21c07fbd, 0x008d02c0, 0x3fcc49ba },
+   { 0x00802001, 0x240003bc, 0x008d0300, 0x00000000 },
+   { 0x00802048, 0x24007fbc, 0x008d02c0, 0xbf5020c5 },
+   { 0x80802048, 0x22007fbd, 0x008d0340, 0xbec8b439 },
+   { 0x00802001, 0x240003bc, 0x008d0300, 0x00000000 },
+   { 0x80802048, 0x22407fbd, 0x008d0340, 0x40011687 },
+   { 0x00802001, 0x228003fd, 0x00000000, 0x3f800000 },
diff --git a/src/render_program/packed_yuv_sf.g4b.gen5 b/src/render_program/packed_yuv_sf.g4b.gen5
new file mode 100644
index 0000000..d4d235a
--- /dev/null
+++ b/src/render_program/packed_yuv_sf.g4b.gen5
@@ -0,0 +1,17 @@
+   { 0x00000031, 0x20c01fbd, 0x1000002c, 0x02100081 },
+   { 0x00000031, 0x20c41fbd, 0x10000034, 0x02100081 },
+   { 0x00600040, 0x20e077bd, 0x008d0080, 0x008d4060 },
+   { 0x00000041, 0x20e077bd, 0x000000e0, 0x000000c0 },
+   { 0x00000041, 0x20e477bd, 0x000000e4, 0x000000c4 },
+   { 0x00600001, 0x202003be, 0x000000e0, 0x00000000 },
+   { 0x00600001, 0x204003be, 0x000000e4, 0x00000000 },
+   { 0x00600001, 0x206003be, 0x008d0060, 0x00000000 },
+   { 0x00600031, 0x20001fbc, 0x648d0000, 0x8808c800 },
+   { 0x0000007e, 0x00000000, 0x00000000, 0x00000000 },
+   { 0x0000007e, 0x00000000, 0x00000000, 0x00000000 },
+   { 0x0000007e, 0x00000000, 0x00000000, 0x00000000 },
+   { 0x0000007e, 0x00000000, 0x00000000, 0x00000000 },
+   { 0x0000007e, 0x00000000, 0x00000000, 0x00000000 },
+   { 0x0000007e, 0x00000000, 0x00000000, 0x00000000 },
+   { 0x0000007e, 0x00000000, 0x00000000, 0x00000000 },
+   { 0x0000007e, 0x00000000, 0x00000000, 0x00000000 },
diff --git a/src/render_program/packed_yuv_wm.g4b.gen5 b/src/render_program/packed_yuv_wm.g4b.gen5
new file mode 100644
index 0000000..43fefa6
--- /dev/null
+++ b/src/render_program/packed_yuv_wm.g4b.gen5
@@ -0,0 +1,79 @@
+   { 0x00000001, 0x2080013d, 0x00000028, 0x00000000 },
+   { 0x00000040, 0x20840d3d, 0x00000028, 0x00000001 },
+   { 0x00000001, 0x2088013d, 0x00000028, 0x00000000 },
+   { 0x00000040, 0x208c0d3d, 0x00000028, 0x00000001 },
+   { 0x00000001, 0x20c0013d, 0x0000002a, 0x00000000 },
+   { 0x00000001, 0x20c4013d, 0x0000002a, 0x00000000 },
+   { 0x00000040, 0x20c80d3d, 0x0000002a, 0x00000001 },
+   { 0x00000040, 0x20cc0d3d, 0x0000002a, 0x00000001 },
+   { 0x00000001, 0x2090013d, 0x0000002c, 0x00000000 },
+   { 0x00000040, 0x20940d3d, 0x0000002c, 0x00000001 },
+   { 0x00000001, 0x2098013d, 0x0000002c, 0x00000000 },
+   { 0x00000040, 0x209c0d3d, 0x0000002c, 0x00000001 },
+   { 0x00000001, 0x20d0013d, 0x0000002e, 0x00000000 },
+   { 0x00000001, 0x20d4013d, 0x0000002e, 0x00000000 },
+   { 0x00000040, 0x20d80d3d, 0x0000002e, 0x00000001 },
+   { 0x00000040, 0x20dc0d3d, 0x0000002e, 0x00000001 },
+   { 0x00000001, 0x20a0013d, 0x00000030, 0x00000000 },
+   { 0x00000040, 0x20a40d3d, 0x00000030, 0x00000001 },
+   { 0x00000001, 0x20a8013d, 0x00000030, 0x00000000 },
+   { 0x00000040, 0x20ac0d3d, 0x00000030, 0x00000001 },
+   { 0x00000001, 0x20e0013d, 0x00000032, 0x00000000 },
+   { 0x00000001, 0x20e4013d, 0x00000032, 0x00000000 },
+   { 0x00000040, 0x20e80d3d, 0x00000032, 0x00000001 },
+   { 0x00000040, 0x20ec0d3d, 0x00000032, 0x00000001 },
+   { 0x00000001, 0x20b0013d, 0x00000034, 0x00000000 },
+   { 0x00000040, 0x20b40d3d, 0x00000034, 0x00000001 },
+   { 0x00000001, 0x20b8013d, 0x00000034, 0x00000000 },
+   { 0x00000040, 0x20bc0d3d, 0x00000034, 0x00000001 },
+   { 0x00000001, 0x20f0013d, 0x00000036, 0x00000000 },
+   { 0x00000001, 0x20f4013d, 0x00000036, 0x00000000 },
+   { 0x00000040, 0x20f80d3d, 0x00000036, 0x00000001 },
+   { 0x00000040, 0x20fc0d3d, 0x00000036, 0x00000001 },
+   { 0x00600040, 0x208077bd, 0x008d0080, 0x00004020 },
+   { 0x00600040, 0x20a077bd, 0x008d00a0, 0x00004020 },
+   { 0x00600041, 0x208077bd, 0x008d0080, 0x00000060 },
+   { 0x00600041, 0x20a077bd, 0x008d00a0, 0x00000060 },
+   { 0x00600040, 0x208077bd, 0x008d0080, 0x0000006c },
+   { 0x00600040, 0x20a077bd, 0x008d00a0, 0x0000006c },
+   { 0x00600040, 0x20c077bd, 0x008d00c0, 0x00004024 },
+   { 0x00600040, 0x20e077bd, 0x008d00e0, 0x00004024 },
+   { 0x00600041, 0x20c077bd, 0x008d00c0, 0x00000074 },
+   { 0x00600041, 0x20e077bd, 0x008d00e0, 0x00000074 },
+   { 0x00600040, 0x20c077bd, 0x008d00c0, 0x0000007c },
+   { 0x00600040, 0x20e077bd, 0x008d00e0, 0x0000007c },
+   { 0x00600001, 0x202003be, 0x008d0080, 0x00000000 },
+   { 0x00600001, 0x204003be, 0x008d00a0, 0x00000000 },
+   { 0x00600001, 0x206003be, 0x008d00c0, 0x00000000 },
+   { 0x00600001, 0x208003be, 0x008d00e0, 0x00000000 },
+   { 0x00800031, 0x21801d29, 0x208d0000, 0x0a8a0001 },
+   { 0x00802040, 0x21c07fbd, 0x008d01c0, 0xbd808081 },
+   { 0x00802041, 0x21c07fbd, 0x008d01c0, 0x3f94fdf4 },
+   { 0x00802040, 0x21807fbd, 0x008d0180, 0xbf008084 },
+   { 0x00802040, 0x22007fbd, 0x008d0200, 0xbf008084 },
+   { 0x00600041, 0x20007fbc, 0x008d0180, 0x3fcc49ba },
+   { 0x80600048, 0x20407fbe, 0x008d01c0, 0x3f800000 },
+   { 0x00600041, 0x20007fbc, 0x008d01a0, 0x3fcc49ba },
+   { 0x80600048, 0x20c07fbe, 0x008d01e0, 0x3f800000 },
+   { 0x00600041, 0x20007fbc, 0x008d0180, 0xbf5020c5 },
+   { 0x00600048, 0x20007fbc, 0x008d0200, 0xbec8b439 },
+   { 0x80600048, 0x20607fbe, 0x008d01c0, 0x3f800000 },
+   { 0x00600041, 0x20007fbc, 0x008d01a0, 0xbf5020c5 },
+   { 0x00600048, 0x20007fbc, 0x008d0220, 0xbec8b439 },
+   { 0x80600048, 0x20e07fbe, 0x008d01e0, 0x3f800000 },
+   { 0x00600041, 0x20007fbc, 0x008d0200, 0x40011687 },
+   { 0x80600048, 0x20807fbe, 0x008d01c0, 0x3f800000 },
+   { 0x00600041, 0x20007fbc, 0x008d0220, 0x40011687 },
+   { 0x80600048, 0x21007fbe, 0x008d01e0, 0x3f800000 },
+   { 0x00600001, 0x20a003fe, 0x00000000, 0x3f800000 },
+   { 0x00600001, 0x212003fe, 0x00000000, 0x3f800000 },
+   { 0x00600201, 0x20200022, 0x008d0020, 0x00000000 },
+   { 0x00800031, 0x24001d28, 0x548d0000, 0x94084800 },
+   { 0x0000007e, 0x00000000, 0x00000000, 0x00000000 },
+   { 0x0000007e, 0x00000000, 0x00000000, 0x00000000 },
+   { 0x0000007e, 0x00000000, 0x00000000, 0x00000000 },
+   { 0x0000007e, 0x00000000, 0x00000000, 0x00000000 },
+   { 0x0000007e, 0x00000000, 0x00000000, 0x00000000 },
+   { 0x0000007e, 0x00000000, 0x00000000, 0x00000000 },
+   { 0x0000007e, 0x00000000, 0x00000000, 0x00000000 },
+   { 0x0000007e, 0x00000000, 0x00000000, 0x00000000 },
commit 488acc4595bb7f40130afcb8bcb05656ff3ae82c
Author: Zhenyu Wang <zhenyuw at linux.intel.com>
Date:   Thu Jun 25 14:05:40 2009 +0800

    Move shader programs under its own subdirectory
    
    Signed-off-by: Zhenyu Wang <zhenyuw at linux.intel.com>

diff --git a/configure.ac b/configure.ac
index 0864d7c..397336c 100644
--- a/configure.ac
+++ b/configure.ac
@@ -195,4 +195,5 @@ AC_OUTPUT([
 	src/sil164/Makefile
 	src/tfp410/Makefile
 	man/Makefile
+	src/render_program/Makefile
 ])
diff --git a/src/Makefile.am b/src/Makefile.am
index 6496dec..ea52fcb 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -18,7 +18,7 @@
 #  IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
 #  CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 
-SUBDIRS = xvmc bios_reader ch7017 ch7xxx ivch sil164 tfp410 reg_dumper
+SUBDIRS = xvmc bios_reader ch7017 ch7xxx ivch sil164 tfp410 reg_dumper render_program
 
 # this is obnoxious:
 # -module lets us name the module exactly how we want
@@ -27,7 +27,7 @@ SUBDIRS = xvmc bios_reader ch7017 ch7xxx ivch sil164 tfp410 reg_dumper
 # TODO: -nostdlib/-Bstatic/-lgcc platform magic, not installing the .a, etc.
 
 AM_CFLAGS = @WARN_CFLAGS@ @XORG_CFLAGS@ @DRM_CFLAGS@ @DRI_CFLAGS@ \
-	@PCIACCESS_CFLAGS@ -I$(top_srcdir)/uxa
+	@PCIACCESS_CFLAGS@ -I$(top_srcdir)/uxa -I$(top_srcdir)/src/render_program
 
 intel_drv_la_LTLIBRARIES = intel_drv.la
 intel_drv_la_LDFLAGS = -module -avoid-version
@@ -110,75 +110,11 @@ intel_drv_la_SOURCES = \
 	 i965_render.c \
 	 drmmode_display.c
 
-INTEL_G4A =				\
-	packed_yuv_sf.g4a		\
-	packed_yuv_wm.g4a		\
-	exa_sf.g4a 			\
-	exa_sf_mask.g4a 		\
-	exa_wm_src_affine.g4a 		\
-	exa_wm_src_projective.g4a 	\
-	exa_wm_src_sample_argb.g4a 	\
-	exa_wm_src_sample_a.g4a 	\
-	exa_wm_src_sample_planar.g4a 	\
-	exa_wm_mask_affine.g4a 		\
-	exa_wm_mask_projective.g4a 	\
-	exa_wm_mask_sample_argb.g4a 	\
-	exa_wm_mask_sample_a.g4a 	\
-	exa_wm_noca.g4a			\
-	exa_wm_ca.g4a			\
-	exa_wm_ca_srcalpha.g4a		\
-	exa_wm_write.g4a 		\
-	exa_wm_yuv_rgb.g4a		\
-	exa_wm_xy.g4a
-
-INTEL_G4I =				\
-	exa_wm.g4i			\
-	exa_wm_affine.g4i		\
-	exa_wm_projective.g4i
-
-INTEL_G4B = 				\
-	packed_yuv_sf.g4b		\
-	packed_yuv_wm.g4b		\
-	exa_sf.g4b 			\
-	exa_sf_mask.g4b 		\
-	exa_wm_src_affine.g4b 		\
-	exa_wm_src_projective.g4b 	\
-	exa_wm_src_sample_argb.g4b 	\
-	exa_wm_src_sample_a.g4b 	\
-	exa_wm_src_sample_planar.g4b 	\
-	exa_wm_mask_affine.g4b 		\
-	exa_wm_mask_projective.g4b 	\
-	exa_wm_mask_sample_argb.g4b 	\
-	exa_wm_mask_sample_a.g4b 	\
-	exa_wm_noca.g4b			\
-	exa_wm_ca.g4b			\
-	exa_wm_ca_srcalpha.g4b		\
-	exa_wm_write.g4b 		\
-	exa_wm_yuv_rgb.g4b		\
-	exa_wm_xy.g4b
-
 EXTRA_DIST = 		\
 	$(XMODE_SRCS)	\
-	$(INTEL_G4A)	\
-	$(INTEL_G4I)	\
-	$(INTEL_G4B)	\
 	$(INTEL_DRI_SRCS) \
 	$(INTEL_XVMC_SRCS)
 
-if HAVE_GEN4ASM
-
-SUFFIXES = .g4a .g4b
-.g4a.g4b:
-	m4 -I$(srcdir) -s $< > $*.g4m && intel-gen4asm -o $@ $*.g4m && rm $*.g4m
-
-$(INTEL_G4B): $(INTEL_G4I)
-
-BUILT_SOURCES= $(INTEL_G4B)
-
-clean-local:
-	-rm -f $(INTEL_G4B)
-endif
-
 if DRI
 intel_drv_la_SOURCES += \
 	$(INTEL_DRI_SRCS)
diff --git a/src/exa_sf.g4a b/src/exa_sf.g4a
deleted file mode 100644
index 3e660ac..0000000
--- a/src/exa_sf.g4a
+++ /dev/null
@@ -1,107 +0,0 @@
-/*
- * Copyright © 2006 Intel Corporation
- *
- * Permission is hereby granted, free of charge, to any person obtaining a
- * copy of this software and associated documentation files (the "Software"),
- * to deal in the Software without restriction, including without limitation
- * the rights to use, copy, modify, merge, publish, distribute, sublicense,
- * and/or sell copies of the Software, and to permit persons to whom the
- * Software is furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice (including the next
- * paragraph) shall be included in all copies or substantial portions of the
- * Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
- * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
- * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
- * IN THE SOFTWARE.
- *
- * Authors:
- *    Keith Packard <keithp at keithp.com>
- *    Eric Anholt <eric at anholt.net>
- *
- */
-
-/*
- * Inputs (note all sub-register addresses are bytes, not float indices)
- *
- * Note that the vertices will have been reordered:
- *
- * V0 is topmost (leftmost among topmost) (upper left)
- * V1 is next clockwise (lower right)
- * V2 is remaining (lower left)
- *
- *  V0 ...................... XX
- *  |                          .
- *  |                          .
- *  |                          .
- *  V2------------------------V1
- *
- *  G0	    thread state -- just pass along
- *
- *  G1 and G2 are fixed by SF spec
- *
- *  G1.0    reserved
- *  G1.4    Provoking vertex
- *  G1.8    Determinant
- *  G1.12   X1 - X0
- *  G1.16   X2 - X0
- *  G1.20   Y1 - Y0
- *  G1.24   Y2 - Y0
- *  G1.30   reserved
- *
- *  G2.0    Z0
- *  G2.4    1/W0
- *  G2.8    Z1
- *  G2.12   1/W1
- *  G2.16   Z2
- *  G2.20   1/W2
- *  G2.24   reserved
- *  G2.30   reserved
- *
- *  G3 is V0 Vertex Attribute Data from URB (upper left)
- *
- *  G3.0    u0
- *  G3.4    v0
- *
- *  G4 is V1 Vertex Attribute Data from URB (lower right)
- *
- *  G4.0    u1
- *  G4.4    v1
- *
- *  G5 is V2 Vertex Attribute Data from URB (lower left)
- *
- */
-
-/* Compute inverses of the input deltas */
-send (4) 0 g6<1>F g1.12<4,4,1>F math inv mlen 1 rlen 1 { align1 };
-
-/* texture location at V0 */
-mov (4) m3<1>F g3<4,4,1>F { align1 };
-
-/* compute V1 - V2 (motion in X) for texture coordinates */
-add (4) g7<1>F g4<4,4,1>F -g5<4,4,1>F { align1 };
-
-/* multiply by 1/dx */
-mul (4) m1<1>F g7<4,4,1>F g6.0<0,1,0>F { align1 };
-
-/* Compute V2 - V0 (motion in Y) for texture coordinates */
-add (4) g7<1>F g5<4,4,1>F -g3<4,4,1>F { align1 };
-
-/* multiply by 1/dy */
-mul (4) m2<1>F g7<4,4,1>F g6.8<0,1,0>F {align1 };
-
-/* and we're done */
-send (8) 0 null g0<8,8,1>F urb 0 transpose used complete mlen 4 rlen 0 { align1 EOT };
-nop;
-nop;
-nop;
-nop;
-nop;
-nop;
-nop;
-nop;
diff --git a/src/exa_sf.g4b b/src/exa_sf.g4b
deleted file mode 100644
index 223c9c9..0000000
--- a/src/exa_sf.g4b
+++ /dev/null
@@ -1,15 +0,0 @@
-   { 0x00400031, 0x20c01fbd, 0x0069002c, 0x01110001 },
-   { 0x00400001, 0x206003be, 0x00690060, 0x00000000 },
-   { 0x00400040, 0x20e077bd, 0x00690080, 0x006940a0 },
-   { 0x00400041, 0x202077be, 0x006900e0, 0x000000c0 },
-   { 0x00400040, 0x20e077bd, 0x006900a0, 0x00694060 },
-   { 0x00400041, 0x204077be, 0x006900e0, 0x000000c8 },
-   { 0x00600031, 0x20001fbc, 0x008d0000, 0x8640c800 },
-   { 0x0000007e, 0x00000000, 0x00000000, 0x00000000 },
-   { 0x0000007e, 0x00000000, 0x00000000, 0x00000000 },
-   { 0x0000007e, 0x00000000, 0x00000000, 0x00000000 },
-   { 0x0000007e, 0x00000000, 0x00000000, 0x00000000 },
-   { 0x0000007e, 0x00000000, 0x00000000, 0x00000000 },
-   { 0x0000007e, 0x00000000, 0x00000000, 0x00000000 },
-   { 0x0000007e, 0x00000000, 0x00000000, 0x00000000 },
-   { 0x0000007e, 0x00000000, 0x00000000, 0x00000000 },
diff --git a/src/exa_sf_mask.g4a b/src/exa_sf_mask.g4a
deleted file mode 100644
index 5078d01..0000000
--- a/src/exa_sf_mask.g4a
+++ /dev/null
@@ -1,107 +0,0 @@
-/*
- * Copyright © 2006 Intel Corporation
- *
- * Permission is hereby granted, free of charge, to any person obtaining a
- * copy of this software and associated documentation files (the "Software"),
- * to deal in the Software without restriction, including without limitation
- * the rights to use, copy, modify, merge, publish, distribute, sublicense,
- * and/or sell copies of the Software, and to permit persons to whom the
- * Software is furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice (including the next
- * paragraph) shall be included in all copies or substantial portions of the
- * Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
- * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
- * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
- * IN THE SOFTWARE.
- *
- * Authors:
- *    Keith Packard <keithp at keithp.com>
- *    Eric Anholt <eric at anholt.net>
- *    Wang Zhenyu <zhenyu.z.wang at intel.com>
- */
-
-/*
- * Inputs (note all sub-register addresses are bytes, not float indices)
- *
- * Note that the vertices will have been reordered:
- *
- * V0 is topmost (leftmost among topmost) (upper left)
- * V1 is next clockwise (lower right)
- * V2 is remaining (lower left)
- *
- *  V0 ...................... XX
- *  |                          .
- *  |                          .
- *  |                          .
- *  V2------------------------V1
- *
- *  G0	    thread state -- just pass along
- *
- *  G1 and G2 are fixed by SF spec
- *
- *  G1.0    reserved
- *  G1.4    Provoking vertex
- *  G1.8    Determinant
- *  G1.12   X1 - X0
- *  G1.16   X2 - X0
- *  G1.20   Y1 - Y0
- *  G1.24   Y2 - Y0
- *  G1.30   reserved
- *
- *  G2.0    Z0
- *  G2.4    1/W0
- *  G2.8    Z1
- *  G2.12   1/W1
- *  G2.16   Z2
- *  G2.20   1/W2
- *  G2.24   reserved
- *  G2.30   reserved
- *
- *  G3 is V0 Vertex Attribute Data from URB (upper left)
- *
- *  G3.0    u0
- *  G3.4    v0
- *
- *  G4 is V1 Vertex Attribute Data from URB (lower right)
- *
- *  G4.0    u1
- *  G4.4    v1
- *
- *  G5 is V2 Vertex Attribute Data from URB (lower left)
- *
- */
-
-/* Compute inverses of the input deltas */
-send (4) 0 g6<1>F g1.12<4,4,1>F math inv mlen 1 rlen 1 { align1 };
-
-/* texture location at V0 */
-mov (8) m3<1>F g3<8,8,1>F { align1 };
-
-/* compute V1 - V2 (motion in X) for texture coordinates */
-add (8) g7<1>F g4<8,8,1>F -g5<8,8,1>F { align1 };
-
-/* multiply by 1/dx */
-mul (8) m1<1>F g7<8,8,1>F g6.0<0,1,0>F { align1 };
-
-/* Compute V2 - V0 (motion in Y) for texture coordinates */
-add (8) g7<1>F g5<8,8,1>F -g3<8,8,1>F { align1 };
-
-/* multiply by 1/dy */
-mul (8) m2<1>F g7<8,8,1>F g6.8<0,1,0>F {align1 };
-
-/* and we're done */
-send (8) 0 null g0<8,8,1>F urb 0 transpose used complete mlen 4 rlen 0 { align1 EOT };
-nop;
-nop;
-nop;
-nop;
-nop;
-nop;
-nop;
-nop;
diff --git a/src/exa_sf_mask.g4b b/src/exa_sf_mask.g4b
deleted file mode 100644
index be0a77b..0000000
--- a/src/exa_sf_mask.g4b
+++ /dev/null
@@ -1,15 +0,0 @@
-   { 0x00400031, 0x20c01fbd, 0x0069002c, 0x01110001 },
-   { 0x00600001, 0x206003be, 0x008d0060, 0x00000000 },
-   { 0x00600040, 0x20e077bd, 0x008d0080, 0x008d40a0 },
-   { 0x00600041, 0x202077be, 0x008d00e0, 0x000000c0 },
-   { 0x00600040, 0x20e077bd, 0x008d00a0, 0x008d4060 },
-   { 0x00600041, 0x204077be, 0x008d00e0, 0x000000c8 },
-   { 0x00600031, 0x20001fbc, 0x008d0000, 0x8640c800 },
-   { 0x0000007e, 0x00000000, 0x00000000, 0x00000000 },
-   { 0x0000007e, 0x00000000, 0x00000000, 0x00000000 },
-   { 0x0000007e, 0x00000000, 0x00000000, 0x00000000 },
-   { 0x0000007e, 0x00000000, 0x00000000, 0x00000000 },
-   { 0x0000007e, 0x00000000, 0x00000000, 0x00000000 },
-   { 0x0000007e, 0x00000000, 0x00000000, 0x00000000 },
-   { 0x0000007e, 0x00000000, 0x00000000, 0x00000000 },
-   { 0x0000007e, 0x00000000, 0x00000000, 0x00000000 },
diff --git a/src/exa_wm.g4i b/src/exa_wm.g4i
deleted file mode 100644
index 5d3d45b..0000000
--- a/src/exa_wm.g4i
+++ /dev/null
@@ -1,156 +0,0 @@
-/*
- * Copyright © 2006 Intel Corporation
- *
- * Permission is hereby granted, free of charge, to any person obtaining a
- * copy of this software and associated documentation files (the "Software"),
- * to deal in the Software without restriction, including without limitation
- * the rights to use, copy, modify, merge, publish, distribute, sublicense,
- * and/or sell copies of the Software, and to permit persons to whom the
- * Software is furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice (including the next
- * paragraph) shall be included in all copies or substantial portions of the
- * Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
- * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
- * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
- * IN THE SOFTWARE.
- *
- * Authors:
- *    Wang Zhenyu <zhenyu.z.wang at intel.com>
- *    Keith Packard <keithp at keithp.com>
- */
- 
-/*
- * Input parameters
- */
-
-/* Destination X/Y */
-define(`dst_x_uw',  `g1.8<2,4,0>UW')
-define(`dst_y_uw',  `g1.10<2,4,0>UW')
-define(`screen_x0', `g1.0<0,1,0>F')
-define(`screen_y0', `g1.4<0,1,0>F')
-
-/* Source transformation parameters */
-define(`src_du_dx', `g3.0<0,1,0>F')
-define(`src_du_dy', `g3.4<0,1,0>F')
-define(`src_uo',    `g3.12<0,1,0>F')
-define(`src_dv_dx', `g3.16<0,1,0>F')
-define(`src_dv_dy', `g3.20<0,1,0>F')
-define(`src_vo',    `g3.28<0,1,0>F')
-define(`src_dw_dx', `g4.0<0,1,0>F')
-define(`src_dw_dy', `g4.4<0,1,0>F')
-define(`src_wo',    `g4.12<0,1,0>F')
-
-define(`mask_du_dx', `g5.0<0,1,0>F')
-define(`mask_du_dy', `g5.4<0,1,0>F')
-define(`mask_uo',    `g5.12<0,1,0>F')
-define(`mask_dv_dx', `g5.16<0,1,0>F')
-define(`mask_dv_dy', `g5.20<0,1,0>F')
-define(`mask_vo',    `g5.28<0,1,0>F')
-define(`mask_dw_dx', `g6.0<0,1,0>F')
-define(`mask_dw_dy', `g6.4<0,1,0>F')
-define(`mask_wo',    `g6.12<0,1,0>F')
-
-/*
- * Local variables. Pairs must be aligned on even reg boundry
- */
-
-/* this holds the X dest coordinates */
-define(`dst_x',	    `g8')
-define(`dst_x_0',   `dst_x')
-define(`dst_x_1',   `g9')
-
-/* this holds the Y dest coordinates */
-define(`dst_y',	    `g10')
-define(`dst_y_0',   `dst_y')
-define(`dst_y_1',   `g11')
-
-/* When computing x * dn/dx, use this */
-define(`temp_x',    `g30')
-define(`temp_x_0',  `temp_x')
-define(`temp_x_1',  `g31')
-
-/* When computing y * dn/dy, use this */
-define(`temp_y',    `g28')
-define(`temp_y_0',  temp_y)
-define(`temp_y_1',  `g29')
-
-/* when loading x/y, use these to hold them in UW format */
-define(`temp_x_uw', temp_x)
-define(`temp_y_uw', temp_y)
-
-/* compute source and mask u/v to this pair to send to sampler */
-define(`src_msg',   `m1')
-define(`src_msg_ind',`1')
-define(`src_u',	    `m2')
-define(`src_v',	    `m4')
-define(`src_w',	    `g12')
-define(`src_w_0',   `src_w')
-define(`src_w_1',   `g13')
-
-define(`mask_msg',  `m7')
-define(`mask_msg_ind',`7')
-define(`mask_u',    `m8')
-define(`mask_v',    `m10')
-define(`mask_w',    `src_w')
-define(`mask_w_0',  `src_w_0')
-define(`mask_w_1',  `src_w_1')
-
-/* sample src to these registers */
-define(`src_sample_base',	`g14')
-
-define(`src_sample_r',		`g14')
-define(`src_sample_r_01',	`g14')
-define(`src_sample_r_23',	`g15')
-
-define(`src_sample_g',		`g16')
-define(`src_sample_g_01',	`g16')
-define(`src_sample_g_23',	`g17')
-
-define(`src_sample_b',		`g18')
-define(`src_sample_b_01',	`g18')
-define(`src_sample_b_23',	`g19')
-
-define(`src_sample_a',		`g20')
-define(`src_sample_a_01',	`g20')
-define(`src_sample_a_23',	`g21')
-
-/* sample mask to these registers */
-define(`mask_sample_base',	`g22')
-    
-define(`mask_sample_r',		`g22')
-define(`mask_sample_r_01',	`g22')
-define(`mask_sample_r_23',	`g23')
-    
-define(`mask_sample_g',		`g24')
-define(`mask_sample_g_01',	`g24')
-define(`mask_sample_g_23',	`g25')
-    
-define(`mask_sample_b',		`g26')
-define(`mask_sample_b_01',	`g26')
-define(`mask_sample_b_23',	`g27')
-    
-define(`mask_sample_a',		`g28')
-define(`mask_sample_a_01',	`g28')
-define(`mask_sample_a_23',	`g29')
-
-/* data port SIMD16 send registers */
-
-define(`data_port_msg_0',	`m0')
-define(`data_port_msg_0_ind',	`0')
-define(`data_port_msg_1',	`m1')
-define(`data_port_r_01',	`m2')
-define(`data_port_g_01',	`m3')
-define(`data_port_b_01',	`m4')
-define(`data_port_a_01',	`m5')
-
-define(`data_port_r_23',	`m6')
-define(`data_port_g_23',	`m7')
-define(`data_port_b_23',	`m8')
-define(`data_port_a_23',	`m9')
-
diff --git a/src/exa_wm_affine.g4i b/src/exa_wm_affine.g4i
deleted file mode 100644
index e72656b..0000000
--- a/src/exa_wm_affine.g4i
+++ /dev/null
@@ -1,44 +0,0 @@
-/*
- * Copyright © 2006 Intel Corporation
- *
- * Permission is hereby granted, free of charge, to any person obtaining a
- * copy of this software and associated documentation files (the "Software"),
- * to deal in the Software without restriction, including without limitation
- * the rights to use, copy, modify, merge, publish, distribute, sublicense,
- * and/or sell copies of the Software, and to permit persons to whom the
- * Software is furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice (including the next
- * paragraph) shall be included in all copies or substantial portions of the
- * Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
- * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
- * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
- * IN THE SOFTWARE.
- *
- * Authors:
- *    Wang Zhenyu <zhenyu.z.wang at intel.com>
- *    Keith Packard <keithp at keithp.com>
- */
-
-/*
- * Fragment to compute src u/v values under an affine transform
- */
-
-/********** Compute u *************/
-
-mul (16)	temp_x<1>F	dst_x<8,8,1>F	du_dx		{ compr align1 };
-mul (16)	temp_y<1>F	dst_y<8,8,1>F	du_dy		{ compr align1 };
-add (16)	temp_x<1>F	temp_x<8,8,1>F	temp_y<8,8,1>F	{ compr align1 };
-add (16)	u<1>F		temp_x<8,8,1>F	uo		{ compr align1 };
-
-/********** Compute v *************/
-
-mul (16)	temp_x<1>F	dst_x<8,8,1>F	dv_dx		{ compr align1 };
-mul (16)	temp_y<1>F	dst_y<8,8,1>F	dv_dy		{ compr align1 };
-add (16)	temp_x<1>F	temp_x<8,8,1>F	temp_y<8,8,1>F	{ compr align1 };
-add (16)	v<1>F		temp_x<8,8,1>F	vo		{ compr align1 };
diff --git a/src/exa_wm_ca.g4a b/src/exa_wm_ca.g4a
deleted file mode 100644
index 5d982b3..0000000
--- a/src/exa_wm_ca.g4a
+++ /dev/null
@@ -1,38 +0,0 @@
-/*
- * Copyright © 2006 Intel Corporation
- *
- * Permission is hereby granted, free of charge, to any person obtaining a
- * copy of this software and associated documentation files (the "Software"),
- * to deal in the Software without restriction, including without limitation
- * the rights to use, copy, modify, merge, publish, distribute, sublicense,
- * and/or sell copies of the Software, and to permit persons to whom the
- * Software is furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice (including the next
- * paragraph) shall be included in all copies or substantial portions of the
- * Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
- * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
- * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
- * IN THE SOFTWARE.
- *
- * Authors:
- *    Wang Zhenyu <zhenyu.z.wang at intel.com>
- *    Keith Packard <keithp at keithp.com>
- */
- 
-/*
- * Composite src and mask together, no component alpha
- */
-
-include(`exa_wm.g4i')
-
-/* mul mask rgba channels to src */
-mul (16)    src_sample_r_01<1>F	src_sample_r_01<8,8,1>F	mask_sample_r_01<8,8,1>F { compr align1 };
-mul (16)    src_sample_g_01<1>F src_sample_g_01<8,8,1>F	mask_sample_g_01<8,8,1>F { compr align1 };
-mul (16)    src_sample_b_01<1>F src_sample_b_01<8,8,1>F	mask_sample_b_01<8,8,1>F { compr align1 };
-mul (16)    src_sample_a_01<1>F src_sample_a_01<8,8,1>F	mask_sample_a_01<8,8,1>F { compr align1 };
diff --git a/src/exa_wm_ca.g4b b/src/exa_wm_ca.g4b
deleted file mode 100644
index 372e8b2..0000000
--- a/src/exa_wm_ca.g4b
+++ /dev/null
@@ -1,4 +0,0 @@
-   { 0x00802041, 0x21c077bd, 0x008d01c0, 0x008d02c0 },
-   { 0x00802041, 0x220077bd, 0x008d0200, 0x008d0300 },
-   { 0x00802041, 0x224077bd, 0x008d0240, 0x008d0340 },
-   { 0x00802041, 0x228077bd, 0x008d0280, 0x008d0380 },
diff --git a/src/exa_wm_ca_srcalpha.g4a b/src/exa_wm_ca_srcalpha.g4a
deleted file mode 100644
index d1f847f..0000000
--- a/src/exa_wm_ca_srcalpha.g4a
+++ /dev/null
@@ -1,37 +0,0 @@
-/*
- * Copyright © 2006 Intel Corporation
- *
- * Permission is hereby granted, free of charge, to any person obtaining a
- * copy of this software and associated documentation files (the "Software"),
- * to deal in the Software without restriction, including without limitation
- * the rights to use, copy, modify, merge, publish, distribute, sublicense,
- * and/or sell copies of the Software, and to permit persons to whom the
- * Software is furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice (including the next
- * paragraph) shall be included in all copies or substantial portions of the
- * Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
- * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
- * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
- * IN THE SOFTWARE.
- *
- * Authors:
- *    Wang Zhenyu <zhenyu.z.wang at intel.com>
- *    Keith Packard <keithp at keithp.com>
- */
- 
-/*
- * Composite src and mask together, no component alpha
- */
-
-include(`exa_wm.g4i')
-
-mul (16)    src_sample_r_01<1>F mask_sample_r_01<8,8,1>F src_sample_a_01<8,8,1>F { compr align1 };
-mul (16)    src_sample_g_01<1>F mask_sample_g_01<8,8,1>F src_sample_a_01<8,8,1>F { compr align1 };
-mul (16)    src_sample_b_01<1>F mask_sample_b_01<8,8,1>F src_sample_a_01<8,8,1>F { compr align1 };
-mul (16)    src_sample_a_01<1>F mask_sample_a_01<8,8,1>F src_sample_a_01<8,8,1>F { compr align1 };
diff --git a/src/exa_wm_ca_srcalpha.g4b b/src/exa_wm_ca_srcalpha.g4b
deleted file mode 100644
index 963d676..0000000
--- a/src/exa_wm_ca_srcalpha.g4b
+++ /dev/null
@@ -1,4 +0,0 @@
-   { 0x00802041, 0x21c077bd, 0x008d02c0, 0x008d0280 },
-   { 0x00802041, 0x220077bd, 0x008d0300, 0x008d0280 },
-   { 0x00802041, 0x224077bd, 0x008d0340, 0x008d0280 },
-   { 0x00802041, 0x228077bd, 0x008d0380, 0x008d0280 },
diff --git a/src/exa_wm_mask_affine.g4a b/src/exa_wm_mask_affine.g4a
deleted file mode 100644
index 9c52d2f..0000000
--- a/src/exa_wm_mask_affine.g4a
+++ /dev/null
@@ -1,41 +0,0 @@
-/*
- * Copyright © 2006 Intel Corporation
- *
- * Permission is hereby granted, free of charge, to any person obtaining a
- * copy of this software and associated documentation files (the "Software"),
- * to deal in the Software without restriction, including without limitation
- * the rights to use, copy, modify, merge, publish, distribute, sublicense,
- * and/or sell copies of the Software, and to permit persons to whom the
- * Software is furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice (including the next
- * paragraph) shall be included in all copies or substantial portions of the
- * Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
- * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
- * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
- * IN THE SOFTWARE.
- *
- * Authors:
- *    Wang Zhenyu <zhenyu.z.wang at intel.com>
- *    Keith Packard <keithp at keithp.com>
- */
-
-include(`exa_wm.g4i')
-
-define(`du_dx',	`mask_du_dx')
-define(`du_dy',	`mask_du_dy')
-define(`uo',	`mask_uo')
-
-define(`dv_dx',	`mask_dv_dx')
-define(`dv_dy',	`mask_dv_dy')
-define(`vo',	`mask_vo')
-
-define(`u',	`mask_u')
-define(`v',	`mask_v')
-
-include(`exa_wm_affine.g4i')
diff --git a/src/exa_wm_mask_affine.g4b b/src/exa_wm_mask_affine.g4b
deleted file mode 100644
index 14a5451..0000000
--- a/src/exa_wm_mask_affine.g4b
+++ /dev/null
@@ -1,8 +0,0 @@
-   { 0x00802041, 0x23c077bd, 0x008d0100, 0x000000a0 },
-   { 0x00802041, 0x238077bd, 0x008d0140, 0x000000a4 },
-   { 0x00802040, 0x23c077bd, 0x008d03c0, 0x008d0380 },
-   { 0x00802040, 0x210077be, 0x008d03c0, 0x000000ac },
-   { 0x00802041, 0x23c077bd, 0x008d0100, 0x000000b0 },
-   { 0x00802041, 0x238077bd, 0x008d0140, 0x000000b4 },
-   { 0x00802040, 0x23c077bd, 0x008d03c0, 0x008d0380 },
-   { 0x00802040, 0x214077be, 0x008d03c0, 0x000000bc },
diff --git a/src/exa_wm_mask_projective.g4a b/src/exa_wm_mask_projective.g4a
deleted file mode 100644
index 9acaace..0000000
--- a/src/exa_wm_mask_projective.g4a
+++ /dev/null
@@ -1,53 +0,0 @@
-/*
- * Copyright © 2006 Intel Corporation
- *
- * Permission is hereby granted, free of charge, to any person obtaining a
- * copy of this software and associated documentation files (the "Software"),
- * to deal in the Software without restriction, including without limitation
- * the rights to use, copy, modify, merge, publish, distribute, sublicense,
- * and/or sell copies of the Software, and to permit persons to whom the
- * Software is furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice (including the next
- * paragraph) shall be included in all copies or substantial portions of the
- * Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
- * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
- * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
- * IN THE SOFTWARE.
- *
- * Authors:
- *    Wang Zhenyu <zhenyu.z.wang at intel.com>
- *    Keith Packard <keithp at keithp.com>
- */
-
-include(`exa_wm.g4i')
-
-define(`du_dx',	`mask_du_dx')
-define(`du_dy',	`mask_du_dy')
-define(`uo',	`mask_uo')
-
-define(`dv_dx',	`mask_dv_dx')
-define(`dv_dy',	`mask_dv_dy')
-define(`vo',	`mask_vo')
-
-define(`dw_dx',	`mask_dw_dx')
-define(`dw_dy',	`mask_dw_dy')
-define(`wo',	`mask_wo')
-
-define(`u',	`mask_u')
-define(`v',	`mask_v')
-define(`w',	`mask_w')
-
-define(`u_0',	`mask_u_0')
-define(`v_0',	`mask_v_0')
-define(`u_1',	`mask_u_1')
-define(`v_1',	`mask_v_1')
-define(`w_0',	`mask_w_0')
-define(`w_1',	`mask_w_1')
-
-include(`exa_wm_projective.g4i')
diff --git a/src/exa_wm_mask_projective.g4b b/src/exa_wm_mask_projective.g4b
deleted file mode 100644
index 78cb9ae..0000000
--- a/src/exa_wm_mask_projective.g4b
+++ /dev/null
@@ -1,16 +0,0 @@
-   { 0x00802041, 0x23c077bd, 0x008d0100, 0x000000c0 },
-   { 0x00802041, 0x238077bd, 0x008d0140, 0x000000c4 },
-   { 0x00802040, 0x23c077bd, 0x008d03c0, 0x008d0380 },
-   { 0x00802040, 0x23c077bd, 0x008d03c0, 0x000000cc },
-   { 0x00600031, 0x21801fbd, 0x008d03c0, 0x01110001 },
-   { 0x00600031, 0x21a01fbd, 0x008d03e0, 0x01110001 },
-   { 0x00802041, 0x23c077bd, 0x008d0100, 0x000000a0 },
-   { 0x00802041, 0x238077bd, 0x008d0140, 0x000000a4 },
-   { 0x00802040, 0x23c077bd, 0x008d03c0, 0x008d0380 },
-   { 0x00802040, 0x23c077bd, 0x008d03c0, 0x000000ac },
-   { 0x00802041, 0x210077be, 0x008d03c0, 0x008d0180 },
-   { 0x00802041, 0x23c077bd, 0x008d0100, 0x000000b0 },
-   { 0x00802041, 0x238077bd, 0x008d0140, 0x000000b4 },
-   { 0x00802040, 0x23c077bd, 0x008d03c0, 0x008d0380 },
-   { 0x00802040, 0x23c077bd, 0x008d03c0, 0x000000bc },
-   { 0x00802041, 0x214077be, 0x008d03c0, 0x008d0180 },
diff --git a/src/exa_wm_mask_sample_a.g4a b/src/exa_wm_mask_sample_a.g4a
deleted file mode 100644
index bbb19d7..0000000
--- a/src/exa_wm_mask_sample_a.g4a
+++ /dev/null
@@ -1,48 +0,0 @@
-/*
- * Copyright © 2006 Intel Corporation
- *
- * Permission is hereby granted, free of charge, to any person obtaining a
- * copy of this software and associated documentation files (the "Software"),
- * to deal in the Software without restriction, including without limitation
- * the rights to use, copy, modify, merge, publish, distribute, sublicense,
- * and/or sell copies of the Software, and to permit persons to whom the
- * Software is furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice (including the next
- * paragraph) shall be included in all copies or substantial portions of the
- * Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
- * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
- * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
- * IN THE SOFTWARE.
- *
- * Authors:
- *    Wang Zhenyu <zhenyu.z.wang at intel.com>
- *    Keith Packard <keithp at keithp.com>
- */
-
-/* Sample the mask surface */
-
-include(`exa_wm.g4i')
-
-/* prepare sampler read back gX register, which would be written back to output */
-
-/* use simd16 sampler, param 0 is u, param 1 is v. */
-/* 'payload' loading, assuming tex coord start from g4 */
-
-/* load only alpha */
-mov (1) g0.8<1>UD	0x00007000UD { align1 mask_disable };
-
-/* mask_msg will be copied with g0, as it contains send desc */
-/* emit sampler 'send' cmd */
-send (16) mask_msg_ind		/* msg reg index */
-	mask_sample_a_01<1>UW 	/* readback */
-	g0<8,8,1>UW		/* copy to msg start reg*/
-	sampler (2,1,F)		/* sampler message description, (binding_table,sampler_index,datatype)
-				/* here(src->dst) we should use src_sampler and src_surface */
-	mlen 5 rlen 2 { align1 };   /* required message len 5, readback len 8 */
-
diff --git a/src/exa_wm_mask_sample_a.g4b b/src/exa_wm_mask_sample_a.g4b
deleted file mode 100644
index 018bd36..0000000
--- a/src/exa_wm_mask_sample_a.g4b
+++ /dev/null
@@ -1,2 +0,0 @@
-   { 0x00000201, 0x20080061, 0x00000000, 0x00007000 },
-   { 0x07800031, 0x23801d29, 0x008d0000, 0x02520102 },
diff --git a/src/exa_wm_mask_sample_argb.g4a b/src/exa_wm_mask_sample_argb.g4a
deleted file mode 100644
index def4cfe..0000000
--- a/src/exa_wm_mask_sample_argb.g4a
+++ /dev/null
@@ -1,48 +0,0 @@
-/*
- * Copyright © 2006 Intel Corporation
- *
- * Permission is hereby granted, free of charge, to any person obtaining a
- * copy of this software and associated documentation files (the "Software"),
- * to deal in the Software without restriction, including without limitation
- * the rights to use, copy, modify, merge, publish, distribute, sublicense,
- * and/or sell copies of the Software, and to permit persons to whom the
- * Software is furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice (including the next
- * paragraph) shall be included in all copies or substantial portions of the
- * Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
- * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
- * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
- * IN THE SOFTWARE.
- *
- * Authors:
- *    Wang Zhenyu <zhenyu.z.wang at intel.com>
- *    Keith Packard <keithp at keithp.com>
- */
-
-/* Sample the mask surface */
-
-include(`exa_wm.g4i')
-
-/* prepare sampler read back gX register, which would be written back to output */
-
-/* use simd16 sampler, param 0 is u, param 1 is v. */
-/* 'payload' loading, assuming tex coord start from g4 */
-
-/* load argb */
-mov (1) g0.8<1>UD	0x00000000UD { align1 mask_disable };
-
-/* mask_msg will be copied with g0, as it contains send desc */
-/* emit sampler 'send' cmd */
-send (16) mask_msg_ind		/* msg reg index */
-	mask_sample_base<1>UW 	/* readback */
-	g0<8,8,1>UW		/* copy to msg start reg*/
-	sampler (2,1,F)		/* sampler message description, (binding_table,sampler_index,datatype)
-				/* here(src->dst) we should use src_sampler and src_surface */
-	mlen 5 rlen 8 { align1 };   /* required message len 5, readback len 8 */
-
diff --git a/src/exa_wm_mask_sample_argb.g4b b/src/exa_wm_mask_sample_argb.g4b
deleted file mode 100644
index b159cba..0000000
--- a/src/exa_wm_mask_sample_argb.g4b
+++ /dev/null
@@ -1,2 +0,0 @@
-   { 0x00000201, 0x20080061, 0x00000000, 0x00000000 },
-   { 0x07800031, 0x22c01d29, 0x008d0000, 0x02580102 },
diff --git a/src/exa_wm_noca.g4a b/src/exa_wm_noca.g4a
deleted file mode 100644
index d0d60fa..0000000
--- a/src/exa_wm_noca.g4a
+++ /dev/null
@@ -1,38 +0,0 @@
-/*
- * Copyright © 2006 Intel Corporation
- *
- * Permission is hereby granted, free of charge, to any person obtaining a
- * copy of this software and associated documentation files (the "Software"),
- * to deal in the Software without restriction, including without limitation
- * the rights to use, copy, modify, merge, publish, distribute, sublicense,
- * and/or sell copies of the Software, and to permit persons to whom the
- * Software is furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice (including the next
- * paragraph) shall be included in all copies or substantial portions of the
- * Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
- * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
- * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
- * IN THE SOFTWARE.
- *
- * Authors:
- *    Wang Zhenyu <zhenyu.z.wang at intel.com>
- *    Keith Packard <keithp at keithp.com>
- */
- 
-/*
- * Composite src and mask together, no component alpha
- */
-
-include(`exa_wm.g4i')
-/* mul mask's alpha channel to src */
-
-mul (16)    src_sample_r_01<1>F	src_sample_r_01<8,8,1>F	mask_sample_a_01<8,8,1>F { compr align1 };
-mul (16)    src_sample_g_01<1>F src_sample_g_01<8,8,1>F	mask_sample_a_01<8,8,1>F { compr align1 };
-mul (16)    src_sample_b_01<1>F src_sample_b_01<8,8,1>F	mask_sample_a_01<8,8,1>F { compr align1 };
-mul (16)    src_sample_a_01<1>F src_sample_a_01<8,8,1>F	mask_sample_a_01<8,8,1>F { compr align1 };
diff --git a/src/exa_wm_noca.g4b b/src/exa_wm_noca.g4b
deleted file mode 100644
index 1506334..0000000
--- a/src/exa_wm_noca.g4b
+++ /dev/null
@@ -1,4 +0,0 @@
-   { 0x00802041, 0x21c077bd, 0x008d01c0, 0x008d0380 },
-   { 0x00802041, 0x220077bd, 0x008d0200, 0x008d0380 },
-   { 0x00802041, 0x224077bd, 0x008d0240, 0x008d0380 },
-   { 0x00802041, 0x228077bd, 0x008d0280, 0x008d0380 },
diff --git a/src/exa_wm_nomask.g4a b/src/exa_wm_nomask.g4a
deleted file mode 100644
index eb535fe..0000000
--- a/src/exa_wm_nomask.g4a
+++ /dev/null
@@ -1,143 +0,0 @@
-/*
- * Copyright © 2006 Intel Corporation
- *
- * Permission is hereby granted, free of charge, to any person obtaining a
- * copy of this software and associated documentation files (the "Software"),
- * to deal in the Software without restriction, including without limitation
- * the rights to use, copy, modify, merge, publish, distribute, sublicense,
- * and/or sell copies of the Software, and to permit persons to whom the
- * Software is furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice (including the next
- * paragraph) shall be included in all copies or substantial portions of the
- * Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
- * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
- * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
- * IN THE SOFTWARE.
- *
- * Authors:
- *    Wang Zhenyu <zhenyu.z.wang at intel.com>
- */
-
-/*
- * This's for exa composite operation in no mask picture case.
- * The simplest case is just sending what src picture has to dst picture.
- */
-
-/* I think this should be same as in g4a program for texture video,
-   as we also use 16-pixel dispatch. and SF scale in g3 is useful for us. */
-
-/* The initial payload of the thread is always g0.
- * WM_URB (incoming URB entries) is g3
- * X0_R is g4
- * X1_R is g5
- * Y0_R is g6
- * Y1_R is g7
- */
-
-
-/* Load X and Y coordinates and compute per-pixel coordinates */
-add (16)	g4<1>UW		g1.8<2,4,0>UW	0x10101010V	{ align1 };
-add (16)	g6<1>UW		g1.10<2,4,0>UW	0x11001100V	{ align1 };
-
-    /* Now, map these screen space coordinates into texture coordinates. */
-    
-    /* subtract screen-space X origin of vertex 0. */
-add (16)	g12<1>F		g4<8,8,1>UW	-g1.0<0,1,0>F { compr align1 };
-
-    /* subtract screen-space Y origin of vertex 0. */
-add (16)	g16<1>F		g6<8,8,1>UW	-g1.4<0,1,0>F { compr align1 };
-
-	/* g8/g9 = X * du/dx */
-mul (16)	g8<1>F		g12<8,8,1>F	g3.0<0,1,0>F { compr align1 };
-
-	/* g10/g11 = Y * du/dy */
-mul (16)	g10<1>F		g16<8,8,1>F	g3.4<0,1,0>F { compr align1 };
-
-	/* g8/g9 = X du/dx + Y du/dy */
-add (16)	g8<1>F		g8<8,8,1>F	g10<8,8,1>F { compr align1 };
-
-	/* m1/m2 = g8/g9 + uo */
-add (16)	m1<1>F		g8<8,8,1>F	g3.12<0,1,0>F { compr align1 };
-
-
-	/* g8/g9 = X * dv/dx */
-mul (16)	g8<1>F		g12<8,8,1>F	g3.16<0,1,0>F { compr align1 };
-
-	/* g10/g11 = Y * du/dy */
-mul (16)	g10<1>F		g16<8,8,1>F	g3.20<0,1,0>F { compr align1 };
-
-	/* g8/g9 = X du/dx + Y du/dy */
-add (16)	g8<1>F		g8<8,8,1>F	g10<8,8,1>F { compr align1 };
-
-	/* m3/m4 = g8/g9 + vo */
-add (16)	m3<1>F		g8<8,8,1>F	g3.28<0,1,0>F { compr align1 };
-
-
-/* prepare sampler read back gX register, which would be written back to output */
-
-/* use simd16 sampler, param 0 is u, param 1 is v. */
-/* 'payload' loading, assuming tex coord start from g4 */
-
-/* m0 will be copied with g0, as it contains send desc */
-/* emit sampler 'send' cmd */
-send (16) 0 		/* msg reg index */
-	g12<1>UW 	/* readback */
-	g0<8,8,1>UW  	/* copy to msg start reg*/
-	sampler (1,0,F)  /* sampler message description, (binding_table,sampler_index,datatype)
-			 /* here(src->dst) we should use src_sampler and src_surface */
-	mlen 5 rlen 8 { align1 };   /* required message len 5, readback len 8 */
-
-mov (8) g19<1>UD g19<8,8,1>UD { align1 };  /* wait sampler return */
-/* if we set up read-back reg correctly, emit dataport write 'send' cmd with EOT */
-
-/* m0, m1 are all direct passed by PS thread payload */
-mov (8) m1<1>F g1<8,8,1>F { align1 };
-
-/* prepare data in m2-m5 for subspan(1,0), m6-m9 for subspan(3,2), then it's ready to write */
-/* g12 -> m2
-   g13 -> m6
-   g14 -> m3
-   g15 -> m7
-   g16 -> m4
-   g17 -> m8
-   g18 -> m5
-   g19 -> m9
-*/
-mov (8) m2<1>F g12<8,8,1>F { align1 };
-mov (8) m3<1>F g14<8,8,1>F { align1 };
-mov (8) m4<1>F g16<8,8,1>F { align1 };
-mov (8) m5<1>F g18<8,8,1>F { align1 };
-mov (8) m6<1>F g13<8,8,1>F { align1 };
-mov (8) m7<1>F g15<8,8,1>F { align1 };
-mov (8) m8<1>F g17<8,8,1>F { align1 };
-mov (8) m9<1>F g19<8,8,1>F { align1 };
-
-/* m0, m1 are all direct passed by PS thread payload */
-mov (8) m1<1>UD g1<8,8,1>UD { align1 };
-
-/* write */
-send (16) 0 acc0<1>UW g0<8,8,1>UW write (
-	0,  /* binding_table */
-	8,  /* pixel scordboard clear, msg type simd16 single source */
-	4,  /* render target write */
-	0   /* no write commit message */
-	) 
-	mlen 10
-	rlen 0
-	{ align1 EOT };
-
-nop;
-nop;
-nop;
-nop;
-nop;
-nop;
-nop;
-nop;
-nop;
diff --git a/src/exa_wm_projective.g4i b/src/exa_wm_projective.g4i
deleted file mode 100644
index 7e2e0a8..0000000
--- a/src/exa_wm_projective.g4i
+++ /dev/null
@@ -1,51 +0,0 @@
-/*
- * Copyright © 2006 Intel Corporation
- *
- * Permission is hereby granted, free of charge, to any person obtaining a
- * copy of this software and associated documentation files (the "Software"),
- * to deal in the Software without restriction, including without limitation
- * the rights to use, copy, modify, merge, publish, distribute, sublicense,
- * and/or sell copies of the Software, and to permit persons to whom the
- * Software is furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice (including the next
- * paragraph) shall be included in all copies or substantial portions of the
- * Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
- * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
- * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
- * IN THE SOFTWARE.
- *
- * Authors:
- *    Wang Zhenyu <zhenyu.z.wang at intel.com>
- *    Keith Packard <keithp at keithp.com>
- */
-
-/********** Compute w *************/
-
-mul (16)	temp_x<1>F	dst_x<8,8,1>F	dw_dx		{ compr align1 };
-mul (16)	temp_y<1>F	dst_y<8,8,1>F	dw_dy		{ compr align1 };
-add (16)	temp_x<1>F	temp_x<8,8,1>F	temp_y<8,8,1>F	{ compr align1 };
-add (16)	temp_x<1>F	temp_x<8,8,1>F	wo		{ compr align1 };
-send (8) 0	w_0<1>F		temp_x_0<8,8,1>F math inv mlen 1 rlen 1	{ align1 };
-send (8) 0	w_1<1>F		temp_x_1<8,8,1>F math inv mlen 1 rlen 1	{ sechalf align1 };
-
-/********** Compute u *************/
-
-mul (16)	temp_x<1>F	dst_x<8,8,1>F	du_dx		{ compr align1 };
-mul (16)	temp_y<1>F	dst_y<8,8,1>F	du_dy		{ compr align1 };
-add (16)	temp_x<1>F	temp_x<8,8,1>F	temp_y<8,8,1>F	{ compr align1 };
-add (16)	temp_x<1>F	temp_x<8,8,1>F	uo		{ compr align1 };
-mul (16)	u<1>F		temp_x<8,8,1>F	w<8,8,1>F	{ compr align1 };
-
-/********** Compute v *************/
-
-mul (16)	temp_x<1>F	dst_x<8,8,1>F	dv_dx		{ compr align1 };
-mul (16)	temp_y<1>F	dst_y<8,8,1>F	dv_dy		{ compr align1 };
-add (16)	temp_x<1>F	temp_x<8,8,1>F	temp_y<8,8,1>F	{ compr align1 };
-add (16)	temp_x<1>F	temp_x<8,8,1>F	vo		{ compr align1 };
-mul (16)	v<1>F		temp_x<8,8,1>F	w<8,8,1>F	{ compr align1 };
diff --git a/src/exa_wm_src_affine.g4a b/src/exa_wm_src_affine.g4a
deleted file mode 100644
index 3194b5a..0000000
--- a/src/exa_wm_src_affine.g4a
+++ /dev/null
@@ -1,45 +0,0 @@
-/*
- * Copyright © 2006 Intel Corporation
- *
- * Permission is hereby granted, free of charge, to any person obtaining a
- * copy of this software and associated documentation files (the "Software"),
- * to deal in the Software without restriction, including without limitation
- * the rights to use, copy, modify, merge, publish, distribute, sublicense,
- * and/or sell copies of the Software, and to permit persons to whom the
- * Software is furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice (including the next
- * paragraph) shall be included in all copies or substantial portions of the
- * Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
- * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
- * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
- * IN THE SOFTWARE.
- *
- * Authors:
- *    Wang Zhenyu <zhenyu.z.wang at intel.com>
- *    Keith Packard <keithp at keithp.com>
- */
-
-/*
- * Fragment to compute src u/v values under an affine transform
- */
-
-include(`exa_wm.g4i')
-
-define(`du_dx',	`src_du_dx')
-define(`du_dy',	`src_du_dy')
-define(`uo',	`src_uo')
-
-define(`dv_dx',	`src_dv_dx')
-define(`dv_dy',	`src_dv_dy')
-define(`vo',	`src_vo')
-
-define(`u',	`src_u')
-define(`v',	`src_v')
-
-include(`exa_wm_affine.g4i')
diff --git a/src/exa_wm_src_affine.g4b b/src/exa_wm_src_affine.g4b
deleted file mode 100644
index d30da87..0000000
--- a/src/exa_wm_src_affine.g4b
+++ /dev/null
@@ -1,8 +0,0 @@
-   { 0x00802041, 0x23c077bd, 0x008d0100, 0x00000060 },
-   { 0x00802041, 0x238077bd, 0x008d0140, 0x00000064 },
-   { 0x00802040, 0x23c077bd, 0x008d03c0, 0x008d0380 },
-   { 0x00802040, 0x204077be, 0x008d03c0, 0x0000006c },
-   { 0x00802041, 0x23c077bd, 0x008d0100, 0x00000070 },
-   { 0x00802041, 0x238077bd, 0x008d0140, 0x00000074 },
-   { 0x00802040, 0x23c077bd, 0x008d03c0, 0x008d0380 },
-   { 0x00802040, 0x208077be, 0x008d03c0, 0x0000007c },
diff --git a/src/exa_wm_src_projective.g4a b/src/exa_wm_src_projective.g4a
deleted file mode 100644
index 16c9cd5..0000000
--- a/src/exa_wm_src_projective.g4a
+++ /dev/null
@@ -1,49 +0,0 @@
-/*
- * Copyright © 2006 Intel Corporation
- *
- * Permission is hereby granted, free of charge, to any person obtaining a
- * copy of this software and associated documentation files (the "Software"),
- * to deal in the Software without restriction, including without limitation
- * the rights to use, copy, modify, merge, publish, distribute, sublicense,
- * and/or sell copies of the Software, and to permit persons to whom the
- * Software is furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice (including the next
- * paragraph) shall be included in all copies or substantial portions of the
- * Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
- * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
- * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
- * IN THE SOFTWARE.
- *
- * Authors:
- *    Wang Zhenyu <zhenyu.z.wang at intel.com>
- *    Keith Packard <keithp at keithp.com>
- */
-
-
-include(`exa_wm.g4i')
-define(`du_dx',	`src_du_dx')
-define(`du_dy',	`src_du_dy')
-define(`uo',	`src_uo')
-define(`dv_dx',	`src_dv_dx')
-define(`dv_dy',	`src_dv_dy')
-define(`vo',	`src_vo')
-define(`dw_dx',	`src_dw_dx')
-define(`dw_dy',	`src_dw_dy')
-define(`wo',	`src_wo')
-define(`u',	`src_u')
-define(`v',	`src_v')
-define(`w',	`src_w')
-define(`u_0',	`src_u_0')
-define(`v_0',	`src_v_0')
-define(`u_1',	`src_u_1')
-define(`v_1',	`src_v_1')
-define(`w_0',	`src_w_0')
-define(`w_1',	`src_w_1')
-
-include(`exa_wm_projective.g4i')
diff --git a/src/exa_wm_src_projective.g4b b/src/exa_wm_src_projective.g4b
deleted file mode 100644
index 198bab3..0000000
--- a/src/exa_wm_src_projective.g4b
+++ /dev/null
@@ -1,16 +0,0 @@
-   { 0x00802041, 0x23c077bd, 0x008d0100, 0x00000080 },
-   { 0x00802041, 0x238077bd, 0x008d0140, 0x00000084 },
-   { 0x00802040, 0x23c077bd, 0x008d03c0, 0x008d0380 },
-   { 0x00802040, 0x23c077bd, 0x008d03c0, 0x0000008c },
-   { 0x00600031, 0x21801fbd, 0x008d03c0, 0x01110001 },
-   { 0x00600031, 0x21a01fbd, 0x008d03e0, 0x01110001 },
-   { 0x00802041, 0x23c077bd, 0x008d0100, 0x00000060 },
-   { 0x00802041, 0x238077bd, 0x008d0140, 0x00000064 },
-   { 0x00802040, 0x23c077bd, 0x008d03c0, 0x008d0380 },
-   { 0x00802040, 0x23c077bd, 0x008d03c0, 0x0000006c },
-   { 0x00802041, 0x204077be, 0x008d03c0, 0x008d0180 },
-   { 0x00802041, 0x23c077bd, 0x008d0100, 0x00000070 },
-   { 0x00802041, 0x238077bd, 0x008d0140, 0x00000074 },
-   { 0x00802040, 0x23c077bd, 0x008d03c0, 0x008d0380 },
-   { 0x00802040, 0x23c077bd, 0x008d03c0, 0x0000007c },
-   { 0x00802041, 0x208077be, 0x008d03c0, 0x008d0180 },
diff --git a/src/exa_wm_src_sample_a.g4a b/src/exa_wm_src_sample_a.g4a
deleted file mode 100644
index 552aaee..0000000
--- a/src/exa_wm_src_sample_a.g4a
+++ /dev/null
@@ -1,47 +0,0 @@
-/*
- * Copyright © 2006 Intel Corporation
- *
- * Permission is hereby granted, free of charge, to any person obtaining a
- * copy of this software and associated documentation files (the "Software"),
- * to deal in the Software without restriction, including without limitation
- * the rights to use, copy, modify, merge, publish, distribute, sublicense,
- * and/or sell copies of the Software, and to permit persons to whom the
- * Software is furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice (including the next
- * paragraph) shall be included in all copies or substantial portions of the
- * Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
- * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
- * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
- * IN THE SOFTWARE.
- *
- * Authors:
- *    Wang Zhenyu <zhenyu.z.wang at intel.com>
- *    Keith Packard <keithp at keithp.com>
- */
-
-/* Sample the src surface */
-
-include(`exa_wm.g4i')
-
-/* prepare sampler read back gX register, which would be written back to output */
-
-/* use simd16 sampler, param 0 is u, param 1 is v. */
-/* 'payload' loading, assuming tex coord start from g4 */
-
-/* load alpha */
-mov (1) g0.8<1>UD	0x00007000UD { align1 mask_disable };
-
-/* src_msg will be copied with g0, as it contains send desc */
-/* emit sampler 'send' cmd */
-send (16) src_msg_ind		/* msg reg index */
-	src_sample_a_01<1>UW 	/* readback */
-	g0<8,8,1>UW		/* copy to msg start reg*/
-	sampler (1,0,F)		/* sampler message description, (binding_table,sampler_index,datatype)
-				/* here(src->dst) we should use src_sampler and src_surface */
-	mlen 5 rlen 2 { align1 };   /* required message len 5, readback len 8 */
diff --git a/src/exa_wm_src_sample_a.g4b b/src/exa_wm_src_sample_a.g4b
deleted file mode 100644
index ce8650a..0000000
--- a/src/exa_wm_src_sample_a.g4b
+++ /dev/null
@@ -1,2 +0,0 @@
-   { 0x00000201, 0x20080061, 0x00000000, 0x00007000 },
-   { 0x01800031, 0x22801d29, 0x008d0000, 0x02520001 },
diff --git a/src/exa_wm_src_sample_argb.g4a b/src/exa_wm_src_sample_argb.g4a
deleted file mode 100644
index c20f53f..0000000
--- a/src/exa_wm_src_sample_argb.g4a
+++ /dev/null
@@ -1,47 +0,0 @@
-/*
- * Copyright © 2006 Intel Corporation
- *
- * Permission is hereby granted, free of charge, to any person obtaining a
- * copy of this software and associated documentation files (the "Software"),
- * to deal in the Software without restriction, including without limitation
- * the rights to use, copy, modify, merge, publish, distribute, sublicense,
- * and/or sell copies of the Software, and to permit persons to whom the
- * Software is furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice (including the next
- * paragraph) shall be included in all copies or substantial portions of the
- * Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
- * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
- * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
- * IN THE SOFTWARE.
- *
- * Authors:
- *    Wang Zhenyu <zhenyu.z.wang at intel.com>
- *    Keith Packard <keithp at keithp.com>
- */
-
-/* Sample the src surface */
-
-include(`exa_wm.g4i')
-
-/* prepare sampler read back gX register, which would be written back to output */
-
-/* use simd16 sampler, param 0 is u, param 1 is v. */
-/* 'payload' loading, assuming tex coord start from g4 */
-
-/* load argb */
-mov (1) g0.8<1>UD	0x00000000UD { align1 mask_disable };
-
-/* src_msg will be copied with g0, as it contains send desc */
-/* emit sampler 'send' cmd */
-send (16) src_msg_ind		/* msg reg index */
-	src_sample_base<1>UW 	/* readback */
-	g0<8,8,1>UW		/* copy to msg start reg*/
-	sampler (1,0,F)		/* sampler message description, (binding_table,sampler_index,datatype)
-				/* here(src->dst) we should use src_sampler and src_surface */
-	mlen 5 rlen 8 { align1 };   /* required message len 5, readback len 8 */
diff --git a/src/exa_wm_src_sample_argb.g4b b/src/exa_wm_src_sample_argb.g4b
deleted file mode 100644
index c5b9274..0000000
--- a/src/exa_wm_src_sample_argb.g4b
+++ /dev/null
@@ -1,2 +0,0 @@
-   { 0x00000201, 0x20080061, 0x00000000, 0x00000000 },
-   { 0x01800031, 0x21c01d29, 0x008d0000, 0x02580001 },
diff --git a/src/exa_wm_src_sample_planar.g4a b/src/exa_wm_src_sample_planar.g4a
deleted file mode 100644
index ca77b48..0000000
--- a/src/exa_wm_src_sample_planar.g4a
+++ /dev/null
@@ -1,65 +0,0 @@
-/*
- * Copyright © 2006 Intel Corporation
- *
- * Permission is hereby granted, free of charge, to any person obtaining a
- * copy of this software and associated documentation files (the "Software"),
- * to deal in the Software without restriction, including without limitation
- * the rights to use, copy, modify, merge, publish, distribute, sublicense,
- * and/or sell copies of the Software, and to permit persons to whom the
- * Software is furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice (including the next
- * paragraph) shall be included in all copies or substantial portions of the
- * Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
- * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
- * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
- * IN THE SOFTWARE.
- *
- * Authors:
- *    Wang Zhenyu <zhenyu.z.wang at intel.com>
- *    Keith Packard <keithp at keithp.com>
- */
-
-/* Sample the src surface in planar format */
-
-include(`exa_wm.g4i')
-
-/* prepare sampler read back gX register, which would be written back to output */
-
-/* use simd16 sampler, param 0 is u, param 1 is v. */
-/* 'payload' loading, assuming tex coord start from g4 */
-
-/* load r */
-mov (1) g0.8<1>UD	0x0000e000UD { align1 mask_disable };
-
-/* src_msg will be copied with g0, as it contains send desc */
-/* emit sampler 'send' cmd */
-
-/* sample Y */
-send (16) src_msg_ind		/* msg reg index */
-	src_sample_g<1>UW 	/* readback */
-	g0<8,8,1>UW		/* copy to msg start reg*/
-	sampler (1,0,F)		/* sampler message description, (binding_table,sampler_index,datatype)
-				/* here(src->dst) we should use src_sampler and src_surface */
-	mlen 5 rlen 2 { align1 };   /* required message len 5, readback len 8 */
-	
-/* sample U (Cr) */
-send (16) src_msg_ind		/* msg reg index */
-	src_sample_r<1>UW 	/* readback */
-	g0<8,8,1>UW		/* copy to msg start reg*/
-	sampler (3,2,F)		/* sampler message description, (binding_table,sampler_index,datatype)
-				/* here(src->dst) we should use src_sampler and src_surface */
-	mlen 5 rlen 2 { align1 };   /* required message len 5, readback len 8 */
-	
-/* sample V (Cb) */
-send (16) src_msg_ind		/* msg reg index */
-	src_sample_b<1>UW 	/* readback */
-	g0<8,8,1>UW		/* copy to msg start reg*/
-	sampler (5,4,F)		/* sampler message description, (binding_table,sampler_index,datatype)
-				/* here(src->dst) we should use src_sampler and src_surface */
-	mlen 5 rlen 2 { align1 };   /* required message len 5, readback len 8 */
diff --git a/src/exa_wm_src_sample_planar.g4b b/src/exa_wm_src_sample_planar.g4b
deleted file mode 100644
index 77a5c23..0000000
--- a/src/exa_wm_src_sample_planar.g4b
+++ /dev/null
@@ -1,4 +0,0 @@
-   { 0x00000201, 0x20080061, 0x00000000, 0x0000e000 },
-   { 0x01800031, 0x22001d29, 0x008d0000, 0x02520001 },
-   { 0x01800031, 0x21c01d29, 0x008d0000, 0x02520203 },
-   { 0x01800031, 0x22401d29, 0x008d0000, 0x02520405 },
diff --git a/src/exa_wm_write.g4a b/src/exa_wm_write.g4a
deleted file mode 100644
index faee80b..0000000
--- a/src/exa_wm_write.g4a
+++ /dev/null
@@ -1,74 +0,0 @@
-/*
- * Copyright © 2006 Intel Corporation
- *
- * Permission is hereby granted, free of charge, to any person obtaining a
- * copy of this software and associated documentation files (the "Software"),
- * to deal in the Software without restriction, including without limitation
- * the rights to use, copy, modify, merge, publish, distribute, sublicense,
- * and/or sell copies of the Software, and to permit persons to whom the
- * Software is furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice (including the next
- * paragraph) shall be included in all copies or substantial portions of the
- * Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
- * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
- * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
- * IN THE SOFTWARE.
- *
- * Authors:
- *    Wang Zhenyu <zhenyu.z.wang at intel.com>
- *    Keith Packard <keithp at keithp.com>
- */
-
-include(`exa_wm.g4i')
-
-/*
- * Prepare data in m2-m5 for subspan(1,0), m6-m9 for subspan(3,2),
- *
- * Note that the SIMD16 write message takes data for the first
- * two sub-spans followed by the data for the second two sub-spans
- * instead of having the two sub-spans interleaved by channel. Weird.
- */
-
-mov (8) data_port_r_01<1>F	src_sample_r_01<8,8,1>F { align1 };
-mov (8) data_port_g_01<1>F	src_sample_g_01<8,8,1>F { align1 };
-mov (8) data_port_b_01<1>F	src_sample_b_01<8,8,1>F { align1 };
-mov (8) data_port_a_01<1>F	src_sample_a_01<8,8,1>F { align1 };
-
-mov (8) data_port_r_23<1>F	src_sample_r_23<8,8,1>F { sechalf align1 };
-mov (8) data_port_g_23<1>F	src_sample_g_23<8,8,1>F { sechalf align1 };
-mov (8) data_port_b_23<1>F	src_sample_b_23<8,8,1>F { sechalf align1 };
-mov (8) data_port_a_23<1>F 	src_sample_a_23<8,8,1>F { sechalf align1 };
-
-/* m0, m1 are all direct passed by PS thread payload */
-mov (8) data_port_msg_1<1>UD	g1<8,8,1>UD		{ mask_disable align1 };
-
-/* write */
-send (16) 
-	data_port_msg_0_ind 
-	acc0<1>UW 
-	g0<8,8,1>UW 
-	write (
-	       0,  /* binding_table */
-	       8,  /* pixel scordboard clear, msg type simd16 single source */
-	       4,  /* render target write */
-	       0   /* no write commit message */
-	) 
-	mlen 10
-	rlen 0
-	{ align1 EOT };
-
-nop;
-nop;
-nop;
-nop;
-nop;
-nop;
-nop;
-nop;
-
diff --git a/src/exa_wm_write.g4b b/src/exa_wm_write.g4b
deleted file mode 100644
index 92e7b24..0000000
--- a/src/exa_wm_write.g4b
+++ /dev/null
@@ -1,18 +0,0 @@
-   { 0x00600001, 0x204003be, 0x008d01c0, 0x00000000 },
-   { 0x00600001, 0x206003be, 0x008d0200, 0x00000000 },
-   { 0x00600001, 0x208003be, 0x008d0240, 0x00000000 },
-   { 0x00600001, 0x20a003be, 0x008d0280, 0x00000000 },
-   { 0x00601001, 0x20c003be, 0x008d01e0, 0x00000000 },
-   { 0x00601001, 0x20e003be, 0x008d0220, 0x00000000 },
-   { 0x00601001, 0x210003be, 0x008d0260, 0x00000000 },
-   { 0x00601001, 0x212003be, 0x008d02a0, 0x00000000 },
-   { 0x00600201, 0x20200022, 0x008d0020, 0x00000000 },
-   { 0x00800031, 0x24001d28, 0x008d0000, 0x85a04800 },
-   { 0x0000007e, 0x00000000, 0x00000000, 0x00000000 },
-   { 0x0000007e, 0x00000000, 0x00000000, 0x00000000 },
-   { 0x0000007e, 0x00000000, 0x00000000, 0x00000000 },
-   { 0x0000007e, 0x00000000, 0x00000000, 0x00000000 },
-   { 0x0000007e, 0x00000000, 0x00000000, 0x00000000 },
-   { 0x0000007e, 0x00000000, 0x00000000, 0x00000000 },
-   { 0x0000007e, 0x00000000, 0x00000000, 0x00000000 },
-   { 0x0000007e, 0x00000000, 0x00000000, 0x00000000 },
diff --git a/src/exa_wm_xy.g4a b/src/exa_wm_xy.g4a
deleted file mode 100644
index e99f5ac..0000000
--- a/src/exa_wm_xy.g4a
+++ /dev/null
@@ -1,52 +0,0 @@
-/*
- * Copyright © 2006 Intel Corporation
- *
- * Permission is hereby granted, free of charge, to any person obtaining a
- * copy of this software and associated documentation files (the "Software"),
- * to deal in the Software without restriction, including without limitation
- * the rights to use, copy, modify, merge, publish, distribute, sublicense,
- * and/or sell copies of the Software, and to permit persons to whom the
- * Software is furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice (including the next
- * paragraph) shall be included in all copies or substantial portions of the
- * Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
- * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
- * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
- * IN THE SOFTWARE.
- *
- * Authors:
- *    Wang Zhenyu <zhenyu.z.wang at intel.com>
- *    Keith Packard <keithp at keithp.com>
- */
- 
-/*
- * Register assignments:
- *
- *  x		    g6/g7
- *  y		    g8/g9
- *
- *  temp x	    g10/g11
- *  temp y	    g12/g13
- *
- *  src w	    g14/g15
- *  src u	    m1/m2
- *  src v	    m3/m4
- */
- 
-/* Fragment to compute per-pixel XY values */
-
-include(`exa_wm.g4i')
-    
-    /* Load X and Y coordinates and compute per-pixel coordinates */
-add (16)	temp_x_uw<1>UW	dst_x_uw		0x10101010V	{ align1 };
-add (16)	temp_y_uw<1>UW	dst_y_uw		0x11001100V	{ align1 };
-
-    /* subtract screen-space origin of vertex 0 */
-add (16)	dst_x<1>F	temp_x_uw<8,8,1>UW	-screen_x0	{ compr align1 };
-add (16)	dst_y<1>F	temp_y_uw<8,8,1>UW	-screen_y0	{ compr align1 };
diff --git a/src/exa_wm_xy.g4b b/src/exa_wm_xy.g4b
deleted file mode 100644
index 327fc29..0000000
--- a/src/exa_wm_xy.g4b
+++ /dev/null
@@ -1,4 +0,0 @@
-   { 0x00800040, 0x23c06d29, 0x00480028, 0x10101010 },
-   { 0x00800040, 0x23806d29, 0x0048002a, 0x11001100 },
-   { 0x00802040, 0x2100753d, 0x008d03c0, 0x00004020 },
-   { 0x00802040, 0x2140753d, 0x008d0380, 0x00004024 },
diff --git a/src/exa_wm_yuv_rgb.g4a b/src/exa_wm_yuv_rgb.g4a
deleted file mode 100644
index 4fb2576..0000000
--- a/src/exa_wm_yuv_rgb.g4a
+++ /dev/null
@@ -1,98 +0,0 @@
-/*
- * Copyright © 2006 Intel Corporation
- *
- * Permission is hereby granted, free of charge, to any person obtaining a
- * copy of this software and associated documentation files (the "Software"),
- * to deal in the Software without restriction, including without limitation
- * the rights to use, copy, modify, merge, publish, distribute, sublicense,
- * and/or sell copies of the Software, and to permit persons to whom the
- * Software is furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice (including the next
- * paragraph) shall be included in all copies or substantial portions of the
- * Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
- * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
- * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
- * IN THE SOFTWARE.
- *
- * Authors:
- *    Keith Packard <keithp at keithp.com>
- *    Eric Anholt <eric at anholt.net>
- *
- */
-
-include(`exa_wm.g4i')
-
-define(`YCbCr_base',	`src_sample_base')
-
-define(`Cr',		`src_sample_r')
-define(`Cr_01',		`src_sample_r_01')
-define(`Cr_23',		`src_sample_r_23')
-
-define(`Y',		`src_sample_g')
-define(`Y_01',		`src_sample_g_01')
-define(`Y_23',		`src_sample_g_23')
-
-define(`Cb',		`src_sample_b')
-define(`Cb_01',		`src_sample_b_01')
-define(`Cb_23',		`src_sample_b_23')
-
-define(`Crn',		`mask_sample_r')
-define(`Crn_01',	`mask_sample_r_01')
-define(`Crn_23',	`mask_sample_r_23')
-
-define(`Yn',		`mask_sample_g')
-define(`Yn_01',		`mask_sample_g_01')
-define(`Yn_23',		`mask_sample_g_23')
-
-define(`Cbn',		`mask_sample_b')
-define(`Cbn_01',	`mask_sample_b_01')
-define(`Cbn_23',	`mask_sample_b_23')
-
-    /* color space conversion function:
-     * R = Clamp ( 1.164(Y-16/255) + 1.596(Cr-128/255), 0, 1)
-     * G = Clamp ( 1.164(Y-16/255) - 0.813(Cr-128/255) - 0.392(Cb-128/255), 0, 1)
-     * B = Clamp ( 1.164(Y-16/255) + 2.017(Cb-128/255), 0, 1)
-     */
-
-    /* Normalize Y, Cb and Cr:
-     *
-     * Yn = (Y - 16/255) * 1.164
-     * Crn = Cr - 128 / 255
-     * Cbn = Cb - 128 / 255
-     */
-add (16)    Yn<1>F		Y<8,8,1>F	-0.0627451F { compr align1 };
-mul (16)    Yn<1>F		Yn<8,8,1>F	1.164F	    { compr align1 };
-
-add (16)    Crn<1>F		Cr<8,8,1>F	-0.501961F  { compr align1 };
-
-add (16)    Cbn<1>F		Cb<8,8,1>F	-0.501961F  { compr align1 };
-
-    /* 
-     * R = Y + Cr * 1.596
-     */
-mov (16)    acc0<1>F		Yn<8,8,1>F		    { compr align1 };
-mac.sat(16) src_sample_r<1>F	Crn<8,8,1>F	1.596F	    { compr align1 };
-     
-    /*
-     * G = Crn * -0.813 + Cbn * -0.392 + Y
-     */
-mov (16)    acc0<1>F		Yn<8,8,1>F		    { compr align1 };
-mac (16)    acc0<1>F		Crn<8,8,1>F    	-0.813F	    { compr align1 };
-mac.sat(16) src_sample_g<1>F	Cbn<8,8,1>F    	-0.392F	    { compr align1 };
-
-    /*
-     * B = Cbn * 2.017 + Y
-     */
-mov (16)    acc0<1>F	        Yn<8,8,1>F		    { compr align1 };
-mac.sat(16) src_sample_b<1>F	Cbn<8,8,1>F     2.017F	    { compr align1 };
-
-    /*
-     * A = 1.0
-     */
-mov (16)    src_sample_a<1>F	1.0F			    { compr align1 };
diff --git a/src/exa_wm_yuv_rgb.g4b b/src/exa_wm_yuv_rgb.g4b
deleted file mode 100644
index 01f6e2b..0000000
--- a/src/exa_wm_yuv_rgb.g4b
+++ /dev/null
@@ -1,12 +0,0 @@
-   { 0x00802040, 0x23007fbd, 0x008d0200, 0xbd808081 },
-   { 0x00802041, 0x23007fbd, 0x008d0300, 0x3f94fdf4 },
-   { 0x00802040, 0x22c07fbd, 0x008d01c0, 0xbf008084 },
-   { 0x00802040, 0x23407fbd, 0x008d0240, 0xbf008084 },
-   { 0x00802001, 0x240003bc, 0x008d0300, 0x00000000 },
-   { 0x80802048, 0x21c07fbd, 0x008d02c0, 0x3fcc49ba },
-   { 0x00802001, 0x240003bc, 0x008d0300, 0x00000000 },
-   { 0x00802048, 0x24007fbc, 0x008d02c0, 0xbf5020c5 },
-   { 0x80802048, 0x22007fbd, 0x008d0340, 0xbec8b439 },
-   { 0x00802001, 0x240003bc, 0x008d0300, 0x00000000 },
-   { 0x80802048, 0x22407fbd, 0x008d0340, 0x40011687 },
-   { 0x00802001, 0x228003fd, 0x00000000, 0x3f800000 },
diff --git a/src/packed_yuv_sf.g4a b/src/packed_yuv_sf.g4a
deleted file mode 100644
index 5a02399..0000000
--- a/src/packed_yuv_sf.g4a
+++ /dev/null
@@ -1,45 +0,0 @@
-/*
- * Copyright © 2006 Intel Corporation
- *
- * Permission is hereby granted, free of charge, to any person obtaining a
- * copy of this software and associated documentation files (the "Software"),
- * to deal in the Software without restriction, including without limitation
- * the rights to use, copy, modify, merge, publish, distribute, sublicense,
- * and/or sell copies of the Software, and to permit persons to whom the
- * Software is furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice (including the next
- * paragraph) shall be included in all copies or substantial portions of the
- * Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
- * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
- * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
- * IN THE SOFTWARE.
- *
- * Authors:
- *    Keith Packard <keithp at keithp.com>
- *    Eric Anholt <eric at anholt.net>
- *
- */
-
-send (1) 0 g6<1>F g1.12<0,1,0>F math inv scalar mlen 1 rlen 1 { align1 };
-send (1) 0 g6.4<1>F g1.20<0,1,0>F math inv scalar mlen 1 rlen 1 { align1 };
-add (8) g7<1>F g4<8,8,1>F -g3<8,8,1>F { align1 };
-mul (1) g7<1>F g7<0,1,0>F g6<0,1,0>F { align1 };
-mul (1) g7.4<1>F g7.4<0,1,0>F g6.4<0,1,0>F { align1 };
-mov (8) m1<1>F g7<0,1,0>F { align1 };
-mov (8) m2<1>F g7.4<0,1,0>F { align1 };
-mov (8) m3<1>F g3<8,8,1>F { align1 };
-send (8) 0 null g0<8,8,1>F urb 0 transpose used complete mlen 4 rlen 0 { align1 EOT };
-nop;
-nop;
-nop;
-nop;
-nop;
-nop;
-nop;
-nop;
diff --git a/src/packed_yuv_sf.g4b b/src/packed_yuv_sf.g4b
deleted file mode 100644
index 830d176..0000000
--- a/src/packed_yuv_sf.g4b
+++ /dev/null
@@ -1,17 +0,0 @@
-   { 0x00000031, 0x20c01fbd, 0x0000002c, 0x01110081 },
-   { 0x00000031, 0x20c41fbd, 0x00000034, 0x01110081 },
-   { 0x00600040, 0x20e077bd, 0x008d0080, 0x008d4060 },
-   { 0x00000041, 0x20e077bd, 0x000000e0, 0x000000c0 },
-   { 0x00000041, 0x20e477bd, 0x000000e4, 0x000000c4 },
-   { 0x00600001, 0x202003be, 0x000000e0, 0x00000000 },
-   { 0x00600001, 0x204003be, 0x000000e4, 0x00000000 },
-   { 0x00600001, 0x206003be, 0x008d0060, 0x00000000 },
-   { 0x00600031, 0x20001fbc, 0x008d0000, 0x8640c800 },
-   { 0x0000007e, 0x00000000, 0x00000000, 0x00000000 },
-   { 0x0000007e, 0x00000000, 0x00000000, 0x00000000 },
-   { 0x0000007e, 0x00000000, 0x00000000, 0x00000000 },
-   { 0x0000007e, 0x00000000, 0x00000000, 0x00000000 },
-   { 0x0000007e, 0x00000000, 0x00000000, 0x00000000 },
-   { 0x0000007e, 0x00000000, 0x00000000, 0x00000000 },
-   { 0x0000007e, 0x00000000, 0x00000000, 0x00000000 },
-   { 0x0000007e, 0x00000000, 0x00000000, 0x00000000 },
diff --git a/src/packed_yuv_wm.g4a b/src/packed_yuv_wm.g4a
deleted file mode 100644
index 2be52b5..0000000
--- a/src/packed_yuv_wm.g4a
+++ /dev/null
@@ -1,221 +0,0 @@
-/*
- * Copyright © 2006 Intel Corporation
- *
- * Permission is hereby granted, free of charge, to any person obtaining a
- * copy of this software and associated documentation files (the "Software"),
- * to deal in the Software without restriction, including without limitation
- * the rights to use, copy, modify, merge, publish, distribute, sublicense,
- * and/or sell copies of the Software, and to permit persons to whom the
- * Software is furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice (including the next
- * paragraph) shall be included in all copies or substantial portions of the
- * Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
- * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
- * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
- * IN THE SOFTWARE.
- *
- * Authors:
- *    Keith Packard <keithp at keithp.com>
- *    Eric Anholt <eric at anholt.net>
- *
- */
-
-include(`exa_wm.g4i')
-
-define(`YCbCr_base',	`g12')
-define(`Cr',		`g12')
-define(`Cr_01',		`g12')
-define(`Cr_23',		`g13')
-define(`Y',		`g14')
-define(`Y_01',		`g14')
-define(`Y_23',		`g15')
-define(`Cb',		`g16')
-define(`Cb_01',		`g16')
-define(`Cb_23',		`g17')
-
-/* The initial payload of the thread is always g0.
- * WM_URB (incoming URB entries) is g3
- * X0_R is g4
- * X1_R is g5
- * Y0_R is g6
- * Y1_R is g7
- */
-
-    /* Set up the X/Y screen coordinates of the pixels in our 4 subspans.  Each
-     * subspan is a 2x2 rectangle, and the screen x/y of the upper left of each
-     * subspan are given in GRF register 1.2 through 1.5 (which, with the word
-     * addressing below, are 1.4 through 1.11).
-     *
-     * The result is WM_X*_R and WM_Y*R being:
-     *
-     * X0: {ss0.x, ss0.x+1, ss0.x,   ss0.x+1, ss1.x, ss1.x+1, ss1.x,   ss1.x+y}
-     * Y0: {ss0.y, ss0.y,   ss0.y+1, ss0.y+1, ss1.y, ss1.y,   ss1.y+1, ss1.y+1}
-     * X1: {ss2.x, ss2.x+1, ss2.x,   ss2.x+1, ss3.x, ss3.x+1, ss3.x,   ss3.x+y}
-     * Y1: {ss2.y, ss2.y,   ss2.y+1, ss2.y+1, ss3.y, ss3.y,   ss3.y+1, ss3.y+1}
-     */
-
-    /* Set up ss0.x coordinates*/
-mov (1) g4<1>F g1.8<0,1,0>UW { align1 };
-add (1) g4.4<1>F g1.8<0,1,0>UW 1UD { align1 };
-mov (1) g4.8<1>F g1.8<0,1,0>UW { align1 };
-add (1) g4.12<1>F g1.8<0,1,0>UW 1UD { align1 };
-    /* Set up ss0.y coordinates */
-mov (1) g6<1>F g1.10<0,1,0>UW { align1 };
-mov (1) g6.4<1>F g1.10<0,1,0>UW { align1 };
-add (1) g6.8<1>F g1.10<0,1,0>UW 1UD { align1 };
-add (1) g6.12<1>F g1.10<0,1,0>UW 1UD { align1 };
-    /* set up ss1.x coordinates */
-mov (1) g4.16<1>F g1.12<0,1,0>UW { align1 };
-add (1) g4.20<1>F g1.12<0,1,0>UW 1UD { align1 };
-mov (1) g4.24<1>F g1.12<0,1,0>UW { align1 };
-add (1) g4.28<1>F g1.12<0,1,0>UW 1UD { align1 };
-    /* set up ss1.y coordinates */
-mov (1) g6.16<1>F g1.14<0,1,0>UW { align1 };
-mov (1) g6.20<1>F g1.14<0,1,0>UW { align1 };
-add (1) g6.24<1>F g1.14<0,1,0>UW 1UD { align1 };
-add (1) g6.28<1>F g1.14<0,1,0>UW 1UD { align1 };
-    /* Set up ss2.x coordinates */
-mov (1) g5<1>F g1.16<0,1,0>UW { align1 };
-add (1) g5.4<1>F g1.16<0,1,0>UW 1UD { align1 };
-mov (1) g5.8<1>F g1.16<0,1,0>UW { align1 };
-add (1) g5.12<1>F g1.16<0,1,0>UW 1UD { align1 };
-    /* Set up ss2.y coordinates */
-mov (1) g7<1>F g1.18<0,1,0>UW { align1 };
-mov (1) g7.4<1>F g1.18<0,1,0>UW { align1 };
-add (1) g7.8<1>F g1.18<0,1,0>UW 1UD { align1 };
-add (1) g7.12<1>F g1.18<0,1,0>UW 1UD { align1 };
-    /* Set up ss3.x coordinates */
-mov (1) g5.16<1>F g1.20<0,1,0>UW { align1 };
-add (1) g5.20<1>F g1.20<0,1,0>UW 1UD { align1 };
-mov (1) g5.24<1>F g1.20<0,1,0>UW { align1 };
-add (1) g5.28<1>F g1.20<0,1,0>UW 1UD { align1 };
-    /* Set up ss3.y coordinates */
-mov (1) g7.16<1>F g1.22<0,1,0>UW { align1 };
-mov (1) g7.20<1>F g1.22<0,1,0>UW { align1 };
-add (1) g7.24<1>F g1.22<0,1,0>UW 1UD { align1 };
-add (1) g7.28<1>F g1.22<0,1,0>UW 1UD { align1 };
-
-    /* Now, map these screen space coordinates into texture coordinates. */
-    /* subtract screen-space X origin of vertex 0. */
-add (8) g4<1>F g4<8,8,1>F -g1<0,1,0>F { align1 };
-add (8) g5<1>F g5<8,8,1>F -g1<0,1,0>F { align1 };
-    /* scale by texture X increment */
-mul (8) g4<1>F g4<8,8,1>F g3<0,1,0>F { align1 };
-mul (8) g5<1>F g5<8,8,1>F g3<0,1,0>F { align1 };
-    /* add in texture X offset */
-add (8) g4<1>F g4<8,8,1>F g3.12<0,1,0>F { align1 };
-add (8) g5<1>F g5<8,8,1>F g3.12<0,1,0>F { align1 };
-    /* subtract screen-space Y origin of vertex 0. */
-add (8) g6<1>F g6<8,8,1>F -g1.4<0,1,0>F { align1 };
-add (8) g7<1>F g7<8,8,1>F -g1.4<0,1,0>F { align1 };
-    /* scale by texture Y increment */
-mul (8) g6<1>F g6<8,8,1>F g3.20<0,1,0>F { align1 };
-mul (8) g7<1>F g7<8,8,1>F g3.20<0,1,0>F { align1 };
-    /* add in texture Y offset */
-add (8) g6<1>F g6<8,8,1>F g3.28<0,1,0>F { align1 };
-add (8) g7<1>F g7<8,8,1>F g3.28<0,1,0>F { align1 };
-    /* sampler  */
-mov (8) m1<1>F g4<8,8,1>F { align1 };
-mov (8) m2<1>F g5<8,8,1>F { align1 };
-mov (8) m3<1>F g6<8,8,1>F { align1 };
-mov (8) m4<1>F g7<8,8,1>F { align1 };
-
-    /*
-     * g0 holds the PS thread payload, which (oddly) contains
-     * precisely what the sampler wants to see in m0
-     */
-send  (16)
-    0	/* load g0 to m0 */
-    YCbCr_base<1>UW
-    g0<8,8,1>UW 
-    sampler (1,0,F)
-    mlen 5 rlen 8 { align1 };
-
-    /* color space conversion function:
-     * R = Clamp ( 1.164(Y-16/255) + 1.596(Cr-128/255), 0, 1)
-     * G = Clamp ( 1.164(Y-16/255) - 0.813(Cr-128/255) - 0.392(Cb-128/255), 0, 1)
-     * B = Clamp ( 1.164(Y-16/255) + 2.017(Cb-128/255), 0, 1)
-     *
-     * Y is g14, g15.
-     * Cr is g12, g13.
-     * Cb is g16, g17.
-     *
-     * R is g2, g6.
-     * G is g3, g7.
-     * B is g4, g8.
-     */
-
-    /* Normalize Y, Cb and Cr:
-     *
-     * Y = (Y - 16/255) * 1.164
-     * Cr = Cr - 128 / 255
-     * Cb = Cb - 128 / 255
-     */
-add (16)    Y<1>F		Y<8,8,1>F	-0.0627451F { compr align1 };
-mul (16)    Y<1>F		Y<8,8,1>F	1.164F	    { compr align1 };
-
-add (16)    Cr<1>F		Cr<8,8,1>F	-0.501961F  { compr align1 };
-
-add (16)    Cb<1>F		Cb<8,8,1>F	-0.501961F  { compr align1 };
-
-    /* 
-     * R = Y + Cr * 1.596
-     */
-mul (8)	    null		Cr_01<8,8,1>F	1.596F	    { align1 };
-mac.sat (8) data_port_r_01<1>F	Y_01<8,8,1>F	1F	    { align1  };
-mul (8)     null		Cr_23<8,8,1>F	1.596F	    { align1 };
-mac.sat (8) data_port_r_23<1>F	Y_23<8,8,1>F	1F	    { align1  };
-     
-    /*
-     * G = Cr * -0.813 + Cb * -0.392 + Y
-     */
-mul (8)	    null		Cr_01<8,8,1>F	-0.813F	    { align1 };
-mac (8)	    null		Cb_01<8,8,1>F	-0.392F	    { align1 };
-mac.sat (8) data_port_g_01<1>F	Y_01<8,8,1>F	1F	    { align1 };
-mul (8)	    null		Cr_23<8,8,1>F	-0.813F	    { align1 };
-mac (8)	    null		Cb_23<8,8,1>F	-0.392F	    { align1 };
-mac.sat (8) data_port_g_23<1>F	Y_23<8,8,1>F	1F	    { align1 };
-
-    /*
-     * B = Cb * 2.017 + Y
-     */
-mul (8)	    null		Cb_01<8,8,1>F	2.017F	    { align1 };
-mac.sat (8) data_port_b_01<1>F	Y_01<8,8,1>F	1F	    { align1 };
-mul (8)	    null		Cb_23<8,8,1>F	2.017F	    { align1 };
-mac.sat (8) data_port_b_23<1>F	Y_23<8,8,1>F	1F	    { align1 };
-
-    /*
-     * A = 1.0
-     */
-mov (8)	    data_port_a_01<1>F	1.0F			    { align1 };
-mov (8)	    data_port_a_23<1>F	1.0F			    { align1 };
-
-   /*
-    * Pass through control information:
-    */
-mov (8)	    m1<1>UD		g1<8,8,1>UD		    { align1 mask_disable };
-
-   /*
-    * Send framebuffer write message: XXX: acc0?
-    */
-send (16) 0 acc0<1>UW g0<8,8,1>UW write (
-	0, /* binding table index 0 */
-	8, /* pixel scoreboard clear */
-	4, /* render target write */
-	0 /* no write commit message */
-	) mlen 10 rlen 0 { align1 EOT };
-   /* padding */
-nop;
-nop;
-nop;
-nop;
-nop;
-nop;
-nop;
-nop;
diff --git a/src/packed_yuv_wm.g4b b/src/packed_yuv_wm.g4b
deleted file mode 100644
index f2e650a..0000000
--- a/src/packed_yuv_wm.g4b
+++ /dev/null
@@ -1,79 +0,0 @@
-   { 0x00000001, 0x2080013d, 0x00000028, 0x00000000 },
-   { 0x00000040, 0x20840d3d, 0x00000028, 0x00000001 },
-   { 0x00000001, 0x2088013d, 0x00000028, 0x00000000 },
-   { 0x00000040, 0x208c0d3d, 0x00000028, 0x00000001 },
-   { 0x00000001, 0x20c0013d, 0x0000002a, 0x00000000 },
-   { 0x00000001, 0x20c4013d, 0x0000002a, 0x00000000 },
-   { 0x00000040, 0x20c80d3d, 0x0000002a, 0x00000001 },
-   { 0x00000040, 0x20cc0d3d, 0x0000002a, 0x00000001 },
-   { 0x00000001, 0x2090013d, 0x0000002c, 0x00000000 },
-   { 0x00000040, 0x20940d3d, 0x0000002c, 0x00000001 },
-   { 0x00000001, 0x2098013d, 0x0000002c, 0x00000000 },
-   { 0x00000040, 0x209c0d3d, 0x0000002c, 0x00000001 },
-   { 0x00000001, 0x20d0013d, 0x0000002e, 0x00000000 },
-   { 0x00000001, 0x20d4013d, 0x0000002e, 0x00000000 },
-   { 0x00000040, 0x20d80d3d, 0x0000002e, 0x00000001 },
-   { 0x00000040, 0x20dc0d3d, 0x0000002e, 0x00000001 },
-   { 0x00000001, 0x20a0013d, 0x00000030, 0x00000000 },
-   { 0x00000040, 0x20a40d3d, 0x00000030, 0x00000001 },
-   { 0x00000001, 0x20a8013d, 0x00000030, 0x00000000 },
-   { 0x00000040, 0x20ac0d3d, 0x00000030, 0x00000001 },
-   { 0x00000001, 0x20e0013d, 0x00000032, 0x00000000 },
-   { 0x00000001, 0x20e4013d, 0x00000032, 0x00000000 },
-   { 0x00000040, 0x20e80d3d, 0x00000032, 0x00000001 },
-   { 0x00000040, 0x20ec0d3d, 0x00000032, 0x00000001 },
-   { 0x00000001, 0x20b0013d, 0x00000034, 0x00000000 },
-   { 0x00000040, 0x20b40d3d, 0x00000034, 0x00000001 },
-   { 0x00000001, 0x20b8013d, 0x00000034, 0x00000000 },
-   { 0x00000040, 0x20bc0d3d, 0x00000034, 0x00000001 },
-   { 0x00000001, 0x20f0013d, 0x00000036, 0x00000000 },
-   { 0x00000001, 0x20f4013d, 0x00000036, 0x00000000 },
-   { 0x00000040, 0x20f80d3d, 0x00000036, 0x00000001 },
-   { 0x00000040, 0x20fc0d3d, 0x00000036, 0x00000001 },
-   { 0x00600040, 0x208077bd, 0x008d0080, 0x00004020 },
-   { 0x00600040, 0x20a077bd, 0x008d00a0, 0x00004020 },
-   { 0x00600041, 0x208077bd, 0x008d0080, 0x00000060 },
-   { 0x00600041, 0x20a077bd, 0x008d00a0, 0x00000060 },
-   { 0x00600040, 0x208077bd, 0x008d0080, 0x0000006c },
-   { 0x00600040, 0x20a077bd, 0x008d00a0, 0x0000006c },
-   { 0x00600040, 0x20c077bd, 0x008d00c0, 0x00004024 },
-   { 0x00600040, 0x20e077bd, 0x008d00e0, 0x00004024 },
-   { 0x00600041, 0x20c077bd, 0x008d00c0, 0x00000074 },
-   { 0x00600041, 0x20e077bd, 0x008d00e0, 0x00000074 },
-   { 0x00600040, 0x20c077bd, 0x008d00c0, 0x0000007c },
-   { 0x00600040, 0x20e077bd, 0x008d00e0, 0x0000007c },
-   { 0x00600001, 0x202003be, 0x008d0080, 0x00000000 },
-   { 0x00600001, 0x204003be, 0x008d00a0, 0x00000000 },
-   { 0x00600001, 0x206003be, 0x008d00c0, 0x00000000 },
-   { 0x00600001, 0x208003be, 0x008d00e0, 0x00000000 },
-   { 0x00800031, 0x21801d29, 0x008d0000, 0x02580001 },
-   { 0x00802040, 0x21c07fbd, 0x008d01c0, 0xbd808081 },
-   { 0x00802041, 0x21c07fbd, 0x008d01c0, 0x3f94fdf4 },
-   { 0x00802040, 0x21807fbd, 0x008d0180, 0xbf008084 },
-   { 0x00802040, 0x22007fbd, 0x008d0200, 0xbf008084 },
-   { 0x00600041, 0x20007fbc, 0x008d0180, 0x3fcc49ba },
-   { 0x80600048, 0x20407fbe, 0x008d01c0, 0x3f800000 },
-   { 0x00600041, 0x20007fbc, 0x008d01a0, 0x3fcc49ba },
-   { 0x80600048, 0x20c07fbe, 0x008d01e0, 0x3f800000 },
-   { 0x00600041, 0x20007fbc, 0x008d0180, 0xbf5020c5 },
-   { 0x00600048, 0x20007fbc, 0x008d0200, 0xbec8b439 },
-   { 0x80600048, 0x20607fbe, 0x008d01c0, 0x3f800000 },
-   { 0x00600041, 0x20007fbc, 0x008d01a0, 0xbf5020c5 },
-   { 0x00600048, 0x20007fbc, 0x008d0220, 0xbec8b439 },
-   { 0x80600048, 0x20e07fbe, 0x008d01e0, 0x3f800000 },
-   { 0x00600041, 0x20007fbc, 0x008d0200, 0x40011687 },
-   { 0x80600048, 0x20807fbe, 0x008d01c0, 0x3f800000 },
-   { 0x00600041, 0x20007fbc, 0x008d0220, 0x40011687 },
-   { 0x80600048, 0x21007fbe, 0x008d01e0, 0x3f800000 },
-   { 0x00600001, 0x20a003fe, 0x00000000, 0x3f800000 },
-   { 0x00600001, 0x212003fe, 0x00000000, 0x3f800000 },
-   { 0x00600201, 0x20200022, 0x008d0020, 0x00000000 },
-   { 0x00800031, 0x24001d28, 0x008d0000, 0x85a04800 },
-   { 0x0000007e, 0x00000000, 0x00000000, 0x00000000 },
-   { 0x0000007e, 0x00000000, 0x00000000, 0x00000000 },
-   { 0x0000007e, 0x00000000, 0x00000000, 0x00000000 },
-   { 0x0000007e, 0x00000000, 0x00000000, 0x00000000 },
-   { 0x0000007e, 0x00000000, 0x00000000, 0x00000000 },
-   { 0x0000007e, 0x00000000, 0x00000000, 0x00000000 },
-   { 0x0000007e, 0x00000000, 0x00000000, 0x00000000 },
-   { 0x0000007e, 0x00000000, 0x00000000, 0x00000000 },
diff --git a/src/render_program/Makefile.am b/src/render_program/Makefile.am
new file mode 100644
index 0000000..820303f
--- /dev/null
+++ b/src/render_program/Makefile.am
@@ -0,0 +1,66 @@
+INTEL_G4A =				\
+	packed_yuv_sf.g4a		\
+	packed_yuv_wm.g4a		\
+	exa_sf.g4a 			\
+	exa_sf_mask.g4a 		\
+	exa_wm_src_affine.g4a 		\
+	exa_wm_src_projective.g4a 	\
+	exa_wm_src_sample_argb.g4a 	\
+	exa_wm_src_sample_a.g4a 	\
+	exa_wm_src_sample_planar.g4a 	\
+	exa_wm_mask_affine.g4a 		\
+	exa_wm_mask_projective.g4a 	\
+	exa_wm_mask_sample_argb.g4a 	\
+	exa_wm_mask_sample_a.g4a 	\
+	exa_wm_noca.g4a			\
+	exa_wm_ca.g4a			\
+	exa_wm_ca_srcalpha.g4a		\
+	exa_wm_write.g4a 		\
+	exa_wm_yuv_rgb.g4a		\
+	exa_wm_xy.g4a
+
+INTEL_G4I =				\
+	exa_wm.g4i			\
+	exa_wm_affine.g4i		\
+	exa_wm_projective.g4i
+
+INTEL_G4B = 				\
+	packed_yuv_sf.g4b		\
+	packed_yuv_wm.g4b		\
+	exa_sf.g4b 			\
+	exa_sf_mask.g4b 		\
+	exa_wm_src_affine.g4b 		\
+	exa_wm_src_projective.g4b 	\
+	exa_wm_src_sample_argb.g4b 	\
+	exa_wm_src_sample_a.g4b 	\
+	exa_wm_src_sample_planar.g4b 	\
+	exa_wm_mask_affine.g4b 		\
+	exa_wm_mask_projective.g4b 	\
+	exa_wm_mask_sample_argb.g4b 	\
+	exa_wm_mask_sample_a.g4b 	\
+	exa_wm_noca.g4b			\
+	exa_wm_ca.g4b			\
+	exa_wm_ca_srcalpha.g4b		\
+	exa_wm_write.g4b 		\
+	exa_wm_yuv_rgb.g4b		\
+	exa_wm_xy.g4b
+
+
+EXTRA_DIST = 		\
+	$(INTEL_G4A)	\
+	$(INTEL_G4I)	\
+	$(INTEL_G4B)
+
+if HAVE_GEN4ASM
+
+SUFFIXES = .g4a .g4b
+.g4a.g4b:
+	m4 -I$(srcdir) -s $< > $*.g4m && intel-gen4asm -o $@ $*.g4m && rm $*.g4m
+
+$(INTEL_G4B): $(INTEL_G4I)
+
+BUILT_SOURCES= $(INTEL_G4B)
+
+clean-local:
+	-rm -f $(INTEL_G4B)
+endif
diff --git a/src/render_program/exa_sf.g4a b/src/render_program/exa_sf.g4a
new file mode 100644
index 0000000..3e660ac
--- /dev/null
+++ b/src/render_program/exa_sf.g4a
@@ -0,0 +1,107 @@
+/*
+ * Copyright © 2006 Intel Corporation
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice (including the next
+ * paragraph) shall be included in all copies or substantial portions of the
+ * Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
+ * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+ * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
+ * IN THE SOFTWARE.
+ *
+ * Authors:
+ *    Keith Packard <keithp at keithp.com>
+ *    Eric Anholt <eric at anholt.net>
+ *
+ */
+
+/*
+ * Inputs (note all sub-register addresses are bytes, not float indices)
+ *
+ * Note that the vertices will have been reordered:
+ *
+ * V0 is topmost (leftmost among topmost) (upper left)
+ * V1 is next clockwise (lower right)
+ * V2 is remaining (lower left)
+ *
+ *  V0 ...................... XX
+ *  |                          .
+ *  |                          .
+ *  |                          .
+ *  V2------------------------V1
+ *
+ *  G0	    thread state -- just pass along
+ *
+ *  G1 and G2 are fixed by SF spec
+ *
+ *  G1.0    reserved
+ *  G1.4    Provoking vertex
+ *  G1.8    Determinant
+ *  G1.12   X1 - X0
+ *  G1.16   X2 - X0
+ *  G1.20   Y1 - Y0
+ *  G1.24   Y2 - Y0
+ *  G1.30   reserved
+ *
+ *  G2.0    Z0
+ *  G2.4    1/W0
+ *  G2.8    Z1
+ *  G2.12   1/W1
+ *  G2.16   Z2
+ *  G2.20   1/W2
+ *  G2.24   reserved
+ *  G2.30   reserved
+ *
+ *  G3 is V0 Vertex Attribute Data from URB (upper left)
+ *
+ *  G3.0    u0
+ *  G3.4    v0
+ *
+ *  G4 is V1 Vertex Attribute Data from URB (lower right)
+ *
+ *  G4.0    u1
+ *  G4.4    v1
+ *
+ *  G5 is V2 Vertex Attribute Data from URB (lower left)
+ *
+ */
+
+/* Compute inverses of the input deltas */
+send (4) 0 g6<1>F g1.12<4,4,1>F math inv mlen 1 rlen 1 { align1 };
+
+/* texture location at V0 */
+mov (4) m3<1>F g3<4,4,1>F { align1 };
+
+/* compute V1 - V2 (motion in X) for texture coordinates */
+add (4) g7<1>F g4<4,4,1>F -g5<4,4,1>F { align1 };
+
+/* multiply by 1/dx */
+mul (4) m1<1>F g7<4,4,1>F g6.0<0,1,0>F { align1 };
+
+/* Compute V2 - V0 (motion in Y) for texture coordinates */
+add (4) g7<1>F g5<4,4,1>F -g3<4,4,1>F { align1 };
+
+/* multiply by 1/dy */
+mul (4) m2<1>F g7<4,4,1>F g6.8<0,1,0>F {align1 };
+
+/* and we're done */
+send (8) 0 null g0<8,8,1>F urb 0 transpose used complete mlen 4 rlen 0 { align1 EOT };
+nop;
+nop;
+nop;
+nop;
+nop;
+nop;
+nop;
+nop;
diff --git a/src/render_program/exa_sf.g4b b/src/render_program/exa_sf.g4b
new file mode 100644
index 0000000..223c9c9
--- /dev/null
+++ b/src/render_program/exa_sf.g4b
@@ -0,0 +1,15 @@
+   { 0x00400031, 0x20c01fbd, 0x0069002c, 0x01110001 },
+   { 0x00400001, 0x206003be, 0x00690060, 0x00000000 },
+   { 0x00400040, 0x20e077bd, 0x00690080, 0x006940a0 },
+   { 0x00400041, 0x202077be, 0x006900e0, 0x000000c0 },
+   { 0x00400040, 0x20e077bd, 0x006900a0, 0x00694060 },
+   { 0x00400041, 0x204077be, 0x006900e0, 0x000000c8 },
+   { 0x00600031, 0x20001fbc, 0x008d0000, 0x8640c800 },
+   { 0x0000007e, 0x00000000, 0x00000000, 0x00000000 },
+   { 0x0000007e, 0x00000000, 0x00000000, 0x00000000 },
+   { 0x0000007e, 0x00000000, 0x00000000, 0x00000000 },
+   { 0x0000007e, 0x00000000, 0x00000000, 0x00000000 },
+   { 0x0000007e, 0x00000000, 0x00000000, 0x00000000 },
+   { 0x0000007e, 0x00000000, 0x00000000, 0x00000000 },
+   { 0x0000007e, 0x00000000, 0x00000000, 0x00000000 },
+   { 0x0000007e, 0x00000000, 0x00000000, 0x00000000 },
diff --git a/src/render_program/exa_sf_mask.g4a b/src/render_program/exa_sf_mask.g4a
new file mode 100644
index 0000000..5078d01
--- /dev/null
+++ b/src/render_program/exa_sf_mask.g4a
@@ -0,0 +1,107 @@
+/*
+ * Copyright © 2006 Intel Corporation
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice (including the next
+ * paragraph) shall be included in all copies or substantial portions of the
+ * Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
+ * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+ * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
+ * IN THE SOFTWARE.
+ *
+ * Authors:
+ *    Keith Packard <keithp at keithp.com>
+ *    Eric Anholt <eric at anholt.net>
+ *    Wang Zhenyu <zhenyu.z.wang at intel.com>
+ */
+
+/*
+ * Inputs (note all sub-register addresses are bytes, not float indices)
+ *
+ * Note that the vertices will have been reordered:
+ *
+ * V0 is topmost (leftmost among topmost) (upper left)
+ * V1 is next clockwise (lower right)
+ * V2 is remaining (lower left)
+ *
+ *  V0 ...................... XX
+ *  |                          .
+ *  |                          .
+ *  |                          .
+ *  V2------------------------V1
+ *
+ *  G0	    thread state -- just pass along
+ *
+ *  G1 and G2 are fixed by SF spec
+ *
+ *  G1.0    reserved
+ *  G1.4    Provoking vertex
+ *  G1.8    Determinant
+ *  G1.12   X1 - X0
+ *  G1.16   X2 - X0
+ *  G1.20   Y1 - Y0
+ *  G1.24   Y2 - Y0
+ *  G1.30   reserved
+ *
+ *  G2.0    Z0
+ *  G2.4    1/W0
+ *  G2.8    Z1
+ *  G2.12   1/W1
+ *  G2.16   Z2
+ *  G2.20   1/W2
+ *  G2.24   reserved
+ *  G2.30   reserved
+ *
+ *  G3 is V0 Vertex Attribute Data from URB (upper left)
+ *
+ *  G3.0    u0
+ *  G3.4    v0
+ *
+ *  G4 is V1 Vertex Attribute Data from URB (lower right)
+ *
+ *  G4.0    u1
+ *  G4.4    v1
+ *
+ *  G5 is V2 Vertex Attribute Data from URB (lower left)
+ *
+ */
+
+/* Compute inverses of the input deltas */
+send (4) 0 g6<1>F g1.12<4,4,1>F math inv mlen 1 rlen 1 { align1 };
+
+/* texture location at V0 */
+mov (8) m3<1>F g3<8,8,1>F { align1 };
+
+/* compute V1 - V2 (motion in X) for texture coordinates */
+add (8) g7<1>F g4<8,8,1>F -g5<8,8,1>F { align1 };
+
+/* multiply by 1/dx */
+mul (8) m1<1>F g7<8,8,1>F g6.0<0,1,0>F { align1 };
+
+/* Compute V2 - V0 (motion in Y) for texture coordinates */
+add (8) g7<1>F g5<8,8,1>F -g3<8,8,1>F { align1 };
+
+/* multiply by 1/dy */
+mul (8) m2<1>F g7<8,8,1>F g6.8<0,1,0>F {align1 };
+
+/* and we're done */
+send (8) 0 null g0<8,8,1>F urb 0 transpose used complete mlen 4 rlen 0 { align1 EOT };
+nop;
+nop;
+nop;
+nop;
+nop;
+nop;
+nop;
+nop;
diff --git a/src/render_program/exa_sf_mask.g4b b/src/render_program/exa_sf_mask.g4b
new file mode 100644
index 0000000..be0a77b
--- /dev/null
+++ b/src/render_program/exa_sf_mask.g4b
@@ -0,0 +1,15 @@
+   { 0x00400031, 0x20c01fbd, 0x0069002c, 0x01110001 },
+   { 0x00600001, 0x206003be, 0x008d0060, 0x00000000 },
+   { 0x00600040, 0x20e077bd, 0x008d0080, 0x008d40a0 },
+   { 0x00600041, 0x202077be, 0x008d00e0, 0x000000c0 },
+   { 0x00600040, 0x20e077bd, 0x008d00a0, 0x008d4060 },
+   { 0x00600041, 0x204077be, 0x008d00e0, 0x000000c8 },
+   { 0x00600031, 0x20001fbc, 0x008d0000, 0x8640c800 },
+   { 0x0000007e, 0x00000000, 0x00000000, 0x00000000 },
+   { 0x0000007e, 0x00000000, 0x00000000, 0x00000000 },
+   { 0x0000007e, 0x00000000, 0x00000000, 0x00000000 },
+   { 0x0000007e, 0x00000000, 0x00000000, 0x00000000 },
+   { 0x0000007e, 0x00000000, 0x00000000, 0x00000000 },
+   { 0x0000007e, 0x00000000, 0x00000000, 0x00000000 },
+   { 0x0000007e, 0x00000000, 0x00000000, 0x00000000 },
+   { 0x0000007e, 0x00000000, 0x00000000, 0x00000000 },
diff --git a/src/render_program/exa_wm.g4i b/src/render_program/exa_wm.g4i
new file mode 100644
index 0000000..5d3d45b
--- /dev/null
+++ b/src/render_program/exa_wm.g4i
@@ -0,0 +1,156 @@
+/*
+ * Copyright © 2006 Intel Corporation
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice (including the next
+ * paragraph) shall be included in all copies or substantial portions of the
+ * Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
+ * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+ * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
+ * IN THE SOFTWARE.
+ *
+ * Authors:
+ *    Wang Zhenyu <zhenyu.z.wang at intel.com>
+ *    Keith Packard <keithp at keithp.com>
+ */
+ 
+/*
+ * Input parameters
+ */
+
+/* Destination X/Y */
+define(`dst_x_uw',  `g1.8<2,4,0>UW')
+define(`dst_y_uw',  `g1.10<2,4,0>UW')
+define(`screen_x0', `g1.0<0,1,0>F')
+define(`screen_y0', `g1.4<0,1,0>F')
+
+/* Source transformation parameters */
+define(`src_du_dx', `g3.0<0,1,0>F')
+define(`src_du_dy', `g3.4<0,1,0>F')
+define(`src_uo',    `g3.12<0,1,0>F')
+define(`src_dv_dx', `g3.16<0,1,0>F')
+define(`src_dv_dy', `g3.20<0,1,0>F')
+define(`src_vo',    `g3.28<0,1,0>F')
+define(`src_dw_dx', `g4.0<0,1,0>F')
+define(`src_dw_dy', `g4.4<0,1,0>F')
+define(`src_wo',    `g4.12<0,1,0>F')
+
+define(`mask_du_dx', `g5.0<0,1,0>F')
+define(`mask_du_dy', `g5.4<0,1,0>F')
+define(`mask_uo',    `g5.12<0,1,0>F')
+define(`mask_dv_dx', `g5.16<0,1,0>F')
+define(`mask_dv_dy', `g5.20<0,1,0>F')
+define(`mask_vo',    `g5.28<0,1,0>F')
+define(`mask_dw_dx', `g6.0<0,1,0>F')
+define(`mask_dw_dy', `g6.4<0,1,0>F')
+define(`mask_wo',    `g6.12<0,1,0>F')
+
+/*
+ * Local variables. Pairs must be aligned on even reg boundry
+ */
+
+/* this holds the X dest coordinates */
+define(`dst_x',	    `g8')
+define(`dst_x_0',   `dst_x')
+define(`dst_x_1',   `g9')
+
+/* this holds the Y dest coordinates */
+define(`dst_y',	    `g10')
+define(`dst_y_0',   `dst_y')
+define(`dst_y_1',   `g11')
+
+/* When computing x * dn/dx, use this */
+define(`temp_x',    `g30')
+define(`temp_x_0',  `temp_x')
+define(`temp_x_1',  `g31')
+
+/* When computing y * dn/dy, use this */
+define(`temp_y',    `g28')
+define(`temp_y_0',  temp_y)
+define(`temp_y_1',  `g29')
+
+/* when loading x/y, use these to hold them in UW format */
+define(`temp_x_uw', temp_x)
+define(`temp_y_uw', temp_y)
+
+/* compute source and mask u/v to this pair to send to sampler */
+define(`src_msg',   `m1')
+define(`src_msg_ind',`1')
+define(`src_u',	    `m2')
+define(`src_v',	    `m4')
+define(`src_w',	    `g12')
+define(`src_w_0',   `src_w')
+define(`src_w_1',   `g13')
+
+define(`mask_msg',  `m7')
+define(`mask_msg_ind',`7')
+define(`mask_u',    `m8')
+define(`mask_v',    `m10')
+define(`mask_w',    `src_w')
+define(`mask_w_0',  `src_w_0')
+define(`mask_w_1',  `src_w_1')
+
+/* sample src to these registers */
+define(`src_sample_base',	`g14')
+
+define(`src_sample_r',		`g14')
+define(`src_sample_r_01',	`g14')
+define(`src_sample_r_23',	`g15')
+
+define(`src_sample_g',		`g16')
+define(`src_sample_g_01',	`g16')
+define(`src_sample_g_23',	`g17')
+
+define(`src_sample_b',		`g18')
+define(`src_sample_b_01',	`g18')
+define(`src_sample_b_23',	`g19')
+
+define(`src_sample_a',		`g20')
+define(`src_sample_a_01',	`g20')
+define(`src_sample_a_23',	`g21')
+
+/* sample mask to these registers */
+define(`mask_sample_base',	`g22')
+    
+define(`mask_sample_r',		`g22')
+define(`mask_sample_r_01',	`g22')
+define(`mask_sample_r_23',	`g23')
+    
+define(`mask_sample_g',		`g24')
+define(`mask_sample_g_01',	`g24')
+define(`mask_sample_g_23',	`g25')
+    
+define(`mask_sample_b',		`g26')
+define(`mask_sample_b_01',	`g26')
+define(`mask_sample_b_23',	`g27')
+    
+define(`mask_sample_a',		`g28')
+define(`mask_sample_a_01',	`g28')
+define(`mask_sample_a_23',	`g29')
+
+/* data port SIMD16 send registers */
+
+define(`data_port_msg_0',	`m0')
+define(`data_port_msg_0_ind',	`0')
+define(`data_port_msg_1',	`m1')
+define(`data_port_r_01',	`m2')
+define(`data_port_g_01',	`m3')
+define(`data_port_b_01',	`m4')
+define(`data_port_a_01',	`m5')
+
+define(`data_port_r_23',	`m6')
+define(`data_port_g_23',	`m7')
+define(`data_port_b_23',	`m8')
+define(`data_port_a_23',	`m9')
+
diff --git a/src/render_program/exa_wm_affine.g4i b/src/render_program/exa_wm_affine.g4i
new file mode 100644
index 0000000..e72656b
--- /dev/null
+++ b/src/render_program/exa_wm_affine.g4i
@@ -0,0 +1,44 @@
+/*
+ * Copyright © 2006 Intel Corporation
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice (including the next
+ * paragraph) shall be included in all copies or substantial portions of the
+ * Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
+ * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+ * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
+ * IN THE SOFTWARE.
+ *
+ * Authors:
+ *    Wang Zhenyu <zhenyu.z.wang at intel.com>
+ *    Keith Packard <keithp at keithp.com>
+ */
+
+/*
+ * Fragment to compute src u/v values under an affine transform
+ */
+
+/********** Compute u *************/
+
+mul (16)	temp_x<1>F	dst_x<8,8,1>F	du_dx		{ compr align1 };
+mul (16)	temp_y<1>F	dst_y<8,8,1>F	du_dy		{ compr align1 };
+add (16)	temp_x<1>F	temp_x<8,8,1>F	temp_y<8,8,1>F	{ compr align1 };
+add (16)	u<1>F		temp_x<8,8,1>F	uo		{ compr align1 };
+
+/********** Compute v *************/
+
+mul (16)	temp_x<1>F	dst_x<8,8,1>F	dv_dx		{ compr align1 };
+mul (16)	temp_y<1>F	dst_y<8,8,1>F	dv_dy		{ compr align1 };
+add (16)	temp_x<1>F	temp_x<8,8,1>F	temp_y<8,8,1>F	{ compr align1 };
+add (16)	v<1>F		temp_x<8,8,1>F	vo		{ compr align1 };
diff --git a/src/render_program/exa_wm_ca.g4a b/src/render_program/exa_wm_ca.g4a
new file mode 100644
index 0000000..5d982b3
--- /dev/null
+++ b/src/render_program/exa_wm_ca.g4a
@@ -0,0 +1,38 @@
+/*
+ * Copyright © 2006 Intel Corporation
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice (including the next
+ * paragraph) shall be included in all copies or substantial portions of the
+ * Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
+ * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+ * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
+ * IN THE SOFTWARE.
+ *
+ * Authors:
+ *    Wang Zhenyu <zhenyu.z.wang at intel.com>
+ *    Keith Packard <keithp at keithp.com>
+ */
+ 
+/*
+ * Composite src and mask together, no component alpha
+ */
+
+include(`exa_wm.g4i')
+
+/* mul mask rgba channels to src */
+mul (16)    src_sample_r_01<1>F	src_sample_r_01<8,8,1>F	mask_sample_r_01<8,8,1>F { compr align1 };
+mul (16)    src_sample_g_01<1>F src_sample_g_01<8,8,1>F	mask_sample_g_01<8,8,1>F { compr align1 };
+mul (16)    src_sample_b_01<1>F src_sample_b_01<8,8,1>F	mask_sample_b_01<8,8,1>F { compr align1 };
+mul (16)    src_sample_a_01<1>F src_sample_a_01<8,8,1>F	mask_sample_a_01<8,8,1>F { compr align1 };
diff --git a/src/render_program/exa_wm_ca.g4b b/src/render_program/exa_wm_ca.g4b
new file mode 100644
index 0000000..372e8b2
--- /dev/null
+++ b/src/render_program/exa_wm_ca.g4b
@@ -0,0 +1,4 @@
+   { 0x00802041, 0x21c077bd, 0x008d01c0, 0x008d02c0 },
+   { 0x00802041, 0x220077bd, 0x008d0200, 0x008d0300 },
+   { 0x00802041, 0x224077bd, 0x008d0240, 0x008d0340 },
+   { 0x00802041, 0x228077bd, 0x008d0280, 0x008d0380 },
diff --git a/src/render_program/exa_wm_ca_srcalpha.g4a b/src/render_program/exa_wm_ca_srcalpha.g4a
new file mode 100644
index 0000000..d1f847f
--- /dev/null
+++ b/src/render_program/exa_wm_ca_srcalpha.g4a
@@ -0,0 +1,37 @@
+/*
+ * Copyright © 2006 Intel Corporation
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice (including the next
+ * paragraph) shall be included in all copies or substantial portions of the
+ * Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
+ * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+ * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
+ * IN THE SOFTWARE.
+ *
+ * Authors:
+ *    Wang Zhenyu <zhenyu.z.wang at intel.com>
+ *    Keith Packard <keithp at keithp.com>
+ */
+ 
+/*
+ * Composite src and mask together, no component alpha
+ */
+
+include(`exa_wm.g4i')
+
+mul (16)    src_sample_r_01<1>F mask_sample_r_01<8,8,1>F src_sample_a_01<8,8,1>F { compr align1 };
+mul (16)    src_sample_g_01<1>F mask_sample_g_01<8,8,1>F src_sample_a_01<8,8,1>F { compr align1 };
+mul (16)    src_sample_b_01<1>F mask_sample_b_01<8,8,1>F src_sample_a_01<8,8,1>F { compr align1 };
+mul (16)    src_sample_a_01<1>F mask_sample_a_01<8,8,1>F src_sample_a_01<8,8,1>F { compr align1 };
diff --git a/src/render_program/exa_wm_ca_srcalpha.g4b b/src/render_program/exa_wm_ca_srcalpha.g4b
new file mode 100644
index 0000000..963d676
--- /dev/null
+++ b/src/render_program/exa_wm_ca_srcalpha.g4b
@@ -0,0 +1,4 @@
+   { 0x00802041, 0x21c077bd, 0x008d02c0, 0x008d0280 },
+   { 0x00802041, 0x220077bd, 0x008d0300, 0x008d0280 },
+   { 0x00802041, 0x224077bd, 0x008d0340, 0x008d0280 },
+   { 0x00802041, 0x228077bd, 0x008d0380, 0x008d0280 },
diff --git a/src/render_program/exa_wm_mask_affine.g4a b/src/render_program/exa_wm_mask_affine.g4a
new file mode 100644
index 0000000..9c52d2f
--- /dev/null
+++ b/src/render_program/exa_wm_mask_affine.g4a
@@ -0,0 +1,41 @@
+/*
+ * Copyright © 2006 Intel Corporation
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice (including the next
+ * paragraph) shall be included in all copies or substantial portions of the
+ * Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
+ * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+ * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
+ * IN THE SOFTWARE.
+ *
+ * Authors:
+ *    Wang Zhenyu <zhenyu.z.wang at intel.com>
+ *    Keith Packard <keithp at keithp.com>
+ */
+
+include(`exa_wm.g4i')
+
+define(`du_dx',	`mask_du_dx')
+define(`du_dy',	`mask_du_dy')
+define(`uo',	`mask_uo')
+
+define(`dv_dx',	`mask_dv_dx')
+define(`dv_dy',	`mask_dv_dy')
+define(`vo',	`mask_vo')
+
+define(`u',	`mask_u')
+define(`v',	`mask_v')
+
+include(`exa_wm_affine.g4i')
diff --git a/src/render_program/exa_wm_mask_affine.g4b b/src/render_program/exa_wm_mask_affine.g4b
new file mode 100644
index 0000000..14a5451
--- /dev/null
+++ b/src/render_program/exa_wm_mask_affine.g4b
@@ -0,0 +1,8 @@
+   { 0x00802041, 0x23c077bd, 0x008d0100, 0x000000a0 },
+   { 0x00802041, 0x238077bd, 0x008d0140, 0x000000a4 },
+   { 0x00802040, 0x23c077bd, 0x008d03c0, 0x008d0380 },
+   { 0x00802040, 0x210077be, 0x008d03c0, 0x000000ac },
+   { 0x00802041, 0x23c077bd, 0x008d0100, 0x000000b0 },
+   { 0x00802041, 0x238077bd, 0x008d0140, 0x000000b4 },
+   { 0x00802040, 0x23c077bd, 0x008d03c0, 0x008d0380 },
+   { 0x00802040, 0x214077be, 0x008d03c0, 0x000000bc },
diff --git a/src/render_program/exa_wm_mask_projective.g4a b/src/render_program/exa_wm_mask_projective.g4a
new file mode 100644
index 0000000..9acaace
--- /dev/null
+++ b/src/render_program/exa_wm_mask_projective.g4a
@@ -0,0 +1,53 @@
+/*
+ * Copyright © 2006 Intel Corporation
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice (including the next
+ * paragraph) shall be included in all copies or substantial portions of the
+ * Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
+ * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+ * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
+ * IN THE SOFTWARE.
+ *
+ * Authors:
+ *    Wang Zhenyu <zhenyu.z.wang at intel.com>
+ *    Keith Packard <keithp at keithp.com>
+ */
+
+include(`exa_wm.g4i')
+
+define(`du_dx',	`mask_du_dx')
+define(`du_dy',	`mask_du_dy')
+define(`uo',	`mask_uo')
+
+define(`dv_dx',	`mask_dv_dx')
+define(`dv_dy',	`mask_dv_dy')
+define(`vo',	`mask_vo')
+
+define(`dw_dx',	`mask_dw_dx')
+define(`dw_dy',	`mask_dw_dy')
+define(`wo',	`mask_wo')
+
+define(`u',	`mask_u')
+define(`v',	`mask_v')
+define(`w',	`mask_w')
+
+define(`u_0',	`mask_u_0')
+define(`v_0',	`mask_v_0')
+define(`u_1',	`mask_u_1')
+define(`v_1',	`mask_v_1')
+define(`w_0',	`mask_w_0')
+define(`w_1',	`mask_w_1')
+
+include(`exa_wm_projective.g4i')
diff --git a/src/render_program/exa_wm_mask_projective.g4b b/src/render_program/exa_wm_mask_projective.g4b
new file mode 100644
index 0000000..78cb9ae
--- /dev/null
+++ b/src/render_program/exa_wm_mask_projective.g4b
@@ -0,0 +1,16 @@
+   { 0x00802041, 0x23c077bd, 0x008d0100, 0x000000c0 },
+   { 0x00802041, 0x238077bd, 0x008d0140, 0x000000c4 },
+   { 0x00802040, 0x23c077bd, 0x008d03c0, 0x008d0380 },
+   { 0x00802040, 0x23c077bd, 0x008d03c0, 0x000000cc },
+   { 0x00600031, 0x21801fbd, 0x008d03c0, 0x01110001 },
+   { 0x00600031, 0x21a01fbd, 0x008d03e0, 0x01110001 },
+   { 0x00802041, 0x23c077bd, 0x008d0100, 0x000000a0 },
+   { 0x00802041, 0x238077bd, 0x008d0140, 0x000000a4 },
+   { 0x00802040, 0x23c077bd, 0x008d03c0, 0x008d0380 },
+   { 0x00802040, 0x23c077bd, 0x008d03c0, 0x000000ac },
+   { 0x00802041, 0x210077be, 0x008d03c0, 0x008d0180 },
+   { 0x00802041, 0x23c077bd, 0x008d0100, 0x000000b0 },
+   { 0x00802041, 0x238077bd, 0x008d0140, 0x000000b4 },
+   { 0x00802040, 0x23c077bd, 0x008d03c0, 0x008d0380 },
+   { 0x00802040, 0x23c077bd, 0x008d03c0, 0x000000bc },
+   { 0x00802041, 0x214077be, 0x008d03c0, 0x008d0180 },
diff --git a/src/render_program/exa_wm_mask_sample_a.g4a b/src/render_program/exa_wm_mask_sample_a.g4a
new file mode 100644
index 0000000..bbb19d7
--- /dev/null
+++ b/src/render_program/exa_wm_mask_sample_a.g4a
@@ -0,0 +1,48 @@
+/*
+ * Copyright © 2006 Intel Corporation
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice (including the next
+ * paragraph) shall be included in all copies or substantial portions of the
+ * Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
+ * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+ * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
+ * IN THE SOFTWARE.
+ *
+ * Authors:
+ *    Wang Zhenyu <zhenyu.z.wang at intel.com>
+ *    Keith Packard <keithp at keithp.com>
+ */
+
+/* Sample the mask surface */
+
+include(`exa_wm.g4i')
+
+/* prepare sampler read back gX register, which would be written back to output */
+
+/* use simd16 sampler, param 0 is u, param 1 is v. */
+/* 'payload' loading, assuming tex coord start from g4 */
+
+/* load only alpha */
+mov (1) g0.8<1>UD	0x00007000UD { align1 mask_disable };
+
+/* mask_msg will be copied with g0, as it contains send desc */
+/* emit sampler 'send' cmd */
+send (16) mask_msg_ind		/* msg reg index */
+	mask_sample_a_01<1>UW 	/* readback */
+	g0<8,8,1>UW		/* copy to msg start reg*/
+	sampler (2,1,F)		/* sampler message description, (binding_table,sampler_index,datatype)
+				/* here(src->dst) we should use src_sampler and src_surface */
+	mlen 5 rlen 2 { align1 };   /* required message len 5, readback len 8 */
+
diff --git a/src/render_program/exa_wm_mask_sample_a.g4b b/src/render_program/exa_wm_mask_sample_a.g4b
new file mode 100644
index 0000000..018bd36
--- /dev/null
+++ b/src/render_program/exa_wm_mask_sample_a.g4b
@@ -0,0 +1,2 @@
+   { 0x00000201, 0x20080061, 0x00000000, 0x00007000 },
+   { 0x07800031, 0x23801d29, 0x008d0000, 0x02520102 },
diff --git a/src/render_program/exa_wm_mask_sample_argb.g4a b/src/render_program/exa_wm_mask_sample_argb.g4a
new file mode 100644
index 0000000..def4cfe
--- /dev/null
+++ b/src/render_program/exa_wm_mask_sample_argb.g4a
@@ -0,0 +1,48 @@
+/*
+ * Copyright © 2006 Intel Corporation
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice (including the next
+ * paragraph) shall be included in all copies or substantial portions of the
+ * Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
+ * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+ * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
+ * IN THE SOFTWARE.
+ *
+ * Authors:
+ *    Wang Zhenyu <zhenyu.z.wang at intel.com>
+ *    Keith Packard <keithp at keithp.com>
+ */
+
+/* Sample the mask surface */
+
+include(`exa_wm.g4i')
+
+/* prepare sampler read back gX register, which would be written back to output */
+
+/* use simd16 sampler, param 0 is u, param 1 is v. */
+/* 'payload' loading, assuming tex coord start from g4 */
+
+/* load argb */
+mov (1) g0.8<1>UD	0x00000000UD { align1 mask_disable };
+
+/* mask_msg will be copied with g0, as it contains send desc */
+/* emit sampler 'send' cmd */
+send (16) mask_msg_ind		/* msg reg index */
+	mask_sample_base<1>UW 	/* readback */
+	g0<8,8,1>UW		/* copy to msg start reg*/
+	sampler (2,1,F)		/* sampler message description, (binding_table,sampler_index,datatype)
+				/* here(src->dst) we should use src_sampler and src_surface */
+	mlen 5 rlen 8 { align1 };   /* required message len 5, readback len 8 */
+
diff --git a/src/render_program/exa_wm_mask_sample_argb.g4b b/src/render_program/exa_wm_mask_sample_argb.g4b
new file mode 100644
index 0000000..b159cba
--- /dev/null
+++ b/src/render_program/exa_wm_mask_sample_argb.g4b
@@ -0,0 +1,2 @@
+   { 0x00000201, 0x20080061, 0x00000000, 0x00000000 },
+   { 0x07800031, 0x22c01d29, 0x008d0000, 0x02580102 },
diff --git a/src/render_program/exa_wm_noca.g4a b/src/render_program/exa_wm_noca.g4a
new file mode 100644
index 0000000..d0d60fa
--- /dev/null
+++ b/src/render_program/exa_wm_noca.g4a
@@ -0,0 +1,38 @@
+/*
+ * Copyright © 2006 Intel Corporation
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice (including the next
+ * paragraph) shall be included in all copies or substantial portions of the
+ * Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
+ * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+ * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
+ * IN THE SOFTWARE.
+ *
+ * Authors:
+ *    Wang Zhenyu <zhenyu.z.wang at intel.com>
+ *    Keith Packard <keithp at keithp.com>
+ */
+ 
+/*
+ * Composite src and mask together, no component alpha
+ */
+
+include(`exa_wm.g4i')
+/* mul mask's alpha channel to src */
+
+mul (16)    src_sample_r_01<1>F	src_sample_r_01<8,8,1>F	mask_sample_a_01<8,8,1>F { compr align1 };
+mul (16)    src_sample_g_01<1>F src_sample_g_01<8,8,1>F	mask_sample_a_01<8,8,1>F { compr align1 };
+mul (16)    src_sample_b_01<1>F src_sample_b_01<8,8,1>F	mask_sample_a_01<8,8,1>F { compr align1 };
+mul (16)    src_sample_a_01<1>F src_sample_a_01<8,8,1>F	mask_sample_a_01<8,8,1>F { compr align1 };
diff --git a/src/render_program/exa_wm_noca.g4b b/src/render_program/exa_wm_noca.g4b
new file mode 100644
index 0000000..1506334
--- /dev/null
+++ b/src/render_program/exa_wm_noca.g4b
@@ -0,0 +1,4 @@
+   { 0x00802041, 0x21c077bd, 0x008d01c0, 0x008d0380 },
+   { 0x00802041, 0x220077bd, 0x008d0200, 0x008d0380 },
+   { 0x00802041, 0x224077bd, 0x008d0240, 0x008d0380 },
+   { 0x00802041, 0x228077bd, 0x008d0280, 0x008d0380 },
diff --git a/src/render_program/exa_wm_nomask.g4a b/src/render_program/exa_wm_nomask.g4a
new file mode 100644
index 0000000..eb535fe
--- /dev/null
+++ b/src/render_program/exa_wm_nomask.g4a
@@ -0,0 +1,143 @@
+/*
+ * Copyright © 2006 Intel Corporation
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice (including the next
+ * paragraph) shall be included in all copies or substantial portions of the
+ * Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
+ * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+ * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
+ * IN THE SOFTWARE.
+ *
+ * Authors:
+ *    Wang Zhenyu <zhenyu.z.wang at intel.com>
+ */
+
+/*
+ * This's for exa composite operation in no mask picture case.
+ * The simplest case is just sending what src picture has to dst picture.
+ */
+
+/* I think this should be same as in g4a program for texture video,
+   as we also use 16-pixel dispatch. and SF scale in g3 is useful for us. */
+
+/* The initial payload of the thread is always g0.
+ * WM_URB (incoming URB entries) is g3
+ * X0_R is g4
+ * X1_R is g5
+ * Y0_R is g6
+ * Y1_R is g7
+ */
+
+
+/* Load X and Y coordinates and compute per-pixel coordinates */
+add (16)	g4<1>UW		g1.8<2,4,0>UW	0x10101010V	{ align1 };
+add (16)	g6<1>UW		g1.10<2,4,0>UW	0x11001100V	{ align1 };
+
+    /* Now, map these screen space coordinates into texture coordinates. */
+    
+    /* subtract screen-space X origin of vertex 0. */
+add (16)	g12<1>F		g4<8,8,1>UW	-g1.0<0,1,0>F { compr align1 };
+
+    /* subtract screen-space Y origin of vertex 0. */
+add (16)	g16<1>F		g6<8,8,1>UW	-g1.4<0,1,0>F { compr align1 };
+
+	/* g8/g9 = X * du/dx */
+mul (16)	g8<1>F		g12<8,8,1>F	g3.0<0,1,0>F { compr align1 };
+
+	/* g10/g11 = Y * du/dy */
+mul (16)	g10<1>F		g16<8,8,1>F	g3.4<0,1,0>F { compr align1 };
+
+	/* g8/g9 = X du/dx + Y du/dy */
+add (16)	g8<1>F		g8<8,8,1>F	g10<8,8,1>F { compr align1 };
+
+	/* m1/m2 = g8/g9 + uo */
+add (16)	m1<1>F		g8<8,8,1>F	g3.12<0,1,0>F { compr align1 };
+
+
+	/* g8/g9 = X * dv/dx */
+mul (16)	g8<1>F		g12<8,8,1>F	g3.16<0,1,0>F { compr align1 };
+
+	/* g10/g11 = Y * du/dy */
+mul (16)	g10<1>F		g16<8,8,1>F	g3.20<0,1,0>F { compr align1 };
+
+	/* g8/g9 = X du/dx + Y du/dy */
+add (16)	g8<1>F		g8<8,8,1>F	g10<8,8,1>F { compr align1 };
+
+	/* m3/m4 = g8/g9 + vo */
+add (16)	m3<1>F		g8<8,8,1>F	g3.28<0,1,0>F { compr align1 };
+
+
+/* prepare sampler read back gX register, which would be written back to output */
+
+/* use simd16 sampler, param 0 is u, param 1 is v. */
+/* 'payload' loading, assuming tex coord start from g4 */
+
+/* m0 will be copied with g0, as it contains send desc */
+/* emit sampler 'send' cmd */
+send (16) 0 		/* msg reg index */
+	g12<1>UW 	/* readback */
+	g0<8,8,1>UW  	/* copy to msg start reg*/
+	sampler (1,0,F)  /* sampler message description, (binding_table,sampler_index,datatype)
+			 /* here(src->dst) we should use src_sampler and src_surface */
+	mlen 5 rlen 8 { align1 };   /* required message len 5, readback len 8 */
+
+mov (8) g19<1>UD g19<8,8,1>UD { align1 };  /* wait sampler return */
+/* if we set up read-back reg correctly, emit dataport write 'send' cmd with EOT */
+
+/* m0, m1 are all direct passed by PS thread payload */
+mov (8) m1<1>F g1<8,8,1>F { align1 };
+
+/* prepare data in m2-m5 for subspan(1,0), m6-m9 for subspan(3,2), then it's ready to write */
+/* g12 -> m2
+   g13 -> m6
+   g14 -> m3
+   g15 -> m7
+   g16 -> m4
+   g17 -> m8
+   g18 -> m5
+   g19 -> m9
+*/
+mov (8) m2<1>F g12<8,8,1>F { align1 };
+mov (8) m3<1>F g14<8,8,1>F { align1 };
+mov (8) m4<1>F g16<8,8,1>F { align1 };
+mov (8) m5<1>F g18<8,8,1>F { align1 };
+mov (8) m6<1>F g13<8,8,1>F { align1 };
+mov (8) m7<1>F g15<8,8,1>F { align1 };
+mov (8) m8<1>F g17<8,8,1>F { align1 };
+mov (8) m9<1>F g19<8,8,1>F { align1 };
+
+/* m0, m1 are all direct passed by PS thread payload */
+mov (8) m1<1>UD g1<8,8,1>UD { align1 };
+
+/* write */
+send (16) 0 acc0<1>UW g0<8,8,1>UW write (
+	0,  /* binding_table */
+	8,  /* pixel scordboard clear, msg type simd16 single source */
+	4,  /* render target write */
+	0   /* no write commit message */
+	) 
+	mlen 10
+	rlen 0
+	{ align1 EOT };
+
+nop;
+nop;
+nop;
+nop;
+nop;
+nop;
+nop;
+nop;
+nop;
diff --git a/src/render_program/exa_wm_projective.g4i b/src/render_program/exa_wm_projective.g4i
new file mode 100644
index 0000000..7e2e0a8
--- /dev/null
+++ b/src/render_program/exa_wm_projective.g4i
@@ -0,0 +1,51 @@
+/*
+ * Copyright © 2006 Intel Corporation
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice (including the next
+ * paragraph) shall be included in all copies or substantial portions of the
+ * Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
+ * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+ * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
+ * IN THE SOFTWARE.
+ *
+ * Authors:
+ *    Wang Zhenyu <zhenyu.z.wang at intel.com>
+ *    Keith Packard <keithp at keithp.com>
+ */
+
+/********** Compute w *************/
+
+mul (16)	temp_x<1>F	dst_x<8,8,1>F	dw_dx		{ compr align1 };
+mul (16)	temp_y<1>F	dst_y<8,8,1>F	dw_dy		{ compr align1 };
+add (16)	temp_x<1>F	temp_x<8,8,1>F	temp_y<8,8,1>F	{ compr align1 };
+add (16)	temp_x<1>F	temp_x<8,8,1>F	wo		{ compr align1 };
+send (8) 0	w_0<1>F		temp_x_0<8,8,1>F math inv mlen 1 rlen 1	{ align1 };
+send (8) 0	w_1<1>F		temp_x_1<8,8,1>F math inv mlen 1 rlen 1	{ sechalf align1 };
+
+/********** Compute u *************/
+
+mul (16)	temp_x<1>F	dst_x<8,8,1>F	du_dx		{ compr align1 };
+mul (16)	temp_y<1>F	dst_y<8,8,1>F	du_dy		{ compr align1 };
+add (16)	temp_x<1>F	temp_x<8,8,1>F	temp_y<8,8,1>F	{ compr align1 };
+add (16)	temp_x<1>F	temp_x<8,8,1>F	uo		{ compr align1 };
+mul (16)	u<1>F		temp_x<8,8,1>F	w<8,8,1>F	{ compr align1 };
+
+/********** Compute v *************/
+
+mul (16)	temp_x<1>F	dst_x<8,8,1>F	dv_dx		{ compr align1 };
+mul (16)	temp_y<1>F	dst_y<8,8,1>F	dv_dy		{ compr align1 };
+add (16)	temp_x<1>F	temp_x<8,8,1>F	temp_y<8,8,1>F	{ compr align1 };
+add (16)	temp_x<1>F	temp_x<8,8,1>F	vo		{ compr align1 };
+mul (16)	v<1>F		temp_x<8,8,1>F	w<8,8,1>F	{ compr align1 };
diff --git a/src/render_program/exa_wm_src_affine.g4a b/src/render_program/exa_wm_src_affine.g4a
new file mode 100644
index 0000000..3194b5a
--- /dev/null
+++ b/src/render_program/exa_wm_src_affine.g4a
@@ -0,0 +1,45 @@
+/*
+ * Copyright © 2006 Intel Corporation
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice (including the next
+ * paragraph) shall be included in all copies or substantial portions of the
+ * Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
+ * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+ * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
+ * IN THE SOFTWARE.
+ *
+ * Authors:
+ *    Wang Zhenyu <zhenyu.z.wang at intel.com>
+ *    Keith Packard <keithp at keithp.com>
+ */
+
+/*
+ * Fragment to compute src u/v values under an affine transform
+ */
+
+include(`exa_wm.g4i')
+
+define(`du_dx',	`src_du_dx')
+define(`du_dy',	`src_du_dy')
+define(`uo',	`src_uo')
+
+define(`dv_dx',	`src_dv_dx')
+define(`dv_dy',	`src_dv_dy')
+define(`vo',	`src_vo')
+
+define(`u',	`src_u')
+define(`v',	`src_v')
+
+include(`exa_wm_affine.g4i')
diff --git a/src/render_program/exa_wm_src_affine.g4b b/src/render_program/exa_wm_src_affine.g4b
new file mode 100644
index 0000000..d30da87
--- /dev/null
+++ b/src/render_program/exa_wm_src_affine.g4b
@@ -0,0 +1,8 @@
+   { 0x00802041, 0x23c077bd, 0x008d0100, 0x00000060 },
+   { 0x00802041, 0x238077bd, 0x008d0140, 0x00000064 },
+   { 0x00802040, 0x23c077bd, 0x008d03c0, 0x008d0380 },
+   { 0x00802040, 0x204077be, 0x008d03c0, 0x0000006c },
+   { 0x00802041, 0x23c077bd, 0x008d0100, 0x00000070 },
+   { 0x00802041, 0x238077bd, 0x008d0140, 0x00000074 },
+   { 0x00802040, 0x23c077bd, 0x008d03c0, 0x008d0380 },
+   { 0x00802040, 0x208077be, 0x008d03c0, 0x0000007c },
diff --git a/src/render_program/exa_wm_src_projective.g4a b/src/render_program/exa_wm_src_projective.g4a
new file mode 100644
index 0000000..16c9cd5
--- /dev/null
+++ b/src/render_program/exa_wm_src_projective.g4a
@@ -0,0 +1,49 @@
+/*
+ * Copyright © 2006 Intel Corporation
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice (including the next
+ * paragraph) shall be included in all copies or substantial portions of the
+ * Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
+ * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+ * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
+ * IN THE SOFTWARE.
+ *
+ * Authors:
+ *    Wang Zhenyu <zhenyu.z.wang at intel.com>
+ *    Keith Packard <keithp at keithp.com>
+ */
+
+
+include(`exa_wm.g4i')
+define(`du_dx',	`src_du_dx')
+define(`du_dy',	`src_du_dy')
+define(`uo',	`src_uo')
+define(`dv_dx',	`src_dv_dx')
+define(`dv_dy',	`src_dv_dy')
+define(`vo',	`src_vo')
+define(`dw_dx',	`src_dw_dx')
+define(`dw_dy',	`src_dw_dy')
+define(`wo',	`src_wo')
+define(`u',	`src_u')
+define(`v',	`src_v')
+define(`w',	`src_w')
+define(`u_0',	`src_u_0')
+define(`v_0',	`src_v_0')
+define(`u_1',	`src_u_1')
+define(`v_1',	`src_v_1')
+define(`w_0',	`src_w_0')
+define(`w_1',	`src_w_1')
+
+include(`exa_wm_projective.g4i')
diff --git a/src/render_program/exa_wm_src_projective.g4b b/src/render_program/exa_wm_src_projective.g4b
new file mode 100644
index 0000000..198bab3
--- /dev/null
+++ b/src/render_program/exa_wm_src_projective.g4b
@@ -0,0 +1,16 @@
+   { 0x00802041, 0x23c077bd, 0x008d0100, 0x00000080 },
+   { 0x00802041, 0x238077bd, 0x008d0140, 0x00000084 },
+   { 0x00802040, 0x23c077bd, 0x008d03c0, 0x008d0380 },
+   { 0x00802040, 0x23c077bd, 0x008d03c0, 0x0000008c },
+   { 0x00600031, 0x21801fbd, 0x008d03c0, 0x01110001 },
+   { 0x00600031, 0x21a01fbd, 0x008d03e0, 0x01110001 },
+   { 0x00802041, 0x23c077bd, 0x008d0100, 0x00000060 },
+   { 0x00802041, 0x238077bd, 0x008d0140, 0x00000064 },
+   { 0x00802040, 0x23c077bd, 0x008d03c0, 0x008d0380 },
+   { 0x00802040, 0x23c077bd, 0x008d03c0, 0x0000006c },
+   { 0x00802041, 0x204077be, 0x008d03c0, 0x008d0180 },
+   { 0x00802041, 0x23c077bd, 0x008d0100, 0x00000070 },
+   { 0x00802041, 0x238077bd, 0x008d0140, 0x00000074 },
+   { 0x00802040, 0x23c077bd, 0x008d03c0, 0x008d0380 },
+   { 0x00802040, 0x23c077bd, 0x008d03c0, 0x0000007c },
+   { 0x00802041, 0x208077be, 0x008d03c0, 0x008d0180 },
diff --git a/src/render_program/exa_wm_src_sample_a.g4a b/src/render_program/exa_wm_src_sample_a.g4a
new file mode 100644
index 0000000..552aaee
--- /dev/null
+++ b/src/render_program/exa_wm_src_sample_a.g4a
@@ -0,0 +1,47 @@
+/*
+ * Copyright © 2006 Intel Corporation
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice (including the next
+ * paragraph) shall be included in all copies or substantial portions of the
+ * Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
+ * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+ * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
+ * IN THE SOFTWARE.
+ *
+ * Authors:
+ *    Wang Zhenyu <zhenyu.z.wang at intel.com>
+ *    Keith Packard <keithp at keithp.com>
+ */
+
+/* Sample the src surface */
+
+include(`exa_wm.g4i')
+
+/* prepare sampler read back gX register, which would be written back to output */
+
+/* use simd16 sampler, param 0 is u, param 1 is v. */
+/* 'payload' loading, assuming tex coord start from g4 */
+
+/* load alpha */
+mov (1) g0.8<1>UD	0x00007000UD { align1 mask_disable };
+
+/* src_msg will be copied with g0, as it contains send desc */
+/* emit sampler 'send' cmd */
+send (16) src_msg_ind		/* msg reg index */
+	src_sample_a_01<1>UW 	/* readback */
+	g0<8,8,1>UW		/* copy to msg start reg*/
+	sampler (1,0,F)		/* sampler message description, (binding_table,sampler_index,datatype)
+				/* here(src->dst) we should use src_sampler and src_surface */
+	mlen 5 rlen 2 { align1 };   /* required message len 5, readback len 8 */
diff --git a/src/render_program/exa_wm_src_sample_a.g4b b/src/render_program/exa_wm_src_sample_a.g4b
new file mode 100644
index 0000000..ce8650a
--- /dev/null
+++ b/src/render_program/exa_wm_src_sample_a.g4b
@@ -0,0 +1,2 @@
+   { 0x00000201, 0x20080061, 0x00000000, 0x00007000 },
+   { 0x01800031, 0x22801d29, 0x008d0000, 0x02520001 },
diff --git a/src/render_program/exa_wm_src_sample_argb.g4a b/src/render_program/exa_wm_src_sample_argb.g4a
new file mode 100644
index 0000000..c20f53f
--- /dev/null
+++ b/src/render_program/exa_wm_src_sample_argb.g4a
@@ -0,0 +1,47 @@
+/*
+ * Copyright © 2006 Intel Corporation
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice (including the next
+ * paragraph) shall be included in all copies or substantial portions of the
+ * Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
+ * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+ * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
+ * IN THE SOFTWARE.
+ *
+ * Authors:
+ *    Wang Zhenyu <zhenyu.z.wang at intel.com>
+ *    Keith Packard <keithp at keithp.com>
+ */
+
+/* Sample the src surface */
+
+include(`exa_wm.g4i')
+
+/* prepare sampler read back gX register, which would be written back to output */
+
+/* use simd16 sampler, param 0 is u, param 1 is v. */
+/* 'payload' loading, assuming tex coord start from g4 */
+
+/* load argb */
+mov (1) g0.8<1>UD	0x00000000UD { align1 mask_disable };
+
+/* src_msg will be copied with g0, as it contains send desc */
+/* emit sampler 'send' cmd */
+send (16) src_msg_ind		/* msg reg index */
+	src_sample_base<1>UW 	/* readback */
+	g0<8,8,1>UW		/* copy to msg start reg*/
+	sampler (1,0,F)		/* sampler message description, (binding_table,sampler_index,datatype)
+				/* here(src->dst) we should use src_sampler and src_surface */
+	mlen 5 rlen 8 { align1 };   /* required message len 5, readback len 8 */
diff --git a/src/render_program/exa_wm_src_sample_argb.g4b b/src/render_program/exa_wm_src_sample_argb.g4b
new file mode 100644
index 0000000..c5b9274
--- /dev/null
+++ b/src/render_program/exa_wm_src_sample_argb.g4b
@@ -0,0 +1,2 @@
+   { 0x00000201, 0x20080061, 0x00000000, 0x00000000 },
+   { 0x01800031, 0x21c01d29, 0x008d0000, 0x02580001 },
diff --git a/src/render_program/exa_wm_src_sample_planar.g4a b/src/render_program/exa_wm_src_sample_planar.g4a
new file mode 100644
index 0000000..ca77b48
--- /dev/null
+++ b/src/render_program/exa_wm_src_sample_planar.g4a
@@ -0,0 +1,65 @@
+/*
+ * Copyright © 2006 Intel Corporation
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice (including the next
+ * paragraph) shall be included in all copies or substantial portions of the
+ * Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
+ * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+ * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
+ * IN THE SOFTWARE.
+ *
+ * Authors:
+ *    Wang Zhenyu <zhenyu.z.wang at intel.com>
+ *    Keith Packard <keithp at keithp.com>
+ */
+
+/* Sample the src surface in planar format */
+
+include(`exa_wm.g4i')
+
+/* prepare sampler read back gX register, which would be written back to output */
+
+/* use simd16 sampler, param 0 is u, param 1 is v. */
+/* 'payload' loading, assuming tex coord start from g4 */
+
+/* load r */
+mov (1) g0.8<1>UD	0x0000e000UD { align1 mask_disable };
+
+/* src_msg will be copied with g0, as it contains send desc */
+/* emit sampler 'send' cmd */
+
+/* sample Y */
+send (16) src_msg_ind		/* msg reg index */
+	src_sample_g<1>UW 	/* readback */
+	g0<8,8,1>UW		/* copy to msg start reg*/
+	sampler (1,0,F)		/* sampler message description, (binding_table,sampler_index,datatype)
+				/* here(src->dst) we should use src_sampler and src_surface */
+	mlen 5 rlen 2 { align1 };   /* required message len 5, readback len 8 */
+	
+/* sample U (Cr) */
+send (16) src_msg_ind		/* msg reg index */
+	src_sample_r<1>UW 	/* readback */
+	g0<8,8,1>UW		/* copy to msg start reg*/
+	sampler (3,2,F)		/* sampler message description, (binding_table,sampler_index,datatype)
+				/* here(src->dst) we should use src_sampler and src_surface */
+	mlen 5 rlen 2 { align1 };   /* required message len 5, readback len 8 */
+	
+/* sample V (Cb) */
+send (16) src_msg_ind		/* msg reg index */
+	src_sample_b<1>UW 	/* readback */
+	g0<8,8,1>UW		/* copy to msg start reg*/
+	sampler (5,4,F)		/* sampler message description, (binding_table,sampler_index,datatype)
+				/* here(src->dst) we should use src_sampler and src_surface */
+	mlen 5 rlen 2 { align1 };   /* required message len 5, readback len 8 */
diff --git a/src/render_program/exa_wm_src_sample_planar.g4b b/src/render_program/exa_wm_src_sample_planar.g4b
new file mode 100644
index 0000000..77a5c23
--- /dev/null
+++ b/src/render_program/exa_wm_src_sample_planar.g4b
@@ -0,0 +1,4 @@
+   { 0x00000201, 0x20080061, 0x00000000, 0x0000e000 },
+   { 0x01800031, 0x22001d29, 0x008d0000, 0x02520001 },
+   { 0x01800031, 0x21c01d29, 0x008d0000, 0x02520203 },
+   { 0x01800031, 0x22401d29, 0x008d0000, 0x02520405 },
diff --git a/src/render_program/exa_wm_write.g4a b/src/render_program/exa_wm_write.g4a
new file mode 100644
index 0000000..faee80b
--- /dev/null
+++ b/src/render_program/exa_wm_write.g4a
@@ -0,0 +1,74 @@
+/*
+ * Copyright © 2006 Intel Corporation
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice (including the next
+ * paragraph) shall be included in all copies or substantial portions of the
+ * Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
+ * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+ * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
+ * IN THE SOFTWARE.
+ *
+ * Authors:
+ *    Wang Zhenyu <zhenyu.z.wang at intel.com>
+ *    Keith Packard <keithp at keithp.com>
+ */
+
+include(`exa_wm.g4i')
+
+/*
+ * Prepare data in m2-m5 for subspan(1,0), m6-m9 for subspan(3,2),
+ *
+ * Note that the SIMD16 write message takes data for the first
+ * two sub-spans followed by the data for the second two sub-spans
+ * instead of having the two sub-spans interleaved by channel. Weird.
+ */
+
+mov (8) data_port_r_01<1>F	src_sample_r_01<8,8,1>F { align1 };
+mov (8) data_port_g_01<1>F	src_sample_g_01<8,8,1>F { align1 };
+mov (8) data_port_b_01<1>F	src_sample_b_01<8,8,1>F { align1 };
+mov (8) data_port_a_01<1>F	src_sample_a_01<8,8,1>F { align1 };
+
+mov (8) data_port_r_23<1>F	src_sample_r_23<8,8,1>F { sechalf align1 };
+mov (8) data_port_g_23<1>F	src_sample_g_23<8,8,1>F { sechalf align1 };
+mov (8) data_port_b_23<1>F	src_sample_b_23<8,8,1>F { sechalf align1 };
+mov (8) data_port_a_23<1>F 	src_sample_a_23<8,8,1>F { sechalf align1 };
+
+/* m0, m1 are all direct passed by PS thread payload */
+mov (8) data_port_msg_1<1>UD	g1<8,8,1>UD		{ mask_disable align1 };
+
+/* write */
+send (16) 
+	data_port_msg_0_ind 
+	acc0<1>UW 
+	g0<8,8,1>UW 
+	write (
+	       0,  /* binding_table */
+	       8,  /* pixel scordboard clear, msg type simd16 single source */
+	       4,  /* render target write */
+	       0   /* no write commit message */
+	) 
+	mlen 10
+	rlen 0
+	{ align1 EOT };
+
+nop;
+nop;
+nop;
+nop;
+nop;
+nop;
+nop;
+nop;
+
diff --git a/src/render_program/exa_wm_write.g4b b/src/render_program/exa_wm_write.g4b
new file mode 100644
index 0000000..92e7b24
--- /dev/null
+++ b/src/render_program/exa_wm_write.g4b
@@ -0,0 +1,18 @@
+   { 0x00600001, 0x204003be, 0x008d01c0, 0x00000000 },
+   { 0x00600001, 0x206003be, 0x008d0200, 0x00000000 },
+   { 0x00600001, 0x208003be, 0x008d0240, 0x00000000 },
+   { 0x00600001, 0x20a003be, 0x008d0280, 0x00000000 },
+   { 0x00601001, 0x20c003be, 0x008d01e0, 0x00000000 },
+   { 0x00601001, 0x20e003be, 0x008d0220, 0x00000000 },
+   { 0x00601001, 0x210003be, 0x008d0260, 0x00000000 },
+   { 0x00601001, 0x212003be, 0x008d02a0, 0x00000000 },
+   { 0x00600201, 0x20200022, 0x008d0020, 0x00000000 },
+   { 0x00800031, 0x24001d28, 0x008d0000, 0x85a04800 },
+   { 0x0000007e, 0x00000000, 0x00000000, 0x00000000 },
+   { 0x0000007e, 0x00000000, 0x00000000, 0x00000000 },
+   { 0x0000007e, 0x00000000, 0x00000000, 0x00000000 },
+   { 0x0000007e, 0x00000000, 0x00000000, 0x00000000 },
+   { 0x0000007e, 0x00000000, 0x00000000, 0x00000000 },
+   { 0x0000007e, 0x00000000, 0x00000000, 0x00000000 },
+   { 0x0000007e, 0x00000000, 0x00000000, 0x00000000 },
+   { 0x0000007e, 0x00000000, 0x00000000, 0x00000000 },
diff --git a/src/render_program/exa_wm_xy.g4a b/src/render_program/exa_wm_xy.g4a
new file mode 100644
index 0000000..e99f5ac
--- /dev/null
+++ b/src/render_program/exa_wm_xy.g4a
@@ -0,0 +1,52 @@
+/*
+ * Copyright © 2006 Intel Corporation
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice (including the next
+ * paragraph) shall be included in all copies or substantial portions of the
+ * Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
+ * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+ * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
+ * IN THE SOFTWARE.
+ *
+ * Authors:
+ *    Wang Zhenyu <zhenyu.z.wang at intel.com>
+ *    Keith Packard <keithp at keithp.com>
+ */
+ 
+/*
+ * Register assignments:
+ *
+ *  x		    g6/g7
+ *  y		    g8/g9
+ *
+ *  temp x	    g10/g11
+ *  temp y	    g12/g13
+ *
+ *  src w	    g14/g15
+ *  src u	    m1/m2
+ *  src v	    m3/m4
+ */
+ 
+/* Fragment to compute per-pixel XY values */
+
+include(`exa_wm.g4i')
+    
+    /* Load X and Y coordinates and compute per-pixel coordinates */
+add (16)	temp_x_uw<1>UW	dst_x_uw		0x10101010V	{ align1 };
+add (16)	temp_y_uw<1>UW	dst_y_uw		0x11001100V	{ align1 };
+
+    /* subtract screen-space origin of vertex 0 */
+add (16)	dst_x<1>F	temp_x_uw<8,8,1>UW	-screen_x0	{ compr align1 };
+add (16)	dst_y<1>F	temp_y_uw<8,8,1>UW	-screen_y0	{ compr align1 };
diff --git a/src/render_program/exa_wm_xy.g4b b/src/render_program/exa_wm_xy.g4b
new file mode 100644
index 0000000..327fc29
--- /dev/null
+++ b/src/render_program/exa_wm_xy.g4b
@@ -0,0 +1,4 @@
+   { 0x00800040, 0x23c06d29, 0x00480028, 0x10101010 },
+   { 0x00800040, 0x23806d29, 0x0048002a, 0x11001100 },
+   { 0x00802040, 0x2100753d, 0x008d03c0, 0x00004020 },
+   { 0x00802040, 0x2140753d, 0x008d0380, 0x00004024 },
diff --git a/src/render_program/exa_wm_yuv_rgb.g4a b/src/render_program/exa_wm_yuv_rgb.g4a
new file mode 100644
index 0000000..4fb2576
--- /dev/null
+++ b/src/render_program/exa_wm_yuv_rgb.g4a
@@ -0,0 +1,98 @@
+/*
+ * Copyright © 2006 Intel Corporation
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice (including the next
+ * paragraph) shall be included in all copies or substantial portions of the
+ * Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
+ * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+ * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
+ * IN THE SOFTWARE.
+ *
+ * Authors:
+ *    Keith Packard <keithp at keithp.com>
+ *    Eric Anholt <eric at anholt.net>
+ *
+ */
+
+include(`exa_wm.g4i')
+
+define(`YCbCr_base',	`src_sample_base')
+
+define(`Cr',		`src_sample_r')
+define(`Cr_01',		`src_sample_r_01')
+define(`Cr_23',		`src_sample_r_23')
+
+define(`Y',		`src_sample_g')
+define(`Y_01',		`src_sample_g_01')
+define(`Y_23',		`src_sample_g_23')
+
+define(`Cb',		`src_sample_b')
+define(`Cb_01',		`src_sample_b_01')
+define(`Cb_23',		`src_sample_b_23')
+
+define(`Crn',		`mask_sample_r')
+define(`Crn_01',	`mask_sample_r_01')
+define(`Crn_23',	`mask_sample_r_23')
+
+define(`Yn',		`mask_sample_g')
+define(`Yn_01',		`mask_sample_g_01')
+define(`Yn_23',		`mask_sample_g_23')
+
+define(`Cbn',		`mask_sample_b')
+define(`Cbn_01',	`mask_sample_b_01')
+define(`Cbn_23',	`mask_sample_b_23')
+
+    /* color space conversion function:
+     * R = Clamp ( 1.164(Y-16/255) + 1.596(Cr-128/255), 0, 1)
+     * G = Clamp ( 1.164(Y-16/255) - 0.813(Cr-128/255) - 0.392(Cb-128/255), 0, 1)
+     * B = Clamp ( 1.164(Y-16/255) + 2.017(Cb-128/255), 0, 1)
+     */
+
+    /* Normalize Y, Cb and Cr:
+     *
+     * Yn = (Y - 16/255) * 1.164
+     * Crn = Cr - 128 / 255
+     * Cbn = Cb - 128 / 255
+     */
+add (16)    Yn<1>F		Y<8,8,1>F	-0.0627451F { compr align1 };
+mul (16)    Yn<1>F		Yn<8,8,1>F	1.164F	    { compr align1 };
+
+add (16)    Crn<1>F		Cr<8,8,1>F	-0.501961F  { compr align1 };
+
+add (16)    Cbn<1>F		Cb<8,8,1>F	-0.501961F  { compr align1 };
+
+    /* 
+     * R = Y + Cr * 1.596
+     */
+mov (16)    acc0<1>F		Yn<8,8,1>F		    { compr align1 };
+mac.sat(16) src_sample_r<1>F	Crn<8,8,1>F	1.596F	    { compr align1 };
+     
+    /*
+     * G = Crn * -0.813 + Cbn * -0.392 + Y
+     */
+mov (16)    acc0<1>F		Yn<8,8,1>F		    { compr align1 };
+mac (16)    acc0<1>F		Crn<8,8,1>F    	-0.813F	    { compr align1 };
+mac.sat(16) src_sample_g<1>F	Cbn<8,8,1>F    	-0.392F	    { compr align1 };
+
+    /*
+     * B = Cbn * 2.017 + Y
+     */
+mov (16)    acc0<1>F	        Yn<8,8,1>F		    { compr align1 };
+mac.sat(16) src_sample_b<1>F	Cbn<8,8,1>F     2.017F	    { compr align1 };
+
+    /*
+     * A = 1.0
+     */
+mov (16)    src_sample_a<1>F	1.0F			    { compr align1 };
diff --git a/src/render_program/exa_wm_yuv_rgb.g4b b/src/render_program/exa_wm_yuv_rgb.g4b
new file mode 100644
index 0000000..01f6e2b
--- /dev/null
+++ b/src/render_program/exa_wm_yuv_rgb.g4b
@@ -0,0 +1,12 @@
+   { 0x00802040, 0x23007fbd, 0x008d0200, 0xbd808081 },
+   { 0x00802041, 0x23007fbd, 0x008d0300, 0x3f94fdf4 },
+   { 0x00802040, 0x22c07fbd, 0x008d01c0, 0xbf008084 },
+   { 0x00802040, 0x23407fbd, 0x008d0240, 0xbf008084 },
+   { 0x00802001, 0x240003bc, 0x008d0300, 0x00000000 },
+   { 0x80802048, 0x21c07fbd, 0x008d02c0, 0x3fcc49ba },
+   { 0x00802001, 0x240003bc, 0x008d0300, 0x00000000 },
+   { 0x00802048, 0x24007fbc, 0x008d02c0, 0xbf5020c5 },
+   { 0x80802048, 0x22007fbd, 0x008d0340, 0xbec8b439 },
+   { 0x00802001, 0x240003bc, 0x008d0300, 0x00000000 },
+   { 0x80802048, 0x22407fbd, 0x008d0340, 0x40011687 },
+   { 0x00802001, 0x228003fd, 0x00000000, 0x3f800000 },
diff --git a/src/render_program/packed_yuv_sf.g4a b/src/render_program/packed_yuv_sf.g4a
new file mode 100644
index 0000000..5a02399
--- /dev/null
+++ b/src/render_program/packed_yuv_sf.g4a
@@ -0,0 +1,45 @@
+/*
+ * Copyright © 2006 Intel Corporation
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice (including the next
+ * paragraph) shall be included in all copies or substantial portions of the
+ * Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
+ * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+ * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
+ * IN THE SOFTWARE.
+ *
+ * Authors:
+ *    Keith Packard <keithp at keithp.com>
+ *    Eric Anholt <eric at anholt.net>
+ *
+ */
+
+send (1) 0 g6<1>F g1.12<0,1,0>F math inv scalar mlen 1 rlen 1 { align1 };
+send (1) 0 g6.4<1>F g1.20<0,1,0>F math inv scalar mlen 1 rlen 1 { align1 };
+add (8) g7<1>F g4<8,8,1>F -g3<8,8,1>F { align1 };
+mul (1) g7<1>F g7<0,1,0>F g6<0,1,0>F { align1 };
+mul (1) g7.4<1>F g7.4<0,1,0>F g6.4<0,1,0>F { align1 };
+mov (8) m1<1>F g7<0,1,0>F { align1 };
+mov (8) m2<1>F g7.4<0,1,0>F { align1 };
+mov (8) m3<1>F g3<8,8,1>F { align1 };
+send (8) 0 null g0<8,8,1>F urb 0 transpose used complete mlen 4 rlen 0 { align1 EOT };
+nop;
+nop;
+nop;
+nop;
+nop;
+nop;
+nop;
+nop;
diff --git a/src/render_program/packed_yuv_sf.g4b b/src/render_program/packed_yuv_sf.g4b
new file mode 100644
index 0000000..830d176
--- /dev/null
+++ b/src/render_program/packed_yuv_sf.g4b
@@ -0,0 +1,17 @@
+   { 0x00000031, 0x20c01fbd, 0x0000002c, 0x01110081 },
+   { 0x00000031, 0x20c41fbd, 0x00000034, 0x01110081 },
+   { 0x00600040, 0x20e077bd, 0x008d0080, 0x008d4060 },
+   { 0x00000041, 0x20e077bd, 0x000000e0, 0x000000c0 },
+   { 0x00000041, 0x20e477bd, 0x000000e4, 0x000000c4 },
+   { 0x00600001, 0x202003be, 0x000000e0, 0x00000000 },
+   { 0x00600001, 0x204003be, 0x000000e4, 0x00000000 },
+   { 0x00600001, 0x206003be, 0x008d0060, 0x00000000 },
+   { 0x00600031, 0x20001fbc, 0x008d0000, 0x8640c800 },
+   { 0x0000007e, 0x00000000, 0x00000000, 0x00000000 },
+   { 0x0000007e, 0x00000000, 0x00000000, 0x00000000 },
+   { 0x0000007e, 0x00000000, 0x00000000, 0x00000000 },
+   { 0x0000007e, 0x00000000, 0x00000000, 0x00000000 },
+   { 0x0000007e, 0x00000000, 0x00000000, 0x00000000 },
+   { 0x0000007e, 0x00000000, 0x00000000, 0x00000000 },
+   { 0x0000007e, 0x00000000, 0x00000000, 0x00000000 },
+   { 0x0000007e, 0x00000000, 0x00000000, 0x00000000 },
diff --git a/src/render_program/packed_yuv_wm.g4a b/src/render_program/packed_yuv_wm.g4a
new file mode 100644
index 0000000..2be52b5
--- /dev/null
+++ b/src/render_program/packed_yuv_wm.g4a
@@ -0,0 +1,221 @@
+/*
+ * Copyright © 2006 Intel Corporation
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice (including the next
+ * paragraph) shall be included in all copies or substantial portions of the
+ * Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
+ * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+ * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
+ * IN THE SOFTWARE.
+ *
+ * Authors:
+ *    Keith Packard <keithp at keithp.com>
+ *    Eric Anholt <eric at anholt.net>
+ *
+ */
+
+include(`exa_wm.g4i')
+
+define(`YCbCr_base',	`g12')
+define(`Cr',		`g12')
+define(`Cr_01',		`g12')
+define(`Cr_23',		`g13')
+define(`Y',		`g14')
+define(`Y_01',		`g14')
+define(`Y_23',		`g15')
+define(`Cb',		`g16')
+define(`Cb_01',		`g16')
+define(`Cb_23',		`g17')
+
+/* The initial payload of the thread is always g0.
+ * WM_URB (incoming URB entries) is g3
+ * X0_R is g4
+ * X1_R is g5
+ * Y0_R is g6
+ * Y1_R is g7
+ */
+
+    /* Set up the X/Y screen coordinates of the pixels in our 4 subspans.  Each
+     * subspan is a 2x2 rectangle, and the screen x/y of the upper left of each
+     * subspan are given in GRF register 1.2 through 1.5 (which, with the word
+     * addressing below, are 1.4 through 1.11).
+     *
+     * The result is WM_X*_R and WM_Y*R being:
+     *
+     * X0: {ss0.x, ss0.x+1, ss0.x,   ss0.x+1, ss1.x, ss1.x+1, ss1.x,   ss1.x+y}
+     * Y0: {ss0.y, ss0.y,   ss0.y+1, ss0.y+1, ss1.y, ss1.y,   ss1.y+1, ss1.y+1}
+     * X1: {ss2.x, ss2.x+1, ss2.x,   ss2.x+1, ss3.x, ss3.x+1, ss3.x,   ss3.x+y}
+     * Y1: {ss2.y, ss2.y,   ss2.y+1, ss2.y+1, ss3.y, ss3.y,   ss3.y+1, ss3.y+1}
+     */
+
+    /* Set up ss0.x coordinates*/
+mov (1) g4<1>F g1.8<0,1,0>UW { align1 };
+add (1) g4.4<1>F g1.8<0,1,0>UW 1UD { align1 };
+mov (1) g4.8<1>F g1.8<0,1,0>UW { align1 };
+add (1) g4.12<1>F g1.8<0,1,0>UW 1UD { align1 };
+    /* Set up ss0.y coordinates */
+mov (1) g6<1>F g1.10<0,1,0>UW { align1 };
+mov (1) g6.4<1>F g1.10<0,1,0>UW { align1 };
+add (1) g6.8<1>F g1.10<0,1,0>UW 1UD { align1 };
+add (1) g6.12<1>F g1.10<0,1,0>UW 1UD { align1 };
+    /* set up ss1.x coordinates */
+mov (1) g4.16<1>F g1.12<0,1,0>UW { align1 };
+add (1) g4.20<1>F g1.12<0,1,0>UW 1UD { align1 };
+mov (1) g4.24<1>F g1.12<0,1,0>UW { align1 };
+add (1) g4.28<1>F g1.12<0,1,0>UW 1UD { align1 };
+    /* set up ss1.y coordinates */
+mov (1) g6.16<1>F g1.14<0,1,0>UW { align1 };
+mov (1) g6.20<1>F g1.14<0,1,0>UW { align1 };
+add (1) g6.24<1>F g1.14<0,1,0>UW 1UD { align1 };
+add (1) g6.28<1>F g1.14<0,1,0>UW 1UD { align1 };
+    /* Set up ss2.x coordinates */
+mov (1) g5<1>F g1.16<0,1,0>UW { align1 };
+add (1) g5.4<1>F g1.16<0,1,0>UW 1UD { align1 };
+mov (1) g5.8<1>F g1.16<0,1,0>UW { align1 };
+add (1) g5.12<1>F g1.16<0,1,0>UW 1UD { align1 };
+    /* Set up ss2.y coordinates */
+mov (1) g7<1>F g1.18<0,1,0>UW { align1 };
+mov (1) g7.4<1>F g1.18<0,1,0>UW { align1 };
+add (1) g7.8<1>F g1.18<0,1,0>UW 1UD { align1 };
+add (1) g7.12<1>F g1.18<0,1,0>UW 1UD { align1 };
+    /* Set up ss3.x coordinates */
+mov (1) g5.16<1>F g1.20<0,1,0>UW { align1 };
+add (1) g5.20<1>F g1.20<0,1,0>UW 1UD { align1 };
+mov (1) g5.24<1>F g1.20<0,1,0>UW { align1 };
+add (1) g5.28<1>F g1.20<0,1,0>UW 1UD { align1 };
+    /* Set up ss3.y coordinates */
+mov (1) g7.16<1>F g1.22<0,1,0>UW { align1 };
+mov (1) g7.20<1>F g1.22<0,1,0>UW { align1 };
+add (1) g7.24<1>F g1.22<0,1,0>UW 1UD { align1 };
+add (1) g7.28<1>F g1.22<0,1,0>UW 1UD { align1 };
+
+    /* Now, map these screen space coordinates into texture coordinates. */
+    /* subtract screen-space X origin of vertex 0. */
+add (8) g4<1>F g4<8,8,1>F -g1<0,1,0>F { align1 };
+add (8) g5<1>F g5<8,8,1>F -g1<0,1,0>F { align1 };
+    /* scale by texture X increment */
+mul (8) g4<1>F g4<8,8,1>F g3<0,1,0>F { align1 };
+mul (8) g5<1>F g5<8,8,1>F g3<0,1,0>F { align1 };
+    /* add in texture X offset */
+add (8) g4<1>F g4<8,8,1>F g3.12<0,1,0>F { align1 };
+add (8) g5<1>F g5<8,8,1>F g3.12<0,1,0>F { align1 };
+    /* subtract screen-space Y origin of vertex 0. */
+add (8) g6<1>F g6<8,8,1>F -g1.4<0,1,0>F { align1 };
+add (8) g7<1>F g7<8,8,1>F -g1.4<0,1,0>F { align1 };
+    /* scale by texture Y increment */
+mul (8) g6<1>F g6<8,8,1>F g3.20<0,1,0>F { align1 };
+mul (8) g7<1>F g7<8,8,1>F g3.20<0,1,0>F { align1 };
+    /* add in texture Y offset */
+add (8) g6<1>F g6<8,8,1>F g3.28<0,1,0>F { align1 };
+add (8) g7<1>F g7<8,8,1>F g3.28<0,1,0>F { align1 };
+    /* sampler  */
+mov (8) m1<1>F g4<8,8,1>F { align1 };
+mov (8) m2<1>F g5<8,8,1>F { align1 };
+mov (8) m3<1>F g6<8,8,1>F { align1 };
+mov (8) m4<1>F g7<8,8,1>F { align1 };
+
+    /*
+     * g0 holds the PS thread payload, which (oddly) contains
+     * precisely what the sampler wants to see in m0
+     */
+send  (16)
+    0	/* load g0 to m0 */
+    YCbCr_base<1>UW
+    g0<8,8,1>UW 
+    sampler (1,0,F)
+    mlen 5 rlen 8 { align1 };
+
+    /* color space conversion function:
+     * R = Clamp ( 1.164(Y-16/255) + 1.596(Cr-128/255), 0, 1)
+     * G = Clamp ( 1.164(Y-16/255) - 0.813(Cr-128/255) - 0.392(Cb-128/255), 0, 1)
+     * B = Clamp ( 1.164(Y-16/255) + 2.017(Cb-128/255), 0, 1)
+     *
+     * Y is g14, g15.
+     * Cr is g12, g13.
+     * Cb is g16, g17.
+     *
+     * R is g2, g6.
+     * G is g3, g7.
+     * B is g4, g8.
+     */
+
+    /* Normalize Y, Cb and Cr:
+     *
+     * Y = (Y - 16/255) * 1.164
+     * Cr = Cr - 128 / 255
+     * Cb = Cb - 128 / 255
+     */
+add (16)    Y<1>F		Y<8,8,1>F	-0.0627451F { compr align1 };
+mul (16)    Y<1>F		Y<8,8,1>F	1.164F	    { compr align1 };
+
+add (16)    Cr<1>F		Cr<8,8,1>F	-0.501961F  { compr align1 };
+
+add (16)    Cb<1>F		Cb<8,8,1>F	-0.501961F  { compr align1 };
+
+    /* 
+     * R = Y + Cr * 1.596
+     */
+mul (8)	    null		Cr_01<8,8,1>F	1.596F	    { align1 };
+mac.sat (8) data_port_r_01<1>F	Y_01<8,8,1>F	1F	    { align1  };
+mul (8)     null		Cr_23<8,8,1>F	1.596F	    { align1 };
+mac.sat (8) data_port_r_23<1>F	Y_23<8,8,1>F	1F	    { align1  };
+     
+    /*
+     * G = Cr * -0.813 + Cb * -0.392 + Y
+     */
+mul (8)	    null		Cr_01<8,8,1>F	-0.813F	    { align1 };
+mac (8)	    null		Cb_01<8,8,1>F	-0.392F	    { align1 };
+mac.sat (8) data_port_g_01<1>F	Y_01<8,8,1>F	1F	    { align1 };
+mul (8)	    null		Cr_23<8,8,1>F	-0.813F	    { align1 };
+mac (8)	    null		Cb_23<8,8,1>F	-0.392F	    { align1 };
+mac.sat (8) data_port_g_23<1>F	Y_23<8,8,1>F	1F	    { align1 };
+
+    /*
+     * B = Cb * 2.017 + Y
+     */
+mul (8)	    null		Cb_01<8,8,1>F	2.017F	    { align1 };
+mac.sat (8) data_port_b_01<1>F	Y_01<8,8,1>F	1F	    { align1 };
+mul (8)	    null		Cb_23<8,8,1>F	2.017F	    { align1 };
+mac.sat (8) data_port_b_23<1>F	Y_23<8,8,1>F	1F	    { align1 };
+
+    /*
+     * A = 1.0
+     */
+mov (8)	    data_port_a_01<1>F	1.0F			    { align1 };
+mov (8)	    data_port_a_23<1>F	1.0F			    { align1 };
+
+   /*
+    * Pass through control information:
+    */
+mov (8)	    m1<1>UD		g1<8,8,1>UD		    { align1 mask_disable };
+
+   /*
+    * Send framebuffer write message: XXX: acc0?
+    */
+send (16) 0 acc0<1>UW g0<8,8,1>UW write (
+	0, /* binding table index 0 */
+	8, /* pixel scoreboard clear */
+	4, /* render target write */
+	0 /* no write commit message */
+	) mlen 10 rlen 0 { align1 EOT };
+   /* padding */
+nop;
+nop;
+nop;
+nop;
+nop;
+nop;
+nop;
+nop;
diff --git a/src/render_program/packed_yuv_wm.g4b b/src/render_program/packed_yuv_wm.g4b
new file mode 100644
index 0000000..f2e650a
--- /dev/null
+++ b/src/render_program/packed_yuv_wm.g4b
@@ -0,0 +1,79 @@
+   { 0x00000001, 0x2080013d, 0x00000028, 0x00000000 },
+   { 0x00000040, 0x20840d3d, 0x00000028, 0x00000001 },
+   { 0x00000001, 0x2088013d, 0x00000028, 0x00000000 },
+   { 0x00000040, 0x208c0d3d, 0x00000028, 0x00000001 },
+   { 0x00000001, 0x20c0013d, 0x0000002a, 0x00000000 },
+   { 0x00000001, 0x20c4013d, 0x0000002a, 0x00000000 },
+   { 0x00000040, 0x20c80d3d, 0x0000002a, 0x00000001 },
+   { 0x00000040, 0x20cc0d3d, 0x0000002a, 0x00000001 },
+   { 0x00000001, 0x2090013d, 0x0000002c, 0x00000000 },
+   { 0x00000040, 0x20940d3d, 0x0000002c, 0x00000001 },
+   { 0x00000001, 0x2098013d, 0x0000002c, 0x00000000 },
+   { 0x00000040, 0x209c0d3d, 0x0000002c, 0x00000001 },
+   { 0x00000001, 0x20d0013d, 0x0000002e, 0x00000000 },
+   { 0x00000001, 0x20d4013d, 0x0000002e, 0x00000000 },
+   { 0x00000040, 0x20d80d3d, 0x0000002e, 0x00000001 },
+   { 0x00000040, 0x20dc0d3d, 0x0000002e, 0x00000001 },
+   { 0x00000001, 0x20a0013d, 0x00000030, 0x00000000 },
+   { 0x00000040, 0x20a40d3d, 0x00000030, 0x00000001 },
+   { 0x00000001, 0x20a8013d, 0x00000030, 0x00000000 },
+   { 0x00000040, 0x20ac0d3d, 0x00000030, 0x00000001 },
+   { 0x00000001, 0x20e0013d, 0x00000032, 0x00000000 },
+   { 0x00000001, 0x20e4013d, 0x00000032, 0x00000000 },
+   { 0x00000040, 0x20e80d3d, 0x00000032, 0x00000001 },
+   { 0x00000040, 0x20ec0d3d, 0x00000032, 0x00000001 },
+   { 0x00000001, 0x20b0013d, 0x00000034, 0x00000000 },
+   { 0x00000040, 0x20b40d3d, 0x00000034, 0x00000001 },
+   { 0x00000001, 0x20b8013d, 0x00000034, 0x00000000 },
+   { 0x00000040, 0x20bc0d3d, 0x00000034, 0x00000001 },
+   { 0x00000001, 0x20f0013d, 0x00000036, 0x00000000 },
+   { 0x00000001, 0x20f4013d, 0x00000036, 0x00000000 },
+   { 0x00000040, 0x20f80d3d, 0x00000036, 0x00000001 },
+   { 0x00000040, 0x20fc0d3d, 0x00000036, 0x00000001 },
+   { 0x00600040, 0x208077bd, 0x008d0080, 0x00004020 },
+   { 0x00600040, 0x20a077bd, 0x008d00a0, 0x00004020 },
+   { 0x00600041, 0x208077bd, 0x008d0080, 0x00000060 },
+   { 0x00600041, 0x20a077bd, 0x008d00a0, 0x00000060 },
+   { 0x00600040, 0x208077bd, 0x008d0080, 0x0000006c },
+   { 0x00600040, 0x20a077bd, 0x008d00a0, 0x0000006c },
+   { 0x00600040, 0x20c077bd, 0x008d00c0, 0x00004024 },
+   { 0x00600040, 0x20e077bd, 0x008d00e0, 0x00004024 },
+   { 0x00600041, 0x20c077bd, 0x008d00c0, 0x00000074 },
+   { 0x00600041, 0x20e077bd, 0x008d00e0, 0x00000074 },
+   { 0x00600040, 0x20c077bd, 0x008d00c0, 0x0000007c },
+   { 0x00600040, 0x20e077bd, 0x008d00e0, 0x0000007c },
+   { 0x00600001, 0x202003be, 0x008d0080, 0x00000000 },
+   { 0x00600001, 0x204003be, 0x008d00a0, 0x00000000 },
+   { 0x00600001, 0x206003be, 0x008d00c0, 0x00000000 },
+   { 0x00600001, 0x208003be, 0x008d00e0, 0x00000000 },
+   { 0x00800031, 0x21801d29, 0x008d0000, 0x02580001 },
+   { 0x00802040, 0x21c07fbd, 0x008d01c0, 0xbd808081 },
+   { 0x00802041, 0x21c07fbd, 0x008d01c0, 0x3f94fdf4 },
+   { 0x00802040, 0x21807fbd, 0x008d0180, 0xbf008084 },
+   { 0x00802040, 0x22007fbd, 0x008d0200, 0xbf008084 },
+   { 0x00600041, 0x20007fbc, 0x008d0180, 0x3fcc49ba },
+   { 0x80600048, 0x20407fbe, 0x008d01c0, 0x3f800000 },
+   { 0x00600041, 0x20007fbc, 0x008d01a0, 0x3fcc49ba },
+   { 0x80600048, 0x20c07fbe, 0x008d01e0, 0x3f800000 },
+   { 0x00600041, 0x20007fbc, 0x008d0180, 0xbf5020c5 },
+   { 0x00600048, 0x20007fbc, 0x008d0200, 0xbec8b439 },
+   { 0x80600048, 0x20607fbe, 0x008d01c0, 0x3f800000 },
+   { 0x00600041, 0x20007fbc, 0x008d01a0, 0xbf5020c5 },
+   { 0x00600048, 0x20007fbc, 0x008d0220, 0xbec8b439 },
+   { 0x80600048, 0x20e07fbe, 0x008d01e0, 0x3f800000 },
+   { 0x00600041, 0x20007fbc, 0x008d0200, 0x40011687 },
+   { 0x80600048, 0x20807fbe, 0x008d01c0, 0x3f800000 },
+   { 0x00600041, 0x20007fbc, 0x008d0220, 0x40011687 },
+   { 0x80600048, 0x21007fbe, 0x008d01e0, 0x3f800000 },
+   { 0x00600001, 0x20a003fe, 0x00000000, 0x3f800000 },
+   { 0x00600001, 0x212003fe, 0x00000000, 0x3f800000 },
+   { 0x00600201, 0x20200022, 0x008d0020, 0x00000000 },
+   { 0x00800031, 0x24001d28, 0x008d0000, 0x85a04800 },
+   { 0x0000007e, 0x00000000, 0x00000000, 0x00000000 },
+   { 0x0000007e, 0x00000000, 0x00000000, 0x00000000 },
+   { 0x0000007e, 0x00000000, 0x00000000, 0x00000000 },
+   { 0x0000007e, 0x00000000, 0x00000000, 0x00000000 },
+   { 0x0000007e, 0x00000000, 0x00000000, 0x00000000 },
+   { 0x0000007e, 0x00000000, 0x00000000, 0x00000000 },
+   { 0x0000007e, 0x00000000, 0x00000000, 0x00000000 },
+   { 0x0000007e, 0x00000000, 0x00000000, 0x00000000 },
commit 170cae0c8d58fc141de1d8a2f17a4328d39c1263
Author: Jesse Barnes <jbarnes at virtuousgeek.org>
Date:   Mon Jun 29 12:55:43 2009 -0700

    Only get the VBIOS in non-KMS mode
    
    In KMS mode, the kernel takes care of this for us, so don't bother.

diff --git a/src/i830_driver.c b/src/i830_driver.c
index 23690cf..bd7a32c 100644
--- a/src/i830_driver.c
+++ b/src/i830_driver.c
@@ -1643,14 +1643,13 @@ I830PreInit(ScrnInfoPtr pScrn, int flags)
    if (!i830_detect_chipset(pScrn))
        return FALSE;
 
-   if (i830_bios_init(pScrn))
-       xf86DrvMsg(pScrn->scrnIndex, X_WARNING,
-		  "VBIOS initialization failed.\n");
-
    if (pI830->use_drm_mode) {
        if (!I830DrmModeInit(pScrn))
 	   return FALSE;
    } else {
+       if (i830_bios_init(pScrn))
+	   xf86DrvMsg(pScrn->scrnIndex, X_WARNING,
+		      "VBIOS initialization failed.\n");
       I830PreInitCrtcConfig(pScrn);
       if (!I830AccelMethodInit(pScrn))
          return FALSE;
commit 6511c082459789cf279e7a4528775a1c821ad8cc
Author: Jesse Barnes <jbarnes at virtuousgeek.org>
Date:   Mon Jun 29 12:53:51 2009 -0700

    Output error info if we fail to get DRM resources
    
    Useful for debugging.

diff --git a/src/drmmode_display.c b/src/drmmode_display.c
index 8f45e84..f45d933 100644
--- a/src/drmmode_display.c
+++ b/src/drmmode_display.c
@@ -29,6 +29,8 @@
 #include "config.h"
 #endif
 
+#include <errno.h>
+
 #include "xorgVersion.h"
 
 #include "i830.h"
@@ -1103,8 +1105,11 @@ Bool drmmode_pre_init(ScrnInfoPtr pScrn, int fd, int cpp)
 
 	drmmode->cpp = cpp;
 	drmmode->mode_res = drmModeGetResources(drmmode->fd);
-	if (!drmmode->mode_res)
+	if (!drmmode->mode_res) {
+		xf86DrvMsg(pScrn->scrnIndex, X_ERROR,
+			   "failed to get resources: %s\n", strerror(errno));
 		return FALSE;
+	}
 
 	xf86CrtcSetSizeRange(pScrn, 320, 200, drmmode->mode_res->max_width,
 			     drmmode->mode_res->max_height);
commit 00eb73286c3512a362dce00efdeae740772d0dcd
Author: Jesse Barnes <jbarnes at virtuousgeek.org>
Date:   Mon Jun 29 09:12:28 2009 -0700

    Use swapbuffers_wait control
    
    Commit 1eec83a203c48822400742a1fb184b2cb52c62f7, which added the new
    SwapbuffersWait option, didn't actually include the code which used it.  So
    add a test to DRI2's CopyRegion call, only emitting the scanline wait
    command if the swapbuffers_wait option is set.
    
    Signed-off-by: Jesse Barnes <jbarnes at virtuousgeek.org>

diff --git a/src/i830_dri.c b/src/i830_dri.c
index be09126..7e2d97e 100644
--- a/src/i830_dri.c
+++ b/src/i830_dri.c
@@ -299,7 +299,7 @@ I830DRI2CopyRegion(DrawablePtr pDraw, RegionPtr pRegion,
     ValidateGC(dst, pGC);
 
     /* Wait for the scanline to be outside the region to be copied */
-    if (pixmap_is_scanout(get_drawable_pixmap(dst))) {
+    if (pixmap_is_scanout(get_drawable_pixmap(dst)) && pI830->swapbuffers_wait) {
 	BoxPtr box;
 	BoxRec crtcbox;
 	int y1, y2;
commit f53b3239dbc0ed723774e386e07ac9d8ce96bb89
Author: Zhenyu Wang <zhenyuw at linux.intel.com>
Date:   Thu Jun 25 10:22:23 2009 +0800

    Disable XvMC on 915G/GM in KMS
    
    These chips require physical address for XvMC surface, which
    is not available in KMS case. Instead of crashing X, disable it now.
    
    Signed-off-by: Zhenyu Wang <zhenyuw at linux.intel.com>

diff --git a/src/i830_hwmc.c b/src/i830_hwmc.c
index 75bf2e6..dee17ca 100644
--- a/src/i830_hwmc.c
+++ b/src/i830_hwmc.c
@@ -55,6 +55,10 @@ Bool intel_xvmc_probe(ScrnInfoPtr pScrn)
     if (!pI830->XvMCEnabled)
 	return FALSE;
 
+    if (pI830->use_drm_mode &&
+	    (IS_I915G(pI830) || IS_I915GM(pI830)))
+	return FALSE;
+
     if (IS_I9XX(pI830)) {
 	if (IS_I915(pI830))
 	    ret = intel_xvmc_set_driver(&i915_xvmc_driver);
commit f0270bbb47baed78a0ff6189ae20d3ac322ec02b
Author: Jesse Barnes <jbarnes at virtuousgeek.org>
Date:   Wed Jun 24 14:42:08 2009 -0700

    Fix i830_crtc_on to only check outputs associated with the given CRTC
    
    Otherwise we may end up returning a false positive if some other output & crtc
    are on, but not the one in question, again leading to hangs.
    
    Reported-by: Eric Anholt <eric at anholt.net>
    Signed-off-by: Jesse Barnes <jbarnes at virtuousgeek.org>

diff --git a/src/i830_driver.c b/src/i830_driver.c
index b9b9d0b..23690cf 100644
--- a/src/i830_driver.c
+++ b/src/i830_driver.c
@@ -2468,7 +2468,8 @@ Bool i830_crtc_on(xf86CrtcPtr crtc)
 	/* Kernel manages CRTC status based out output config */
 	for (i = 0; i < xf86_config->num_output; i++) {
 	    xf86OutputPtr output = xf86_config->output[i];
-	    if (drmmode_output_dpms_status(output) == DPMSModeOn)
+	    if (output->crtc == crtc &&
+		drmmode_output_dpms_status(output) == DPMSModeOn)
 		active_outputs++;
 	}
 
commit 5d80e24b5fc6d6028028da6ded35389c08bfce29
Author: Jesse Barnes <jbarnes at virtuousgeek.org>
Date:   Wed Jun 24 13:12:25 2009 -0700

    Treat disabled CRTCs as "not covering" for scanline wait purposes
    
    Now that swapbuffers does a scanline wait to avoid tearing, it's
    important to take into account the CRTC status to avoid hangs.  If we
    do a scanline wait when the CRTC is off (due to DPMS for example) we'll
    hang the GPU.  So add some code to check the CRTC DPMS status to the
    i830_covering_crtc function, returning NULL if none of the covering
    CRTCs are actually active.  KMS vs UMS logic is hidden in new i830*
    functions, cleaning up both DRI2 & video paths a bit.
    
    Fixes fdo bug #22383.
    
    Signed-off-by: Jesse Barnes <jbarnes at virtuousgeek.org>

diff --git a/src/drmmode_display.c b/src/drmmode_display.c
index 02a71ae..8f45e84 100644
--- a/src/drmmode_display.c
+++ b/src/drmmode_display.c
@@ -71,7 +71,7 @@ typedef struct {
     int num_props;
     drmmode_prop_ptr props;
     void *private_data;
-	/* this is used to store private data */
+    int dpms_mode;
 } drmmode_output_private_rec, *drmmode_output_private_ptr;
 
 static void
@@ -727,6 +727,7 @@ drmmode_output_dpms(xf86OutputPtr output, int mode)
                                 drmmode_output->output_id,
                                 props->prop_id,
                                 mode);
+			drmmode_output->dpms_mode = mode;
                         drmModeFreeProperty(props);
                         return;
 		}
@@ -734,6 +735,14 @@ drmmode_output_dpms(xf86OutputPtr output, int mode)
 	}
 }
 
+int
+drmmode_output_dpms_status(xf86OutputPtr output)
+{
+	drmmode_output_private_ptr drmmode_output = output->driver_private;
+
+	return drmmode_output->dpms_mode;
+}
+
 static Bool
 drmmode_property_ignore(drmModePropertyPtr prop)
 {
diff --git a/src/i830.h b/src/i830.h
index 6825e77..25ed424 100644
--- a/src/i830.h
+++ b/src/i830.h
@@ -691,7 +691,10 @@ void I830DRI2CloseScreen(ScreenPtr pScreen);
 
 extern Bool drmmode_pre_init(ScrnInfoPtr pScrn, int fd, int cpp);
 extern int drmmode_get_pipe_from_crtc_id(drm_intel_bufmgr *bufmgr, xf86CrtcPtr crtc);
+extern int drmmode_output_dpms_status(xf86OutputPtr output);
 
+extern Bool i830_crtc_on(xf86CrtcPtr crtc);
+extern int i830_crtc_to_pipe(xf86CrtcPtr crtc);
 extern Bool I830AccelInit(ScreenPtr pScreen);
 extern void I830SetupForScreenToScreenCopy(ScrnInfoPtr pScrn, int xdir,
 					   int ydir, int rop,
diff --git a/src/i830_dri.c b/src/i830_dri.c
index d00b42c..be09126 100644
--- a/src/i830_dri.c
+++ b/src/i830_dri.c
@@ -311,12 +311,7 @@ I830DRI2CopyRegion(DrawablePtr pDraw, RegionPtr pRegion,
 
 	/* Make sure the CRTC is valid and this is the real front buffer */
 	if (crtc != NULL && !crtc->rotatedData) {
-	    if (pI830->use_drm_mode)
-		pipe = drmmode_get_pipe_from_crtc_id(pI830->bufmgr, crtc);
-	    else {
-		I830CrtcPrivatePtr intel_crtc = crtc->driver_private;
-		pipe = intel_crtc->pipe;
-	    }
+	    pipe = i830_crtc_to_pipe(crtc);
 
 	    if (pipe == 0) {
 		event = MI_WAIT_FOR_PIPEA_SCAN_LINE_WINDOW;
diff --git a/src/i830_driver.c b/src/i830_driver.c
index 70b8788..b9b9d0b 100644
--- a/src/i830_driver.c
+++ b/src/i830_driver.c
@@ -2456,6 +2456,49 @@ i830_init_bufmgr(ScrnInfoPtr pScrn)
    }
 }
 
+Bool i830_crtc_on(xf86CrtcPtr crtc)
+{
+    ScrnInfoPtr pScrn = crtc->scrn;
+    xf86CrtcConfigPtr xf86_config = XF86_CRTC_CONFIG_PTR(pScrn);
+    I830Ptr pI830 = I830PTR(pScrn);
+
+    if (pI830->use_drm_mode) {
+	int i, active_outputs = 0;
+
+	/* Kernel manages CRTC status based out output config */
+	for (i = 0; i < xf86_config->num_output; i++) {
+	    xf86OutputPtr output = xf86_config->output[i];
+	    if (drmmode_output_dpms_status(output) == DPMSModeOn)
+		active_outputs++;
+	}
+
+	if (active_outputs)
+	    return TRUE;
+	return FALSE;
+    } else {
+	I830CrtcPrivatePtr intel_crtc = crtc->driver_private;
+
+	if (intel_crtc->dpms_mode == DPMSModeOn)
+	    return TRUE;
+	return FALSE;
+    }
+}
+
+int i830_crtc_to_pipe(xf86CrtcPtr crtc)
+{
+    ScrnInfoPtr pScrn = crtc->scrn;
+    I830Ptr pI830 = I830PTR(pScrn);
+    int pipe;
+
+    if (pI830->use_drm_mode) {
+	pipe = drmmode_get_pipe_from_crtc_id(pI830->bufmgr, crtc);
+    } else {
+	I830CrtcPrivatePtr intel_crtc = crtc->driver_private;
+	pipe = intel_crtc->pipe;
+    }
+
+    return pipe;
+}
 
 static void
 I830AdjustMemory(ScreenPtr pScreen)
diff --git a/src/i830_video.c b/src/i830_video.c
index 1ff80a0..d543cc4 100644
--- a/src/i830_video.c
+++ b/src/i830_video.c
@@ -1734,6 +1734,11 @@ i830_covering_crtc (ScrnInfoPtr pScrn,
     for (c = 0; c < xf86_config->num_crtc; c++)
     {
 	crtc = xf86_config->crtc[c];
+
+	/* If the CRTC is off, treat it as not covering */
+	if (!i830_crtc_on(crtc))
+	    continue;
+
 	i830_crtc_box (crtc, &crtc_box);
 	i830_box_intersect (&cover_box, &crtc_box, box);
 	coverage = i830_box_area (&cover_box);
@@ -2491,14 +2496,8 @@ I830PutImage(ScrnInfoPtr pScrn,
 	    int y1, y2;
 	    int pipe = -1, event, load_scan_lines_pipe;
 
-	    if (pixmap_is_scanout(pPixmap)) {
-		if (pI830->use_drm_mode)
-		    pipe = drmmode_get_pipe_from_crtc_id(pI830->bufmgr, crtc);
-		else {
-		    I830CrtcPrivatePtr intel_crtc = crtc->driver_private;
-		    pipe = intel_crtc->pipe;
-		}
-	    }
+	    if (pixmap_is_scanout(pPixmap))
+		pipe = i830_crtc_to_pipe(crtc);
 
 	    if (pipe >= 0) {
 		if (pipe == 0) {
commit 6d025e679a99778496576af9a6a6fa8c043ae811
Author: Alan Coopersmith <alan.coopersmith at sun.com>
Date:   Tue Jun 23 09:53:14 2009 -0700

    Harden i830 render in case check_composite didn't throw out bad formats.
    
    Fixes a warning in a static analysis program, and the code's a little
    clearer.
    
    Bug #21667

diff --git a/src/i830_render.c b/src/i830_render.c
index 4bee5ba..b1d6f50 100644
--- a/src/i830_render.c
+++ b/src/i830_render.c
@@ -250,9 +250,9 @@ i8xx_get_card_format(PicturePtr pPict)
 	    i++)
     {
 	if (i830_tex_formats[i].fmt == pPict->format)
-	    break;
+	    return i830_tex_formats[i].card_fmt;
     }
-    return i830_tex_formats[i].card_fmt;
+    FatalError("Unsupported format type %d\n", pPict->format);
 }
 
 static Bool
commit 1eec83a203c48822400742a1fb184b2cb52c62f7
Author: Jesse Barnes <jbarnes at virtuousgeek.org>
Date:   Tue Jun 23 15:05:03 2009 -0700

    Add option to control swapbuffers behavior
    
    Until we get triple buffering, we'll want this so users can avoid taking a
    performance hit on apps that render slower than the refresh rate.
    
    Fixes fdo bug #22234.
    
    Signed-off-by: Jesse Barnes <jbarnes at virtuousgeek.org>

diff --git a/man/intel.man b/man/intel.man
index 05aa678..6330e4b 100644
--- a/man/intel.man
+++ b/man/intel.man
@@ -92,6 +92,16 @@ performance.
 .IP
 Default: enabled.
 .TP
+.BI "Option \*qSwapbuffersWait\*q \*q" boolean \*q
+This option controls the behavior of glXSwapBuffers and glXCopySubBufferMESA
+calls by GL applications.  If enabled, the calls will avoid tearing by making
+sure the display scanline is outside of the area to be copied before the copy
+occurs.  If disabled, no scanline synchronization is performed, meaning tearing
+will likely occur.  Note that when enabled, this option can adversely affect
+the framerate of applications that render frames at less than refresh rate.
+.IP
+Default: enabled.
+.TP
 .BI "Option \*qDRI\*q \*q" boolean \*q
 Disable or enable DRI support.
 .IP
diff --git a/src/i830.h b/src/i830.h
index 19b189c..6825e77 100644
--- a/src/i830.h
+++ b/src/i830.h
@@ -414,6 +414,7 @@ typedef struct _I830Rec {
 
    Bool tiling;
    Bool fb_compression;
+   Bool swapbuffers_wait;
 
    Bool CursorNeedsPhysical;
 
diff --git a/src/i830_driver.c b/src/i830_driver.c
index 9d38fba..70b8788 100644
--- a/src/i830_driver.c
+++ b/src/i830_driver.c
@@ -171,6 +171,7 @@ typedef enum {
    OPTION_LVDS24BITMODE,
    OPTION_FBC,
    OPTION_TILING,
+   OPTION_SWAPBUFFERS_WAIT,
    OPTION_LVDSFIXEDMODE,
    OPTION_FORCEENABLEPIPEA,
 #ifdef INTEL_XVMC
@@ -189,6 +190,7 @@ static OptionInfoRec I830Options[] = {
    {OPTION_LVDS24BITMODE, "LVDS24Bit",	OPTV_BOOLEAN,	{0},	FALSE},
    {OPTION_FBC,		"FramebufferCompression", OPTV_BOOLEAN, {0}, TRUE},
    {OPTION_TILING,	"Tiling",	OPTV_BOOLEAN,	{0},	TRUE},
+   {OPTION_SWAPBUFFERS_WAIT, "SwapbuffersWait", OPTV_BOOLEAN,	{0},	TRUE},
    {OPTION_LVDSFIXEDMODE, "LVDSFixedMode", OPTV_BOOLEAN,	{0},	FALSE},
    {OPTION_FORCEENABLEPIPEA, "ForceEnablePipeA", OPTV_BOOLEAN,	{0},	FALSE},
 #ifdef INTEL_XVMC
@@ -2663,10 +2665,23 @@ I830ScreenInit(int scrnIndex, ScreenPtr pScreen, int argc, char **argv)
        pI830->fb_compression = FALSE;
    }
 
+   /* SwapBuffers delays to avoid tearing */
+   pI830->swapbuffers_wait = TRUE;
+
+   /* Allow user override if they set a value */
+   if (xf86IsOptionSet(pI830->Options, OPTION_SWAPBUFFERS_WAIT)) {
+       if (xf86ReturnOptValBool(pI830->Options, OPTION_SWAPBUFFERS_WAIT, FALSE))
+	   pI830->swapbuffers_wait = TRUE;
+       else
+	   pI830->swapbuffers_wait = FALSE;
+   }
+
    xf86DrvMsg(pScrn->scrnIndex, X_CONFIG, "Framebuffer compression %sabled\n",
 	      pI830->fb_compression ? "en" : "dis");
    xf86DrvMsg(pScrn->scrnIndex, X_CONFIG, "Tiling %sabled\n", pI830->tiling ?
 	      "en" : "dis");
+   xf86DrvMsg(pScrn->scrnIndex, X_CONFIG, "SwapBuffers wait %sabled\n",
+	      pI830->swapbuffers_wait ? "en" : "dis");
 
    pI830->last_3d = LAST_3D_OTHER;
    pI830->overlayOn = FALSE;
commit bfeeac6de096256fca82244338bb45d53ee53cbc
Author: Zou Nan hai <nanhai.zou at intel.com>
Date:   Tue Jun 23 11:31:37 2009 +0800

     i915 xvmc, fix fd.o bug #22103

diff --git a/src/xvmc/intel_batchbuffer.c b/src/xvmc/intel_batchbuffer.c
index 02fbd5a..8c96d7f 100644
--- a/src/xvmc/intel_batchbuffer.c
+++ b/src/xvmc/intel_batchbuffer.c
@@ -141,7 +141,9 @@ void intelFlushBatch(Bool refill )
     drm_intel_bo_exec(xvmc_driver->batch.buf, 
 	    xvmc_driver->batch.ptr - xvmc_driver->batch.init_ptr,
 	    0, 0, 0);
-    //dri_bo_wait_rendering(xvmc_driver->batch.buf);
+
+    if (xvmc_driver == &i915_xvmc_mc_driver)
+	    dri_bo_wait_rendering(xvmc_driver->batch.buf);
 
     drm_intel_bo_unreference(xvmc_driver->batch.buf);
     if((xvmc_driver->batch.buf = 
commit 15af8ea6ab6998bbab9f4eeda227565c409da229
Author: Jesse Barnes <jbarnes at virtuousgeek.org>
Date:   Mon Jun 22 11:11:06 2009 -0700

    Fix LFP data block fetch
    
    Apparently the proper way to do this is to use the LFP data pointer block to figure out the LFP data block entry size, then use that plus the panel index to calculate an offset into the LFP data block array.
    
    Fixes fdo bug #19450.
    
    Signed-off-by: Jesse Barnes <jbarnes at virtuousgeek.org>

diff --git a/src/bios_reader/bios_reader.c b/src/bios_reader/bios_reader.c
index 27ec769..cdc2045 100644
--- a/src/bios_reader/bios_reader.c
+++ b/src/bios_reader/bios_reader.c
@@ -275,18 +275,30 @@ static void dump_lvds_options(void)
 static void dump_lvds_ptr_data(void)
 {
     struct bdb_block *block;
+    struct bdb_lvds_lfp_data *lvds_data;
     struct bdb_lvds_lfp_data_ptrs *ptrs;
     struct lvds_fp_timing *fp_timing;
+    struct bdb_lvds_lfp_data_entry *entry;
+    int lfp_data_size;
 
     block = find_section(BDB_LVDS_LFP_DATA_PTRS);
     if (!block) {
 	printf("No LFP data pointers block\n");
 	return;
     }
-
     ptrs = block->data;
-    fp_timing =	(struct lvds_fp_timing *)((uint8_t *)bdb +
-					  ptrs->ptr[panel_type].fp_timing_offset);
+
+    block = find_section(BDB_LVDS_LFP_DATA);
+    if (!block) {
+	printf("No LVDS data block\n");
+	return;
+    }
+    lvds_data = block->data;
+
+    lfp_data_size = ptrs->ptr[1].fp_timing_offset - ptrs->ptr[0].fp_timing_offset;
+    entry = (struct bdb_lvds_lfp_data_entry *)((uint8_t *)lvds_data->data +
+					       (lfp_data_size * panel_type));
+    fp_timing = &entry->fp_timing;
 
     printf("LVDS timing pointer data:\n");
     printf("  Number of entries: %d\n", ptrs->lvds_entries);
diff --git a/src/i830_bios.c b/src/i830_bios.c
index 2f129e9..62b9f5d 100644
--- a/src/i830_bios.c
+++ b/src/i830_bios.c
@@ -118,9 +118,11 @@ parse_integrated_panel_data(I830Ptr pI830, struct bdb_header *bdb)
 {
     struct bdb_lvds_options *lvds_options;
     struct bdb_lvds_lfp_data_ptrs *lvds_lfp_data_ptrs;
-    int timing_offset;
+    struct bdb_lvds_lfp_data *lvds_data;
+    struct bdb_lvds_lfp_data_entry *entry;
     DisplayModePtr fixed_mode;
     unsigned char *timing_ptr;
+    int lfp_data_size;
 
     /* Defaults if we can't find VBT info */
     pI830->lvds_dither = 0;
@@ -133,13 +135,20 @@ parse_integrated_panel_data(I830Ptr pI830, struct bdb_header *bdb)
     if (lvds_options->panel_type == 0xff)
 	return;
 
+    lvds_data = find_section(bdb, BDB_LVDS_LFP_DATA);
+    if (!lvds_data) {
+	return;
+    }
+
     lvds_lfp_data_ptrs = find_section(bdb, BDB_LVDS_LFP_DATA_PTRS);
     if (!lvds_lfp_data_ptrs)
 	return;
 
-    timing_offset =
-	lvds_lfp_data_ptrs->ptr[lvds_options->panel_type].dvo_timing_offset;
-    timing_ptr = (unsigned char *)bdb + timing_offset;
+    lfp_data_size = lvds_lfp_data_ptrs->ptr[1].fp_timing_offset -
+	lvds_lfp_data_ptrs->ptr[0].fp_timing_offset;
+    entry = (struct bdb_lvds_lfp_data_entry *)((uint8_t *)lvds_data->data +
+					       (lfp_data_size * lvds_options->panel_type));
+    timing_ptr = (unsigned char *)&entry->fp_timing;
 
     if (pI830->skip_panel_detect)
 	return;
commit 534e73ad4f234a04755917f2bf17ba821c27eb52
Author: Zhao Yakui <yakui.zhao at intel.com>
Date:   Thu Jun 18 09:46:32 2009 +0800

    Don't change the blank/sync width when calculating scaled modes
    
    Don't the change the blank/vsync width while doing LVDS scaled modes.
    And use the border instead of border minus one.
    
    At the same time, make sure the horizontal border and hsync are even for
    the LVDS that works in dual-channel mode. So both horizontal border and hsync
    start are also changed to be even, even for the LVDS in single-channel
    mode.
    
    https://bugs.freedesktop.org/show_bug.cgi?id=20951
    
    Signed-off-by: Jesse Barnes <jbarnes at virtuousgeek.org>
    Signed-off-by: Zhao Yakui <yakui.zhao at intel.com>

diff --git a/src/i830_lvds.c b/src/i830_lvds.c
index 064810f..aefe069 100644
--- a/src/i830_lvds.c
+++ b/src/i830_lvds.c
@@ -607,6 +607,9 @@ i830_lvds_mode_fixup(xf86OutputPtr output, DisplayModePtr mode,
     float		    horiz_ratio, vert_ratio;
     int left_border = 0, right_border = 0, top_border = 0, bottom_border = 0;
     int i;
+    uint32_t		    hsync_width, vsync_width;
+    uint32_t		    hblank_width, vblank_width;
+    uint32_t		    hsync_pos, vsync_pos;
     Bool border = 0;
 
     for (i = 0; i < xf86_config->num_output; i++) {
@@ -663,6 +666,12 @@ i830_lvds_mode_fixup(xf86OutputPtr output, DisplayModePtr mode,
 	pfit_control |= (intel_crtc->pipe << PFIT_PIPE_SHIFT) |
 	    PFIT_FILTER_FUZZY;
 
+    hsync_width = adjusted_mode->CrtcHSyncEnd - adjusted_mode->CrtcHSyncStart;
+    vsync_width = adjusted_mode->CrtcVSyncEnd - adjusted_mode->CrtcVSyncStart;
+    hblank_width = adjusted_mode->CrtcHBlankEnd -
+					adjusted_mode->CrtcHBlankStart;
+    vblank_width = adjusted_mode->CrtcVBlankEnd -
+					adjusted_mode->CrtcVBlankStart;
     /*
      * Deal with panel fitting options.  Figure out how to stretch the image
      * based on its aspect ratio & the current panel fitting mode.
@@ -700,17 +709,34 @@ i830_lvds_mode_fixup(xf86OutputPtr output, DisplayModePtr mode,
 
 	/* Set active & border values */
 	adjusted_mode->CrtcHDisplay = mode->HDisplay;
-	adjusted_mode->CrtcHBlankStart = mode->HDisplay + right_border - 1;
-	adjusted_mode->CrtcHBlankEnd = adjusted_mode->CrtcHTotal -
-	    left_border - 1;
-	adjusted_mode->CrtcHSyncStart = adjusted_mode->CrtcHBlankStart;
-	adjusted_mode->CrtcHSyncEnd = adjusted_mode->CrtcHBlankEnd;
+	/* keep the horizontal border be even */
+	if (right_border & 1)
+		right_border++;
+	/* use the border directly instead of border minus one */
+	adjusted_mode->CrtcHBlankStart = mode->HDisplay + right_border;
+	/* keep the blank width constant */
+	adjusted_mode->CrtcHBlankEnd = adjusted_mode->CrtcHBlankStart +
+					hblank_width;
+	/* get the hsync start position relative to hblank start */
+	hsync_pos = (hblank_width - hsync_width) / 2;
+	/* keep the hsync width constant and hsync start be even */
+	if (hsync_pos & 1)
+		hsync_pos++;
+	adjusted_mode->CrtcHSyncStart = adjusted_mode->CrtcHBlankStart +
+						hsync_pos;
+	adjusted_mode->CrtcHSyncEnd = adjusted_mode->CrtcHSyncStart +
+						hsync_width;
 	adjusted_mode->CrtcVDisplay = mode->VDisplay;
-	adjusted_mode->CrtcVBlankStart = mode->VDisplay + bottom_border - 1;
-	adjusted_mode->CrtcVBlankEnd = adjusted_mode->CrtcVTotal -
-	    top_border - 1;
-	adjusted_mode->CrtcVSyncStart = adjusted_mode->CrtcVBlankStart;
-	adjusted_mode->CrtcVSyncEnd = adjusted_mode->CrtcVBlankEnd;
+	/* use the border instead of border minus one */
+	adjusted_mode->CrtcVBlankStart = mode->VDisplay + bottom_border;
+	adjusted_mode->CrtcVBlankEnd = adjusted_mode->CrtcVBlankStart +
+						vblank_width;
+	/* get the vsync start position relative to vblank start */
+	vsync_pos = (vblank_width - vsync_width) / 2;
+	adjusted_mode->CrtcVSyncStart = adjusted_mode->CrtcVBlankStart +
+						vsync_pos;
+	adjusted_mode->CrtcVSyncEnd = adjusted_mode->CrtcVSyncStart +
+						vsync_width;
 	border = 1;
 	break;
     case FULL_ASPECT:
@@ -758,13 +784,22 @@ i830_lvds_mode_fixup(xf86OutputPtr output, DisplayModePtr mode,
 		if (mode->HDisplay & 1) /* odd resolutions */
 		    right_border++;
 
+		/* keep the border be even */
+		if (right_border & 1)
+			right_border++;
 		adjusted_mode->CrtcHDisplay = scaled_width;
-		adjusted_mode->CrtcHBlankStart = scaled_width +
-		    right_border - 1;
-		adjusted_mode->CrtcHBlankEnd = adjusted_mode->CrtcHTotal -
-		    left_border - 1;
-		adjusted_mode->CrtcHSyncStart = adjusted_mode->CrtcHBlankStart;
-		adjusted_mode->CrtcHSyncEnd = adjusted_mode->CrtcHBlankEnd;
+		adjusted_mode->CrtcHBlankStart = scaled_width + right_border;
+		adjusted_mode->CrtcHBlankEnd = adjusted_mode->CrtcHBlankStart +
+							hblank_width;
+		/* get the hsync start position relative to hblank start */
+		hsync_pos = (hblank_width - hsync_width) / 2;
+		/* keep the hsync start be even */
+		if (hsync_pos & 1)
+			hsync_pos++;
+		adjusted_mode->CrtcHSyncStart = adjusted_mode->CrtcHBlankStart +
+							hsync_pos;
+		adjusted_mode->CrtcHSyncEnd = adjusted_mode->CrtcHSyncStart +
+							hsync_width;
 		border = 1;
 	    } else if (panel_ratio < desired_ratio) { /* Letter */
 		unsigned long scaled_height = (float)mode->VDisplay *
@@ -782,12 +817,18 @@ i830_lvds_mode_fixup(xf86OutputPtr output, DisplayModePtr mode,
 		    bottom_border++;
 
 		adjusted_mode->CrtcVDisplay = scaled_height;
+		/* use the border instead of border minus one */
 		adjusted_mode->CrtcVBlankStart = scaled_height +
-		    bottom_border - 1;
-		adjusted_mode->CrtcVBlankEnd = adjusted_mode->CrtcVTotal -
-		    top_border - 1;
-		adjusted_mode->CrtcVSyncStart = adjusted_mode->CrtcVBlankStart;
-		adjusted_mode->CrtcVSyncEnd = adjusted_mode->CrtcVBlankEnd;
+		    bottom_border;
+		/* keep the Vblank width constant */
+		adjusted_mode->CrtcVBlankEnd = adjusted_mode->CrtcVBlankStart +
+							vblank_width;
+		/* get the vsync start position relative to vblank start */
+		vsync_pos = (vblank_width - vsync_width) / 2;
+		adjusted_mode->CrtcVSyncStart = adjusted_mode->CrtcVBlankStart +
+							vsync_pos;
+		adjusted_mode->CrtcVSyncEnd = adjusted_mode->CrtcVBlankStart +
+							vsync_width;
 		border = 1;
 	    } else { /* Aspects match, let hw scale both directions */
 		pfit_control |= VERT_AUTO_SCALE | HORIZ_AUTO_SCALE |
commit b5cd2130f97591f4a387db1b98c940c30bc6404c
Author: ling.ma at intel.com <ling.ma at intel.com>
Date:   Tue Jun 16 16:52:25 2009 +0800

    TV: Set correct voltage level override values
    
    We detect TV connect status by setting DAC voltage level override
    values as 0.7 voltage for DAC_A/B/C. The corresponding 2-bits shold be 0x2,
    In order correctly to set last bit as 0, at first we must clean it.
    
    It fixed freedesktop.org bug #21204
    
    Signed-off-by: Ma Ling <ling.ma at intel.com>

diff --git a/src/i810_reg.h b/src/i810_reg.h
index ae1933d..64f2222 100644
--- a/src/i810_reg.h
+++ b/src/i810_reg.h
@@ -1676,15 +1676,15 @@ SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 # define DAC_A_1_3_V			(0 << 4)
 # define DAC_A_1_1_V			(1 << 4)
 # define DAC_A_0_7_V			(2 << 4)
-# define DAC_A_OFF			(3 << 4)
+# define DAC_A_MASK			(3 << 4)
 # define DAC_B_1_3_V			(0 << 2)
 # define DAC_B_1_1_V			(1 << 2)
 # define DAC_B_0_7_V			(2 << 2)
-# define DAC_B_OFF			(3 << 2)
+# define DAC_B_MASK			(3 << 2)
 # define DAC_C_1_3_V			(0 << 0)
 # define DAC_C_1_1_V			(1 << 0)
 # define DAC_C_0_7_V			(2 << 0)
-# define DAC_C_OFF			(3 << 0)
+# define DAC_C_MASK			(3 << 0)
 /** @} */
 
 /**
diff --git a/src/i830_tv.c b/src/i830_tv.c
index 8eb3e26..7082aba 100644
--- a/src/i830_tv.c
+++ b/src/i830_tv.c
@@ -1386,6 +1386,9 @@ i830_tv_detect_type (xf86CrtcPtr    crtc,
 	tv_ctl &= ~TV_TEST_MODE_MASK;
 	tv_ctl |= TV_TEST_MODE_MONITOR_DETECT;
 	tv_dac &= ~TVDAC_SENSE_MASK;
+        tv_dac &= ~DAC_A_MASK;
+        tv_dac &= ~DAC_B_MASK;
+        tv_dac &= ~DAC_C_MASK;
 	tv_dac |= (TVDAC_STATE_CHG_EN |
 		TVDAC_A_SENSE_CTL |
 		TVDAC_B_SENSE_CTL |
commit a6cdcd9fee0164f79075063fd163d142a55fcbc5
Author: ling.ma at intel.com <ling.ma at intel.com>
Date:   Tue Jun 16 16:47:52 2009 +0800

    Set hot plug interrupt to detect HDMI output
    
    We detect HDMI output connection status by writing to HOT Plug Interrupt
    Detect Enable bit in PORT_HOTPLUG_EN. The behavior will generate an specified
    interrupt, which is caught by audio driver, but during one detection driver
    set all Detect Enable bits of HDMIB, HDMIC and HDMID, which generate wrong
    interrupt signals for current output, according to the signals audio driver
    misunderstand device status. The patch intends to handle corresponding output
    precisely.
    
    It fixed fredesktop bug #21371
    
    Signed-off-by: Ma Ling <ling.ma at intel.com>

diff --git a/src/i830_hdmi.c b/src/i830_hdmi.c
index 0abb151..63fc6dc 100644
--- a/src/i830_hdmi.c
+++ b/src/i830_hdmi.c
@@ -166,14 +166,22 @@ i830_hdmi_detect(xf86OutputPtr output)
 
     temp = INREG(PORT_HOTPLUG_EN);
 
-    OUTREG(PORT_HOTPLUG_EN,
-	   temp |
-	   HDMIB_HOTPLUG_INT_EN |
-	   HDMIC_HOTPLUG_INT_EN |
-	   HDMID_HOTPLUG_INT_EN);
+    switch (dev_priv->output_reg) {
+    case SDVOB:
+	temp |= HDMIB_HOTPLUG_INT_EN;
+	break;
+    case SDVOC:
+	temp |= HDMIC_HOTPLUG_INT_EN;
+	break;
+    default:
+	return XF86OutputStatusUnknown;
+    }
+
+    OUTREG(PORT_HOTPLUG_EN, temp);
 
     POSTING_READ(PORT_HOTPLUG_EN);
 
+    i830WaitForVblank(pScrn);
     switch (dev_priv->output_reg) {
     case SDVOB:
 	bit = HDMIB_HOTPLUG_INT_STATUS;
commit 6b93afc564a5e74b0eaaa46c95f557449951b3b9
Author: Bryce Harrington <bryce at bryceharrington.org>
Date:   Wed May 27 03:40:52 2009 -0700

    add pipe a force quirk for Dell mini
    
    Add quirk to solve issue with black screen and hang occuring after closing the
    lid with attached external monitor, on Dell Mini.
    
    Fixes fdo bug #21960.
    
    Signed-off-by: Bryce Harrington <bryce at bryceharrington.org>

diff --git a/src/i830_quirks.c b/src/i830_quirks.c
index 6314b29..b0a6490 100644
--- a/src/i830_quirks.c
+++ b/src/i830_quirks.c
@@ -330,6 +330,8 @@ static i830_quirk i830_quirk_list[] = {
     { PCI_CHIP_GM45_GM, 0x103c, 0x30e8, quirk_ignore_tv },
     /* HP Compaq 2730p needs pipe A force quirk (LP: #291555) */
     { PCI_CHIP_GM45_GM, 0x103c, 0x30eb, quirk_pipea_force },
+    /* HP Mini needs pipe A force quirk (LP: #322104) */
+    { PCI_CHIP_I945_GME,0x103c, 0x361a, quirk_pipea_force },
 
     /* Thinkpad R31 needs pipe A force quirk */
     { PCI_CHIP_I830_M, 0x1014, 0x0505, quirk_pipea_force },
commit eb09014ce10428bbcab04e155186382975545f0a
Author: Li Peng <peng.li at intel.com>
Date:   Tue Jun 16 15:29:57 2009 -0700

    don't wait for vblank on rotated displays
    
    We may hang or wait for the wrong line if the display is rotated, so just skip
    the wait in that case.
    
    Fixes fdo bug #22196.

diff --git a/src/i830_dri.c b/src/i830_dri.c
index c28f3ab..d00b42c 100644
--- a/src/i830_dri.c
+++ b/src/i830_dri.c
@@ -309,7 +309,8 @@ I830DRI2CopyRegion(DrawablePtr pDraw, RegionPtr pRegion,
 	box = REGION_EXTENTS(unused, pGC->pCompositeClip);
 	crtc = i830_covering_crtc(pScrn, box, NULL, &crtcbox);
 
-	if (crtc != NULL) {
+	/* Make sure the CRTC is valid and this is the real front buffer */
+	if (crtc != NULL && !crtc->rotatedData) {
 	    if (pI830->use_drm_mode)
 		pipe = drmmode_get_pipe_from_crtc_id(pI830->bufmgr, crtc);
 	    else {
commit 6c56521bdc0443c0656271caaa795feb13bc1d6b
Author: Bryce Harrington <bryce at bryceharrington.org>
Date:   Wed May 27 05:18:53 2009 -0700

    pipe-a quirk for thinkpad x30
    
    Fixes freeze when closing lid on ThinkPad X30.
    
    Fixes FDO bug # 21976.
    
    Signed-off-by: Bryce Harrington <bryce at bryceharrington.org>

diff --git a/src/i830_quirks.c b/src/i830_quirks.c
index 81ea3c2..6314b29 100644
--- a/src/i830_quirks.c
+++ b/src/i830_quirks.c
@@ -356,6 +356,8 @@ static i830_quirk i830_quirk_list[] = {
 
     { PCI_CHIP_I855_GM, 0x161f, 0x2030, quirk_pfit_safe },
 
+    /* ThinkPad X30 needs pipe A force quirk (LP: #304614) */
+    { PCI_CHIP_I830_M,  0x1014, 0x0513, quirk_pipea_force },
     /* ThinkPad X40 needs pipe A force quirk */
     { PCI_CHIP_I855_GM, 0x1014, 0x0557, quirk_pipea_force },
 
commit 246cec965958e94babf5377e6f221522b05fb458
Author: Zhao Yakui <yakui.zhao at intel.com>
Date:   Wed Jun 10 11:17:28 2009 +0800

    Fix EDID for LVDS output device to add the default modes
    
    Fix the EDID for the LVDS output device to add the default modes.This is
    similar to what we have done in UMS mode.
    a. When there exists the EDID, either find the DS_RANGES block or replace
    a DS_VENDOR block, smashing it into a DS_RANGES block with open refresh
    to match all the defaults modes.
    b. When there is no EDID, we will construct a bogus EDID and add a DS_RANGES
    block with the open refresh to match all the default modes.
    
    http://bugs.freedesktop.org/show_bug.cgi?id=20801
    http://bugs.freedesktop.org/show_bug.cgi?id=21094
    http://bugs.freedesktop.org/show_bug.cgi?id=21346
    http://bugs.freedesktop.org/show_bug.cgi?id=21417
    http://bugs.freedesktop.org/show_bug.cgi?id=21671
    
    Signed-off-by: Zhao Yakui <yakui.zhao at intel.com>

diff --git a/src/drmmode_display.c b/src/drmmode_display.c
index aee885a..02a71ae 100644
--- a/src/drmmode_display.c
+++ b/src/drmmode_display.c
@@ -489,6 +489,132 @@ drmmode_output_mode_valid(xf86OutputPtr output, DisplayModePtr pModes)
 	return MODE_OK;
 }
 
+static void fill_detailed_lvds_block(struct detailed_monitor_section *det_mon,
+					DisplayModePtr mode)
+{
+	struct detailed_timings *timing = &det_mon->section.d_timings;
+
+	det_mon->type = DT;
+	timing->clock = mode->Clock * 1000;
+	timing->h_active = mode->HDisplay;
+	timing->h_blanking = mode->HTotal - mode->HDisplay;
+	timing->v_active = mode->VDisplay;
+	timing->v_blanking = mode->VTotal - mode->VDisplay;
+	timing->h_sync_off = mode->HSyncStart - mode->HDisplay;
+	timing->h_sync_width = mode->HSyncEnd - mode->HSyncStart;
+	timing->v_sync_off = mode->VSyncStart - mode->VDisplay;
+	timing->v_sync_width = mode->VSyncEnd - mode->VSyncStart;
+
+	if (mode->Flags & V_PVSYNC)
+		timing->misc |= 0x02;
+
+	if (mode->Flags & V_PHSYNC)
+		timing->misc |= 0x01;
+}
+
+static int drmmode_output_lvds_edid(xf86OutputPtr output,
+				struct fixed_panel_lvds *p_lvds)
+{
+	drmmode_output_private_ptr drmmode_output = output->driver_private;
+	drmModeConnectorPtr koutput = drmmode_output->mode_output;
+	int i, j;
+	DisplayModePtr pmode;
+	xf86MonPtr	edid_mon;
+	drmModeModeInfo *mode_ptr;
+	struct detailed_monitor_section *det_mon;
+
+	if (output->MonInfo) {
+		/*
+		 * If there exists the EDID, we will either find a DS_RANGES
+		 * or replace a DS_VENDOR block, smashing it into a DS_RANGES
+		 * block with opern refresh to match all the default modes.
+		 */
+		int edid_det_block_num;
+		edid_mon = output->MonInfo;
+		edid_mon->features.msc |= 0x01;
+		j = -1;
+		edid_det_block_num = sizeof(edid_mon->det_mon) /
+					sizeof(edid_mon->det_mon[0]);
+		for (i = 0; i < edid_det_block_num; i++) {
+			if (edid_mon->det_mon[i].type >= DS_VENDOR && j == -1)
+				j = i;
+			if (edid_mon->det_mon[i].type == DS_RANGES) {
+				j = i;
+				break;
+			}
+		}
+		if (j != -1) {
+			struct monitor_ranges	*ranges =
+				&edid_mon->det_mon[j].section.ranges;
+			edid_mon->det_mon[j].type = DS_RANGES;
+			ranges->min_v = 0;
+			ranges->max_v = 200;
+			ranges->min_h = 0;
+			ranges->max_h = 200;
+		}
+		return 0;
+	}
+	/*
+	 * If there is no EDID, we will construct a bogus EDID for LVDS output
+	 * device. This is similar to what we have done in i830_lvds.c
+	 */
+	edid_mon = NULL;
+	edid_mon = xcalloc(1, sizeof(xf86Monitor));
+	if (!edid_mon) {
+		xf86DrvMsg(output->scrn->scrnIndex, X_ERROR,
+			"Can't allocate memory for edid_mon.\n");
+		return 0;
+	}
+	/* Find the fixed panel mode.
+	 * In theory when there is no EDID, KMS kernel will return only one
+	 * mode. And this can be regarded as fixed lvds panel mode.
+	 * But it will be better to traverse the mode list to get the fixed
+	 * lvds panel mode again as we don't know whether some new modes
+	 * are added for the LVDS output device
+	 */
+	j = 0;
+	for (i = 0; i < koutput->count_modes; i++) {
+		mode_ptr = &koutput->modes[i];
+		if ((mode_ptr->hdisplay == p_lvds->hdisplay) &&
+			(mode_ptr->vdisplay == p_lvds->vdisplay)) {
+			/* find the fixed panel mode */
+			j = i;
+			break;
+		}
+	}
+	pmode = xnfalloc(sizeof(DisplayModeRec));
+	drmmode_ConvertFromKMode(output->scrn, &koutput->modes[j], pmode);
+	/*support DPM, instead of DPMS*/
+	edid_mon->features.dpms |= 0x1;
+	/*defaultly support RGB color display*/
+	edid_mon->features.display_type |= 0x1;
+	/*defaultly display support continuous-freqencey*/
+	edid_mon->features.msc |= 0x1;
+	/*defaultly  the EDID version is 1.4 */
+	edid_mon->ver.version = 1;
+	edid_mon->ver.revision = 4;
+	det_mon = edid_mon->det_mon;
+	if (pmode) {
+		/* now we construct new EDID monitor,
+		 * so filled one detailed timing block
+		 */
+		fill_detailed_lvds_block(det_mon, pmode);
+		/* the filed timing block should be set preferred*/
+		edid_mon->features.msc |= 0x2;
+		det_mon = det_mon + 1;
+	}
+	/* Set wide sync ranges so we get all modes
+	 * handed to valid_mode for checking
+	 */
+	det_mon->type = DS_RANGES;
+	det_mon->section.ranges.min_v = 0;
+	det_mon->section.ranges.max_v = 200;
+	det_mon->section.ranges.min_h = 0;
+	det_mon->section.ranges.max_h = 200;
+	output->MonInfo = edid_mon;
+	return 0;
+}
+
 static DisplayModePtr
 drmmode_output_get_modes(xf86OutputPtr output)
 {
@@ -555,6 +681,7 @@ drmmode_output_get_modes(xf86OutputPtr output)
 		if (!p_lvds->hdisplay || !p_lvds->vdisplay)
 			xf86DrvMsg(output->scrn->scrnIndex, X_ERROR,
 				"Incorrect KMS mode.\n");
+		drmmode_output_lvds_edid(output, p_lvds);
 	}
 	return Modes;
 }
commit 5d1dc7677004d445a7a781decd8c1ef9747c14fb
Author: Zhao Yakui <yakui.zhao at intel.com>
Date:   Wed Jun 10 11:17:27 2009 +0800

    Get the LVDS panel limit and check whether the given modeline is valid
    
    When the connector type is LVDS, it will traverse the mode list returned by
    KMS kernel to get the LVDS panel limit. Then it will use the panel limit to
    check whether the given modeline is valid. If the given modeline exceeds
    the LVDS panel limit, it will be invalid.
    
    http://bugs.freedesktop.org/show_bug.cgi?id=20801
    http://bugs.freedesktop.org/show_bug.cgi?id=21094
    http://bugs.freedesktop.org/show_bug.cgi?id=21346
    http://bugs.freedesktop.org/show_bug.cgi?id=21417
    http://bugs.freedesktop.org/show_bug.cgi?id=21671
    
    Signed-off-by: Zhao Yakui <yakui.zhao at intel.com>

diff --git a/src/drmmode_display.c b/src/drmmode_display.c
index c9e15a4..aee885a 100644
--- a/src/drmmode_display.c
+++ b/src/drmmode_display.c
@@ -471,6 +471,21 @@ drmmode_output_detect(xf86OutputPtr output)
 static Bool
 drmmode_output_mode_valid(xf86OutputPtr output, DisplayModePtr pModes)
 {
+	drmmode_output_private_ptr drmmode_output = output->driver_private;
+	drmModeConnectorPtr koutput = drmmode_output->mode_output;
+	struct fixed_panel_lvds *p_lvds = drmmode_output->private_data;
+
+	/*
+	 * If the connector type is LVDS, we will use the panel limit to
+	 * verfiy whether the mode is valid.
+	 */
+	if ((koutput->connector_type ==  DRM_MODE_CONNECTOR_LVDS) && p_lvds) {
+		if (pModes->HDisplay > p_lvds->hdisplay ||
+			pModes->VDisplay > p_lvds->vdisplay)
+			return MODE_PANEL;
+		else
+			return MODE_OK;
+	}
 	return MODE_OK;
 }
 
@@ -483,6 +498,8 @@ drmmode_output_get_modes(xf86OutputPtr output)
 	int i;
 	DisplayModePtr Modes = NULL, Mode;
 	drmModePropertyPtr props;
+	struct fixed_panel_lvds *p_lvds;
+	drmModeModeInfo *mode_ptr;
 
 	/* look for an EDID property */
 	for (i = 0; i < koutput->count_props; i++) {
@@ -518,6 +535,27 @@ drmmode_output_get_modes(xf86OutputPtr output)
 		Modes = xf86ModesAdd(Modes, Mode);
 
 	}
+	p_lvds = drmmode_output->private_data;
+	/*
+	 * If the connector type is LVDS, we will traverse the kernel mode to
+	 * get the panel limit.
+	 * If it is incorrect, please fix me.
+	 */
+	if ((koutput->connector_type ==  DRM_MODE_CONNECTOR_LVDS) && p_lvds) {
+		p_lvds->hdisplay = 0;
+		p_lvds->vdisplay = 0;
+		for (i = 0; i < koutput->count_modes; i++) {
+			mode_ptr = &koutput->modes[i];
+			if ((mode_ptr->hdisplay >= p_lvds->hdisplay) &&
+				(mode_ptr->vdisplay >= p_lvds->vdisplay)) {
+				p_lvds->hdisplay = mode_ptr->hdisplay;
+				p_lvds->vdisplay = mode_ptr->vdisplay;
+			}
+		}
+		if (!p_lvds->hdisplay || !p_lvds->vdisplay)
+			xf86DrvMsg(output->scrn->scrnIndex, X_ERROR,
+				"Incorrect KMS mode.\n");
+	}
 	return Modes;
 }
 
commit 115e28639fbf6a1eba636dafac02fadd83036c75
Author: Zhao Yakui <yakui.zhao at intel.com>
Date:   Wed Jun 10 11:17:26 2009 +0800

    Add the private data for the LVDS connector
    
    Add the private data when the connector type is LVDS.
    We can use the private_data to store the LVDS panel limit.
    For example: Hdisplay, Vdisplay.
    
    http://bugs.freedesktop.org/show_bug.cgi?id=20801
    http://bugs.freedesktop.org/show_bug.cgi?id=21094
    http://bugs.freedesktop.org/show_bug.cgi?id=21346
    http://bugs.freedesktop.org/show_bug.cgi?id=21417
    http://bugs.freedesktop.org/show_bug.cgi?id=21671
    
    Signed-off-by: Zhao Yakui <yakui.zhao at intel.com>

diff --git a/src/drmmode_display.c b/src/drmmode_display.c
index 24e0e26..c9e15a4 100644
--- a/src/drmmode_display.c
+++ b/src/drmmode_display.c
@@ -58,6 +58,10 @@ typedef struct {
     Atom *atoms;
 } drmmode_prop_rec, *drmmode_prop_ptr;
 
+struct fixed_panel_lvds {
+	int hdisplay;
+	int vdisplay;
+};
 typedef struct {
     drmmode_ptr drmmode;
     int output_id;
@@ -66,6 +70,8 @@ typedef struct {
     drmModePropertyBlobPtr edid_blob;
     int num_props;
     drmmode_prop_ptr props;
+    void *private_data;
+	/* this is used to store private data */
 } drmmode_output_private_rec, *drmmode_output_private_ptr;
 
 static void
@@ -529,6 +535,10 @@ drmmode_output_destroy(xf86OutputPtr output)
 	}
 	xfree(drmmode_output->props);
 	drmModeFreeConnector(drmmode_output->mode_output);
+	if (drmmode_output->private_data) {
+		xfree(drmmode_output->private_data);
+		drmmode_output->private_data = NULL;
+	}
 	xfree(drmmode_output);
 	output->driver_private = NULL;
 }
@@ -792,7 +802,19 @@ drmmode_output_init(ScrnInfoPtr pScrn, drmmode_ptr drmmode, int num)
 		drmModeFreeEncoder(kencoder);
 		return;
 	}
-
+	/*
+	 * If the connector type of the output device is LVDS, we will
+	 * allocate the private_data to store the panel limit.
+	 * For example: hdisplay, vdisplay
+	 */
+	drmmode_output->private_data = NULL;
+	if (koutput->connector_type ==  DRM_MODE_CONNECTOR_LVDS) {
+		drmmode_output->private_data = xcalloc(
+				sizeof(struct fixed_panel_lvds), 1);
+		if (!drmmode_output->private_data)
+			xf86DrvMsg(pScrn->scrnIndex, X_ERROR,
+				"Can't allocate private memory for LVDS.\n");
+	}
 	drmmode_output->output_id = drmmode->mode_res->connectors[num];
 	drmmode_output->mode_output = koutput;
 	drmmode_output->mode_encoder = kencoder;
commit 3da549f5b350dd42516e5cb3576f7fefe012d95e
Author: Zhao Yakui <yakui.zhao at intel.com>
Date:   Wed Jun 10 11:37:03 2009 +0800

    GFX: Initialize the SDVO device based on the valid slave address
    
    When the slave address is found for the SDVO port, the SDVO device will
    be initialzied.
    When the slave address is not found for the SDVO port, it will return
    the slave address by using the following flowchart:
    a. If the SDVO device info is found for another SDVO port, it will return
    the slave address that is not used. For example: if 0x70 is used, then 0x72
    is returned.
    b. If no SDVO device info is found for another SDVO port, it will return
    0x70 for SDVOB and 0x72 for SDVOC.
    
    http://bugs.freedesktop.org/show_bug.cgi?id=20429
    
    Signed-off-by: Zhao Yakui <yakui.zhao at intel.com>

diff --git a/src/i830_sdvo.c b/src/i830_sdvo.c
index cfba482..acfe599 100644
--- a/src/i830_sdvo.c
+++ b/src/i830_sdvo.c
@@ -1038,7 +1038,6 @@ i830_sdvo_mode_fixup(xf86OutputPtr output, DisplayModePtr mode,
 	/* Set the input timing to the screen. Assume always input 0. */
 	i830_sdvo_set_target_input(output, TRUE, FALSE);
 
-
 	success = i830_sdvo_create_preferred_input_timing(output,
 							  mode->Clock / 10,
 							  mode->HDisplay,
@@ -2135,7 +2134,70 @@ i830_sdvo_select_ddc_bus(struct i830_sdvo_priv *dev_priv)
     /* Corresponds to SDVO_CONTROL_BUS_DDCx */
     dev_priv->ddc_bus = 1 << num_bits;
 }
+/**
+ * find the slave address for the given SDVO port based on the info
+ * parsed in general definition blocks
+ * If the slave address is found in the SDVO device info parsed from
+ * VBT,it will be returned. Otherwise it will return the slave address
+ * by the following steps.
+ * and 0x72 for SDVOC port.
+ * a. If one SDVO device info is found in another DVO port, it will return
+ * the slave address that is not used. For example: if 0x70 is used,
+ * then 0x72 is returned.
+ * b. If no SDVO device info is found in another DVO port, it will return
+ * 0x70 for SDVOB and 0x72 for SDVOC port.
+ */
+static
+void i830_find_sdvo_slave(ScrnInfoPtr pScrn, int output_device,
+			  uint8_t *slave_addr)
+{
+    uint8_t temp_slave_addr;
+    I830Ptr pI830 = I830PTR(pScrn);
+    uint8_t dvo_port, dvo2_port;
+    struct sdvo_device_mapping *p_mapping;
+
+    if (output_device == SDVOB) {
+	/* DEVICE_PORT_DVOB */
+	dvo_port = 0;
+	dvo2_port = 1;
+    } else {
+	/* DEVICE_POTR_DVOC */
+	dvo_port = 1;
+	dvo2_port = 0;
+    }
 
+    p_mapping = &(pI830->sdvo_mappings[dvo_port]);
+    temp_slave_addr = p_mapping->slave_addr;
+    if (temp_slave_addr) {
+	/* slave address is found . return it */
+	*slave_addr = temp_slave_addr;
+	return ;
+    }
+    /* Check whether the SDVO device info is found in another dvo port */
+    p_mapping = &(pI830->sdvo_mappings[dvo2_port]);
+    temp_slave_addr = p_mapping->slave_addr;
+    if (!temp_slave_addr) {
+	/* no SDVO device is found in another DVO port */
+	/* it will return 0x70 for SDVOB and 0x72 for SDVOC */
+	if (output_device == SDVOB)
+		temp_slave_addr = 0x70;
+	else
+		temp_slave_addr = 0x72;
+	*slave_addr = temp_slave_addr;
+	return ;
+    }
+    /* return the slave address that is not used.
+     * If the 0x70 is used, then 0x72 is returned.
+     * If the 0x72 is used, then 0x70 is returned.
+     */
+    if (temp_slave_addr == 0x70)
+	temp_slave_addr = 0x72;
+    else
+	temp_slave_addr = 0x70;
+
+    *slave_addr = temp_slave_addr;
+    return ;
+}
 Bool
 i830_sdvo_init(ScrnInfoPtr pScrn, int output_device)
 {
@@ -2145,6 +2207,10 @@ i830_sdvo_init(ScrnInfoPtr pScrn, int output_device)
     int			    i;
     unsigned char	    ch[0x40];
     I2CBusPtr		    i2cbus = NULL, ddcbus;
+    uint8_t slave_addr;
+
+    slave_addr = 0;
+    i830_find_sdvo_slave(pScrn, output_device, &slave_addr);
 
     output = xf86OutputCreate (pScrn, &i830_sdvo_output_funcs,NULL);
     if (!output)
@@ -2180,14 +2246,12 @@ i830_sdvo_init(ScrnInfoPtr pScrn, int output_device)
 	xf86OutputDestroy (output);
 	return FALSE;
     }
-
     if (output_device == SDVOB) {
 	dev_priv->d.DevName = "SDVO Controller B";
-	dev_priv->d.SlaveAddr = 0x70;
     } else {
 	dev_priv->d.DevName = "SDVO Controller C";
-	dev_priv->d.SlaveAddr = 0x72;
     }
+    dev_priv->d.SlaveAddr = slave_addr;
     dev_priv->d.pI2CBus = i2cbus;
     dev_priv->d.DriverPrivate.ptr = output;
     dev_priv->output_device = output_device;
commit 51b87b9913ba164d4d5de79e558233915b37a0a5
Author: Zhao Yakui <yakui.zhao at intel.com>
Date:   Wed Jun 10 11:37:02 2009 +0800

    parse general definition block to get the SDVO device info
    
    The general definition block contains the child device tables, which include
    the child device info. For example: device slave address, device dvo port,
    device type.
    We will get the info of SDVO device by parsing the general definition blocks.
    Only when a valid slave address is found, it is regarded as the SDVO device.
    And the info of DVO port and slave address is recorded.
    
    http://bugs.freedesktop.org/show_bug.cgi?id=20429
    
    Signed-off-by: Zhao Yakui <yakui.zhao at intel.com>

diff --git a/src/i830.h b/src/i830.h
index a69f47c..19b189c 100644
--- a/src/i830.h
+++ b/src/i830.h
@@ -328,7 +328,12 @@ enum dri_type {
     DRI_NONE,
     DRI_DRI2
 };
-
+struct sdvo_device_mapping {
+   uint8_t dvo_port;
+   uint8_t slave_addr;
+   uint8_t dvo_wiring;
+   uint8_t initialized;
+};
 typedef struct _I830Rec {
    unsigned char *MMIOBase;
    unsigned char *GTTBase;
@@ -608,6 +613,7 @@ typedef struct _I830Rec {
 
     /** User option to print acceleration fallback info to the server log. */
    Bool fallback_debug;
+   struct sdvo_device_mapping sdvo_mappings[2];
 } I830Rec;
 
 #define I830PTR(p) ((I830Ptr)((p)->driverPrivate))
diff --git a/src/i830_bios.c b/src/i830_bios.c
index 9c1f101..2f129e9 100644
--- a/src/i830_bios.c
+++ b/src/i830_bios.c
@@ -47,6 +47,8 @@
 				 (bios[_addr + 2] << 16) |	\
 				 (bios[_addr + 3] << 24))
 
+#define		SLAVE_ADDR1	0x70
+#define		SLAVE_ADDR2	0x72
 static void *
 find_section(struct bdb_header *bdb, int section_id)
 {
@@ -236,6 +238,84 @@ parse_driver_feature(I830Ptr pI830, struct bdb_header *bdb)
 	pI830->integrated_lvds = FALSE;
 }
 
+static
+void parse_sdvo_mapping(ScrnInfoPtr pScrn, struct bdb_header *bdb)
+{
+    unsigned int block_size;
+    uint16_t *block_ptr;
+    struct bdb_general_definitions *defs;
+    struct child_device_config *child;
+    int i, child_device_num, count;
+    struct sdvo_device_mapping *p_mapping;
+    I830Ptr pI830 = I830PTR(pScrn);
+
+    defs = find_section(bdb, BDB_GENERAL_DEFINITIONS);
+    if (!defs) {
+	xf86DrvMsg(pScrn->scrnIndex, X_WARNING,
+			"can't find the general definition blocks\n");
+	return;
+    }
+    /* Get the block size of general defintion block */
+    block_ptr = (uint16_t *)((char *)defs - 2);
+    block_size = *block_ptr;
+    child_device_num = (block_size - sizeof(*defs)) / sizeof(*child);
+    count = 0;
+
+    for (i = 0; i < child_device_num; i++) {
+	child = &defs->devices[i];
+	if (!child->device_type) {
+		/* skip invalid child device type*/
+		 continue;
+	}
+	if (child->slave_addr == SLAVE_ADDR1 ||
+			child->slave_addr == SLAVE_ADDR2) {
+	    if (child->dvo_port != DEVICE_PORT_DVOB &&
+			child->dvo_port != DEVICE_PORT_DVOC) {
+		/* skip the incorrect sdvo port */
+		xf86DrvMsg(pScrn->scrnIndex, X_WARNING,
+				"Incorrect SDVO port\n");
+		continue;
+	    }
+	    xf86DrvMsg(pScrn->scrnIndex, X_INFO,
+			"the SDVO device with slave addr %x "
+			"is found on DVO %x port\n",
+			child->slave_addr, child->dvo_port);
+	    /* fill the primary dvo port */
+	    p_mapping = &(pI830->sdvo_mappings[child->dvo_port - 1]);
+	    if (!p_mapping->initialized) {
+		p_mapping->dvo_port = child->dvo_port;
+		p_mapping->dvo_wiring = child->dvo_wiring;
+		p_mapping->initialized = 1;
+		p_mapping->slave_addr = child->slave_addr;
+	    } else {
+		xf86DrvMsg(pScrn->scrnIndex, X_WARNING,
+				"One DVO port is shared by two slave "
+				"address. Maybe it can't be handled\n");
+	    }
+	    /* If there exists the slave2_addr, maybe it is a sdvo
+	     * device that contain multiple inputs. And it can't
+	     * handled by SDVO driver.
+	     * Ignore the dvo mapping of slave2_addr
+	     * of course its mapping info won't be added.
+	     */
+	    if (child->slave2_addr) {
+		xf86DrvMsg(pScrn->scrnIndex, X_WARNING,
+				"Two DVO ports uses the same slave address."
+				"Maybe it can't be handled by SDVO driver\n");
+	    }
+	    count++;
+	} else {
+	    /* if the slave address is neither 0x70 nor 0x72, skip it. */
+	    continue;
+	}
+    }
+    /* If the count is zero, it indicates that no sdvo device is found */
+    if (!count)
+	xf86DrvMsg(pScrn->scrnIndex, X_INFO,
+			"No SDVO device is found in VBT\n");
+
+    return;
+}
 #define INTEL_VBIOS_SIZE (64 * 1024)	/* XXX */
 
 /**
@@ -302,6 +382,7 @@ i830_bios_init(ScrnInfoPtr pScrn)
     parse_general_features(pI830, bdb);
     parse_panel_data(pI830, bdb);
     parse_driver_feature(pI830, bdb);
+    parse_sdvo_mapping(pScrn, bdb);
 
     xfree(bios);
 
commit 6ba148bbd78783f59eed3d898638c39b950dcd89
Author: Zhao Yakui <yakui.zhao at intel.com>
Date:   Wed Jun 10 11:37:01 2009 +0800

    Dynamically get the number of child device in general definition block
    
    The size of general definition block varies on different platform/machines.
    In such case the number of child device is also different.
    And it will be better to get the number of child device in general definition
    block dynamically.
    
    The number of child device can be calculated by the following formula:
    	(block_size - block_header_size) /
    		sizeof( struct child_device_config)
    
    http://bugs.freedesktop.org/show_bug.cgi?id=20429
    
    Signed-off-by: Zhao Yakui <yakui.zhao at intel.com>

diff --git a/src/bios_reader/bios_reader.c b/src/bios_reader/bios_reader.c
index 328cacf..27ec769 100644
--- a/src/bios_reader/bios_reader.c
+++ b/src/bios_reader/bios_reader.c
@@ -170,6 +170,7 @@ static void dump_general_definitions(void)
     struct child_device_config *child;
     int i;
     char child_id[11];
+    int child_device_num;
 
     block = find_section(BDB_GENERAL_DEFINITIONS);
 
@@ -188,7 +189,8 @@ static void dump_general_definitions(void)
     printf("\tBoot display type: 0x%02x%02x\n", defs->boot_display[1],
 	   defs->boot_display[0]);
     printf("\tTV data block present: %s\n", YESNO(tv_present));
-    for (i = 0; i < 4; i++) {
+    child_device_num = (block->size - sizeof(*defs)) / sizeof(*child);
+    for (i = 0; i < child_device_num; i++) {
 	child = &defs->devices[i];
 	if (!child->device_type) {
 	    printf("\tChild device %d not present\n", i);
diff --git a/src/i830_bios.h b/src/i830_bios.h
index 1f1f1aa..8a3025e 100644
--- a/src/i830_bios.h
+++ b/src/i830_bios.h
@@ -228,7 +228,7 @@ struct bdb_general_definitions {
 	 * TV and LVDS are missing, so be careful when interpreting
 	 * [4] and [5].
 	 */
-	struct child_device_config devices[6];
+	struct child_device_config devices[0];
 	/* may be another device block here on some platforms */
 } __attribute__((packed));
 
commit cdbf84f20295c8a78624318aa6fdfff3f5c8ce27
Author: Keith Packard <keithp at keithp.com>
Date:   Thu Jun 11 13:57:09 2009 -0700

    intel_batch_init: test have_gem, not directRenderingType
    
    Under KMS, directRenderingType will get set to DRI_NONE during driver
    initialization. When the first batch buffer is allocated, as
    directRenderingType is DRI_NONE, the GEM bufmgr would get trashed as
    intel_batch_init called a fake-bufmgr specific function.
    
    Signed-off-by: Keith Packard <keithp at keithp.com>

diff --git a/src/i830_batchbuffer.c b/src/i830_batchbuffer.c
index a6d9c6e..c24409b 100644
--- a/src/i830_batchbuffer.c
+++ b/src/i830_batchbuffer.c
@@ -135,7 +135,7 @@ intel_batch_init(ScrnInfoPtr pScrn)
 
     intel_next_batch(pScrn);
 
-    if (pI830->directRenderingType <= DRI_NONE) {
+    if (!pI830->have_gem) {
 	if (IS_I830(pI830) || IS_845G(pI830)) {
 	    intel_bufmgr_fake_set_exec_callback(pI830->bufmgr,
 						intel_nondrm_exec_i830,
commit 6d062e9e9fc4ac92a5dc2941b4ed0251a1dc6e11
Author: Julien Cristau <jcristau at debian.org>
Date:   Thu Jun 11 17:15:04 2009 +0200

    Fix xvmc build
    
    If we don't find xext.pc, disable xvmc instead of failing configure
    Also add dependencies on xfixes and dri2proto (src/xvmc/dri2.h includes
    <X11/extensions/Xfixes.h> and <X11/extensions/dri2tokens.h>).

diff --git a/configure.ac b/configure.ac
index c40818f..0864d7c 100644
--- a/configure.ac
+++ b/configure.ac
@@ -152,8 +152,7 @@ if test "$VIDEO_DEBUG" = yes; then
 fi
 
 if test "$XVMC" = yes; then
-	PKG_CHECK_MODULES(XVMCLIB, [xvmc], [XVMC=yes], [XVMC=no])
-	PKG_CHECK_MODULES(XEXT, [xext])
+	PKG_CHECK_MODULES(XVMCLIB, [xvmc xext xfixes dri2proto], [XVMC=yes], [XVMC=no])
 fi
 AC_MSG_CHECKING([whether to include XvMC support])
 AC_MSG_RESULT([$XVMC])
diff --git a/src/xvmc/Makefile.am b/src/xvmc/Makefile.am
index fc402bb..6cbba6a 100644
--- a/src/xvmc/Makefile.am
+++ b/src/xvmc/Makefile.am
@@ -31,4 +31,4 @@ libIntelXvMC_la_SOURCES = intel_xvmc.c \
 libIntelXvMC_la_CFLAGS = @XORG_CFLAGS@ @DRM_CFLAGS@ @DRI_CFLAGS@ \
 	@XVMCLIB_CFLAGS@ -I$(top_srcdir)/src -DTRUE=1 -DFALSE=0
 libIntelXvMC_la_LDFLAGS = -version-number 1:0:0
-libIntelXvMC_la_LIBADD = @DRI_LIBS@ @DRM_LIBS@ @XVMCLIB_LIBS@ @XEXT_LIBS@ -lpthread -ldrm_intel
+libIntelXvMC_la_LIBADD = @DRI_LIBS@ @DRM_LIBS@ @XVMCLIB_LIBS@ -lpthread -ldrm_intel
diff --git a/src/xvmc/intel_xvmc.c b/src/xvmc/intel_xvmc.c
index 6f55902..06763ae 100644
--- a/src/xvmc/intel_xvmc.c
+++ b/src/xvmc/intel_xvmc.c
@@ -25,6 +25,7 @@
  *
  */
 #include "intel_xvmc.h"
+#include "dri2.h"
 
 /* global */
 struct _intel_xvmc_driver *xvmc_driver = NULL;
commit 9d3c3b056c1d4da6ef7afd3f71a5994fad810632
Author: Carl Worth <cworth at cworth.org>
Date:   Wed Jun 10 15:30:45 2009 -0700

    Increment version to 2.7.99.901
    
    This is the first release candidate for 2.8.0

diff --git a/configure.ac b/configure.ac
index d1629d1..c40818f 100644
--- a/configure.ac
+++ b/configure.ac
@@ -22,7 +22,7 @@
 
 AC_PREREQ(2.57)
 AC_INIT([xf86-video-intel],
-        2.7.99.1,
+        2.7.99.901,
         [https://bugs.freedesktop.org/enter_bug.cgi?product=xorg],
         xf86-video-intel)
 
commit e2622045155f5aa79bacbec8f81c1231194f3033
Author: Carl Worth <cworth at cworth.org>
Date:   Wed Jun 10 15:30:09 2009 -0700

    NEWS: Summarize new developments for 2.7.99.901

diff --git a/NEWS b/NEWS
index 5787be3..294a78c 100644
--- a/NEWS
+++ b/NEWS
@@ -1,3 +1,28 @@
+Snapshot 2.7.99.901 (2009-06-10)
+--------------------------------
+This is the first release candidate in preparation for the upcoming
+2.8.0 release. Most critical bugs should be fixed, but some major
+bugs may still be present. We will appreciate any feedback we can
+get from testing of this snapshot to improve the 2.8.0 release.
+
+Some of the major fixes in this snapshot include:
+
+	* Several fixes for intermittent GPU hangs/crashes, (some of
+	  which already appeared in the 2.7.1 release)
+
+	* Fix to avoid X crash when viewing large images in browser
+
+	* Fix X server failure when running old (non-GEM) kernel
+
+	* Fixes for SDVO LVDS mode detection
+
+	* Fix major performance regression of trapezoid rendering
+          compared to XAA/EXA
+
+	* New support for tear-free video when using KMS
+
+	* New support for tear-free DRI2 CopyRegion
+
 Snapshot 2.7.99.1 (2009-04-28)
 ------------------------------
 This is a development snapshot very early in the process toward
commit e5bfa2702a31566fa94fa75f7289d7cbe9825420
Author: Lukasz Kurylo <Lukasz.Kurylo at gmail.com>
Date:   Wed Jun 10 07:55:31 2009 -0700

    DRI2 copyregion: don't wait for scanlines that won't happen
    
    In some configurations, it's possible to wait for a scanline outside of
    a given CRTC range.  Make sure that can't happen to fix multihead cases
    with dead space.
    
    Fixes fdo bug #22203.
    
    Signed-off-by: Lukasz Kurylo <Lukasz.Kurylo at gmail.com>

diff --git a/src/i830_dri.c b/src/i830_dri.c
index 9da1d40..c28f3ab 100644
--- a/src/i830_dri.c
+++ b/src/i830_dri.c
@@ -325,8 +325,10 @@ I830DRI2CopyRegion(DrawablePtr pDraw, RegionPtr pRegion,
 		load_scan_lines_pipe = MI_LOAD_SCAN_LINES_DISPLAY_PIPEB;
 	    }
 
-	    y1 = box->y1 - crtc->y;
-	    y2 = box->y2 - crtc->y;
+	    /* Make sure we don't wait for a scanline that will never occur */
+	    y1 = (crtcbox.y1 <= box->y1) ? box->y1 - crtcbox.y1 : 0;
+	    y2 = (box->y2 <= crtcbox.y2) ?
+		box->y2 - crtcbox.y1 : crtcbox.y2 - crtcbox.y1;
 
 	    BEGIN_BATCH(5);
 	    /* The documentation says that the LOAD_SCAN_LINES command
commit cda5561716891484aa6f1c4a234be8d88f17f659
Author: Zou Nan hai <nanhai.zou at intel.com>
Date:   Wed Jun 10 16:43:30 2009 +0800

      add missing files for previous commit

diff --git a/src/xvmc/shader/mc/addidct_igd.g4i b/src/xvmc/shader/mc/addidct_igd.g4i
new file mode 100644
index 0000000..56fa2af
--- /dev/null
+++ b/src/xvmc/shader/mc/addidct_igd.g4i
@@ -0,0 +1,117 @@
+/* GRF allocation:
+   g1~g30: constant buffer
+           g1~g2:intra IQ matrix
+           g3~g4:non intra IQ matrix
+           g5~g20:IDCT table
+   g31:    thread payload 
+   g32:    message descriptor for reading reference data
+   g58~g81:reference data
+   g82:    thread payload backup
+   g84~g107:IDCT data                           */
+//mov (2) g31.0<1>UD g82.12<2,2,1>UW {align1};          //restore x and y
+mov (2) g31.0<1>UD g82.0<2,2,1>UD {align1};          //restore x and y
+
+and.nz (1) null g82.30<1,1,1>UB 0x1UW {align1};       //dct_type
+(f0) jmpi field_dct;
+
+add.sat (32) g58.0<2>UB g84.0<16,16,1>W g58.0<16,16,2>UB {align1 compr};
+add.sat (32) g60.0<2>UB g86.0<16,16,1>W g60.0<16,16,2>UB {align1 compr};
+add.sat (32) g62.0<2>UB g88.0<16,16,1>W g62.0<16,16,2>UB {align1 compr};
+add.sat (32) g64.0<2>UB g90.0<16,16,1>W g64.0<16,16,2>UB {align1 compr};
+add.sat (32) g66.0<2>UB g92.0<16,16,1>W g66.0<16,16,2>UB {align1 compr};
+add.sat (32) g68.0<2>UB g94.0<16,16,1>W g68.0<16,16,2>UB {align1 compr};
+add.sat (32) g70.0<2>UB g96.0<16,16,1>W g70.0<16,16,2>UB {align1 compr};
+add.sat (32) g72.0<2>UB g98.0<16,16,1>W g72.0<16,16,2>UB {align1 compr};
+
+add.sat (32) g74.0<2>UB g100.0<16,16,1>W g74.0<16,16,2>UB {align1 compr};
+add.sat (32) g76.0<2>UB g102.0<16,16,1>W g76.0<16,16,2>UB {align1 compr};
+add.sat (32) g78.0<2>UB g104.0<16,16,1>W g78.0<16,16,2>UB {align1 compr};
+add.sat (32) g80.0<2>UB g106.0<16,16,1>W g80.0<16,16,2>UB {align1 compr};
+jmpi write_back;
+
+field_dct:
+add.sat (16) g58.0<2>UB g84.0<16,16,1>W g58.0<16,16,2>UB {align1};
+add.sat (16) g59.0<2>UB g92.0<16,16,1>W g59.0<16,16,2>UB {align1};
+add.sat (16) g60.0<2>UB g85.0<16,16,1>W g60.0<16,16,2>UB {align1};
+add.sat (16) g61.0<2>UB g93.0<16,16,1>W g61.0<16,16,2>UB {align1};
+add.sat (16) g62.0<2>UB g86.0<16,16,1>W g62.0<16,16,2>UB {align1};
+add.sat (16) g63.0<2>UB g94.0<16,16,1>W g63.0<16,16,2>UB {align1};
+add.sat (16) g64.0<2>UB g87.0<16,16,1>W g64.0<16,16,2>UB {align1};
+add.sat (16) g65.0<2>UB g95.0<16,16,1>W g65.0<16,16,2>UB {align1};
+add.sat (16) g66.0<2>UB g88.0<16,16,1>W g66.0<16,16,2>UB {align1};
+add.sat (16) g67.0<2>UB g96.0<16,16,1>W g67.0<16,16,2>UB {align1};
+add.sat (16) g68.0<2>UB g89.0<16,16,1>W g68.0<16,16,2>UB {align1};
+add.sat (16) g69.0<2>UB g97.0<16,16,1>W g69.0<16,16,2>UB {align1};
+add.sat (16) g70.0<2>UB g90.0<16,16,1>W g70.0<16,16,2>UB {align1};
+add.sat (16) g71.0<2>UB g98.0<16,16,1>W g71.0<16,16,2>UB {align1};
+add.sat (16) g72.0<2>UB g91.0<16,16,1>W g72.0<16,16,2>UB {align1};
+add.sat (16) g73.0<2>UB g99.0<16,16,1>W g73.0<16,16,2>UB {align1};
+/*
+add.sat (16) g74.0<2>UB g100.0<16,16,1>W g74.0<16,16,2>UB {align1};
+add.sat (16) g75.0<2>UB g101.0<16,16,1>W g75.0<16,16,2>UB {align1};
+add.sat (16) g76.0<2>UB g102.0<16,16,1>W g76.0<16,16,2>UB {align1};
+add.sat (16) g77.0<2>UB g103.0<16,16,1>W g77.0<16,16,2>UB {align1};
+add.sat (16) g78.0<2>UB g104.0<16,16,1>W g78.0<16,16,2>UB {align1};
+add.sat (16) g79.0<2>UB g105.0<16,16,1>W g79.0<16,16,2>UB {align1};
+add.sat (16) g80.0<2>UB g106.0<16,16,1>W g80.0<16,16,2>UB {align1};
+add.sat (16) g81.0<2>UB g107.0<16,16,1>W g81.0<16,16,2>UB {align1};
+*/
+add (16) g100.0<1>W g100.0<16,16,1>W g74.0<16,16,2>UB {align1};
+add (16) g101.0<1>W g101.0<16,16,1>W g75.0<16,16,2>UB {align1};
+add (16) g102.0<1>W g102.0<16,16,1>W g76.0<16,16,2>UB {align1};
+add (16) g103.0<1>W g103.0<16,16,1>W g77.0<16,16,2>UB {align1};
+add (16) g104.0<1>W g104.0<16,16,1>W g78.0<16,16,2>UB {align1};
+add (16) g105.0<1>W g105.0<16,16,1>W g79.0<16,16,2>UB {align1};
+add (16) g106.0<1>W g106.0<16,16,1>W g80.0<16,16,2>UB {align1};
+add (16) g107.0<1>W g107.0<16,16,1>W g81.0<16,16,2>UB {align1};
+
+mov.sat (16) g74.0<2>UB g100.0<16,16,1>W {align1};
+mov.sat (16) g75.0<2>UB g101.0<16,16,1>W {align1};
+mov.sat (16) g76.0<2>UB g102.0<16,16,1>W {align1};
+mov.sat (16) g77.0<2>UB g103.0<16,16,1>W {align1};
+mov.sat (16) g78.0<2>UB g104.0<16,16,1>W {align1};
+mov.sat (16) g79.0<2>UB g105.0<16,16,1>W {align1};
+mov.sat (16) g80.0<2>UB g106.0<16,16,1>W {align1};
+mov.sat (16) g81.0<2>UB g107.0<16,16,1>W {align1};
+
+
+write_back:
+mov (1) g31.8<1>UD 0x00F000FUD {align1};
+
+mov (16) m1.0<1>UB  g58.0<16,16,2>UB {align1};
+mov (16) m1.16<1>UB g59.0<16,16,2>UB {align1};
+mov (16) m2.0<1>UB  g60.0<16,16,2>UB {align1};
+mov (16) m2.16<1>UB g61.0<16,16,2>UB {align1};
+mov (16) m3.0<1>UB  g62.0<16,16,2>UB {align1};
+mov (16) m3.16<1>UB g63.0<16,16,2>UB {align1};
+mov (16) m4.0<1>UB  g64.0<16,16,2>UB {align1};
+mov (16) m4.16<1>UB g65.0<16,16,2>UB {align1};
+mov (16) m5.0<1>UB  g66.0<16,16,2>UB {align1};
+mov (16) m5.16<1>UB g67.0<16,16,2>UB {align1};
+mov (16) m6.0<1>UB  g68.0<16,16,2>UB {align1};
+mov (16) m6.16<1>UB g69.0<16,16,2>UB {align1};
+mov (16) m7.0<1>UB  g70.0<16,16,2>UB {align1};
+mov (16) m7.16<1>UB g71.0<16,16,2>UB {align1};
+mov (16) m8.0<1>UB  g72.0<16,16,2>UB {align1};
+mov (16) m8.16<1>UB g73.0<16,16,2>UB {align1};
+send (16) 0 acc0<1>UW g31<8,8,1>UW write(0,0,2,0) mlen 9 rlen 0 {align1};
+
+//U
+mov (1) g31.8<1>UD 0x0070007UD  { align1 };
+shr (2) g31.0<1>UD g31.0<2,2,1>UD 1D {align1};
+
+mov (16) m1.0<1>UB g74.0<16,16,2>UB {align1};
+mov (16) m1.16<1>UB g75.0<16,16,2>UB {align1};
+mov (16) m2.0<1>UB g76.0<16,16,2>UB {align1};
+mov (16) m2.16<1>UB g77.0<16,16,2>UB {align1};
+send (16) 0 acc0<1>UW g31<8,8,1>UW write(1, 0, 2, 0) mlen 3 rlen 0 { align1 };
+
+//V
+mov (16) m1.0<1>UB g78.0<16,16,2>UB {align1};
+mov (16) m1.16<1>UB g79.0<16,16,2>UB {align1};
+mov (16) m2.0<1>UB g80.0<16,16,2>UB {align1};
+mov (16) m2.16<1>UB g81.0<16,16,2>UB {align1};
+send (16) 0 acc0<1>UW g31<8,8,1>UW write(2, 0, 2, 0) mlen 3 rlen 0 { align1 };
+
+send (16) 0 acc0<1>UW g0<8,8,1>UW
+        thread_spawner(0, 0, 0) mlen 1 rlen 0 { align1 EOT};
diff --git a/src/xvmc/shader/mc/ipicture_igd.g4a b/src/xvmc/shader/mc/ipicture_igd.g4a
new file mode 100644
index 0000000..20c3d8e
--- /dev/null
+++ b/src/xvmc/shader/mc/ipicture_igd.g4a
@@ -0,0 +1,105 @@
+/*
+   GRF allocation:
+   g1~g30: constant buffer
+           g1~g2:intra IQ matrix
+           g3~g4:non intra IQ matrix
+           g5~g20:IDCT tab
+   g31:    read and write message descriptor
+   g32~g55:DCT data
+   g58~g81:reference data
+   g82:    thread payload 
+   g83~g106:IDCT data 
+*/
+mov (8) g82.0<1>UD g31.0<8,8,1>UD {align1};
+
+mov.sat (16) g33.0<2>UB g33.0<16,16,1>W {align1};
+mov.sat (16) g34.0<2>UB g34.0<16,16,1>W {align1};
+mov.sat (16) g35.0<2>UB g35.0<16,16,1>W {align1};
+mov.sat (16) g36.0<2>UB g36.0<16,16,1>W {align1};
+mov.sat (16) g37.0<2>UB g37.0<16,16,1>W {align1};
+mov.sat (16) g38.0<2>UB g38.0<16,16,1>W {align1};
+mov.sat (16) g39.0<2>UB g39.0<16,16,1>W {align1};
+mov.sat (16) g40.0<2>UB g40.0<16,16,1>W {align1};
+mov.sat (16) g41.0<2>UB g41.0<16,16,1>W {align1};
+mov.sat (16) g42.0<2>UB g42.0<16,16,1>W {align1};
+mov.sat (16) g43.0<2>UB g43.0<16,16,1>W {align1};
+mov.sat (16) g44.0<2>UB g44.0<16,16,1>W {align1};
+mov.sat (16) g45.0<2>UB g45.0<16,16,1>W {align1};
+mov.sat (16) g46.0<2>UB g46.0<16,16,1>W {align1};
+mov.sat (16) g47.0<2>UB g47.0<16,16,1>W {align1};
+mov.sat (16) g48.0<2>UB g48.0<16,16,1>W {align1};
+
+mov.sat (16) g49.0<2>UB g49.0<16,16,1>W {align1};
+mov.sat (16) g50.0<2>UB g50.0<16,16,1>W {align1};
+mov.sat (16) g51.0<2>UB g51.0<16,16,1>W {align1};
+mov.sat (16) g52.0<2>UB g52.0<16,16,1>W {align1};
+mov.sat (16) g53.0<2>UB g53.0<16,16,1>W {align1};
+mov.sat (16) g54.0<2>UB g54.0<16,16,1>W {align1};
+mov.sat (16) g55.0<2>UB g55.0<16,16,1>W {align1};
+mov.sat (16) g56.0<2>UB g56.0<16,16,1>W {align1};
+
+mov (1) g31.8<1>UD 0x00F000FUD {align1};
+
+and.nz (1) null g82.30<1,1,1>UB 0x1UW{align1};
+(f0) jmpi field_dct_y;
+
+mov (16) m1.0<1>UB  g33.0<16,16,2>UB {align1};
+mov (16) m1.16<1>UB g34.0<16,16,2>UB {align1};
+mov (16) m2.0<1>UB  g35.0<16,16,2>UB {align1};
+mov (16) m2.16<1>UB g36.0<16,16,2>UB {align1};
+mov (16) m3.0<1>UB  g37.0<16,16,2>UB {align1};
+mov (16) m3.16<1>UB g38.0<16,16,2>UB {align1};
+mov (16) m4.0<1>UB  g39.0<16,16,2>UB {align1};
+mov (16) m4.16<1>UB g40.0<16,16,2>UB {align1};
+mov (16) m5.0<1>UB  g41.0<16,16,2>UB {align1};
+mov (16) m5.16<1>UB g42.0<16,16,2>UB {align1};
+mov (16) m6.0<1>UB  g43.0<16,16,2>UB {align1};
+mov (16) m6.16<1>UB g44.0<16,16,2>UB {align1};
+mov (16) m7.0<1>UB  g45.0<16,16,2>UB {align1};
+mov (16) m7.16<1>UB g46.0<16,16,2>UB {align1};
+mov (16) m8.0<1>UB  g47.0<16,16,2>UB {align1};
+mov (16) m8.16<1>UB g48.0<16,16,2>UB {align1};
+jmpi write_back_y;
+
+field_dct_y:
+mov (16) m1.0<1>UB  g33.0<16,16,2>UB {align1};
+mov (16) m1.16<1>UB g41.0<16,16,2>UB {align1};
+mov (16) m2.0<1>UB  g34.0<16,16,2>UB {align1};
+mov (16) m2.16<1>UB g42.0<16,16,2>UB {align1};
+mov (16) m3.0<1>UB  g35.0<16,16,2>UB {align1};
+mov (16) m3.16<1>UB g43.0<16,16,2>UB {align1};
+mov (16) m4.0<1>UB  g36.0<16,16,2>UB {align1};
+mov (16) m4.16<1>UB g44.0<16,16,2>UB {align1};
+mov (16) m5.0<1>UB  g37.0<16,16,2>UB {align1};
+mov (16) m5.16<1>UB g45.0<16,16,2>UB {align1};
+mov (16) m6.0<1>UB  g38.0<16,16,2>UB {align1};
+mov (16) m6.16<1>UB g46.0<16,16,2>UB {align1};
+mov (16) m7.0<1>UB  g39.0<16,16,2>UB {align1};
+mov (16) m7.16<1>UB g47.0<16,16,2>UB {align1};
+mov (16) m8.0<1>UB  g40.0<16,16,2>UB {align1};
+mov (16) m8.16<1>UB g48.0<16,16,2>UB {align1};
+
+write_back_y:
+send (16) 0 acc0<1>UW g31<8,8,1>UW write(0,0,2,0) mlen 9 rlen 0 {align1};
+
+//U
+mov (1) g31.8<1>UD 0x0070007UD  { align1 };
+shr (2) g31.0<1>UD g82.0<2,2,1>UD 1D {align1};
+
+mov (16) m1.0<1>UB  g49.0<16,16,2>UB {align1};
+mov (16) m1.16<1>UB g50.0<16,16,2>UB {align1};
+mov (16) m2.0<1>UB  g51.0<16,16,2>UB {align1};
+mov (16) m2.16<1>UB g52.0<16,16,2>UB {align1};
+send (16) 0 acc0<1>UW g31<8,8,1>UW write(1, 0, 2, 0) mlen 3 rlen 0 { align1 };
+
+//V
+mov (16) m1.0<1>UB  g53.0<16,16,2>UB {align1};
+mov (16) m1.16<1>UB g54.0<16,16,2>UB {align1};
+mov (16) m2.0<1>UB  g55.0<16,16,2>UB {align1};
+mov (16) m2.16<1>UB g56.0<16,16,2>UB {align1};
+send (16) 0 acc0<1>UW g31<8,8,1>UW write(2, 0, 2, 0) mlen 3 rlen 0 { align1 };
+
+OUT:
+send (16) 0 acc0<1>UW g0<8,8,1>UW
+        thread_spawner(0, 0, 0) mlen 1 rlen 0 { align1 EOT};
+
diff --git a/src/xvmc/shader/mc/ipicture_igd.g4b b/src/xvmc/shader/mc/ipicture_igd.g4b
new file mode 100644
index 0000000..c0947f7
--- /dev/null
+++ b/src/xvmc/shader/mc/ipicture_igd.g4b
@@ -0,0 +1,75 @@
+   { 0x00600001, 0x2a400021, 0x008d03e0, 0x00000000 },
+   { 0x80800001, 0x442001b1, 0x00b10420, 0x00000000 },
+   { 0x80800001, 0x444001b1, 0x00b10440, 0x00000000 },
+   { 0x80800001, 0x446001b1, 0x00b10460, 0x00000000 },
+   { 0x80800001, 0x448001b1, 0x00b10480, 0x00000000 },
+   { 0x80800001, 0x44a001b1, 0x00b104a0, 0x00000000 },
+   { 0x80800001, 0x44c001b1, 0x00b104c0, 0x00000000 },
+   { 0x80800001, 0x44e001b1, 0x00b104e0, 0x00000000 },
+   { 0x80800001, 0x450001b1, 0x00b10500, 0x00000000 },
+   { 0x80800001, 0x452001b1, 0x00b10520, 0x00000000 },
+   { 0x80800001, 0x454001b1, 0x00b10540, 0x00000000 },
+   { 0x80800001, 0x456001b1, 0x00b10560, 0x00000000 },
+   { 0x80800001, 0x458001b1, 0x00b10580, 0x00000000 },
+   { 0x80800001, 0x45a001b1, 0x00b105a0, 0x00000000 },
+   { 0x80800001, 0x45c001b1, 0x00b105c0, 0x00000000 },
+   { 0x80800001, 0x45e001b1, 0x00b105e0, 0x00000000 },
+   { 0x80800001, 0x460001b1, 0x00b10600, 0x00000000 },
+   { 0x80800001, 0x462001b1, 0x00b10620, 0x00000000 },
+   { 0x80800001, 0x464001b1, 0x00b10640, 0x00000000 },
+   { 0x80800001, 0x466001b1, 0x00b10660, 0x00000000 },
+   { 0x80800001, 0x468001b1, 0x00b10680, 0x00000000 },
+   { 0x80800001, 0x46a001b1, 0x00b106a0, 0x00000000 },
+   { 0x80800001, 0x46c001b1, 0x00b106c0, 0x00000000 },
+   { 0x80800001, 0x46e001b1, 0x00b106e0, 0x00000000 },
+   { 0x80800001, 0x470001b1, 0x00b10700, 0x00000000 },
+   { 0x00000001, 0x23e80061, 0x00000000, 0x000f000f },
+   { 0x02000005, 0x20002e3c, 0x00210a5e, 0x00010001 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x00000011 },
+   { 0x00800001, 0x20200232, 0x00b20420, 0x00000000 },
+   { 0x00800001, 0x20300232, 0x00b20440, 0x00000000 },
+   { 0x00800001, 0x20400232, 0x00b20460, 0x00000000 },
+   { 0x00800001, 0x20500232, 0x00b20480, 0x00000000 },
+   { 0x00800001, 0x20600232, 0x00b204a0, 0x00000000 },
+   { 0x00800001, 0x20700232, 0x00b204c0, 0x00000000 },
+   { 0x00800001, 0x20800232, 0x00b204e0, 0x00000000 },
+   { 0x00800001, 0x20900232, 0x00b20500, 0x00000000 },
+   { 0x00800001, 0x20a00232, 0x00b20520, 0x00000000 },
+   { 0x00800001, 0x20b00232, 0x00b20540, 0x00000000 },
+   { 0x00800001, 0x20c00232, 0x00b20560, 0x00000000 },
+   { 0x00800001, 0x20d00232, 0x00b20580, 0x00000000 },
+   { 0x00800001, 0x20e00232, 0x00b205a0, 0x00000000 },
+   { 0x00800001, 0x20f00232, 0x00b205c0, 0x00000000 },
+   { 0x00800001, 0x21000232, 0x00b205e0, 0x00000000 },
+   { 0x00800001, 0x21100232, 0x00b20600, 0x00000000 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000010 },
+   { 0x00800001, 0x20200232, 0x00b20420, 0x00000000 },
+   { 0x00800001, 0x20300232, 0x00b20520, 0x00000000 },
+   { 0x00800001, 0x20400232, 0x00b20440, 0x00000000 },
+   { 0x00800001, 0x20500232, 0x00b20540, 0x00000000 },
+   { 0x00800001, 0x20600232, 0x00b20460, 0x00000000 },
+   { 0x00800001, 0x20700232, 0x00b20560, 0x00000000 },
+   { 0x00800001, 0x20800232, 0x00b20480, 0x00000000 },
+   { 0x00800001, 0x20900232, 0x00b20580, 0x00000000 },
+   { 0x00800001, 0x20a00232, 0x00b204a0, 0x00000000 },
+   { 0x00800001, 0x20b00232, 0x00b205a0, 0x00000000 },
+   { 0x00800001, 0x20c00232, 0x00b204c0, 0x00000000 },
+   { 0x00800001, 0x20d00232, 0x00b205c0, 0x00000000 },
+   { 0x00800001, 0x20e00232, 0x00b204e0, 0x00000000 },
+   { 0x00800001, 0x20f00232, 0x00b205e0, 0x00000000 },
+   { 0x00800001, 0x21000232, 0x00b20500, 0x00000000 },
+   { 0x00800001, 0x21100232, 0x00b20600, 0x00000000 },
+   { 0x00800031, 0x24001d28, 0x008d03e0, 0x05902000 },
+   { 0x00000001, 0x23e80061, 0x00000000, 0x00070007 },
+   { 0x00200008, 0x23e01c21, 0x00450a40, 0x00000001 },
+   { 0x00800001, 0x20200232, 0x00b20620, 0x00000000 },
+   { 0x00800001, 0x20300232, 0x00b20640, 0x00000000 },
+   { 0x00800001, 0x20400232, 0x00b20660, 0x00000000 },
+   { 0x00800001, 0x20500232, 0x00b20680, 0x00000000 },
+   { 0x00800031, 0x24001d28, 0x008d03e0, 0x05302001 },
+   { 0x00800001, 0x20200232, 0x00b206a0, 0x00000000 },
+   { 0x00800001, 0x20300232, 0x00b206c0, 0x00000000 },
+   { 0x00800001, 0x20400232, 0x00b206e0, 0x00000000 },
+   { 0x00800001, 0x20500232, 0x00b20700, 0x00000000 },
+   { 0x00800031, 0x24001d28, 0x008d03e0, 0x05302002 },
+   { 0x00800031, 0x24001d28, 0x008d0000, 0x87100000 },
diff --git a/src/xvmc/shader/mc/lib_igd.g4a b/src/xvmc/shader/mc/lib_igd.g4a
new file mode 100644
index 0000000..649619f
--- /dev/null
+++ b/src/xvmc/shader/mc/lib_igd.g4a
@@ -0,0 +1,133 @@
+/* GRF allocation:
+   g1~g30: constant buffer
+           g1~g2:intra IQ matrix in UB format
+           g3~g4:non intra IQ matrix in UB format
+           g5~g20:IDCT table
+   g32~g55:DCT data before IQ
+   g56~g79:DCT data after IQ
+   g84~g107: IDCT data after idct
+   g82:    thread payload backup
+   g126.8:   ip before jump to the lib
+*/
+jmpi MOTION_FRAME_Y;
+jmpi MOTION_FRAME_UV;
+jmpi MOTION_FIELD_Y;
+jmpi MOTION_FIELD_UV;
+jmpi ADD_IDCT;
+
+mov (16) g84.0<1>W g33.0<16,16,1>W {align1};
+mov (16) g85.0<1>W g34.0<16,16,1>W {align1};
+mov (16) g86.0<1>W g35.0<16,16,1>W {align1};
+mov (16) g87.0<1>W g36.0<16,16,1>W {align1};
+mov (16) g88.0<1>W g37.0<16,16,1>W {align1};
+mov (16) g89.0<1>W g38.0<16,16,1>W {align1};
+mov (16) g90.0<1>W g39.0<16,16,1>W {align1};
+mov (16) g91.0<1>W g40.0<16,16,1>W {align1};
+mov (16) g92.0<1>W g41.0<16,16,1>W {align1};
+mov (16) g93.0<1>W g42.0<16,16,1>W {align1};
+mov (16) g94.0<1>W g43.0<16,16,1>W {align1};
+mov (16) g95.0<1>W g44.0<16,16,1>W {align1};
+mov (16) g96.0<1>W g45.0<16,16,1>W {align1};
+mov (16) g97.0<1>W g46.0<16,16,1>W {align1};
+mov (16) g98.0<1>W g47.0<16,16,1>W {align1};
+mov (16) g99.0<1>W g48.0<16,16,1>W {align1};
+
+mov (16) g100.0<1>W g49.0<16,16,1>W {align1};
+mov (16) g101.0<1>W g50.0<16,16,1>W {align1};
+mov (16) g102.0<1>W g51.0<16,16,1>W {align1};
+mov (16) g103.0<1>W g52.0<16,16,1>W {align1};
+mov (16) g104.0<1>W g53.0<16,16,1>W {align1};
+mov (16) g105.0<1>W g54.0<16,16,1>W {align1};
+mov (16) g106.0<1>W g55.0<16,16,1>W {align1};
+mov (16) g107.0<1>W g56.0<16,16,1>W {align1};
+
+//Y0
+and.nz (1) null g82.12<1,1,1>UW 0x20UW {align1};
+(f0) jmpi block_y1;
+mov (8) g84.0<1>W 0W {align1};
+mov (8) g85.0<1>W 0W {align1};
+mov (8) g86.0<1>W 0W {align1};
+mov (8) g87.0<1>W 0W {align1};
+mov (8) g88.0<1>W 0W {align1};
+mov (8) g89.0<1>W 0W {align1};
+mov (8) g90.0<1>W 0W {align1};
+mov (8) g91.0<1>W 0W {align1};
+
+//Y1
+block_y1:
+and.nz (1) null g82.12<1,1,1>UW 0x10UW {align1};
+(f0) jmpi block_y2;
+mov (8) g84.16<1>W 0W {align1};
+mov (8) g85.16<1>W 0W {align1};
+mov (8) g86.16<1>W 0W {align1};
+mov (8) g87.16<1>W 0W {align1};
+mov (8) g88.16<1>W 0W {align1};
+mov (8) g89.16<1>W 0W {align1};
+mov (8) g90.16<1>W 0W {align1};
+mov (8) g91.16<1>W 0W {align1};
+
+//Y2
+block_y2:
+and.nz (1) null g82.12<1,1,1>UW 0x08UW {align1};
+(f0) jmpi block_y3;
+mov (8) g92.0<1>W 0W {align1};
+mov (8) g93.0<1>W 0W {align1};
+mov (8) g94.0<1>W 0W {align1};
+mov (8) g95.0<1>W 0W {align1};
+mov (8) g96.0<1>W 0W {align1};
+mov (8) g97.0<1>W 0W {align1};
+mov (8) g98.0<1>W 0W {align1};
+mov (8) g99.0<1>W 0W {align1};
+
+//Y3
+block_y3:
+and.nz (1) null g82.12<1,1,1>UW 0x04UW {align1};
+(f0) jmpi block_u;
+mov (8) g92.16<1>W 0W {align1};
+mov (8) g93.16<1>W 0W {align1};
+mov (8) g94.16<1>W 0W {align1};
+mov (8) g95.16<1>W 0W {align1};
+mov (8) g96.16<1>W 0W {align1};
+mov (8) g97.16<1>W 0W {align1};
+mov (8) g98.16<1>W 0W {align1};
+mov (8) g99.16<1>W 0W {align1};
+
+//U
+block_u:
+and.nz (1) null g82.12<1,1,1>UW 0x02UW {align1};
+(f0) jmpi block_v;
+mov (16) g100.0<1>W 0W {align1};
+mov (16) g101.0<1>W 0W {align1};
+mov (16) g102.0<1>W 0W {align1};
+mov (16) g103.0<1>W 0W {align1};
+
+//V
+block_v:
+and.nz (1) null g82.12<1,1,1>UW 0x01UW {align1};
+(f0) jmpi out;
+mov (16) g104.0<1>W 0W {align1};
+mov (16) g105.0<1>W 0W {align1};
+mov (16) g106.0<1>W 0W {align1};
+mov (16) g107.0<1>W 0W {align1};
+
+out:
+add (1) ip g126.8<1,1,1>UD 0x20UD {align1};            //jump back
+
+MOTION_FRAME_Y:
+include(`motion_frame_y_igd.g4i')
+add (1) ip g126.8<1,1,1>UD 0x20UD {align1};            //jump back
+
+MOTION_FRAME_UV:
+include(`motion_frame_uv_igd.g4i')
+add (1) ip g126.8<1,1,1>UD 0x20UD {align1};            //jump back
+
+MOTION_FIELD_Y:
+include(`motion_field_y_igd.g4i')
+add (1) ip g126.8<1,1,1>UD 0x20UD {align1};            //jump back
+
+MOTION_FIELD_UV:
+include(`motion_field_uv_igd.g4i')
+add (1) ip g126.8<1,1,1>UD 0x20UD {align1};            //jump back
+
+ADD_IDCT:
+include(`addidct_igd.g4i')
diff --git a/src/xvmc/shader/mc/lib_igd.g4b b/src/xvmc/shader/mc/lib_igd.g4b
new file mode 100644
index 0000000..0e8fe01
--- /dev/null
+++ b/src/xvmc/shader/mc/lib_igd.g4b
@@ -0,0 +1,558 @@
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000051 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x000000f0 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x000000fc },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x0000016f },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x000001da },
+   { 0x00800001, 0x2a8001ad, 0x00b10420, 0x00000000 },
+   { 0x00800001, 0x2aa001ad, 0x00b10440, 0x00000000 },
+   { 0x00800001, 0x2ac001ad, 0x00b10460, 0x00000000 },
+   { 0x00800001, 0x2ae001ad, 0x00b10480, 0x00000000 },
+   { 0x00800001, 0x2b0001ad, 0x00b104a0, 0x00000000 },
+   { 0x00800001, 0x2b2001ad, 0x00b104c0, 0x00000000 },
+   { 0x00800001, 0x2b4001ad, 0x00b104e0, 0x00000000 },
+   { 0x00800001, 0x2b6001ad, 0x00b10500, 0x00000000 },
+   { 0x00800001, 0x2b8001ad, 0x00b10520, 0x00000000 },
+   { 0x00800001, 0x2ba001ad, 0x00b10540, 0x00000000 },
+   { 0x00800001, 0x2bc001ad, 0x00b10560, 0x00000000 },
+   { 0x00800001, 0x2be001ad, 0x00b10580, 0x00000000 },
+   { 0x00800001, 0x2c0001ad, 0x00b105a0, 0x00000000 },
+   { 0x00800001, 0x2c2001ad, 0x00b105c0, 0x00000000 },
+   { 0x00800001, 0x2c4001ad, 0x00b105e0, 0x00000000 },
+   { 0x00800001, 0x2c6001ad, 0x00b10600, 0x00000000 },
+   { 0x00800001, 0x2c8001ad, 0x00b10620, 0x00000000 },
+   { 0x00800001, 0x2ca001ad, 0x00b10640, 0x00000000 },
+   { 0x00800001, 0x2cc001ad, 0x00b10660, 0x00000000 },
+   { 0x00800001, 0x2ce001ad, 0x00b10680, 0x00000000 },
+   { 0x00800001, 0x2d0001ad, 0x00b106a0, 0x00000000 },
+   { 0x00800001, 0x2d2001ad, 0x00b106c0, 0x00000000 },
+   { 0x00800001, 0x2d4001ad, 0x00b106e0, 0x00000000 },
+   { 0x00800001, 0x2d6001ad, 0x00b10700, 0x00000000 },
+   { 0x02000005, 0x20002d3c, 0x00210a4c, 0x00200020 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x00000008 },
+   { 0x00600001, 0x2a8001ed, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x2aa001ed, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x2ac001ed, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x2ae001ed, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x2b0001ed, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x2b2001ed, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x2b4001ed, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x2b6001ed, 0x00000000, 0x00000000 },
+   { 0x02000005, 0x20002d3c, 0x00210a4c, 0x00100010 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x00000008 },
+   { 0x00600001, 0x2a9001ed, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x2ab001ed, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x2ad001ed, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x2af001ed, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x2b1001ed, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x2b3001ed, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x2b5001ed, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x2b7001ed, 0x00000000, 0x00000000 },
+   { 0x02000005, 0x20002d3c, 0x00210a4c, 0x00080008 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x00000008 },
+   { 0x00600001, 0x2b8001ed, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x2ba001ed, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x2bc001ed, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x2be001ed, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x2c0001ed, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x2c2001ed, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x2c4001ed, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x2c6001ed, 0x00000000, 0x00000000 },
+   { 0x02000005, 0x20002d3c, 0x00210a4c, 0x00040004 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x00000008 },
+   { 0x00600001, 0x2b9001ed, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x2bb001ed, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x2bd001ed, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x2bf001ed, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x2c1001ed, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x2c3001ed, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x2c5001ed, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x2c7001ed, 0x00000000, 0x00000000 },
+   { 0x02000005, 0x20002d3c, 0x00210a4c, 0x00020002 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x00000004 },
+   { 0x00800001, 0x2c8001ed, 0x00000000, 0x00000000 },
+   { 0x00800001, 0x2ca001ed, 0x00000000, 0x00000000 },
+   { 0x00800001, 0x2cc001ed, 0x00000000, 0x00000000 },
+   { 0x00800001, 0x2ce001ed, 0x00000000, 0x00000000 },
+   { 0x02000005, 0x20002d3c, 0x00210a4c, 0x00010001 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x00000004 },
+   { 0x00800001, 0x2d0001ed, 0x00000000, 0x00000000 },
+   { 0x00800001, 0x2d2001ed, 0x00000000, 0x00000000 },
+   { 0x00800001, 0x2d4001ed, 0x00000000, 0x00000000 },
+   { 0x00800001, 0x2d6001ed, 0x00000000, 0x00000000 },
+   { 0x00000040, 0x34000c20, 0x00210fc8, 0x00000020 },
+   { 0x01000005, 0x20000d3c, 0x00218000, 0x00000001 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x00000067 },
+   { 0x00000040, 0x22000c00, 0x00210200, 0x00000002 },
+   { 0x01000005, 0x20000d3c, 0x00218000, 0x00000001 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x00000049 },
+   { 0x00000001, 0x24080061, 0x00000000, 0x0007001f },
+   { 0x02000005, 0x20002d3c, 0x00210410, 0x00010001 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x00000007 },
+   { 0x00800031, 0x24c01d29, 0x008d0400, 0x0418a004 },
+   { 0x00000040, 0x24040c21, 0x00210404, 0x00000008 },
+   { 0x00800031, 0x25c01d29, 0x008d0400, 0x0418a004 },
+   { 0x00000040, 0x24040c21, 0x00210404, 0x00000008 },
+   { 0x00000001, 0x24080061, 0x00000000, 0x0000001f },
+   { 0x00800031, 0x26c01d29, 0x008d0400, 0x0411a004 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000006 },
+   { 0x00800031, 0x24c01d29, 0x008d0400, 0x0418a007 },
+   { 0x00000040, 0x24040c21, 0x00210404, 0x00000008 },
+   { 0x00800031, 0x25c01d29, 0x008d0400, 0x0418a007 },
+   { 0x00000040, 0x24040c21, 0x00210404, 0x00000008 },
+   { 0x00000001, 0x24080061, 0x00000000, 0x0000001f },
+   { 0x00800031, 0x26c01d29, 0x008d0400, 0x0411a007 },
+   { 0x00800040, 0x27404629, 0x00b104c0, 0x00b104c1 },
+   { 0x00800040, 0x27604629, 0x00b104e0, 0x00b104e1 },
+   { 0x00800040, 0x27804629, 0x00b10500, 0x00b10501 },
+   { 0x00800040, 0x27a04629, 0x00b10520, 0x00b10521 },
+   { 0x00800040, 0x27c04629, 0x00b10540, 0x00b10541 },
+   { 0x00800040, 0x27e04629, 0x00b10560, 0x00b10561 },
+   { 0x00800040, 0x28004629, 0x00b10580, 0x00b10581 },
+   { 0x00800040, 0x28204629, 0x00b105a0, 0x00b105a1 },
+   { 0x00800040, 0x28404629, 0x00b105c0, 0x00b105c1 },
+   { 0x00800040, 0x28604629, 0x00b105e0, 0x00b105e1 },
+   { 0x00800040, 0x28804629, 0x00b10600, 0x00b10601 },
+   { 0x00800040, 0x28a04629, 0x00b10620, 0x00b10621 },
+   { 0x00800040, 0x28c04629, 0x00b10640, 0x00b10641 },
+   { 0x00800040, 0x28e04629, 0x00b10660, 0x00b10661 },
+   { 0x00800040, 0x29004629, 0x00b10680, 0x00b10681 },
+   { 0x00800040, 0x29204629, 0x00b106a0, 0x00b106a1 },
+   { 0x00800040, 0x27404529, 0x00b10740, 0x00b104e0 },
+   { 0x00800040, 0x27604529, 0x00b10760, 0x00b10500 },
+   { 0x00800040, 0x27804529, 0x00b10780, 0x00b10520 },
+   { 0x00800040, 0x27a04529, 0x00b107a0, 0x00b10540 },
+   { 0x00800040, 0x27c04529, 0x00b107c0, 0x00b10560 },
+   { 0x00800040, 0x27e04529, 0x00b107e0, 0x00b10580 },
+   { 0x00800040, 0x28004529, 0x00b10800, 0x00b105a0 },
+   { 0x00800040, 0x28204529, 0x00b10820, 0x00b105c0 },
+   { 0x00800040, 0x28404529, 0x00b10840, 0x00b105e0 },
+   { 0x00800040, 0x28604529, 0x00b10860, 0x00b10600 },
+   { 0x00800040, 0x28804529, 0x00b10880, 0x00b10620 },
+   { 0x00800040, 0x28a04529, 0x00b108a0, 0x00b10640 },
+   { 0x00800040, 0x28c04529, 0x00b108c0, 0x00b10660 },
+   { 0x00800040, 0x28e04529, 0x00b108e0, 0x00b10680 },
+   { 0x00800040, 0x29004529, 0x00b10900, 0x00b106a0 },
+   { 0x00800040, 0x29204529, 0x00b10920, 0x00b106c0 },
+   { 0x00800040, 0x27404529, 0x00b10740, 0x00b104e1 },
+   { 0x00800040, 0x27604529, 0x00b10760, 0x00b10501 },
+   { 0x00800040, 0x27804529, 0x00b10780, 0x00b10521 },
+   { 0x00800040, 0x27a04529, 0x00b107a0, 0x00b10541 },
+   { 0x00800040, 0x27c04529, 0x00b107c0, 0x00b10561 },
+   { 0x00800040, 0x27e04529, 0x00b107e0, 0x00b10581 },
+   { 0x00800040, 0x28004529, 0x00b10800, 0x00b105a1 },
+   { 0x00800040, 0x28204529, 0x00b10820, 0x00b105c1 },
+   { 0x00800040, 0x28404529, 0x00b10840, 0x00b105e1 },
+   { 0x00800040, 0x28604529, 0x00b10860, 0x00b10601 },
+   { 0x00800040, 0x28804529, 0x00b10880, 0x00b10621 },
+   { 0x00800040, 0x28a04529, 0x00b108a0, 0x00b10641 },
+   { 0x00800040, 0x28c04529, 0x00b108c0, 0x00b10661 },
+   { 0x00800040, 0x28e04529, 0x00b108e0, 0x00b10681 },
+   { 0x00800040, 0x29004529, 0x00b10900, 0x00b106a1 },
+   { 0x00800040, 0x29204529, 0x00b10920, 0x00b106c1 },
+   { 0x00a02008, 0x27402d29, 0x00b10740, 0x00020002 },
+   { 0x00a02008, 0x27802d29, 0x00b10780, 0x00020002 },
+   { 0x00a02008, 0x27c02d29, 0x00b107c0, 0x00020002 },
+   { 0x00a02008, 0x28002d29, 0x00b10800, 0x00020002 },
+   { 0x00a02008, 0x28402d29, 0x00b10840, 0x00020002 },
+   { 0x00a02008, 0x28802d29, 0x00b10880, 0x00020002 },
+   { 0x00a02008, 0x28c02d29, 0x00b108c0, 0x00020002 },
+   { 0x00a02008, 0x29002d29, 0x00b10900, 0x00020002 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000051 },
+   { 0x00000001, 0x24080061, 0x00000000, 0x0007001f },
+   { 0x02000005, 0x20002d3c, 0x00210410, 0x00010001 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x00000004 },
+   { 0x00800031, 0x24c01d29, 0x008d0400, 0x0418a004 },
+   { 0x00000040, 0x24040c21, 0x00210404, 0x00000008 },
+   { 0x00800031, 0x25c01d29, 0x008d0400, 0x0418a004 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000003 },
+   { 0x00800031, 0x24c01d29, 0x008d0400, 0x0418a007 },
+   { 0x00000040, 0x24040c21, 0x00210404, 0x00000008 },
+   { 0x00800031, 0x25c01d29, 0x008d0400, 0x0418a007 },
+   { 0x00800042, 0x27404629, 0x00b104c0, 0x00b104c1 },
+   { 0x00800042, 0x27604629, 0x00b104e0, 0x00b104e1 },
+   { 0x00800042, 0x27804629, 0x00b10500, 0x00b10501 },
+   { 0x00800042, 0x27a04629, 0x00b10520, 0x00b10521 },
+   { 0x00800042, 0x27c04629, 0x00b10540, 0x00b10541 },
+   { 0x00800042, 0x27e04629, 0x00b10560, 0x00b10561 },
+   { 0x00800042, 0x28004629, 0x00b10580, 0x00b10581 },
+   { 0x00800042, 0x28204629, 0x00b105a0, 0x00b105a1 },
+   { 0x00800042, 0x28404629, 0x00b105c0, 0x00b105c1 },
+   { 0x00800042, 0x28604629, 0x00b105e0, 0x00b105e1 },
+   { 0x00800042, 0x28804629, 0x00b10600, 0x00b10601 },
+   { 0x00800042, 0x28a04629, 0x00b10620, 0x00b10621 },
+   { 0x00800042, 0x28c04629, 0x00b10640, 0x00b10641 },
+   { 0x00800042, 0x28e04629, 0x00b10660, 0x00b10661 },
+   { 0x00800042, 0x29004629, 0x00b10680, 0x00b10681 },
+   { 0x00800042, 0x29204629, 0x00b106a0, 0x00b106a1 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000036 },
+   { 0x00000040, 0x22000c00, 0x00210200, 0x00000002 },
+   { 0x01000005, 0x20000d3c, 0x00218000, 0x00000001 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x00000021 },
+   { 0x00000001, 0x24080061, 0x00000000, 0x0007001f },
+   { 0x02000005, 0x20002d3c, 0x00210410, 0x00010001 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x00000007 },
+   { 0x00800031, 0x24c01d29, 0x008d0400, 0x0418a004 },
+   { 0x00000040, 0x24040c21, 0x00210404, 0x00000008 },
+   { 0x00800031, 0x25c01d29, 0x008d0400, 0x0418a004 },
+   { 0x00000040, 0x24040c21, 0x00210404, 0x00000008 },
+   { 0x00000001, 0x24080061, 0x00000000, 0x0000001f },
+   { 0x00800031, 0x26c01d29, 0x008d0400, 0x0411a004 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000006 },
+   { 0x00800031, 0x24c01d29, 0x008d0400, 0x0418a007 },
+   { 0x00000040, 0x24040c21, 0x00210404, 0x00000008 },
+   { 0x00800031, 0x25c01d29, 0x008d0400, 0x0418a007 },
+   { 0x00000040, 0x24040c21, 0x00210404, 0x00000008 },
+   { 0x00000001, 0x24080061, 0x00000000, 0x0000001f },
+   { 0x00800031, 0x26c01d29, 0x008d0400, 0x0411a007 },
+   { 0x00800042, 0x27404629, 0x00b104c0, 0x00b104e0 },
+   { 0x00800042, 0x27604629, 0x00b104e0, 0x00b10500 },
+   { 0x00800042, 0x27804629, 0x00b10500, 0x00b10520 },
+   { 0x00800042, 0x27a04629, 0x00b10520, 0x00b10540 },
+   { 0x00800042, 0x27c04629, 0x00b10540, 0x00b10560 },
+   { 0x00800042, 0x27e04629, 0x00b10560, 0x00b10580 },
+   { 0x00800042, 0x28004629, 0x00b10580, 0x00b105a0 },
+   { 0x00800042, 0x28204629, 0x00b105a0, 0x00b105c0 },
+   { 0x00800042, 0x28404629, 0x00b105c0, 0x00b105e0 },
+   { 0x00800042, 0x28604629, 0x00b105e0, 0x00b10600 },
+   { 0x00800042, 0x28804629, 0x00b10600, 0x00b10620 },
+   { 0x00800042, 0x28a04629, 0x00b10620, 0x00b10640 },
+   { 0x00800042, 0x28c04629, 0x00b10640, 0x00b10660 },
+   { 0x00800042, 0x28e04629, 0x00b10660, 0x00b10680 },
+   { 0x00800042, 0x29004629, 0x00b10680, 0x00b106a0 },
+   { 0x00800042, 0x29204629, 0x00b106a0, 0x00b106c0 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000012 },
+   { 0x00000001, 0x24080061, 0x00000000, 0x0007001f },
+   { 0x02000005, 0x20002d3c, 0x00210410, 0x00010001 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x00000004 },
+   { 0x00800031, 0x24c01d29, 0x008d0400, 0x0418a004 },
+   { 0x00000040, 0x24040c21, 0x00210404, 0x00000008 },
+   { 0x00800031, 0x25c01d29, 0x008d0400, 0x0418a004 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000003 },
+   { 0x00800031, 0x24c01d29, 0x008d0400, 0x0418a007 },
+   { 0x00000040, 0x24040c21, 0x00210404, 0x00000008 },
+   { 0x00800031, 0x25c01d29, 0x008d0400, 0x0418a007 },
+   { 0x00a02001, 0x27400229, 0x00b104c0, 0x00000000 },
+   { 0x00a02001, 0x27800229, 0x00b10500, 0x00000000 },
+   { 0x00a02001, 0x27c00229, 0x00b10540, 0x00000000 },
+   { 0x00a02001, 0x28000229, 0x00b10580, 0x00000000 },
+   { 0x00a02001, 0x28400229, 0x00b105c0, 0x00000000 },
+   { 0x00a02001, 0x28800229, 0x00b10600, 0x00000000 },
+   { 0x00a02001, 0x28c00229, 0x00b10640, 0x00000000 },
+   { 0x00a02001, 0x29000229, 0x00b10680, 0x00000000 },
+   { 0x00000040, 0x34000c20, 0x00210fc8, 0x00000020 },
+   { 0x00000001, 0x24080061, 0x00000000, 0x0007000f },
+   { 0x02000005, 0x20002d3c, 0x00210410, 0x00010001 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x00000003 },
+   { 0x00800031, 0x24401d29, 0x008d0400, 0x0414a005 },
+   { 0x00800031, 0x25801d29, 0x008d0400, 0x0414a006 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000002 },
+   { 0x00800031, 0x24401d29, 0x008d0400, 0x0414a008 },
+   { 0x00800031, 0x25801d29, 0x008d0400, 0x0414a009 },
+   { 0x00a02001, 0x29400229, 0x00ad0440, 0x00000000 },
+   { 0x00a02001, 0x29800229, 0x00ad0480, 0x00000000 },
+   { 0x00a02001, 0x29c00229, 0x00ad0580, 0x00000000 },
+   { 0x00a02001, 0x2a000229, 0x00ad05c0, 0x00000000 },
+   { 0x00000040, 0x34000c20, 0x00210fc8, 0x00000020 },
+   { 0x01000005, 0x20002d3c, 0x00218000, 0x00010001 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x00000043 },
+   { 0x00000040, 0x22000c00, 0x00210200, 0x00000002 },
+   { 0x01000005, 0x20002d3c, 0x00218000, 0x00010001 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x0000002d },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0007001f },
+   { 0x02000005, 0x20002d3c, 0x00210e70, 0x00010001 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x00000007 },
+   { 0x00800031, 0x25001d29, 0x008d0e60, 0x0418a004 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 },
+   { 0x00800031, 0x26001d29, 0x008d0e60, 0x0418a004 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
+   { 0x00800031, 0x27001d29, 0x008d0e60, 0x0411a004 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000006 },
+   { 0x00800031, 0x25001d29, 0x008d0e60, 0x0418a007 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 },
+   { 0x00800031, 0x26001d29, 0x008d0e60, 0x0418a007 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
+   { 0x00800031, 0x27001d29, 0x008d0e60, 0x0411a007 },
+   { 0x00800040, 0x24004629, 0x00b10500, 0x00b10540 },
+   { 0x00800040, 0x24204629, 0x00b10540, 0x00b10580 },
+   { 0x00800040, 0x24404629, 0x00b10580, 0x00b105c0 },
+   { 0x00800040, 0x24604629, 0x00b105c0, 0x00b10600 },
+   { 0x00800040, 0x24804629, 0x00b10600, 0x00b10640 },
+   { 0x00800040, 0x24a04629, 0x00b10640, 0x00b10680 },
+   { 0x00800040, 0x24c04629, 0x00b10680, 0x00b106c0 },
+   { 0x00800040, 0x24e04629, 0x00b106c0, 0x00b10700 },
+   { 0x00800040, 0x24004529, 0x00b10400, 0x00b10501 },
+   { 0x00800040, 0x24204529, 0x00b10420, 0x00b10541 },
+   { 0x00800040, 0x24404529, 0x00b10440, 0x00b10581 },
+   { 0x00800040, 0x24604529, 0x00b10460, 0x00b105c1 },
+   { 0x00800040, 0x24804529, 0x00b10480, 0x00b10601 },
+   { 0x00800040, 0x24a04529, 0x00b104a0, 0x00b10641 },
+   { 0x00800040, 0x24c04529, 0x00b104c0, 0x00b10681 },
+   { 0x00800040, 0x24e04529, 0x00b104e0, 0x00b106c1 },
+   { 0x00800040, 0x24004529, 0x00b10400, 0x00b10541 },
+   { 0x00800040, 0x24204529, 0x00b10420, 0x00b10581 },
+   { 0x00800040, 0x24404529, 0x00b10440, 0x00b105c1 },
+   { 0x00800040, 0x24604529, 0x00b10460, 0x00b10601 },
+   { 0x00800040, 0x24804529, 0x00b10480, 0x00b10641 },
+   { 0x00800040, 0x24a04529, 0x00b104a0, 0x00b10681 },
+   { 0x00800040, 0x24c04529, 0x00b104c0, 0x00b106c1 },
+   { 0x00800040, 0x24e04529, 0x00b104e0, 0x00b10701 },
+   { 0x00a02008, 0x24002d29, 0x00b10400, 0x00020002 },
+   { 0x00a02008, 0x24402d29, 0x00b10440, 0x00020002 },
+   { 0x00a02008, 0x24802d29, 0x00b10480, 0x00020002 },
+   { 0x00a02008, 0x24c02d29, 0x00b104c0, 0x00020002 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000041 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0007001f },
+   { 0x02000005, 0x20002d3c, 0x00210e70, 0x00010001 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x00000004 },
+   { 0x00800031, 0x25001d29, 0x008d0e60, 0x0418a004 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 },
+   { 0x00800031, 0x26001d29, 0x008d0e60, 0x0418a004 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000003 },
+   { 0x00800031, 0x25001d29, 0x008d0e60, 0x0418a007 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 },
+   { 0x00800031, 0x26001d29, 0x008d0e60, 0x0418a007 },
+   { 0x00800042, 0x24004629, 0x00b10500, 0x00b10501 },
+   { 0x00800042, 0x24204629, 0x00b10540, 0x00b10541 },
+   { 0x00800042, 0x24404629, 0x00b10580, 0x00b10581 },
+   { 0x00800042, 0x24604629, 0x00b105c0, 0x00b105c1 },
+   { 0x00800042, 0x24804629, 0x00b10600, 0x00b10601 },
+   { 0x00800042, 0x24a04629, 0x00b10640, 0x00b10641 },
+   { 0x00800042, 0x24c04629, 0x00b10680, 0x00b10681 },
+   { 0x00800042, 0x24e04629, 0x00b106c0, 0x00b106c1 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x0000002e },
+   { 0x00000040, 0x22000c00, 0x00210200, 0x00000002 },
+   { 0x01000005, 0x20002d3c, 0x00218000, 0x00010001 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x00000019 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0007001f },
+   { 0x02000005, 0x20002d3c, 0x00210e70, 0x00010001 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x00000007 },
+   { 0x00800031, 0x25001d29, 0x008d0e60, 0x0418a004 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 },
+   { 0x00800031, 0x26001d29, 0x008d0e60, 0x0418a004 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
+   { 0x00800031, 0x27001d29, 0x008d0e60, 0x0411a004 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000006 },
+   { 0x00800031, 0x25001d29, 0x008d0e60, 0x0418a007 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 },
+   { 0x00800031, 0x26001d29, 0x008d0e60, 0x0418a007 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
+   { 0x00800031, 0x27001d29, 0x008d0e60, 0x0411a007 },
+   { 0x00800042, 0x24004629, 0x00b10500, 0x00b10540 },
+   { 0x00800042, 0x24204629, 0x00b10540, 0x00b10580 },
+   { 0x00800042, 0x24404629, 0x00b10580, 0x00b105c0 },
+   { 0x00800042, 0x24604629, 0x00b105c0, 0x00b10600 },
+   { 0x00800042, 0x24804629, 0x00b10600, 0x00b10640 },
+   { 0x00800042, 0x24a04629, 0x00b10640, 0x00b10680 },
+   { 0x00800042, 0x24c04629, 0x00b10680, 0x00b106c0 },
+   { 0x00800042, 0x24e04629, 0x00b106c0, 0x00b10700 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000012 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0007001f },
+   { 0x02000005, 0x20002d3c, 0x00210e70, 0x00010001 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x00000004 },
+   { 0x00800031, 0x25001d29, 0x008d0e60, 0x0418a004 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 },
+   { 0x00800031, 0x26001d29, 0x008d0e60, 0x0418a004 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000003 },
+   { 0x00800031, 0x25001d29, 0x008d0e60, 0x0418a007 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 },
+   { 0x00800031, 0x26001d29, 0x008d0e60, 0x0418a007 },
+   { 0x00800001, 0x24000229, 0x00b10500, 0x00000000 },
+   { 0x00800001, 0x24200229, 0x00b10540, 0x00000000 },
+   { 0x00800001, 0x24400229, 0x00b10580, 0x00000000 },
+   { 0x00800001, 0x24600229, 0x00b105c0, 0x00000000 },
+   { 0x00800001, 0x24800229, 0x00b10600, 0x00000000 },
+   { 0x00800001, 0x24a00229, 0x00b10640, 0x00000000 },
+   { 0x00800001, 0x24c00229, 0x00b10680, 0x00000000 },
+   { 0x00800001, 0x24e00229, 0x00b106c0, 0x00000000 },
+   { 0x00000040, 0x34000c20, 0x00210fc8, 0x00000020 },
+   { 0x01000005, 0x20002d3c, 0x00218000, 0x00020002 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x00000041 },
+   { 0x00000040, 0x22000c00, 0x00210200, 0x00000002 },
+   { 0x01000005, 0x20002d3c, 0x00218000, 0x00020002 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x0000002d },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0007000f },
+   { 0x02000005, 0x20002d3c, 0x00210e70, 0x00010001 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x00000007 },
+   { 0x00800031, 0x25001d29, 0x008d0e60, 0x0414a005 },
+   { 0x00800031, 0x25a01d29, 0x008d0e60, 0x0414a006 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0000000f },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 },
+   { 0x00800031, 0x25801d29, 0x008d0e60, 0x0411a005 },
+   { 0x00800031, 0x26201d29, 0x008d0e60, 0x0411a006 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000006 },
+   { 0x00800031, 0x25001d29, 0x008d0e60, 0x0414a008 },
+   { 0x00800031, 0x25a01d29, 0x008d0e60, 0x0414a009 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0000000f },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 },
+   { 0x00800031, 0x25801d29, 0x008d0e60, 0x0411a008 },
+   { 0x00800031, 0x26201d29, 0x008d0e60, 0x0411a009 },
+   { 0x00600040, 0x24004629, 0x008d0500, 0x008d0520 },
+   { 0x00600040, 0x24204629, 0x008d0520, 0x008d0540 },
+   { 0x00600040, 0x24404629, 0x008d0540, 0x008d0560 },
+   { 0x00600040, 0x24604629, 0x008d0560, 0x008d0580 },
+   { 0x00600040, 0x24004529, 0x008d0400, 0x008d0501 },
+   { 0x00600040, 0x24204529, 0x008d0420, 0x008d0521 },
+   { 0x00600040, 0x24404529, 0x008d0440, 0x008d0541 },
+   { 0x00600040, 0x24604529, 0x008d0460, 0x008d0561 },
+   { 0x00600040, 0x24004529, 0x008d0400, 0x008d0521 },
+   { 0x00600040, 0x24204529, 0x008d0420, 0x008d0541 },
+   { 0x00600040, 0x24404529, 0x008d0440, 0x008d0561 },
+   { 0x00600040, 0x24604529, 0x008d0460, 0x008d0581 },
+   { 0x00600040, 0x24804629, 0x008d05a0, 0x008d05c0 },
+   { 0x00600040, 0x24a04629, 0x008d05c0, 0x008d05e0 },
+   { 0x00600040, 0x24c04629, 0x008d05e0, 0x008d0600 },
+   { 0x00600040, 0x24e04629, 0x008d0600, 0x008d0620 },
+   { 0x00600040, 0x24804529, 0x008d0480, 0x008d05a1 },
+   { 0x00600040, 0x24a04529, 0x008d04a0, 0x008d05c1 },
+   { 0x00600040, 0x24c04529, 0x008d04c0, 0x008d05e1 },
+   { 0x00600040, 0x24e04529, 0x008d04e0, 0x008d0601 },
+   { 0x00600040, 0x24804529, 0x008d0480, 0x008d05c1 },
+   { 0x00600040, 0x24a04529, 0x008d04a0, 0x008d05e1 },
+   { 0x00600040, 0x24c04529, 0x008d04c0, 0x008d0601 },
+   { 0x00600040, 0x24e04529, 0x008d04e0, 0x008d0621 },
+   { 0x00a02008, 0x24002d29, 0x00b10400, 0x00020002 },
+   { 0x00a02008, 0x24402d29, 0x00b10440, 0x00020002 },
+   { 0x00a02008, 0x24802d29, 0x00b10480, 0x00020002 },
+   { 0x00a02008, 0x24c02d29, 0x00b104c0, 0x00020002 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000039 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0007000f },
+   { 0x02000005, 0x20002d3c, 0x00210e70, 0x00010001 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x00000003 },
+   { 0x00800031, 0x25001d29, 0x008d0e60, 0x0414a005 },
+   { 0x00800031, 0x25801d29, 0x008d0e60, 0x0414a006 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000002 },
+   { 0x00800031, 0x25001d29, 0x008d0e60, 0x0414a008 },
+   { 0x00800031, 0x25801d29, 0x008d0e60, 0x0414a009 },
+   { 0x00600042, 0x24004629, 0x008d0500, 0x008d0501 },
+   { 0x00600042, 0x24204629, 0x008d0520, 0x008d0521 },
+   { 0x00600042, 0x24404629, 0x008d0540, 0x008d0541 },
+   { 0x00600042, 0x24604629, 0x008d0560, 0x008d0561 },
+   { 0x00600042, 0x24804629, 0x008d0580, 0x008d0581 },
+   { 0x00600042, 0x24a04629, 0x008d05a0, 0x008d05a1 },
+   { 0x00600042, 0x24c04629, 0x008d05c0, 0x008d05c1 },
+   { 0x00600042, 0x24e04629, 0x008d05e0, 0x008d05e1 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000028 },
+   { 0x00000040, 0x22000c00, 0x00210200, 0x00000002 },
+   { 0x01000005, 0x20002d3c, 0x00218000, 0x00020002 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x00000019 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0007000f },
+   { 0x02000005, 0x20002d3c, 0x00210e70, 0x00010001 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x00000007 },
+   { 0x00800031, 0x25001d29, 0x008d0e60, 0x0414a005 },
+   { 0x00800031, 0x25a01d29, 0x008d0e60, 0x0414a006 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0000000f },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 },
+   { 0x00800031, 0x25801d29, 0x008d0e60, 0x0411a005 },
+   { 0x00800031, 0x26201d29, 0x008d0e60, 0x0411a006 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000006 },
+   { 0x00800031, 0x25001d29, 0x008d0e60, 0x0414a008 },
+   { 0x00800031, 0x25a01d29, 0x008d0e60, 0x0414a009 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0000000f },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 },
+   { 0x00800031, 0x25801d29, 0x008d0e60, 0x0411a008 },
+   { 0x00800031, 0x26201d29, 0x008d0e60, 0x0411a009 },
+   { 0x00600042, 0x24004629, 0x008d0500, 0x008d0520 },
+   { 0x00600042, 0x24204629, 0x008d0520, 0x008d0540 },
+   { 0x00600042, 0x24404629, 0x008d0540, 0x008d0560 },
+   { 0x00600042, 0x24604629, 0x008d0560, 0x008d0580 },
+   { 0x00600042, 0x24804629, 0x008d05a0, 0x008d05c0 },
+   { 0x00600042, 0x24a04629, 0x008d05c0, 0x008d05e0 },
+   { 0x00600042, 0x24c04629, 0x008d05e0, 0x008d0600 },
+   { 0x00600042, 0x24e04629, 0x008d0600, 0x008d0620 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x0000000c },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0007000f },
+   { 0x02000005, 0x20002d3c, 0x00210e70, 0x00010001 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x00000003 },
+   { 0x00800031, 0x25001d29, 0x008d0e60, 0x0414a005 },
+   { 0x00800031, 0x26001d29, 0x008d0e60, 0x0414a006 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000002 },
+   { 0x00800031, 0x25001d29, 0x008d0e60, 0x0414a008 },
+   { 0x00800031, 0x26001d29, 0x008d0e60, 0x0414a009 },
+   { 0x00802001, 0x24000229, 0x008d0500, 0x00000000 },
+   { 0x00802001, 0x24400229, 0x008d0540, 0x00000000 },
+   { 0x00802001, 0x24800229, 0x008d0600, 0x00000000 },
+   { 0x00802001, 0x24c00229, 0x008d0640, 0x00000000 },
+   { 0x00000040, 0x34000c20, 0x00210fc8, 0x00000020 },
+   { 0x00200001, 0x23e00021, 0x00450a40, 0x00000000 },
+   { 0x02000005, 0x20002e3c, 0x00210a5e, 0x00010001 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x0000000d },
+   { 0x80a02040, 0x474045b1, 0x00b10a80, 0x00b20740 },
+   { 0x80a02040, 0x478045b1, 0x00b10ac0, 0x00b20780 },
+   { 0x80a02040, 0x47c045b1, 0x00b10b00, 0x00b207c0 },
+   { 0x80a02040, 0x480045b1, 0x00b10b40, 0x00b20800 },
+   { 0x80a02040, 0x484045b1, 0x00b10b80, 0x00b20840 },
+   { 0x80a02040, 0x488045b1, 0x00b10bc0, 0x00b20880 },
+   { 0x80a02040, 0x48c045b1, 0x00b10c00, 0x00b208c0 },
+   { 0x80a02040, 0x490045b1, 0x00b10c40, 0x00b20900 },
+   { 0x80a02040, 0x494045b1, 0x00b10c80, 0x00b20940 },
+   { 0x80a02040, 0x498045b1, 0x00b10cc0, 0x00b20980 },
+   { 0x80a02040, 0x49c045b1, 0x00b10d00, 0x00b209c0 },
+   { 0x80a02040, 0x4a0045b1, 0x00b10d40, 0x00b20a00 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000020 },
+   { 0x80800040, 0x474045b1, 0x00b10a80, 0x00b20740 },
+   { 0x80800040, 0x476045b1, 0x00b10b80, 0x00b20760 },
+   { 0x80800040, 0x478045b1, 0x00b10aa0, 0x00b20780 },
+   { 0x80800040, 0x47a045b1, 0x00b10ba0, 0x00b207a0 },
+   { 0x80800040, 0x47c045b1, 0x00b10ac0, 0x00b207c0 },
+   { 0x80800040, 0x47e045b1, 0x00b10bc0, 0x00b207e0 },
+   { 0x80800040, 0x480045b1, 0x00b10ae0, 0x00b20800 },
+   { 0x80800040, 0x482045b1, 0x00b10be0, 0x00b20820 },
+   { 0x80800040, 0x484045b1, 0x00b10b00, 0x00b20840 },
+   { 0x80800040, 0x486045b1, 0x00b10c00, 0x00b20860 },
+   { 0x80800040, 0x488045b1, 0x00b10b20, 0x00b20880 },
+   { 0x80800040, 0x48a045b1, 0x00b10c20, 0x00b208a0 },
+   { 0x80800040, 0x48c045b1, 0x00b10b40, 0x00b208c0 },
+   { 0x80800040, 0x48e045b1, 0x00b10c40, 0x00b208e0 },
+   { 0x80800040, 0x490045b1, 0x00b10b60, 0x00b20900 },
+   { 0x80800040, 0x492045b1, 0x00b10c60, 0x00b20920 },
+   { 0x00800040, 0x2c8045ad, 0x00b10c80, 0x00b20940 },
+   { 0x00800040, 0x2ca045ad, 0x00b10ca0, 0x00b20960 },
+   { 0x00800040, 0x2cc045ad, 0x00b10cc0, 0x00b20980 },
+   { 0x00800040, 0x2ce045ad, 0x00b10ce0, 0x00b209a0 },
+   { 0x00800040, 0x2d0045ad, 0x00b10d00, 0x00b209c0 },
+   { 0x00800040, 0x2d2045ad, 0x00b10d20, 0x00b209e0 },
+   { 0x00800040, 0x2d4045ad, 0x00b10d40, 0x00b20a00 },
+   { 0x00800040, 0x2d6045ad, 0x00b10d60, 0x00b20a20 },
+   { 0x80800001, 0x494001b1, 0x00b10c80, 0x00000000 },
+   { 0x80800001, 0x496001b1, 0x00b10ca0, 0x00000000 },
+   { 0x80800001, 0x498001b1, 0x00b10cc0, 0x00000000 },
+   { 0x80800001, 0x49a001b1, 0x00b10ce0, 0x00000000 },
+   { 0x80800001, 0x49c001b1, 0x00b10d00, 0x00000000 },
+   { 0x80800001, 0x49e001b1, 0x00b10d20, 0x00000000 },
+   { 0x80800001, 0x4a0001b1, 0x00b10d40, 0x00000000 },
+   { 0x80800001, 0x4a2001b1, 0x00b10d60, 0x00000000 },
+   { 0x00000001, 0x23e80061, 0x00000000, 0x000f000f },
+   { 0x00800001, 0x20200232, 0x00b20740, 0x00000000 },
+   { 0x00800001, 0x20300232, 0x00b20760, 0x00000000 },
+   { 0x00800001, 0x20400232, 0x00b20780, 0x00000000 },
+   { 0x00800001, 0x20500232, 0x00b207a0, 0x00000000 },
+   { 0x00800001, 0x20600232, 0x00b207c0, 0x00000000 },
+   { 0x00800001, 0x20700232, 0x00b207e0, 0x00000000 },
+   { 0x00800001, 0x20800232, 0x00b20800, 0x00000000 },
+   { 0x00800001, 0x20900232, 0x00b20820, 0x00000000 },
+   { 0x00800001, 0x20a00232, 0x00b20840, 0x00000000 },
+   { 0x00800001, 0x20b00232, 0x00b20860, 0x00000000 },
+   { 0x00800001, 0x20c00232, 0x00b20880, 0x00000000 },
+   { 0x00800001, 0x20d00232, 0x00b208a0, 0x00000000 },
+   { 0x00800001, 0x20e00232, 0x00b208c0, 0x00000000 },
+   { 0x00800001, 0x20f00232, 0x00b208e0, 0x00000000 },
+   { 0x00800001, 0x21000232, 0x00b20900, 0x00000000 },
+   { 0x00800001, 0x21100232, 0x00b20920, 0x00000000 },
+   { 0x00800031, 0x24001d28, 0x008d03e0, 0x05902000 },
+   { 0x00000001, 0x23e80061, 0x00000000, 0x00070007 },
+   { 0x00200008, 0x23e01c21, 0x004503e0, 0x00000001 },
+   { 0x00800001, 0x20200232, 0x00b20940, 0x00000000 },
+   { 0x00800001, 0x20300232, 0x00b20960, 0x00000000 },
+   { 0x00800001, 0x20400232, 0x00b20980, 0x00000000 },
+   { 0x00800001, 0x20500232, 0x00b209a0, 0x00000000 },
+   { 0x00800031, 0x24001d28, 0x008d03e0, 0x05302001 },
+   { 0x00800001, 0x20200232, 0x00b209c0, 0x00000000 },
+   { 0x00800001, 0x20300232, 0x00b209e0, 0x00000000 },
+   { 0x00800001, 0x20400232, 0x00b20a00, 0x00000000 },
+   { 0x00800001, 0x20500232, 0x00b20a20, 0x00000000 },
+   { 0x00800031, 0x24001d28, 0x008d03e0, 0x05302002 },
+   { 0x00800031, 0x24001d28, 0x008d0000, 0x87100000 },
commit 6d500be3cdecd7617dc6119b58ae273eea478af7
Author: Zou Nan hai <nanhai.zou at intel.com>
Date:   Wed Jun 10 15:53:24 2009 +0800

      enable MC on g45 for player without vld patch

diff --git a/src/i965_hwmc.c b/src/i965_hwmc.c
index 4dc2e3a..7163330 100644
--- a/src/i965_hwmc.c
+++ b/src/i965_hwmc.c
@@ -244,6 +244,7 @@ static XF86MCSurfaceInfoPtr surface_info[] = {
 
 static XF86MCSurfaceInfoPtr surface_info_vld[] = {
     &yv12_mpeg2_vld_surface,
+    &yv12_mpeg2_surface,
 };
 
 static XF86MCAdaptorRec adaptor_vld = {
diff --git a/src/xvmc/shader/mc/Makefile.am b/src/xvmc/shader/mc/Makefile.am
index b4d6c4a..be5d84d 100644
--- a/src/xvmc/shader/mc/Makefile.am
+++ b/src/xvmc/shader/mc/Makefile.am
@@ -13,7 +13,9 @@ INTEL_G4A = dual_prime_igd.g4a          \
         frame_backward.g4a              \
         frame_f_b.g4a                   \
         frame_forward.g4a               \
+		lib_igd.g4a						\
         ipicture.g4a                    \
+        ipicture_igd.g4a                \
         null.g4a
 
 INTEL_G4I = addidct.g4i                          \
@@ -74,6 +76,8 @@ INTEL_G4B = dual_prime.g4b          \
         frame_f_b_igd.g4b           \
         frame_forward_igd.g4b       \
         ipicture.g4b                \
+        ipicture_igd.g4b            \
+		lib_igd.g4b					\
         null.g4b
 
 EXTRA_DIST = $(INTEL_G4A)    \
diff --git a/src/xvmc/shader/mc/dual_prime_igd.g4b b/src/xvmc/shader/mc/dual_prime_igd.g4b
index 6477d06..6a558fd 100644
--- a/src/xvmc/shader/mc/dual_prime_igd.g4b
+++ b/src/xvmc/shader/mc/dual_prime_igd.g4b
@@ -110,121 +110,121 @@
    { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
    { 0x02000005, 0x20002e3c, 0x0021003f, 0x00010001 },
    { 0x00010040, 0x2e641ca5, 0x00210e64, 0x00000001 },
-   { 0x01000005, 0x20002d3c, 0x0021002e, 0x00010001 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000045 },
-   { 0x01000005, 0x20002d3c, 0x00210030, 0x00010001 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x0000002f },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
-   { 0x00800031, 0x29c01d29, 0x008d0e60, 0x0411a004 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a001d29, 0x008d0e60, 0x0411a004 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a401d29, 0x008d0e60, 0x0411a004 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a801d29, 0x008d0e60, 0x0411a004 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x01000005, 0x20002d3c, 0x00218000, 0x00010001 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x00000043 },
+   { 0x00000040, 0x22000c00, 0x00210200, 0x00000002 },
+   { 0x01000005, 0x20002d3c, 0x00218000, 0x00010001 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x0000002d },
    { 0x00000001, 0x2e680061, 0x00000000, 0x0007001f },
-   { 0x00800031, 0x2ac01d29, 0x008d0e60, 0x0418a004 },
+   { 0x02000005, 0x20002d3c, 0x00210e70, 0x00010001 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x00000007 },
+   { 0x00800031, 0x25001d29, 0x008d0e60, 0x0418a004 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 },
+   { 0x00800031, 0x26001d29, 0x008d0e60, 0x0418a004 },
    { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 },
    { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
-   { 0x00800031, 0x2bc01d29, 0x008d0e60, 0x0411a004 },
-   { 0x00800040, 0x2c004629, 0x00b109c0, 0x00b10a00 },
-   { 0x00800040, 0x2c204629, 0x00b10a00, 0x00b10a40 },
-   { 0x00800040, 0x2c404629, 0x00b10a40, 0x00b10a80 },
-   { 0x00800040, 0x2c604629, 0x00b10a80, 0x00b10ac0 },
-   { 0x00800040, 0x2c804629, 0x00b10ac0, 0x00b10b00 },
-   { 0x00800040, 0x2ca04629, 0x00b10b00, 0x00b10b40 },
-   { 0x00800040, 0x2cc04629, 0x00b10b40, 0x00b10b80 },
-   { 0x00800040, 0x2ce04629, 0x00b10b80, 0x00b10bc0 },
-   { 0x00800040, 0x2c004529, 0x00b10c00, 0x00b109c1 },
-   { 0x00800040, 0x2c204529, 0x00b10c20, 0x00b10a01 },
-   { 0x00800040, 0x2c404529, 0x00b10c40, 0x00b10a41 },
-   { 0x00800040, 0x2c604529, 0x00b10c60, 0x00b10a81 },
-   { 0x00800040, 0x2c804529, 0x00b10c80, 0x00b10ac1 },
-   { 0x00800040, 0x2ca04529, 0x00b10ca0, 0x00b10b01 },
-   { 0x00800040, 0x2cc04529, 0x00b10cc0, 0x00b10b41 },
-   { 0x00800040, 0x2ce04529, 0x00b10ce0, 0x00b10b81 },
-   { 0x00800040, 0x2c004529, 0x00b10c00, 0x00b10a01 },
-   { 0x00800040, 0x2c204529, 0x00b10c20, 0x00b10a41 },
-   { 0x00800040, 0x2c404529, 0x00b10c40, 0x00b10a81 },
-   { 0x00800040, 0x2c604529, 0x00b10c60, 0x00b10ac1 },
-   { 0x00800040, 0x2c804529, 0x00b10c80, 0x00b10b01 },
-   { 0x00800040, 0x2ca04529, 0x00b10ca0, 0x00b10b41 },
-   { 0x00800040, 0x2cc04529, 0x00b10cc0, 0x00b10b81 },
-   { 0x00800040, 0x2ce04529, 0x00b10ce0, 0x00b10bc1 },
-   { 0x00800008, 0x2c002d29, 0x00b10c00, 0x00020002 },
-   { 0x00800008, 0x2c202d29, 0x00b10c20, 0x00020002 },
-   { 0x00800008, 0x2c402d29, 0x00b10c40, 0x00020002 },
-   { 0x00800008, 0x2c602d29, 0x00b10c60, 0x00020002 },
-   { 0x00800008, 0x2c802d29, 0x00b10c80, 0x00020002 },
-   { 0x00800008, 0x2ca02d29, 0x00b10ca0, 0x00020002 },
-   { 0x00800008, 0x2cc02d29, 0x00b10cc0, 0x00020002 },
-   { 0x00800008, 0x2ce02d29, 0x00b10ce0, 0x00020002 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000040 },
+   { 0x00800031, 0x27001d29, 0x008d0e60, 0x0411a004 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000006 },
+   { 0x00800031, 0x25001d29, 0x008d0e60, 0x0418a007 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 },
+   { 0x00800031, 0x26001d29, 0x008d0e60, 0x0418a007 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 },
    { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
-   { 0x00800031, 0x29c01d29, 0x008d0e60, 0x0411a004 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a001d29, 0x008d0e60, 0x0411a004 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a401d29, 0x008d0e60, 0x0411a004 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a801d29, 0x008d0e60, 0x0411a004 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00800031, 0x27001d29, 0x008d0e60, 0x0411a007 },
+   { 0x00800040, 0x24004629, 0x00b10500, 0x00b10540 },
+   { 0x00800040, 0x24204629, 0x00b10540, 0x00b10580 },
+   { 0x00800040, 0x24404629, 0x00b10580, 0x00b105c0 },
+   { 0x00800040, 0x24604629, 0x00b105c0, 0x00b10600 },
+   { 0x00800040, 0x24804629, 0x00b10600, 0x00b10640 },
+   { 0x00800040, 0x24a04629, 0x00b10640, 0x00b10680 },
+   { 0x00800040, 0x24c04629, 0x00b10680, 0x00b106c0 },
+   { 0x00800040, 0x24e04629, 0x00b106c0, 0x00b10700 },
+   { 0x00800040, 0x24004529, 0x00b10400, 0x00b10501 },
+   { 0x00800040, 0x24204529, 0x00b10420, 0x00b10541 },
+   { 0x00800040, 0x24404529, 0x00b10440, 0x00b10581 },
+   { 0x00800040, 0x24604529, 0x00b10460, 0x00b105c1 },
+   { 0x00800040, 0x24804529, 0x00b10480, 0x00b10601 },
+   { 0x00800040, 0x24a04529, 0x00b104a0, 0x00b10641 },
+   { 0x00800040, 0x24c04529, 0x00b104c0, 0x00b10681 },
+   { 0x00800040, 0x24e04529, 0x00b104e0, 0x00b106c1 },
+   { 0x00800040, 0x24004529, 0x00b10400, 0x00b10541 },
+   { 0x00800040, 0x24204529, 0x00b10420, 0x00b10581 },
+   { 0x00800040, 0x24404529, 0x00b10440, 0x00b105c1 },
+   { 0x00800040, 0x24604529, 0x00b10460, 0x00b10601 },
+   { 0x00800040, 0x24804529, 0x00b10480, 0x00b10641 },
+   { 0x00800040, 0x24a04529, 0x00b104a0, 0x00b10681 },
+   { 0x00800040, 0x24c04529, 0x00b104c0, 0x00b106c1 },
+   { 0x00800040, 0x24e04529, 0x00b104e0, 0x00b10701 },
+   { 0x00a02008, 0x24002d29, 0x00b10400, 0x00020002 },
+   { 0x00a02008, 0x24402d29, 0x00b10440, 0x00020002 },
+   { 0x00a02008, 0x24802d29, 0x00b10480, 0x00020002 },
+   { 0x00a02008, 0x24c02d29, 0x00b104c0, 0x00020002 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000041 },
    { 0x00000001, 0x2e680061, 0x00000000, 0x0007001f },
-   { 0x00800031, 0x2ac01d29, 0x008d0e60, 0x0418a004 },
-   { 0x80800042, 0x2c004629, 0x00b109c0, 0x00b109c1 },
-   { 0x80800042, 0x2c204629, 0x00b10a00, 0x00b10a01 },
-   { 0x80800042, 0x2c404629, 0x00b10a40, 0x00b10a41 },
-   { 0x80800042, 0x2c604629, 0x00b10a80, 0x00b10a81 },
-   { 0x80800042, 0x2c804629, 0x00b10ac0, 0x00b10ac1 },
-   { 0x80800042, 0x2ca04629, 0x00b10b00, 0x00b10b01 },
-   { 0x80800042, 0x2cc04629, 0x00b10b40, 0x00b10b41 },
-   { 0x80800042, 0x2ce04629, 0x00b10b80, 0x00b10b81 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x0000002c },
-   { 0x01000005, 0x20002d3c, 0x00210030, 0x00010001 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000017 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
-   { 0x00800031, 0x29c01d29, 0x008d0e60, 0x0411a004 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a001d29, 0x008d0e60, 0x0411a004 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a401d29, 0x008d0e60, 0x0411a004 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a801d29, 0x008d0e60, 0x0411a004 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x02000005, 0x20002d3c, 0x00210e70, 0x00010001 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x00000004 },
+   { 0x00800031, 0x25001d29, 0x008d0e60, 0x0418a004 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 },
+   { 0x00800031, 0x26001d29, 0x008d0e60, 0x0418a004 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000003 },
+   { 0x00800031, 0x25001d29, 0x008d0e60, 0x0418a007 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 },
+   { 0x00800031, 0x26001d29, 0x008d0e60, 0x0418a007 },
+   { 0x00800042, 0x24004629, 0x00b10500, 0x00b10501 },
+   { 0x00800042, 0x24204629, 0x00b10540, 0x00b10541 },
+   { 0x00800042, 0x24404629, 0x00b10580, 0x00b10581 },
+   { 0x00800042, 0x24604629, 0x00b105c0, 0x00b105c1 },
+   { 0x00800042, 0x24804629, 0x00b10600, 0x00b10601 },
+   { 0x00800042, 0x24a04629, 0x00b10640, 0x00b10641 },
+   { 0x00800042, 0x24c04629, 0x00b10680, 0x00b10681 },
+   { 0x00800042, 0x24e04629, 0x00b106c0, 0x00b106c1 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x0000002e },
+   { 0x00000040, 0x22000c00, 0x00210200, 0x00000002 },
+   { 0x01000005, 0x20002d3c, 0x00218000, 0x00010001 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x00000019 },
    { 0x00000001, 0x2e680061, 0x00000000, 0x0007001f },
-   { 0x00800031, 0x2ac01d29, 0x008d0e60, 0x0418a004 },
+   { 0x02000005, 0x20002d3c, 0x00210e70, 0x00010001 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x00000007 },
+   { 0x00800031, 0x25001d29, 0x008d0e60, 0x0418a004 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 },
+   { 0x00800031, 0x26001d29, 0x008d0e60, 0x0418a004 },
    { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 },
    { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
-   { 0x00800031, 0x2bc01d29, 0x008d0e60, 0x0411a004 },
-   { 0x80800042, 0x2c004629, 0x00b109c0, 0x00b10a00 },
-   { 0x80800042, 0x2c204629, 0x00b10a00, 0x00b10a40 },
-   { 0x80800042, 0x2c404629, 0x00b10a40, 0x00b10a80 },
-   { 0x80800042, 0x2c604629, 0x00b10a80, 0x00b10ac0 },
-   { 0x80800042, 0x2c804629, 0x00b10ac0, 0x00b10b00 },
-   { 0x80800042, 0x2ca04629, 0x00b10b00, 0x00b10b40 },
-   { 0x80800042, 0x2cc04629, 0x00b10b40, 0x00b10b80 },
-   { 0x80800042, 0x2ce04629, 0x00b10b80, 0x00b10bc0 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000013 },
+   { 0x00800031, 0x27001d29, 0x008d0e60, 0x0411a004 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000006 },
+   { 0x00800031, 0x25001d29, 0x008d0e60, 0x0418a007 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 },
+   { 0x00800031, 0x26001d29, 0x008d0e60, 0x0418a007 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 },
    { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
-   { 0x00800031, 0x29c01d29, 0x008d0e60, 0x0411a004 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a001d29, 0x008d0e60, 0x0411a004 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a401d29, 0x008d0e60, 0x0411a004 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a801d29, 0x008d0e60, 0x0411a004 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00800031, 0x27001d29, 0x008d0e60, 0x0411a007 },
+   { 0x00800042, 0x24004629, 0x00b10500, 0x00b10540 },
+   { 0x00800042, 0x24204629, 0x00b10540, 0x00b10580 },
+   { 0x00800042, 0x24404629, 0x00b10580, 0x00b105c0 },
+   { 0x00800042, 0x24604629, 0x00b105c0, 0x00b10600 },
+   { 0x00800042, 0x24804629, 0x00b10600, 0x00b10640 },
+   { 0x00800042, 0x24a04629, 0x00b10640, 0x00b10680 },
+   { 0x00800042, 0x24c04629, 0x00b10680, 0x00b106c0 },
+   { 0x00800042, 0x24e04629, 0x00b106c0, 0x00b10700 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000012 },
    { 0x00000001, 0x2e680061, 0x00000000, 0x0007001f },
-   { 0x00800031, 0x2ac01d29, 0x008d0e60, 0x0418a004 },
-   { 0x00800001, 0x2c000229, 0x00b109c0, 0x00000000 },
-   { 0x00800001, 0x2c200229, 0x00b10a00, 0x00000000 },
-   { 0x00800001, 0x2c400229, 0x00b10a40, 0x00000000 },
-   { 0x00800001, 0x2c600229, 0x00b10a80, 0x00000000 },
-   { 0x00800001, 0x2c800229, 0x00b10ac0, 0x00000000 },
-   { 0x00800001, 0x2ca00229, 0x00b10b00, 0x00000000 },
-   { 0x00800001, 0x2cc00229, 0x00b10b40, 0x00000000 },
-   { 0x00800001, 0x2ce00229, 0x00b10b80, 0x00000000 },
+   { 0x02000005, 0x20002d3c, 0x00210e70, 0x00010001 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x00000004 },
+   { 0x00800031, 0x25001d29, 0x008d0e60, 0x0418a004 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 },
+   { 0x00800031, 0x26001d29, 0x008d0e60, 0x0418a004 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000003 },
+   { 0x00800031, 0x25001d29, 0x008d0e60, 0x0418a007 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 },
+   { 0x00800031, 0x26001d29, 0x008d0e60, 0x0418a007 },
+   { 0x00800001, 0x24000229, 0x00b10500, 0x00000000 },
+   { 0x00800001, 0x24200229, 0x00b10540, 0x00000000 },
+   { 0x00800001, 0x24400229, 0x00b10580, 0x00000000 },
+   { 0x00800001, 0x24600229, 0x00b105c0, 0x00000000 },
+   { 0x00800001, 0x24800229, 0x00b10600, 0x00000000 },
+   { 0x00800001, 0x24a00229, 0x00b10640, 0x00000000 },
+   { 0x00800001, 0x24c00229, 0x00b10680, 0x00000000 },
+   { 0x00800001, 0x24e00229, 0x00b106c0, 0x00000000 },
    { 0x00600001, 0x26800021, 0x008d0c00, 0x00000000 },
    { 0x00600001, 0x26c00021, 0x008d0c20, 0x00000000 },
    { 0x00600001, 0x27000021, 0x008d0c40, 0x00000000 },
@@ -239,121 +239,121 @@
    { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
    { 0x02000005, 0x20000e3c, 0x0021003f, 0x00000004 },
    { 0x00010040, 0x2e641ca5, 0x00210e64, 0x00000001 },
-   { 0x01000005, 0x20002d3c, 0x00210036, 0x00010001 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000045 },
-   { 0x01000005, 0x20002d3c, 0x00210038, 0x00010001 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x0000002f },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
-   { 0x00800031, 0x29c01d29, 0x008d0e60, 0x0411a004 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a001d29, 0x008d0e60, 0x0411a004 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a401d29, 0x008d0e60, 0x0411a004 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a801d29, 0x008d0e60, 0x0411a004 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x01000005, 0x20002d3c, 0x00218000, 0x00010001 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x00000043 },
+   { 0x00000040, 0x22000c00, 0x00210200, 0x00000002 },
+   { 0x01000005, 0x20002d3c, 0x00218000, 0x00010001 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x0000002d },
    { 0x00000001, 0x2e680061, 0x00000000, 0x0007001f },
-   { 0x00800031, 0x2ac01d29, 0x008d0e60, 0x0418a004 },
+   { 0x02000005, 0x20002d3c, 0x00210e70, 0x00010001 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x00000007 },
+   { 0x00800031, 0x25001d29, 0x008d0e60, 0x0418a004 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 },
+   { 0x00800031, 0x26001d29, 0x008d0e60, 0x0418a004 },
    { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 },
    { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
-   { 0x00800031, 0x2bc01d29, 0x008d0e60, 0x0411a004 },
-   { 0x00800040, 0x2c004629, 0x00b109c0, 0x00b10a00 },
-   { 0x00800040, 0x2c204629, 0x00b10a00, 0x00b10a40 },
-   { 0x00800040, 0x2c404629, 0x00b10a40, 0x00b10a80 },
-   { 0x00800040, 0x2c604629, 0x00b10a80, 0x00b10ac0 },
-   { 0x00800040, 0x2c804629, 0x00b10ac0, 0x00b10b00 },
-   { 0x00800040, 0x2ca04629, 0x00b10b00, 0x00b10b40 },
-   { 0x00800040, 0x2cc04629, 0x00b10b40, 0x00b10b80 },
-   { 0x00800040, 0x2ce04629, 0x00b10b80, 0x00b10bc0 },
-   { 0x00800040, 0x2c004529, 0x00b10c00, 0x00b109c1 },
-   { 0x00800040, 0x2c204529, 0x00b10c20, 0x00b10a01 },
-   { 0x00800040, 0x2c404529, 0x00b10c40, 0x00b10a41 },
-   { 0x00800040, 0x2c604529, 0x00b10c60, 0x00b10a81 },
-   { 0x00800040, 0x2c804529, 0x00b10c80, 0x00b10ac1 },
-   { 0x00800040, 0x2ca04529, 0x00b10ca0, 0x00b10b01 },
-   { 0x00800040, 0x2cc04529, 0x00b10cc0, 0x00b10b41 },
-   { 0x00800040, 0x2ce04529, 0x00b10ce0, 0x00b10b81 },
-   { 0x00800040, 0x2c004529, 0x00b10c00, 0x00b10a01 },
-   { 0x00800040, 0x2c204529, 0x00b10c20, 0x00b10a41 },
-   { 0x00800040, 0x2c404529, 0x00b10c40, 0x00b10a81 },
-   { 0x00800040, 0x2c604529, 0x00b10c60, 0x00b10ac1 },
-   { 0x00800040, 0x2c804529, 0x00b10c80, 0x00b10b01 },
-   { 0x00800040, 0x2ca04529, 0x00b10ca0, 0x00b10b41 },
-   { 0x00800040, 0x2cc04529, 0x00b10cc0, 0x00b10b81 },
-   { 0x00800040, 0x2ce04529, 0x00b10ce0, 0x00b10bc1 },
-   { 0x00800008, 0x2c002d29, 0x00b10c00, 0x00020002 },
-   { 0x00800008, 0x2c202d29, 0x00b10c20, 0x00020002 },
-   { 0x00800008, 0x2c402d29, 0x00b10c40, 0x00020002 },
-   { 0x00800008, 0x2c602d29, 0x00b10c60, 0x00020002 },
-   { 0x00800008, 0x2c802d29, 0x00b10c80, 0x00020002 },
-   { 0x00800008, 0x2ca02d29, 0x00b10ca0, 0x00020002 },
-   { 0x00800008, 0x2cc02d29, 0x00b10cc0, 0x00020002 },
-   { 0x00800008, 0x2ce02d29, 0x00b10ce0, 0x00020002 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000040 },
+   { 0x00800031, 0x27001d29, 0x008d0e60, 0x0411a004 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000006 },
+   { 0x00800031, 0x25001d29, 0x008d0e60, 0x0418a007 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 },
+   { 0x00800031, 0x26001d29, 0x008d0e60, 0x0418a007 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 },
    { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
-   { 0x00800031, 0x29c01d29, 0x008d0e60, 0x0411a004 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a001d29, 0x008d0e60, 0x0411a004 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a401d29, 0x008d0e60, 0x0411a004 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a801d29, 0x008d0e60, 0x0411a004 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00800031, 0x27001d29, 0x008d0e60, 0x0411a007 },
+   { 0x00800040, 0x24004629, 0x00b10500, 0x00b10540 },
+   { 0x00800040, 0x24204629, 0x00b10540, 0x00b10580 },
+   { 0x00800040, 0x24404629, 0x00b10580, 0x00b105c0 },
+   { 0x00800040, 0x24604629, 0x00b105c0, 0x00b10600 },
+   { 0x00800040, 0x24804629, 0x00b10600, 0x00b10640 },
+   { 0x00800040, 0x24a04629, 0x00b10640, 0x00b10680 },
+   { 0x00800040, 0x24c04629, 0x00b10680, 0x00b106c0 },
+   { 0x00800040, 0x24e04629, 0x00b106c0, 0x00b10700 },
+   { 0x00800040, 0x24004529, 0x00b10400, 0x00b10501 },
+   { 0x00800040, 0x24204529, 0x00b10420, 0x00b10541 },
+   { 0x00800040, 0x24404529, 0x00b10440, 0x00b10581 },
+   { 0x00800040, 0x24604529, 0x00b10460, 0x00b105c1 },
+   { 0x00800040, 0x24804529, 0x00b10480, 0x00b10601 },
+   { 0x00800040, 0x24a04529, 0x00b104a0, 0x00b10641 },
+   { 0x00800040, 0x24c04529, 0x00b104c0, 0x00b10681 },
+   { 0x00800040, 0x24e04529, 0x00b104e0, 0x00b106c1 },
+   { 0x00800040, 0x24004529, 0x00b10400, 0x00b10541 },
+   { 0x00800040, 0x24204529, 0x00b10420, 0x00b10581 },
+   { 0x00800040, 0x24404529, 0x00b10440, 0x00b105c1 },
+   { 0x00800040, 0x24604529, 0x00b10460, 0x00b10601 },
+   { 0x00800040, 0x24804529, 0x00b10480, 0x00b10641 },
+   { 0x00800040, 0x24a04529, 0x00b104a0, 0x00b10681 },
+   { 0x00800040, 0x24c04529, 0x00b104c0, 0x00b106c1 },
+   { 0x00800040, 0x24e04529, 0x00b104e0, 0x00b10701 },
+   { 0x00a02008, 0x24002d29, 0x00b10400, 0x00020002 },
+   { 0x00a02008, 0x24402d29, 0x00b10440, 0x00020002 },
+   { 0x00a02008, 0x24802d29, 0x00b10480, 0x00020002 },
+   { 0x00a02008, 0x24c02d29, 0x00b104c0, 0x00020002 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000041 },
    { 0x00000001, 0x2e680061, 0x00000000, 0x0007001f },
-   { 0x00800031, 0x2ac01d29, 0x008d0e60, 0x0418a004 },
-   { 0x80800042, 0x2c004629, 0x00b109c0, 0x00b109c1 },
-   { 0x80800042, 0x2c204629, 0x00b10a00, 0x00b10a01 },
-   { 0x80800042, 0x2c404629, 0x00b10a40, 0x00b10a41 },
-   { 0x80800042, 0x2c604629, 0x00b10a80, 0x00b10a81 },
-   { 0x80800042, 0x2c804629, 0x00b10ac0, 0x00b10ac1 },
-   { 0x80800042, 0x2ca04629, 0x00b10b00, 0x00b10b01 },
-   { 0x80800042, 0x2cc04629, 0x00b10b40, 0x00b10b41 },
-   { 0x80800042, 0x2ce04629, 0x00b10b80, 0x00b10b81 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x0000002c },
-   { 0x01000005, 0x20002d3c, 0x00210038, 0x00010001 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000017 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
-   { 0x00800031, 0x29c01d29, 0x008d0e60, 0x0411a004 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a001d29, 0x008d0e60, 0x0411a004 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a401d29, 0x008d0e60, 0x0411a004 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a801d29, 0x008d0e60, 0x0411a004 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x02000005, 0x20002d3c, 0x00210e70, 0x00010001 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x00000004 },
+   { 0x00800031, 0x25001d29, 0x008d0e60, 0x0418a004 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 },
+   { 0x00800031, 0x26001d29, 0x008d0e60, 0x0418a004 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000003 },
+   { 0x00800031, 0x25001d29, 0x008d0e60, 0x0418a007 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 },
+   { 0x00800031, 0x26001d29, 0x008d0e60, 0x0418a007 },
+   { 0x00800042, 0x24004629, 0x00b10500, 0x00b10501 },
+   { 0x00800042, 0x24204629, 0x00b10540, 0x00b10541 },
+   { 0x00800042, 0x24404629, 0x00b10580, 0x00b10581 },
+   { 0x00800042, 0x24604629, 0x00b105c0, 0x00b105c1 },
+   { 0x00800042, 0x24804629, 0x00b10600, 0x00b10601 },
+   { 0x00800042, 0x24a04629, 0x00b10640, 0x00b10641 },
+   { 0x00800042, 0x24c04629, 0x00b10680, 0x00b10681 },
+   { 0x00800042, 0x24e04629, 0x00b106c0, 0x00b106c1 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x0000002e },
+   { 0x00000040, 0x22000c00, 0x00210200, 0x00000002 },
+   { 0x01000005, 0x20002d3c, 0x00218000, 0x00010001 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x00000019 },
    { 0x00000001, 0x2e680061, 0x00000000, 0x0007001f },
-   { 0x00800031, 0x2ac01d29, 0x008d0e60, 0x0418a004 },
+   { 0x02000005, 0x20002d3c, 0x00210e70, 0x00010001 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x00000007 },
+   { 0x00800031, 0x25001d29, 0x008d0e60, 0x0418a004 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 },
+   { 0x00800031, 0x26001d29, 0x008d0e60, 0x0418a004 },
    { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 },
    { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
-   { 0x00800031, 0x2bc01d29, 0x008d0e60, 0x0411a004 },
-   { 0x80800042, 0x2c004629, 0x00b109c0, 0x00b10a00 },
-   { 0x80800042, 0x2c204629, 0x00b10a00, 0x00b10a40 },
-   { 0x80800042, 0x2c404629, 0x00b10a40, 0x00b10a80 },
-   { 0x80800042, 0x2c604629, 0x00b10a80, 0x00b10ac0 },
-   { 0x80800042, 0x2c804629, 0x00b10ac0, 0x00b10b00 },
-   { 0x80800042, 0x2ca04629, 0x00b10b00, 0x00b10b40 },
-   { 0x80800042, 0x2cc04629, 0x00b10b40, 0x00b10b80 },
-   { 0x80800042, 0x2ce04629, 0x00b10b80, 0x00b10bc0 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000013 },
+   { 0x00800031, 0x27001d29, 0x008d0e60, 0x0411a004 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000006 },
+   { 0x00800031, 0x25001d29, 0x008d0e60, 0x0418a007 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 },
+   { 0x00800031, 0x26001d29, 0x008d0e60, 0x0418a007 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 },
    { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
-   { 0x00800031, 0x29c01d29, 0x008d0e60, 0x0411a004 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a001d29, 0x008d0e60, 0x0411a004 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a401d29, 0x008d0e60, 0x0411a004 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a801d29, 0x008d0e60, 0x0411a004 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00800031, 0x27001d29, 0x008d0e60, 0x0411a007 },
+   { 0x00800042, 0x24004629, 0x00b10500, 0x00b10540 },
+   { 0x00800042, 0x24204629, 0x00b10540, 0x00b10580 },
+   { 0x00800042, 0x24404629, 0x00b10580, 0x00b105c0 },
+   { 0x00800042, 0x24604629, 0x00b105c0, 0x00b10600 },
+   { 0x00800042, 0x24804629, 0x00b10600, 0x00b10640 },
+   { 0x00800042, 0x24a04629, 0x00b10640, 0x00b10680 },
+   { 0x00800042, 0x24c04629, 0x00b10680, 0x00b106c0 },
+   { 0x00800042, 0x24e04629, 0x00b106c0, 0x00b10700 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000012 },
    { 0x00000001, 0x2e680061, 0x00000000, 0x0007001f },
-   { 0x00800031, 0x2ac01d29, 0x008d0e60, 0x0418a004 },
-   { 0x00800001, 0x2c000229, 0x00b109c0, 0x00000000 },
-   { 0x00800001, 0x2c200229, 0x00b10a00, 0x00000000 },
-   { 0x00800001, 0x2c400229, 0x00b10a40, 0x00000000 },
-   { 0x00800001, 0x2c600229, 0x00b10a80, 0x00000000 },
-   { 0x00800001, 0x2c800229, 0x00b10ac0, 0x00000000 },
-   { 0x00800001, 0x2ca00229, 0x00b10b00, 0x00000000 },
-   { 0x00800001, 0x2cc00229, 0x00b10b40, 0x00000000 },
-   { 0x00800001, 0x2ce00229, 0x00b10b80, 0x00000000 },
+   { 0x02000005, 0x20002d3c, 0x00210e70, 0x00010001 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x00000004 },
+   { 0x00800031, 0x25001d29, 0x008d0e60, 0x0418a004 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 },
+   { 0x00800031, 0x26001d29, 0x008d0e60, 0x0418a004 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000003 },
+   { 0x00800031, 0x25001d29, 0x008d0e60, 0x0418a007 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 },
+   { 0x00800031, 0x26001d29, 0x008d0e60, 0x0418a007 },
+   { 0x00800001, 0x24000229, 0x00b10500, 0x00000000 },
+   { 0x00800001, 0x24200229, 0x00b10540, 0x00000000 },
+   { 0x00800001, 0x24400229, 0x00b10580, 0x00000000 },
+   { 0x00800001, 0x24600229, 0x00b105c0, 0x00000000 },
+   { 0x00800001, 0x24800229, 0x00b10600, 0x00000000 },
+   { 0x00800001, 0x24a00229, 0x00b10640, 0x00000000 },
+   { 0x00800001, 0x24c00229, 0x00b10680, 0x00000000 },
+   { 0x00800001, 0x24e00229, 0x00b106c0, 0x00000000 },
    { 0x00600001, 0x26a00021, 0x008d0c00, 0x00000000 },
    { 0x00600001, 0x26e00021, 0x008d0c20, 0x00000000 },
    { 0x00600001, 0x27200021, 0x008d0c40, 0x00000000 },
@@ -369,90 +369,113 @@
    { 0x00000005, 0x2e640c21, 0x00210e64, 0xfffffffe },
    { 0x02000005, 0x20002e3c, 0x0021003f, 0x00010001 },
    { 0x00010040, 0x2e640c21, 0x00210e64, 0x00000001 },
-   { 0x01000005, 0x20002d3c, 0x0021002e, 0x00020002 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000036 },
-   { 0x01000005, 0x20002d3c, 0x00210030, 0x00020002 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000028 },
+   { 0x01000005, 0x20002d3c, 0x00218000, 0x00020002 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x00000041 },
+   { 0x00000040, 0x22000c00, 0x00210200, 0x00000002 },
+   { 0x01000005, 0x20002d3c, 0x00218000, 0x00020002 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x0000002d },
    { 0x00000001, 0x2e680061, 0x00000000, 0x0007000f },
-   { 0x00800031, 0x2ac01d29, 0x00ad0e60, 0x0414a005 },
-   { 0x00800031, 0x2b601d29, 0x00ad0e60, 0x0414a006 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0001000f },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 },
-   { 0x00800031, 0x2b401d29, 0x00ad0e60, 0x0411a005 },
-   { 0x00800031, 0x2be01d29, 0x00ad0e60, 0x0411a006 },
-   { 0x00800040, 0x29c04629, 0x00ad0ac0, 0x00ad0ae0 },
-   { 0x00800040, 0x29e04629, 0x00ad0ae0, 0x00ad0b00 },
-   { 0x00800040, 0x2a004629, 0x00ad0b00, 0x00ad0b20 },
-   { 0x00800040, 0x2a204629, 0x00ad0b20, 0x00ad0b40 },
-   { 0x00800040, 0x29c04529, 0x00ad09c0, 0x00ad0ac1 },
-   { 0x00800040, 0x29e04529, 0x00ad09e0, 0x00ad0ae1 },
-   { 0x00800040, 0x2a004529, 0x00ad0a00, 0x00ad0b01 },
-   { 0x00800040, 0x2a204529, 0x00ad0a20, 0x00ad0b21 },
-   { 0x00800040, 0x29c04529, 0x00ad09c0, 0x00ad0ae1 },
-   { 0x00800040, 0x29e04529, 0x00ad09e0, 0x00ad0b01 },
-   { 0x00800040, 0x2a004529, 0x00ad0a00, 0x00ad0b21 },
-   { 0x00800040, 0x2a204529, 0x00ad0a20, 0x00ad0b41 },
-   { 0x00800040, 0x2a404629, 0x00ad0b60, 0x00ad0b80 },
-   { 0x00800040, 0x2a604629, 0x00ad0b80, 0x00ad0ba0 },
-   { 0x00800040, 0x2a804629, 0x00ad0ba0, 0x00ad0bc0 },
-   { 0x00800040, 0x2aa04629, 0x00ad0bc0, 0x00ad0be0 },
-   { 0x00800040, 0x2a404529, 0x00ad0a40, 0x00ad0b61 },
-   { 0x00800040, 0x2a604529, 0x00ad0a60, 0x00ad0b81 },
-   { 0x00800040, 0x2a804529, 0x00ad0a80, 0x00ad0ba1 },
-   { 0x00800040, 0x2aa04529, 0x00ad0aa0, 0x00ad0bc1 },
-   { 0x00800040, 0x2a404529, 0x00ad0a40, 0x00ad0b81 },
-   { 0x00800040, 0x2a604529, 0x00ad0a60, 0x00ad0ba1 },
-   { 0x00800040, 0x2a804529, 0x00ad0a80, 0x00ad0bc1 },
-   { 0x00800040, 0x2aa04529, 0x00ad0aa0, 0x00ad0be1 },
-   { 0x80800008, 0x29c02d29, 0x00b109c0, 0x00020002 },
-   { 0x80800008, 0x29e02d29, 0x00b109e0, 0x00020002 },
-   { 0x80800008, 0x2a002d29, 0x00b10a00, 0x00020002 },
-   { 0x80800008, 0x2a202d29, 0x00b10a20, 0x00020002 },
-   { 0x80800008, 0x2a402d29, 0x00b10a40, 0x00020002 },
-   { 0x80800008, 0x2a602d29, 0x00b10a60, 0x00020002 },
-   { 0x80800008, 0x2a802d29, 0x00b10a80, 0x00020002 },
-   { 0x80800008, 0x2aa02d29, 0x00b10aa0, 0x00020002 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000028 },
+   { 0x02000005, 0x20002d3c, 0x00210e70, 0x00010001 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x00000007 },
+   { 0x00800031, 0x25001d29, 0x008d0e60, 0x0414a005 },
+   { 0x00800031, 0x25a01d29, 0x008d0e60, 0x0414a006 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0000000f },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 },
+   { 0x00800031, 0x25801d29, 0x008d0e60, 0x0411a005 },
+   { 0x00800031, 0x26201d29, 0x008d0e60, 0x0411a006 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000006 },
+   { 0x00800031, 0x25001d29, 0x008d0e60, 0x0414a008 },
+   { 0x00800031, 0x25a01d29, 0x008d0e60, 0x0414a009 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0000000f },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 },
+   { 0x00800031, 0x25801d29, 0x008d0e60, 0x0411a008 },
+   { 0x00800031, 0x26201d29, 0x008d0e60, 0x0411a009 },
+   { 0x00600040, 0x24004629, 0x008d0500, 0x008d0520 },
+   { 0x00600040, 0x24204629, 0x008d0520, 0x008d0540 },
+   { 0x00600040, 0x24404629, 0x008d0540, 0x008d0560 },
+   { 0x00600040, 0x24604629, 0x008d0560, 0x008d0580 },
+   { 0x00600040, 0x24004529, 0x008d0400, 0x008d0501 },
+   { 0x00600040, 0x24204529, 0x008d0420, 0x008d0521 },
+   { 0x00600040, 0x24404529, 0x008d0440, 0x008d0541 },
+   { 0x00600040, 0x24604529, 0x008d0460, 0x008d0561 },
+   { 0x00600040, 0x24004529, 0x008d0400, 0x008d0521 },
+   { 0x00600040, 0x24204529, 0x008d0420, 0x008d0541 },
+   { 0x00600040, 0x24404529, 0x008d0440, 0x008d0561 },
+   { 0x00600040, 0x24604529, 0x008d0460, 0x008d0581 },
+   { 0x00600040, 0x24804629, 0x008d05a0, 0x008d05c0 },
+   { 0x00600040, 0x24a04629, 0x008d05c0, 0x008d05e0 },
+   { 0x00600040, 0x24c04629, 0x008d05e0, 0x008d0600 },
+   { 0x00600040, 0x24e04629, 0x008d0600, 0x008d0620 },
+   { 0x00600040, 0x24804529, 0x008d0480, 0x008d05a1 },
+   { 0x00600040, 0x24a04529, 0x008d04a0, 0x008d05c1 },
+   { 0x00600040, 0x24c04529, 0x008d04c0, 0x008d05e1 },
+   { 0x00600040, 0x24e04529, 0x008d04e0, 0x008d0601 },
+   { 0x00600040, 0x24804529, 0x008d0480, 0x008d05c1 },
+   { 0x00600040, 0x24a04529, 0x008d04a0, 0x008d05e1 },
+   { 0x00600040, 0x24c04529, 0x008d04c0, 0x008d0601 },
+   { 0x00600040, 0x24e04529, 0x008d04e0, 0x008d0621 },
+   { 0x00a02008, 0x24002d29, 0x00b10400, 0x00020002 },
+   { 0x00a02008, 0x24402d29, 0x00b10440, 0x00020002 },
+   { 0x00a02008, 0x24802d29, 0x00b10480, 0x00020002 },
+   { 0x00a02008, 0x24c02d29, 0x00b104c0, 0x00020002 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000039 },
    { 0x00000001, 0x2e680061, 0x00000000, 0x0007000f },
-   { 0x00800031, 0x2ac01d29, 0x00ad0e60, 0x0414a005 },
-   { 0x00800031, 0x2b601d29, 0x00ad0e60, 0x0414a006 },
-   { 0x80800042, 0x29c04629, 0x00ad0ac0, 0x00ad0ac1 },
-   { 0x80800042, 0x29e04629, 0x00ad0ae0, 0x00ad0ae1 },
-   { 0x80800042, 0x2a004629, 0x00ad0b00, 0x00ad0b01 },
-   { 0x80800042, 0x2a204629, 0x00ad0b20, 0x00ad0b21 },
-   { 0x80800042, 0x2a404629, 0x00ad0b60, 0x00ad0b61 },
-   { 0x80800042, 0x2a604629, 0x00ad0b80, 0x00ad0b81 },
-   { 0x80800042, 0x2a804629, 0x00ad0ba0, 0x00ad0ba1 },
-   { 0x80800042, 0x2aa04629, 0x00ad0bc0, 0x00ad0bc1 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x0000001c },
-   { 0x01000005, 0x20002d3c, 0x00210030, 0x00020002 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x0000000f },
+   { 0x02000005, 0x20002d3c, 0x00210e70, 0x00010001 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x00000003 },
+   { 0x00800031, 0x25001d29, 0x008d0e60, 0x0414a005 },
+   { 0x00800031, 0x25801d29, 0x008d0e60, 0x0414a006 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000002 },
+   { 0x00800031, 0x25001d29, 0x008d0e60, 0x0414a008 },
+   { 0x00800031, 0x25801d29, 0x008d0e60, 0x0414a009 },
+   { 0x00600042, 0x24004629, 0x008d0500, 0x008d0501 },
+   { 0x00600042, 0x24204629, 0x008d0520, 0x008d0521 },
+   { 0x00600042, 0x24404629, 0x008d0540, 0x008d0541 },
+   { 0x00600042, 0x24604629, 0x008d0560, 0x008d0561 },
+   { 0x00600042, 0x24804629, 0x008d0580, 0x008d0581 },
+   { 0x00600042, 0x24a04629, 0x008d05a0, 0x008d05a1 },
+   { 0x00600042, 0x24c04629, 0x008d05c0, 0x008d05c1 },
+   { 0x00600042, 0x24e04629, 0x008d05e0, 0x008d05e1 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000028 },
+   { 0x00000040, 0x22000c00, 0x00210200, 0x00000002 },
+   { 0x01000005, 0x20002d3c, 0x00218000, 0x00020002 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x00000019 },
    { 0x00000001, 0x2e680061, 0x00000000, 0x0007000f },
-   { 0x00800031, 0x2ac01d29, 0x00ad0e60, 0x0414a005 },
-   { 0x00800031, 0x2b601d29, 0x00ad0e60, 0x0414a006 },
+   { 0x02000005, 0x20002d3c, 0x00210e70, 0x00010001 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x00000007 },
+   { 0x00800031, 0x25001d29, 0x008d0e60, 0x0414a005 },
+   { 0x00800031, 0x25a01d29, 0x008d0e60, 0x0414a006 },
    { 0x00000001, 0x2e680061, 0x00000000, 0x0000000f },
-   { 0x00800031, 0x2b401d29, 0x00ad0e60, 0x0411a005 },
-   { 0x00800031, 0x2be01d29, 0x00ad0e60, 0x0411a006 },
-   { 0x80800042, 0x29c04629, 0x00ad0ac0, 0x00ad0ae0 },
-   { 0x80800042, 0x29e04629, 0x00ad0ae0, 0x00ad0b00 },
-   { 0x80800042, 0x2a004629, 0x00ad0b00, 0x00ad0b20 },
-   { 0x80800042, 0x2a204629, 0x00ad0b20, 0x00ad0b40 },
-   { 0x80800042, 0x2a404629, 0x00ad0b60, 0x00ad0b80 },
-   { 0x80800042, 0x2a604629, 0x00ad0b80, 0x00ad0ba0 },
-   { 0x80800042, 0x2a804629, 0x00ad0ba0, 0x00ad0bc0 },
-   { 0x80800042, 0x2aa04629, 0x00ad0bc0, 0x00ad0be0 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x0000000b },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 },
+   { 0x00800031, 0x25801d29, 0x008d0e60, 0x0411a005 },
+   { 0x00800031, 0x26201d29, 0x008d0e60, 0x0411a006 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000006 },
+   { 0x00800031, 0x25001d29, 0x008d0e60, 0x0414a008 },
+   { 0x00800031, 0x25a01d29, 0x008d0e60, 0x0414a009 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0000000f },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 },
+   { 0x00800031, 0x25801d29, 0x008d0e60, 0x0411a008 },
+   { 0x00800031, 0x26201d29, 0x008d0e60, 0x0411a009 },
+   { 0x00600042, 0x24004629, 0x008d0500, 0x008d0520 },
+   { 0x00600042, 0x24204629, 0x008d0520, 0x008d0540 },
+   { 0x00600042, 0x24404629, 0x008d0540, 0x008d0560 },
+   { 0x00600042, 0x24604629, 0x008d0560, 0x008d0580 },
+   { 0x00600042, 0x24804629, 0x008d05a0, 0x008d05c0 },
+   { 0x00600042, 0x24a04629, 0x008d05c0, 0x008d05e0 },
+   { 0x00600042, 0x24c04629, 0x008d05e0, 0x008d0600 },
+   { 0x00600042, 0x24e04629, 0x008d0600, 0x008d0620 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x0000000c },
    { 0x00000001, 0x2e680061, 0x00000000, 0x0007000f },
-   { 0x00800031, 0x2ac01d29, 0x00ad0e60, 0x0414a005 },
-   { 0x00800031, 0x2b601d29, 0x00ad0e60, 0x0414a006 },
-   { 0x00800001, 0x29c00229, 0x00ad0ac0, 0x00000000 },
-   { 0x00800001, 0x29e00229, 0x00ad0ae0, 0x00000000 },
-   { 0x00800001, 0x2a000229, 0x00ad0b00, 0x00000000 },
-   { 0x00800001, 0x2a200229, 0x00ad0b20, 0x00000000 },
-   { 0x00800001, 0x2a400229, 0x00ad0b60, 0x00000000 },
-   { 0x00800001, 0x2a600229, 0x00ad0b80, 0x00000000 },
-   { 0x00800001, 0x2a800229, 0x00ad0ba0, 0x00000000 },
-   { 0x00800001, 0x2aa00229, 0x00ad0bc0, 0x00000000 },
+   { 0x02000005, 0x20002d3c, 0x00210e70, 0x00010001 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x00000003 },
+   { 0x00800031, 0x25001d29, 0x008d0e60, 0x0414a005 },
+   { 0x00800031, 0x26001d29, 0x008d0e60, 0x0414a006 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000002 },
+   { 0x00800031, 0x25001d29, 0x008d0e60, 0x0414a008 },
+   { 0x00800031, 0x26001d29, 0x008d0e60, 0x0414a009 },
+   { 0x00802001, 0x24000229, 0x008d0500, 0x00000000 },
+   { 0x00802001, 0x24400229, 0x008d0540, 0x00000000 },
+   { 0x00802001, 0x24800229, 0x008d0600, 0x00000000 },
+   { 0x00802001, 0x24c00229, 0x008d0640, 0x00000000 },
    { 0x00600001, 0x28800129, 0x008d09c0, 0x00000000 },
    { 0x00600001, 0x28a00129, 0x008d09e0, 0x00000000 },
    { 0x00600001, 0x28c00129, 0x008d0a00, 0x00000000 },
@@ -467,90 +490,113 @@
    { 0x00000005, 0x2e640c21, 0x00210e64, 0xfffffffe },
    { 0x02000005, 0x20002e3c, 0x0021003f, 0x00040004 },
    { 0x00010040, 0x2e640c21, 0x00210e64, 0x00000001 },
-   { 0x01000005, 0x20002d3c, 0x00210038, 0x00020002 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000036 },
-   { 0x01000005, 0x20002d3c, 0x0021003a, 0x00020002 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000028 },
+   { 0x01000005, 0x20002d3c, 0x00218000, 0x00020002 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x00000041 },
+   { 0x00000040, 0x22000c00, 0x00210200, 0x00000002 },
+   { 0x01000005, 0x20002d3c, 0x00218000, 0x00020002 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x0000002d },
    { 0x00000001, 0x2e680061, 0x00000000, 0x0007000f },
-   { 0x00800031, 0x2ac01d29, 0x00ad0e60, 0x0414a005 },
-   { 0x00800031, 0x2b601d29, 0x00ad0e60, 0x0414a006 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0001000f },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 },
-   { 0x00800031, 0x2b401d29, 0x00ad0e60, 0x0411a005 },
-   { 0x00800031, 0x2be01d29, 0x00ad0e60, 0x0411a006 },
-   { 0x00800040, 0x29c04629, 0x00ad0ac0, 0x00ad0ae0 },
-   { 0x00800040, 0x29e04629, 0x00ad0ae0, 0x00ad0b00 },
-   { 0x00800040, 0x2a004629, 0x00ad0b00, 0x00ad0b20 },
-   { 0x00800040, 0x2a204629, 0x00ad0b20, 0x00ad0b40 },
-   { 0x00800040, 0x29c04529, 0x00ad09c0, 0x00ad0ac1 },
-   { 0x00800040, 0x29e04529, 0x00ad09e0, 0x00ad0ae1 },
-   { 0x00800040, 0x2a004529, 0x00ad0a00, 0x00ad0b01 },
-   { 0x00800040, 0x2a204529, 0x00ad0a20, 0x00ad0b21 },
-   { 0x00800040, 0x29c04529, 0x00ad09c0, 0x00ad0ae1 },
-   { 0x00800040, 0x29e04529, 0x00ad09e0, 0x00ad0b01 },
-   { 0x00800040, 0x2a004529, 0x00ad0a00, 0x00ad0b21 },
-   { 0x00800040, 0x2a204529, 0x00ad0a20, 0x00ad0b41 },
-   { 0x00800040, 0x2a404629, 0x00ad0b60, 0x00ad0b80 },
-   { 0x00800040, 0x2a604629, 0x00ad0b80, 0x00ad0ba0 },
-   { 0x00800040, 0x2a804629, 0x00ad0ba0, 0x00ad0bc0 },
-   { 0x00800040, 0x2aa04629, 0x00ad0bc0, 0x00ad0be0 },
-   { 0x00800040, 0x2a404529, 0x00ad0a40, 0x00ad0b61 },
-   { 0x00800040, 0x2a604529, 0x00ad0a60, 0x00ad0b81 },
-   { 0x00800040, 0x2a804529, 0x00ad0a80, 0x00ad0ba1 },
-   { 0x00800040, 0x2aa04529, 0x00ad0aa0, 0x00ad0bc1 },
-   { 0x00800040, 0x2a404529, 0x00ad0a40, 0x00ad0b81 },
-   { 0x00800040, 0x2a604529, 0x00ad0a60, 0x00ad0ba1 },
-   { 0x00800040, 0x2a804529, 0x00ad0a80, 0x00ad0bc1 },
-   { 0x00800040, 0x2aa04529, 0x00ad0aa0, 0x00ad0be1 },
-   { 0x80800008, 0x29c02d29, 0x00b109c0, 0x00020002 },
-   { 0x80800008, 0x29e02d29, 0x00b109e0, 0x00020002 },
-   { 0x80800008, 0x2a002d29, 0x00b10a00, 0x00020002 },
-   { 0x80800008, 0x2a202d29, 0x00b10a20, 0x00020002 },
-   { 0x80800008, 0x2a402d29, 0x00b10a40, 0x00020002 },
-   { 0x80800008, 0x2a602d29, 0x00b10a60, 0x00020002 },
-   { 0x80800008, 0x2a802d29, 0x00b10a80, 0x00020002 },
-   { 0x80800008, 0x2aa02d29, 0x00b10aa0, 0x00020002 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000028 },
+   { 0x02000005, 0x20002d3c, 0x00210e70, 0x00010001 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x00000007 },
+   { 0x00800031, 0x25001d29, 0x008d0e60, 0x0414a005 },
+   { 0x00800031, 0x25a01d29, 0x008d0e60, 0x0414a006 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0000000f },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 },
+   { 0x00800031, 0x25801d29, 0x008d0e60, 0x0411a005 },
+   { 0x00800031, 0x26201d29, 0x008d0e60, 0x0411a006 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000006 },
+   { 0x00800031, 0x25001d29, 0x008d0e60, 0x0414a008 },
+   { 0x00800031, 0x25a01d29, 0x008d0e60, 0x0414a009 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0000000f },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 },
+   { 0x00800031, 0x25801d29, 0x008d0e60, 0x0411a008 },
+   { 0x00800031, 0x26201d29, 0x008d0e60, 0x0411a009 },
+   { 0x00600040, 0x24004629, 0x008d0500, 0x008d0520 },
+   { 0x00600040, 0x24204629, 0x008d0520, 0x008d0540 },
+   { 0x00600040, 0x24404629, 0x008d0540, 0x008d0560 },
+   { 0x00600040, 0x24604629, 0x008d0560, 0x008d0580 },
+   { 0x00600040, 0x24004529, 0x008d0400, 0x008d0501 },
+   { 0x00600040, 0x24204529, 0x008d0420, 0x008d0521 },
+   { 0x00600040, 0x24404529, 0x008d0440, 0x008d0541 },
+   { 0x00600040, 0x24604529, 0x008d0460, 0x008d0561 },
+   { 0x00600040, 0x24004529, 0x008d0400, 0x008d0521 },
+   { 0x00600040, 0x24204529, 0x008d0420, 0x008d0541 },
+   { 0x00600040, 0x24404529, 0x008d0440, 0x008d0561 },
+   { 0x00600040, 0x24604529, 0x008d0460, 0x008d0581 },
+   { 0x00600040, 0x24804629, 0x008d05a0, 0x008d05c0 },
+   { 0x00600040, 0x24a04629, 0x008d05c0, 0x008d05e0 },
+   { 0x00600040, 0x24c04629, 0x008d05e0, 0x008d0600 },
+   { 0x00600040, 0x24e04629, 0x008d0600, 0x008d0620 },
+   { 0x00600040, 0x24804529, 0x008d0480, 0x008d05a1 },
+   { 0x00600040, 0x24a04529, 0x008d04a0, 0x008d05c1 },
+   { 0x00600040, 0x24c04529, 0x008d04c0, 0x008d05e1 },
+   { 0x00600040, 0x24e04529, 0x008d04e0, 0x008d0601 },
+   { 0x00600040, 0x24804529, 0x008d0480, 0x008d05c1 },
+   { 0x00600040, 0x24a04529, 0x008d04a0, 0x008d05e1 },
+   { 0x00600040, 0x24c04529, 0x008d04c0, 0x008d0601 },
+   { 0x00600040, 0x24e04529, 0x008d04e0, 0x008d0621 },
+   { 0x00a02008, 0x24002d29, 0x00b10400, 0x00020002 },
+   { 0x00a02008, 0x24402d29, 0x00b10440, 0x00020002 },
+   { 0x00a02008, 0x24802d29, 0x00b10480, 0x00020002 },
+   { 0x00a02008, 0x24c02d29, 0x00b104c0, 0x00020002 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000039 },
    { 0x00000001, 0x2e680061, 0x00000000, 0x0007000f },
-   { 0x00800031, 0x2ac01d29, 0x00ad0e60, 0x0414a005 },
-   { 0x00800031, 0x2b601d29, 0x00ad0e60, 0x0414a006 },
-   { 0x80800042, 0x29c04629, 0x00ad0ac0, 0x00ad0ac1 },
-   { 0x80800042, 0x29e04629, 0x00ad0ae0, 0x00ad0ae1 },
-   { 0x80800042, 0x2a004629, 0x00ad0b00, 0x00ad0b01 },
-   { 0x80800042, 0x2a204629, 0x00ad0b20, 0x00ad0b21 },
-   { 0x80800042, 0x2a404629, 0x00ad0b60, 0x00ad0b61 },
-   { 0x80800042, 0x2a604629, 0x00ad0b80, 0x00ad0b81 },
-   { 0x80800042, 0x2a804629, 0x00ad0ba0, 0x00ad0ba1 },
-   { 0x80800042, 0x2aa04629, 0x00ad0bc0, 0x00ad0bc1 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x0000001c },
-   { 0x01000005, 0x20002d3c, 0x0021003a, 0x00020002 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x0000000f },
+   { 0x02000005, 0x20002d3c, 0x00210e70, 0x00010001 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x00000003 },
+   { 0x00800031, 0x25001d29, 0x008d0e60, 0x0414a005 },
+   { 0x00800031, 0x25801d29, 0x008d0e60, 0x0414a006 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000002 },
+   { 0x00800031, 0x25001d29, 0x008d0e60, 0x0414a008 },
+   { 0x00800031, 0x25801d29, 0x008d0e60, 0x0414a009 },
+   { 0x00600042, 0x24004629, 0x008d0500, 0x008d0501 },
+   { 0x00600042, 0x24204629, 0x008d0520, 0x008d0521 },
+   { 0x00600042, 0x24404629, 0x008d0540, 0x008d0541 },
+   { 0x00600042, 0x24604629, 0x008d0560, 0x008d0561 },
+   { 0x00600042, 0x24804629, 0x008d0580, 0x008d0581 },
+   { 0x00600042, 0x24a04629, 0x008d05a0, 0x008d05a1 },
+   { 0x00600042, 0x24c04629, 0x008d05c0, 0x008d05c1 },
+   { 0x00600042, 0x24e04629, 0x008d05e0, 0x008d05e1 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000028 },
+   { 0x00000040, 0x22000c00, 0x00210200, 0x00000002 },
+   { 0x01000005, 0x20002d3c, 0x00218000, 0x00020002 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x00000019 },
    { 0x00000001, 0x2e680061, 0x00000000, 0x0007000f },
-   { 0x00800031, 0x2ac01d29, 0x00ad0e60, 0x0414a005 },
-   { 0x00800031, 0x2b601d29, 0x00ad0e60, 0x0414a006 },
+   { 0x02000005, 0x20002d3c, 0x00210e70, 0x00010001 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x00000007 },
+   { 0x00800031, 0x25001d29, 0x008d0e60, 0x0414a005 },
+   { 0x00800031, 0x25a01d29, 0x008d0e60, 0x0414a006 },
    { 0x00000001, 0x2e680061, 0x00000000, 0x0000000f },
-   { 0x00800031, 0x2b401d29, 0x00ad0e60, 0x0411a005 },
-   { 0x00800031, 0x2be01d29, 0x00ad0e60, 0x0411a006 },
-   { 0x80800042, 0x29c04629, 0x00ad0ac0, 0x00ad0ae0 },
-   { 0x80800042, 0x29e04629, 0x00ad0ae0, 0x00ad0b00 },
-   { 0x80800042, 0x2a004629, 0x00ad0b00, 0x00ad0b20 },
-   { 0x80800042, 0x2a204629, 0x00ad0b20, 0x00ad0b40 },
-   { 0x80800042, 0x2a404629, 0x00ad0b60, 0x00ad0b80 },
-   { 0x80800042, 0x2a604629, 0x00ad0b80, 0x00ad0ba0 },
-   { 0x80800042, 0x2a804629, 0x00ad0ba0, 0x00ad0bc0 },
-   { 0x80800042, 0x2aa04629, 0x00ad0bc0, 0x00ad0be0 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x0000000b },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 },
+   { 0x00800031, 0x25801d29, 0x008d0e60, 0x0411a005 },
+   { 0x00800031, 0x26201d29, 0x008d0e60, 0x0411a006 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000006 },
+   { 0x00800031, 0x25001d29, 0x008d0e60, 0x0414a008 },
+   { 0x00800031, 0x25a01d29, 0x008d0e60, 0x0414a009 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0000000f },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 },
+   { 0x00800031, 0x25801d29, 0x008d0e60, 0x0411a008 },
+   { 0x00800031, 0x26201d29, 0x008d0e60, 0x0411a009 },
+   { 0x00600042, 0x24004629, 0x008d0500, 0x008d0520 },
+   { 0x00600042, 0x24204629, 0x008d0520, 0x008d0540 },
+   { 0x00600042, 0x24404629, 0x008d0540, 0x008d0560 },
+   { 0x00600042, 0x24604629, 0x008d0560, 0x008d0580 },
+   { 0x00600042, 0x24804629, 0x008d05a0, 0x008d05c0 },
+   { 0x00600042, 0x24a04629, 0x008d05c0, 0x008d05e0 },
+   { 0x00600042, 0x24c04629, 0x008d05e0, 0x008d0600 },
+   { 0x00600042, 0x24e04629, 0x008d0600, 0x008d0620 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x0000000c },
    { 0x00000001, 0x2e680061, 0x00000000, 0x0007000f },
-   { 0x00800031, 0x2ac01d29, 0x00ad0e60, 0x0414a005 },
-   { 0x00800031, 0x2b601d29, 0x00ad0e60, 0x0414a006 },
-   { 0x00800001, 0x29c00229, 0x00ad0ac0, 0x00000000 },
-   { 0x00800001, 0x29e00229, 0x00ad0ae0, 0x00000000 },
-   { 0x00800001, 0x2a000229, 0x00ad0b00, 0x00000000 },
-   { 0x00800001, 0x2a200229, 0x00ad0b20, 0x00000000 },
-   { 0x00800001, 0x2a400229, 0x00ad0b60, 0x00000000 },
-   { 0x00800001, 0x2a600229, 0x00ad0b80, 0x00000000 },
-   { 0x00800001, 0x2a800229, 0x00ad0ba0, 0x00000000 },
-   { 0x00800001, 0x2aa00229, 0x00ad0bc0, 0x00000000 },
+   { 0x02000005, 0x20002d3c, 0x00210e70, 0x00010001 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x00000003 },
+   { 0x00800031, 0x25001d29, 0x008d0e60, 0x0414a005 },
+   { 0x00800031, 0x26001d29, 0x008d0e60, 0x0414a006 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000002 },
+   { 0x00800031, 0x25001d29, 0x008d0e60, 0x0414a008 },
+   { 0x00800031, 0x26001d29, 0x008d0e60, 0x0414a009 },
+   { 0x00802001, 0x24000229, 0x008d0500, 0x00000000 },
+   { 0x00802001, 0x24400229, 0x008d0540, 0x00000000 },
+   { 0x00802001, 0x24800229, 0x008d0600, 0x00000000 },
+   { 0x00802001, 0x24c00229, 0x008d0640, 0x00000000 },
    { 0x00600001, 0x28900129, 0x008d09c0, 0x00000000 },
    { 0x00600001, 0x28b00129, 0x008d09e0, 0x00000000 },
    { 0x00600001, 0x28d00129, 0x008d0a00, 0x00000000 },
@@ -568,121 +614,121 @@
    { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
    { 0x02000005, 0x20002e3c, 0x0021003f, 0x00020002 },
    { 0x00010040, 0x2e641ca5, 0x00210e64, 0x00000001 },
-   { 0x01000005, 0x20002d3c, 0x00210032, 0x00010001 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000045 },
-   { 0x01000005, 0x20002d3c, 0x00210034, 0x00010001 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x0000002f },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
-   { 0x00800031, 0x29c01d29, 0x008d0e60, 0x0411a007 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a001d29, 0x008d0e60, 0x0411a007 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a401d29, 0x008d0e60, 0x0411a007 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a801d29, 0x008d0e60, 0x0411a007 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x01000005, 0x20002d3c, 0x00218000, 0x00010001 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x00000043 },
+   { 0x00000040, 0x22000c00, 0x00210200, 0x00000002 },
+   { 0x01000005, 0x20002d3c, 0x00218000, 0x00010001 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x0000002d },
    { 0x00000001, 0x2e680061, 0x00000000, 0x0007001f },
-   { 0x00800031, 0x2ac01d29, 0x008d0e60, 0x0418a007 },
+   { 0x02000005, 0x20002d3c, 0x00210e70, 0x00010001 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x00000007 },
+   { 0x00800031, 0x25001d29, 0x008d0e60, 0x0418a004 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 },
+   { 0x00800031, 0x26001d29, 0x008d0e60, 0x0418a004 },
    { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 },
    { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
-   { 0x00800031, 0x2bc01d29, 0x008d0e60, 0x0411a007 },
-   { 0x00800040, 0x2c004629, 0x00b109c0, 0x00b10a00 },
-   { 0x00800040, 0x2c204629, 0x00b10a00, 0x00b10a40 },
-   { 0x00800040, 0x2c404629, 0x00b10a40, 0x00b10a80 },
-   { 0x00800040, 0x2c604629, 0x00b10a80, 0x00b10ac0 },
-   { 0x00800040, 0x2c804629, 0x00b10ac0, 0x00b10b00 },
-   { 0x00800040, 0x2ca04629, 0x00b10b00, 0x00b10b40 },
-   { 0x00800040, 0x2cc04629, 0x00b10b40, 0x00b10b80 },
-   { 0x00800040, 0x2ce04629, 0x00b10b80, 0x00b10bc0 },
-   { 0x00800040, 0x2c004529, 0x00b10c00, 0x00b109c1 },
-   { 0x00800040, 0x2c204529, 0x00b10c20, 0x00b10a01 },
-   { 0x00800040, 0x2c404529, 0x00b10c40, 0x00b10a41 },
-   { 0x00800040, 0x2c604529, 0x00b10c60, 0x00b10a81 },
-   { 0x00800040, 0x2c804529, 0x00b10c80, 0x00b10ac1 },
-   { 0x00800040, 0x2ca04529, 0x00b10ca0, 0x00b10b01 },
-   { 0x00800040, 0x2cc04529, 0x00b10cc0, 0x00b10b41 },
-   { 0x00800040, 0x2ce04529, 0x00b10ce0, 0x00b10b81 },
-   { 0x00800040, 0x2c004529, 0x00b10c00, 0x00b10a01 },
-   { 0x00800040, 0x2c204529, 0x00b10c20, 0x00b10a41 },
-   { 0x00800040, 0x2c404529, 0x00b10c40, 0x00b10a81 },
-   { 0x00800040, 0x2c604529, 0x00b10c60, 0x00b10ac1 },
-   { 0x00800040, 0x2c804529, 0x00b10c80, 0x00b10b01 },
-   { 0x00800040, 0x2ca04529, 0x00b10ca0, 0x00b10b41 },
-   { 0x00800040, 0x2cc04529, 0x00b10cc0, 0x00b10b81 },
-   { 0x00800040, 0x2ce04529, 0x00b10ce0, 0x00b10bc1 },
-   { 0x00800008, 0x2c002d29, 0x00b10c00, 0x00020002 },
-   { 0x00800008, 0x2c202d29, 0x00b10c20, 0x00020002 },
-   { 0x00800008, 0x2c402d29, 0x00b10c40, 0x00020002 },
-   { 0x00800008, 0x2c602d29, 0x00b10c60, 0x00020002 },
-   { 0x00800008, 0x2c802d29, 0x00b10c80, 0x00020002 },
-   { 0x00800008, 0x2ca02d29, 0x00b10ca0, 0x00020002 },
-   { 0x00800008, 0x2cc02d29, 0x00b10cc0, 0x00020002 },
-   { 0x00800008, 0x2ce02d29, 0x00b10ce0, 0x00020002 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000040 },
+   { 0x00800031, 0x27001d29, 0x008d0e60, 0x0411a004 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000006 },
+   { 0x00800031, 0x25001d29, 0x008d0e60, 0x0418a007 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 },
+   { 0x00800031, 0x26001d29, 0x008d0e60, 0x0418a007 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 },
    { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
-   { 0x00800031, 0x29c01d29, 0x008d0e60, 0x0411a007 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a001d29, 0x008d0e60, 0x0411a007 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a401d29, 0x008d0e60, 0x0411a007 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a801d29, 0x008d0e60, 0x0411a007 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00800031, 0x27001d29, 0x008d0e60, 0x0411a007 },
+   { 0x00800040, 0x24004629, 0x00b10500, 0x00b10540 },
+   { 0x00800040, 0x24204629, 0x00b10540, 0x00b10580 },
+   { 0x00800040, 0x24404629, 0x00b10580, 0x00b105c0 },
+   { 0x00800040, 0x24604629, 0x00b105c0, 0x00b10600 },
+   { 0x00800040, 0x24804629, 0x00b10600, 0x00b10640 },
+   { 0x00800040, 0x24a04629, 0x00b10640, 0x00b10680 },
+   { 0x00800040, 0x24c04629, 0x00b10680, 0x00b106c0 },
+   { 0x00800040, 0x24e04629, 0x00b106c0, 0x00b10700 },
+   { 0x00800040, 0x24004529, 0x00b10400, 0x00b10501 },
+   { 0x00800040, 0x24204529, 0x00b10420, 0x00b10541 },
+   { 0x00800040, 0x24404529, 0x00b10440, 0x00b10581 },
+   { 0x00800040, 0x24604529, 0x00b10460, 0x00b105c1 },
+   { 0x00800040, 0x24804529, 0x00b10480, 0x00b10601 },
+   { 0x00800040, 0x24a04529, 0x00b104a0, 0x00b10641 },
+   { 0x00800040, 0x24c04529, 0x00b104c0, 0x00b10681 },
+   { 0x00800040, 0x24e04529, 0x00b104e0, 0x00b106c1 },
+   { 0x00800040, 0x24004529, 0x00b10400, 0x00b10541 },
+   { 0x00800040, 0x24204529, 0x00b10420, 0x00b10581 },
+   { 0x00800040, 0x24404529, 0x00b10440, 0x00b105c1 },
+   { 0x00800040, 0x24604529, 0x00b10460, 0x00b10601 },
+   { 0x00800040, 0x24804529, 0x00b10480, 0x00b10641 },
+   { 0x00800040, 0x24a04529, 0x00b104a0, 0x00b10681 },
+   { 0x00800040, 0x24c04529, 0x00b104c0, 0x00b106c1 },
+   { 0x00800040, 0x24e04529, 0x00b104e0, 0x00b10701 },
+   { 0x00a02008, 0x24002d29, 0x00b10400, 0x00020002 },
+   { 0x00a02008, 0x24402d29, 0x00b10440, 0x00020002 },
+   { 0x00a02008, 0x24802d29, 0x00b10480, 0x00020002 },
+   { 0x00a02008, 0x24c02d29, 0x00b104c0, 0x00020002 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000041 },
    { 0x00000001, 0x2e680061, 0x00000000, 0x0007001f },
-   { 0x00800031, 0x2ac01d29, 0x008d0e60, 0x0418a007 },
-   { 0x80800042, 0x2c004629, 0x00b109c0, 0x00b109c1 },
-   { 0x80800042, 0x2c204629, 0x00b10a00, 0x00b10a01 },
-   { 0x80800042, 0x2c404629, 0x00b10a40, 0x00b10a41 },
-   { 0x80800042, 0x2c604629, 0x00b10a80, 0x00b10a81 },
-   { 0x80800042, 0x2c804629, 0x00b10ac0, 0x00b10ac1 },
-   { 0x80800042, 0x2ca04629, 0x00b10b00, 0x00b10b01 },
-   { 0x80800042, 0x2cc04629, 0x00b10b40, 0x00b10b41 },
-   { 0x80800042, 0x2ce04629, 0x00b10b80, 0x00b10b81 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x0000002c },
-   { 0x01000005, 0x20002d3c, 0x00210034, 0x00010001 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000017 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
-   { 0x00800031, 0x29c01d29, 0x008d0e60, 0x0411a007 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a001d29, 0x008d0e60, 0x0411a007 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a401d29, 0x008d0e60, 0x0411a007 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a801d29, 0x008d0e60, 0x0411a007 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x02000005, 0x20002d3c, 0x00210e70, 0x00010001 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x00000004 },
+   { 0x00800031, 0x25001d29, 0x008d0e60, 0x0418a004 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 },
+   { 0x00800031, 0x26001d29, 0x008d0e60, 0x0418a004 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000003 },
+   { 0x00800031, 0x25001d29, 0x008d0e60, 0x0418a007 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 },
+   { 0x00800031, 0x26001d29, 0x008d0e60, 0x0418a007 },
+   { 0x00800042, 0x24004629, 0x00b10500, 0x00b10501 },
+   { 0x00800042, 0x24204629, 0x00b10540, 0x00b10541 },
+   { 0x00800042, 0x24404629, 0x00b10580, 0x00b10581 },
+   { 0x00800042, 0x24604629, 0x00b105c0, 0x00b105c1 },
+   { 0x00800042, 0x24804629, 0x00b10600, 0x00b10601 },
+   { 0x00800042, 0x24a04629, 0x00b10640, 0x00b10641 },
+   { 0x00800042, 0x24c04629, 0x00b10680, 0x00b10681 },
+   { 0x00800042, 0x24e04629, 0x00b106c0, 0x00b106c1 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x0000002e },
+   { 0x00000040, 0x22000c00, 0x00210200, 0x00000002 },
+   { 0x01000005, 0x20002d3c, 0x00218000, 0x00010001 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x00000019 },
    { 0x00000001, 0x2e680061, 0x00000000, 0x0007001f },
-   { 0x00800031, 0x2ac01d29, 0x008d0e60, 0x0418a007 },
+   { 0x02000005, 0x20002d3c, 0x00210e70, 0x00010001 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x00000007 },
+   { 0x00800031, 0x25001d29, 0x008d0e60, 0x0418a004 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 },
+   { 0x00800031, 0x26001d29, 0x008d0e60, 0x0418a004 },
    { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 },
    { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
-   { 0x00800031, 0x2bc01d29, 0x008d0e60, 0x0411a007 },
-   { 0x80800042, 0x2c004629, 0x00b109c0, 0x00b10a00 },
-   { 0x80800042, 0x2c204629, 0x00b10a00, 0x00b10a40 },
-   { 0x80800042, 0x2c404629, 0x00b10a40, 0x00b10a80 },
-   { 0x80800042, 0x2c604629, 0x00b10a80, 0x00b10ac0 },
-   { 0x80800042, 0x2c804629, 0x00b10ac0, 0x00b10b00 },
-   { 0x80800042, 0x2ca04629, 0x00b10b00, 0x00b10b40 },
-   { 0x80800042, 0x2cc04629, 0x00b10b40, 0x00b10b80 },
-   { 0x80800042, 0x2ce04629, 0x00b10b80, 0x00b10bc0 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000013 },
+   { 0x00800031, 0x27001d29, 0x008d0e60, 0x0411a004 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000006 },
+   { 0x00800031, 0x25001d29, 0x008d0e60, 0x0418a007 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 },
+   { 0x00800031, 0x26001d29, 0x008d0e60, 0x0418a007 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 },
    { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
-   { 0x00800031, 0x29c01d29, 0x008d0e60, 0x0411a007 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a001d29, 0x008d0e60, 0x0411a007 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a401d29, 0x008d0e60, 0x0411a007 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a801d29, 0x008d0e60, 0x0411a007 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00800031, 0x27001d29, 0x008d0e60, 0x0411a007 },
+   { 0x00800042, 0x24004629, 0x00b10500, 0x00b10540 },
+   { 0x00800042, 0x24204629, 0x00b10540, 0x00b10580 },
+   { 0x00800042, 0x24404629, 0x00b10580, 0x00b105c0 },
+   { 0x00800042, 0x24604629, 0x00b105c0, 0x00b10600 },
+   { 0x00800042, 0x24804629, 0x00b10600, 0x00b10640 },
+   { 0x00800042, 0x24a04629, 0x00b10640, 0x00b10680 },
+   { 0x00800042, 0x24c04629, 0x00b10680, 0x00b106c0 },
+   { 0x00800042, 0x24e04629, 0x00b106c0, 0x00b10700 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000012 },
    { 0x00000001, 0x2e680061, 0x00000000, 0x0007001f },
-   { 0x00800031, 0x2ac01d29, 0x008d0e60, 0x0418a007 },
-   { 0x00800001, 0x2c000229, 0x00b109c0, 0x00000000 },
-   { 0x00800001, 0x2c200229, 0x00b10a00, 0x00000000 },
-   { 0x00800001, 0x2c400229, 0x00b10a40, 0x00000000 },
-   { 0x00800001, 0x2c600229, 0x00b10a80, 0x00000000 },
-   { 0x00800001, 0x2c800229, 0x00b10ac0, 0x00000000 },
-   { 0x00800001, 0x2ca00229, 0x00b10b00, 0x00000000 },
-   { 0x00800001, 0x2cc00229, 0x00b10b40, 0x00000000 },
-   { 0x00800001, 0x2ce00229, 0x00b10b80, 0x00000000 },
+   { 0x02000005, 0x20002d3c, 0x00210e70, 0x00010001 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x00000004 },
+   { 0x00800031, 0x25001d29, 0x008d0e60, 0x0418a004 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 },
+   { 0x00800031, 0x26001d29, 0x008d0e60, 0x0418a004 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000003 },
+   { 0x00800031, 0x25001d29, 0x008d0e60, 0x0418a007 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 },
+   { 0x00800031, 0x26001d29, 0x008d0e60, 0x0418a007 },
+   { 0x00800001, 0x24000229, 0x00b10500, 0x00000000 },
+   { 0x00800001, 0x24200229, 0x00b10540, 0x00000000 },
+   { 0x00800001, 0x24400229, 0x00b10580, 0x00000000 },
+   { 0x00800001, 0x24600229, 0x00b105c0, 0x00000000 },
+   { 0x00800001, 0x24800229, 0x00b10600, 0x00000000 },
+   { 0x00800001, 0x24a00229, 0x00b10640, 0x00000000 },
+   { 0x00800001, 0x24c00229, 0x00b10680, 0x00000000 },
+   { 0x00800001, 0x24e00229, 0x00b106c0, 0x00000000 },
    { 0x00600001, 0x23800021, 0x008d0c00, 0x00000000 },
    { 0x00600001, 0x23c00021, 0x008d0c20, 0x00000000 },
    { 0x00600001, 0x24000021, 0x008d0c40, 0x00000000 },
@@ -697,121 +743,121 @@
    { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
    { 0x02000005, 0x20000c3c, 0x00210054, 0x00000008 },
    { 0x00010040, 0x2e641ca5, 0x00210e64, 0x00000001 },
-   { 0x01000005, 0x20002d3c, 0x0021003a, 0x00010001 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000045 },
-   { 0x01000005, 0x20002d3c, 0x0021003c, 0x00010001 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x0000002f },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
-   { 0x00800031, 0x29c01d29, 0x008d0e60, 0x0411a007 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a001d29, 0x008d0e60, 0x0411a007 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a401d29, 0x008d0e60, 0x0411a007 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a801d29, 0x008d0e60, 0x0411a007 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x01000005, 0x20002d3c, 0x00218000, 0x00010001 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x00000043 },
+   { 0x00000040, 0x22000c00, 0x00210200, 0x00000002 },
+   { 0x01000005, 0x20002d3c, 0x00218000, 0x00010001 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x0000002d },
    { 0x00000001, 0x2e680061, 0x00000000, 0x0007001f },
-   { 0x00800031, 0x2ac01d29, 0x008d0e60, 0x0418a007 },
+   { 0x02000005, 0x20002d3c, 0x00210e70, 0x00010001 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x00000007 },
+   { 0x00800031, 0x25001d29, 0x008d0e60, 0x0418a004 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 },
+   { 0x00800031, 0x26001d29, 0x008d0e60, 0x0418a004 },
    { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 },
    { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
-   { 0x00800031, 0x2bc01d29, 0x008d0e60, 0x0411a007 },
-   { 0x00800040, 0x2c004629, 0x00b109c0, 0x00b10a00 },
-   { 0x00800040, 0x2c204629, 0x00b10a00, 0x00b10a40 },
-   { 0x00800040, 0x2c404629, 0x00b10a40, 0x00b10a80 },
-   { 0x00800040, 0x2c604629, 0x00b10a80, 0x00b10ac0 },
-   { 0x00800040, 0x2c804629, 0x00b10ac0, 0x00b10b00 },
-   { 0x00800040, 0x2ca04629, 0x00b10b00, 0x00b10b40 },
-   { 0x00800040, 0x2cc04629, 0x00b10b40, 0x00b10b80 },
-   { 0x00800040, 0x2ce04629, 0x00b10b80, 0x00b10bc0 },
-   { 0x00800040, 0x2c004529, 0x00b10c00, 0x00b109c1 },
-   { 0x00800040, 0x2c204529, 0x00b10c20, 0x00b10a01 },
-   { 0x00800040, 0x2c404529, 0x00b10c40, 0x00b10a41 },
-   { 0x00800040, 0x2c604529, 0x00b10c60, 0x00b10a81 },
-   { 0x00800040, 0x2c804529, 0x00b10c80, 0x00b10ac1 },
-   { 0x00800040, 0x2ca04529, 0x00b10ca0, 0x00b10b01 },
-   { 0x00800040, 0x2cc04529, 0x00b10cc0, 0x00b10b41 },
-   { 0x00800040, 0x2ce04529, 0x00b10ce0, 0x00b10b81 },
-   { 0x00800040, 0x2c004529, 0x00b10c00, 0x00b10a01 },
-   { 0x00800040, 0x2c204529, 0x00b10c20, 0x00b10a41 },
-   { 0x00800040, 0x2c404529, 0x00b10c40, 0x00b10a81 },
-   { 0x00800040, 0x2c604529, 0x00b10c60, 0x00b10ac1 },
-   { 0x00800040, 0x2c804529, 0x00b10c80, 0x00b10b01 },
-   { 0x00800040, 0x2ca04529, 0x00b10ca0, 0x00b10b41 },
-   { 0x00800040, 0x2cc04529, 0x00b10cc0, 0x00b10b81 },
-   { 0x00800040, 0x2ce04529, 0x00b10ce0, 0x00b10bc1 },
-   { 0x00800008, 0x2c002d29, 0x00b10c00, 0x00020002 },
-   { 0x00800008, 0x2c202d29, 0x00b10c20, 0x00020002 },
-   { 0x00800008, 0x2c402d29, 0x00b10c40, 0x00020002 },
-   { 0x00800008, 0x2c602d29, 0x00b10c60, 0x00020002 },
-   { 0x00800008, 0x2c802d29, 0x00b10c80, 0x00020002 },
-   { 0x00800008, 0x2ca02d29, 0x00b10ca0, 0x00020002 },
-   { 0x00800008, 0x2cc02d29, 0x00b10cc0, 0x00020002 },
-   { 0x00800008, 0x2ce02d29, 0x00b10ce0, 0x00020002 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000040 },
+   { 0x00800031, 0x27001d29, 0x008d0e60, 0x0411a004 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000006 },
+   { 0x00800031, 0x25001d29, 0x008d0e60, 0x0418a007 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 },
+   { 0x00800031, 0x26001d29, 0x008d0e60, 0x0418a007 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 },
    { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
-   { 0x00800031, 0x29c01d29, 0x008d0e60, 0x0411a007 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a001d29, 0x008d0e60, 0x0411a007 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a401d29, 0x008d0e60, 0x0411a007 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a801d29, 0x008d0e60, 0x0411a007 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00800031, 0x27001d29, 0x008d0e60, 0x0411a007 },
+   { 0x00800040, 0x24004629, 0x00b10500, 0x00b10540 },
+   { 0x00800040, 0x24204629, 0x00b10540, 0x00b10580 },
+   { 0x00800040, 0x24404629, 0x00b10580, 0x00b105c0 },
+   { 0x00800040, 0x24604629, 0x00b105c0, 0x00b10600 },
+   { 0x00800040, 0x24804629, 0x00b10600, 0x00b10640 },
+   { 0x00800040, 0x24a04629, 0x00b10640, 0x00b10680 },
+   { 0x00800040, 0x24c04629, 0x00b10680, 0x00b106c0 },
+   { 0x00800040, 0x24e04629, 0x00b106c0, 0x00b10700 },
+   { 0x00800040, 0x24004529, 0x00b10400, 0x00b10501 },
+   { 0x00800040, 0x24204529, 0x00b10420, 0x00b10541 },
+   { 0x00800040, 0x24404529, 0x00b10440, 0x00b10581 },
+   { 0x00800040, 0x24604529, 0x00b10460, 0x00b105c1 },
+   { 0x00800040, 0x24804529, 0x00b10480, 0x00b10601 },
+   { 0x00800040, 0x24a04529, 0x00b104a0, 0x00b10641 },
+   { 0x00800040, 0x24c04529, 0x00b104c0, 0x00b10681 },
+   { 0x00800040, 0x24e04529, 0x00b104e0, 0x00b106c1 },
+   { 0x00800040, 0x24004529, 0x00b10400, 0x00b10541 },
+   { 0x00800040, 0x24204529, 0x00b10420, 0x00b10581 },
+   { 0x00800040, 0x24404529, 0x00b10440, 0x00b105c1 },
+   { 0x00800040, 0x24604529, 0x00b10460, 0x00b10601 },
+   { 0x00800040, 0x24804529, 0x00b10480, 0x00b10641 },
+   { 0x00800040, 0x24a04529, 0x00b104a0, 0x00b10681 },
+   { 0x00800040, 0x24c04529, 0x00b104c0, 0x00b106c1 },
+   { 0x00800040, 0x24e04529, 0x00b104e0, 0x00b10701 },
+   { 0x00a02008, 0x24002d29, 0x00b10400, 0x00020002 },
+   { 0x00a02008, 0x24402d29, 0x00b10440, 0x00020002 },
+   { 0x00a02008, 0x24802d29, 0x00b10480, 0x00020002 },
+   { 0x00a02008, 0x24c02d29, 0x00b104c0, 0x00020002 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000041 },
    { 0x00000001, 0x2e680061, 0x00000000, 0x0007001f },
-   { 0x00800031, 0x2ac01d29, 0x008d0e60, 0x0418a007 },
-   { 0x80800042, 0x2c004629, 0x00b109c0, 0x00b109c1 },
-   { 0x80800042, 0x2c204629, 0x00b10a00, 0x00b10a01 },
-   { 0x80800042, 0x2c404629, 0x00b10a40, 0x00b10a41 },
-   { 0x80800042, 0x2c604629, 0x00b10a80, 0x00b10a81 },
-   { 0x80800042, 0x2c804629, 0x00b10ac0, 0x00b10ac1 },
-   { 0x80800042, 0x2ca04629, 0x00b10b00, 0x00b10b01 },
-   { 0x80800042, 0x2cc04629, 0x00b10b40, 0x00b10b41 },
-   { 0x80800042, 0x2ce04629, 0x00b10b80, 0x00b10b81 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x0000002c },
-   { 0x01000005, 0x20002d3c, 0x0021003c, 0x00010001 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000017 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
-   { 0x00800031, 0x29c01d29, 0x008d0e60, 0x0411a007 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a001d29, 0x008d0e60, 0x0411a007 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a401d29, 0x008d0e60, 0x0411a007 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a801d29, 0x008d0e60, 0x0411a007 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x02000005, 0x20002d3c, 0x00210e70, 0x00010001 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x00000004 },
+   { 0x00800031, 0x25001d29, 0x008d0e60, 0x0418a004 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 },
+   { 0x00800031, 0x26001d29, 0x008d0e60, 0x0418a004 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000003 },
+   { 0x00800031, 0x25001d29, 0x008d0e60, 0x0418a007 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 },
+   { 0x00800031, 0x26001d29, 0x008d0e60, 0x0418a007 },
+   { 0x00800042, 0x24004629, 0x00b10500, 0x00b10501 },
+   { 0x00800042, 0x24204629, 0x00b10540, 0x00b10541 },
+   { 0x00800042, 0x24404629, 0x00b10580, 0x00b10581 },
+   { 0x00800042, 0x24604629, 0x00b105c0, 0x00b105c1 },
+   { 0x00800042, 0x24804629, 0x00b10600, 0x00b10601 },
+   { 0x00800042, 0x24a04629, 0x00b10640, 0x00b10641 },
+   { 0x00800042, 0x24c04629, 0x00b10680, 0x00b10681 },
+   { 0x00800042, 0x24e04629, 0x00b106c0, 0x00b106c1 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x0000002e },
+   { 0x00000040, 0x22000c00, 0x00210200, 0x00000002 },
+   { 0x01000005, 0x20002d3c, 0x00218000, 0x00010001 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x00000019 },
    { 0x00000001, 0x2e680061, 0x00000000, 0x0007001f },
-   { 0x00800031, 0x2ac01d29, 0x008d0e60, 0x0418a007 },
+   { 0x02000005, 0x20002d3c, 0x00210e70, 0x00010001 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x00000007 },
+   { 0x00800031, 0x25001d29, 0x008d0e60, 0x0418a004 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 },
+   { 0x00800031, 0x26001d29, 0x008d0e60, 0x0418a004 },
    { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 },
    { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
-   { 0x00800031, 0x2bc01d29, 0x008d0e60, 0x0411a007 },
-   { 0x80800042, 0x2c004629, 0x00b109c0, 0x00b10a00 },
-   { 0x80800042, 0x2c204629, 0x00b10a00, 0x00b10a40 },
-   { 0x80800042, 0x2c404629, 0x00b10a40, 0x00b10a80 },
-   { 0x80800042, 0x2c604629, 0x00b10a80, 0x00b10ac0 },
-   { 0x80800042, 0x2c804629, 0x00b10ac0, 0x00b10b00 },
-   { 0x80800042, 0x2ca04629, 0x00b10b00, 0x00b10b40 },
-   { 0x80800042, 0x2cc04629, 0x00b10b40, 0x00b10b80 },
-   { 0x80800042, 0x2ce04629, 0x00b10b80, 0x00b10bc0 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000013 },
+   { 0x00800031, 0x27001d29, 0x008d0e60, 0x0411a004 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000006 },
+   { 0x00800031, 0x25001d29, 0x008d0e60, 0x0418a007 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 },
+   { 0x00800031, 0x26001d29, 0x008d0e60, 0x0418a007 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 },
    { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
-   { 0x00800031, 0x29c01d29, 0x008d0e60, 0x0411a007 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a001d29, 0x008d0e60, 0x0411a007 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a401d29, 0x008d0e60, 0x0411a007 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a801d29, 0x008d0e60, 0x0411a007 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00800031, 0x27001d29, 0x008d0e60, 0x0411a007 },
+   { 0x00800042, 0x24004629, 0x00b10500, 0x00b10540 },
+   { 0x00800042, 0x24204629, 0x00b10540, 0x00b10580 },
+   { 0x00800042, 0x24404629, 0x00b10580, 0x00b105c0 },
+   { 0x00800042, 0x24604629, 0x00b105c0, 0x00b10600 },
+   { 0x00800042, 0x24804629, 0x00b10600, 0x00b10640 },
+   { 0x00800042, 0x24a04629, 0x00b10640, 0x00b10680 },
+   { 0x00800042, 0x24c04629, 0x00b10680, 0x00b106c0 },
+   { 0x00800042, 0x24e04629, 0x00b106c0, 0x00b10700 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000012 },
    { 0x00000001, 0x2e680061, 0x00000000, 0x0007001f },
-   { 0x00800031, 0x2ac01d29, 0x008d0e60, 0x0418a007 },
-   { 0x00800001, 0x2c000229, 0x00b109c0, 0x00000000 },
-   { 0x00800001, 0x2c200229, 0x00b10a00, 0x00000000 },
-   { 0x00800001, 0x2c400229, 0x00b10a40, 0x00000000 },
-   { 0x00800001, 0x2c600229, 0x00b10a80, 0x00000000 },
-   { 0x00800001, 0x2c800229, 0x00b10ac0, 0x00000000 },
-   { 0x00800001, 0x2ca00229, 0x00b10b00, 0x00000000 },
-   { 0x00800001, 0x2cc00229, 0x00b10b40, 0x00000000 },
-   { 0x00800001, 0x2ce00229, 0x00b10b80, 0x00000000 },
+   { 0x02000005, 0x20002d3c, 0x00210e70, 0x00010001 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x00000004 },
+   { 0x00800031, 0x25001d29, 0x008d0e60, 0x0418a004 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 },
+   { 0x00800031, 0x26001d29, 0x008d0e60, 0x0418a004 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000003 },
+   { 0x00800031, 0x25001d29, 0x008d0e60, 0x0418a007 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 },
+   { 0x00800031, 0x26001d29, 0x008d0e60, 0x0418a007 },
+   { 0x00800001, 0x24000229, 0x00b10500, 0x00000000 },
+   { 0x00800001, 0x24200229, 0x00b10540, 0x00000000 },
+   { 0x00800001, 0x24400229, 0x00b10580, 0x00000000 },
+   { 0x00800001, 0x24600229, 0x00b105c0, 0x00000000 },
+   { 0x00800001, 0x24800229, 0x00b10600, 0x00000000 },
+   { 0x00800001, 0x24a00229, 0x00b10640, 0x00000000 },
+   { 0x00800001, 0x24c00229, 0x00b10680, 0x00000000 },
+   { 0x00800001, 0x24e00229, 0x00b106c0, 0x00000000 },
    { 0x80800042, 0x23802529, 0x00b10680, 0x00b10380 },
    { 0x80800042, 0x23a02529, 0x00b106a0, 0x00b10c00 },
    { 0x80800042, 0x23c02529, 0x00b106c0, 0x00b103c0 },
@@ -835,90 +881,113 @@
    { 0x00000005, 0x2e640c21, 0x00210e64, 0xfffffffe },
    { 0x02000005, 0x20002e3c, 0x0021003f, 0x00020002 },
    { 0x00010040, 0x2e640c21, 0x00210e64, 0x00000001 },
-   { 0x01000005, 0x20002d3c, 0x00210032, 0x00020002 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000036 },
-   { 0x01000005, 0x20002d3c, 0x00210034, 0x00020002 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000028 },
+   { 0x01000005, 0x20002d3c, 0x00218000, 0x00020002 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x00000041 },
+   { 0x00000040, 0x22000c00, 0x00210200, 0x00000002 },
+   { 0x01000005, 0x20002d3c, 0x00218000, 0x00020002 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x0000002d },
    { 0x00000001, 0x2e680061, 0x00000000, 0x0007000f },
-   { 0x00800031, 0x2ac01d29, 0x00ad0e60, 0x0414a008 },
-   { 0x00800031, 0x2b601d29, 0x00ad0e60, 0x0414a009 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0001000f },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 },
-   { 0x00800031, 0x2b401d29, 0x00ad0e60, 0x0411a008 },
-   { 0x00800031, 0x2be01d29, 0x00ad0e60, 0x0411a009 },
-   { 0x00800040, 0x29c04629, 0x00ad0ac0, 0x00ad0ae0 },
-   { 0x00800040, 0x29e04629, 0x00ad0ae0, 0x00ad0b00 },
-   { 0x00800040, 0x2a004629, 0x00ad0b00, 0x00ad0b20 },
-   { 0x00800040, 0x2a204629, 0x00ad0b20, 0x00ad0b40 },
-   { 0x00800040, 0x29c04529, 0x00ad09c0, 0x00ad0ac1 },
-   { 0x00800040, 0x29e04529, 0x00ad09e0, 0x00ad0ae1 },
-   { 0x00800040, 0x2a004529, 0x00ad0a00, 0x00ad0b01 },
-   { 0x00800040, 0x2a204529, 0x00ad0a20, 0x00ad0b21 },
-   { 0x00800040, 0x29c04529, 0x00ad09c0, 0x00ad0ae1 },
-   { 0x00800040, 0x29e04529, 0x00ad09e0, 0x00ad0b01 },
-   { 0x00800040, 0x2a004529, 0x00ad0a00, 0x00ad0b21 },
-   { 0x00800040, 0x2a204529, 0x00ad0a20, 0x00ad0b41 },
-   { 0x00800040, 0x2a404629, 0x00ad0b60, 0x00ad0b80 },
-   { 0x00800040, 0x2a604629, 0x00ad0b80, 0x00ad0ba0 },
-   { 0x00800040, 0x2a804629, 0x00ad0ba0, 0x00ad0bc0 },
-   { 0x00800040, 0x2aa04629, 0x00ad0bc0, 0x00ad0be0 },
-   { 0x00800040, 0x2a404529, 0x00ad0a40, 0x00ad0b61 },
-   { 0x00800040, 0x2a604529, 0x00ad0a60, 0x00ad0b81 },
-   { 0x00800040, 0x2a804529, 0x00ad0a80, 0x00ad0ba1 },
-   { 0x00800040, 0x2aa04529, 0x00ad0aa0, 0x00ad0bc1 },
-   { 0x00800040, 0x2a404529, 0x00ad0a40, 0x00ad0b81 },
-   { 0x00800040, 0x2a604529, 0x00ad0a60, 0x00ad0ba1 },
-   { 0x00800040, 0x2a804529, 0x00ad0a80, 0x00ad0bc1 },
-   { 0x00800040, 0x2aa04529, 0x00ad0aa0, 0x00ad0be1 },
-   { 0x80800008, 0x29c02d29, 0x00b109c0, 0x00020002 },
-   { 0x80800008, 0x29e02d29, 0x00b109e0, 0x00020002 },
-   { 0x80800008, 0x2a002d29, 0x00b10a00, 0x00020002 },
-   { 0x80800008, 0x2a202d29, 0x00b10a20, 0x00020002 },
-   { 0x80800008, 0x2a402d29, 0x00b10a40, 0x00020002 },
-   { 0x80800008, 0x2a602d29, 0x00b10a60, 0x00020002 },
-   { 0x80800008, 0x2a802d29, 0x00b10a80, 0x00020002 },
-   { 0x80800008, 0x2aa02d29, 0x00b10aa0, 0x00020002 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000028 },
+   { 0x02000005, 0x20002d3c, 0x00210e70, 0x00010001 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x00000007 },
+   { 0x00800031, 0x25001d29, 0x008d0e60, 0x0414a005 },
+   { 0x00800031, 0x25a01d29, 0x008d0e60, 0x0414a006 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0000000f },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 },
+   { 0x00800031, 0x25801d29, 0x008d0e60, 0x0411a005 },
+   { 0x00800031, 0x26201d29, 0x008d0e60, 0x0411a006 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000006 },
+   { 0x00800031, 0x25001d29, 0x008d0e60, 0x0414a008 },
+   { 0x00800031, 0x25a01d29, 0x008d0e60, 0x0414a009 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0000000f },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 },
+   { 0x00800031, 0x25801d29, 0x008d0e60, 0x0411a008 },
+   { 0x00800031, 0x26201d29, 0x008d0e60, 0x0411a009 },
+   { 0x00600040, 0x24004629, 0x008d0500, 0x008d0520 },
+   { 0x00600040, 0x24204629, 0x008d0520, 0x008d0540 },
+   { 0x00600040, 0x24404629, 0x008d0540, 0x008d0560 },
+   { 0x00600040, 0x24604629, 0x008d0560, 0x008d0580 },
+   { 0x00600040, 0x24004529, 0x008d0400, 0x008d0501 },
+   { 0x00600040, 0x24204529, 0x008d0420, 0x008d0521 },
+   { 0x00600040, 0x24404529, 0x008d0440, 0x008d0541 },
+   { 0x00600040, 0x24604529, 0x008d0460, 0x008d0561 },
+   { 0x00600040, 0x24004529, 0x008d0400, 0x008d0521 },
+   { 0x00600040, 0x24204529, 0x008d0420, 0x008d0541 },
+   { 0x00600040, 0x24404529, 0x008d0440, 0x008d0561 },
+   { 0x00600040, 0x24604529, 0x008d0460, 0x008d0581 },
+   { 0x00600040, 0x24804629, 0x008d05a0, 0x008d05c0 },
+   { 0x00600040, 0x24a04629, 0x008d05c0, 0x008d05e0 },
+   { 0x00600040, 0x24c04629, 0x008d05e0, 0x008d0600 },
+   { 0x00600040, 0x24e04629, 0x008d0600, 0x008d0620 },
+   { 0x00600040, 0x24804529, 0x008d0480, 0x008d05a1 },
+   { 0x00600040, 0x24a04529, 0x008d04a0, 0x008d05c1 },
+   { 0x00600040, 0x24c04529, 0x008d04c0, 0x008d05e1 },
+   { 0x00600040, 0x24e04529, 0x008d04e0, 0x008d0601 },
+   { 0x00600040, 0x24804529, 0x008d0480, 0x008d05c1 },
+   { 0x00600040, 0x24a04529, 0x008d04a0, 0x008d05e1 },
+   { 0x00600040, 0x24c04529, 0x008d04c0, 0x008d0601 },
+   { 0x00600040, 0x24e04529, 0x008d04e0, 0x008d0621 },
+   { 0x00a02008, 0x24002d29, 0x00b10400, 0x00020002 },
+   { 0x00a02008, 0x24402d29, 0x00b10440, 0x00020002 },
+   { 0x00a02008, 0x24802d29, 0x00b10480, 0x00020002 },
+   { 0x00a02008, 0x24c02d29, 0x00b104c0, 0x00020002 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000039 },
    { 0x00000001, 0x2e680061, 0x00000000, 0x0007000f },
-   { 0x00800031, 0x2ac01d29, 0x00ad0e60, 0x0414a008 },
-   { 0x00800031, 0x2b601d29, 0x00ad0e60, 0x0414a009 },
-   { 0x80800042, 0x29c04629, 0x00ad0ac0, 0x00ad0ac1 },
-   { 0x80800042, 0x29e04629, 0x00ad0ae0, 0x00ad0ae1 },
-   { 0x80800042, 0x2a004629, 0x00ad0b00, 0x00ad0b01 },
-   { 0x80800042, 0x2a204629, 0x00ad0b20, 0x00ad0b21 },
-   { 0x80800042, 0x2a404629, 0x00ad0b60, 0x00ad0b61 },
-   { 0x80800042, 0x2a604629, 0x00ad0b80, 0x00ad0b81 },
-   { 0x80800042, 0x2a804629, 0x00ad0ba0, 0x00ad0ba1 },
-   { 0x80800042, 0x2aa04629, 0x00ad0bc0, 0x00ad0bc1 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x0000001c },
-   { 0x01000005, 0x20002d3c, 0x00210034, 0x00020002 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x0000000f },
+   { 0x02000005, 0x20002d3c, 0x00210e70, 0x00010001 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x00000003 },
+   { 0x00800031, 0x25001d29, 0x008d0e60, 0x0414a005 },
+   { 0x00800031, 0x25801d29, 0x008d0e60, 0x0414a006 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000002 },
+   { 0x00800031, 0x25001d29, 0x008d0e60, 0x0414a008 },
+   { 0x00800031, 0x25801d29, 0x008d0e60, 0x0414a009 },
+   { 0x00600042, 0x24004629, 0x008d0500, 0x008d0501 },
+   { 0x00600042, 0x24204629, 0x008d0520, 0x008d0521 },
+   { 0x00600042, 0x24404629, 0x008d0540, 0x008d0541 },
+   { 0x00600042, 0x24604629, 0x008d0560, 0x008d0561 },
+   { 0x00600042, 0x24804629, 0x008d0580, 0x008d0581 },
+   { 0x00600042, 0x24a04629, 0x008d05a0, 0x008d05a1 },
+   { 0x00600042, 0x24c04629, 0x008d05c0, 0x008d05c1 },
+   { 0x00600042, 0x24e04629, 0x008d05e0, 0x008d05e1 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000028 },
+   { 0x00000040, 0x22000c00, 0x00210200, 0x00000002 },
+   { 0x01000005, 0x20002d3c, 0x00218000, 0x00020002 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x00000019 },
    { 0x00000001, 0x2e680061, 0x00000000, 0x0007000f },
-   { 0x00800031, 0x2ac01d29, 0x00ad0e60, 0x0414a008 },
-   { 0x00800031, 0x2b601d29, 0x00ad0e60, 0x0414a009 },
+   { 0x02000005, 0x20002d3c, 0x00210e70, 0x00010001 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x00000007 },
+   { 0x00800031, 0x25001d29, 0x008d0e60, 0x0414a005 },
+   { 0x00800031, 0x25a01d29, 0x008d0e60, 0x0414a006 },
    { 0x00000001, 0x2e680061, 0x00000000, 0x0000000f },
-   { 0x00800031, 0x2b401d29, 0x00ad0e60, 0x0411a008 },
-   { 0x00800031, 0x2be01d29, 0x00ad0e60, 0x0411a009 },
-   { 0x80800042, 0x29c04629, 0x00ad0ac0, 0x00ad0ae0 },
-   { 0x80800042, 0x29e04629, 0x00ad0ae0, 0x00ad0b00 },
-   { 0x80800042, 0x2a004629, 0x00ad0b00, 0x00ad0b20 },
-   { 0x80800042, 0x2a204629, 0x00ad0b20, 0x00ad0b40 },
-   { 0x80800042, 0x2a404629, 0x00ad0b60, 0x00ad0b80 },
-   { 0x80800042, 0x2a604629, 0x00ad0b80, 0x00ad0ba0 },
-   { 0x80800042, 0x2a804629, 0x00ad0ba0, 0x00ad0bc0 },
-   { 0x80800042, 0x2aa04629, 0x00ad0bc0, 0x00ad0be0 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x0000000b },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 },
+   { 0x00800031, 0x25801d29, 0x008d0e60, 0x0411a005 },
+   { 0x00800031, 0x26201d29, 0x008d0e60, 0x0411a006 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000006 },
+   { 0x00800031, 0x25001d29, 0x008d0e60, 0x0414a008 },
+   { 0x00800031, 0x25a01d29, 0x008d0e60, 0x0414a009 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0000000f },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 },
+   { 0x00800031, 0x25801d29, 0x008d0e60, 0x0411a008 },
+   { 0x00800031, 0x26201d29, 0x008d0e60, 0x0411a009 },
+   { 0x00600042, 0x24004629, 0x008d0500, 0x008d0520 },
+   { 0x00600042, 0x24204629, 0x008d0520, 0x008d0540 },
+   { 0x00600042, 0x24404629, 0x008d0540, 0x008d0560 },
+   { 0x00600042, 0x24604629, 0x008d0560, 0x008d0580 },
+   { 0x00600042, 0x24804629, 0x008d05a0, 0x008d05c0 },
+   { 0x00600042, 0x24a04629, 0x008d05c0, 0x008d05e0 },
+   { 0x00600042, 0x24c04629, 0x008d05e0, 0x008d0600 },
+   { 0x00600042, 0x24e04629, 0x008d0600, 0x008d0620 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x0000000c },
    { 0x00000001, 0x2e680061, 0x00000000, 0x0007000f },
-   { 0x00800031, 0x2ac01d29, 0x00ad0e60, 0x0414a008 },
-   { 0x00800031, 0x2b601d29, 0x00ad0e60, 0x0414a009 },
-   { 0x00800001, 0x29c00229, 0x00ad0ac0, 0x00000000 },
-   { 0x00800001, 0x29e00229, 0x00ad0ae0, 0x00000000 },
-   { 0x00800001, 0x2a000229, 0x00ad0b00, 0x00000000 },
-   { 0x00800001, 0x2a200229, 0x00ad0b20, 0x00000000 },
-   { 0x00800001, 0x2a400229, 0x00ad0b60, 0x00000000 },
-   { 0x00800001, 0x2a600229, 0x00ad0b80, 0x00000000 },
-   { 0x00800001, 0x2a800229, 0x00ad0ba0, 0x00000000 },
-   { 0x00800001, 0x2aa00229, 0x00ad0bc0, 0x00000000 },
+   { 0x02000005, 0x20002d3c, 0x00210e70, 0x00010001 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x00000003 },
+   { 0x00800031, 0x25001d29, 0x008d0e60, 0x0414a005 },
+   { 0x00800031, 0x26001d29, 0x008d0e60, 0x0414a006 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000002 },
+   { 0x00800031, 0x25001d29, 0x008d0e60, 0x0414a008 },
+   { 0x00800031, 0x26001d29, 0x008d0e60, 0x0414a009 },
+   { 0x00802001, 0x24000229, 0x008d0500, 0x00000000 },
+   { 0x00802001, 0x24400229, 0x008d0540, 0x00000000 },
+   { 0x00802001, 0x24800229, 0x008d0600, 0x00000000 },
+   { 0x00802001, 0x24c00229, 0x008d0640, 0x00000000 },
    { 0x00600001, 0x25800129, 0x008d09c0, 0x00000000 },
    { 0x00600001, 0x25a00129, 0x008d09e0, 0x00000000 },
    { 0x00600001, 0x25c00129, 0x008d0a00, 0x00000000 },
@@ -933,90 +1002,113 @@
    { 0x00000005, 0x2e640c21, 0x00210e64, 0xfffffffe },
    { 0x02000005, 0x20002e3c, 0x0021003f, 0x00080008 },
    { 0x00010040, 0x2e640c21, 0x00210e64, 0x00000001 },
-   { 0x01000005, 0x20002d3c, 0x0021003a, 0x00020002 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000036 },
-   { 0x01000005, 0x20002d3c, 0x0021003c, 0x00020002 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000028 },
+   { 0x01000005, 0x20002d3c, 0x00218000, 0x00020002 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x00000041 },
+   { 0x00000040, 0x22000c00, 0x00210200, 0x00000002 },
+   { 0x01000005, 0x20002d3c, 0x00218000, 0x00020002 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x0000002d },
    { 0x00000001, 0x2e680061, 0x00000000, 0x0007000f },
-   { 0x00800031, 0x2ac01d29, 0x00ad0e60, 0x0414a008 },
-   { 0x00800031, 0x2b601d29, 0x00ad0e60, 0x0414a009 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0001000f },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 },
-   { 0x00800031, 0x2b401d29, 0x00ad0e60, 0x0411a008 },
-   { 0x00800031, 0x2be01d29, 0x00ad0e60, 0x0411a009 },
-   { 0x00800040, 0x29c04629, 0x00ad0ac0, 0x00ad0ae0 },
-   { 0x00800040, 0x29e04629, 0x00ad0ae0, 0x00ad0b00 },
-   { 0x00800040, 0x2a004629, 0x00ad0b00, 0x00ad0b20 },
-   { 0x00800040, 0x2a204629, 0x00ad0b20, 0x00ad0b40 },
-   { 0x00800040, 0x29c04529, 0x00ad09c0, 0x00ad0ac1 },
-   { 0x00800040, 0x29e04529, 0x00ad09e0, 0x00ad0ae1 },
-   { 0x00800040, 0x2a004529, 0x00ad0a00, 0x00ad0b01 },
-   { 0x00800040, 0x2a204529, 0x00ad0a20, 0x00ad0b21 },
-   { 0x00800040, 0x29c04529, 0x00ad09c0, 0x00ad0ae1 },
-   { 0x00800040, 0x29e04529, 0x00ad09e0, 0x00ad0b01 },
-   { 0x00800040, 0x2a004529, 0x00ad0a00, 0x00ad0b21 },
-   { 0x00800040, 0x2a204529, 0x00ad0a20, 0x00ad0b41 },
-   { 0x00800040, 0x2a404629, 0x00ad0b60, 0x00ad0b80 },
-   { 0x00800040, 0x2a604629, 0x00ad0b80, 0x00ad0ba0 },
-   { 0x00800040, 0x2a804629, 0x00ad0ba0, 0x00ad0bc0 },
-   { 0x00800040, 0x2aa04629, 0x00ad0bc0, 0x00ad0be0 },
-   { 0x00800040, 0x2a404529, 0x00ad0a40, 0x00ad0b61 },
-   { 0x00800040, 0x2a604529, 0x00ad0a60, 0x00ad0b81 },
-   { 0x00800040, 0x2a804529, 0x00ad0a80, 0x00ad0ba1 },
-   { 0x00800040, 0x2aa04529, 0x00ad0aa0, 0x00ad0bc1 },
-   { 0x00800040, 0x2a404529, 0x00ad0a40, 0x00ad0b81 },
-   { 0x00800040, 0x2a604529, 0x00ad0a60, 0x00ad0ba1 },
-   { 0x00800040, 0x2a804529, 0x00ad0a80, 0x00ad0bc1 },
-   { 0x00800040, 0x2aa04529, 0x00ad0aa0, 0x00ad0be1 },
-   { 0x80800008, 0x29c02d29, 0x00b109c0, 0x00020002 },
-   { 0x80800008, 0x29e02d29, 0x00b109e0, 0x00020002 },
-   { 0x80800008, 0x2a002d29, 0x00b10a00, 0x00020002 },
-   { 0x80800008, 0x2a202d29, 0x00b10a20, 0x00020002 },
-   { 0x80800008, 0x2a402d29, 0x00b10a40, 0x00020002 },
-   { 0x80800008, 0x2a602d29, 0x00b10a60, 0x00020002 },
-   { 0x80800008, 0x2a802d29, 0x00b10a80, 0x00020002 },
-   { 0x80800008, 0x2aa02d29, 0x00b10aa0, 0x00020002 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000028 },
+   { 0x02000005, 0x20002d3c, 0x00210e70, 0x00010001 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x00000007 },
+   { 0x00800031, 0x25001d29, 0x008d0e60, 0x0414a005 },
+   { 0x00800031, 0x25a01d29, 0x008d0e60, 0x0414a006 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0000000f },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 },
+   { 0x00800031, 0x25801d29, 0x008d0e60, 0x0411a005 },
+   { 0x00800031, 0x26201d29, 0x008d0e60, 0x0411a006 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000006 },
+   { 0x00800031, 0x25001d29, 0x008d0e60, 0x0414a008 },
+   { 0x00800031, 0x25a01d29, 0x008d0e60, 0x0414a009 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0000000f },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 },
+   { 0x00800031, 0x25801d29, 0x008d0e60, 0x0411a008 },
+   { 0x00800031, 0x26201d29, 0x008d0e60, 0x0411a009 },
+   { 0x00600040, 0x24004629, 0x008d0500, 0x008d0520 },
+   { 0x00600040, 0x24204629, 0x008d0520, 0x008d0540 },
+   { 0x00600040, 0x24404629, 0x008d0540, 0x008d0560 },
+   { 0x00600040, 0x24604629, 0x008d0560, 0x008d0580 },
+   { 0x00600040, 0x24004529, 0x008d0400, 0x008d0501 },
+   { 0x00600040, 0x24204529, 0x008d0420, 0x008d0521 },
+   { 0x00600040, 0x24404529, 0x008d0440, 0x008d0541 },
+   { 0x00600040, 0x24604529, 0x008d0460, 0x008d0561 },
+   { 0x00600040, 0x24004529, 0x008d0400, 0x008d0521 },
+   { 0x00600040, 0x24204529, 0x008d0420, 0x008d0541 },
+   { 0x00600040, 0x24404529, 0x008d0440, 0x008d0561 },
+   { 0x00600040, 0x24604529, 0x008d0460, 0x008d0581 },
+   { 0x00600040, 0x24804629, 0x008d05a0, 0x008d05c0 },
+   { 0x00600040, 0x24a04629, 0x008d05c0, 0x008d05e0 },
+   { 0x00600040, 0x24c04629, 0x008d05e0, 0x008d0600 },
+   { 0x00600040, 0x24e04629, 0x008d0600, 0x008d0620 },
+   { 0x00600040, 0x24804529, 0x008d0480, 0x008d05a1 },
+   { 0x00600040, 0x24a04529, 0x008d04a0, 0x008d05c1 },
+   { 0x00600040, 0x24c04529, 0x008d04c0, 0x008d05e1 },
+   { 0x00600040, 0x24e04529, 0x008d04e0, 0x008d0601 },
+   { 0x00600040, 0x24804529, 0x008d0480, 0x008d05c1 },
+   { 0x00600040, 0x24a04529, 0x008d04a0, 0x008d05e1 },
+   { 0x00600040, 0x24c04529, 0x008d04c0, 0x008d0601 },
+   { 0x00600040, 0x24e04529, 0x008d04e0, 0x008d0621 },
+   { 0x00a02008, 0x24002d29, 0x00b10400, 0x00020002 },
+   { 0x00a02008, 0x24402d29, 0x00b10440, 0x00020002 },
+   { 0x00a02008, 0x24802d29, 0x00b10480, 0x00020002 },
+   { 0x00a02008, 0x24c02d29, 0x00b104c0, 0x00020002 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000039 },
    { 0x00000001, 0x2e680061, 0x00000000, 0x0007000f },
-   { 0x00800031, 0x2ac01d29, 0x00ad0e60, 0x0414a008 },
-   { 0x00800031, 0x2b601d29, 0x00ad0e60, 0x0414a009 },
-   { 0x80800042, 0x29c04629, 0x00ad0ac0, 0x00ad0ac1 },
-   { 0x80800042, 0x29e04629, 0x00ad0ae0, 0x00ad0ae1 },
-   { 0x80800042, 0x2a004629, 0x00ad0b00, 0x00ad0b01 },
-   { 0x80800042, 0x2a204629, 0x00ad0b20, 0x00ad0b21 },
-   { 0x80800042, 0x2a404629, 0x00ad0b60, 0x00ad0b61 },
-   { 0x80800042, 0x2a604629, 0x00ad0b80, 0x00ad0b81 },
-   { 0x80800042, 0x2a804629, 0x00ad0ba0, 0x00ad0ba1 },
-   { 0x80800042, 0x2aa04629, 0x00ad0bc0, 0x00ad0bc1 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x0000001c },
-   { 0x01000005, 0x20002d3c, 0x0021003c, 0x00020002 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x0000000f },
+   { 0x02000005, 0x20002d3c, 0x00210e70, 0x00010001 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x00000003 },
+   { 0x00800031, 0x25001d29, 0x008d0e60, 0x0414a005 },
+   { 0x00800031, 0x25801d29, 0x008d0e60, 0x0414a006 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000002 },
+   { 0x00800031, 0x25001d29, 0x008d0e60, 0x0414a008 },
+   { 0x00800031, 0x25801d29, 0x008d0e60, 0x0414a009 },
+   { 0x00600042, 0x24004629, 0x008d0500, 0x008d0501 },
+   { 0x00600042, 0x24204629, 0x008d0520, 0x008d0521 },
+   { 0x00600042, 0x24404629, 0x008d0540, 0x008d0541 },
+   { 0x00600042, 0x24604629, 0x008d0560, 0x008d0561 },
+   { 0x00600042, 0x24804629, 0x008d0580, 0x008d0581 },
+   { 0x00600042, 0x24a04629, 0x008d05a0, 0x008d05a1 },
+   { 0x00600042, 0x24c04629, 0x008d05c0, 0x008d05c1 },
+   { 0x00600042, 0x24e04629, 0x008d05e0, 0x008d05e1 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000028 },
+   { 0x00000040, 0x22000c00, 0x00210200, 0x00000002 },
+   { 0x01000005, 0x20002d3c, 0x00218000, 0x00020002 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x00000019 },
    { 0x00000001, 0x2e680061, 0x00000000, 0x0007000f },
-   { 0x00800031, 0x2ac01d29, 0x00ad0e60, 0x0414a008 },
-   { 0x00800031, 0x2b601d29, 0x00ad0e60, 0x0414a009 },
+   { 0x02000005, 0x20002d3c, 0x00210e70, 0x00010001 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x00000007 },
+   { 0x00800031, 0x25001d29, 0x008d0e60, 0x0414a005 },
+   { 0x00800031, 0x25a01d29, 0x008d0e60, 0x0414a006 },
    { 0x00000001, 0x2e680061, 0x00000000, 0x0000000f },
-   { 0x00800031, 0x2b401d29, 0x00ad0e60, 0x0411a008 },
-   { 0x00800031, 0x2be01d29, 0x00ad0e60, 0x0411a009 },
-   { 0x80800042, 0x29c04629, 0x00ad0ac0, 0x00ad0ae0 },
-   { 0x80800042, 0x29e04629, 0x00ad0ae0, 0x00ad0b00 },
-   { 0x80800042, 0x2a004629, 0x00ad0b00, 0x00ad0b20 },
-   { 0x80800042, 0x2a204629, 0x00ad0b20, 0x00ad0b40 },
-   { 0x80800042, 0x2a404629, 0x00ad0b60, 0x00ad0b80 },
-   { 0x80800042, 0x2a604629, 0x00ad0b80, 0x00ad0ba0 },
-   { 0x80800042, 0x2a804629, 0x00ad0ba0, 0x00ad0bc0 },
-   { 0x80800042, 0x2aa04629, 0x00ad0bc0, 0x00ad0be0 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x0000000b },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 },
+   { 0x00800031, 0x25801d29, 0x008d0e60, 0x0411a005 },
+   { 0x00800031, 0x26201d29, 0x008d0e60, 0x0411a006 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000006 },
+   { 0x00800031, 0x25001d29, 0x008d0e60, 0x0414a008 },
+   { 0x00800031, 0x25a01d29, 0x008d0e60, 0x0414a009 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0000000f },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 },
+   { 0x00800031, 0x25801d29, 0x008d0e60, 0x0411a008 },
+   { 0x00800031, 0x26201d29, 0x008d0e60, 0x0411a009 },
+   { 0x00600042, 0x24004629, 0x008d0500, 0x008d0520 },
+   { 0x00600042, 0x24204629, 0x008d0520, 0x008d0540 },
+   { 0x00600042, 0x24404629, 0x008d0540, 0x008d0560 },
+   { 0x00600042, 0x24604629, 0x008d0560, 0x008d0580 },
+   { 0x00600042, 0x24804629, 0x008d05a0, 0x008d05c0 },
+   { 0x00600042, 0x24a04629, 0x008d05c0, 0x008d05e0 },
+   { 0x00600042, 0x24c04629, 0x008d05e0, 0x008d0600 },
+   { 0x00600042, 0x24e04629, 0x008d0600, 0x008d0620 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x0000000c },
    { 0x00000001, 0x2e680061, 0x00000000, 0x0007000f },
-   { 0x00800031, 0x2ac01d29, 0x00ad0e60, 0x0414a008 },
-   { 0x00800031, 0x2b601d29, 0x00ad0e60, 0x0414a009 },
-   { 0x00800001, 0x29c00229, 0x00ad0ac0, 0x00000000 },
-   { 0x00800001, 0x29e00229, 0x00ad0ae0, 0x00000000 },
-   { 0x00800001, 0x2a000229, 0x00ad0b00, 0x00000000 },
-   { 0x00800001, 0x2a200229, 0x00ad0b20, 0x00000000 },
-   { 0x00800001, 0x2a400229, 0x00ad0b60, 0x00000000 },
-   { 0x00800001, 0x2a600229, 0x00ad0b80, 0x00000000 },
-   { 0x00800001, 0x2a800229, 0x00ad0ba0, 0x00000000 },
-   { 0x00800001, 0x2aa00229, 0x00ad0bc0, 0x00000000 },
+   { 0x02000005, 0x20002d3c, 0x00210e70, 0x00010001 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x00000003 },
+   { 0x00800031, 0x25001d29, 0x008d0e60, 0x0414a005 },
+   { 0x00800031, 0x26001d29, 0x008d0e60, 0x0414a006 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000002 },
+   { 0x00800031, 0x25001d29, 0x008d0e60, 0x0414a008 },
+   { 0x00800031, 0x26001d29, 0x008d0e60, 0x0414a009 },
+   { 0x00802001, 0x24000229, 0x008d0500, 0x00000000 },
+   { 0x00802001, 0x24400229, 0x008d0540, 0x00000000 },
+   { 0x00802001, 0x24800229, 0x008d0600, 0x00000000 },
+   { 0x00802001, 0x24c00229, 0x008d0640, 0x00000000 },
    { 0x00600001, 0x25900129, 0x008d09c0, 0x00000000 },
    { 0x00600001, 0x25b00129, 0x008d09e0, 0x00000000 },
    { 0x00600001, 0x25d00129, 0x008d0a00, 0x00000000 },
diff --git a/src/xvmc/shader/mc/field_backward_igd.g4a b/src/xvmc/shader/mc/field_backward_igd.g4a
index d01b8dc..9938ab5 100644
--- a/src/xvmc/shader/mc/field_backward_igd.g4a
+++ b/src/xvmc/shader/mc/field_backward_igd.g4a
@@ -1,124 +1,86 @@
-/*
- * Copyright © 2008 Intel Corporation
- *
- * Permission is hereby granted, free of charge, to any person obtaining a
- * copy of this software and associated documentation files (the "Software"),
- * to deal in the Software without restriction, including without limitation
- * the rights to use, copy, modify, merge, publish, distribute, sublicense,
- * and/or sell copies of the Software, and to permit persons to whom the
- * Software is furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice (including the next
- * paragraph) shall be included in all copies or substantial portions of the
- * Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
- * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
- * SOFTWARE.
- *
- * Author:
- *    Zou Nan hai <nanhai.zou at intel.com>
- *    Zhang Hua jun <huajun.zhang at intel.com>
- *    Xing Dong sheng <dongsheng.xing at intel.com>
- *
- */
-mov (8) g76.0<1>UD g1.0<8,8,1>UD {align1};
-//mov (8) g77.0<1>UD g2.0<8,8,1>UD {align1};
+/* GRF allocation:
+   g1~g30: constant buffer
+           g1~g2:intra IQ matrix
+           g3~g4:non intra IQ matrix
+           g5~g20:IDCT table
+   g31:    thread payload 
+   g58~g81:reference data
+   g82:    thread payload backup
+   g84~g107:IDCT data
+   g115:   message descriptor for reading reference data   */
+mov (8) g82.0<1>UD g31.0<8,8,1>UD {align1};
+mov (1) g126.8<1>UD ip {align1};
+add (1) ip g21.0<1,1,1>UD 0x50UD {align1};            //jump to the lib to do IQ and IDCT
 
-include(`block_clear.g4i')
-
-mov (8) g115.0<1>UD g1.0<8,8,1>UD {align1};
-mov (8) g116.0<1>UD g1.0<8,8,1>UD {align1};
-/*Y buffer*/
-mov(1) g115.8<1>UD 0x007001fUD  { align1 };
-mov(1) g1.8<1>UD 0x007000fUD  { align1 };
-/*first vector*/
-asr (2) g115.14<1>W g1.18<2,2,1>W 1W {align1};
-add (2) g115.0<1>D g116.0<2,2,1>D g115.14<2,2,1>W {align1};
+/*field 0 of Y*/
+asr (2) g31.14<1>W g82.18<2,2,1>W 1W {align1};
+add (2) g115.0<1>UD g31.0<2,2,1>UD g31.14<2,2,1>W {align1};
 and (1) g115.4<1>UD g115.4<1,1,1>UD 0xFFFFFFFEUD {align1};
-mov(1) g115.8<1>UD 0x1fUD  { align1 }; //read 1 line, 32 columns.
+and.nz (1) null g82.31<1,1,1>UB 0x2UW {align1};             //motion vertical field select
+(f0) add (1) g115.4<1>UD g115.4<1,1,1>UD 1UD {align1};
+mov (1) g115.16<1>UW 1UW {align1};           	//0:forward 1:backward
+mov (1) a0.0<1>UD 0x0A52UD {align1};        	//g82.18,motion vector
+mov (1) g126.8<1>UD ip {align1};
+add (1) ip g21.0<1,1,1>UD 0x20UD {align1};   	//jump to the lib to read reference data 
 
-and.nz (1) null g1.31<1,1,1>UB 0x2UW {align1};
-(f0) add (1) g115.4<1>D g115.4<1,1,1>D 1D {align1};
-define(`surface',`7')
-define(`mv1',`g1.18')
-define(`mv2',`g1.20')
-include(`motion_field_y_igd.g4i')
-mov (8) g28.0<1>UD g96.0<8,8,1>UD {align1};
-mov (8) g30.0<1>UD g97.0<8,8,1>UD {align1};
-mov (8) g32.0<1>UD g98.0<8,8,1>UD {align1};
-mov (8) g34.0<1>UD g99.0<8,8,1>UD {align1};
-mov (8) g36.0<1>UD g100.0<8,8,1>UD {align1};
-mov (8) g38.0<1>UD g101.0<8,8,1>UD {align1};
-mov (8) g40.0<1>UD g102.0<8,8,1>UD {align1};
-mov (8) g42.0<1>UD g103.0<8,8,1>UD {align1};
-/*second vector*/
-asr (2) g115.14<1>W g1.26<2,2,1>W 1W {align1};
-add (2) g115.0<1>D g116.0<2,2,1>D g115.14<2,2,1>W {align1};
-and (1) g115.4<1>UD g115.4<1,1,1>UD 0xFFFFFFFEUD {align1};
-mov(1) g115.8<1>UD 0x1fUD  { align1 }; //read 1 line, 32 columns.
+mov (8) g58.0<1>UD g32.0<8,8,1>UD {align1};
+mov (8) g60.0<1>UD g33.0<8,8,1>UD {align1};
+mov (8) g62.0<1>UD g34.0<8,8,1>UD {align1};
+mov (8) g64.0<1>UD g35.0<8,8,1>UD {align1};
+mov (8) g66.0<1>UD g36.0<8,8,1>UD {align1};
+mov (8) g68.0<1>UD g37.0<8,8,1>UD {align1};
+mov (8) g70.0<1>UD g38.0<8,8,1>UD {align1};
+mov (8) g72.0<1>UD g39.0<8,8,1>UD {align1};
 
-and.nz (1) null g1.31<1,1,1>UB 0x8UW {align1};
-(f0) add (1) g115.4<1>D g115.4<1,1,1>D 1D {align1};
-define(`surface',`7')
-define(`mv1',`g1.26')
-define(`mv2',`g1.28')
-include(`motion_field_y_igd.g4i')
-mov (8) g29.0<1>UD g96.0<8,8,1>UD {align1};
-mov (8) g31.0<1>UD g97.0<8,8,1>UD {align1};
-mov (8) g33.0<1>UD g98.0<8,8,1>UD {align1};
-mov (8) g35.0<1>UD g99.0<8,8,1>UD {align1};
-mov (8) g37.0<1>UD g100.0<8,8,1>UD {align1};
-mov (8) g39.0<1>UD g101.0<8,8,1>UD {align1};
-mov (8) g41.0<1>UD g102.0<8,8,1>UD {align1};
-mov (8) g43.0<1>UD g103.0<8,8,1>UD {align1};
-/*U buffer, V buffer*/
-mov(1) g115.8<1>UD 0x007000fUD  { align1 };
-/*first vector*/
-asr (2) g115.14<1>W g1.18<2,2,1>W 2W {align1};
-asr (2) g115.0<1>D g116.0<2,2,1>D 1D {align1};
-add (2) g115.0<1>D g115.0<2,2,1>D g115.14<2,2,1>W {align1};
+/*field 1 of Y*/
+asr (2) g31.14<1>W g82.26<2,2,1>W 1W {align1};
+add (2) g115.0<1>UD g31.0<2,2,1>UD g31.14<2,2,1>W {align1};
 and (1) g115.4<1>UD g115.4<1,1,1>UD 0xFFFFFFFEUD {align1};
-
-and.nz (1) null g1.31<1,1,1>UB 0x2UW {align1};
+and.nz (1) null g82.31<1,1,1>UB 0x8UW {align1};
 (f0) add (1) g115.4<1>UD g115.4<1,1,1>UD 1UD {align1};
-define(`surface_u',`8')
-define(`surface_v',`9')
-define(`mv1',`g1.18')
-define(`mv2',`g1.20')
-include(`motion_field_uv_igd.g4i')
-mov (8) g44.0<1>UW g78.0<8,8,1>UW {align1};
-mov (8) g45.0<1>UW g79.0<8,8,1>UW {align1};
-mov (8) g46.0<1>UW g80.0<8,8,1>UW {align1};
-mov (8) g47.0<1>UW g81.0<8,8,1>UW {align1};
-mov (8) g48.0<1>UW g82.0<8,8,1>UW {align1};
-mov (8) g49.0<1>UW g83.0<8,8,1>UW {align1};
-mov (8) g50.0<1>UW g84.0<8,8,1>UW {align1};
-mov (8) g51.0<1>UW g85.0<8,8,1>UW {align1};
-/*second vector*/
-asr (2) g115.14<1>W g1.26<2,2,1>W 2W {align1};
-asr (2) g115.0<1>D g116.0<2,2,1>D 1D {align1};
-add (2) g115.0<1>D g115.0<2,2,1>D g115.14<2,2,1>W {align1};
+mov (1) a0.0<1>UD 0x0A5AUD {align1};		//g82.14,motion vector
+mov (1) g126.8<1>UD ip {align1};
+add (1) ip g21.0<1,1,1>UD 0x20UD {align1};   	//jump to the lib to read reference data 
+
+mov (8) g59.0<1>UD g32.0<8,8,1>UD {align1};
+mov (8) g61.0<1>UD g33.0<8,8,1>UD {align1};
+mov (8) g63.0<1>UD g34.0<8,8,1>UD {align1};
+mov (8) g65.0<1>UD g35.0<8,8,1>UD {align1};
+mov (8) g67.0<1>UD g36.0<8,8,1>UD {align1};
+mov (8) g69.0<1>UD g37.0<8,8,1>UD {align1};
+mov (8) g71.0<1>UD g38.0<8,8,1>UD {align1};
+mov (8) g73.0<1>UD g39.0<8,8,1>UD {align1};
+
+/*field 0 of UV*/
+shr (2) g31.0<1>UD g31.0<2,2,1>UD 1UD {align1};
+
+asr (2) g31.14<1>W g82.18<2,2,1>W 2W {align1};
+add (2) g115.0<1>UD g31.0<2,2,1>UD g31.14<2,2,1>W {align1};
 and (1) g115.4<1>UD g115.4<1,1,1>UD 0xFFFFFFFEUD {align1};
+and.nz (1) null g82.31<1,1,1>UB 0x2UW {align1};
+(f0) add (1) g115.4<1>UD g115.4<1,1,1>UD 1UD {align1};
+mov (1) a0.0<1>UD 0x0A52UD {align1};         //g82.18,motion vector
+mov (1) g126.8<1>UD ip {align1};
+add (1) ip g21.0<1,1,1>UD 0x30UD {align1};   //jump to the lib to read reference data 
+
+mov (16) g74.0<1>UW g32.0<8,8,1>UW {align1 compr};
+mov (16) g76.0<1>UW g34.0<8,8,1>UW {align1 compr};
+mov (16) g78.0<1>UW g36.0<8,8,1>UW {align1 compr};
+mov (16) g80.0<1>UW g38.0<8,8,1>UW {align1 compr};
 
-and.nz (1) null g1.31<1,1,1>UB 0x8UW {align1};
+/*field 1 of UV*/
+asr (2) g31.14<1>W g82.26<2,2,1>W 2W {align1};
+add (2) g115.0<1>UD g31.0<2,2,1>UD g31.14<2,2,1>W {align1};
+and (1) g115.4<1>UD g115.4<1,1,1>UD 0xFFFFFFFEUD {align1};
+and.nz (1) null g82.31<1,1,1>UB 0x8UW {align1};
 (f0) add (1) g115.4<1>UD g115.4<1,1,1>UD 1UD {align1};
-define(`mv1',`g1.26')
-define(`mv2',`g1.28')
-include(`motion_field_uv_igd.g4i')
-mov (8) g44.16<1>UW g78.0<8,8,1>UW {align1};
-mov (8) g45.16<1>UW g79.0<8,8,1>UW {align1};
-mov (8) g46.16<1>UW g80.0<8,8,1>UW {align1};
-mov (8) g47.16<1>UW g81.0<8,8,1>UW {align1};
-mov (8) g48.16<1>UW g82.0<8,8,1>UW {align1};
-mov (8) g49.16<1>UW g83.0<8,8,1>UW {align1};
-mov (8) g50.16<1>UW g84.0<8,8,1>UW {align1};
-mov (8) g51.16<1>UW g85.0<8,8,1>UW {align1};
+mov (1) a0.0<1>UD 0x0A5AUD {align1};         //g82.14,motion vector
+mov (1) g126.8<1>UD ip {align1};
+add (1) ip g21.0<1,1,1>UD 0x30UD {align1};   //jump to the lib to read reference data 
+
+mov (16) g74.16<1>UW g32.0<8,8,1>UW {align1 compr};
+mov (16) g76.16<1>UW g34.0<8,8,1>UW {align1 compr};
+mov (16) g78.16<1>UW g36.0<8,8,1>UW {align1 compr};
+mov (16) g80.16<1>UW g38.0<8,8,1>UW {align1 compr};
 
-include(`addidct.g4i')
-//send (16) 0 acc0<1>UW g0<8,8,1>UW 
-//	thread_spawner(0, 0, 0) mlen 1 rlen 0 { align1 EOT};
+add (1) ip g21.0<1,1,1>UD 0x40UD {align1};          //jump to the lib to add the reference and idct data
diff --git a/src/xvmc/shader/mc/field_backward_igd.g4b b/src/xvmc/shader/mc/field_backward_igd.g4b
index 7382a87..6236e78 100644
--- a/src/xvmc/shader/mc/field_backward_igd.g4b
+++ b/src/xvmc/shader/mc/field_backward_igd.g4b
@@ -1,669 +1,62 @@
-   { 0x00600001, 0x29800021, 0x008d0020, 0x00000000 },
-   { 0x02000005, 0x20000c3c, 0x00210040, 0x00000001 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000030 },
-   { 0x00000040, 0x20480c21, 0x00210988, 0x00000000 },
-   { 0x00800031, 0x20601c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x20801c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x20a01c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x20c01c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x20e01c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x21001c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x21201c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x21401c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x21601c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x21801c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x21a01c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x21c01c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x21e01c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x22001c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x22201c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x22401c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x22601c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x22801c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x22a01c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x22c01c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x22e01c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x23001c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x23201c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x23401c21, 0x00b10040, 0x04110203 },
-   { 0x02000005, 0x20002d3c, 0x0021098c, 0x00200020 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000008 },
-   { 0x00600001, 0x20600169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x20800169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x20a00169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x20c00169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x20e00169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x21000169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x21200169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x21400169, 0x00000000, 0x00000000 },
-   { 0x02000005, 0x20002d3c, 0x0021002c, 0x00100010 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000008 },
-   { 0x00600001, 0x20700169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x20900169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x20b00169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x20d00169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x20f00169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x21100169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x21300169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x21500169, 0x00000000, 0x00000000 },
-   { 0x02000005, 0x20002d3c, 0x0021002c, 0x00080008 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000008 },
-   { 0x00600001, 0x21600169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x21800169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x21a00169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x21c00169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x21e00169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x22000169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x22200169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x22400169, 0x00000000, 0x00000000 },
-   { 0x02000005, 0x20002d3c, 0x0021002c, 0x00040004 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000008 },
-   { 0x00600001, 0x21700169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x21900169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x21b00169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x21d00169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x21f00169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x22100169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x22300169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x22500169, 0x00000000, 0x00000000 },
-   { 0x02000005, 0x20002d3c, 0x0021002c, 0x00020002 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000004 },
-   { 0x00800001, 0x22600169, 0x00000000, 0x00000000 },
-   { 0x00800001, 0x22800169, 0x00000000, 0x00000000 },
-   { 0x00800001, 0x22a00169, 0x00000000, 0x00000000 },
-   { 0x00800001, 0x22c00169, 0x00000000, 0x00000000 },
-   { 0x02000005, 0x20002d3c, 0x0021002c, 0x00010001 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000004 },
-   { 0x00800001, 0x22e00169, 0x00000000, 0x00000000 },
-   { 0x00800001, 0x23000169, 0x00000000, 0x00000000 },
-   { 0x00800001, 0x23200169, 0x00000000, 0x00000000 },
-   { 0x00800001, 0x23400169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x2e600021, 0x008d0020, 0x00000000 },
-   { 0x00600001, 0x2e800021, 0x008d0020, 0x00000000 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0007001f },
-   { 0x00000001, 0x20280061, 0x00000000, 0x0007000f },
-   { 0x0020000c, 0x2e6e3dad, 0x00450032, 0x00010001 },
-   { 0x00200040, 0x2e6034a5, 0x00450e80, 0x00450e6e },
+   { 0x00600001, 0x2a400021, 0x008d03e0, 0x00000000 },
+   { 0x00000001, 0x2fc80001, 0x00001400, 0x00000000 },
+   { 0x00000040, 0x34000c20, 0x002102a0, 0x00000050 },
+   { 0x0020000c, 0x23ee3dad, 0x00450a52, 0x00010001 },
+   { 0x00200040, 0x2e603421, 0x004503e0, 0x004503ee },
    { 0x00000005, 0x2e640c21, 0x00210e64, 0xfffffffe },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
-   { 0x02000005, 0x20002e3c, 0x0021003f, 0x00020002 },
-   { 0x00010040, 0x2e641ca5, 0x00210e64, 0x00000001 },
-   { 0x01000005, 0x20002d3c, 0x00210032, 0x00010001 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000045 },
-   { 0x01000005, 0x20002d3c, 0x00210034, 0x00010001 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x0000002f },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
-   { 0x00800031, 0x29c01d29, 0x008d0e60, 0x0411a007 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a001d29, 0x008d0e60, 0x0411a007 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a401d29, 0x008d0e60, 0x0411a007 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a801d29, 0x008d0e60, 0x0411a007 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0007001f },
-   { 0x00800031, 0x2ac01d29, 0x008d0e60, 0x0418a007 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
-   { 0x00800031, 0x2bc01d29, 0x008d0e60, 0x0411a007 },
-   { 0x00800040, 0x2c004629, 0x00b109c0, 0x00b10a00 },
-   { 0x00800040, 0x2c204629, 0x00b10a00, 0x00b10a40 },
-   { 0x00800040, 0x2c404629, 0x00b10a40, 0x00b10a80 },
-   { 0x00800040, 0x2c604629, 0x00b10a80, 0x00b10ac0 },
-   { 0x00800040, 0x2c804629, 0x00b10ac0, 0x00b10b00 },
-   { 0x00800040, 0x2ca04629, 0x00b10b00, 0x00b10b40 },
-   { 0x00800040, 0x2cc04629, 0x00b10b40, 0x00b10b80 },
-   { 0x00800040, 0x2ce04629, 0x00b10b80, 0x00b10bc0 },
-   { 0x00800040, 0x2c004529, 0x00b10c00, 0x00b109c1 },
-   { 0x00800040, 0x2c204529, 0x00b10c20, 0x00b10a01 },
-   { 0x00800040, 0x2c404529, 0x00b10c40, 0x00b10a41 },
-   { 0x00800040, 0x2c604529, 0x00b10c60, 0x00b10a81 },
-   { 0x00800040, 0x2c804529, 0x00b10c80, 0x00b10ac1 },
-   { 0x00800040, 0x2ca04529, 0x00b10ca0, 0x00b10b01 },
-   { 0x00800040, 0x2cc04529, 0x00b10cc0, 0x00b10b41 },
-   { 0x00800040, 0x2ce04529, 0x00b10ce0, 0x00b10b81 },
-   { 0x00800040, 0x2c004529, 0x00b10c00, 0x00b10a01 },
-   { 0x00800040, 0x2c204529, 0x00b10c20, 0x00b10a41 },
-   { 0x00800040, 0x2c404529, 0x00b10c40, 0x00b10a81 },
-   { 0x00800040, 0x2c604529, 0x00b10c60, 0x00b10ac1 },
-   { 0x00800040, 0x2c804529, 0x00b10c80, 0x00b10b01 },
-   { 0x00800040, 0x2ca04529, 0x00b10ca0, 0x00b10b41 },
-   { 0x00800040, 0x2cc04529, 0x00b10cc0, 0x00b10b81 },
-   { 0x00800040, 0x2ce04529, 0x00b10ce0, 0x00b10bc1 },
-   { 0x00800008, 0x2c002d29, 0x00b10c00, 0x00020002 },
-   { 0x00800008, 0x2c202d29, 0x00b10c20, 0x00020002 },
-   { 0x00800008, 0x2c402d29, 0x00b10c40, 0x00020002 },
-   { 0x00800008, 0x2c602d29, 0x00b10c60, 0x00020002 },
-   { 0x00800008, 0x2c802d29, 0x00b10c80, 0x00020002 },
-   { 0x00800008, 0x2ca02d29, 0x00b10ca0, 0x00020002 },
-   { 0x00800008, 0x2cc02d29, 0x00b10cc0, 0x00020002 },
-   { 0x00800008, 0x2ce02d29, 0x00b10ce0, 0x00020002 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000040 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
-   { 0x00800031, 0x29c01d29, 0x008d0e60, 0x0411a007 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a001d29, 0x008d0e60, 0x0411a007 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a401d29, 0x008d0e60, 0x0411a007 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a801d29, 0x008d0e60, 0x0411a007 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0007001f },
-   { 0x00800031, 0x2ac01d29, 0x008d0e60, 0x0418a007 },
-   { 0x80800042, 0x2c004629, 0x00b109c0, 0x00b109c1 },
-   { 0x80800042, 0x2c204629, 0x00b10a00, 0x00b10a01 },
-   { 0x80800042, 0x2c404629, 0x00b10a40, 0x00b10a41 },
-   { 0x80800042, 0x2c604629, 0x00b10a80, 0x00b10a81 },
-   { 0x80800042, 0x2c804629, 0x00b10ac0, 0x00b10ac1 },
-   { 0x80800042, 0x2ca04629, 0x00b10b00, 0x00b10b01 },
-   { 0x80800042, 0x2cc04629, 0x00b10b40, 0x00b10b41 },
-   { 0x80800042, 0x2ce04629, 0x00b10b80, 0x00b10b81 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x0000002c },
-   { 0x01000005, 0x20002d3c, 0x00210034, 0x00010001 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000017 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
-   { 0x00800031, 0x29c01d29, 0x008d0e60, 0x0411a007 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a001d29, 0x008d0e60, 0x0411a007 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a401d29, 0x008d0e60, 0x0411a007 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a801d29, 0x008d0e60, 0x0411a007 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0007001f },
-   { 0x00800031, 0x2ac01d29, 0x008d0e60, 0x0418a007 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
-   { 0x00800031, 0x2bc01d29, 0x008d0e60, 0x0411a007 },
-   { 0x80800042, 0x2c004629, 0x00b109c0, 0x00b10a00 },
-   { 0x80800042, 0x2c204629, 0x00b10a00, 0x00b10a40 },
-   { 0x80800042, 0x2c404629, 0x00b10a40, 0x00b10a80 },
-   { 0x80800042, 0x2c604629, 0x00b10a80, 0x00b10ac0 },
-   { 0x80800042, 0x2c804629, 0x00b10ac0, 0x00b10b00 },
-   { 0x80800042, 0x2ca04629, 0x00b10b00, 0x00b10b40 },
-   { 0x80800042, 0x2cc04629, 0x00b10b40, 0x00b10b80 },
-   { 0x80800042, 0x2ce04629, 0x00b10b80, 0x00b10bc0 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000013 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
-   { 0x00800031, 0x29c01d29, 0x008d0e60, 0x0411a007 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a001d29, 0x008d0e60, 0x0411a007 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a401d29, 0x008d0e60, 0x0411a007 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a801d29, 0x008d0e60, 0x0411a007 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0007001f },
-   { 0x00800031, 0x2ac01d29, 0x008d0e60, 0x0418a007 },
-   { 0x00800001, 0x2c000229, 0x00b109c0, 0x00000000 },
-   { 0x00800001, 0x2c200229, 0x00b10a00, 0x00000000 },
-   { 0x00800001, 0x2c400229, 0x00b10a40, 0x00000000 },
-   { 0x00800001, 0x2c600229, 0x00b10a80, 0x00000000 },
-   { 0x00800001, 0x2c800229, 0x00b10ac0, 0x00000000 },
-   { 0x00800001, 0x2ca00229, 0x00b10b00, 0x00000000 },
-   { 0x00800001, 0x2cc00229, 0x00b10b40, 0x00000000 },
-   { 0x00800001, 0x2ce00229, 0x00b10b80, 0x00000000 },
-   { 0x00600001, 0x23800021, 0x008d0c00, 0x00000000 },
-   { 0x00600001, 0x23c00021, 0x008d0c20, 0x00000000 },
-   { 0x00600001, 0x24000021, 0x008d0c40, 0x00000000 },
-   { 0x00600001, 0x24400021, 0x008d0c60, 0x00000000 },
-   { 0x00600001, 0x24800021, 0x008d0c80, 0x00000000 },
-   { 0x00600001, 0x24c00021, 0x008d0ca0, 0x00000000 },
-   { 0x00600001, 0x25000021, 0x008d0cc0, 0x00000000 },
-   { 0x00600001, 0x25400021, 0x008d0ce0, 0x00000000 },
-   { 0x0020000c, 0x2e6e3dad, 0x0045003a, 0x00010001 },
-   { 0x00200040, 0x2e6034a5, 0x00450e80, 0x00450e6e },
+   { 0x02000005, 0x20002e3c, 0x00210a5f, 0x00020002 },
+   { 0x00010040, 0x2e640c21, 0x00210e64, 0x00000001 },
+   { 0x00000001, 0x2e700169, 0x00000000, 0x00010001 },
+   { 0x00000001, 0x22000060, 0x00000000, 0x00000a52 },
+   { 0x00000001, 0x2fc80001, 0x00001400, 0x00000000 },
+   { 0x00000040, 0x34000c20, 0x002102a0, 0x00000020 },
+   { 0x00600001, 0x27400021, 0x008d0400, 0x00000000 },
+   { 0x00600001, 0x27800021, 0x008d0420, 0x00000000 },
+   { 0x00600001, 0x27c00021, 0x008d0440, 0x00000000 },
+   { 0x00600001, 0x28000021, 0x008d0460, 0x00000000 },
+   { 0x00600001, 0x28400021, 0x008d0480, 0x00000000 },
+   { 0x00600001, 0x28800021, 0x008d04a0, 0x00000000 },
+   { 0x00600001, 0x28c00021, 0x008d04c0, 0x00000000 },
+   { 0x00600001, 0x29000021, 0x008d04e0, 0x00000000 },
+   { 0x0020000c, 0x23ee3dad, 0x00450a5a, 0x00010001 },
+   { 0x00200040, 0x2e603421, 0x004503e0, 0x004503ee },
    { 0x00000005, 0x2e640c21, 0x00210e64, 0xfffffffe },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
-   { 0x02000005, 0x20002e3c, 0x0021003f, 0x00080008 },
-   { 0x00010040, 0x2e641ca5, 0x00210e64, 0x00000001 },
-   { 0x01000005, 0x20002d3c, 0x0021003a, 0x00010001 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000045 },
-   { 0x01000005, 0x20002d3c, 0x0021003c, 0x00010001 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x0000002f },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
-   { 0x00800031, 0x29c01d29, 0x008d0e60, 0x0411a007 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a001d29, 0x008d0e60, 0x0411a007 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a401d29, 0x008d0e60, 0x0411a007 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a801d29, 0x008d0e60, 0x0411a007 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0007001f },
-   { 0x00800031, 0x2ac01d29, 0x008d0e60, 0x0418a007 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
-   { 0x00800031, 0x2bc01d29, 0x008d0e60, 0x0411a007 },
-   { 0x00800040, 0x2c004629, 0x00b109c0, 0x00b10a00 },
-   { 0x00800040, 0x2c204629, 0x00b10a00, 0x00b10a40 },
-   { 0x00800040, 0x2c404629, 0x00b10a40, 0x00b10a80 },
-   { 0x00800040, 0x2c604629, 0x00b10a80, 0x00b10ac0 },
-   { 0x00800040, 0x2c804629, 0x00b10ac0, 0x00b10b00 },
-   { 0x00800040, 0x2ca04629, 0x00b10b00, 0x00b10b40 },
-   { 0x00800040, 0x2cc04629, 0x00b10b40, 0x00b10b80 },
-   { 0x00800040, 0x2ce04629, 0x00b10b80, 0x00b10bc0 },
-   { 0x00800040, 0x2c004529, 0x00b10c00, 0x00b109c1 },
-   { 0x00800040, 0x2c204529, 0x00b10c20, 0x00b10a01 },
-   { 0x00800040, 0x2c404529, 0x00b10c40, 0x00b10a41 },
-   { 0x00800040, 0x2c604529, 0x00b10c60, 0x00b10a81 },
-   { 0x00800040, 0x2c804529, 0x00b10c80, 0x00b10ac1 },
-   { 0x00800040, 0x2ca04529, 0x00b10ca0, 0x00b10b01 },
-   { 0x00800040, 0x2cc04529, 0x00b10cc0, 0x00b10b41 },
-   { 0x00800040, 0x2ce04529, 0x00b10ce0, 0x00b10b81 },
-   { 0x00800040, 0x2c004529, 0x00b10c00, 0x00b10a01 },
-   { 0x00800040, 0x2c204529, 0x00b10c20, 0x00b10a41 },
-   { 0x00800040, 0x2c404529, 0x00b10c40, 0x00b10a81 },
-   { 0x00800040, 0x2c604529, 0x00b10c60, 0x00b10ac1 },
-   { 0x00800040, 0x2c804529, 0x00b10c80, 0x00b10b01 },
-   { 0x00800040, 0x2ca04529, 0x00b10ca0, 0x00b10b41 },
-   { 0x00800040, 0x2cc04529, 0x00b10cc0, 0x00b10b81 },
-   { 0x00800040, 0x2ce04529, 0x00b10ce0, 0x00b10bc1 },
-   { 0x00800008, 0x2c002d29, 0x00b10c00, 0x00020002 },
-   { 0x00800008, 0x2c202d29, 0x00b10c20, 0x00020002 },
-   { 0x00800008, 0x2c402d29, 0x00b10c40, 0x00020002 },
-   { 0x00800008, 0x2c602d29, 0x00b10c60, 0x00020002 },
-   { 0x00800008, 0x2c802d29, 0x00b10c80, 0x00020002 },
-   { 0x00800008, 0x2ca02d29, 0x00b10ca0, 0x00020002 },
-   { 0x00800008, 0x2cc02d29, 0x00b10cc0, 0x00020002 },
-   { 0x00800008, 0x2ce02d29, 0x00b10ce0, 0x00020002 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000040 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
-   { 0x00800031, 0x29c01d29, 0x008d0e60, 0x0411a007 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a001d29, 0x008d0e60, 0x0411a007 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a401d29, 0x008d0e60, 0x0411a007 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a801d29, 0x008d0e60, 0x0411a007 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0007001f },
-   { 0x00800031, 0x2ac01d29, 0x008d0e60, 0x0418a007 },
-   { 0x80800042, 0x2c004629, 0x00b109c0, 0x00b109c1 },
-   { 0x80800042, 0x2c204629, 0x00b10a00, 0x00b10a01 },
-   { 0x80800042, 0x2c404629, 0x00b10a40, 0x00b10a41 },
-   { 0x80800042, 0x2c604629, 0x00b10a80, 0x00b10a81 },
-   { 0x80800042, 0x2c804629, 0x00b10ac0, 0x00b10ac1 },
-   { 0x80800042, 0x2ca04629, 0x00b10b00, 0x00b10b01 },
-   { 0x80800042, 0x2cc04629, 0x00b10b40, 0x00b10b41 },
-   { 0x80800042, 0x2ce04629, 0x00b10b80, 0x00b10b81 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x0000002c },
-   { 0x01000005, 0x20002d3c, 0x0021003c, 0x00010001 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000017 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
-   { 0x00800031, 0x29c01d29, 0x008d0e60, 0x0411a007 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a001d29, 0x008d0e60, 0x0411a007 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a401d29, 0x008d0e60, 0x0411a007 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a801d29, 0x008d0e60, 0x0411a007 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0007001f },
-   { 0x00800031, 0x2ac01d29, 0x008d0e60, 0x0418a007 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
-   { 0x00800031, 0x2bc01d29, 0x008d0e60, 0x0411a007 },
-   { 0x80800042, 0x2c004629, 0x00b109c0, 0x00b10a00 },
-   { 0x80800042, 0x2c204629, 0x00b10a00, 0x00b10a40 },
-   { 0x80800042, 0x2c404629, 0x00b10a40, 0x00b10a80 },
-   { 0x80800042, 0x2c604629, 0x00b10a80, 0x00b10ac0 },
-   { 0x80800042, 0x2c804629, 0x00b10ac0, 0x00b10b00 },
-   { 0x80800042, 0x2ca04629, 0x00b10b00, 0x00b10b40 },
-   { 0x80800042, 0x2cc04629, 0x00b10b40, 0x00b10b80 },
-   { 0x80800042, 0x2ce04629, 0x00b10b80, 0x00b10bc0 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000013 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
-   { 0x00800031, 0x29c01d29, 0x008d0e60, 0x0411a007 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a001d29, 0x008d0e60, 0x0411a007 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a401d29, 0x008d0e60, 0x0411a007 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a801d29, 0x008d0e60, 0x0411a007 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0007001f },
-   { 0x00800031, 0x2ac01d29, 0x008d0e60, 0x0418a007 },
-   { 0x00800001, 0x2c000229, 0x00b109c0, 0x00000000 },
-   { 0x00800001, 0x2c200229, 0x00b10a00, 0x00000000 },
-   { 0x00800001, 0x2c400229, 0x00b10a40, 0x00000000 },
-   { 0x00800001, 0x2c600229, 0x00b10a80, 0x00000000 },
-   { 0x00800001, 0x2c800229, 0x00b10ac0, 0x00000000 },
-   { 0x00800001, 0x2ca00229, 0x00b10b00, 0x00000000 },
-   { 0x00800001, 0x2cc00229, 0x00b10b40, 0x00000000 },
-   { 0x00800001, 0x2ce00229, 0x00b10b80, 0x00000000 },
-   { 0x00600001, 0x23a00021, 0x008d0c00, 0x00000000 },
-   { 0x00600001, 0x23e00021, 0x008d0c20, 0x00000000 },
-   { 0x00600001, 0x24200021, 0x008d0c40, 0x00000000 },
-   { 0x00600001, 0x24600021, 0x008d0c60, 0x00000000 },
-   { 0x00600001, 0x24a00021, 0x008d0c80, 0x00000000 },
-   { 0x00600001, 0x24e00021, 0x008d0ca0, 0x00000000 },
-   { 0x00600001, 0x25200021, 0x008d0cc0, 0x00000000 },
-   { 0x00600001, 0x25600021, 0x008d0ce0, 0x00000000 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0007000f },
-   { 0x0020000c, 0x2e6e3dad, 0x00450032, 0x00020002 },
-   { 0x0020000c, 0x2e601ca5, 0x00450e80, 0x00000001 },
-   { 0x00200040, 0x2e6034a5, 0x00450e60, 0x00450e6e },
+   { 0x02000005, 0x20002e3c, 0x00210a5f, 0x00080008 },
+   { 0x00010040, 0x2e640c21, 0x00210e64, 0x00000001 },
+   { 0x00000001, 0x22000060, 0x00000000, 0x00000a5a },
+   { 0x00000001, 0x2fc80001, 0x00001400, 0x00000000 },
+   { 0x00000040, 0x34000c20, 0x002102a0, 0x00000020 },
+   { 0x00600001, 0x27600021, 0x008d0400, 0x00000000 },
+   { 0x00600001, 0x27a00021, 0x008d0420, 0x00000000 },
+   { 0x00600001, 0x27e00021, 0x008d0440, 0x00000000 },
+   { 0x00600001, 0x28200021, 0x008d0460, 0x00000000 },
+   { 0x00600001, 0x28600021, 0x008d0480, 0x00000000 },
+   { 0x00600001, 0x28a00021, 0x008d04a0, 0x00000000 },
+   { 0x00600001, 0x28e00021, 0x008d04c0, 0x00000000 },
+   { 0x00600001, 0x29200021, 0x008d04e0, 0x00000000 },
+   { 0x00200008, 0x23e00c21, 0x004503e0, 0x00000001 },
+   { 0x0020000c, 0x23ee3dad, 0x00450a52, 0x00020002 },
+   { 0x00200040, 0x2e603421, 0x004503e0, 0x004503ee },
    { 0x00000005, 0x2e640c21, 0x00210e64, 0xfffffffe },
-   { 0x02000005, 0x20002e3c, 0x0021003f, 0x00020002 },
+   { 0x02000005, 0x20002e3c, 0x00210a5f, 0x00020002 },
    { 0x00010040, 0x2e640c21, 0x00210e64, 0x00000001 },
-   { 0x01000005, 0x20002d3c, 0x00210032, 0x00020002 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000036 },
-   { 0x01000005, 0x20002d3c, 0x00210034, 0x00020002 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000028 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0007000f },
-   { 0x00800031, 0x2ac01d29, 0x00ad0e60, 0x0414a008 },
-   { 0x00800031, 0x2b601d29, 0x00ad0e60, 0x0414a009 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0001000f },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 },
-   { 0x00800031, 0x2b401d29, 0x00ad0e60, 0x0411a008 },
-   { 0x00800031, 0x2be01d29, 0x00ad0e60, 0x0411a009 },
-   { 0x00800040, 0x29c04629, 0x00ad0ac0, 0x00ad0ae0 },
-   { 0x00800040, 0x29e04629, 0x00ad0ae0, 0x00ad0b00 },
-   { 0x00800040, 0x2a004629, 0x00ad0b00, 0x00ad0b20 },
-   { 0x00800040, 0x2a204629, 0x00ad0b20, 0x00ad0b40 },
-   { 0x00800040, 0x29c04529, 0x00ad09c0, 0x00ad0ac1 },
-   { 0x00800040, 0x29e04529, 0x00ad09e0, 0x00ad0ae1 },
-   { 0x00800040, 0x2a004529, 0x00ad0a00, 0x00ad0b01 },
-   { 0x00800040, 0x2a204529, 0x00ad0a20, 0x00ad0b21 },
-   { 0x00800040, 0x29c04529, 0x00ad09c0, 0x00ad0ae1 },
-   { 0x00800040, 0x29e04529, 0x00ad09e0, 0x00ad0b01 },
-   { 0x00800040, 0x2a004529, 0x00ad0a00, 0x00ad0b21 },
-   { 0x00800040, 0x2a204529, 0x00ad0a20, 0x00ad0b41 },
-   { 0x00800040, 0x2a404629, 0x00ad0b60, 0x00ad0b80 },
-   { 0x00800040, 0x2a604629, 0x00ad0b80, 0x00ad0ba0 },
-   { 0x00800040, 0x2a804629, 0x00ad0ba0, 0x00ad0bc0 },
-   { 0x00800040, 0x2aa04629, 0x00ad0bc0, 0x00ad0be0 },
-   { 0x00800040, 0x2a404529, 0x00ad0a40, 0x00ad0b61 },
-   { 0x00800040, 0x2a604529, 0x00ad0a60, 0x00ad0b81 },
-   { 0x00800040, 0x2a804529, 0x00ad0a80, 0x00ad0ba1 },
-   { 0x00800040, 0x2aa04529, 0x00ad0aa0, 0x00ad0bc1 },
-   { 0x00800040, 0x2a404529, 0x00ad0a40, 0x00ad0b81 },
-   { 0x00800040, 0x2a604529, 0x00ad0a60, 0x00ad0ba1 },
-   { 0x00800040, 0x2a804529, 0x00ad0a80, 0x00ad0bc1 },
-   { 0x00800040, 0x2aa04529, 0x00ad0aa0, 0x00ad0be1 },
-   { 0x80800008, 0x29c02d29, 0x00b109c0, 0x00020002 },
-   { 0x80800008, 0x29e02d29, 0x00b109e0, 0x00020002 },
-   { 0x80800008, 0x2a002d29, 0x00b10a00, 0x00020002 },
-   { 0x80800008, 0x2a202d29, 0x00b10a20, 0x00020002 },
-   { 0x80800008, 0x2a402d29, 0x00b10a40, 0x00020002 },
-   { 0x80800008, 0x2a602d29, 0x00b10a60, 0x00020002 },
-   { 0x80800008, 0x2a802d29, 0x00b10a80, 0x00020002 },
-   { 0x80800008, 0x2aa02d29, 0x00b10aa0, 0x00020002 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000028 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0007000f },
-   { 0x00800031, 0x2ac01d29, 0x00ad0e60, 0x0414a008 },
-   { 0x00800031, 0x2b601d29, 0x00ad0e60, 0x0414a009 },
-   { 0x80800042, 0x29c04629, 0x00ad0ac0, 0x00ad0ac1 },
-   { 0x80800042, 0x29e04629, 0x00ad0ae0, 0x00ad0ae1 },
-   { 0x80800042, 0x2a004629, 0x00ad0b00, 0x00ad0b01 },
-   { 0x80800042, 0x2a204629, 0x00ad0b20, 0x00ad0b21 },
-   { 0x80800042, 0x2a404629, 0x00ad0b60, 0x00ad0b61 },
-   { 0x80800042, 0x2a604629, 0x00ad0b80, 0x00ad0b81 },
-   { 0x80800042, 0x2a804629, 0x00ad0ba0, 0x00ad0ba1 },
-   { 0x80800042, 0x2aa04629, 0x00ad0bc0, 0x00ad0bc1 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x0000001c },
-   { 0x01000005, 0x20002d3c, 0x00210034, 0x00020002 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x0000000f },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0007000f },
-   { 0x00800031, 0x2ac01d29, 0x00ad0e60, 0x0414a008 },
-   { 0x00800031, 0x2b601d29, 0x00ad0e60, 0x0414a009 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0000000f },
-   { 0x00800031, 0x2b401d29, 0x00ad0e60, 0x0411a008 },
-   { 0x00800031, 0x2be01d29, 0x00ad0e60, 0x0411a009 },
-   { 0x80800042, 0x29c04629, 0x00ad0ac0, 0x00ad0ae0 },
-   { 0x80800042, 0x29e04629, 0x00ad0ae0, 0x00ad0b00 },
-   { 0x80800042, 0x2a004629, 0x00ad0b00, 0x00ad0b20 },
-   { 0x80800042, 0x2a204629, 0x00ad0b20, 0x00ad0b40 },
-   { 0x80800042, 0x2a404629, 0x00ad0b60, 0x00ad0b80 },
-   { 0x80800042, 0x2a604629, 0x00ad0b80, 0x00ad0ba0 },
-   { 0x80800042, 0x2a804629, 0x00ad0ba0, 0x00ad0bc0 },
-   { 0x80800042, 0x2aa04629, 0x00ad0bc0, 0x00ad0be0 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x0000000b },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0007000f },
-   { 0x00800031, 0x2ac01d29, 0x00ad0e60, 0x0414a008 },
-   { 0x00800031, 0x2b601d29, 0x00ad0e60, 0x0414a009 },
-   { 0x00800001, 0x29c00229, 0x00ad0ac0, 0x00000000 },
-   { 0x00800001, 0x29e00229, 0x00ad0ae0, 0x00000000 },
-   { 0x00800001, 0x2a000229, 0x00ad0b00, 0x00000000 },
-   { 0x00800001, 0x2a200229, 0x00ad0b20, 0x00000000 },
-   { 0x00800001, 0x2a400229, 0x00ad0b60, 0x00000000 },
-   { 0x00800001, 0x2a600229, 0x00ad0b80, 0x00000000 },
-   { 0x00800001, 0x2a800229, 0x00ad0ba0, 0x00000000 },
-   { 0x00800001, 0x2aa00229, 0x00ad0bc0, 0x00000000 },
-   { 0x00600001, 0x25800129, 0x008d09c0, 0x00000000 },
-   { 0x00600001, 0x25a00129, 0x008d09e0, 0x00000000 },
-   { 0x00600001, 0x25c00129, 0x008d0a00, 0x00000000 },
-   { 0x00600001, 0x25e00129, 0x008d0a20, 0x00000000 },
-   { 0x00600001, 0x26000129, 0x008d0a40, 0x00000000 },
-   { 0x00600001, 0x26200129, 0x008d0a60, 0x00000000 },
-   { 0x00600001, 0x26400129, 0x008d0a80, 0x00000000 },
-   { 0x00600001, 0x26600129, 0x008d0aa0, 0x00000000 },
-   { 0x0020000c, 0x2e6e3dad, 0x0045003a, 0x00020002 },
-   { 0x0020000c, 0x2e601ca5, 0x00450e80, 0x00000001 },
-   { 0x00200040, 0x2e6034a5, 0x00450e60, 0x00450e6e },
+   { 0x00000001, 0x22000060, 0x00000000, 0x00000a52 },
+   { 0x00000001, 0x2fc80001, 0x00001400, 0x00000000 },
+   { 0x00000040, 0x34000c20, 0x002102a0, 0x00000030 },
+   { 0x00802001, 0x29400129, 0x008d0400, 0x00000000 },
+   { 0x00802001, 0x29800129, 0x008d0440, 0x00000000 },
+   { 0x00802001, 0x29c00129, 0x008d0480, 0x00000000 },
+   { 0x00802001, 0x2a000129, 0x008d04c0, 0x00000000 },
+   { 0x0020000c, 0x23ee3dad, 0x00450a5a, 0x00020002 },
+   { 0x00200040, 0x2e603421, 0x004503e0, 0x004503ee },
    { 0x00000005, 0x2e640c21, 0x00210e64, 0xfffffffe },
-   { 0x02000005, 0x20002e3c, 0x0021003f, 0x00080008 },
+   { 0x02000005, 0x20002e3c, 0x00210a5f, 0x00080008 },
    { 0x00010040, 0x2e640c21, 0x00210e64, 0x00000001 },
-   { 0x01000005, 0x20002d3c, 0x0021003a, 0x00020002 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000036 },
-   { 0x01000005, 0x20002d3c, 0x0021003c, 0x00020002 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000028 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0007000f },
-   { 0x00800031, 0x2ac01d29, 0x00ad0e60, 0x0414a008 },
-   { 0x00800031, 0x2b601d29, 0x00ad0e60, 0x0414a009 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0001000f },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 },
-   { 0x00800031, 0x2b401d29, 0x00ad0e60, 0x0411a008 },
-   { 0x00800031, 0x2be01d29, 0x00ad0e60, 0x0411a009 },
-   { 0x00800040, 0x29c04629, 0x00ad0ac0, 0x00ad0ae0 },
-   { 0x00800040, 0x29e04629, 0x00ad0ae0, 0x00ad0b00 },
-   { 0x00800040, 0x2a004629, 0x00ad0b00, 0x00ad0b20 },
-   { 0x00800040, 0x2a204629, 0x00ad0b20, 0x00ad0b40 },
-   { 0x00800040, 0x29c04529, 0x00ad09c0, 0x00ad0ac1 },
-   { 0x00800040, 0x29e04529, 0x00ad09e0, 0x00ad0ae1 },
-   { 0x00800040, 0x2a004529, 0x00ad0a00, 0x00ad0b01 },
-   { 0x00800040, 0x2a204529, 0x00ad0a20, 0x00ad0b21 },
-   { 0x00800040, 0x29c04529, 0x00ad09c0, 0x00ad0ae1 },
-   { 0x00800040, 0x29e04529, 0x00ad09e0, 0x00ad0b01 },
-   { 0x00800040, 0x2a004529, 0x00ad0a00, 0x00ad0b21 },
-   { 0x00800040, 0x2a204529, 0x00ad0a20, 0x00ad0b41 },
-   { 0x00800040, 0x2a404629, 0x00ad0b60, 0x00ad0b80 },
-   { 0x00800040, 0x2a604629, 0x00ad0b80, 0x00ad0ba0 },
-   { 0x00800040, 0x2a804629, 0x00ad0ba0, 0x00ad0bc0 },
-   { 0x00800040, 0x2aa04629, 0x00ad0bc0, 0x00ad0be0 },
-   { 0x00800040, 0x2a404529, 0x00ad0a40, 0x00ad0b61 },
-   { 0x00800040, 0x2a604529, 0x00ad0a60, 0x00ad0b81 },
-   { 0x00800040, 0x2a804529, 0x00ad0a80, 0x00ad0ba1 },
-   { 0x00800040, 0x2aa04529, 0x00ad0aa0, 0x00ad0bc1 },
-   { 0x00800040, 0x2a404529, 0x00ad0a40, 0x00ad0b81 },
-   { 0x00800040, 0x2a604529, 0x00ad0a60, 0x00ad0ba1 },
-   { 0x00800040, 0x2a804529, 0x00ad0a80, 0x00ad0bc1 },
-   { 0x00800040, 0x2aa04529, 0x00ad0aa0, 0x00ad0be1 },
-   { 0x80800008, 0x29c02d29, 0x00b109c0, 0x00020002 },
-   { 0x80800008, 0x29e02d29, 0x00b109e0, 0x00020002 },
-   { 0x80800008, 0x2a002d29, 0x00b10a00, 0x00020002 },
-   { 0x80800008, 0x2a202d29, 0x00b10a20, 0x00020002 },
-   { 0x80800008, 0x2a402d29, 0x00b10a40, 0x00020002 },
-   { 0x80800008, 0x2a602d29, 0x00b10a60, 0x00020002 },
-   { 0x80800008, 0x2a802d29, 0x00b10a80, 0x00020002 },
-   { 0x80800008, 0x2aa02d29, 0x00b10aa0, 0x00020002 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000028 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0007000f },
-   { 0x00800031, 0x2ac01d29, 0x00ad0e60, 0x0414a008 },
-   { 0x00800031, 0x2b601d29, 0x00ad0e60, 0x0414a009 },
-   { 0x80800042, 0x29c04629, 0x00ad0ac0, 0x00ad0ac1 },
-   { 0x80800042, 0x29e04629, 0x00ad0ae0, 0x00ad0ae1 },
-   { 0x80800042, 0x2a004629, 0x00ad0b00, 0x00ad0b01 },
-   { 0x80800042, 0x2a204629, 0x00ad0b20, 0x00ad0b21 },
-   { 0x80800042, 0x2a404629, 0x00ad0b60, 0x00ad0b61 },
-   { 0x80800042, 0x2a604629, 0x00ad0b80, 0x00ad0b81 },
-   { 0x80800042, 0x2a804629, 0x00ad0ba0, 0x00ad0ba1 },
-   { 0x80800042, 0x2aa04629, 0x00ad0bc0, 0x00ad0bc1 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x0000001c },
-   { 0x01000005, 0x20002d3c, 0x0021003c, 0x00020002 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x0000000f },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0007000f },
-   { 0x00800031, 0x2ac01d29, 0x00ad0e60, 0x0414a008 },
-   { 0x00800031, 0x2b601d29, 0x00ad0e60, 0x0414a009 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0000000f },
-   { 0x00800031, 0x2b401d29, 0x00ad0e60, 0x0411a008 },
-   { 0x00800031, 0x2be01d29, 0x00ad0e60, 0x0411a009 },
-   { 0x80800042, 0x29c04629, 0x00ad0ac0, 0x00ad0ae0 },
-   { 0x80800042, 0x29e04629, 0x00ad0ae0, 0x00ad0b00 },
-   { 0x80800042, 0x2a004629, 0x00ad0b00, 0x00ad0b20 },
-   { 0x80800042, 0x2a204629, 0x00ad0b20, 0x00ad0b40 },
-   { 0x80800042, 0x2a404629, 0x00ad0b60, 0x00ad0b80 },
-   { 0x80800042, 0x2a604629, 0x00ad0b80, 0x00ad0ba0 },
-   { 0x80800042, 0x2a804629, 0x00ad0ba0, 0x00ad0bc0 },
-   { 0x80800042, 0x2aa04629, 0x00ad0bc0, 0x00ad0be0 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x0000000b },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0007000f },
-   { 0x00800031, 0x2ac01d29, 0x00ad0e60, 0x0414a008 },
-   { 0x00800031, 0x2b601d29, 0x00ad0e60, 0x0414a009 },
-   { 0x00800001, 0x29c00229, 0x00ad0ac0, 0x00000000 },
-   { 0x00800001, 0x29e00229, 0x00ad0ae0, 0x00000000 },
-   { 0x00800001, 0x2a000229, 0x00ad0b00, 0x00000000 },
-   { 0x00800001, 0x2a200229, 0x00ad0b20, 0x00000000 },
-   { 0x00800001, 0x2a400229, 0x00ad0b60, 0x00000000 },
-   { 0x00800001, 0x2a600229, 0x00ad0b80, 0x00000000 },
-   { 0x00800001, 0x2a800229, 0x00ad0ba0, 0x00000000 },
-   { 0x00800001, 0x2aa00229, 0x00ad0bc0, 0x00000000 },
-   { 0x00600001, 0x25900129, 0x008d09c0, 0x00000000 },
-   { 0x00600001, 0x25b00129, 0x008d09e0, 0x00000000 },
-   { 0x00600001, 0x25d00129, 0x008d0a00, 0x00000000 },
-   { 0x00600001, 0x25f00129, 0x008d0a20, 0x00000000 },
-   { 0x00600001, 0x26100129, 0x008d0a40, 0x00000000 },
-   { 0x00600001, 0x26300129, 0x008d0a60, 0x00000000 },
-   { 0x00600001, 0x26500129, 0x008d0a80, 0x00000000 },
-   { 0x00600001, 0x26700129, 0x008d0aa0, 0x00000000 },
-   { 0x00600001, 0x20200021, 0x008d0980, 0x00000000 },
-   { 0x00800001, 0x458101f1, 0x00000000, 0x00000000 },
-   { 0x00800001, 0x45a101f1, 0x00000000, 0x00000000 },
-   { 0x00800001, 0x45c101f1, 0x00000000, 0x00000000 },
-   { 0x00800001, 0x45e101f1, 0x00000000, 0x00000000 },
-   { 0x00800001, 0x460101f1, 0x00000000, 0x00000000 },
-   { 0x00800001, 0x462101f1, 0x00000000, 0x00000000 },
-   { 0x00800001, 0x464101f1, 0x00000000, 0x00000000 },
-   { 0x00800001, 0x466101f1, 0x00000000, 0x00000000 },
-   { 0x02000005, 0x20002e3c, 0x0021003e, 0x00010001 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000011 },
-   { 0x00800040, 0x238045ad, 0x00b10060, 0x00b20380 },
-   { 0x00800040, 0x23a045ad, 0x00b10080, 0x00b203a0 },
-   { 0x00800040, 0x23c045ad, 0x00b100a0, 0x00b203c0 },
-   { 0x00800040, 0x23e045ad, 0x00b100c0, 0x00b203e0 },
-   { 0x00800040, 0x240045ad, 0x00b100e0, 0x00b20400 },
-   { 0x00800040, 0x242045ad, 0x00b10100, 0x00b20420 },
-   { 0x00800040, 0x244045ad, 0x00b10120, 0x00b20440 },
-   { 0x00800040, 0x246045ad, 0x00b10140, 0x00b20460 },
-   { 0x00800040, 0x248045ad, 0x00b10160, 0x00b20480 },
-   { 0x00800040, 0x24a045ad, 0x00b10180, 0x00b204a0 },
-   { 0x00800040, 0x24c045ad, 0x00b101a0, 0x00b204c0 },
-   { 0x00800040, 0x24e045ad, 0x00b101c0, 0x00b204e0 },
-   { 0x00800040, 0x250045ad, 0x00b101e0, 0x00b20500 },
-   { 0x00800040, 0x252045ad, 0x00b10200, 0x00b20520 },
-   { 0x00800040, 0x254045ad, 0x00b10220, 0x00b20540 },
-   { 0x00800040, 0x256045ad, 0x00b10240, 0x00b20560 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000010 },
-   { 0x00800040, 0x238045ad, 0x00b10060, 0x00b20380 },
-   { 0x00800040, 0x23a045ad, 0x00b10160, 0x00b203a0 },
-   { 0x00800040, 0x23c045ad, 0x00b10080, 0x00b203c0 },
-   { 0x00800040, 0x23e045ad, 0x00b10180, 0x00b203e0 },
-   { 0x00800040, 0x240045ad, 0x00b100a0, 0x00b20400 },
-   { 0x00800040, 0x242045ad, 0x00b101a0, 0x00b20420 },
-   { 0x00800040, 0x244045ad, 0x00b100c0, 0x00b20440 },
-   { 0x00800040, 0x246045ad, 0x00b101c0, 0x00b20460 },
-   { 0x00800040, 0x248045ad, 0x00b100e0, 0x00b20480 },
-   { 0x00800040, 0x24a045ad, 0x00b101e0, 0x00b204a0 },
-   { 0x00800040, 0x24c045ad, 0x00b10100, 0x00b204c0 },
-   { 0x00800040, 0x24e045ad, 0x00b10200, 0x00b204e0 },
-   { 0x00800040, 0x250045ad, 0x00b10120, 0x00b20500 },
-   { 0x00800040, 0x252045ad, 0x00b10220, 0x00b20520 },
-   { 0x00800040, 0x254045ad, 0x00b10140, 0x00b20540 },
-   { 0x00800040, 0x256045ad, 0x00b10240, 0x00b20560 },
-   { 0x00000001, 0x20280061, 0x00000000, 0x000f000f },
-   { 0x80800001, 0x438001b1, 0x00b10380, 0x00000000 },
-   { 0x80800001, 0x43a001b1, 0x00b103a0, 0x00000000 },
-   { 0x80800001, 0x43c001b1, 0x00b103c0, 0x00000000 },
-   { 0x80800001, 0x43e001b1, 0x00b103e0, 0x00000000 },
-   { 0x80800001, 0x440001b1, 0x00b10400, 0x00000000 },
-   { 0x80800001, 0x442001b1, 0x00b10420, 0x00000000 },
-   { 0x80800001, 0x444001b1, 0x00b10440, 0x00000000 },
-   { 0x80800001, 0x446001b1, 0x00b10460, 0x00000000 },
-   { 0x80800001, 0x448001b1, 0x00b10480, 0x00000000 },
-   { 0x80800001, 0x44a001b1, 0x00b104a0, 0x00000000 },
-   { 0x80800001, 0x44c001b1, 0x00b104c0, 0x00000000 },
-   { 0x80800001, 0x44e001b1, 0x00b104e0, 0x00000000 },
-   { 0x80800001, 0x450001b1, 0x00b10500, 0x00000000 },
-   { 0x80800001, 0x452001b1, 0x00b10520, 0x00000000 },
-   { 0x80800001, 0x454001b1, 0x00b10540, 0x00000000 },
-   { 0x80800001, 0x456001b1, 0x00b10560, 0x00000000 },
-   { 0x00800001, 0x20200232, 0x00b20380, 0x00000000 },
-   { 0x00800001, 0x20300232, 0x00b203a0, 0x00000000 },
-   { 0x00800001, 0x20400232, 0x00b203c0, 0x00000000 },
-   { 0x00800001, 0x20500232, 0x00b203e0, 0x00000000 },
-   { 0x00800001, 0x20600232, 0x00b20400, 0x00000000 },
-   { 0x00800001, 0x20700232, 0x00b20420, 0x00000000 },
-   { 0x00800001, 0x20800232, 0x00b20440, 0x00000000 },
-   { 0x00800001, 0x20900232, 0x00b20460, 0x00000000 },
-   { 0x00800001, 0x20a00232, 0x00b20480, 0x00000000 },
-   { 0x00800001, 0x20b00232, 0x00b204a0, 0x00000000 },
-   { 0x00800001, 0x20c00232, 0x00b204c0, 0x00000000 },
-   { 0x00800001, 0x20d00232, 0x00b204e0, 0x00000000 },
-   { 0x00800001, 0x20e00232, 0x00b20500, 0x00000000 },
-   { 0x00800001, 0x20f00232, 0x00b20520, 0x00000000 },
-   { 0x00800001, 0x21000232, 0x00b20540, 0x00000000 },
-   { 0x00800001, 0x21100232, 0x00b20560, 0x00000000 },
-   { 0x00800031, 0x24001d28, 0x008d0020, 0x05902000 },
-   { 0x00000001, 0x20280061, 0x00000000, 0x00070007 },
-   { 0x00200008, 0x20201c21, 0x00450020, 0x00000001 },
-   { 0x00800040, 0x258025a9, 0x00b10260, 0x00b10580 },
-   { 0x00800040, 0x25a025a9, 0x00b10280, 0x00b105a0 },
-   { 0x00800040, 0x25c025a9, 0x00b102a0, 0x00b105c0 },
-   { 0x00800040, 0x25e025a9, 0x00b102c0, 0x00b105e0 },
-   { 0x80800001, 0x45800131, 0x00b10580, 0x00000000 },
-   { 0x80800001, 0x45a00131, 0x00b105a0, 0x00000000 },
-   { 0x80800001, 0x45c00131, 0x00b105c0, 0x00000000 },
-   { 0x80800001, 0x45e00131, 0x00b105e0, 0x00000000 },
-   { 0x00800001, 0x20200232, 0x00b20580, 0x00000000 },
-   { 0x00800001, 0x20300232, 0x00b205a0, 0x00000000 },
-   { 0x00800001, 0x20400232, 0x00b205c0, 0x00000000 },
-   { 0x00800001, 0x20500232, 0x00b205e0, 0x00000000 },
-   { 0x00800031, 0x24001d28, 0x008d0020, 0x05302001 },
-   { 0x00800040, 0x260025a9, 0x00b102e0, 0x00b10600 },
-   { 0x00800040, 0x262025a9, 0x00b10300, 0x00b10620 },
-   { 0x00800040, 0x264025a9, 0x00b10320, 0x00b10640 },
-   { 0x00800040, 0x266025a9, 0x00b10340, 0x00b10660 },
-   { 0x80800001, 0x46000131, 0x00b10600, 0x00000000 },
-   { 0x80800001, 0x46200131, 0x00b10620, 0x00000000 },
-   { 0x80800001, 0x46400131, 0x00b10640, 0x00000000 },
-   { 0x80800001, 0x46600131, 0x00b10660, 0x00000000 },
-   { 0x00800001, 0x20200232, 0x00b20600, 0x00000000 },
-   { 0x00800001, 0x20300232, 0x00b20620, 0x00000000 },
-   { 0x00800001, 0x20400232, 0x00b20640, 0x00000000 },
-   { 0x00800001, 0x20500232, 0x00b20660, 0x00000000 },
-   { 0x00800031, 0x24001d28, 0x008d0020, 0x05302002 },
-   { 0x00800031, 0x24001d28, 0x008d0000, 0x87100000 },
+   { 0x00000001, 0x22000060, 0x00000000, 0x00000a5a },
+   { 0x00000001, 0x2fc80001, 0x00001400, 0x00000000 },
+   { 0x00000040, 0x34000c20, 0x002102a0, 0x00000030 },
+   { 0x00802001, 0x29500129, 0x008d0400, 0x00000000 },
+   { 0x00802001, 0x29900129, 0x008d0440, 0x00000000 },
+   { 0x00802001, 0x29d00129, 0x008d0480, 0x00000000 },
+   { 0x00802001, 0x2a100129, 0x008d04c0, 0x00000000 },
+   { 0x00000040, 0x34000c20, 0x002102a0, 0x00000040 },
diff --git a/src/xvmc/shader/mc/field_f_b_igd.g4a b/src/xvmc/shader/mc/field_f_b_igd.g4a
index e741244..c072cd6 100644
--- a/src/xvmc/shader/mc/field_f_b_igd.g4a
+++ b/src/xvmc/shader/mc/field_f_b_igd.g4a
@@ -1,223 +1,159 @@
-/*
- * Copyright © 2008 Intel Corporation
- *
- * Permission is hereby granted, free of charge, to any person obtaining a
- * copy of this software and associated documentation files (the "Software"),
- * to deal in the Software without restriction, including without limitation
- * the rights to use, copy, modify, merge, publish, distribute, sublicense,
- * and/or sell copies of the Software, and to permit persons to whom the
- * Software is furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice (including the next
- * paragraph) shall be included in all copies or substantial portions of the
- * Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
- * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
- * SOFTWARE.
- *
- * Author:
- *    Zou Nan hai <nanhai.zou at intel.com>
- *    Zhang Hua jun <huajun.zhang at intel.com>
- *    Xing Dong sheng <dongsheng.xing at intel.com>
- *
- */
-mov (8) g76.0<1>UD g1.0<8,8,1>UD {align1};
-//mov (8) g77.0<1>UD g2.0<8,8,1>UD {align1};
-
-include(`block_clear.g4i')
-mov (8) g115.0<1>UD g1.0<8,8,1>UD {align1};
-mov (8) g116.0<1>UD g1.0<8,8,1>UD {align1};
-
-/* forward---Y---first vector*/
-mov(1) g115.8<1>UD 0x007001fUD  { align1 };
-asr (2) g115.14<1>W g1.14<2,2,1>W 1W {align1};
-add (2) g115.0<1>D g116.0<2,2,1>D g115.14<2,2,1>W {align1};
+/* GRF allocation:
+   g1~g30: constant buffer
+           g1~g2:intra IQ matrix
+           g3~g4:non intra IQ matrix
+           g5~g20:IDCT table
+   g31:    thread payload 
+   g58~g81:reference data
+   g82:    thread payload backup
+   g84~g107:IDCT data
+   g115:   message descriptor for reading reference data   */
+mov (8) g82.0<1>UD g31.0<8,8,1>UD {align1};
+mov (1) g126.8<1>UD ip {align1};
+add (1) ip g21.0<1,1,1>UD 0x50UD {align1};          //jump to the lib to do IQ and IDCT 
+
+/*field 0 forward prediction of Y*/
+asr (2) g31.14<1>W g82.14<2,2,1>W 1W {align1};
+add (2) g115.0<1>UD g31.0<2,2,1>UD g31.14<2,2,1>W {align1};
 and (1) g115.4<1>UD g115.4<1,1,1>UD 0xFFFFFFFEUD {align1};
-mov(1) g115.8<1>UD 0x1fUD  { align1 }; //read 1 line, 32 columns.
-and.nz (1) null g1.31<1,1,1>UB 0x1UW {align1};
-(f0) add (1) g115.4<1>D g115.4<1,1,1>D 1D {align1};
-define(`surface',`4')
-define(`mv1',`g1.14')
-define(`mv2',`g1.16')
-include(`motion_field_y_igd.g4i')
-mov (8) g52.0<1>UD g96.0<8,8,1>UD {align1};
-mov (8) g54.0<1>UD g97.0<8,8,1>UD {align1};
-mov (8) g56.0<1>UD g98.0<8,8,1>UD {align1};
-mov (8) g58.0<1>UD g99.0<8,8,1>UD {align1};
-mov (8) g60.0<1>UD g100.0<8,8,1>UD {align1};
-mov (8) g62.0<1>UD g101.0<8,8,1>UD {align1};
-mov (8) g64.0<1>UD g102.0<8,8,1>UD {align1};
-mov (8) g66.0<1>UD g103.0<8,8,1>UD {align1};
-
-/*forward---Y---second vector*/
-asr (2) g115.14<1>W g1.22<2,2,1>W 1W {align1};
-add (2) g115.0<1>D g116.0<2,2,1>D g115.14<2,2,1>W {align1};
+and.nz (1) null g82.31<1,1,1>UB 0x1UW {align1};
+(f0) add (1) g115.4<1>UD g115.4<1,1,1>UD 1UD {align1};
+mov (1) g115.16<1>UW 0UW {align1};           //0:forward 1:backward
+mov (1) a0.0<1>UD 0x0A4EUD {align1};         //g82.14,motion vector
+mov (1) g126.8<1>UD ip {align1};
+add (1) ip g21.0<1,1,1>UD 0x20UD {align1};   //jump to the lib to read reference data 
+
+mov (8) g58.0<1>UD g32.0<8,8,1>UD {align1};
+mov (8) g60.0<1>UD g33.0<8,8,1>UD {align1};
+mov (8) g62.0<1>UD g34.0<8,8,1>UD {align1};
+mov (8) g64.0<1>UD g35.0<8,8,1>UD {align1};
+mov (8) g66.0<1>UD g36.0<8,8,1>UD {align1};
+mov (8) g68.0<1>UD g37.0<8,8,1>UD {align1};
+mov (8) g70.0<1>UD g38.0<8,8,1>UD {align1};
+mov (8) g72.0<1>UD g39.0<8,8,1>UD {align1};
+
+/*field 1 forward prediction of Y*/
+asr (2) g31.14<1>W g82.22<2,2,1>W 1W {align1};
+add (2) g115.0<1>UD g31.0<2,2,1>UD g31.14<2,2,1>W {align1};
 and (1) g115.4<1>UD g115.4<1,1,1>UD 0xFFFFFFFEUD {align1};
-mov(1) g115.8<1>UD 0x1fUD { align1 }; //read 1 line, 32 columns.
-and.nz (1) null g1.31<1,1,1>UB 0x4UD {align1};
-(f0) add (1) g115.4<1>D g115.4<1,1,1>D 1D {align1};
-define(`surface',`4')
-define(`mv1',`g1.22')
-define(`mv2',`g1.24')
-include(`motion_field_y_igd.g4i')
-mov (8) g53.0<1>UD g96.0<8,8,1>UD {align1};
-mov (8) g55.0<1>UD g97.0<8,8,1>UD {align1};
-mov (8) g57.0<1>UD g98.0<8,8,1>UD {align1};
-mov (8) g59.0<1>UD g99.0<8,8,1>UD {align1};
-mov (8) g61.0<1>UD g100.0<8,8,1>UD {align1};
-mov (8) g63.0<1>UD g101.0<8,8,1>UD {align1};
-mov (8) g65.0<1>UD g102.0<8,8,1>UD {align1};
-mov (8) g67.0<1>UD g103.0<8,8,1>UD {align1};
-
-/*forward---UV---first vector*/
-mov(1) g115.8<1>UD 0x007000fUD  { align1 };
-asr (2) g115.14<1>W g1.14<2,2,1>W 2W {align1};
-asr (2) g115.0<1>D g116.0<2,2,1>D 1D {align1};
-add (2) g115.0<1>D g115.0<2,2,1>D g115.14<2,2,1>W {align1};
+and.nz (1) null g82.31<1,1,1>UB 0x4UW {align1};
+(f0) add (1) g115.4<1>UD g115.4<1,1,1>UD 1UD {align1};
+mov (1) a0.0<1>UD 0x0A56UD {align1};         //g82.22,motion vector
+mov (1) g126.8<1>UD ip {align1};
+add (1) ip g21.0<1,1,1>UD 0x20UD {align1};   //jump to the lib to read reference data 
+
+mov (8) g59.0<1>UD g32.0<8,8,1>UD {align1};
+mov (8) g61.0<1>UD g33.0<8,8,1>UD {align1};
+mov (8) g63.0<1>UD g34.0<8,8,1>UD {align1};
+mov (8) g65.0<1>UD g35.0<8,8,1>UD {align1};
+mov (8) g67.0<1>UD g36.0<8,8,1>UD {align1};
+mov (8) g69.0<1>UD g37.0<8,8,1>UD {align1};
+mov (8) g71.0<1>UD g38.0<8,8,1>UD {align1};
+mov (8) g73.0<1>UD g39.0<8,8,1>UD {align1};
+
+/*field 0 forward prediction of UV*/
+shr (2) g31.0<1>UD g31.0<2,2,1>UD 1UD {align1};
+
+asr (2) g31.14<1>W g82.14<2,2,1>W 2W {align1};
+add (2) g115.0<1>UD g31.0<2,2,1>UD g31.14<2,2,1>W {align1};
 and (1) g115.4<1>UD g115.4<1,1,1>UD 0xFFFFFFFEUD {align1};
-and.nz (1) null g1.31<1,1,1>UB 0x1UW {align1};
+and.nz (1) null g82.31<1,1,1>UB 0x1UW {align1};
 (f0) add (1) g115.4<1>UD g115.4<1,1,1>UD 1UD {align1};
-define(`surface_u',`5')
-define(`surface_v',`6')
-define(`mv1',`g1.14')
-define(`mv2',`g1.16')
-include(`motion_field_uv_igd.g4i')
-mov (8) g68.0<1>UW g78.0<8,8,1>UW {align1};
-mov (8) g69.0<1>UW g79.0<8,8,1>UW {align1};
-mov (8) g70.0<1>UW g80.0<8,8,1>UW {align1};
-mov (8) g71.0<1>UW g81.0<8,8,1>UW {align1};
-mov (8) g72.0<1>UW g82.0<8,8,1>UW {align1};
-mov (8) g73.0<1>UW g83.0<8,8,1>UW {align1};
-mov (8) g74.0<1>UW g84.0<8,8,1>UW {align1};
-mov (8) g75.0<1>UW g85.0<8,8,1>UW {align1};
-
-/*forward---UV---second vector */
-asr (2) g115.14<1>W g1.22<2,2,1>W 2W {align1};
-asr (2) g115.0<1>D g116.0<2,2,1>D 1D {align1};
-add (2) g115.0<1>D g115.0<2,2,1>D g115.14<2,2,1>W {align1};
+mov (1) a0.0<1>UD 0x0A4EUD {align1};         //g82.14,motion vector
+mov (1) g126.8<1>UD ip {align1};
+add (1) ip g21.0<1,1,1>UD 0x30UD {align1};   //jump to the lib to read reference data 
+
+mov (16) g74.0<1>UW g32.0<8,8,1>UW {align1 compr};
+mov (16) g76.0<1>UW g34.0<8,8,1>UW {align1 compr};
+mov (16) g78.0<1>UW g36.0<8,8,1>UW {align1 compr};
+mov (16) g80.0<1>UW g38.0<8,8,1>UW {align1 compr};
+
+/*field 1 forward prediction of UV*/
+asr (2) g31.14<1>W g82.22<2,2,1>W 2W {align1};
+add (2) g115.0<1>UD g31.0<2,2,1>UD g31.14<2,2,1>W {align1};
 and (1) g115.4<1>UD g115.4<1,1,1>UD 0xFFFFFFFEUD {align1};
-and.nz (1) null g1.31<1,1,1>UB 0x4UW {align1};
+and.nz (1) null g82.31<1,1,1>UB 0x4UW {align1};
 (f0) add (1) g115.4<1>UD g115.4<1,1,1>UD 1UD {align1};
-define(`mv1',`g1.24')
-define(`mv2',`g1.26')
-include(`motion_field_uv_igd.g4i')
-mov (8) g68.16<1>UW g78.0<8,8,1>UW {align1};
-mov (8) g69.16<1>UW g79.0<8,8,1>UW {align1};
-mov (8) g70.16<1>UW g80.0<8,8,1>UW {align1};
-mov (8) g71.16<1>UW g81.0<8,8,1>UW {align1};
-mov (8) g72.16<1>UW g82.0<8,8,1>UW {align1};
-mov (8) g73.16<1>UW g83.0<8,8,1>UW {align1};
-mov (8) g74.16<1>UW g84.0<8,8,1>UW {align1};
-mov (8) g75.16<1>UW g85.0<8,8,1>UW {align1};
-
-/*backward---Y---first vector */
-mov(8) g1.0<1>UD g116.0<8,8,1>UD {align1};
-mov(1) g115.8<1>UD 0x007001fUD  { align1 };
-mov(1) g1.8<1>UD 0x007000fUD  { align1 };
-asr (2) g115.14<1>W g1.18<2,2,1>W 1W {align1};
-add (2) g115.0<1>D g116.0<2,2,1>D g115.14<2,2,1>W {align1};
+mov (1) a0.0<1>UD 0x0A56UD {align1};         //g82.22,motion vector
+mov (1) g126.8<1>UD ip {align1};
+add (1) ip g21.0<1,1,1>UD 0x30UD {align1};   //jump to the lib to read reference data 
+
+mov (16) g74.16<1>UW g32.0<8,8,1>UW {align1 compr};
+mov (16) g76.16<1>UW g34.0<8,8,1>UW {align1 compr};
+mov (16) g78.16<1>UW g36.0<8,8,1>UW {align1 compr};
+mov (16) g80.16<1>UW g38.0<8,8,1>UW {align1 compr};
+
+/*field 0 backward prediction of Y*/
+mov(2) g31.0<1>UD g82.0<2,2,1>UD {align1};
+
+asr (2) g31.14<1>W g82.18<2,2,1>W 1W {align1};
+add (2) g115.0<1>UD g31.0<2,2,1>UD g31.14<2,2,1>W {align1};
 and (1) g115.4<1>UD g115.4<1,1,1>UD 0xFFFFFFFEUD {align1};
-mov(1) g115.8<1>UD 0x1fUD  { align1 }; //read 1 line, 32 columns.
-and.nz (1) null g1.31<1,1,1>UB 0x2UW {align1};
-(f0) add (1) g115.4<1>D g115.4<1,1,1>D 1D {align1};
-define(`surface',`7')
-define(`mv1',`g1.18')
-define(`mv2',`g1.20')
-include(`motion_field_y_igd.g4i')
-mov (8) g28.0<1>UD g96.0<8,8,1>UD {align1};
-mov (8) g30.0<1>UD g97.0<8,8,1>UD {align1};
-mov (8) g32.0<1>UD g98.0<8,8,1>UD {align1};
-mov (8) g34.0<1>UD g99.0<8,8,1>UD {align1};
-mov (8) g36.0<1>UD g100.0<8,8,1>UD {align1};
-mov (8) g38.0<1>UD g101.0<8,8,1>UD {align1};
-mov (8) g40.0<1>UD g102.0<8,8,1>UD {align1};
-mov (8) g42.0<1>UD g103.0<8,8,1>UD {align1};
-
-/*backward---Y---second vector */
-asr (2) g115.14<1>W g1.26<2,2,1>W 1W {align1};
-add (2) g115.0<1>D g116.0<2,2,1>D g115.14<2,2,1>W {align1};
+and.nz (1) null g82.31<1,1,1>UB 0x2UW {align1};
+(f0) add (1) g115.4<1>UD g115.4<1,1,1>UD 1UD {align1};
+mov (1) g115.16<1>UW 1UW {align1};           //0:forward 1:backward
+mov (1) a0.0<1>UD 0x0A52UD {align1};         //g82.18,motion vector
+mov (1) g126.8<1>UD ip {align1};
+add (1) ip g21.0<1,1,1>UD 0x20UD {align1};   //jump to the lib to read reference data 
+
+avg (16) g58.0<1>UW g58.0<16,16,1>UW g32.0<16,16,1>UW {align1};
+avg (16) g60.0<1>UW g60.0<16,16,1>UW g33.0<16,16,1>UW {align1};
+avg (16) g62.0<1>UW g62.0<16,16,1>UW g34.0<16,16,1>UW {align1};
+avg (16) g64.0<1>UW g64.0<16,16,1>UW g35.0<16,16,1>UW {align1};
+avg (16) g66.0<1>UW g66.0<16,16,1>UW g36.0<16,16,1>UW {align1};
+avg (16) g68.0<1>UW g68.0<16,16,1>UW g37.0<16,16,1>UW {align1};
+avg (16) g70.0<1>UW g70.0<16,16,1>UW g38.0<16,16,1>UW {align1};
+avg (16) g72.0<1>UW g72.0<16,16,1>UW g39.0<16,16,1>UW {align1};
+
+/*field 1 backward prediction of Y*/
+asr (2) g31.14<1>W g82.26<2,2,1>W 1W {align1};
+add (2) g115.0<1>UD g31.0<2,2,1>UD g31.14<2,2,1>W {align1};
 and (1) g115.4<1>UD g115.4<1,1,1>UD 0xFFFFFFFEUD {align1};
-mov(1) g115.8<1>UD 0x1fUD  { align1 }; //read 1 line, 32 columns.
-and.nz (1) null g2.20<1,1,1>UD 0x8UD {align1};
-(f0) add (1) g115.4<1>D g115.4<1,1,1>D 1D {align1};
-define(`surface',`7')
-define(`mv1',`g1.26')
-define(`mv2',`g1.28')
-include(`motion_field_y_igd.g4i')
-
-avg.sat (16) g28.0<1>UW g52.0<16,16,1>UW g28.0<16,16,1>UW {align1};
-avg.sat (16) g29.0<1>UW g53.0<16,16,1>UW g96.0<16,16,1>UW {align1};
-avg.sat (16) g30.0<1>UW g54.0<16,16,1>UW g30.0<16,16,1>UW {align1};
-avg.sat (16) g31.0<1>UW g55.0<16,16,1>UW g97.0<16,16,1>UW {align1};
-avg.sat (16) g32.0<1>UW g56.0<16,16,1>UW g32.0<16,16,1>UW {align1};
-avg.sat (16) g33.0<1>UW g57.0<16,16,1>UW g98.0<16,16,1>UW {align1};
-avg.sat (16) g34.0<1>UW g58.0<16,16,1>UW g34.0<16,16,1>UW {align1};
-avg.sat (16) g35.0<1>UW g59.0<16,16,1>UW g99.0<16,16,1>UW {align1};
-avg.sat (16) g36.0<1>UW g60.0<16,16,1>UW g36.0<16,16,1>UW {align1};
-avg.sat (16) g37.0<1>UW g61.0<16,16,1>UW g100.0<16,16,1>UW {align1};
-avg.sat (16) g38.0<1>UW g62.0<16,16,1>UW g38.0<16,16,1>UW {align1};
-avg.sat (16) g39.0<1>UW g63.0<16,16,1>UW g101.0<16,16,1>UW {align1};
-avg.sat (16) g40.0<1>UW g64.0<16,16,1>UW g40.0<16,16,1>UW {align1};
-avg.sat (16) g41.0<1>UW g65.0<16,16,1>UW g102.0<16,16,1>UW {align1};
-avg.sat (16) g42.0<1>UW g66.0<16,16,1>UW g42.0<16,16,1>UW {align1};
-avg.sat (16) g43.0<1>UW g67.0<16,16,1>UW g103.0<16,16,1>UW {align1};
-
-/*backward---UV---first vector */
-mov(1) g115.8<1>UD 0x007000fUD  { align1 };
-asr (2) g115.14<1>W g1.18<2,2,1>W 2W {align1};
-asr (2) g115.0<1>D g116.0<2,2,1>D 1D {align1};
-add (2) g115.0<1>D g115.0<2,2,1>D g115.14<2,2,1>W {align1};
+and.nz (1) null g82.31<1,1,1>UB 0x8UW {align1};
+(f0) add (1) g115.4<1>UD g115.4<1,1,1>UD 1UD {align1};
+mov (1) a0.0<1>UD 0x0A5AUD {align1};         //g82.14,motion vector
+mov (1) g126.8<1>UD ip {align1};
+add (1) ip g21.0<1,1,1>UD 0x20UD {align1};   //jump to the lib to read reference data 
+
+avg (16) g59.0<1>UW g59.0<16,16,1>UW g32.0<16,16,1>UW {align1};
+avg (16) g61.0<1>UW g61.0<16,16,1>UW g33.0<16,16,1>UW {align1};
+avg (16) g63.0<1>UW g63.0<16,16,1>UW g34.0<16,16,1>UW {align1};
+avg (16) g65.0<1>UW g65.0<16,16,1>UW g35.0<16,16,1>UW {align1};
+avg (16) g67.0<1>UW g67.0<16,16,1>UW g36.0<16,16,1>UW {align1};
+avg (16) g69.0<1>UW g69.0<16,16,1>UW g37.0<16,16,1>UW {align1};
+avg (16) g71.0<1>UW g71.0<16,16,1>UW g38.0<16,16,1>UW {align1};
+avg (16) g73.0<1>UW g73.0<16,16,1>UW g39.0<16,16,1>UW {align1};
+
+/*field 0 backward prediction of UV*/
+shr (2) g31.0<1>UD g31.0<2,2,1>UD 1UD {align1};
+
+asr (2) g31.14<1>W g82.18<2,2,1>W 2W {align1};
+add (2) g115.0<1>UD g31.0<2,2,1>UD g31.14<2,2,1>W {align1};
 and (1) g115.4<1>UD g115.4<1,1,1>UD 0xFFFFFFFEUD {align1};
-and.nz (1) null g1.31<1,1,1>UB 0x2UW {align1};
+and.nz (1) null g82.31<1,1,1>UB 0x2UW {align1};
 (f0) add (1) g115.4<1>UD g115.4<1,1,1>UD 1UD {align1};
-define(`surface_u',`8')
-define(`surface_v',`9')
-define(`mv1',`g1.18')
-define(`mv2',`g1.20')
-include(`motion_field_uv_igd.g4i')
-mov (8) g44.0<1>UW g78.0<8,8,1>UW {align1};
-mov (8) g45.0<1>UW g79.0<8,8,1>UW {align1};
-mov (8) g46.0<1>UW g80.0<8,8,1>UW {align1};
-mov (8) g47.0<1>UW g81.0<8,8,1>UW {align1};
-mov (8) g48.0<1>UW g82.0<8,8,1>UW {align1};
-mov (8) g49.0<1>UW g83.0<8,8,1>UW {align1};
-mov (8) g50.0<1>UW g84.0<8,8,1>UW {align1};
-mov (8) g51.0<1>UW g85.0<8,8,1>UW {align1};
-
-/*backward---UV---second vector */
-asr (2) g115.14<1>W g1.26<2,2,1>W 2W {align1};
-asr (2) g115.0<1>D g116.0<2,2,1>D 1D {align1};
-add (2) g115.0<1>D g115.0<2,2,1>D g115.14<2,2,1>W {align1};
+mov (1) a0.0<1>UD 0x0A52UD {align1};         //g82.18,motion vector
+mov (1) g126.8<1>UD ip {align1};
+add (1) ip g21.0<1,1,1>UD 0x30UD {align1};   //jump to the lib to read reference data 
+
+avg (16) g74.0<1>UW g74.0<8,8,1>UW g32.0<8,8,1>UW {align1 compr};
+avg (16) g76.0<1>UW g76.0<8,8,1>UW g34.0<8,8,1>UW {align1 compr};
+avg (16) g78.0<1>UW g78.0<8,8,1>UW g36.0<8,8,1>UW {align1 compr};
+avg (16) g80.0<1>UW g80.0<8,8,1>UW g38.0<8,8,1>UW {align1 compr};
+
+/*field 1 backward prediction of UV*/
+asr (2) g31.14<1>W g82.26<2,2,1>W 2W {align1};
+add (2) g115.0<1>UD g31.0<2,2,1>UD g31.14<2,2,1>W {align1};
 and (1) g115.4<1>UD g115.4<1,1,1>UD 0xFFFFFFFEUD {align1};
-and.nz (1) null g1.31<1,1,1>UB 0x8UW {align1};
+and.nz (1) null g82.31<1,1,1>UB 0x8UW {align1};
 (f0) add (1) g115.4<1>UD g115.4<1,1,1>UD 1UD {align1};
-define(`mv1',`g1.26')
-define(`mv2',`g1.28')
-include(`motion_field_uv_igd.g4i')
-mov (8) g44.16<1>UW g78.0<8,8,1>UW {align1};
-mov (8) g45.16<1>UW g79.0<8,8,1>UW {align1};
-mov (8) g46.16<1>UW g80.0<8,8,1>UW {align1};
-mov (8) g47.16<1>UW g81.0<8,8,1>UW {align1};
-mov (8) g48.16<1>UW g82.0<8,8,1>UW {align1};
-mov (8) g49.16<1>UW g83.0<8,8,1>UW {align1};
-mov (8) g50.16<1>UW g84.0<8,8,1>UW {align1};
-mov (8) g51.16<1>UW g85.0<8,8,1>UW {align1};
-
-avg.sat (16) g44.0<1>UW g68.0<16,16,1>UW g44.0<16,16,1>UW {align1};
-avg.sat (16) g45.0<1>UW g69.0<16,16,1>UW g45.0<16,16,1>UW {align1};
-avg.sat (16) g46.0<1>UW g70.0<16,16,1>UW g46.0<16,16,1>UW {align1};
-avg.sat (16) g47.0<1>UW g71.0<16,16,1>UW g47.0<16,16,1>UW {align1};
-avg.sat (16) g48.0<1>UW g72.0<16,16,1>UW g48.0<16,16,1>UW {align1};
-avg.sat (16) g49.0<1>UW g73.0<16,16,1>UW g49.0<16,16,1>UW {align1};
-avg.sat (16) g50.0<1>UW g74.0<16,16,1>UW g50.0<16,16,1>UW {align1};
-avg.sat (16) g51.0<1>UW g75.0<16,16,1>UW g51.0<16,16,1>UW {align1};
-
-include(`addidct.g4i')
-
-//send (16) 0 acc0<1>UW g0<8,8,1>UW 
-//	thread_spawner(0, 0, 0) mlen 1 rlen 0 { align1 EOT};
+mov (1) a0.0<1>UD 0x0A5AUD {align1};         //g82.26,motion vector
+mov (1) g126.8<1>UD ip {align1};
+add (1) ip g21.0<1,1,1>UD 0x30UD {align1};   //jump to the lib to read reference data 
+
+avg (16) g74.16<1>UW g74.16<8,8,1>UW g32.0<8,8,1>UW {align1 compr};
+avg (16) g76.16<1>UW g76.16<8,8,1>UW g34.0<8,8,1>UW {align1 compr};
+avg (16) g78.16<1>UW g78.16<8,8,1>UW g36.0<8,8,1>UW {align1 compr};
+avg (16) g80.16<1>UW g80.16<8,8,1>UW g38.0<8,8,1>UW {align1 compr};
+
+add (1) ip g21.0<1,1,1>UD 0x40UD {align1};          //jump to the lib to add the reference and idct data
diff --git a/src/xvmc/shader/mc/field_f_b_igd.g4b b/src/xvmc/shader/mc/field_f_b_igd.g4b
index 6477d06..c0bd0be 100644
--- a/src/xvmc/shader/mc/field_f_b_igd.g4b
+++ b/src/xvmc/shader/mc/field_f_b_igd.g4b
@@ -1,1142 +1,121 @@
-   { 0x00600001, 0x29800021, 0x008d0020, 0x00000000 },
-   { 0x02000005, 0x20000c3c, 0x00210040, 0x00000001 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000030 },
-   { 0x00000040, 0x20480c21, 0x00210988, 0x00000000 },
-   { 0x00800031, 0x20601c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x20801c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x20a01c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x20c01c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x20e01c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x21001c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x21201c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x21401c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x21601c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x21801c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x21a01c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x21c01c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x21e01c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x22001c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x22201c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x22401c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x22601c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x22801c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x22a01c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x22c01c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x22e01c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x23001c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x23201c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x23401c21, 0x00b10040, 0x04110203 },
-   { 0x02000005, 0x20002d3c, 0x0021098c, 0x00200020 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000008 },
-   { 0x00600001, 0x20600169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x20800169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x20a00169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x20c00169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x20e00169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x21000169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x21200169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x21400169, 0x00000000, 0x00000000 },
-   { 0x02000005, 0x20002d3c, 0x0021002c, 0x00100010 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000008 },
-   { 0x00600001, 0x20700169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x20900169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x20b00169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x20d00169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x20f00169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x21100169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x21300169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x21500169, 0x00000000, 0x00000000 },
-   { 0x02000005, 0x20002d3c, 0x0021002c, 0x00080008 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000008 },
-   { 0x00600001, 0x21600169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x21800169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x21a00169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x21c00169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x21e00169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x22000169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x22200169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x22400169, 0x00000000, 0x00000000 },
-   { 0x02000005, 0x20002d3c, 0x0021002c, 0x00040004 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000008 },
-   { 0x00600001, 0x21700169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x21900169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x21b00169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x21d00169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x21f00169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x22100169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x22300169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x22500169, 0x00000000, 0x00000000 },
-   { 0x02000005, 0x20002d3c, 0x0021002c, 0x00020002 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000004 },
-   { 0x00800001, 0x22600169, 0x00000000, 0x00000000 },
-   { 0x00800001, 0x22800169, 0x00000000, 0x00000000 },
-   { 0x00800001, 0x22a00169, 0x00000000, 0x00000000 },
-   { 0x00800001, 0x22c00169, 0x00000000, 0x00000000 },
-   { 0x02000005, 0x20002d3c, 0x0021002c, 0x00010001 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000004 },
-   { 0x00800001, 0x22e00169, 0x00000000, 0x00000000 },
-   { 0x00800001, 0x23000169, 0x00000000, 0x00000000 },
-   { 0x00800001, 0x23200169, 0x00000000, 0x00000000 },
-   { 0x00800001, 0x23400169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x2e600021, 0x008d0020, 0x00000000 },
-   { 0x00600001, 0x2e800021, 0x008d0020, 0x00000000 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0007001f },
-   { 0x0020000c, 0x2e6e3dad, 0x0045002e, 0x00010001 },
-   { 0x00200040, 0x2e6034a5, 0x00450e80, 0x00450e6e },
+   { 0x00600001, 0x2a400021, 0x008d03e0, 0x00000000 },
+   { 0x00000001, 0x2fc80001, 0x00001400, 0x00000000 },
+   { 0x00000040, 0x34000c20, 0x002102a0, 0x00000050 },
+   { 0x0020000c, 0x23ee3dad, 0x00450a4e, 0x00010001 },
+   { 0x00200040, 0x2e603421, 0x004503e0, 0x004503ee },
    { 0x00000005, 0x2e640c21, 0x00210e64, 0xfffffffe },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
-   { 0x02000005, 0x20002e3c, 0x0021003f, 0x00010001 },
-   { 0x00010040, 0x2e641ca5, 0x00210e64, 0x00000001 },
-   { 0x01000005, 0x20002d3c, 0x0021002e, 0x00010001 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000045 },
-   { 0x01000005, 0x20002d3c, 0x00210030, 0x00010001 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x0000002f },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
-   { 0x00800031, 0x29c01d29, 0x008d0e60, 0x0411a004 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a001d29, 0x008d0e60, 0x0411a004 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a401d29, 0x008d0e60, 0x0411a004 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a801d29, 0x008d0e60, 0x0411a004 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0007001f },
-   { 0x00800031, 0x2ac01d29, 0x008d0e60, 0x0418a004 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
-   { 0x00800031, 0x2bc01d29, 0x008d0e60, 0x0411a004 },
-   { 0x00800040, 0x2c004629, 0x00b109c0, 0x00b10a00 },
-   { 0x00800040, 0x2c204629, 0x00b10a00, 0x00b10a40 },
-   { 0x00800040, 0x2c404629, 0x00b10a40, 0x00b10a80 },
-   { 0x00800040, 0x2c604629, 0x00b10a80, 0x00b10ac0 },
-   { 0x00800040, 0x2c804629, 0x00b10ac0, 0x00b10b00 },
-   { 0x00800040, 0x2ca04629, 0x00b10b00, 0x00b10b40 },
-   { 0x00800040, 0x2cc04629, 0x00b10b40, 0x00b10b80 },
-   { 0x00800040, 0x2ce04629, 0x00b10b80, 0x00b10bc0 },
-   { 0x00800040, 0x2c004529, 0x00b10c00, 0x00b109c1 },
-   { 0x00800040, 0x2c204529, 0x00b10c20, 0x00b10a01 },
-   { 0x00800040, 0x2c404529, 0x00b10c40, 0x00b10a41 },
-   { 0x00800040, 0x2c604529, 0x00b10c60, 0x00b10a81 },
-   { 0x00800040, 0x2c804529, 0x00b10c80, 0x00b10ac1 },
-   { 0x00800040, 0x2ca04529, 0x00b10ca0, 0x00b10b01 },
-   { 0x00800040, 0x2cc04529, 0x00b10cc0, 0x00b10b41 },
-   { 0x00800040, 0x2ce04529, 0x00b10ce0, 0x00b10b81 },
-   { 0x00800040, 0x2c004529, 0x00b10c00, 0x00b10a01 },
-   { 0x00800040, 0x2c204529, 0x00b10c20, 0x00b10a41 },
-   { 0x00800040, 0x2c404529, 0x00b10c40, 0x00b10a81 },
-   { 0x00800040, 0x2c604529, 0x00b10c60, 0x00b10ac1 },
-   { 0x00800040, 0x2c804529, 0x00b10c80, 0x00b10b01 },
-   { 0x00800040, 0x2ca04529, 0x00b10ca0, 0x00b10b41 },
-   { 0x00800040, 0x2cc04529, 0x00b10cc0, 0x00b10b81 },
-   { 0x00800040, 0x2ce04529, 0x00b10ce0, 0x00b10bc1 },
-   { 0x00800008, 0x2c002d29, 0x00b10c00, 0x00020002 },
-   { 0x00800008, 0x2c202d29, 0x00b10c20, 0x00020002 },
-   { 0x00800008, 0x2c402d29, 0x00b10c40, 0x00020002 },
-   { 0x00800008, 0x2c602d29, 0x00b10c60, 0x00020002 },
-   { 0x00800008, 0x2c802d29, 0x00b10c80, 0x00020002 },
-   { 0x00800008, 0x2ca02d29, 0x00b10ca0, 0x00020002 },
-   { 0x00800008, 0x2cc02d29, 0x00b10cc0, 0x00020002 },
-   { 0x00800008, 0x2ce02d29, 0x00b10ce0, 0x00020002 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000040 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
-   { 0x00800031, 0x29c01d29, 0x008d0e60, 0x0411a004 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a001d29, 0x008d0e60, 0x0411a004 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a401d29, 0x008d0e60, 0x0411a004 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a801d29, 0x008d0e60, 0x0411a004 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0007001f },
-   { 0x00800031, 0x2ac01d29, 0x008d0e60, 0x0418a004 },
-   { 0x80800042, 0x2c004629, 0x00b109c0, 0x00b109c1 },
-   { 0x80800042, 0x2c204629, 0x00b10a00, 0x00b10a01 },
-   { 0x80800042, 0x2c404629, 0x00b10a40, 0x00b10a41 },
-   { 0x80800042, 0x2c604629, 0x00b10a80, 0x00b10a81 },
-   { 0x80800042, 0x2c804629, 0x00b10ac0, 0x00b10ac1 },
-   { 0x80800042, 0x2ca04629, 0x00b10b00, 0x00b10b01 },
-   { 0x80800042, 0x2cc04629, 0x00b10b40, 0x00b10b41 },
-   { 0x80800042, 0x2ce04629, 0x00b10b80, 0x00b10b81 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x0000002c },
-   { 0x01000005, 0x20002d3c, 0x00210030, 0x00010001 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000017 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
-   { 0x00800031, 0x29c01d29, 0x008d0e60, 0x0411a004 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a001d29, 0x008d0e60, 0x0411a004 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a401d29, 0x008d0e60, 0x0411a004 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a801d29, 0x008d0e60, 0x0411a004 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0007001f },
-   { 0x00800031, 0x2ac01d29, 0x008d0e60, 0x0418a004 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
-   { 0x00800031, 0x2bc01d29, 0x008d0e60, 0x0411a004 },
-   { 0x80800042, 0x2c004629, 0x00b109c0, 0x00b10a00 },
-   { 0x80800042, 0x2c204629, 0x00b10a00, 0x00b10a40 },
-   { 0x80800042, 0x2c404629, 0x00b10a40, 0x00b10a80 },
-   { 0x80800042, 0x2c604629, 0x00b10a80, 0x00b10ac0 },
-   { 0x80800042, 0x2c804629, 0x00b10ac0, 0x00b10b00 },
-   { 0x80800042, 0x2ca04629, 0x00b10b00, 0x00b10b40 },
-   { 0x80800042, 0x2cc04629, 0x00b10b40, 0x00b10b80 },
-   { 0x80800042, 0x2ce04629, 0x00b10b80, 0x00b10bc0 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000013 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
-   { 0x00800031, 0x29c01d29, 0x008d0e60, 0x0411a004 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a001d29, 0x008d0e60, 0x0411a004 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a401d29, 0x008d0e60, 0x0411a004 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a801d29, 0x008d0e60, 0x0411a004 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0007001f },
-   { 0x00800031, 0x2ac01d29, 0x008d0e60, 0x0418a004 },
-   { 0x00800001, 0x2c000229, 0x00b109c0, 0x00000000 },
-   { 0x00800001, 0x2c200229, 0x00b10a00, 0x00000000 },
-   { 0x00800001, 0x2c400229, 0x00b10a40, 0x00000000 },
-   { 0x00800001, 0x2c600229, 0x00b10a80, 0x00000000 },
-   { 0x00800001, 0x2c800229, 0x00b10ac0, 0x00000000 },
-   { 0x00800001, 0x2ca00229, 0x00b10b00, 0x00000000 },
-   { 0x00800001, 0x2cc00229, 0x00b10b40, 0x00000000 },
-   { 0x00800001, 0x2ce00229, 0x00b10b80, 0x00000000 },
-   { 0x00600001, 0x26800021, 0x008d0c00, 0x00000000 },
-   { 0x00600001, 0x26c00021, 0x008d0c20, 0x00000000 },
-   { 0x00600001, 0x27000021, 0x008d0c40, 0x00000000 },
-   { 0x00600001, 0x27400021, 0x008d0c60, 0x00000000 },
-   { 0x00600001, 0x27800021, 0x008d0c80, 0x00000000 },
-   { 0x00600001, 0x27c00021, 0x008d0ca0, 0x00000000 },
-   { 0x00600001, 0x28000021, 0x008d0cc0, 0x00000000 },
-   { 0x00600001, 0x28400021, 0x008d0ce0, 0x00000000 },
-   { 0x0020000c, 0x2e6e3dad, 0x00450036, 0x00010001 },
-   { 0x00200040, 0x2e6034a5, 0x00450e80, 0x00450e6e },
+   { 0x02000005, 0x20002e3c, 0x00210a5f, 0x00010001 },
+   { 0x00010040, 0x2e640c21, 0x00210e64, 0x00000001 },
+   { 0x00000001, 0x2e700169, 0x00000000, 0x00000000 },
+   { 0x00000001, 0x22000060, 0x00000000, 0x00000a4e },
+   { 0x00000001, 0x2fc80001, 0x00001400, 0x00000000 },
+   { 0x00000040, 0x34000c20, 0x002102a0, 0x00000020 },
+   { 0x00600001, 0x27400021, 0x008d0400, 0x00000000 },
+   { 0x00600001, 0x27800021, 0x008d0420, 0x00000000 },
+   { 0x00600001, 0x27c00021, 0x008d0440, 0x00000000 },
+   { 0x00600001, 0x28000021, 0x008d0460, 0x00000000 },
+   { 0x00600001, 0x28400021, 0x008d0480, 0x00000000 },
+   { 0x00600001, 0x28800021, 0x008d04a0, 0x00000000 },
+   { 0x00600001, 0x28c00021, 0x008d04c0, 0x00000000 },
+   { 0x00600001, 0x29000021, 0x008d04e0, 0x00000000 },
+   { 0x0020000c, 0x23ee3dad, 0x00450a56, 0x00010001 },
+   { 0x00200040, 0x2e603421, 0x004503e0, 0x004503ee },
    { 0x00000005, 0x2e640c21, 0x00210e64, 0xfffffffe },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
-   { 0x02000005, 0x20000e3c, 0x0021003f, 0x00000004 },
-   { 0x00010040, 0x2e641ca5, 0x00210e64, 0x00000001 },
-   { 0x01000005, 0x20002d3c, 0x00210036, 0x00010001 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000045 },
-   { 0x01000005, 0x20002d3c, 0x00210038, 0x00010001 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x0000002f },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
-   { 0x00800031, 0x29c01d29, 0x008d0e60, 0x0411a004 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a001d29, 0x008d0e60, 0x0411a004 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a401d29, 0x008d0e60, 0x0411a004 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a801d29, 0x008d0e60, 0x0411a004 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0007001f },
-   { 0x00800031, 0x2ac01d29, 0x008d0e60, 0x0418a004 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
-   { 0x00800031, 0x2bc01d29, 0x008d0e60, 0x0411a004 },
-   { 0x00800040, 0x2c004629, 0x00b109c0, 0x00b10a00 },
-   { 0x00800040, 0x2c204629, 0x00b10a00, 0x00b10a40 },
-   { 0x00800040, 0x2c404629, 0x00b10a40, 0x00b10a80 },
-   { 0x00800040, 0x2c604629, 0x00b10a80, 0x00b10ac0 },
-   { 0x00800040, 0x2c804629, 0x00b10ac0, 0x00b10b00 },
-   { 0x00800040, 0x2ca04629, 0x00b10b00, 0x00b10b40 },
-   { 0x00800040, 0x2cc04629, 0x00b10b40, 0x00b10b80 },
-   { 0x00800040, 0x2ce04629, 0x00b10b80, 0x00b10bc0 },
-   { 0x00800040, 0x2c004529, 0x00b10c00, 0x00b109c1 },
-   { 0x00800040, 0x2c204529, 0x00b10c20, 0x00b10a01 },
-   { 0x00800040, 0x2c404529, 0x00b10c40, 0x00b10a41 },
-   { 0x00800040, 0x2c604529, 0x00b10c60, 0x00b10a81 },
-   { 0x00800040, 0x2c804529, 0x00b10c80, 0x00b10ac1 },
-   { 0x00800040, 0x2ca04529, 0x00b10ca0, 0x00b10b01 },
-   { 0x00800040, 0x2cc04529, 0x00b10cc0, 0x00b10b41 },
-   { 0x00800040, 0x2ce04529, 0x00b10ce0, 0x00b10b81 },
-   { 0x00800040, 0x2c004529, 0x00b10c00, 0x00b10a01 },
-   { 0x00800040, 0x2c204529, 0x00b10c20, 0x00b10a41 },
-   { 0x00800040, 0x2c404529, 0x00b10c40, 0x00b10a81 },
-   { 0x00800040, 0x2c604529, 0x00b10c60, 0x00b10ac1 },
-   { 0x00800040, 0x2c804529, 0x00b10c80, 0x00b10b01 },
-   { 0x00800040, 0x2ca04529, 0x00b10ca0, 0x00b10b41 },
-   { 0x00800040, 0x2cc04529, 0x00b10cc0, 0x00b10b81 },
-   { 0x00800040, 0x2ce04529, 0x00b10ce0, 0x00b10bc1 },
-   { 0x00800008, 0x2c002d29, 0x00b10c00, 0x00020002 },
-   { 0x00800008, 0x2c202d29, 0x00b10c20, 0x00020002 },
-   { 0x00800008, 0x2c402d29, 0x00b10c40, 0x00020002 },
-   { 0x00800008, 0x2c602d29, 0x00b10c60, 0x00020002 },
-   { 0x00800008, 0x2c802d29, 0x00b10c80, 0x00020002 },
-   { 0x00800008, 0x2ca02d29, 0x00b10ca0, 0x00020002 },
-   { 0x00800008, 0x2cc02d29, 0x00b10cc0, 0x00020002 },
-   { 0x00800008, 0x2ce02d29, 0x00b10ce0, 0x00020002 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000040 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
-   { 0x00800031, 0x29c01d29, 0x008d0e60, 0x0411a004 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a001d29, 0x008d0e60, 0x0411a004 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a401d29, 0x008d0e60, 0x0411a004 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a801d29, 0x008d0e60, 0x0411a004 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0007001f },
-   { 0x00800031, 0x2ac01d29, 0x008d0e60, 0x0418a004 },
-   { 0x80800042, 0x2c004629, 0x00b109c0, 0x00b109c1 },
-   { 0x80800042, 0x2c204629, 0x00b10a00, 0x00b10a01 },
-   { 0x80800042, 0x2c404629, 0x00b10a40, 0x00b10a41 },
-   { 0x80800042, 0x2c604629, 0x00b10a80, 0x00b10a81 },
-   { 0x80800042, 0x2c804629, 0x00b10ac0, 0x00b10ac1 },
-   { 0x80800042, 0x2ca04629, 0x00b10b00, 0x00b10b01 },
-   { 0x80800042, 0x2cc04629, 0x00b10b40, 0x00b10b41 },
-   { 0x80800042, 0x2ce04629, 0x00b10b80, 0x00b10b81 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x0000002c },
-   { 0x01000005, 0x20002d3c, 0x00210038, 0x00010001 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000017 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
-   { 0x00800031, 0x29c01d29, 0x008d0e60, 0x0411a004 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a001d29, 0x008d0e60, 0x0411a004 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a401d29, 0x008d0e60, 0x0411a004 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a801d29, 0x008d0e60, 0x0411a004 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0007001f },
-   { 0x00800031, 0x2ac01d29, 0x008d0e60, 0x0418a004 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
-   { 0x00800031, 0x2bc01d29, 0x008d0e60, 0x0411a004 },
-   { 0x80800042, 0x2c004629, 0x00b109c0, 0x00b10a00 },
-   { 0x80800042, 0x2c204629, 0x00b10a00, 0x00b10a40 },
-   { 0x80800042, 0x2c404629, 0x00b10a40, 0x00b10a80 },
-   { 0x80800042, 0x2c604629, 0x00b10a80, 0x00b10ac0 },
-   { 0x80800042, 0x2c804629, 0x00b10ac0, 0x00b10b00 },
-   { 0x80800042, 0x2ca04629, 0x00b10b00, 0x00b10b40 },
-   { 0x80800042, 0x2cc04629, 0x00b10b40, 0x00b10b80 },
-   { 0x80800042, 0x2ce04629, 0x00b10b80, 0x00b10bc0 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000013 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
-   { 0x00800031, 0x29c01d29, 0x008d0e60, 0x0411a004 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a001d29, 0x008d0e60, 0x0411a004 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a401d29, 0x008d0e60, 0x0411a004 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a801d29, 0x008d0e60, 0x0411a004 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0007001f },
-   { 0x00800031, 0x2ac01d29, 0x008d0e60, 0x0418a004 },
-   { 0x00800001, 0x2c000229, 0x00b109c0, 0x00000000 },
-   { 0x00800001, 0x2c200229, 0x00b10a00, 0x00000000 },
-   { 0x00800001, 0x2c400229, 0x00b10a40, 0x00000000 },
-   { 0x00800001, 0x2c600229, 0x00b10a80, 0x00000000 },
-   { 0x00800001, 0x2c800229, 0x00b10ac0, 0x00000000 },
-   { 0x00800001, 0x2ca00229, 0x00b10b00, 0x00000000 },
-   { 0x00800001, 0x2cc00229, 0x00b10b40, 0x00000000 },
-   { 0x00800001, 0x2ce00229, 0x00b10b80, 0x00000000 },
-   { 0x00600001, 0x26a00021, 0x008d0c00, 0x00000000 },
-   { 0x00600001, 0x26e00021, 0x008d0c20, 0x00000000 },
-   { 0x00600001, 0x27200021, 0x008d0c40, 0x00000000 },
-   { 0x00600001, 0x27600021, 0x008d0c60, 0x00000000 },
-   { 0x00600001, 0x27a00021, 0x008d0c80, 0x00000000 },
-   { 0x00600001, 0x27e00021, 0x008d0ca0, 0x00000000 },
-   { 0x00600001, 0x28200021, 0x008d0cc0, 0x00000000 },
-   { 0x00600001, 0x28600021, 0x008d0ce0, 0x00000000 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0007000f },
-   { 0x0020000c, 0x2e6e3dad, 0x0045002e, 0x00020002 },
-   { 0x0020000c, 0x2e601ca5, 0x00450e80, 0x00000001 },
-   { 0x00200040, 0x2e6034a5, 0x00450e60, 0x00450e6e },
+   { 0x02000005, 0x20002e3c, 0x00210a5f, 0x00040004 },
+   { 0x00010040, 0x2e640c21, 0x00210e64, 0x00000001 },
+   { 0x00000001, 0x22000060, 0x00000000, 0x00000a56 },
+   { 0x00000001, 0x2fc80001, 0x00001400, 0x00000000 },
+   { 0x00000040, 0x34000c20, 0x002102a0, 0x00000020 },
+   { 0x00600001, 0x27600021, 0x008d0400, 0x00000000 },
+   { 0x00600001, 0x27a00021, 0x008d0420, 0x00000000 },
+   { 0x00600001, 0x27e00021, 0x008d0440, 0x00000000 },
+   { 0x00600001, 0x28200021, 0x008d0460, 0x00000000 },
+   { 0x00600001, 0x28600021, 0x008d0480, 0x00000000 },
+   { 0x00600001, 0x28a00021, 0x008d04a0, 0x00000000 },
+   { 0x00600001, 0x28e00021, 0x008d04c0, 0x00000000 },
+   { 0x00600001, 0x29200021, 0x008d04e0, 0x00000000 },
+   { 0x00200008, 0x23e00c21, 0x004503e0, 0x00000001 },
+   { 0x0020000c, 0x23ee3dad, 0x00450a4e, 0x00020002 },
+   { 0x00200040, 0x2e603421, 0x004503e0, 0x004503ee },
    { 0x00000005, 0x2e640c21, 0x00210e64, 0xfffffffe },
-   { 0x02000005, 0x20002e3c, 0x0021003f, 0x00010001 },
+   { 0x02000005, 0x20002e3c, 0x00210a5f, 0x00010001 },
    { 0x00010040, 0x2e640c21, 0x00210e64, 0x00000001 },
-   { 0x01000005, 0x20002d3c, 0x0021002e, 0x00020002 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000036 },
-   { 0x01000005, 0x20002d3c, 0x00210030, 0x00020002 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000028 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0007000f },
-   { 0x00800031, 0x2ac01d29, 0x00ad0e60, 0x0414a005 },
-   { 0x00800031, 0x2b601d29, 0x00ad0e60, 0x0414a006 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0001000f },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 },
-   { 0x00800031, 0x2b401d29, 0x00ad0e60, 0x0411a005 },
-   { 0x00800031, 0x2be01d29, 0x00ad0e60, 0x0411a006 },
-   { 0x00800040, 0x29c04629, 0x00ad0ac0, 0x00ad0ae0 },
-   { 0x00800040, 0x29e04629, 0x00ad0ae0, 0x00ad0b00 },
-   { 0x00800040, 0x2a004629, 0x00ad0b00, 0x00ad0b20 },
-   { 0x00800040, 0x2a204629, 0x00ad0b20, 0x00ad0b40 },
-   { 0x00800040, 0x29c04529, 0x00ad09c0, 0x00ad0ac1 },
-   { 0x00800040, 0x29e04529, 0x00ad09e0, 0x00ad0ae1 },
-   { 0x00800040, 0x2a004529, 0x00ad0a00, 0x00ad0b01 },
-   { 0x00800040, 0x2a204529, 0x00ad0a20, 0x00ad0b21 },
-   { 0x00800040, 0x29c04529, 0x00ad09c0, 0x00ad0ae1 },
-   { 0x00800040, 0x29e04529, 0x00ad09e0, 0x00ad0b01 },
-   { 0x00800040, 0x2a004529, 0x00ad0a00, 0x00ad0b21 },
-   { 0x00800040, 0x2a204529, 0x00ad0a20, 0x00ad0b41 },
-   { 0x00800040, 0x2a404629, 0x00ad0b60, 0x00ad0b80 },
-   { 0x00800040, 0x2a604629, 0x00ad0b80, 0x00ad0ba0 },
-   { 0x00800040, 0x2a804629, 0x00ad0ba0, 0x00ad0bc0 },
-   { 0x00800040, 0x2aa04629, 0x00ad0bc0, 0x00ad0be0 },
-   { 0x00800040, 0x2a404529, 0x00ad0a40, 0x00ad0b61 },
-   { 0x00800040, 0x2a604529, 0x00ad0a60, 0x00ad0b81 },
-   { 0x00800040, 0x2a804529, 0x00ad0a80, 0x00ad0ba1 },
-   { 0x00800040, 0x2aa04529, 0x00ad0aa0, 0x00ad0bc1 },
-   { 0x00800040, 0x2a404529, 0x00ad0a40, 0x00ad0b81 },
-   { 0x00800040, 0x2a604529, 0x00ad0a60, 0x00ad0ba1 },
-   { 0x00800040, 0x2a804529, 0x00ad0a80, 0x00ad0bc1 },
-   { 0x00800040, 0x2aa04529, 0x00ad0aa0, 0x00ad0be1 },
-   { 0x80800008, 0x29c02d29, 0x00b109c0, 0x00020002 },
-   { 0x80800008, 0x29e02d29, 0x00b109e0, 0x00020002 },
-   { 0x80800008, 0x2a002d29, 0x00b10a00, 0x00020002 },
-   { 0x80800008, 0x2a202d29, 0x00b10a20, 0x00020002 },
-   { 0x80800008, 0x2a402d29, 0x00b10a40, 0x00020002 },
-   { 0x80800008, 0x2a602d29, 0x00b10a60, 0x00020002 },
-   { 0x80800008, 0x2a802d29, 0x00b10a80, 0x00020002 },
-   { 0x80800008, 0x2aa02d29, 0x00b10aa0, 0x00020002 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000028 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0007000f },
-   { 0x00800031, 0x2ac01d29, 0x00ad0e60, 0x0414a005 },
-   { 0x00800031, 0x2b601d29, 0x00ad0e60, 0x0414a006 },
-   { 0x80800042, 0x29c04629, 0x00ad0ac0, 0x00ad0ac1 },
-   { 0x80800042, 0x29e04629, 0x00ad0ae0, 0x00ad0ae1 },
-   { 0x80800042, 0x2a004629, 0x00ad0b00, 0x00ad0b01 },
-   { 0x80800042, 0x2a204629, 0x00ad0b20, 0x00ad0b21 },
-   { 0x80800042, 0x2a404629, 0x00ad0b60, 0x00ad0b61 },
-   { 0x80800042, 0x2a604629, 0x00ad0b80, 0x00ad0b81 },
-   { 0x80800042, 0x2a804629, 0x00ad0ba0, 0x00ad0ba1 },
-   { 0x80800042, 0x2aa04629, 0x00ad0bc0, 0x00ad0bc1 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x0000001c },
-   { 0x01000005, 0x20002d3c, 0x00210030, 0x00020002 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x0000000f },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0007000f },
-   { 0x00800031, 0x2ac01d29, 0x00ad0e60, 0x0414a005 },
-   { 0x00800031, 0x2b601d29, 0x00ad0e60, 0x0414a006 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0000000f },
-   { 0x00800031, 0x2b401d29, 0x00ad0e60, 0x0411a005 },
-   { 0x00800031, 0x2be01d29, 0x00ad0e60, 0x0411a006 },
-   { 0x80800042, 0x29c04629, 0x00ad0ac0, 0x00ad0ae0 },
-   { 0x80800042, 0x29e04629, 0x00ad0ae0, 0x00ad0b00 },
-   { 0x80800042, 0x2a004629, 0x00ad0b00, 0x00ad0b20 },
-   { 0x80800042, 0x2a204629, 0x00ad0b20, 0x00ad0b40 },
-   { 0x80800042, 0x2a404629, 0x00ad0b60, 0x00ad0b80 },
-   { 0x80800042, 0x2a604629, 0x00ad0b80, 0x00ad0ba0 },
-   { 0x80800042, 0x2a804629, 0x00ad0ba0, 0x00ad0bc0 },
-   { 0x80800042, 0x2aa04629, 0x00ad0bc0, 0x00ad0be0 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x0000000b },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0007000f },
-   { 0x00800031, 0x2ac01d29, 0x00ad0e60, 0x0414a005 },
-   { 0x00800031, 0x2b601d29, 0x00ad0e60, 0x0414a006 },
-   { 0x00800001, 0x29c00229, 0x00ad0ac0, 0x00000000 },
-   { 0x00800001, 0x29e00229, 0x00ad0ae0, 0x00000000 },
-   { 0x00800001, 0x2a000229, 0x00ad0b00, 0x00000000 },
-   { 0x00800001, 0x2a200229, 0x00ad0b20, 0x00000000 },
-   { 0x00800001, 0x2a400229, 0x00ad0b60, 0x00000000 },
-   { 0x00800001, 0x2a600229, 0x00ad0b80, 0x00000000 },
-   { 0x00800001, 0x2a800229, 0x00ad0ba0, 0x00000000 },
-   { 0x00800001, 0x2aa00229, 0x00ad0bc0, 0x00000000 },
-   { 0x00600001, 0x28800129, 0x008d09c0, 0x00000000 },
-   { 0x00600001, 0x28a00129, 0x008d09e0, 0x00000000 },
-   { 0x00600001, 0x28c00129, 0x008d0a00, 0x00000000 },
-   { 0x00600001, 0x28e00129, 0x008d0a20, 0x00000000 },
-   { 0x00600001, 0x29000129, 0x008d0a40, 0x00000000 },
-   { 0x00600001, 0x29200129, 0x008d0a60, 0x00000000 },
-   { 0x00600001, 0x29400129, 0x008d0a80, 0x00000000 },
-   { 0x00600001, 0x29600129, 0x008d0aa0, 0x00000000 },
-   { 0x0020000c, 0x2e6e3dad, 0x00450036, 0x00020002 },
-   { 0x0020000c, 0x2e601ca5, 0x00450e80, 0x00000001 },
-   { 0x00200040, 0x2e6034a5, 0x00450e60, 0x00450e6e },
+   { 0x00000001, 0x22000060, 0x00000000, 0x00000a4e },
+   { 0x00000001, 0x2fc80001, 0x00001400, 0x00000000 },
+   { 0x00000040, 0x34000c20, 0x002102a0, 0x00000030 },
+   { 0x00802001, 0x29400129, 0x008d0400, 0x00000000 },
+   { 0x00802001, 0x29800129, 0x008d0440, 0x00000000 },
+   { 0x00802001, 0x29c00129, 0x008d0480, 0x00000000 },
+   { 0x00802001, 0x2a000129, 0x008d04c0, 0x00000000 },
+   { 0x0020000c, 0x23ee3dad, 0x00450a56, 0x00020002 },
+   { 0x00200040, 0x2e603421, 0x004503e0, 0x004503ee },
    { 0x00000005, 0x2e640c21, 0x00210e64, 0xfffffffe },
-   { 0x02000005, 0x20002e3c, 0x0021003f, 0x00040004 },
+   { 0x02000005, 0x20002e3c, 0x00210a5f, 0x00040004 },
    { 0x00010040, 0x2e640c21, 0x00210e64, 0x00000001 },
-   { 0x01000005, 0x20002d3c, 0x00210038, 0x00020002 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000036 },
-   { 0x01000005, 0x20002d3c, 0x0021003a, 0x00020002 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000028 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0007000f },
-   { 0x00800031, 0x2ac01d29, 0x00ad0e60, 0x0414a005 },
-   { 0x00800031, 0x2b601d29, 0x00ad0e60, 0x0414a006 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0001000f },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 },
-   { 0x00800031, 0x2b401d29, 0x00ad0e60, 0x0411a005 },
-   { 0x00800031, 0x2be01d29, 0x00ad0e60, 0x0411a006 },
-   { 0x00800040, 0x29c04629, 0x00ad0ac0, 0x00ad0ae0 },
-   { 0x00800040, 0x29e04629, 0x00ad0ae0, 0x00ad0b00 },
-   { 0x00800040, 0x2a004629, 0x00ad0b00, 0x00ad0b20 },
-   { 0x00800040, 0x2a204629, 0x00ad0b20, 0x00ad0b40 },
-   { 0x00800040, 0x29c04529, 0x00ad09c0, 0x00ad0ac1 },
-   { 0x00800040, 0x29e04529, 0x00ad09e0, 0x00ad0ae1 },
-   { 0x00800040, 0x2a004529, 0x00ad0a00, 0x00ad0b01 },
-   { 0x00800040, 0x2a204529, 0x00ad0a20, 0x00ad0b21 },
-   { 0x00800040, 0x29c04529, 0x00ad09c0, 0x00ad0ae1 },
-   { 0x00800040, 0x29e04529, 0x00ad09e0, 0x00ad0b01 },
-   { 0x00800040, 0x2a004529, 0x00ad0a00, 0x00ad0b21 },
-   { 0x00800040, 0x2a204529, 0x00ad0a20, 0x00ad0b41 },
-   { 0x00800040, 0x2a404629, 0x00ad0b60, 0x00ad0b80 },
-   { 0x00800040, 0x2a604629, 0x00ad0b80, 0x00ad0ba0 },
-   { 0x00800040, 0x2a804629, 0x00ad0ba0, 0x00ad0bc0 },
-   { 0x00800040, 0x2aa04629, 0x00ad0bc0, 0x00ad0be0 },
-   { 0x00800040, 0x2a404529, 0x00ad0a40, 0x00ad0b61 },
-   { 0x00800040, 0x2a604529, 0x00ad0a60, 0x00ad0b81 },
-   { 0x00800040, 0x2a804529, 0x00ad0a80, 0x00ad0ba1 },
-   { 0x00800040, 0x2aa04529, 0x00ad0aa0, 0x00ad0bc1 },
-   { 0x00800040, 0x2a404529, 0x00ad0a40, 0x00ad0b81 },
-   { 0x00800040, 0x2a604529, 0x00ad0a60, 0x00ad0ba1 },
-   { 0x00800040, 0x2a804529, 0x00ad0a80, 0x00ad0bc1 },
-   { 0x00800040, 0x2aa04529, 0x00ad0aa0, 0x00ad0be1 },
-   { 0x80800008, 0x29c02d29, 0x00b109c0, 0x00020002 },
-   { 0x80800008, 0x29e02d29, 0x00b109e0, 0x00020002 },
-   { 0x80800008, 0x2a002d29, 0x00b10a00, 0x00020002 },
-   { 0x80800008, 0x2a202d29, 0x00b10a20, 0x00020002 },
-   { 0x80800008, 0x2a402d29, 0x00b10a40, 0x00020002 },
-   { 0x80800008, 0x2a602d29, 0x00b10a60, 0x00020002 },
-   { 0x80800008, 0x2a802d29, 0x00b10a80, 0x00020002 },
-   { 0x80800008, 0x2aa02d29, 0x00b10aa0, 0x00020002 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000028 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0007000f },
-   { 0x00800031, 0x2ac01d29, 0x00ad0e60, 0x0414a005 },
-   { 0x00800031, 0x2b601d29, 0x00ad0e60, 0x0414a006 },
-   { 0x80800042, 0x29c04629, 0x00ad0ac0, 0x00ad0ac1 },
-   { 0x80800042, 0x29e04629, 0x00ad0ae0, 0x00ad0ae1 },
-   { 0x80800042, 0x2a004629, 0x00ad0b00, 0x00ad0b01 },
-   { 0x80800042, 0x2a204629, 0x00ad0b20, 0x00ad0b21 },
-   { 0x80800042, 0x2a404629, 0x00ad0b60, 0x00ad0b61 },
-   { 0x80800042, 0x2a604629, 0x00ad0b80, 0x00ad0b81 },
-   { 0x80800042, 0x2a804629, 0x00ad0ba0, 0x00ad0ba1 },
-   { 0x80800042, 0x2aa04629, 0x00ad0bc0, 0x00ad0bc1 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x0000001c },
-   { 0x01000005, 0x20002d3c, 0x0021003a, 0x00020002 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x0000000f },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0007000f },
-   { 0x00800031, 0x2ac01d29, 0x00ad0e60, 0x0414a005 },
-   { 0x00800031, 0x2b601d29, 0x00ad0e60, 0x0414a006 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0000000f },
-   { 0x00800031, 0x2b401d29, 0x00ad0e60, 0x0411a005 },
-   { 0x00800031, 0x2be01d29, 0x00ad0e60, 0x0411a006 },
-   { 0x80800042, 0x29c04629, 0x00ad0ac0, 0x00ad0ae0 },
-   { 0x80800042, 0x29e04629, 0x00ad0ae0, 0x00ad0b00 },
-   { 0x80800042, 0x2a004629, 0x00ad0b00, 0x00ad0b20 },
-   { 0x80800042, 0x2a204629, 0x00ad0b20, 0x00ad0b40 },
-   { 0x80800042, 0x2a404629, 0x00ad0b60, 0x00ad0b80 },
-   { 0x80800042, 0x2a604629, 0x00ad0b80, 0x00ad0ba0 },
-   { 0x80800042, 0x2a804629, 0x00ad0ba0, 0x00ad0bc0 },
-   { 0x80800042, 0x2aa04629, 0x00ad0bc0, 0x00ad0be0 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x0000000b },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0007000f },
-   { 0x00800031, 0x2ac01d29, 0x00ad0e60, 0x0414a005 },
-   { 0x00800031, 0x2b601d29, 0x00ad0e60, 0x0414a006 },
-   { 0x00800001, 0x29c00229, 0x00ad0ac0, 0x00000000 },
-   { 0x00800001, 0x29e00229, 0x00ad0ae0, 0x00000000 },
-   { 0x00800001, 0x2a000229, 0x00ad0b00, 0x00000000 },
-   { 0x00800001, 0x2a200229, 0x00ad0b20, 0x00000000 },
-   { 0x00800001, 0x2a400229, 0x00ad0b60, 0x00000000 },
-   { 0x00800001, 0x2a600229, 0x00ad0b80, 0x00000000 },
-   { 0x00800001, 0x2a800229, 0x00ad0ba0, 0x00000000 },
-   { 0x00800001, 0x2aa00229, 0x00ad0bc0, 0x00000000 },
-   { 0x00600001, 0x28900129, 0x008d09c0, 0x00000000 },
-   { 0x00600001, 0x28b00129, 0x008d09e0, 0x00000000 },
-   { 0x00600001, 0x28d00129, 0x008d0a00, 0x00000000 },
-   { 0x00600001, 0x28f00129, 0x008d0a20, 0x00000000 },
-   { 0x00600001, 0x29100129, 0x008d0a40, 0x00000000 },
-   { 0x00600001, 0x29300129, 0x008d0a60, 0x00000000 },
-   { 0x00600001, 0x29500129, 0x008d0a80, 0x00000000 },
-   { 0x00600001, 0x29700129, 0x008d0aa0, 0x00000000 },
-   { 0x00600001, 0x20200021, 0x008d0e80, 0x00000000 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0007001f },
-   { 0x00000001, 0x20280061, 0x00000000, 0x0007000f },
-   { 0x0020000c, 0x2e6e3dad, 0x00450032, 0x00010001 },
-   { 0x00200040, 0x2e6034a5, 0x00450e80, 0x00450e6e },
+   { 0x00000001, 0x22000060, 0x00000000, 0x00000a56 },
+   { 0x00000001, 0x2fc80001, 0x00001400, 0x00000000 },
+   { 0x00000040, 0x34000c20, 0x002102a0, 0x00000030 },
+   { 0x00802001, 0x29500129, 0x008d0400, 0x00000000 },
+   { 0x00802001, 0x29900129, 0x008d0440, 0x00000000 },
+   { 0x00802001, 0x29d00129, 0x008d0480, 0x00000000 },
+   { 0x00802001, 0x2a100129, 0x008d04c0, 0x00000000 },
+   { 0x00200001, 0x23e00021, 0x00450a40, 0x00000000 },
+   { 0x0020000c, 0x23ee3dad, 0x00450a52, 0x00010001 },
+   { 0x00200040, 0x2e603421, 0x004503e0, 0x004503ee },
    { 0x00000005, 0x2e640c21, 0x00210e64, 0xfffffffe },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
-   { 0x02000005, 0x20002e3c, 0x0021003f, 0x00020002 },
-   { 0x00010040, 0x2e641ca5, 0x00210e64, 0x00000001 },
-   { 0x01000005, 0x20002d3c, 0x00210032, 0x00010001 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000045 },
-   { 0x01000005, 0x20002d3c, 0x00210034, 0x00010001 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x0000002f },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
-   { 0x00800031, 0x29c01d29, 0x008d0e60, 0x0411a007 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a001d29, 0x008d0e60, 0x0411a007 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a401d29, 0x008d0e60, 0x0411a007 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a801d29, 0x008d0e60, 0x0411a007 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0007001f },
-   { 0x00800031, 0x2ac01d29, 0x008d0e60, 0x0418a007 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
-   { 0x00800031, 0x2bc01d29, 0x008d0e60, 0x0411a007 },
-   { 0x00800040, 0x2c004629, 0x00b109c0, 0x00b10a00 },
-   { 0x00800040, 0x2c204629, 0x00b10a00, 0x00b10a40 },
-   { 0x00800040, 0x2c404629, 0x00b10a40, 0x00b10a80 },
-   { 0x00800040, 0x2c604629, 0x00b10a80, 0x00b10ac0 },
-   { 0x00800040, 0x2c804629, 0x00b10ac0, 0x00b10b00 },
-   { 0x00800040, 0x2ca04629, 0x00b10b00, 0x00b10b40 },
-   { 0x00800040, 0x2cc04629, 0x00b10b40, 0x00b10b80 },
-   { 0x00800040, 0x2ce04629, 0x00b10b80, 0x00b10bc0 },
-   { 0x00800040, 0x2c004529, 0x00b10c00, 0x00b109c1 },
-   { 0x00800040, 0x2c204529, 0x00b10c20, 0x00b10a01 },
-   { 0x00800040, 0x2c404529, 0x00b10c40, 0x00b10a41 },
-   { 0x00800040, 0x2c604529, 0x00b10c60, 0x00b10a81 },
-   { 0x00800040, 0x2c804529, 0x00b10c80, 0x00b10ac1 },
-   { 0x00800040, 0x2ca04529, 0x00b10ca0, 0x00b10b01 },
-   { 0x00800040, 0x2cc04529, 0x00b10cc0, 0x00b10b41 },
-   { 0x00800040, 0x2ce04529, 0x00b10ce0, 0x00b10b81 },
-   { 0x00800040, 0x2c004529, 0x00b10c00, 0x00b10a01 },
-   { 0x00800040, 0x2c204529, 0x00b10c20, 0x00b10a41 },
-   { 0x00800040, 0x2c404529, 0x00b10c40, 0x00b10a81 },
-   { 0x00800040, 0x2c604529, 0x00b10c60, 0x00b10ac1 },
-   { 0x00800040, 0x2c804529, 0x00b10c80, 0x00b10b01 },
-   { 0x00800040, 0x2ca04529, 0x00b10ca0, 0x00b10b41 },
-   { 0x00800040, 0x2cc04529, 0x00b10cc0, 0x00b10b81 },
-   { 0x00800040, 0x2ce04529, 0x00b10ce0, 0x00b10bc1 },
-   { 0x00800008, 0x2c002d29, 0x00b10c00, 0x00020002 },
-   { 0x00800008, 0x2c202d29, 0x00b10c20, 0x00020002 },
-   { 0x00800008, 0x2c402d29, 0x00b10c40, 0x00020002 },
-   { 0x00800008, 0x2c602d29, 0x00b10c60, 0x00020002 },
-   { 0x00800008, 0x2c802d29, 0x00b10c80, 0x00020002 },
-   { 0x00800008, 0x2ca02d29, 0x00b10ca0, 0x00020002 },
-   { 0x00800008, 0x2cc02d29, 0x00b10cc0, 0x00020002 },
-   { 0x00800008, 0x2ce02d29, 0x00b10ce0, 0x00020002 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000040 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
-   { 0x00800031, 0x29c01d29, 0x008d0e60, 0x0411a007 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a001d29, 0x008d0e60, 0x0411a007 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a401d29, 0x008d0e60, 0x0411a007 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a801d29, 0x008d0e60, 0x0411a007 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0007001f },
-   { 0x00800031, 0x2ac01d29, 0x008d0e60, 0x0418a007 },
-   { 0x80800042, 0x2c004629, 0x00b109c0, 0x00b109c1 },
-   { 0x80800042, 0x2c204629, 0x00b10a00, 0x00b10a01 },
-   { 0x80800042, 0x2c404629, 0x00b10a40, 0x00b10a41 },
-   { 0x80800042, 0x2c604629, 0x00b10a80, 0x00b10a81 },
-   { 0x80800042, 0x2c804629, 0x00b10ac0, 0x00b10ac1 },
-   { 0x80800042, 0x2ca04629, 0x00b10b00, 0x00b10b01 },
-   { 0x80800042, 0x2cc04629, 0x00b10b40, 0x00b10b41 },
-   { 0x80800042, 0x2ce04629, 0x00b10b80, 0x00b10b81 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x0000002c },
-   { 0x01000005, 0x20002d3c, 0x00210034, 0x00010001 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000017 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
-   { 0x00800031, 0x29c01d29, 0x008d0e60, 0x0411a007 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a001d29, 0x008d0e60, 0x0411a007 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a401d29, 0x008d0e60, 0x0411a007 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a801d29, 0x008d0e60, 0x0411a007 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0007001f },
-   { 0x00800031, 0x2ac01d29, 0x008d0e60, 0x0418a007 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
-   { 0x00800031, 0x2bc01d29, 0x008d0e60, 0x0411a007 },
-   { 0x80800042, 0x2c004629, 0x00b109c0, 0x00b10a00 },
-   { 0x80800042, 0x2c204629, 0x00b10a00, 0x00b10a40 },
-   { 0x80800042, 0x2c404629, 0x00b10a40, 0x00b10a80 },
-   { 0x80800042, 0x2c604629, 0x00b10a80, 0x00b10ac0 },
-   { 0x80800042, 0x2c804629, 0x00b10ac0, 0x00b10b00 },
-   { 0x80800042, 0x2ca04629, 0x00b10b00, 0x00b10b40 },
-   { 0x80800042, 0x2cc04629, 0x00b10b40, 0x00b10b80 },
-   { 0x80800042, 0x2ce04629, 0x00b10b80, 0x00b10bc0 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000013 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
-   { 0x00800031, 0x29c01d29, 0x008d0e60, 0x0411a007 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a001d29, 0x008d0e60, 0x0411a007 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a401d29, 0x008d0e60, 0x0411a007 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a801d29, 0x008d0e60, 0x0411a007 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0007001f },
-   { 0x00800031, 0x2ac01d29, 0x008d0e60, 0x0418a007 },
-   { 0x00800001, 0x2c000229, 0x00b109c0, 0x00000000 },
-   { 0x00800001, 0x2c200229, 0x00b10a00, 0x00000000 },
-   { 0x00800001, 0x2c400229, 0x00b10a40, 0x00000000 },
-   { 0x00800001, 0x2c600229, 0x00b10a80, 0x00000000 },
-   { 0x00800001, 0x2c800229, 0x00b10ac0, 0x00000000 },
-   { 0x00800001, 0x2ca00229, 0x00b10b00, 0x00000000 },
-   { 0x00800001, 0x2cc00229, 0x00b10b40, 0x00000000 },
-   { 0x00800001, 0x2ce00229, 0x00b10b80, 0x00000000 },
-   { 0x00600001, 0x23800021, 0x008d0c00, 0x00000000 },
-   { 0x00600001, 0x23c00021, 0x008d0c20, 0x00000000 },
-   { 0x00600001, 0x24000021, 0x008d0c40, 0x00000000 },
-   { 0x00600001, 0x24400021, 0x008d0c60, 0x00000000 },
-   { 0x00600001, 0x24800021, 0x008d0c80, 0x00000000 },
-   { 0x00600001, 0x24c00021, 0x008d0ca0, 0x00000000 },
-   { 0x00600001, 0x25000021, 0x008d0cc0, 0x00000000 },
-   { 0x00600001, 0x25400021, 0x008d0ce0, 0x00000000 },
-   { 0x0020000c, 0x2e6e3dad, 0x0045003a, 0x00010001 },
-   { 0x00200040, 0x2e6034a5, 0x00450e80, 0x00450e6e },
+   { 0x02000005, 0x20002e3c, 0x00210a5f, 0x00020002 },
+   { 0x00010040, 0x2e640c21, 0x00210e64, 0x00000001 },
+   { 0x00000001, 0x2e700169, 0x00000000, 0x00010001 },
+   { 0x00000001, 0x22000060, 0x00000000, 0x00000a52 },
+   { 0x00000001, 0x2fc80001, 0x00001400, 0x00000000 },
+   { 0x00000040, 0x34000c20, 0x002102a0, 0x00000020 },
+   { 0x00800042, 0x27402529, 0x00b10740, 0x00b10400 },
+   { 0x00800042, 0x27802529, 0x00b10780, 0x00b10420 },
+   { 0x00800042, 0x27c02529, 0x00b107c0, 0x00b10440 },
+   { 0x00800042, 0x28002529, 0x00b10800, 0x00b10460 },
+   { 0x00800042, 0x28402529, 0x00b10840, 0x00b10480 },
+   { 0x00800042, 0x28802529, 0x00b10880, 0x00b104a0 },
+   { 0x00800042, 0x28c02529, 0x00b108c0, 0x00b104c0 },
+   { 0x00800042, 0x29002529, 0x00b10900, 0x00b104e0 },
+   { 0x0020000c, 0x23ee3dad, 0x00450a5a, 0x00010001 },
+   { 0x00200040, 0x2e603421, 0x004503e0, 0x004503ee },
    { 0x00000005, 0x2e640c21, 0x00210e64, 0xfffffffe },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
-   { 0x02000005, 0x20000c3c, 0x00210054, 0x00000008 },
-   { 0x00010040, 0x2e641ca5, 0x00210e64, 0x00000001 },
-   { 0x01000005, 0x20002d3c, 0x0021003a, 0x00010001 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000045 },
-   { 0x01000005, 0x20002d3c, 0x0021003c, 0x00010001 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x0000002f },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
-   { 0x00800031, 0x29c01d29, 0x008d0e60, 0x0411a007 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a001d29, 0x008d0e60, 0x0411a007 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a401d29, 0x008d0e60, 0x0411a007 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a801d29, 0x008d0e60, 0x0411a007 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0007001f },
-   { 0x00800031, 0x2ac01d29, 0x008d0e60, 0x0418a007 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
-   { 0x00800031, 0x2bc01d29, 0x008d0e60, 0x0411a007 },
-   { 0x00800040, 0x2c004629, 0x00b109c0, 0x00b10a00 },
-   { 0x00800040, 0x2c204629, 0x00b10a00, 0x00b10a40 },
-   { 0x00800040, 0x2c404629, 0x00b10a40, 0x00b10a80 },
-   { 0x00800040, 0x2c604629, 0x00b10a80, 0x00b10ac0 },
-   { 0x00800040, 0x2c804629, 0x00b10ac0, 0x00b10b00 },
-   { 0x00800040, 0x2ca04629, 0x00b10b00, 0x00b10b40 },
-   { 0x00800040, 0x2cc04629, 0x00b10b40, 0x00b10b80 },
-   { 0x00800040, 0x2ce04629, 0x00b10b80, 0x00b10bc0 },
-   { 0x00800040, 0x2c004529, 0x00b10c00, 0x00b109c1 },
-   { 0x00800040, 0x2c204529, 0x00b10c20, 0x00b10a01 },
-   { 0x00800040, 0x2c404529, 0x00b10c40, 0x00b10a41 },
-   { 0x00800040, 0x2c604529, 0x00b10c60, 0x00b10a81 },
-   { 0x00800040, 0x2c804529, 0x00b10c80, 0x00b10ac1 },
-   { 0x00800040, 0x2ca04529, 0x00b10ca0, 0x00b10b01 },
-   { 0x00800040, 0x2cc04529, 0x00b10cc0, 0x00b10b41 },
-   { 0x00800040, 0x2ce04529, 0x00b10ce0, 0x00b10b81 },
-   { 0x00800040, 0x2c004529, 0x00b10c00, 0x00b10a01 },
-   { 0x00800040, 0x2c204529, 0x00b10c20, 0x00b10a41 },
-   { 0x00800040, 0x2c404529, 0x00b10c40, 0x00b10a81 },
-   { 0x00800040, 0x2c604529, 0x00b10c60, 0x00b10ac1 },
-   { 0x00800040, 0x2c804529, 0x00b10c80, 0x00b10b01 },
-   { 0x00800040, 0x2ca04529, 0x00b10ca0, 0x00b10b41 },
-   { 0x00800040, 0x2cc04529, 0x00b10cc0, 0x00b10b81 },
-   { 0x00800040, 0x2ce04529, 0x00b10ce0, 0x00b10bc1 },
-   { 0x00800008, 0x2c002d29, 0x00b10c00, 0x00020002 },
-   { 0x00800008, 0x2c202d29, 0x00b10c20, 0x00020002 },
-   { 0x00800008, 0x2c402d29, 0x00b10c40, 0x00020002 },
-   { 0x00800008, 0x2c602d29, 0x00b10c60, 0x00020002 },
-   { 0x00800008, 0x2c802d29, 0x00b10c80, 0x00020002 },
-   { 0x00800008, 0x2ca02d29, 0x00b10ca0, 0x00020002 },
-   { 0x00800008, 0x2cc02d29, 0x00b10cc0, 0x00020002 },
-   { 0x00800008, 0x2ce02d29, 0x00b10ce0, 0x00020002 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000040 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
-   { 0x00800031, 0x29c01d29, 0x008d0e60, 0x0411a007 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a001d29, 0x008d0e60, 0x0411a007 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a401d29, 0x008d0e60, 0x0411a007 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a801d29, 0x008d0e60, 0x0411a007 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0007001f },
-   { 0x00800031, 0x2ac01d29, 0x008d0e60, 0x0418a007 },
-   { 0x80800042, 0x2c004629, 0x00b109c0, 0x00b109c1 },
-   { 0x80800042, 0x2c204629, 0x00b10a00, 0x00b10a01 },
-   { 0x80800042, 0x2c404629, 0x00b10a40, 0x00b10a41 },
-   { 0x80800042, 0x2c604629, 0x00b10a80, 0x00b10a81 },
-   { 0x80800042, 0x2c804629, 0x00b10ac0, 0x00b10ac1 },
-   { 0x80800042, 0x2ca04629, 0x00b10b00, 0x00b10b01 },
-   { 0x80800042, 0x2cc04629, 0x00b10b40, 0x00b10b41 },
-   { 0x80800042, 0x2ce04629, 0x00b10b80, 0x00b10b81 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x0000002c },
-   { 0x01000005, 0x20002d3c, 0x0021003c, 0x00010001 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000017 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
-   { 0x00800031, 0x29c01d29, 0x008d0e60, 0x0411a007 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a001d29, 0x008d0e60, 0x0411a007 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a401d29, 0x008d0e60, 0x0411a007 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a801d29, 0x008d0e60, 0x0411a007 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0007001f },
-   { 0x00800031, 0x2ac01d29, 0x008d0e60, 0x0418a007 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
-   { 0x00800031, 0x2bc01d29, 0x008d0e60, 0x0411a007 },
-   { 0x80800042, 0x2c004629, 0x00b109c0, 0x00b10a00 },
-   { 0x80800042, 0x2c204629, 0x00b10a00, 0x00b10a40 },
-   { 0x80800042, 0x2c404629, 0x00b10a40, 0x00b10a80 },
-   { 0x80800042, 0x2c604629, 0x00b10a80, 0x00b10ac0 },
-   { 0x80800042, 0x2c804629, 0x00b10ac0, 0x00b10b00 },
-   { 0x80800042, 0x2ca04629, 0x00b10b00, 0x00b10b40 },
-   { 0x80800042, 0x2cc04629, 0x00b10b40, 0x00b10b80 },
-   { 0x80800042, 0x2ce04629, 0x00b10b80, 0x00b10bc0 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000013 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
-   { 0x00800031, 0x29c01d29, 0x008d0e60, 0x0411a007 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a001d29, 0x008d0e60, 0x0411a007 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a401d29, 0x008d0e60, 0x0411a007 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a801d29, 0x008d0e60, 0x0411a007 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0007001f },
-   { 0x00800031, 0x2ac01d29, 0x008d0e60, 0x0418a007 },
-   { 0x00800001, 0x2c000229, 0x00b109c0, 0x00000000 },
-   { 0x00800001, 0x2c200229, 0x00b10a00, 0x00000000 },
-   { 0x00800001, 0x2c400229, 0x00b10a40, 0x00000000 },
-   { 0x00800001, 0x2c600229, 0x00b10a80, 0x00000000 },
-   { 0x00800001, 0x2c800229, 0x00b10ac0, 0x00000000 },
-   { 0x00800001, 0x2ca00229, 0x00b10b00, 0x00000000 },
-   { 0x00800001, 0x2cc00229, 0x00b10b40, 0x00000000 },
-   { 0x00800001, 0x2ce00229, 0x00b10b80, 0x00000000 },
-   { 0x80800042, 0x23802529, 0x00b10680, 0x00b10380 },
-   { 0x80800042, 0x23a02529, 0x00b106a0, 0x00b10c00 },
-   { 0x80800042, 0x23c02529, 0x00b106c0, 0x00b103c0 },
-   { 0x80800042, 0x23e02529, 0x00b106e0, 0x00b10c20 },
-   { 0x80800042, 0x24002529, 0x00b10700, 0x00b10400 },
-   { 0x80800042, 0x24202529, 0x00b10720, 0x00b10c40 },
-   { 0x80800042, 0x24402529, 0x00b10740, 0x00b10440 },
-   { 0x80800042, 0x24602529, 0x00b10760, 0x00b10c60 },
-   { 0x80800042, 0x24802529, 0x00b10780, 0x00b10480 },
-   { 0x80800042, 0x24a02529, 0x00b107a0, 0x00b10c80 },
-   { 0x80800042, 0x24c02529, 0x00b107c0, 0x00b104c0 },
-   { 0x80800042, 0x24e02529, 0x00b107e0, 0x00b10ca0 },
-   { 0x80800042, 0x25002529, 0x00b10800, 0x00b10500 },
-   { 0x80800042, 0x25202529, 0x00b10820, 0x00b10cc0 },
-   { 0x80800042, 0x25402529, 0x00b10840, 0x00b10540 },
-   { 0x80800042, 0x25602529, 0x00b10860, 0x00b10ce0 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0007000f },
-   { 0x0020000c, 0x2e6e3dad, 0x00450032, 0x00020002 },
-   { 0x0020000c, 0x2e601ca5, 0x00450e80, 0x00000001 },
-   { 0x00200040, 0x2e6034a5, 0x00450e60, 0x00450e6e },
+   { 0x02000005, 0x20002e3c, 0x00210a5f, 0x00080008 },
+   { 0x00010040, 0x2e640c21, 0x00210e64, 0x00000001 },
+   { 0x00000001, 0x22000060, 0x00000000, 0x00000a5a },
+   { 0x00000001, 0x2fc80001, 0x00001400, 0x00000000 },
+   { 0x00000040, 0x34000c20, 0x002102a0, 0x00000020 },
+   { 0x00800042, 0x27602529, 0x00b10760, 0x00b10400 },
+   { 0x00800042, 0x27a02529, 0x00b107a0, 0x00b10420 },
+   { 0x00800042, 0x27e02529, 0x00b107e0, 0x00b10440 },
+   { 0x00800042, 0x28202529, 0x00b10820, 0x00b10460 },
+   { 0x00800042, 0x28602529, 0x00b10860, 0x00b10480 },
+   { 0x00800042, 0x28a02529, 0x00b108a0, 0x00b104a0 },
+   { 0x00800042, 0x28e02529, 0x00b108e0, 0x00b104c0 },
+   { 0x00800042, 0x29202529, 0x00b10920, 0x00b104e0 },
+   { 0x00200008, 0x23e00c21, 0x004503e0, 0x00000001 },
+   { 0x0020000c, 0x23ee3dad, 0x00450a52, 0x00020002 },
+   { 0x00200040, 0x2e603421, 0x004503e0, 0x004503ee },
    { 0x00000005, 0x2e640c21, 0x00210e64, 0xfffffffe },
-   { 0x02000005, 0x20002e3c, 0x0021003f, 0x00020002 },
+   { 0x02000005, 0x20002e3c, 0x00210a5f, 0x00020002 },
    { 0x00010040, 0x2e640c21, 0x00210e64, 0x00000001 },
-   { 0x01000005, 0x20002d3c, 0x00210032, 0x00020002 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000036 },
-   { 0x01000005, 0x20002d3c, 0x00210034, 0x00020002 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000028 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0007000f },
-   { 0x00800031, 0x2ac01d29, 0x00ad0e60, 0x0414a008 },
-   { 0x00800031, 0x2b601d29, 0x00ad0e60, 0x0414a009 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0001000f },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 },
-   { 0x00800031, 0x2b401d29, 0x00ad0e60, 0x0411a008 },
-   { 0x00800031, 0x2be01d29, 0x00ad0e60, 0x0411a009 },
-   { 0x00800040, 0x29c04629, 0x00ad0ac0, 0x00ad0ae0 },
-   { 0x00800040, 0x29e04629, 0x00ad0ae0, 0x00ad0b00 },
-   { 0x00800040, 0x2a004629, 0x00ad0b00, 0x00ad0b20 },
-   { 0x00800040, 0x2a204629, 0x00ad0b20, 0x00ad0b40 },
-   { 0x00800040, 0x29c04529, 0x00ad09c0, 0x00ad0ac1 },
-   { 0x00800040, 0x29e04529, 0x00ad09e0, 0x00ad0ae1 },
-   { 0x00800040, 0x2a004529, 0x00ad0a00, 0x00ad0b01 },
-   { 0x00800040, 0x2a204529, 0x00ad0a20, 0x00ad0b21 },
-   { 0x00800040, 0x29c04529, 0x00ad09c0, 0x00ad0ae1 },
-   { 0x00800040, 0x29e04529, 0x00ad09e0, 0x00ad0b01 },
-   { 0x00800040, 0x2a004529, 0x00ad0a00, 0x00ad0b21 },
-   { 0x00800040, 0x2a204529, 0x00ad0a20, 0x00ad0b41 },
-   { 0x00800040, 0x2a404629, 0x00ad0b60, 0x00ad0b80 },
-   { 0x00800040, 0x2a604629, 0x00ad0b80, 0x00ad0ba0 },
-   { 0x00800040, 0x2a804629, 0x00ad0ba0, 0x00ad0bc0 },
-   { 0x00800040, 0x2aa04629, 0x00ad0bc0, 0x00ad0be0 },
-   { 0x00800040, 0x2a404529, 0x00ad0a40, 0x00ad0b61 },
-   { 0x00800040, 0x2a604529, 0x00ad0a60, 0x00ad0b81 },
-   { 0x00800040, 0x2a804529, 0x00ad0a80, 0x00ad0ba1 },
-   { 0x00800040, 0x2aa04529, 0x00ad0aa0, 0x00ad0bc1 },
-   { 0x00800040, 0x2a404529, 0x00ad0a40, 0x00ad0b81 },
-   { 0x00800040, 0x2a604529, 0x00ad0a60, 0x00ad0ba1 },
-   { 0x00800040, 0x2a804529, 0x00ad0a80, 0x00ad0bc1 },
-   { 0x00800040, 0x2aa04529, 0x00ad0aa0, 0x00ad0be1 },
-   { 0x80800008, 0x29c02d29, 0x00b109c0, 0x00020002 },
-   { 0x80800008, 0x29e02d29, 0x00b109e0, 0x00020002 },
-   { 0x80800008, 0x2a002d29, 0x00b10a00, 0x00020002 },
-   { 0x80800008, 0x2a202d29, 0x00b10a20, 0x00020002 },
-   { 0x80800008, 0x2a402d29, 0x00b10a40, 0x00020002 },
-   { 0x80800008, 0x2a602d29, 0x00b10a60, 0x00020002 },
-   { 0x80800008, 0x2a802d29, 0x00b10a80, 0x00020002 },
-   { 0x80800008, 0x2aa02d29, 0x00b10aa0, 0x00020002 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000028 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0007000f },
-   { 0x00800031, 0x2ac01d29, 0x00ad0e60, 0x0414a008 },
-   { 0x00800031, 0x2b601d29, 0x00ad0e60, 0x0414a009 },
-   { 0x80800042, 0x29c04629, 0x00ad0ac0, 0x00ad0ac1 },
-   { 0x80800042, 0x29e04629, 0x00ad0ae0, 0x00ad0ae1 },
-   { 0x80800042, 0x2a004629, 0x00ad0b00, 0x00ad0b01 },
-   { 0x80800042, 0x2a204629, 0x00ad0b20, 0x00ad0b21 },
-   { 0x80800042, 0x2a404629, 0x00ad0b60, 0x00ad0b61 },
-   { 0x80800042, 0x2a604629, 0x00ad0b80, 0x00ad0b81 },
-   { 0x80800042, 0x2a804629, 0x00ad0ba0, 0x00ad0ba1 },
-   { 0x80800042, 0x2aa04629, 0x00ad0bc0, 0x00ad0bc1 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x0000001c },
-   { 0x01000005, 0x20002d3c, 0x00210034, 0x00020002 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x0000000f },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0007000f },
-   { 0x00800031, 0x2ac01d29, 0x00ad0e60, 0x0414a008 },
-   { 0x00800031, 0x2b601d29, 0x00ad0e60, 0x0414a009 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0000000f },
-   { 0x00800031, 0x2b401d29, 0x00ad0e60, 0x0411a008 },
-   { 0x00800031, 0x2be01d29, 0x00ad0e60, 0x0411a009 },
-   { 0x80800042, 0x29c04629, 0x00ad0ac0, 0x00ad0ae0 },
-   { 0x80800042, 0x29e04629, 0x00ad0ae0, 0x00ad0b00 },
-   { 0x80800042, 0x2a004629, 0x00ad0b00, 0x00ad0b20 },
-   { 0x80800042, 0x2a204629, 0x00ad0b20, 0x00ad0b40 },
-   { 0x80800042, 0x2a404629, 0x00ad0b60, 0x00ad0b80 },
-   { 0x80800042, 0x2a604629, 0x00ad0b80, 0x00ad0ba0 },
-   { 0x80800042, 0x2a804629, 0x00ad0ba0, 0x00ad0bc0 },
-   { 0x80800042, 0x2aa04629, 0x00ad0bc0, 0x00ad0be0 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x0000000b },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0007000f },
-   { 0x00800031, 0x2ac01d29, 0x00ad0e60, 0x0414a008 },
-   { 0x00800031, 0x2b601d29, 0x00ad0e60, 0x0414a009 },
-   { 0x00800001, 0x29c00229, 0x00ad0ac0, 0x00000000 },
-   { 0x00800001, 0x29e00229, 0x00ad0ae0, 0x00000000 },
-   { 0x00800001, 0x2a000229, 0x00ad0b00, 0x00000000 },
-   { 0x00800001, 0x2a200229, 0x00ad0b20, 0x00000000 },
-   { 0x00800001, 0x2a400229, 0x00ad0b60, 0x00000000 },
-   { 0x00800001, 0x2a600229, 0x00ad0b80, 0x00000000 },
-   { 0x00800001, 0x2a800229, 0x00ad0ba0, 0x00000000 },
-   { 0x00800001, 0x2aa00229, 0x00ad0bc0, 0x00000000 },
-   { 0x00600001, 0x25800129, 0x008d09c0, 0x00000000 },
-   { 0x00600001, 0x25a00129, 0x008d09e0, 0x00000000 },
-   { 0x00600001, 0x25c00129, 0x008d0a00, 0x00000000 },
-   { 0x00600001, 0x25e00129, 0x008d0a20, 0x00000000 },
-   { 0x00600001, 0x26000129, 0x008d0a40, 0x00000000 },
-   { 0x00600001, 0x26200129, 0x008d0a60, 0x00000000 },
-   { 0x00600001, 0x26400129, 0x008d0a80, 0x00000000 },
-   { 0x00600001, 0x26600129, 0x008d0aa0, 0x00000000 },
-   { 0x0020000c, 0x2e6e3dad, 0x0045003a, 0x00020002 },
-   { 0x0020000c, 0x2e601ca5, 0x00450e80, 0x00000001 },
-   { 0x00200040, 0x2e6034a5, 0x00450e60, 0x00450e6e },
+   { 0x00000001, 0x22000060, 0x00000000, 0x00000a52 },
+   { 0x00000001, 0x2fc80001, 0x00001400, 0x00000000 },
+   { 0x00000040, 0x34000c20, 0x002102a0, 0x00000030 },
+   { 0x00802042, 0x29402529, 0x008d0940, 0x008d0400 },
+   { 0x00802042, 0x29802529, 0x008d0980, 0x008d0440 },
+   { 0x00802042, 0x29c02529, 0x008d09c0, 0x008d0480 },
+   { 0x00802042, 0x2a002529, 0x008d0a00, 0x008d04c0 },
+   { 0x0020000c, 0x23ee3dad, 0x00450a5a, 0x00020002 },
+   { 0x00200040, 0x2e603421, 0x004503e0, 0x004503ee },
    { 0x00000005, 0x2e640c21, 0x00210e64, 0xfffffffe },
-   { 0x02000005, 0x20002e3c, 0x0021003f, 0x00080008 },
+   { 0x02000005, 0x20002e3c, 0x00210a5f, 0x00080008 },
    { 0x00010040, 0x2e640c21, 0x00210e64, 0x00000001 },
-   { 0x01000005, 0x20002d3c, 0x0021003a, 0x00020002 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000036 },
-   { 0x01000005, 0x20002d3c, 0x0021003c, 0x00020002 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000028 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0007000f },
-   { 0x00800031, 0x2ac01d29, 0x00ad0e60, 0x0414a008 },
-   { 0x00800031, 0x2b601d29, 0x00ad0e60, 0x0414a009 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0001000f },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 },
-   { 0x00800031, 0x2b401d29, 0x00ad0e60, 0x0411a008 },
-   { 0x00800031, 0x2be01d29, 0x00ad0e60, 0x0411a009 },
-   { 0x00800040, 0x29c04629, 0x00ad0ac0, 0x00ad0ae0 },
-   { 0x00800040, 0x29e04629, 0x00ad0ae0, 0x00ad0b00 },
-   { 0x00800040, 0x2a004629, 0x00ad0b00, 0x00ad0b20 },
-   { 0x00800040, 0x2a204629, 0x00ad0b20, 0x00ad0b40 },
-   { 0x00800040, 0x29c04529, 0x00ad09c0, 0x00ad0ac1 },
-   { 0x00800040, 0x29e04529, 0x00ad09e0, 0x00ad0ae1 },
-   { 0x00800040, 0x2a004529, 0x00ad0a00, 0x00ad0b01 },
-   { 0x00800040, 0x2a204529, 0x00ad0a20, 0x00ad0b21 },
-   { 0x00800040, 0x29c04529, 0x00ad09c0, 0x00ad0ae1 },
-   { 0x00800040, 0x29e04529, 0x00ad09e0, 0x00ad0b01 },
-   { 0x00800040, 0x2a004529, 0x00ad0a00, 0x00ad0b21 },
-   { 0x00800040, 0x2a204529, 0x00ad0a20, 0x00ad0b41 },
-   { 0x00800040, 0x2a404629, 0x00ad0b60, 0x00ad0b80 },
-   { 0x00800040, 0x2a604629, 0x00ad0b80, 0x00ad0ba0 },
-   { 0x00800040, 0x2a804629, 0x00ad0ba0, 0x00ad0bc0 },
-   { 0x00800040, 0x2aa04629, 0x00ad0bc0, 0x00ad0be0 },
-   { 0x00800040, 0x2a404529, 0x00ad0a40, 0x00ad0b61 },
-   { 0x00800040, 0x2a604529, 0x00ad0a60, 0x00ad0b81 },
-   { 0x00800040, 0x2a804529, 0x00ad0a80, 0x00ad0ba1 },
-   { 0x00800040, 0x2aa04529, 0x00ad0aa0, 0x00ad0bc1 },
-   { 0x00800040, 0x2a404529, 0x00ad0a40, 0x00ad0b81 },
-   { 0x00800040, 0x2a604529, 0x00ad0a60, 0x00ad0ba1 },
-   { 0x00800040, 0x2a804529, 0x00ad0a80, 0x00ad0bc1 },
-   { 0x00800040, 0x2aa04529, 0x00ad0aa0, 0x00ad0be1 },
-   { 0x80800008, 0x29c02d29, 0x00b109c0, 0x00020002 },
-   { 0x80800008, 0x29e02d29, 0x00b109e0, 0x00020002 },
-   { 0x80800008, 0x2a002d29, 0x00b10a00, 0x00020002 },
-   { 0x80800008, 0x2a202d29, 0x00b10a20, 0x00020002 },
-   { 0x80800008, 0x2a402d29, 0x00b10a40, 0x00020002 },
-   { 0x80800008, 0x2a602d29, 0x00b10a60, 0x00020002 },
-   { 0x80800008, 0x2a802d29, 0x00b10a80, 0x00020002 },
-   { 0x80800008, 0x2aa02d29, 0x00b10aa0, 0x00020002 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000028 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0007000f },
-   { 0x00800031, 0x2ac01d29, 0x00ad0e60, 0x0414a008 },
-   { 0x00800031, 0x2b601d29, 0x00ad0e60, 0x0414a009 },
-   { 0x80800042, 0x29c04629, 0x00ad0ac0, 0x00ad0ac1 },
-   { 0x80800042, 0x29e04629, 0x00ad0ae0, 0x00ad0ae1 },
-   { 0x80800042, 0x2a004629, 0x00ad0b00, 0x00ad0b01 },
-   { 0x80800042, 0x2a204629, 0x00ad0b20, 0x00ad0b21 },
-   { 0x80800042, 0x2a404629, 0x00ad0b60, 0x00ad0b61 },
-   { 0x80800042, 0x2a604629, 0x00ad0b80, 0x00ad0b81 },
-   { 0x80800042, 0x2a804629, 0x00ad0ba0, 0x00ad0ba1 },
-   { 0x80800042, 0x2aa04629, 0x00ad0bc0, 0x00ad0bc1 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x0000001c },
-   { 0x01000005, 0x20002d3c, 0x0021003c, 0x00020002 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x0000000f },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0007000f },
-   { 0x00800031, 0x2ac01d29, 0x00ad0e60, 0x0414a008 },
-   { 0x00800031, 0x2b601d29, 0x00ad0e60, 0x0414a009 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0000000f },
-   { 0x00800031, 0x2b401d29, 0x00ad0e60, 0x0411a008 },
-   { 0x00800031, 0x2be01d29, 0x00ad0e60, 0x0411a009 },
-   { 0x80800042, 0x29c04629, 0x00ad0ac0, 0x00ad0ae0 },
-   { 0x80800042, 0x29e04629, 0x00ad0ae0, 0x00ad0b00 },
-   { 0x80800042, 0x2a004629, 0x00ad0b00, 0x00ad0b20 },
-   { 0x80800042, 0x2a204629, 0x00ad0b20, 0x00ad0b40 },
-   { 0x80800042, 0x2a404629, 0x00ad0b60, 0x00ad0b80 },
-   { 0x80800042, 0x2a604629, 0x00ad0b80, 0x00ad0ba0 },
-   { 0x80800042, 0x2a804629, 0x00ad0ba0, 0x00ad0bc0 },
-   { 0x80800042, 0x2aa04629, 0x00ad0bc0, 0x00ad0be0 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x0000000b },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0007000f },
-   { 0x00800031, 0x2ac01d29, 0x00ad0e60, 0x0414a008 },
-   { 0x00800031, 0x2b601d29, 0x00ad0e60, 0x0414a009 },
-   { 0x00800001, 0x29c00229, 0x00ad0ac0, 0x00000000 },
-   { 0x00800001, 0x29e00229, 0x00ad0ae0, 0x00000000 },
-   { 0x00800001, 0x2a000229, 0x00ad0b00, 0x00000000 },
-   { 0x00800001, 0x2a200229, 0x00ad0b20, 0x00000000 },
-   { 0x00800001, 0x2a400229, 0x00ad0b60, 0x00000000 },
-   { 0x00800001, 0x2a600229, 0x00ad0b80, 0x00000000 },
-   { 0x00800001, 0x2a800229, 0x00ad0ba0, 0x00000000 },
-   { 0x00800001, 0x2aa00229, 0x00ad0bc0, 0x00000000 },
-   { 0x00600001, 0x25900129, 0x008d09c0, 0x00000000 },
-   { 0x00600001, 0x25b00129, 0x008d09e0, 0x00000000 },
-   { 0x00600001, 0x25d00129, 0x008d0a00, 0x00000000 },
-   { 0x00600001, 0x25f00129, 0x008d0a20, 0x00000000 },
-   { 0x00600001, 0x26100129, 0x008d0a40, 0x00000000 },
-   { 0x00600001, 0x26300129, 0x008d0a60, 0x00000000 },
-   { 0x00600001, 0x26500129, 0x008d0a80, 0x00000000 },
-   { 0x00600001, 0x26700129, 0x008d0aa0, 0x00000000 },
-   { 0x80800042, 0x25802529, 0x00b10880, 0x00b10580 },
-   { 0x80800042, 0x25a02529, 0x00b108a0, 0x00b105a0 },
-   { 0x80800042, 0x25c02529, 0x00b108c0, 0x00b105c0 },
-   { 0x80800042, 0x25e02529, 0x00b108e0, 0x00b105e0 },
-   { 0x80800042, 0x26002529, 0x00b10900, 0x00b10600 },
-   { 0x80800042, 0x26202529, 0x00b10920, 0x00b10620 },
-   { 0x80800042, 0x26402529, 0x00b10940, 0x00b10640 },
-   { 0x80800042, 0x26602529, 0x00b10960, 0x00b10660 },
-   { 0x00600001, 0x20200021, 0x008d0980, 0x00000000 },
-   { 0x00800001, 0x458101f1, 0x00000000, 0x00000000 },
-   { 0x00800001, 0x45a101f1, 0x00000000, 0x00000000 },
-   { 0x00800001, 0x45c101f1, 0x00000000, 0x00000000 },
-   { 0x00800001, 0x45e101f1, 0x00000000, 0x00000000 },
-   { 0x00800001, 0x460101f1, 0x00000000, 0x00000000 },
-   { 0x00800001, 0x462101f1, 0x00000000, 0x00000000 },
-   { 0x00800001, 0x464101f1, 0x00000000, 0x00000000 },
-   { 0x00800001, 0x466101f1, 0x00000000, 0x00000000 },
-   { 0x02000005, 0x20002e3c, 0x0021003e, 0x00010001 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000011 },
-   { 0x00800040, 0x238045ad, 0x00b10060, 0x00b20380 },
-   { 0x00800040, 0x23a045ad, 0x00b10080, 0x00b203a0 },
-   { 0x00800040, 0x23c045ad, 0x00b100a0, 0x00b203c0 },
-   { 0x00800040, 0x23e045ad, 0x00b100c0, 0x00b203e0 },
-   { 0x00800040, 0x240045ad, 0x00b100e0, 0x00b20400 },
-   { 0x00800040, 0x242045ad, 0x00b10100, 0x00b20420 },
-   { 0x00800040, 0x244045ad, 0x00b10120, 0x00b20440 },
-   { 0x00800040, 0x246045ad, 0x00b10140, 0x00b20460 },
-   { 0x00800040, 0x248045ad, 0x00b10160, 0x00b20480 },
-   { 0x00800040, 0x24a045ad, 0x00b10180, 0x00b204a0 },
-   { 0x00800040, 0x24c045ad, 0x00b101a0, 0x00b204c0 },
-   { 0x00800040, 0x24e045ad, 0x00b101c0, 0x00b204e0 },
-   { 0x00800040, 0x250045ad, 0x00b101e0, 0x00b20500 },
-   { 0x00800040, 0x252045ad, 0x00b10200, 0x00b20520 },
-   { 0x00800040, 0x254045ad, 0x00b10220, 0x00b20540 },
-   { 0x00800040, 0x256045ad, 0x00b10240, 0x00b20560 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000010 },
-   { 0x00800040, 0x238045ad, 0x00b10060, 0x00b20380 },
-   { 0x00800040, 0x23a045ad, 0x00b10160, 0x00b203a0 },
-   { 0x00800040, 0x23c045ad, 0x00b10080, 0x00b203c0 },
-   { 0x00800040, 0x23e045ad, 0x00b10180, 0x00b203e0 },
-   { 0x00800040, 0x240045ad, 0x00b100a0, 0x00b20400 },
-   { 0x00800040, 0x242045ad, 0x00b101a0, 0x00b20420 },
-   { 0x00800040, 0x244045ad, 0x00b100c0, 0x00b20440 },
-   { 0x00800040, 0x246045ad, 0x00b101c0, 0x00b20460 },
-   { 0x00800040, 0x248045ad, 0x00b100e0, 0x00b20480 },
-   { 0x00800040, 0x24a045ad, 0x00b101e0, 0x00b204a0 },
-   { 0x00800040, 0x24c045ad, 0x00b10100, 0x00b204c0 },
-   { 0x00800040, 0x24e045ad, 0x00b10200, 0x00b204e0 },
-   { 0x00800040, 0x250045ad, 0x00b10120, 0x00b20500 },
-   { 0x00800040, 0x252045ad, 0x00b10220, 0x00b20520 },
-   { 0x00800040, 0x254045ad, 0x00b10140, 0x00b20540 },
-   { 0x00800040, 0x256045ad, 0x00b10240, 0x00b20560 },
-   { 0x00000001, 0x20280061, 0x00000000, 0x000f000f },
-   { 0x80800001, 0x438001b1, 0x00b10380, 0x00000000 },
-   { 0x80800001, 0x43a001b1, 0x00b103a0, 0x00000000 },
-   { 0x80800001, 0x43c001b1, 0x00b103c0, 0x00000000 },
-   { 0x80800001, 0x43e001b1, 0x00b103e0, 0x00000000 },
-   { 0x80800001, 0x440001b1, 0x00b10400, 0x00000000 },
-   { 0x80800001, 0x442001b1, 0x00b10420, 0x00000000 },
-   { 0x80800001, 0x444001b1, 0x00b10440, 0x00000000 },
-   { 0x80800001, 0x446001b1, 0x00b10460, 0x00000000 },
-   { 0x80800001, 0x448001b1, 0x00b10480, 0x00000000 },
-   { 0x80800001, 0x44a001b1, 0x00b104a0, 0x00000000 },
-   { 0x80800001, 0x44c001b1, 0x00b104c0, 0x00000000 },
-   { 0x80800001, 0x44e001b1, 0x00b104e0, 0x00000000 },
-   { 0x80800001, 0x450001b1, 0x00b10500, 0x00000000 },
-   { 0x80800001, 0x452001b1, 0x00b10520, 0x00000000 },
-   { 0x80800001, 0x454001b1, 0x00b10540, 0x00000000 },
-   { 0x80800001, 0x456001b1, 0x00b10560, 0x00000000 },
-   { 0x00800001, 0x20200232, 0x00b20380, 0x00000000 },
-   { 0x00800001, 0x20300232, 0x00b203a0, 0x00000000 },
-   { 0x00800001, 0x20400232, 0x00b203c0, 0x00000000 },
-   { 0x00800001, 0x20500232, 0x00b203e0, 0x00000000 },
-   { 0x00800001, 0x20600232, 0x00b20400, 0x00000000 },
-   { 0x00800001, 0x20700232, 0x00b20420, 0x00000000 },
-   { 0x00800001, 0x20800232, 0x00b20440, 0x00000000 },
-   { 0x00800001, 0x20900232, 0x00b20460, 0x00000000 },
-   { 0x00800001, 0x20a00232, 0x00b20480, 0x00000000 },
-   { 0x00800001, 0x20b00232, 0x00b204a0, 0x00000000 },
-   { 0x00800001, 0x20c00232, 0x00b204c0, 0x00000000 },
-   { 0x00800001, 0x20d00232, 0x00b204e0, 0x00000000 },
-   { 0x00800001, 0x20e00232, 0x00b20500, 0x00000000 },
-   { 0x00800001, 0x20f00232, 0x00b20520, 0x00000000 },
-   { 0x00800001, 0x21000232, 0x00b20540, 0x00000000 },
-   { 0x00800001, 0x21100232, 0x00b20560, 0x00000000 },
-   { 0x00800031, 0x24001d28, 0x008d0020, 0x05902000 },
-   { 0x00000001, 0x20280061, 0x00000000, 0x00070007 },
-   { 0x00200008, 0x20201c21, 0x00450020, 0x00000001 },
-   { 0x00800040, 0x258025a9, 0x00b10260, 0x00b10580 },
-   { 0x00800040, 0x25a025a9, 0x00b10280, 0x00b105a0 },
-   { 0x00800040, 0x25c025a9, 0x00b102a0, 0x00b105c0 },
-   { 0x00800040, 0x25e025a9, 0x00b102c0, 0x00b105e0 },
-   { 0x80800001, 0x45800131, 0x00b10580, 0x00000000 },
-   { 0x80800001, 0x45a00131, 0x00b105a0, 0x00000000 },
-   { 0x80800001, 0x45c00131, 0x00b105c0, 0x00000000 },
-   { 0x80800001, 0x45e00131, 0x00b105e0, 0x00000000 },
-   { 0x00800001, 0x20200232, 0x00b20580, 0x00000000 },
-   { 0x00800001, 0x20300232, 0x00b205a0, 0x00000000 },
-   { 0x00800001, 0x20400232, 0x00b205c0, 0x00000000 },
-   { 0x00800001, 0x20500232, 0x00b205e0, 0x00000000 },
-   { 0x00800031, 0x24001d28, 0x008d0020, 0x05302001 },
-   { 0x00800040, 0x260025a9, 0x00b102e0, 0x00b10600 },
-   { 0x00800040, 0x262025a9, 0x00b10300, 0x00b10620 },
-   { 0x00800040, 0x264025a9, 0x00b10320, 0x00b10640 },
-   { 0x00800040, 0x266025a9, 0x00b10340, 0x00b10660 },
-   { 0x80800001, 0x46000131, 0x00b10600, 0x00000000 },
-   { 0x80800001, 0x46200131, 0x00b10620, 0x00000000 },
-   { 0x80800001, 0x46400131, 0x00b10640, 0x00000000 },
-   { 0x80800001, 0x46600131, 0x00b10660, 0x00000000 },
-   { 0x00800001, 0x20200232, 0x00b20600, 0x00000000 },
-   { 0x00800001, 0x20300232, 0x00b20620, 0x00000000 },
-   { 0x00800001, 0x20400232, 0x00b20640, 0x00000000 },
-   { 0x00800001, 0x20500232, 0x00b20660, 0x00000000 },
-   { 0x00800031, 0x24001d28, 0x008d0020, 0x05302002 },
-   { 0x00800031, 0x24001d28, 0x008d0000, 0x87100000 },
+   { 0x00000001, 0x22000060, 0x00000000, 0x00000a5a },
+   { 0x00000001, 0x2fc80001, 0x00001400, 0x00000000 },
+   { 0x00000040, 0x34000c20, 0x002102a0, 0x00000030 },
+   { 0x00802042, 0x29502529, 0x008d0950, 0x008d0400 },
+   { 0x00802042, 0x29902529, 0x008d0990, 0x008d0440 },
+   { 0x00802042, 0x29d02529, 0x008d09d0, 0x008d0480 },
+   { 0x00802042, 0x2a102529, 0x008d0a10, 0x008d04c0 },
+   { 0x00000040, 0x34000c20, 0x002102a0, 0x00000040 },
diff --git a/src/xvmc/shader/mc/field_forward_igd.g4a b/src/xvmc/shader/mc/field_forward_igd.g4a
index fdd4925..61719ed 100644
--- a/src/xvmc/shader/mc/field_forward_igd.g4a
+++ b/src/xvmc/shader/mc/field_forward_igd.g4a
@@ -1,121 +1,86 @@
-/*
- * Copyright © 2008 Intel Corporation
- *
- * Permission is hereby granted, free of charge, to any person obtaining a
- * copy of this software and associated documentation files (the "Software"),
- * to deal in the Software without restriction, including without limitation
- * the rights to use, copy, modify, merge, publish, distribute, sublicense,
- * and/or sell copies of the Software, and to permit persons to whom the
- * Software is furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice (including the next
- * paragraph) shall be included in all copies or substantial portions of the
- * Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
- * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
- * SOFTWARE.
- *
- * Author:
- *    Zou Nan hai <nanhai.zou at intel.com>
- *    Zhang Hua jun <huajun.zhang at intel.com>
- *    Xing Dong sheng <dongsheng.xing at intel.com>
- *
- */
-mov (8) g76.0<1>UD g1.0<8,8,1>UD {align1};
-//mov (8) g77.0<1>UD g2.0<8,8,1>UD {align1};
+/* GRF allocation:
+   g1~g30: constant buffer
+           g1~g2:intra IQ matrix
+           g3~g4:non intra IQ matrix
+           g5~g20:IDCT table
+   g31:    thread payload 
+   g58~g81:reference data
+   g82:    thread payload backup
+   g84~g107:IDCT data
+   g115:   message descriptor for reading reference data   */
+mov (8) g82.0<1>UD g31.0<8,8,1>UD {align1};
+mov (1) g126.8<1>UD ip {align1};
+add (1) ip g21.0<1,1,1>UD 0x50UD {align1};                  //jump to the lib to do IDCT
 
-include(`block_clear.g4i')
-mov (8) g115.0<1>UD g1.0<8,8,1>UD {align1};
-mov (8) g116.0<1>UD g1.0<8,8,1>UD {align1};
-/*Y buffer*/
-mov(1) g1.8<1>UD 0x007000fUD  { align1 };
-asr (2) g115.14<1>W g1.14<2,2,1>W 1UW {align1};
-add (2) g115.0<1>UD g116.0<2,2,1>UD g115.14<2,2,1>W {align1};
+/*field 0 of Y*/
+asr (2) g31.14<1>W g82.14<2,2,1>W 1W {align1};
+add (2) g115.0<1>UD g31.0<2,2,1>UD g31.14<2,2,1>W {align1};
 and (1) g115.4<1>UD g115.4<1,1,1>UD 0xFFFFFFFEUD {align1};
-mov (1) g115.8<1>UD 0x1fUD  { align1 }; //read 1 line, 32 columns.
-/*first vector*/
-and.nz (1) null g1.31<1,1,1>UB 0x1UW {align1};
+and.nz (1) null g82.31<1,1,1>UB 0x1UW {align1};             //motion vertical field select
 (f0) add (1) g115.4<1>UD g115.4<1,1,1>UD 1UD {align1};
-define(`surface',`4')
-define(`mv1',`g1.14')
-define(`mv2',`g1.16')
-include(`motion_field_y_igd.g4i')
-mov (8) g28.0<1>UD g96.0<8,8,1>UD {align1};
-mov (8) g30.0<1>UD g97.0<8,8,1>UD {align1};
-mov (8) g32.0<1>UD g98.0<8,8,1>UD {align1};
-mov (8) g34.0<1>UD g99.0<8,8,1>UD {align1};
-mov (8) g36.0<1>UD g100.0<8,8,1>UD {align1};
-mov (8) g38.0<1>UD g101.0<8,8,1>UD {align1};
-mov (8) g40.0<1>UD g102.0<8,8,1>UD {align1};
-mov (8) g42.0<1>UD g103.0<8,8,1>UD {align1};
-/*second vector*/
-asr (2) g115.14<1>W g1.22<2,2,1>W 1UW {align1};
-add (2) g115.0<1>UD g116.0<2,2,1>UD g115.14<2,2,1>W {align1};
-and (1) g115.4<1>UD g115.4<1,1,1>UD 0xFFFFFFFEUD {align1};
-mov (1) g115.8<1>UD 0x1fUD { align1 };              //read 1 line, 32 columns.
+mov (1) g115.16<1>UW 0UW {align1};           	//0:forward 1:backward
+mov (1) a0.0<1>UD 0x0A4EUD {align1};        	//g82.14,motion vector
+mov (1) g126.8<1>UD ip {align1};
+add (1) ip g21.0<1,1,1>UD 0x20UD {align1};   	//jump to the lib to read reference data 
 
-and.nz (1) null g1.31<1,1,1>UB 0x4UW {align1};
-(f0) add (1) g115.4<1>UD g115.4<1,1,1>UD 1UD {align1};
-define(`surface',`4')
-define(`mv1',`g1.22')
-define(`mv2',`g1.24')
-include(`motion_field_y_igd.g4i')
-mov (8) g29.0<1>UD g96.0<8,8,1>UD {align1};
-mov (8) g31.0<1>UD g97.0<8,8,1>UD {align1};
-mov (8) g33.0<1>UD g98.0<8,8,1>UD {align1};
-mov (8) g35.0<1>UD g99.0<8,8,1>UD {align1};
-mov (8) g37.0<1>UD g100.0<8,8,1>UD {align1};
-mov (8) g39.0<1>UD g101.0<8,8,1>UD {align1};
-mov (8) g41.0<1>UD g102.0<8,8,1>UD {align1};
-mov (8) g43.0<1>UD g103.0<8,8,1>UD {align1};
-/*U buffer,  V buffer*/
-/*first vector*/
-mov(1) g115.8<1>UD 0x007000fUD  { align1 };
-asr (2) g115.14<1>W g1.14<2,2,1>W 2UW {align1};
-asr (2) g115.0<1>D g116.0<2,2,1>D 1D {align1};
-add (2) g115.0<1>D g115.0<2,2,1>D g115.14<2,2,1>W {align1};
-and (1) g115.4<1>UD g115.4<1,1,1>UD 0xFFFFFFFEUD {align1};
+mov (8) g58.0<1>UD g32.0<8,8,1>UD {align1};
+mov (8) g60.0<1>UD g33.0<8,8,1>UD {align1};
+mov (8) g62.0<1>UD g34.0<8,8,1>UD {align1};
+mov (8) g64.0<1>UD g35.0<8,8,1>UD {align1};
+mov (8) g66.0<1>UD g36.0<8,8,1>UD {align1};
+mov (8) g68.0<1>UD g37.0<8,8,1>UD {align1};
+mov (8) g70.0<1>UD g38.0<8,8,1>UD {align1};
+mov (8) g72.0<1>UD g39.0<8,8,1>UD {align1};
 
-and.nz (1) null g1.31<1,1,1>UB 0x1UW {align1};
+/*field 1 of Y*/
+asr (2) g31.14<1>W g82.22<2,2,1>W 1W {align1};
+add (2) g115.0<1>UD g31.0<2,2,1>UD g31.14<2,2,1>W {align1};
+and (1) g115.4<1>UD g115.4<1,1,1>UD 0xFFFFFFFEUD {align1};
+and.nz (1) null g82.31<1,1,1>UB 0x4UW {align1};
 (f0) add (1) g115.4<1>UD g115.4<1,1,1>UD 1UD {align1};
-define(`surface_u',`5')
-define(`surface_v',`6')
-define(`mv1',`g1.14')
-define(`mv2',`g1.16')
-include(`motion_field_uv_igd.g4i')
-mov (8) g44.0<1>UW g78.0<8,8,1>UW {align1};
-mov (8) g45.0<1>UW g79.0<8,8,1>UW {align1};
-mov (8) g46.0<1>UW g80.0<8,8,1>UW {align1};
-mov (8) g47.0<1>UW g81.0<8,8,1>UW {align1};
-mov (8) g48.0<1>UW g82.0<8,8,1>UW {align1};
-mov (8) g49.0<1>UW g83.0<8,8,1>UW {align1};
-mov (8) g50.0<1>UW g84.0<8,8,1>UW {align1};
-mov (8) g51.0<1>UW g85.0<8,8,1>UW {align1};
-/*second vector*/
-asr (2) g115.14<1>W g1.22<2,2,1>W 2UW {align1};
-asr (2) g115.0<1>D g116.0<2,2,1>D 1D {align1};
-add (2) g115.0<1>D g115.0<2,2,1>D g115.14<2,2,1>W {align1};
+mov (1) a0.0<1>UD 0x0A56UD {align1};        //g82.22,motion vector
+mov (1) g126.8<1>UD ip {align1};
+add (1) ip g21.0<1,1,1>UD 0x20UD {align1};   //jump to the lib to read reference data 
+
+mov (8) g59.0<1>UD g32.0<8,8,1>UD {align1};
+mov (8) g61.0<1>UD g33.0<8,8,1>UD {align1};
+mov (8) g63.0<1>UD g34.0<8,8,1>UD {align1};
+mov (8) g65.0<1>UD g35.0<8,8,1>UD {align1};
+mov (8) g67.0<1>UD g36.0<8,8,1>UD {align1};
+mov (8) g69.0<1>UD g37.0<8,8,1>UD {align1};
+mov (8) g71.0<1>UD g38.0<8,8,1>UD {align1};
+mov (8) g73.0<1>UD g39.0<8,8,1>UD {align1};
+
+/*field 0 of UV*/
+shr (2) g31.0<1>UD g31.0<2,2,1>UD 1UD {align1};
+
+asr (2) g31.14<1>W g82.14<2,2,1>W 2W {align1};
+add (2) g115.0<1>UD g31.0<2,2,1>UD g31.14<2,2,1>W {align1};
 and (1) g115.4<1>UD g115.4<1,1,1>UD 0xFFFFFFFEUD {align1};
+and.nz (1) null g82.31<1,1,1>UB 0x1UW {align1};
+(f0) add (1) g115.4<1>UD g115.4<1,1,1>UD 1UD {align1};
+mov (1) a0.0<1>UD 0x0A4EUD {align1};         //g82.14,motion vector
+mov (1) g126.8<1>UD ip {align1};
+add (1) ip g21.0<1,1,1>UD 0x30UD {align1};   //jump to the lib to read reference data 
+
+mov (16) g74.0<1>UW g32.0<8,8,1>UW {align1 compr};
+mov (16) g76.0<1>UW g34.0<8,8,1>UW {align1 compr};
+mov (16) g78.0<1>UW g36.0<8,8,1>UW {align1 compr};
+mov (16) g80.0<1>UW g38.0<8,8,1>UW {align1 compr};
 
-and.nz (1) null g1.31<1,1,1>UB 0x4UW {align1};
+/*field 1 of UV*/
+asr (2) g31.14<1>W g82.22<2,2,1>W 2W {align1};
+add (2) g115.0<1>UD g31.0<2,2,1>UD g31.14<2,2,1>W {align1};
+and (1) g115.4<1>UD g115.4<1,1,1>UD 0xFFFFFFFEUD {align1};
+and.nz (1) null g82.31<1,1,1>UB 0x4UW {align1};
 (f0) add (1) g115.4<1>UD g115.4<1,1,1>UD 1UD {align1};
-define(`mv1',`g1.22')
-define(`mv2',`g1.24')
-include(`motion_field_uv_igd.g4i')
-mov (8) g44.16<1>UW g78.0<8,8,1>UW {align1};
-mov (8) g45.16<1>UW g79.0<8,8,1>UW {align1};
-mov (8) g46.16<1>UW g80.0<8,8,1>UW {align1};
-mov (8) g47.16<1>UW g81.0<8,8,1>UW {align1};
-mov (8) g48.16<1>UW g82.0<8,8,1>UW {align1};
-mov (8) g49.16<1>UW g83.0<8,8,1>UW {align1};
-mov (8) g50.16<1>UW g84.0<8,8,1>UW {align1};
-mov (8) g51.16<1>UW g85.0<8,8,1>UW {align1};
+mov (1) a0.0<1>UD 0x0A56UD {align1};         //g82.22,motion vector
+mov (1) g126.8<1>UD ip {align1};
+add (1) ip g21.0<1,1,1>UD 0x30UD {align1};   //jump to the lib to read reference data 
+
+mov (16) g74.16<1>UW g32.0<8,8,1>UW {align1 compr};
+mov (16) g76.16<1>UW g34.0<8,8,1>UW {align1 compr};
+mov (16) g78.16<1>UW g36.0<8,8,1>UW {align1 compr};
+mov (16) g80.16<1>UW g38.0<8,8,1>UW {align1 compr};
 
-include(`addidct.g4i')
-//send (16) 0 acc0<1>UW g0<8,8,1>UW 
-//	thread_spawner(0, 0, 0) mlen 1 rlen 0 { align1 EOT};
+add (1) ip g21.0<1,1,1>UD 0x40UD {align1};          //jump to the lib to add the reference and idct data
diff --git a/src/xvmc/shader/mc/field_forward_igd.g4b b/src/xvmc/shader/mc/field_forward_igd.g4b
index 6d1dee5..12036bf 100644
--- a/src/xvmc/shader/mc/field_forward_igd.g4b
+++ b/src/xvmc/shader/mc/field_forward_igd.g4b
@@ -1,668 +1,62 @@
-   { 0x00600001, 0x29800021, 0x008d0020, 0x00000000 },
-   { 0x02000005, 0x20000c3c, 0x00210040, 0x00000001 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000030 },
-   { 0x00000040, 0x20480c21, 0x00210988, 0x00000000 },
-   { 0x00800031, 0x20601c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x20801c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x20a01c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x20c01c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x20e01c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x21001c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x21201c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x21401c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x21601c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x21801c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x21a01c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x21c01c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x21e01c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x22001c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x22201c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x22401c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x22601c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x22801c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x22a01c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x22c01c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x22e01c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x23001c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x23201c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x23401c21, 0x00b10040, 0x04110203 },
-   { 0x02000005, 0x20002d3c, 0x0021098c, 0x00200020 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000008 },
-   { 0x00600001, 0x20600169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x20800169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x20a00169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x20c00169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x20e00169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x21000169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x21200169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x21400169, 0x00000000, 0x00000000 },
-   { 0x02000005, 0x20002d3c, 0x0021002c, 0x00100010 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000008 },
-   { 0x00600001, 0x20700169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x20900169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x20b00169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x20d00169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x20f00169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x21100169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x21300169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x21500169, 0x00000000, 0x00000000 },
-   { 0x02000005, 0x20002d3c, 0x0021002c, 0x00080008 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000008 },
-   { 0x00600001, 0x21600169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x21800169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x21a00169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x21c00169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x21e00169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x22000169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x22200169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x22400169, 0x00000000, 0x00000000 },
-   { 0x02000005, 0x20002d3c, 0x0021002c, 0x00040004 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000008 },
-   { 0x00600001, 0x21700169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x21900169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x21b00169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x21d00169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x21f00169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x22100169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x22300169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x22500169, 0x00000000, 0x00000000 },
-   { 0x02000005, 0x20002d3c, 0x0021002c, 0x00020002 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000004 },
-   { 0x00800001, 0x22600169, 0x00000000, 0x00000000 },
-   { 0x00800001, 0x22800169, 0x00000000, 0x00000000 },
-   { 0x00800001, 0x22a00169, 0x00000000, 0x00000000 },
-   { 0x00800001, 0x22c00169, 0x00000000, 0x00000000 },
-   { 0x02000005, 0x20002d3c, 0x0021002c, 0x00010001 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000004 },
-   { 0x00800001, 0x22e00169, 0x00000000, 0x00000000 },
-   { 0x00800001, 0x23000169, 0x00000000, 0x00000000 },
-   { 0x00800001, 0x23200169, 0x00000000, 0x00000000 },
-   { 0x00800001, 0x23400169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x2e600021, 0x008d0020, 0x00000000 },
-   { 0x00600001, 0x2e800021, 0x008d0020, 0x00000000 },
-   { 0x00000001, 0x20280061, 0x00000000, 0x0007000f },
-   { 0x0020000c, 0x2e6e2dad, 0x0045002e, 0x00010001 },
-   { 0x00200040, 0x2e603421, 0x00450e80, 0x00450e6e },
+   { 0x00600001, 0x2a400021, 0x008d03e0, 0x00000000 },
+   { 0x00000001, 0x2fc80001, 0x00001400, 0x00000000 },
+   { 0x00000040, 0x34000c20, 0x002102a0, 0x00000050 },
+   { 0x0020000c, 0x23ee3dad, 0x00450a4e, 0x00010001 },
+   { 0x00200040, 0x2e603421, 0x004503e0, 0x004503ee },
    { 0x00000005, 0x2e640c21, 0x00210e64, 0xfffffffe },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
-   { 0x02000005, 0x20002e3c, 0x0021003f, 0x00010001 },
+   { 0x02000005, 0x20002e3c, 0x00210a5f, 0x00010001 },
    { 0x00010040, 0x2e640c21, 0x00210e64, 0x00000001 },
-   { 0x01000005, 0x20002d3c, 0x0021002e, 0x00010001 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000045 },
-   { 0x01000005, 0x20002d3c, 0x00210030, 0x00010001 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x0000002f },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
-   { 0x00800031, 0x29c01d29, 0x008d0e60, 0x0411a004 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a001d29, 0x008d0e60, 0x0411a004 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a401d29, 0x008d0e60, 0x0411a004 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a801d29, 0x008d0e60, 0x0411a004 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0007001f },
-   { 0x00800031, 0x2ac01d29, 0x008d0e60, 0x0418a004 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
-   { 0x00800031, 0x2bc01d29, 0x008d0e60, 0x0411a004 },
-   { 0x00800040, 0x2c004629, 0x00b109c0, 0x00b10a00 },
-   { 0x00800040, 0x2c204629, 0x00b10a00, 0x00b10a40 },
-   { 0x00800040, 0x2c404629, 0x00b10a40, 0x00b10a80 },
-   { 0x00800040, 0x2c604629, 0x00b10a80, 0x00b10ac0 },
-   { 0x00800040, 0x2c804629, 0x00b10ac0, 0x00b10b00 },
-   { 0x00800040, 0x2ca04629, 0x00b10b00, 0x00b10b40 },
-   { 0x00800040, 0x2cc04629, 0x00b10b40, 0x00b10b80 },
-   { 0x00800040, 0x2ce04629, 0x00b10b80, 0x00b10bc0 },
-   { 0x00800040, 0x2c004529, 0x00b10c00, 0x00b109c1 },
-   { 0x00800040, 0x2c204529, 0x00b10c20, 0x00b10a01 },
-   { 0x00800040, 0x2c404529, 0x00b10c40, 0x00b10a41 },
-   { 0x00800040, 0x2c604529, 0x00b10c60, 0x00b10a81 },
-   { 0x00800040, 0x2c804529, 0x00b10c80, 0x00b10ac1 },
-   { 0x00800040, 0x2ca04529, 0x00b10ca0, 0x00b10b01 },
-   { 0x00800040, 0x2cc04529, 0x00b10cc0, 0x00b10b41 },
-   { 0x00800040, 0x2ce04529, 0x00b10ce0, 0x00b10b81 },
-   { 0x00800040, 0x2c004529, 0x00b10c00, 0x00b10a01 },
-   { 0x00800040, 0x2c204529, 0x00b10c20, 0x00b10a41 },
-   { 0x00800040, 0x2c404529, 0x00b10c40, 0x00b10a81 },
-   { 0x00800040, 0x2c604529, 0x00b10c60, 0x00b10ac1 },
-   { 0x00800040, 0x2c804529, 0x00b10c80, 0x00b10b01 },
-   { 0x00800040, 0x2ca04529, 0x00b10ca0, 0x00b10b41 },
-   { 0x00800040, 0x2cc04529, 0x00b10cc0, 0x00b10b81 },
-   { 0x00800040, 0x2ce04529, 0x00b10ce0, 0x00b10bc1 },
-   { 0x00800008, 0x2c002d29, 0x00b10c00, 0x00020002 },
-   { 0x00800008, 0x2c202d29, 0x00b10c20, 0x00020002 },
-   { 0x00800008, 0x2c402d29, 0x00b10c40, 0x00020002 },
-   { 0x00800008, 0x2c602d29, 0x00b10c60, 0x00020002 },
-   { 0x00800008, 0x2c802d29, 0x00b10c80, 0x00020002 },
-   { 0x00800008, 0x2ca02d29, 0x00b10ca0, 0x00020002 },
-   { 0x00800008, 0x2cc02d29, 0x00b10cc0, 0x00020002 },
-   { 0x00800008, 0x2ce02d29, 0x00b10ce0, 0x00020002 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000040 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
-   { 0x00800031, 0x29c01d29, 0x008d0e60, 0x0411a004 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a001d29, 0x008d0e60, 0x0411a004 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a401d29, 0x008d0e60, 0x0411a004 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a801d29, 0x008d0e60, 0x0411a004 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0007001f },
-   { 0x00800031, 0x2ac01d29, 0x008d0e60, 0x0418a004 },
-   { 0x80800042, 0x2c004629, 0x00b109c0, 0x00b109c1 },
-   { 0x80800042, 0x2c204629, 0x00b10a00, 0x00b10a01 },
-   { 0x80800042, 0x2c404629, 0x00b10a40, 0x00b10a41 },
-   { 0x80800042, 0x2c604629, 0x00b10a80, 0x00b10a81 },
-   { 0x80800042, 0x2c804629, 0x00b10ac0, 0x00b10ac1 },
-   { 0x80800042, 0x2ca04629, 0x00b10b00, 0x00b10b01 },
-   { 0x80800042, 0x2cc04629, 0x00b10b40, 0x00b10b41 },
-   { 0x80800042, 0x2ce04629, 0x00b10b80, 0x00b10b81 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x0000002c },
-   { 0x01000005, 0x20002d3c, 0x00210030, 0x00010001 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000017 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
-   { 0x00800031, 0x29c01d29, 0x008d0e60, 0x0411a004 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a001d29, 0x008d0e60, 0x0411a004 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a401d29, 0x008d0e60, 0x0411a004 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a801d29, 0x008d0e60, 0x0411a004 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0007001f },
-   { 0x00800031, 0x2ac01d29, 0x008d0e60, 0x0418a004 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
-   { 0x00800031, 0x2bc01d29, 0x008d0e60, 0x0411a004 },
-   { 0x80800042, 0x2c004629, 0x00b109c0, 0x00b10a00 },
-   { 0x80800042, 0x2c204629, 0x00b10a00, 0x00b10a40 },
-   { 0x80800042, 0x2c404629, 0x00b10a40, 0x00b10a80 },
-   { 0x80800042, 0x2c604629, 0x00b10a80, 0x00b10ac0 },
-   { 0x80800042, 0x2c804629, 0x00b10ac0, 0x00b10b00 },
-   { 0x80800042, 0x2ca04629, 0x00b10b00, 0x00b10b40 },
-   { 0x80800042, 0x2cc04629, 0x00b10b40, 0x00b10b80 },
-   { 0x80800042, 0x2ce04629, 0x00b10b80, 0x00b10bc0 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000013 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
-   { 0x00800031, 0x29c01d29, 0x008d0e60, 0x0411a004 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a001d29, 0x008d0e60, 0x0411a004 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a401d29, 0x008d0e60, 0x0411a004 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a801d29, 0x008d0e60, 0x0411a004 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0007001f },
-   { 0x00800031, 0x2ac01d29, 0x008d0e60, 0x0418a004 },
-   { 0x00800001, 0x2c000229, 0x00b109c0, 0x00000000 },
-   { 0x00800001, 0x2c200229, 0x00b10a00, 0x00000000 },
-   { 0x00800001, 0x2c400229, 0x00b10a40, 0x00000000 },
-   { 0x00800001, 0x2c600229, 0x00b10a80, 0x00000000 },
-   { 0x00800001, 0x2c800229, 0x00b10ac0, 0x00000000 },
-   { 0x00800001, 0x2ca00229, 0x00b10b00, 0x00000000 },
-   { 0x00800001, 0x2cc00229, 0x00b10b40, 0x00000000 },
-   { 0x00800001, 0x2ce00229, 0x00b10b80, 0x00000000 },
-   { 0x00600001, 0x23800021, 0x008d0c00, 0x00000000 },
-   { 0x00600001, 0x23c00021, 0x008d0c20, 0x00000000 },
-   { 0x00600001, 0x24000021, 0x008d0c40, 0x00000000 },
-   { 0x00600001, 0x24400021, 0x008d0c60, 0x00000000 },
-   { 0x00600001, 0x24800021, 0x008d0c80, 0x00000000 },
-   { 0x00600001, 0x24c00021, 0x008d0ca0, 0x00000000 },
-   { 0x00600001, 0x25000021, 0x008d0cc0, 0x00000000 },
-   { 0x00600001, 0x25400021, 0x008d0ce0, 0x00000000 },
-   { 0x0020000c, 0x2e6e2dad, 0x00450036, 0x00010001 },
-   { 0x00200040, 0x2e603421, 0x00450e80, 0x00450e6e },
+   { 0x00000001, 0x2e700169, 0x00000000, 0x00000000 },
+   { 0x00000001, 0x22000060, 0x00000000, 0x00000a4e },
+   { 0x00000001, 0x2fc80001, 0x00001400, 0x00000000 },
+   { 0x00000040, 0x34000c20, 0x002102a0, 0x00000020 },
+   { 0x00600001, 0x27400021, 0x008d0400, 0x00000000 },
+   { 0x00600001, 0x27800021, 0x008d0420, 0x00000000 },
+   { 0x00600001, 0x27c00021, 0x008d0440, 0x00000000 },
+   { 0x00600001, 0x28000021, 0x008d0460, 0x00000000 },
+   { 0x00600001, 0x28400021, 0x008d0480, 0x00000000 },
+   { 0x00600001, 0x28800021, 0x008d04a0, 0x00000000 },
+   { 0x00600001, 0x28c00021, 0x008d04c0, 0x00000000 },
+   { 0x00600001, 0x29000021, 0x008d04e0, 0x00000000 },
+   { 0x0020000c, 0x23ee3dad, 0x00450a56, 0x00010001 },
+   { 0x00200040, 0x2e603421, 0x004503e0, 0x004503ee },
    { 0x00000005, 0x2e640c21, 0x00210e64, 0xfffffffe },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
-   { 0x02000005, 0x20002e3c, 0x0021003f, 0x00040004 },
+   { 0x02000005, 0x20002e3c, 0x00210a5f, 0x00040004 },
    { 0x00010040, 0x2e640c21, 0x00210e64, 0x00000001 },
-   { 0x01000005, 0x20002d3c, 0x00210036, 0x00010001 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000045 },
-   { 0x01000005, 0x20002d3c, 0x00210038, 0x00010001 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x0000002f },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
-   { 0x00800031, 0x29c01d29, 0x008d0e60, 0x0411a004 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a001d29, 0x008d0e60, 0x0411a004 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a401d29, 0x008d0e60, 0x0411a004 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a801d29, 0x008d0e60, 0x0411a004 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0007001f },
-   { 0x00800031, 0x2ac01d29, 0x008d0e60, 0x0418a004 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
-   { 0x00800031, 0x2bc01d29, 0x008d0e60, 0x0411a004 },
-   { 0x00800040, 0x2c004629, 0x00b109c0, 0x00b10a00 },
-   { 0x00800040, 0x2c204629, 0x00b10a00, 0x00b10a40 },
-   { 0x00800040, 0x2c404629, 0x00b10a40, 0x00b10a80 },
-   { 0x00800040, 0x2c604629, 0x00b10a80, 0x00b10ac0 },
-   { 0x00800040, 0x2c804629, 0x00b10ac0, 0x00b10b00 },
-   { 0x00800040, 0x2ca04629, 0x00b10b00, 0x00b10b40 },
-   { 0x00800040, 0x2cc04629, 0x00b10b40, 0x00b10b80 },
-   { 0x00800040, 0x2ce04629, 0x00b10b80, 0x00b10bc0 },
-   { 0x00800040, 0x2c004529, 0x00b10c00, 0x00b109c1 },
-   { 0x00800040, 0x2c204529, 0x00b10c20, 0x00b10a01 },
-   { 0x00800040, 0x2c404529, 0x00b10c40, 0x00b10a41 },
-   { 0x00800040, 0x2c604529, 0x00b10c60, 0x00b10a81 },
-   { 0x00800040, 0x2c804529, 0x00b10c80, 0x00b10ac1 },
-   { 0x00800040, 0x2ca04529, 0x00b10ca0, 0x00b10b01 },
-   { 0x00800040, 0x2cc04529, 0x00b10cc0, 0x00b10b41 },
-   { 0x00800040, 0x2ce04529, 0x00b10ce0, 0x00b10b81 },
-   { 0x00800040, 0x2c004529, 0x00b10c00, 0x00b10a01 },
-   { 0x00800040, 0x2c204529, 0x00b10c20, 0x00b10a41 },
-   { 0x00800040, 0x2c404529, 0x00b10c40, 0x00b10a81 },
-   { 0x00800040, 0x2c604529, 0x00b10c60, 0x00b10ac1 },
-   { 0x00800040, 0x2c804529, 0x00b10c80, 0x00b10b01 },
-   { 0x00800040, 0x2ca04529, 0x00b10ca0, 0x00b10b41 },
-   { 0x00800040, 0x2cc04529, 0x00b10cc0, 0x00b10b81 },
-   { 0x00800040, 0x2ce04529, 0x00b10ce0, 0x00b10bc1 },
-   { 0x00800008, 0x2c002d29, 0x00b10c00, 0x00020002 },
-   { 0x00800008, 0x2c202d29, 0x00b10c20, 0x00020002 },
-   { 0x00800008, 0x2c402d29, 0x00b10c40, 0x00020002 },
-   { 0x00800008, 0x2c602d29, 0x00b10c60, 0x00020002 },
-   { 0x00800008, 0x2c802d29, 0x00b10c80, 0x00020002 },
-   { 0x00800008, 0x2ca02d29, 0x00b10ca0, 0x00020002 },
-   { 0x00800008, 0x2cc02d29, 0x00b10cc0, 0x00020002 },
-   { 0x00800008, 0x2ce02d29, 0x00b10ce0, 0x00020002 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000040 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
-   { 0x00800031, 0x29c01d29, 0x008d0e60, 0x0411a004 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a001d29, 0x008d0e60, 0x0411a004 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a401d29, 0x008d0e60, 0x0411a004 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a801d29, 0x008d0e60, 0x0411a004 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0007001f },
-   { 0x00800031, 0x2ac01d29, 0x008d0e60, 0x0418a004 },
-   { 0x80800042, 0x2c004629, 0x00b109c0, 0x00b109c1 },
-   { 0x80800042, 0x2c204629, 0x00b10a00, 0x00b10a01 },
-   { 0x80800042, 0x2c404629, 0x00b10a40, 0x00b10a41 },
-   { 0x80800042, 0x2c604629, 0x00b10a80, 0x00b10a81 },
-   { 0x80800042, 0x2c804629, 0x00b10ac0, 0x00b10ac1 },
-   { 0x80800042, 0x2ca04629, 0x00b10b00, 0x00b10b01 },
-   { 0x80800042, 0x2cc04629, 0x00b10b40, 0x00b10b41 },
-   { 0x80800042, 0x2ce04629, 0x00b10b80, 0x00b10b81 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x0000002c },
-   { 0x01000005, 0x20002d3c, 0x00210038, 0x00010001 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000017 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
-   { 0x00800031, 0x29c01d29, 0x008d0e60, 0x0411a004 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a001d29, 0x008d0e60, 0x0411a004 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a401d29, 0x008d0e60, 0x0411a004 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a801d29, 0x008d0e60, 0x0411a004 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0007001f },
-   { 0x00800031, 0x2ac01d29, 0x008d0e60, 0x0418a004 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
-   { 0x00800031, 0x2bc01d29, 0x008d0e60, 0x0411a004 },
-   { 0x80800042, 0x2c004629, 0x00b109c0, 0x00b10a00 },
-   { 0x80800042, 0x2c204629, 0x00b10a00, 0x00b10a40 },
-   { 0x80800042, 0x2c404629, 0x00b10a40, 0x00b10a80 },
-   { 0x80800042, 0x2c604629, 0x00b10a80, 0x00b10ac0 },
-   { 0x80800042, 0x2c804629, 0x00b10ac0, 0x00b10b00 },
-   { 0x80800042, 0x2ca04629, 0x00b10b00, 0x00b10b40 },
-   { 0x80800042, 0x2cc04629, 0x00b10b40, 0x00b10b80 },
-   { 0x80800042, 0x2ce04629, 0x00b10b80, 0x00b10bc0 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000013 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
-   { 0x00800031, 0x29c01d29, 0x008d0e60, 0x0411a004 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a001d29, 0x008d0e60, 0x0411a004 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a401d29, 0x008d0e60, 0x0411a004 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a801d29, 0x008d0e60, 0x0411a004 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0007001f },
-   { 0x00800031, 0x2ac01d29, 0x008d0e60, 0x0418a004 },
-   { 0x00800001, 0x2c000229, 0x00b109c0, 0x00000000 },
-   { 0x00800001, 0x2c200229, 0x00b10a00, 0x00000000 },
-   { 0x00800001, 0x2c400229, 0x00b10a40, 0x00000000 },
-   { 0x00800001, 0x2c600229, 0x00b10a80, 0x00000000 },
-   { 0x00800001, 0x2c800229, 0x00b10ac0, 0x00000000 },
-   { 0x00800001, 0x2ca00229, 0x00b10b00, 0x00000000 },
-   { 0x00800001, 0x2cc00229, 0x00b10b40, 0x00000000 },
-   { 0x00800001, 0x2ce00229, 0x00b10b80, 0x00000000 },
-   { 0x00600001, 0x23a00021, 0x008d0c00, 0x00000000 },
-   { 0x00600001, 0x23e00021, 0x008d0c20, 0x00000000 },
-   { 0x00600001, 0x24200021, 0x008d0c40, 0x00000000 },
-   { 0x00600001, 0x24600021, 0x008d0c60, 0x00000000 },
-   { 0x00600001, 0x24a00021, 0x008d0c80, 0x00000000 },
-   { 0x00600001, 0x24e00021, 0x008d0ca0, 0x00000000 },
-   { 0x00600001, 0x25200021, 0x008d0cc0, 0x00000000 },
-   { 0x00600001, 0x25600021, 0x008d0ce0, 0x00000000 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0007000f },
-   { 0x0020000c, 0x2e6e2dad, 0x0045002e, 0x00020002 },
-   { 0x0020000c, 0x2e601ca5, 0x00450e80, 0x00000001 },
-   { 0x00200040, 0x2e6034a5, 0x00450e60, 0x00450e6e },
+   { 0x00000001, 0x22000060, 0x00000000, 0x00000a56 },
+   { 0x00000001, 0x2fc80001, 0x00001400, 0x00000000 },
+   { 0x00000040, 0x34000c20, 0x002102a0, 0x00000020 },
+   { 0x00600001, 0x27600021, 0x008d0400, 0x00000000 },
+   { 0x00600001, 0x27a00021, 0x008d0420, 0x00000000 },
+   { 0x00600001, 0x27e00021, 0x008d0440, 0x00000000 },
+   { 0x00600001, 0x28200021, 0x008d0460, 0x00000000 },
+   { 0x00600001, 0x28600021, 0x008d0480, 0x00000000 },
+   { 0x00600001, 0x28a00021, 0x008d04a0, 0x00000000 },
+   { 0x00600001, 0x28e00021, 0x008d04c0, 0x00000000 },
+   { 0x00600001, 0x29200021, 0x008d04e0, 0x00000000 },
+   { 0x00200008, 0x23e00c21, 0x004503e0, 0x00000001 },
+   { 0x0020000c, 0x23ee3dad, 0x00450a4e, 0x00020002 },
+   { 0x00200040, 0x2e603421, 0x004503e0, 0x004503ee },
    { 0x00000005, 0x2e640c21, 0x00210e64, 0xfffffffe },
-   { 0x02000005, 0x20002e3c, 0x0021003f, 0x00010001 },
+   { 0x02000005, 0x20002e3c, 0x00210a5f, 0x00010001 },
    { 0x00010040, 0x2e640c21, 0x00210e64, 0x00000001 },
-   { 0x01000005, 0x20002d3c, 0x0021002e, 0x00020002 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000036 },
-   { 0x01000005, 0x20002d3c, 0x00210030, 0x00020002 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000028 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0007000f },
-   { 0x00800031, 0x2ac01d29, 0x00ad0e60, 0x0414a005 },
-   { 0x00800031, 0x2b601d29, 0x00ad0e60, 0x0414a006 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0001000f },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 },
-   { 0x00800031, 0x2b401d29, 0x00ad0e60, 0x0411a005 },
-   { 0x00800031, 0x2be01d29, 0x00ad0e60, 0x0411a006 },
-   { 0x00800040, 0x29c04629, 0x00ad0ac0, 0x00ad0ae0 },
-   { 0x00800040, 0x29e04629, 0x00ad0ae0, 0x00ad0b00 },
-   { 0x00800040, 0x2a004629, 0x00ad0b00, 0x00ad0b20 },
-   { 0x00800040, 0x2a204629, 0x00ad0b20, 0x00ad0b40 },
-   { 0x00800040, 0x29c04529, 0x00ad09c0, 0x00ad0ac1 },
-   { 0x00800040, 0x29e04529, 0x00ad09e0, 0x00ad0ae1 },
-   { 0x00800040, 0x2a004529, 0x00ad0a00, 0x00ad0b01 },
-   { 0x00800040, 0x2a204529, 0x00ad0a20, 0x00ad0b21 },
-   { 0x00800040, 0x29c04529, 0x00ad09c0, 0x00ad0ae1 },
-   { 0x00800040, 0x29e04529, 0x00ad09e0, 0x00ad0b01 },
-   { 0x00800040, 0x2a004529, 0x00ad0a00, 0x00ad0b21 },
-   { 0x00800040, 0x2a204529, 0x00ad0a20, 0x00ad0b41 },
-   { 0x00800040, 0x2a404629, 0x00ad0b60, 0x00ad0b80 },
-   { 0x00800040, 0x2a604629, 0x00ad0b80, 0x00ad0ba0 },
-   { 0x00800040, 0x2a804629, 0x00ad0ba0, 0x00ad0bc0 },
-   { 0x00800040, 0x2aa04629, 0x00ad0bc0, 0x00ad0be0 },
-   { 0x00800040, 0x2a404529, 0x00ad0a40, 0x00ad0b61 },
-   { 0x00800040, 0x2a604529, 0x00ad0a60, 0x00ad0b81 },
-   { 0x00800040, 0x2a804529, 0x00ad0a80, 0x00ad0ba1 },
-   { 0x00800040, 0x2aa04529, 0x00ad0aa0, 0x00ad0bc1 },
-   { 0x00800040, 0x2a404529, 0x00ad0a40, 0x00ad0b81 },
-   { 0x00800040, 0x2a604529, 0x00ad0a60, 0x00ad0ba1 },
-   { 0x00800040, 0x2a804529, 0x00ad0a80, 0x00ad0bc1 },
-   { 0x00800040, 0x2aa04529, 0x00ad0aa0, 0x00ad0be1 },
-   { 0x80800008, 0x29c02d29, 0x00b109c0, 0x00020002 },
-   { 0x80800008, 0x29e02d29, 0x00b109e0, 0x00020002 },
-   { 0x80800008, 0x2a002d29, 0x00b10a00, 0x00020002 },
-   { 0x80800008, 0x2a202d29, 0x00b10a20, 0x00020002 },
-   { 0x80800008, 0x2a402d29, 0x00b10a40, 0x00020002 },
-   { 0x80800008, 0x2a602d29, 0x00b10a60, 0x00020002 },
-   { 0x80800008, 0x2a802d29, 0x00b10a80, 0x00020002 },
-   { 0x80800008, 0x2aa02d29, 0x00b10aa0, 0x00020002 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000028 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0007000f },
-   { 0x00800031, 0x2ac01d29, 0x00ad0e60, 0x0414a005 },
-   { 0x00800031, 0x2b601d29, 0x00ad0e60, 0x0414a006 },
-   { 0x80800042, 0x29c04629, 0x00ad0ac0, 0x00ad0ac1 },
-   { 0x80800042, 0x29e04629, 0x00ad0ae0, 0x00ad0ae1 },
-   { 0x80800042, 0x2a004629, 0x00ad0b00, 0x00ad0b01 },
-   { 0x80800042, 0x2a204629, 0x00ad0b20, 0x00ad0b21 },
-   { 0x80800042, 0x2a404629, 0x00ad0b60, 0x00ad0b61 },
-   { 0x80800042, 0x2a604629, 0x00ad0b80, 0x00ad0b81 },
-   { 0x80800042, 0x2a804629, 0x00ad0ba0, 0x00ad0ba1 },
-   { 0x80800042, 0x2aa04629, 0x00ad0bc0, 0x00ad0bc1 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x0000001c },
-   { 0x01000005, 0x20002d3c, 0x00210030, 0x00020002 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x0000000f },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0007000f },
-   { 0x00800031, 0x2ac01d29, 0x00ad0e60, 0x0414a005 },
-   { 0x00800031, 0x2b601d29, 0x00ad0e60, 0x0414a006 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0000000f },
-   { 0x00800031, 0x2b401d29, 0x00ad0e60, 0x0411a005 },
-   { 0x00800031, 0x2be01d29, 0x00ad0e60, 0x0411a006 },
-   { 0x80800042, 0x29c04629, 0x00ad0ac0, 0x00ad0ae0 },
-   { 0x80800042, 0x29e04629, 0x00ad0ae0, 0x00ad0b00 },
-   { 0x80800042, 0x2a004629, 0x00ad0b00, 0x00ad0b20 },
-   { 0x80800042, 0x2a204629, 0x00ad0b20, 0x00ad0b40 },
-   { 0x80800042, 0x2a404629, 0x00ad0b60, 0x00ad0b80 },
-   { 0x80800042, 0x2a604629, 0x00ad0b80, 0x00ad0ba0 },
-   { 0x80800042, 0x2a804629, 0x00ad0ba0, 0x00ad0bc0 },
-   { 0x80800042, 0x2aa04629, 0x00ad0bc0, 0x00ad0be0 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x0000000b },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0007000f },
-   { 0x00800031, 0x2ac01d29, 0x00ad0e60, 0x0414a005 },
-   { 0x00800031, 0x2b601d29, 0x00ad0e60, 0x0414a006 },
-   { 0x00800001, 0x29c00229, 0x00ad0ac0, 0x00000000 },
-   { 0x00800001, 0x29e00229, 0x00ad0ae0, 0x00000000 },
-   { 0x00800001, 0x2a000229, 0x00ad0b00, 0x00000000 },
-   { 0x00800001, 0x2a200229, 0x00ad0b20, 0x00000000 },
-   { 0x00800001, 0x2a400229, 0x00ad0b60, 0x00000000 },
-   { 0x00800001, 0x2a600229, 0x00ad0b80, 0x00000000 },
-   { 0x00800001, 0x2a800229, 0x00ad0ba0, 0x00000000 },
-   { 0x00800001, 0x2aa00229, 0x00ad0bc0, 0x00000000 },
-   { 0x00600001, 0x25800129, 0x008d09c0, 0x00000000 },
-   { 0x00600001, 0x25a00129, 0x008d09e0, 0x00000000 },
-   { 0x00600001, 0x25c00129, 0x008d0a00, 0x00000000 },
-   { 0x00600001, 0x25e00129, 0x008d0a20, 0x00000000 },
-   { 0x00600001, 0x26000129, 0x008d0a40, 0x00000000 },
-   { 0x00600001, 0x26200129, 0x008d0a60, 0x00000000 },
-   { 0x00600001, 0x26400129, 0x008d0a80, 0x00000000 },
-   { 0x00600001, 0x26600129, 0x008d0aa0, 0x00000000 },
-   { 0x0020000c, 0x2e6e2dad, 0x00450036, 0x00020002 },
-   { 0x0020000c, 0x2e601ca5, 0x00450e80, 0x00000001 },
-   { 0x00200040, 0x2e6034a5, 0x00450e60, 0x00450e6e },
+   { 0x00000001, 0x22000060, 0x00000000, 0x00000a4e },
+   { 0x00000001, 0x2fc80001, 0x00001400, 0x00000000 },
+   { 0x00000040, 0x34000c20, 0x002102a0, 0x00000030 },
+   { 0x00802001, 0x29400129, 0x008d0400, 0x00000000 },
+   { 0x00802001, 0x29800129, 0x008d0440, 0x00000000 },
+   { 0x00802001, 0x29c00129, 0x008d0480, 0x00000000 },
+   { 0x00802001, 0x2a000129, 0x008d04c0, 0x00000000 },
+   { 0x0020000c, 0x23ee3dad, 0x00450a56, 0x00020002 },
+   { 0x00200040, 0x2e603421, 0x004503e0, 0x004503ee },
    { 0x00000005, 0x2e640c21, 0x00210e64, 0xfffffffe },
-   { 0x02000005, 0x20002e3c, 0x0021003f, 0x00040004 },
+   { 0x02000005, 0x20002e3c, 0x00210a5f, 0x00040004 },
    { 0x00010040, 0x2e640c21, 0x00210e64, 0x00000001 },
-   { 0x01000005, 0x20002d3c, 0x00210036, 0x00020002 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000036 },
-   { 0x01000005, 0x20002d3c, 0x00210038, 0x00020002 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000028 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0007000f },
-   { 0x00800031, 0x2ac01d29, 0x00ad0e60, 0x0414a005 },
-   { 0x00800031, 0x2b601d29, 0x00ad0e60, 0x0414a006 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0001000f },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 },
-   { 0x00800031, 0x2b401d29, 0x00ad0e60, 0x0411a005 },
-   { 0x00800031, 0x2be01d29, 0x00ad0e60, 0x0411a006 },
-   { 0x00800040, 0x29c04629, 0x00ad0ac0, 0x00ad0ae0 },
-   { 0x00800040, 0x29e04629, 0x00ad0ae0, 0x00ad0b00 },
-   { 0x00800040, 0x2a004629, 0x00ad0b00, 0x00ad0b20 },
-   { 0x00800040, 0x2a204629, 0x00ad0b20, 0x00ad0b40 },
-   { 0x00800040, 0x29c04529, 0x00ad09c0, 0x00ad0ac1 },
-   { 0x00800040, 0x29e04529, 0x00ad09e0, 0x00ad0ae1 },
-   { 0x00800040, 0x2a004529, 0x00ad0a00, 0x00ad0b01 },
-   { 0x00800040, 0x2a204529, 0x00ad0a20, 0x00ad0b21 },
-   { 0x00800040, 0x29c04529, 0x00ad09c0, 0x00ad0ae1 },
-   { 0x00800040, 0x29e04529, 0x00ad09e0, 0x00ad0b01 },
-   { 0x00800040, 0x2a004529, 0x00ad0a00, 0x00ad0b21 },
-   { 0x00800040, 0x2a204529, 0x00ad0a20, 0x00ad0b41 },
-   { 0x00800040, 0x2a404629, 0x00ad0b60, 0x00ad0b80 },
-   { 0x00800040, 0x2a604629, 0x00ad0b80, 0x00ad0ba0 },
-   { 0x00800040, 0x2a804629, 0x00ad0ba0, 0x00ad0bc0 },
-   { 0x00800040, 0x2aa04629, 0x00ad0bc0, 0x00ad0be0 },
-   { 0x00800040, 0x2a404529, 0x00ad0a40, 0x00ad0b61 },
-   { 0x00800040, 0x2a604529, 0x00ad0a60, 0x00ad0b81 },
-   { 0x00800040, 0x2a804529, 0x00ad0a80, 0x00ad0ba1 },
-   { 0x00800040, 0x2aa04529, 0x00ad0aa0, 0x00ad0bc1 },
-   { 0x00800040, 0x2a404529, 0x00ad0a40, 0x00ad0b81 },
-   { 0x00800040, 0x2a604529, 0x00ad0a60, 0x00ad0ba1 },
-   { 0x00800040, 0x2a804529, 0x00ad0a80, 0x00ad0bc1 },
-   { 0x00800040, 0x2aa04529, 0x00ad0aa0, 0x00ad0be1 },
-   { 0x80800008, 0x29c02d29, 0x00b109c0, 0x00020002 },
-   { 0x80800008, 0x29e02d29, 0x00b109e0, 0x00020002 },
-   { 0x80800008, 0x2a002d29, 0x00b10a00, 0x00020002 },
-   { 0x80800008, 0x2a202d29, 0x00b10a20, 0x00020002 },
-   { 0x80800008, 0x2a402d29, 0x00b10a40, 0x00020002 },
-   { 0x80800008, 0x2a602d29, 0x00b10a60, 0x00020002 },
-   { 0x80800008, 0x2a802d29, 0x00b10a80, 0x00020002 },
-   { 0x80800008, 0x2aa02d29, 0x00b10aa0, 0x00020002 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000028 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0007000f },
-   { 0x00800031, 0x2ac01d29, 0x00ad0e60, 0x0414a005 },
-   { 0x00800031, 0x2b601d29, 0x00ad0e60, 0x0414a006 },
-   { 0x80800042, 0x29c04629, 0x00ad0ac0, 0x00ad0ac1 },
-   { 0x80800042, 0x29e04629, 0x00ad0ae0, 0x00ad0ae1 },
-   { 0x80800042, 0x2a004629, 0x00ad0b00, 0x00ad0b01 },
-   { 0x80800042, 0x2a204629, 0x00ad0b20, 0x00ad0b21 },
-   { 0x80800042, 0x2a404629, 0x00ad0b60, 0x00ad0b61 },
-   { 0x80800042, 0x2a604629, 0x00ad0b80, 0x00ad0b81 },
-   { 0x80800042, 0x2a804629, 0x00ad0ba0, 0x00ad0ba1 },
-   { 0x80800042, 0x2aa04629, 0x00ad0bc0, 0x00ad0bc1 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x0000001c },
-   { 0x01000005, 0x20002d3c, 0x00210038, 0x00020002 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x0000000f },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0007000f },
-   { 0x00800031, 0x2ac01d29, 0x00ad0e60, 0x0414a005 },
-   { 0x00800031, 0x2b601d29, 0x00ad0e60, 0x0414a006 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0000000f },
-   { 0x00800031, 0x2b401d29, 0x00ad0e60, 0x0411a005 },
-   { 0x00800031, 0x2be01d29, 0x00ad0e60, 0x0411a006 },
-   { 0x80800042, 0x29c04629, 0x00ad0ac0, 0x00ad0ae0 },
-   { 0x80800042, 0x29e04629, 0x00ad0ae0, 0x00ad0b00 },
-   { 0x80800042, 0x2a004629, 0x00ad0b00, 0x00ad0b20 },
-   { 0x80800042, 0x2a204629, 0x00ad0b20, 0x00ad0b40 },
-   { 0x80800042, 0x2a404629, 0x00ad0b60, 0x00ad0b80 },
-   { 0x80800042, 0x2a604629, 0x00ad0b80, 0x00ad0ba0 },
-   { 0x80800042, 0x2a804629, 0x00ad0ba0, 0x00ad0bc0 },
-   { 0x80800042, 0x2aa04629, 0x00ad0bc0, 0x00ad0be0 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x0000000b },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0007000f },
-   { 0x00800031, 0x2ac01d29, 0x00ad0e60, 0x0414a005 },
-   { 0x00800031, 0x2b601d29, 0x00ad0e60, 0x0414a006 },
-   { 0x00800001, 0x29c00229, 0x00ad0ac0, 0x00000000 },
-   { 0x00800001, 0x29e00229, 0x00ad0ae0, 0x00000000 },
-   { 0x00800001, 0x2a000229, 0x00ad0b00, 0x00000000 },
-   { 0x00800001, 0x2a200229, 0x00ad0b20, 0x00000000 },
-   { 0x00800001, 0x2a400229, 0x00ad0b60, 0x00000000 },
-   { 0x00800001, 0x2a600229, 0x00ad0b80, 0x00000000 },
-   { 0x00800001, 0x2a800229, 0x00ad0ba0, 0x00000000 },
-   { 0x00800001, 0x2aa00229, 0x00ad0bc0, 0x00000000 },
-   { 0x00600001, 0x25900129, 0x008d09c0, 0x00000000 },
-   { 0x00600001, 0x25b00129, 0x008d09e0, 0x00000000 },
-   { 0x00600001, 0x25d00129, 0x008d0a00, 0x00000000 },
-   { 0x00600001, 0x25f00129, 0x008d0a20, 0x00000000 },
-   { 0x00600001, 0x26100129, 0x008d0a40, 0x00000000 },
-   { 0x00600001, 0x26300129, 0x008d0a60, 0x00000000 },
-   { 0x00600001, 0x26500129, 0x008d0a80, 0x00000000 },
-   { 0x00600001, 0x26700129, 0x008d0aa0, 0x00000000 },
-   { 0x00600001, 0x20200021, 0x008d0980, 0x00000000 },
-   { 0x00800001, 0x458101f1, 0x00000000, 0x00000000 },
-   { 0x00800001, 0x45a101f1, 0x00000000, 0x00000000 },
-   { 0x00800001, 0x45c101f1, 0x00000000, 0x00000000 },
-   { 0x00800001, 0x45e101f1, 0x00000000, 0x00000000 },
-   { 0x00800001, 0x460101f1, 0x00000000, 0x00000000 },
-   { 0x00800001, 0x462101f1, 0x00000000, 0x00000000 },
-   { 0x00800001, 0x464101f1, 0x00000000, 0x00000000 },
-   { 0x00800001, 0x466101f1, 0x00000000, 0x00000000 },
-   { 0x02000005, 0x20002e3c, 0x0021003e, 0x00010001 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000011 },
-   { 0x00800040, 0x238045ad, 0x00b10060, 0x00b20380 },
-   { 0x00800040, 0x23a045ad, 0x00b10080, 0x00b203a0 },
-   { 0x00800040, 0x23c045ad, 0x00b100a0, 0x00b203c0 },
-   { 0x00800040, 0x23e045ad, 0x00b100c0, 0x00b203e0 },
-   { 0x00800040, 0x240045ad, 0x00b100e0, 0x00b20400 },
-   { 0x00800040, 0x242045ad, 0x00b10100, 0x00b20420 },
-   { 0x00800040, 0x244045ad, 0x00b10120, 0x00b20440 },
-   { 0x00800040, 0x246045ad, 0x00b10140, 0x00b20460 },
-   { 0x00800040, 0x248045ad, 0x00b10160, 0x00b20480 },
-   { 0x00800040, 0x24a045ad, 0x00b10180, 0x00b204a0 },
-   { 0x00800040, 0x24c045ad, 0x00b101a0, 0x00b204c0 },
-   { 0x00800040, 0x24e045ad, 0x00b101c0, 0x00b204e0 },
-   { 0x00800040, 0x250045ad, 0x00b101e0, 0x00b20500 },
-   { 0x00800040, 0x252045ad, 0x00b10200, 0x00b20520 },
-   { 0x00800040, 0x254045ad, 0x00b10220, 0x00b20540 },
-   { 0x00800040, 0x256045ad, 0x00b10240, 0x00b20560 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000010 },
-   { 0x00800040, 0x238045ad, 0x00b10060, 0x00b20380 },
-   { 0x00800040, 0x23a045ad, 0x00b10160, 0x00b203a0 },
-   { 0x00800040, 0x23c045ad, 0x00b10080, 0x00b203c0 },
-   { 0x00800040, 0x23e045ad, 0x00b10180, 0x00b203e0 },
-   { 0x00800040, 0x240045ad, 0x00b100a0, 0x00b20400 },
-   { 0x00800040, 0x242045ad, 0x00b101a0, 0x00b20420 },
-   { 0x00800040, 0x244045ad, 0x00b100c0, 0x00b20440 },
-   { 0x00800040, 0x246045ad, 0x00b101c0, 0x00b20460 },
-   { 0x00800040, 0x248045ad, 0x00b100e0, 0x00b20480 },
-   { 0x00800040, 0x24a045ad, 0x00b101e0, 0x00b204a0 },
-   { 0x00800040, 0x24c045ad, 0x00b10100, 0x00b204c0 },
-   { 0x00800040, 0x24e045ad, 0x00b10200, 0x00b204e0 },
-   { 0x00800040, 0x250045ad, 0x00b10120, 0x00b20500 },
-   { 0x00800040, 0x252045ad, 0x00b10220, 0x00b20520 },
-   { 0x00800040, 0x254045ad, 0x00b10140, 0x00b20540 },
-   { 0x00800040, 0x256045ad, 0x00b10240, 0x00b20560 },
-   { 0x00000001, 0x20280061, 0x00000000, 0x000f000f },
-   { 0x80800001, 0x438001b1, 0x00b10380, 0x00000000 },
-   { 0x80800001, 0x43a001b1, 0x00b103a0, 0x00000000 },
-   { 0x80800001, 0x43c001b1, 0x00b103c0, 0x00000000 },
-   { 0x80800001, 0x43e001b1, 0x00b103e0, 0x00000000 },
-   { 0x80800001, 0x440001b1, 0x00b10400, 0x00000000 },
-   { 0x80800001, 0x442001b1, 0x00b10420, 0x00000000 },
-   { 0x80800001, 0x444001b1, 0x00b10440, 0x00000000 },
-   { 0x80800001, 0x446001b1, 0x00b10460, 0x00000000 },
-   { 0x80800001, 0x448001b1, 0x00b10480, 0x00000000 },
-   { 0x80800001, 0x44a001b1, 0x00b104a0, 0x00000000 },
-   { 0x80800001, 0x44c001b1, 0x00b104c0, 0x00000000 },
-   { 0x80800001, 0x44e001b1, 0x00b104e0, 0x00000000 },
-   { 0x80800001, 0x450001b1, 0x00b10500, 0x00000000 },
-   { 0x80800001, 0x452001b1, 0x00b10520, 0x00000000 },
-   { 0x80800001, 0x454001b1, 0x00b10540, 0x00000000 },
-   { 0x80800001, 0x456001b1, 0x00b10560, 0x00000000 },
-   { 0x00800001, 0x20200232, 0x00b20380, 0x00000000 },
-   { 0x00800001, 0x20300232, 0x00b203a0, 0x00000000 },
-   { 0x00800001, 0x20400232, 0x00b203c0, 0x00000000 },
-   { 0x00800001, 0x20500232, 0x00b203e0, 0x00000000 },
-   { 0x00800001, 0x20600232, 0x00b20400, 0x00000000 },
-   { 0x00800001, 0x20700232, 0x00b20420, 0x00000000 },
-   { 0x00800001, 0x20800232, 0x00b20440, 0x00000000 },
-   { 0x00800001, 0x20900232, 0x00b20460, 0x00000000 },
-   { 0x00800001, 0x20a00232, 0x00b20480, 0x00000000 },
-   { 0x00800001, 0x20b00232, 0x00b204a0, 0x00000000 },
-   { 0x00800001, 0x20c00232, 0x00b204c0, 0x00000000 },
-   { 0x00800001, 0x20d00232, 0x00b204e0, 0x00000000 },
-   { 0x00800001, 0x20e00232, 0x00b20500, 0x00000000 },
-   { 0x00800001, 0x20f00232, 0x00b20520, 0x00000000 },
-   { 0x00800001, 0x21000232, 0x00b20540, 0x00000000 },
-   { 0x00800001, 0x21100232, 0x00b20560, 0x00000000 },
-   { 0x00800031, 0x24001d28, 0x008d0020, 0x05902000 },
-   { 0x00000001, 0x20280061, 0x00000000, 0x00070007 },
-   { 0x00200008, 0x20201c21, 0x00450020, 0x00000001 },
-   { 0x00800040, 0x258025a9, 0x00b10260, 0x00b10580 },
-   { 0x00800040, 0x25a025a9, 0x00b10280, 0x00b105a0 },
-   { 0x00800040, 0x25c025a9, 0x00b102a0, 0x00b105c0 },
-   { 0x00800040, 0x25e025a9, 0x00b102c0, 0x00b105e0 },
-   { 0x80800001, 0x45800131, 0x00b10580, 0x00000000 },
-   { 0x80800001, 0x45a00131, 0x00b105a0, 0x00000000 },
-   { 0x80800001, 0x45c00131, 0x00b105c0, 0x00000000 },
-   { 0x80800001, 0x45e00131, 0x00b105e0, 0x00000000 },
-   { 0x00800001, 0x20200232, 0x00b20580, 0x00000000 },
-   { 0x00800001, 0x20300232, 0x00b205a0, 0x00000000 },
-   { 0x00800001, 0x20400232, 0x00b205c0, 0x00000000 },
-   { 0x00800001, 0x20500232, 0x00b205e0, 0x00000000 },
-   { 0x00800031, 0x24001d28, 0x008d0020, 0x05302001 },
-   { 0x00800040, 0x260025a9, 0x00b102e0, 0x00b10600 },
-   { 0x00800040, 0x262025a9, 0x00b10300, 0x00b10620 },
-   { 0x00800040, 0x264025a9, 0x00b10320, 0x00b10640 },
-   { 0x00800040, 0x266025a9, 0x00b10340, 0x00b10660 },
-   { 0x80800001, 0x46000131, 0x00b10600, 0x00000000 },
-   { 0x80800001, 0x46200131, 0x00b10620, 0x00000000 },
-   { 0x80800001, 0x46400131, 0x00b10640, 0x00000000 },
-   { 0x80800001, 0x46600131, 0x00b10660, 0x00000000 },
-   { 0x00800001, 0x20200232, 0x00b20600, 0x00000000 },
-   { 0x00800001, 0x20300232, 0x00b20620, 0x00000000 },
-   { 0x00800001, 0x20400232, 0x00b20640, 0x00000000 },
-   { 0x00800001, 0x20500232, 0x00b20660, 0x00000000 },
-   { 0x00800031, 0x24001d28, 0x008d0020, 0x05302002 },
-   { 0x00800031, 0x24001d28, 0x008d0000, 0x87100000 },
+   { 0x00000001, 0x22000060, 0x00000000, 0x00000a56 },
+   { 0x00000001, 0x2fc80001, 0x00001400, 0x00000000 },
+   { 0x00000040, 0x34000c20, 0x002102a0, 0x00000030 },
+   { 0x00802001, 0x29500129, 0x008d0400, 0x00000000 },
+   { 0x00802001, 0x29900129, 0x008d0440, 0x00000000 },
+   { 0x00802001, 0x29d00129, 0x008d0480, 0x00000000 },
+   { 0x00802001, 0x2a100129, 0x008d04c0, 0x00000000 },
+   { 0x00000040, 0x34000c20, 0x002102a0, 0x00000040 },
diff --git a/src/xvmc/shader/mc/frame_backward_igd.g4a b/src/xvmc/shader/mc/frame_backward_igd.g4a
index 338ae1e..774c119 100644
--- a/src/xvmc/shader/mc/frame_backward_igd.g4a
+++ b/src/xvmc/shader/mc/frame_backward_igd.g4a
@@ -1,69 +1,50 @@
+/* GRF allocation:
+   g1~g30: constant buffer
+           g1~g2:intra IQ matrix
+           g3~g4:non intra IQ matrix
+           g5~g20:IDCT table
+   g31:    thread payload 
+   g32:    message descriptor for reading reference data
+   g58~g81:reference data
+   g82:    thread payload backup
+   g83~g106:IDCT data                           */
 /*
- * Copyright © 2008 Intel Corporation
- *
- * Permission is hereby granted, free of charge, to any person obtaining a
- * copy of this software and associated documentation files (the "Software"),
- * to deal in the Software without restriction, including without limitation
- * the rights to use, copy, modify, merge, publish, distribute, sublicense,
- * and/or sell copies of the Software, and to permit persons to whom the
- * Software is furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice (including the next
- * paragraph) shall be included in all copies or substantial portions of the
- * Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
- * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
- * SOFTWARE.
- *
- * Author:
- *    Zou Nan hai <nanhai.zou at intel.com>
- *    Zhang Hua jun <huajun.zhang at intel.com>
- *    Xing Dong sheng <dongsheng.xing at intel.com>
- *
- */
-
-/* shader for backward predict mc
+mov (8) g82.0<1>UD g31.0<8,8,1>UD {align1};
+define(`UV_red',`0xffffffffUD')
+define(`UV_white',`0x7f7f7f7fUD')
+define(`UV_green',`0x00000000UD')
+mov(1) g31.8<1>UD 0x000f000fUD  { align1 };
+mov(16) m1<1>UD 0xFFFFFFFFUD {align1 compr};
+mov(16) m3<1>UD 0xFFFFFFFFUD {align1 compr};
+mov(16) m5<1>UD 0xFFFFFFFFUD {align1 compr};
+mov(16) m7<1>UD 0xFFFFFFFFUD {align1 compr};
+send (16) 0 acc0<1>UW g31<8,8,1>UW write(0, 0, 2, 0) mlen 9 rlen 0 { align1 };
+shr (2) g31.0<1>UD g82.0<2,2,1>UD  1UW {align1};
+mov(1) g31.8<1>UD 0x00070007UD  { align1 };
+mov (16) m1<1>UD UV_green {align1 compr};
+send (16) 0 acc0<1>UW g31<8,8,1>UW write(2, 0, 2, 0) mlen 3 rlen 0 { align1 };
+send (16) 0 acc0<1>UW g31<8,8,1>UW write(1, 0, 2, 0) mlen 3 rlen 0 { align1 };
+send (16) 0 acc0<1>UW g0<8,8,1>UW 
+	thread_spawner(0, 0, 0) mlen 1 rlen 0 { align1 EOT};
 */
-mov (8) g76.0<1>UD g1.0<8,8,1>UD {align1};
-//mov (8) g77.0<1>UD g2.0<8,8,1>UD {align1};
 
-include(`block_clear.g4i')
+mov (8) g82.0<1>UD g31.0<8,8,1>UD {align1};
+mov (1) g126.8<1>UD ip {align1};
+add (1) ip g21.0<1,1,1>UD 0x50UD {align1};  //jump to the lib to do IDCT         
+ 
+//Y, (x', y') = (x, y) + (motion_vector.x >> 1, motion_vector.y >> 1) 
+asr (2) g31.14<1>W g82.18<2,2,1>W 1W {align1};
+add (2) g32.0<1>UD g31.0<2,2,1>UD g31.14<2,2,1>W {align1};
+mov (1) g32.16<1>UW 1UW {align1};           //0:forward 1:backward
+mov (1) a0.0<1>UD 0x0A52UD {align1};        //g82.18,motion vector
+mov (1) g126.8<1>UD ip {align1};
+add (1) ip g21.0<1,1,1>UD 0x0UD {align1};   //jump to the lib to read reference data  
 
-mov (2) g1.14<1>UW g1.18<2,2,1>UW {align1};
-/* save payload */
-mov (8) g115.0<1>UD g1.0<8,8,1>UD {align1}; 
-/* 8x8 media read/write payload */
-mov (1) g1.8<1>UD 0x0070007UD {align1};  
-/* save payload, again */
-define(`dest', `g118')
-define(`input_surface',	`7')
-define(`mv1',	`g115.14')
-define(`mv2',	`g115.16')
-/* Y */
-/* (x', y') = (x, y) + (motion_vector.x >> 1, motion_vector.y >> 1) */
-asr (2) g1.14<1>W g115.14<2,2,1>W 1W {align1};
-add (2) g2.0<1>UD g115.0<2,2,1>UD g1.14<2,2,1>W {align1};
-include(`motion_frame_y_igd.g4i')
-/* motion_vector = motion_vector >> 1 */
-/* (x', y') = (x, y) + (motion_vector.x >> 1, motion_vector.y >> 1) */
-shr (2) g1.0<1>UD g115.0<2,2,1>UD 1UD {align1};
-asr (2) g115.14<1>W g115.14<2,2,1>W 1W {align1};
-asr (2) g1.14<1>W g115.14<2,2,1>W 1W {align1};
-add (2) g2.0<1>UD g1.0<2,2,1>UD g1.14<2,2,1>W {align1};
-/* U */
-define(`input_surface1',	`8')
-define(`input_surface2',	`9')
-mov (1) g2.8<1>UD 0x007000fUD  {align1};
-include(`motion_frame_uv_igd.g4i')
+//UV, (x', y') = (x >> 1, y >> 1) + (motion_vector.x >> 2, motion_vector.y >> 2)
+shr (2) g31.0<1>UD g31.0<2,2,1>UD 1UD {align1};
+asr (2) g31.14<1>W g82.18<2,2,1>W 2W {align1};
+add (2) g32.0<1>UD g31.0<2,2,1>UD g31.14<2,2,1>W {align1};
+mov (1) g126.8<1>UD ip {align1};
+add (1) ip g21.0<1,1,1>UD 0x10UD {align1};          //jump to the lib to read reference data  
 
-/* V */
-/* (x', y') = (x, y) + (motion_vector.x >> 1, motion_vector.y >> 1) */
-include(`addidct.g4i')
-
-send (16) 0 acc0<1>UW g0<8,8,1>UW 
-	thread_spawner(0, 0, 0) mlen 1 rlen 0 { align1 EOT};
+add (1) ip g21.0<1,1,1>UD 0x40UD {align1};          //jump to the lib to add the reference and idct data
diff --git a/src/xvmc/shader/mc/frame_backward_igd.g4b b/src/xvmc/shader/mc/frame_backward_igd.g4b
index dbb1320..1b533e5 100644
--- a/src/xvmc/shader/mc/frame_backward_igd.g4b
+++ b/src/xvmc/shader/mc/frame_backward_igd.g4b
@@ -1,374 +1,15 @@
-   { 0x00600001, 0x29800021, 0x008d0020, 0x00000000 },
-   { 0x02000005, 0x20000c3c, 0x00210040, 0x00000001 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000030 },
-   { 0x00000040, 0x20480c21, 0x00210988, 0x00000000 },
-   { 0x00800031, 0x20601c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x20801c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x20a01c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x20c01c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x20e01c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x21001c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x21201c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x21401c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x21601c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x21801c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x21a01c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x21c01c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x21e01c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x22001c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x22201c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x22401c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x22601c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x22801c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x22a01c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x22c01c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x22e01c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x23001c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x23201c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x23401c21, 0x00b10040, 0x04110203 },
-   { 0x02000005, 0x20002d3c, 0x0021098c, 0x00200020 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000008 },
-   { 0x00600001, 0x20600169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x20800169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x20a00169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x20c00169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x20e00169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x21000169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x21200169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x21400169, 0x00000000, 0x00000000 },
-   { 0x02000005, 0x20002d3c, 0x0021002c, 0x00100010 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000008 },
-   { 0x00600001, 0x20700169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x20900169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x20b00169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x20d00169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x20f00169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x21100169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x21300169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x21500169, 0x00000000, 0x00000000 },
-   { 0x02000005, 0x20002d3c, 0x0021002c, 0x00080008 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000008 },
-   { 0x00600001, 0x21600169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x21800169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x21a00169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x21c00169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x21e00169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x22000169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x22200169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x22400169, 0x00000000, 0x00000000 },
-   { 0x02000005, 0x20002d3c, 0x0021002c, 0x00040004 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000008 },
-   { 0x00600001, 0x21700169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x21900169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x21b00169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x21d00169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x21f00169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x22100169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x22300169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x22500169, 0x00000000, 0x00000000 },
-   { 0x02000005, 0x20002d3c, 0x0021002c, 0x00020002 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000004 },
-   { 0x00800001, 0x22600169, 0x00000000, 0x00000000 },
-   { 0x00800001, 0x22800169, 0x00000000, 0x00000000 },
-   { 0x00800001, 0x22a00169, 0x00000000, 0x00000000 },
-   { 0x00800001, 0x22c00169, 0x00000000, 0x00000000 },
-   { 0x02000005, 0x20002d3c, 0x0021002c, 0x00010001 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000004 },
-   { 0x00800001, 0x22e00169, 0x00000000, 0x00000000 },
-   { 0x00800001, 0x23000169, 0x00000000, 0x00000000 },
-   { 0x00800001, 0x23200169, 0x00000000, 0x00000000 },
-   { 0x00800001, 0x23400169, 0x00000000, 0x00000000 },
-   { 0x00200001, 0x202e0129, 0x00450032, 0x00000000 },
-   { 0x00600001, 0x2e600021, 0x008d0020, 0x00000000 },
-   { 0x00000001, 0x20280061, 0x00000000, 0x00070007 },
-   { 0x0020000c, 0x202e3dad, 0x00450e6e, 0x00010001 },
-   { 0x00200040, 0x20403421, 0x00450e60, 0x0045002e },
-   { 0x01000005, 0x20000d3c, 0x00210e6e, 0x00000001 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x0000005f },
-   { 0x01000005, 0x20000d3c, 0x00210e70, 0x00000001 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000048 },
-   { 0x00000001, 0x20480061, 0x00000000, 0x0007001f },
-   { 0x00800031, 0x2c401d29, 0x008d0040, 0x0418a007 },
-   { 0x00000040, 0x20440c21, 0x00210044, 0x00000008 },
-   { 0x00800031, 0x2d401d29, 0x008d0040, 0x0418a007 },
-   { 0x00000040, 0x20440c21, 0x00210044, 0x00000008 },
-   { 0x00000001, 0x20480061, 0x00000000, 0x0000001f },
-   { 0x00800031, 0x2f001d29, 0x008d0040, 0x0411a007 },
-   { 0x00800040, 0x23804629, 0x00b10c40, 0x00b10c41 },
-   { 0x00800040, 0x23a04629, 0x00b10c60, 0x00b10c61 },
-   { 0x00800040, 0x23c04629, 0x00b10c80, 0x00b10c81 },
-   { 0x00800040, 0x23e04629, 0x00b10ca0, 0x00b10ca1 },
-   { 0x00800040, 0x24004629, 0x00b10cc0, 0x00b10cc1 },
-   { 0x00800040, 0x24204629, 0x00b10ce0, 0x00b10ce1 },
-   { 0x00800040, 0x24404629, 0x00b10d00, 0x00b10d01 },
-   { 0x00800040, 0x24604629, 0x00b10d20, 0x00b10d21 },
-   { 0x00800040, 0x24804629, 0x00b10d40, 0x00b10d41 },
-   { 0x00800040, 0x24a04629, 0x00b10d60, 0x00b10d61 },
-   { 0x00800040, 0x24c04629, 0x00b10d80, 0x00b10d81 },
-   { 0x00800040, 0x24e04629, 0x00b10da0, 0x00b10da1 },
-   { 0x00800040, 0x25004629, 0x00b10dc0, 0x00b10dc1 },
-   { 0x00800040, 0x25204629, 0x00b10de0, 0x00b10de1 },
-   { 0x00800040, 0x25404629, 0x00b10e00, 0x00b10e01 },
-   { 0x00800040, 0x25604629, 0x00b10e20, 0x00b10e21 },
-   { 0x00800040, 0x23804529, 0x00b10380, 0x00b10c60 },
-   { 0x00800040, 0x23a04529, 0x00b103a0, 0x00b10c80 },
-   { 0x00800040, 0x23c04529, 0x00b103c0, 0x00b10ca0 },
-   { 0x00800040, 0x23e04529, 0x00b103e0, 0x00b10cc0 },
-   { 0x00800040, 0x24004529, 0x00b10400, 0x00b10ce0 },
-   { 0x00800040, 0x24204529, 0x00b10420, 0x00b10d00 },
-   { 0x00800040, 0x24404529, 0x00b10440, 0x00b10d20 },
-   { 0x00800040, 0x24604529, 0x00b10460, 0x00b10d40 },
-   { 0x00800040, 0x24804529, 0x00b10480, 0x00b10d60 },
-   { 0x00800040, 0x24a04529, 0x00b104a0, 0x00b10d80 },
-   { 0x00800040, 0x24c04529, 0x00b104c0, 0x00b10da0 },
-   { 0x00800040, 0x24e04529, 0x00b104e0, 0x00b10dc0 },
-   { 0x00800040, 0x25004529, 0x00b10500, 0x00b10de0 },
-   { 0x00800040, 0x25204529, 0x00b10520, 0x00b10e00 },
-   { 0x00800040, 0x25404529, 0x00b10540, 0x00b10e20 },
-   { 0x00800040, 0x25604529, 0x00b10560, 0x00b10f00 },
-   { 0x00800040, 0x23804529, 0x00b10380, 0x00b10c61 },
-   { 0x00800040, 0x23a04529, 0x00b103a0, 0x00b10c81 },
-   { 0x00800040, 0x23c04529, 0x00b103c0, 0x00b10ca1 },
-   { 0x00800040, 0x23e04529, 0x00b103e0, 0x00b10cc1 },
-   { 0x00800040, 0x24004529, 0x00b10400, 0x00b10ce1 },
-   { 0x00800040, 0x24204529, 0x00b10420, 0x00b10d01 },
-   { 0x00800040, 0x24404529, 0x00b10440, 0x00b10d21 },
-   { 0x00800040, 0x24604529, 0x00b10460, 0x00b10d41 },
-   { 0x00800040, 0x24804529, 0x00b10480, 0x00b10d61 },
-   { 0x00800040, 0x24a04529, 0x00b104a0, 0x00b10d81 },
-   { 0x00800040, 0x24c04529, 0x00b104c0, 0x00b10da1 },
-   { 0x00800040, 0x24e04529, 0x00b104e0, 0x00b10dc1 },
-   { 0x00800040, 0x25004529, 0x00b10500, 0x00b10de1 },
-   { 0x00800040, 0x25204529, 0x00b10520, 0x00b10e01 },
-   { 0x00800040, 0x25404529, 0x00b10540, 0x00b10e21 },
-   { 0x00800040, 0x25604529, 0x00b10560, 0x00b10f01 },
-   { 0x80800008, 0x23802d29, 0x00b10380, 0x00020002 },
-   { 0x80800008, 0x23a02d29, 0x00b103a0, 0x00020002 },
-   { 0x80800008, 0x23c02d29, 0x00b103c0, 0x00020002 },
-   { 0x80800008, 0x23e02d29, 0x00b103e0, 0x00020002 },
-   { 0x80800008, 0x24002d29, 0x00b10400, 0x00020002 },
-   { 0x80800008, 0x24202d29, 0x00b10420, 0x00020002 },
-   { 0x80800008, 0x24402d29, 0x00b10440, 0x00020002 },
-   { 0x80800008, 0x24602d29, 0x00b10460, 0x00020002 },
-   { 0x80800008, 0x24802d29, 0x00b10480, 0x00020002 },
-   { 0x80800008, 0x24a02d29, 0x00b104a0, 0x00020002 },
-   { 0x80800008, 0x24c02d29, 0x00b104c0, 0x00020002 },
-   { 0x80800008, 0x24e02d29, 0x00b104e0, 0x00020002 },
-   { 0x80800008, 0x25002d29, 0x00b10500, 0x00020002 },
-   { 0x80800008, 0x25202d29, 0x00b10520, 0x00020002 },
-   { 0x80800008, 0x25402d29, 0x00b10540, 0x00020002 },
-   { 0x80800008, 0x25602d29, 0x00b10560, 0x00020002 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000043 },
-   { 0x00000001, 0x20480061, 0x00000000, 0x0007001f },
-   { 0x00800031, 0x2c401d29, 0x008d0040, 0x0418a007 },
-   { 0x00000040, 0x20440c21, 0x00210044, 0x00000008 },
-   { 0x00800031, 0x2d401d29, 0x008d0040, 0x0418a007 },
-   { 0x80800042, 0x23804629, 0x00b10c40, 0x00b10c41 },
-   { 0x80800042, 0x23a04629, 0x00b10c60, 0x00b10c61 },
-   { 0x80800042, 0x23c04629, 0x00b10c80, 0x00b10c81 },
-   { 0x80800042, 0x23e04629, 0x00b10ca0, 0x00b10ca1 },
-   { 0x80800042, 0x24004629, 0x00b10cc0, 0x00b10cc1 },
-   { 0x80800042, 0x24204629, 0x00b10ce0, 0x00b10ce1 },
-   { 0x80800042, 0x24404629, 0x00b10d00, 0x00b10d01 },
-   { 0x80800042, 0x24604629, 0x00b10d20, 0x00b10d21 },
-   { 0x80800042, 0x24804629, 0x00b10d40, 0x00b10d41 },
-   { 0x80800042, 0x24a04629, 0x00b10d60, 0x00b10d61 },
-   { 0x80800042, 0x24c04629, 0x00b10d80, 0x00b10d81 },
-   { 0x80800042, 0x24e04629, 0x00b10da0, 0x00b10da1 },
-   { 0x80800042, 0x25004629, 0x00b10dc0, 0x00b10dc1 },
-   { 0x80800042, 0x25204629, 0x00b10de0, 0x00b10de1 },
-   { 0x80800042, 0x25404629, 0x00b10e00, 0x00b10e01 },
-   { 0x80800042, 0x25604629, 0x00b10e20, 0x00b10e21 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x0000002e },
-   { 0x01000005, 0x20000d3c, 0x00210e70, 0x00000001 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000018 },
-   { 0x00000001, 0x20480061, 0x00000000, 0x0007001f },
-   { 0x00800031, 0x2c401d29, 0x008d0040, 0x0418a007 },
-   { 0x00000040, 0x20440c21, 0x00210044, 0x00000008 },
-   { 0x00800031, 0x2d401d29, 0x008d0040, 0x0418a007 },
-   { 0x00000040, 0x20440c21, 0x00210044, 0x00000008 },
-   { 0x00000001, 0x20480061, 0x00000000, 0x0000001f },
-   { 0x00800031, 0x2f001d29, 0x008d0040, 0x0411a007 },
-   { 0x80800042, 0x23804629, 0x00b10c40, 0x00b10c60 },
-   { 0x80800042, 0x23a04629, 0x00b10c60, 0x00b10c80 },
-   { 0x80800042, 0x23c04629, 0x00b10c80, 0x00b10ca0 },
-   { 0x80800042, 0x23e04629, 0x00b10ca0, 0x00b10cc0 },
-   { 0x80800042, 0x24004629, 0x00b10cc0, 0x00b10ce0 },
-   { 0x80800042, 0x24204629, 0x00b10ce0, 0x00b10d00 },
-   { 0x80800042, 0x24404629, 0x00b10d00, 0x00b10d20 },
-   { 0x80800042, 0x24604629, 0x00b10d20, 0x00b10d40 },
-   { 0x80800042, 0x24804629, 0x00b10d40, 0x00b10d60 },
-   { 0x80800042, 0x24a04629, 0x00b10d60, 0x00b10d80 },
-   { 0x80800042, 0x24c04629, 0x00b10d80, 0x00b10da0 },
-   { 0x80800042, 0x24e04629, 0x00b10da0, 0x00b10dc0 },
-   { 0x80800042, 0x25004629, 0x00b10dc0, 0x00b10de0 },
-   { 0x80800042, 0x25204629, 0x00b10de0, 0x00b10e00 },
-   { 0x80800042, 0x25404629, 0x00b10e00, 0x00b10e20 },
-   { 0x80800042, 0x25604629, 0x00b10e20, 0x00b10f00 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000014 },
-   { 0x00000001, 0x20480061, 0x00000000, 0x0007001f },
-   { 0x00800031, 0x2c401d29, 0x008d0040, 0x0418a007 },
-   { 0x00000040, 0x20440c21, 0x00210044, 0x00000008 },
-   { 0x00800031, 0x2d401d29, 0x008d0040, 0x0418a007 },
-   { 0x00800001, 0x23800229, 0x00b10c40, 0x00000000 },
-   { 0x00800001, 0x23a00229, 0x00b10c60, 0x00000000 },
-   { 0x00800001, 0x23c00229, 0x00b10c80, 0x00000000 },
-   { 0x00800001, 0x23e00229, 0x00b10ca0, 0x00000000 },
-   { 0x00800001, 0x24000229, 0x00b10cc0, 0x00000000 },
-   { 0x00800001, 0x24200229, 0x00b10ce0, 0x00000000 },
-   { 0x00800001, 0x24400229, 0x00b10d00, 0x00000000 },
-   { 0x00800001, 0x24600229, 0x00b10d20, 0x00000000 },
-   { 0x00800001, 0x24800229, 0x00b10d40, 0x00000000 },
-   { 0x00800001, 0x24a00229, 0x00b10d60, 0x00000000 },
-   { 0x00800001, 0x24c00229, 0x00b10d80, 0x00000000 },
-   { 0x00800001, 0x24e00229, 0x00b10da0, 0x00000000 },
-   { 0x00800001, 0x25000229, 0x00b10dc0, 0x00000000 },
-   { 0x00800001, 0x25200229, 0x00b10de0, 0x00000000 },
-   { 0x00800001, 0x25400229, 0x00b10e00, 0x00000000 },
-   { 0x00800001, 0x25600229, 0x00b10e20, 0x00000000 },
-   { 0x00200008, 0x20200c21, 0x00450e60, 0x00000001 },
-   { 0x0020000c, 0x2e6e3dad, 0x00450e6e, 0x00010001 },
-   { 0x0020000c, 0x202e3dad, 0x00450e6e, 0x00010001 },
-   { 0x00200040, 0x20403421, 0x00450020, 0x0045002e },
-   { 0x00000001, 0x20480061, 0x00000000, 0x0007000f },
-   { 0x00800031, 0x2ac01d29, 0x008d0040, 0x0414a008 },
-   { 0x00800031, 0x2b401d29, 0x008d0040, 0x0414a009 },
-   { 0x00800001, 0x25800229, 0x00ad0ac0, 0x00000000 },
-   { 0x00800001, 0x25a00229, 0x00ad0ae0, 0x00000000 },
-   { 0x00800001, 0x25c00229, 0x00ad0b00, 0x00000000 },
-   { 0x00800001, 0x25e00229, 0x00ad0b20, 0x00000000 },
-   { 0x00800001, 0x26000229, 0x00ad0b40, 0x00000000 },
-   { 0x00800001, 0x26200229, 0x00ad0b60, 0x00000000 },
-   { 0x00800001, 0x26400229, 0x00ad0b80, 0x00000000 },
-   { 0x00800001, 0x26600229, 0x00ad0ba0, 0x00000000 },
-   { 0x00600001, 0x20200021, 0x008d0980, 0x00000000 },
-   { 0x00800001, 0x458101f1, 0x00000000, 0x00000000 },
-   { 0x00800001, 0x45a101f1, 0x00000000, 0x00000000 },
-   { 0x00800001, 0x45c101f1, 0x00000000, 0x00000000 },
-   { 0x00800001, 0x45e101f1, 0x00000000, 0x00000000 },
-   { 0x00800001, 0x460101f1, 0x00000000, 0x00000000 },
-   { 0x00800001, 0x462101f1, 0x00000000, 0x00000000 },
-   { 0x00800001, 0x464101f1, 0x00000000, 0x00000000 },
-   { 0x00800001, 0x466101f1, 0x00000000, 0x00000000 },
-   { 0x02000005, 0x20002e3c, 0x0021003e, 0x00010001 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000011 },
-   { 0x00800040, 0x238045ad, 0x00b10060, 0x00b20380 },
-   { 0x00800040, 0x23a045ad, 0x00b10080, 0x00b203a0 },
-   { 0x00800040, 0x23c045ad, 0x00b100a0, 0x00b203c0 },
-   { 0x00800040, 0x23e045ad, 0x00b100c0, 0x00b203e0 },
-   { 0x00800040, 0x240045ad, 0x00b100e0, 0x00b20400 },
-   { 0x00800040, 0x242045ad, 0x00b10100, 0x00b20420 },
-   { 0x00800040, 0x244045ad, 0x00b10120, 0x00b20440 },
-   { 0x00800040, 0x246045ad, 0x00b10140, 0x00b20460 },
-   { 0x00800040, 0x248045ad, 0x00b10160, 0x00b20480 },
-   { 0x00800040, 0x24a045ad, 0x00b10180, 0x00b204a0 },
-   { 0x00800040, 0x24c045ad, 0x00b101a0, 0x00b204c0 },
-   { 0x00800040, 0x24e045ad, 0x00b101c0, 0x00b204e0 },
-   { 0x00800040, 0x250045ad, 0x00b101e0, 0x00b20500 },
-   { 0x00800040, 0x252045ad, 0x00b10200, 0x00b20520 },
-   { 0x00800040, 0x254045ad, 0x00b10220, 0x00b20540 },
-   { 0x00800040, 0x256045ad, 0x00b10240, 0x00b20560 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000010 },
-   { 0x00800040, 0x238045ad, 0x00b10060, 0x00b20380 },
-   { 0x00800040, 0x23a045ad, 0x00b10160, 0x00b203a0 },
-   { 0x00800040, 0x23c045ad, 0x00b10080, 0x00b203c0 },
-   { 0x00800040, 0x23e045ad, 0x00b10180, 0x00b203e0 },
-   { 0x00800040, 0x240045ad, 0x00b100a0, 0x00b20400 },
-   { 0x00800040, 0x242045ad, 0x00b101a0, 0x00b20420 },
-   { 0x00800040, 0x244045ad, 0x00b100c0, 0x00b20440 },
-   { 0x00800040, 0x246045ad, 0x00b101c0, 0x00b20460 },
-   { 0x00800040, 0x248045ad, 0x00b100e0, 0x00b20480 },
-   { 0x00800040, 0x24a045ad, 0x00b101e0, 0x00b204a0 },
-   { 0x00800040, 0x24c045ad, 0x00b10100, 0x00b204c0 },
-   { 0x00800040, 0x24e045ad, 0x00b10200, 0x00b204e0 },
-   { 0x00800040, 0x250045ad, 0x00b10120, 0x00b20500 },
-   { 0x00800040, 0x252045ad, 0x00b10220, 0x00b20520 },
-   { 0x00800040, 0x254045ad, 0x00b10140, 0x00b20540 },
-   { 0x00800040, 0x256045ad, 0x00b10240, 0x00b20560 },
-   { 0x00000001, 0x20280061, 0x00000000, 0x000f000f },
-   { 0x80800001, 0x438001b1, 0x00b10380, 0x00000000 },
-   { 0x80800001, 0x43a001b1, 0x00b103a0, 0x00000000 },
-   { 0x80800001, 0x43c001b1, 0x00b103c0, 0x00000000 },
-   { 0x80800001, 0x43e001b1, 0x00b103e0, 0x00000000 },
-   { 0x80800001, 0x440001b1, 0x00b10400, 0x00000000 },
-   { 0x80800001, 0x442001b1, 0x00b10420, 0x00000000 },
-   { 0x80800001, 0x444001b1, 0x00b10440, 0x00000000 },
-   { 0x80800001, 0x446001b1, 0x00b10460, 0x00000000 },
-   { 0x80800001, 0x448001b1, 0x00b10480, 0x00000000 },
-   { 0x80800001, 0x44a001b1, 0x00b104a0, 0x00000000 },
-   { 0x80800001, 0x44c001b1, 0x00b104c0, 0x00000000 },
-   { 0x80800001, 0x44e001b1, 0x00b104e0, 0x00000000 },
-   { 0x80800001, 0x450001b1, 0x00b10500, 0x00000000 },
-   { 0x80800001, 0x452001b1, 0x00b10520, 0x00000000 },
-   { 0x80800001, 0x454001b1, 0x00b10540, 0x00000000 },
-   { 0x80800001, 0x456001b1, 0x00b10560, 0x00000000 },
-   { 0x00800001, 0x20200232, 0x00b20380, 0x00000000 },
-   { 0x00800001, 0x20300232, 0x00b203a0, 0x00000000 },
-   { 0x00800001, 0x20400232, 0x00b203c0, 0x00000000 },
-   { 0x00800001, 0x20500232, 0x00b203e0, 0x00000000 },
-   { 0x00800001, 0x20600232, 0x00b20400, 0x00000000 },
-   { 0x00800001, 0x20700232, 0x00b20420, 0x00000000 },
-   { 0x00800001, 0x20800232, 0x00b20440, 0x00000000 },
-   { 0x00800001, 0x20900232, 0x00b20460, 0x00000000 },
-   { 0x00800001, 0x20a00232, 0x00b20480, 0x00000000 },
-   { 0x00800001, 0x20b00232, 0x00b204a0, 0x00000000 },
-   { 0x00800001, 0x20c00232, 0x00b204c0, 0x00000000 },
-   { 0x00800001, 0x20d00232, 0x00b204e0, 0x00000000 },
-   { 0x00800001, 0x20e00232, 0x00b20500, 0x00000000 },
-   { 0x00800001, 0x20f00232, 0x00b20520, 0x00000000 },
-   { 0x00800001, 0x21000232, 0x00b20540, 0x00000000 },
-   { 0x00800001, 0x21100232, 0x00b20560, 0x00000000 },
-   { 0x00800031, 0x24001d28, 0x008d0020, 0x05902000 },
-   { 0x00000001, 0x20280061, 0x00000000, 0x00070007 },
-   { 0x00200008, 0x20201c21, 0x00450020, 0x00000001 },
-   { 0x00800040, 0x258025a9, 0x00b10260, 0x00b10580 },
-   { 0x00800040, 0x25a025a9, 0x00b10280, 0x00b105a0 },
-   { 0x00800040, 0x25c025a9, 0x00b102a0, 0x00b105c0 },
-   { 0x00800040, 0x25e025a9, 0x00b102c0, 0x00b105e0 },
-   { 0x80800001, 0x45800131, 0x00b10580, 0x00000000 },
-   { 0x80800001, 0x45a00131, 0x00b105a0, 0x00000000 },
-   { 0x80800001, 0x45c00131, 0x00b105c0, 0x00000000 },
-   { 0x80800001, 0x45e00131, 0x00b105e0, 0x00000000 },
-   { 0x00800001, 0x20200232, 0x00b20580, 0x00000000 },
-   { 0x00800001, 0x20300232, 0x00b205a0, 0x00000000 },
-   { 0x00800001, 0x20400232, 0x00b205c0, 0x00000000 },
-   { 0x00800001, 0x20500232, 0x00b205e0, 0x00000000 },
-   { 0x00800031, 0x24001d28, 0x008d0020, 0x05302001 },
-   { 0x00800040, 0x260025a9, 0x00b102e0, 0x00b10600 },
-   { 0x00800040, 0x262025a9, 0x00b10300, 0x00b10620 },
-   { 0x00800040, 0x264025a9, 0x00b10320, 0x00b10640 },
-   { 0x00800040, 0x266025a9, 0x00b10340, 0x00b10660 },
-   { 0x80800001, 0x46000131, 0x00b10600, 0x00000000 },
-   { 0x80800001, 0x46200131, 0x00b10620, 0x00000000 },
-   { 0x80800001, 0x46400131, 0x00b10640, 0x00000000 },
-   { 0x80800001, 0x46600131, 0x00b10660, 0x00000000 },
-   { 0x00800001, 0x20200232, 0x00b20600, 0x00000000 },
-   { 0x00800001, 0x20300232, 0x00b20620, 0x00000000 },
-   { 0x00800001, 0x20400232, 0x00b20640, 0x00000000 },
-   { 0x00800001, 0x20500232, 0x00b20660, 0x00000000 },
-   { 0x00800031, 0x24001d28, 0x008d0020, 0x05302002 },
-   { 0x00800031, 0x24001d28, 0x008d0000, 0x87100000 },
-   { 0x00800031, 0x24001d28, 0x008d0000, 0x87100000 },
+   { 0x00600001, 0x2a400021, 0x008d03e0, 0x00000000 },
+   { 0x00000001, 0x2fc80001, 0x00001400, 0x00000000 },
+   { 0x00000040, 0x34000c20, 0x002102a0, 0x00000050 },
+   { 0x0020000c, 0x23ee3dad, 0x00450a52, 0x00010001 },
+   { 0x00200040, 0x24003421, 0x004503e0, 0x004503ee },
+   { 0x00000001, 0x24100169, 0x00000000, 0x00010001 },
+   { 0x00000001, 0x22000060, 0x00000000, 0x00000a52 },
+   { 0x00000001, 0x2fc80001, 0x00001400, 0x00000000 },
+   { 0x00000040, 0x34000c20, 0x002102a0, 0x00000000 },
+   { 0x00200008, 0x23e00c21, 0x004503e0, 0x00000001 },
+   { 0x0020000c, 0x23ee3dad, 0x00450a52, 0x00020002 },
+   { 0x00200040, 0x24003421, 0x004503e0, 0x004503ee },
+   { 0x00000001, 0x2fc80001, 0x00001400, 0x00000000 },
+   { 0x00000040, 0x34000c20, 0x002102a0, 0x00000010 },
+   { 0x00000040, 0x34000c20, 0x002102a0, 0x00000040 },
diff --git a/src/xvmc/shader/mc/frame_f_b_igd.g4a b/src/xvmc/shader/mc/frame_f_b_igd.g4a
index ca7952e..35231f1 100644
--- a/src/xvmc/shader/mc/frame_f_b_igd.g4a
+++ b/src/xvmc/shader/mc/frame_f_b_igd.g4a
@@ -1,131 +1,96 @@
+/* GRF allocation:
+   g1~g30: constant buffer
+           g1~g2:intra IQ matrix
+           g3~g4:non intra IQ matrix
+           g5~g20:IDCT table
+   g31:    thread payload 
+   g32:    message descriptor for reading reference data
+   g58~g81:reference data
+   g82:    thread payload backup
+   g83~g106:IDCT data                           */
 /*
- * Copyright © 2008 Intel Corporation
- *
- * Permission is hereby granted, free of charge, to any person obtaining a
- * copy of this software and associated documentation files (the "Software"),
- * to deal in the Software without restriction, including without limitation
- * the rights to use, copy, modify, merge, publish, distribute, sublicense,
- * and/or sell copies of the Software, and to permit persons to whom the
- * Software is furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice (including the next
- * paragraph) shall be included in all copies or substantial portions of the
- * Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
- * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
- * SOFTWARE.
- *
- * Author:
- *    Zou Nan hai <nanhai.zou at intel.com>
- *    Zhang Hua jun <huajun.zhang at intel.com>
- *    Xing Dong sheng <dongsheng.xing at intel.com>
- *
- */
-
-/* shader for forward and backward predict mc
+mov (8) g82.0<1>UD g31.0<8,8,1>UD {align1};
+define(`UV_red',`0xffffffffUD')
+define(`UV_white',`0x7f7f7f7fUD')
+define(`UV_green',`0x00000000UD')
+mov(1) g31.8<1>UD 0x000f000fUD  { align1 };
+mov(16) m1<1>UD 0xFFFFFFFFUD {align1 compr};
+mov(16) m3<1>UD 0xFFFFFFFFUD {align1 compr};
+mov(16) m5<1>UD 0xFFFFFFFFUD {align1 compr};
+mov(16) m7<1>UD 0xFFFFFFFFUD {align1 compr};
+send (16) 0 acc0<1>UW g31<8,8,1>UW write(0, 0, 2, 0) mlen 9 rlen 0 { align1 };
+shr (2) g31.0<1>UD g82.0<2,2,1>UD  1UW {align1};
+mov(1) g31.8<1>UD 0x00070007UD  { align1 };
+mov (16) m1<1>UD UV_green {align1 compr};
+send (16) 0 acc0<1>UW g31<8,8,1>UW write(2, 0, 2, 0) mlen 3 rlen 0 { align1 };
+send (16) 0 acc0<1>UW g31<8,8,1>UW write(1, 0, 2, 0) mlen 3 rlen 0 { align1 };
+send (16) 0 acc0<1>UW g0<8,8,1>UW 
+	thread_spawner(0, 0, 0) mlen 1 rlen 0 { align1 EOT};
 */
-/* (x', y') = (x, y) + (motion_vector1.x >> 1, motion_vector1.y >> 1)
-/* (x'', y'') = (x, y) + (motion_vector2.x >> 1, motion_vector2.y >> 1)
-/* f(x, y) = (motion_forward(x`, y`) + motion_backward(x'', y'') + 1) / 2 */
 
-//Save payload
-mov (8) g76.0<1>UD g1.0<8,8,1>UD {align1};
-//mov (8) g77.0<1>UD g2.0<8,8,1>UD {align1};
-include(`block_clear.g4i')
+mov (8) g82.0<1>UD g31.0<8,8,1>UD {align1};
+mov (1) g126.8<1>UD ip {align1};
+add (1) ip g21.0<1,1,1>UD 0x50UD {align1};         //jump to the lib to do IDCT
 
-mov (8) g115.0<1>UD g1.0<8,8,1>UD {align1};
-mov (1) g1.8<1>UD 0x0070007UD  {align1};
-mov (8) g2.0<1>UD g1.0<8,8,1>UD {align1};
-/* Y */
-//Forward
-asr (2) g1.14<1>W g115.14<2,2,1>W 1W {align1};
-add (2) g2.0<1>UD g115.0<2,2,1>UD g1.14<2,2,1>W {align1};
-define(`input_surface',	`4')
-define(`mv1',	`g115.14')
-define(`mv2',	`g115.16')
-include(`motion_frame_y_igd.g4i')
-mov (16) g52.0<1>UD g28.0<16,16,1>UD {align1 compr};
-mov (16) g54.0<1>UD g30.0<16,16,1>UD {align1 compr};
-mov (16) g56.0<1>UD g32.0<16,16,1>UD {align1 compr};
-mov (16) g58.0<1>UD g34.0<16,16,1>UD {align1 compr};
-mov (16) g60.0<1>UD g36.0<16,16,1>UD {align1 compr};
-mov (16) g62.0<1>UD g38.0<16,16,1>UD {align1 compr};
-mov (16) g64.0<1>UD g40.0<16,16,1>UD {align1 compr};
-mov (16) g66.0<1>UD g42.0<16,16,1>UD {align1 compr};
-//Backward
-asr (2) g1.14<1>W g115.18<2,2,1>W 1W {align1};
-add (2) g2.0<1>UD g115.0<2,2,1>UD g1.14<2,2,1>W {align1};
-define(`input_surface',	`7')
-define(`mv1',	`g115.18')
-define(`mv2',	`g115.20')
-include(`motion_frame_y_igd.g4i')
+//Y, Forward
+asr (2) g31.14<1>W g82.14<2,2,1>W 1W {align1};
+add (2) g32.0<1>UD g31.0<2,2,1>UD g31.14<2,2,1>W {align1};
+mov (1) g32.16<1>UW 0UW {align1};            //0:forward 1:backward
+mov (1) a0.0<1>UD 0x0A4EUD {align1};         //g82.14,motion vector
+mov (1) g126.8<1>UD ip {align1};
+add (1) ip g21.0<1,1,1>UD 0x0UD {align1};   //jump to the lib to read reference data 
 
-//Average
-avg.sat (16) g28.0<1>UW g28.0<16,16,1>UW g52.0<16,16,1>UW {align1};
-avg.sat (16) g29.0<1>UW g29.0<16,16,1>UW g53.0<16,16,1>UW {align1};
-avg.sat (16) g30.0<1>UW g30.0<16,16,1>UW g54.0<16,16,1>UW {align1};
-avg.sat (16) g31.0<1>UW g31.0<16,16,1>UW g55.0<16,16,1>UW {align1};
-avg.sat (16) g32.0<1>UW g32.0<16,16,1>UW g56.0<16,16,1>UW {align1};
-avg.sat (16) g33.0<1>UW g33.0<16,16,1>UW g57.0<16,16,1>UW {align1};
-avg.sat (16) g34.0<1>UW g34.0<16,16,1>UW g58.0<16,16,1>UW {align1};
-avg.sat (16) g35.0<1>UW g35.0<16,16,1>UW g59.0<16,16,1>UW {align1};
-avg.sat (16) g36.0<1>UW g36.0<16,16,1>UW g60.0<16,16,1>UW {align1};
-avg.sat (16) g37.0<1>UW g37.0<16,16,1>UW g61.0<16,16,1>UW {align1};
-avg.sat (16) g38.0<1>UW g38.0<16,16,1>UW g62.0<16,16,1>UW {align1};
-avg.sat (16) g39.0<1>UW g39.0<16,16,1>UW g63.0<16,16,1>UW {align1};
-avg.sat (16) g40.0<1>UW g40.0<16,16,1>UW g64.0<16,16,1>UW {align1};
-avg.sat (16) g41.0<1>UW g41.0<16,16,1>UW g65.0<16,16,1>UW {align1};
-avg.sat (16) g42.0<1>UW g42.0<16,16,1>UW g66.0<16,16,1>UW {align1};
-avg.sat (16) g43.0<1>UW g43.0<16,16,1>UW g67.0<16,16,1>UW {align1};
+//Save Forward
+mov (16) g108.0<1>UD g58.0<16,16,1>UD {align1 compr};
+mov (16) g110.0<1>UD g60.0<16,16,1>UD {align1 compr};
+mov (16) g112.0<1>UD g62.0<16,16,1>UD {align1 compr};
+mov (16) g114.0<1>UD g64.0<16,16,1>UD {align1 compr};
+mov (16) g116.0<1>UD g66.0<16,16,1>UD {align1 compr};
+mov (16) g118.0<1>UD g68.0<16,16,1>UD {align1 compr};
+mov (16) g120.0<1>UD g70.0<16,16,1>UD {align1 compr};
+mov (16) g122.0<1>UD g72.0<16,16,1>UD {align1 compr};
 
-/* UV */
-//Forward
-shr (2) g1.0<1>UD g115.0<2,2,1>UD 1UD {align1};
-asr (2) g115.14<1>W g115.14<2,2,1>W 1W {align1};
-asr (2) g1.14<1>W g115.14<2,2,1>W 1W {align1};
-add (2) g2.0<1>UD g1.0<2,2,1>UD g1.14<2,2,1>W {align1};
+//Y, Backward
+asr (2) g31.14<1>W g82.18<2,2,1>W 1W {align1};
+add (2) g32.0<1>UD g31.0<2,2,1>UD g31.14<2,2,1>W {align1};
+mov (1) g32.16<1>UW 1UW {align1};            //0:forward 1:backward
+mov (1) a0.0<1>UD 0x0A52UD {align1};         //g82.18,motion vector
+mov (1) g126.8<1>UD ip {align1};
+add (1) ip g21.0<1,1,1>UD 0x0UD {align1};   //jump to the lib to read reference data 
+//Average Forward and Backward
+avg (32) g58.0<1>UW g58.0<16,16,1>UW g108.0<16,16,1>UW {align1 compr};
+avg (32) g60.0<1>UW g60.0<16,16,1>UW g110.0<16,16,1>UW {align1 compr};
+avg (32) g62.0<1>UW g62.0<16,16,1>UW g112.0<16,16,1>UW {align1 compr};
+avg (32) g64.0<1>UW g64.0<16,16,1>UW g114.0<16,16,1>UW {align1 compr};
+avg (32) g66.0<1>UW g66.0<16,16,1>UW g116.0<16,16,1>UW {align1 compr};
+avg (32) g68.0<1>UW g68.0<16,16,1>UW g118.0<16,16,1>UW {align1 compr};
+avg (32) g70.0<1>UW g70.0<16,16,1>UW g120.0<16,16,1>UW {align1 compr};
+avg (32) g72.0<1>UW g72.0<16,16,1>UW g122.0<16,16,1>UW {align1 compr};
 
-define(`input_surface1',	`5')
-define(`input_surface2',	`6')
-define(`mv1',	`g115.14')
-define(`mv2',	`g115.16')
-mov (1) g2.8<1>UD 0x007000fUD  {align1};
-include(`motion_frame_uv_igd.g4i')
-mov (16) g122.0<1>UB g44.0<16,16,2>UB {align1};
-mov (16) g122.16<1>UB g45.0<16,16,2>UB {align1};
-mov (16) g123.0<1>UB g46.0<16,16,2>UB {align1};
-mov (16) g123.16<1>UB g47.0<16,16,2>UB {align1};
-mov (16) g124.0<1>UB g48.0<16,16,2>UB {align1};
-mov (16) g124.16<1>UB g49.0<16,16,2>UB {align1};
-mov (16) g125.0<1>UB g50.0<16,16,2>UB {align1};
-mov (16) g125.16<1>UB g51.0<16,16,2>UB {align1};
-//Backward
-asr (2) g115.18<1>W g115.18<2,2,1>W 1W {align1};
-asr (2) g1.14<1>W g115.18<2,2,1>W 1W {align1};
-add (2) g2.0<1>UD g1.0<2,2,1>UD g1.14<2,2,1>W {align1};
-define(`input_surface1',	`8')
-define(`input_surface2',	`9')
-define(`mv1',	`g115.18')
-define(`mv2',	`g115.20')
-mov (1) g2.8<1>UD 0x007000fUD  {align1};
-include(`motion_frame_uv_igd.g4i')
+//UV, Forward
+shr (2) g31.0<1>UD g31.0<2,2,1>UD 1UD {align1};
+asr (2) g31.14<1>W g82.14<2,2,1>W 2W {align1};
+add (2) g32.0<1>UD g31.0<2,2,1>UD g31.14<2,2,1>W {align1};
+mov (1) g32.16<1>UW 0UW {align1};                   //0:forward 1:backward
+mov (1) g126.8<1>UD ip {align1};
+add (1) ip g21.0<1,1,1>UD 0x10UD {align1};          //jump to the lib to read reference data  
 
-//Average
-avg.sat (16) g44.0<1>UW g44.0<16,16,1>UW g122.0<16,16,1>UB {align1};
-avg.sat (16) g45.0<1>UW g45.0<16,16,1>UW g122.16<16,16,1>UB {align1};
-avg.sat (16) g46.0<1>UW g46.0<16,16,1>UW g123.0<16,16,1>UB {align1};
-avg.sat (16) g47.0<1>UW g47.0<16,16,1>UW g123.16<16,16,1>UB {align1};
-avg.sat (16) g48.0<1>UW g48.0<16,16,1>UW g124.0<16,16,1>UB {align1};
-avg.sat (16) g49.0<1>UW g49.0<16,16,1>UW g124.16<16,16,1>UB {align1};
-avg.sat (16) g50.0<1>UW g50.0<16,16,1>UW g125.0<16,16,1>UB {align1};
-avg.sat (16) g51.0<1>UW g51.0<16,16,1>UW g125.16<16,16,1>UB {align1};
+//Save UV Forward
+mov (32) g108.0<1>UW g74.0<16,16,1>UW {align1 compr};
+mov (32) g110.0<1>UW g76.0<16,16,1>UW {align1 compr};
+mov (32) g112.0<1>UW g78.0<16,16,1>UW {align1 compr};
+mov (32) g114.0<1>UW g80.0<16,16,1>UW {align1 compr};
+//UV, Backward
+asr (2) g31.14<1>W g82.18<2,2,1>W 2W {align1};
+add (2) g32.0<1>UD g31.0<2,2,1>UD g31.14<2,2,1>W {align1};
+mov (1) g32.16<1>UW 1UW {align1};                   //0:forward 1:backward
+mov (1) g126.8<1>UD ip {align1};
+add (1) ip g21.0<1,1,1>UD 0x10UD {align1};          //jump to the lib to read reference data 
 
-include(`addidct.g4i')
+//Average Forward and Backward
+avg (32) g74.0<1>UW g74.0<16,16,1>UW g108.0<16,16,1>UW {align1 compr};
+avg (32) g76.0<1>UW g76.0<16,16,1>UW g110.0<16,16,1>UW {align1 compr};
+avg (32) g78.0<1>UW g78.0<16,16,1>UW g112.0<16,16,1>UW {align1 compr};
+avg (32) g80.0<1>UW g80.0<16,16,1>UW g114.0<16,16,1>UW {align1 compr};
 
-send (16) 0 acc0<1>UW g0<8,8,1>UW 
-	thread_spawner(0, 0, 0) mlen 1 rlen 0 { align1 EOT};
+add (1) ip g21.0<1,1,1>UD 0x40UD {align1};         //jump to the lib to add the reference and idct data
diff --git a/src/xvmc/shader/mc/frame_f_b_igd.g4b b/src/xvmc/shader/mc/frame_f_b_igd.g4b
index f838d7b..6505aec 100644
--- a/src/xvmc/shader/mc/frame_f_b_igd.g4b
+++ b/src/xvmc/shader/mc/frame_f_b_igd.g4b
@@ -1,573 +1,51 @@
-   { 0x00600001, 0x29800021, 0x008d0020, 0x00000000 },
-   { 0x02000005, 0x20000c3c, 0x00210040, 0x00000001 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000030 },
-   { 0x00000040, 0x20480c21, 0x00210988, 0x00000000 },
-   { 0x00800031, 0x20601c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x20801c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x20a01c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x20c01c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x20e01c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x21001c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x21201c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x21401c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x21601c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x21801c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x21a01c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x21c01c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x21e01c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x22001c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x22201c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x22401c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x22601c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x22801c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x22a01c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x22c01c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x22e01c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x23001c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x23201c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x23401c21, 0x00b10040, 0x04110203 },
-   { 0x02000005, 0x20002d3c, 0x0021098c, 0x00200020 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000008 },
-   { 0x00600001, 0x20600169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x20800169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x20a00169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x20c00169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x20e00169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x21000169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x21200169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x21400169, 0x00000000, 0x00000000 },
-   { 0x02000005, 0x20002d3c, 0x0021002c, 0x00100010 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000008 },
-   { 0x00600001, 0x20700169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x20900169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x20b00169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x20d00169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x20f00169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x21100169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x21300169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x21500169, 0x00000000, 0x00000000 },
-   { 0x02000005, 0x20002d3c, 0x0021002c, 0x00080008 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000008 },
-   { 0x00600001, 0x21600169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x21800169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x21a00169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x21c00169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x21e00169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x22000169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x22200169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x22400169, 0x00000000, 0x00000000 },
-   { 0x02000005, 0x20002d3c, 0x0021002c, 0x00040004 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000008 },
-   { 0x00600001, 0x21700169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x21900169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x21b00169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x21d00169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x21f00169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x22100169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x22300169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x22500169, 0x00000000, 0x00000000 },
-   { 0x02000005, 0x20002d3c, 0x0021002c, 0x00020002 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000004 },
-   { 0x00800001, 0x22600169, 0x00000000, 0x00000000 },
-   { 0x00800001, 0x22800169, 0x00000000, 0x00000000 },
-   { 0x00800001, 0x22a00169, 0x00000000, 0x00000000 },
-   { 0x00800001, 0x22c00169, 0x00000000, 0x00000000 },
-   { 0x02000005, 0x20002d3c, 0x0021002c, 0x00010001 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000004 },
-   { 0x00800001, 0x22e00169, 0x00000000, 0x00000000 },
-   { 0x00800001, 0x23000169, 0x00000000, 0x00000000 },
-   { 0x00800001, 0x23200169, 0x00000000, 0x00000000 },
-   { 0x00800001, 0x23400169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x2e600021, 0x008d0020, 0x00000000 },
-   { 0x00000001, 0x20280061, 0x00000000, 0x00070007 },
-   { 0x00600001, 0x20400021, 0x008d0020, 0x00000000 },
-   { 0x0020000c, 0x202e3dad, 0x00450e6e, 0x00010001 },
-   { 0x00200040, 0x20403421, 0x00450e60, 0x0045002e },
-   { 0x01000005, 0x20000d3c, 0x00210e6e, 0x00000001 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x0000005f },
-   { 0x01000005, 0x20000d3c, 0x00210e70, 0x00000001 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000048 },
-   { 0x00000001, 0x20480061, 0x00000000, 0x0007001f },
-   { 0x00800031, 0x2c401d29, 0x008d0040, 0x0418a004 },
-   { 0x00000040, 0x20440c21, 0x00210044, 0x00000008 },
-   { 0x00800031, 0x2d401d29, 0x008d0040, 0x0418a004 },
-   { 0x00000040, 0x20440c21, 0x00210044, 0x00000008 },
-   { 0x00000001, 0x20480061, 0x00000000, 0x0000001f },
-   { 0x00800031, 0x2f001d29, 0x008d0040, 0x0411a004 },
-   { 0x00800040, 0x23804629, 0x00b10c40, 0x00b10c41 },
-   { 0x00800040, 0x23a04629, 0x00b10c60, 0x00b10c61 },
-   { 0x00800040, 0x23c04629, 0x00b10c80, 0x00b10c81 },
-   { 0x00800040, 0x23e04629, 0x00b10ca0, 0x00b10ca1 },
-   { 0x00800040, 0x24004629, 0x00b10cc0, 0x00b10cc1 },
-   { 0x00800040, 0x24204629, 0x00b10ce0, 0x00b10ce1 },
-   { 0x00800040, 0x24404629, 0x00b10d00, 0x00b10d01 },
-   { 0x00800040, 0x24604629, 0x00b10d20, 0x00b10d21 },
-   { 0x00800040, 0x24804629, 0x00b10d40, 0x00b10d41 },
-   { 0x00800040, 0x24a04629, 0x00b10d60, 0x00b10d61 },
-   { 0x00800040, 0x24c04629, 0x00b10d80, 0x00b10d81 },
-   { 0x00800040, 0x24e04629, 0x00b10da0, 0x00b10da1 },
-   { 0x00800040, 0x25004629, 0x00b10dc0, 0x00b10dc1 },
-   { 0x00800040, 0x25204629, 0x00b10de0, 0x00b10de1 },
-   { 0x00800040, 0x25404629, 0x00b10e00, 0x00b10e01 },
-   { 0x00800040, 0x25604629, 0x00b10e20, 0x00b10e21 },
-   { 0x00800040, 0x23804529, 0x00b10380, 0x00b10c60 },
-   { 0x00800040, 0x23a04529, 0x00b103a0, 0x00b10c80 },
-   { 0x00800040, 0x23c04529, 0x00b103c0, 0x00b10ca0 },
-   { 0x00800040, 0x23e04529, 0x00b103e0, 0x00b10cc0 },
-   { 0x00800040, 0x24004529, 0x00b10400, 0x00b10ce0 },
-   { 0x00800040, 0x24204529, 0x00b10420, 0x00b10d00 },
-   { 0x00800040, 0x24404529, 0x00b10440, 0x00b10d20 },
-   { 0x00800040, 0x24604529, 0x00b10460, 0x00b10d40 },
-   { 0x00800040, 0x24804529, 0x00b10480, 0x00b10d60 },
-   { 0x00800040, 0x24a04529, 0x00b104a0, 0x00b10d80 },
-   { 0x00800040, 0x24c04529, 0x00b104c0, 0x00b10da0 },
-   { 0x00800040, 0x24e04529, 0x00b104e0, 0x00b10dc0 },
-   { 0x00800040, 0x25004529, 0x00b10500, 0x00b10de0 },
-   { 0x00800040, 0x25204529, 0x00b10520, 0x00b10e00 },
-   { 0x00800040, 0x25404529, 0x00b10540, 0x00b10e20 },
-   { 0x00800040, 0x25604529, 0x00b10560, 0x00b10f00 },
-   { 0x00800040, 0x23804529, 0x00b10380, 0x00b10c61 },
-   { 0x00800040, 0x23a04529, 0x00b103a0, 0x00b10c81 },
-   { 0x00800040, 0x23c04529, 0x00b103c0, 0x00b10ca1 },
-   { 0x00800040, 0x23e04529, 0x00b103e0, 0x00b10cc1 },
-   { 0x00800040, 0x24004529, 0x00b10400, 0x00b10ce1 },
-   { 0x00800040, 0x24204529, 0x00b10420, 0x00b10d01 },
-   { 0x00800040, 0x24404529, 0x00b10440, 0x00b10d21 },
-   { 0x00800040, 0x24604529, 0x00b10460, 0x00b10d41 },
-   { 0x00800040, 0x24804529, 0x00b10480, 0x00b10d61 },
-   { 0x00800040, 0x24a04529, 0x00b104a0, 0x00b10d81 },
-   { 0x00800040, 0x24c04529, 0x00b104c0, 0x00b10da1 },
-   { 0x00800040, 0x24e04529, 0x00b104e0, 0x00b10dc1 },
-   { 0x00800040, 0x25004529, 0x00b10500, 0x00b10de1 },
-   { 0x00800040, 0x25204529, 0x00b10520, 0x00b10e01 },
-   { 0x00800040, 0x25404529, 0x00b10540, 0x00b10e21 },
-   { 0x00800040, 0x25604529, 0x00b10560, 0x00b10f01 },
-   { 0x80800008, 0x23802d29, 0x00b10380, 0x00020002 },
-   { 0x80800008, 0x23a02d29, 0x00b103a0, 0x00020002 },
-   { 0x80800008, 0x23c02d29, 0x00b103c0, 0x00020002 },
-   { 0x80800008, 0x23e02d29, 0x00b103e0, 0x00020002 },
-   { 0x80800008, 0x24002d29, 0x00b10400, 0x00020002 },
-   { 0x80800008, 0x24202d29, 0x00b10420, 0x00020002 },
-   { 0x80800008, 0x24402d29, 0x00b10440, 0x00020002 },
-   { 0x80800008, 0x24602d29, 0x00b10460, 0x00020002 },
-   { 0x80800008, 0x24802d29, 0x00b10480, 0x00020002 },
-   { 0x80800008, 0x24a02d29, 0x00b104a0, 0x00020002 },
-   { 0x80800008, 0x24c02d29, 0x00b104c0, 0x00020002 },
-   { 0x80800008, 0x24e02d29, 0x00b104e0, 0x00020002 },
-   { 0x80800008, 0x25002d29, 0x00b10500, 0x00020002 },
-   { 0x80800008, 0x25202d29, 0x00b10520, 0x00020002 },
-   { 0x80800008, 0x25402d29, 0x00b10540, 0x00020002 },
-   { 0x80800008, 0x25602d29, 0x00b10560, 0x00020002 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000043 },
-   { 0x00000001, 0x20480061, 0x00000000, 0x0007001f },
-   { 0x00800031, 0x2c401d29, 0x008d0040, 0x0418a004 },
-   { 0x00000040, 0x20440c21, 0x00210044, 0x00000008 },
-   { 0x00800031, 0x2d401d29, 0x008d0040, 0x0418a004 },
-   { 0x80800042, 0x23804629, 0x00b10c40, 0x00b10c41 },
-   { 0x80800042, 0x23a04629, 0x00b10c60, 0x00b10c61 },
-   { 0x80800042, 0x23c04629, 0x00b10c80, 0x00b10c81 },
-   { 0x80800042, 0x23e04629, 0x00b10ca0, 0x00b10ca1 },
-   { 0x80800042, 0x24004629, 0x00b10cc0, 0x00b10cc1 },
-   { 0x80800042, 0x24204629, 0x00b10ce0, 0x00b10ce1 },
-   { 0x80800042, 0x24404629, 0x00b10d00, 0x00b10d01 },
-   { 0x80800042, 0x24604629, 0x00b10d20, 0x00b10d21 },
-   { 0x80800042, 0x24804629, 0x00b10d40, 0x00b10d41 },
-   { 0x80800042, 0x24a04629, 0x00b10d60, 0x00b10d61 },
-   { 0x80800042, 0x24c04629, 0x00b10d80, 0x00b10d81 },
-   { 0x80800042, 0x24e04629, 0x00b10da0, 0x00b10da1 },
-   { 0x80800042, 0x25004629, 0x00b10dc0, 0x00b10dc1 },
-   { 0x80800042, 0x25204629, 0x00b10de0, 0x00b10de1 },
-   { 0x80800042, 0x25404629, 0x00b10e00, 0x00b10e01 },
-   { 0x80800042, 0x25604629, 0x00b10e20, 0x00b10e21 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x0000002e },
-   { 0x01000005, 0x20000d3c, 0x00210e70, 0x00000001 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000018 },
-   { 0x00000001, 0x20480061, 0x00000000, 0x0007001f },
-   { 0x00800031, 0x2c401d29, 0x008d0040, 0x0418a004 },
-   { 0x00000040, 0x20440c21, 0x00210044, 0x00000008 },
-   { 0x00800031, 0x2d401d29, 0x008d0040, 0x0418a004 },
-   { 0x00000040, 0x20440c21, 0x00210044, 0x00000008 },
-   { 0x00000001, 0x20480061, 0x00000000, 0x0000001f },
-   { 0x00800031, 0x2f001d29, 0x008d0040, 0x0411a004 },
-   { 0x80800042, 0x23804629, 0x00b10c40, 0x00b10c60 },
-   { 0x80800042, 0x23a04629, 0x00b10c60, 0x00b10c80 },
-   { 0x80800042, 0x23c04629, 0x00b10c80, 0x00b10ca0 },
-   { 0x80800042, 0x23e04629, 0x00b10ca0, 0x00b10cc0 },
-   { 0x80800042, 0x24004629, 0x00b10cc0, 0x00b10ce0 },
-   { 0x80800042, 0x24204629, 0x00b10ce0, 0x00b10d00 },
-   { 0x80800042, 0x24404629, 0x00b10d00, 0x00b10d20 },
-   { 0x80800042, 0x24604629, 0x00b10d20, 0x00b10d40 },
-   { 0x80800042, 0x24804629, 0x00b10d40, 0x00b10d60 },
-   { 0x80800042, 0x24a04629, 0x00b10d60, 0x00b10d80 },
-   { 0x80800042, 0x24c04629, 0x00b10d80, 0x00b10da0 },
-   { 0x80800042, 0x24e04629, 0x00b10da0, 0x00b10dc0 },
-   { 0x80800042, 0x25004629, 0x00b10dc0, 0x00b10de0 },
-   { 0x80800042, 0x25204629, 0x00b10de0, 0x00b10e00 },
-   { 0x80800042, 0x25404629, 0x00b10e00, 0x00b10e20 },
-   { 0x80800042, 0x25604629, 0x00b10e20, 0x00b10f00 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000014 },
-   { 0x00000001, 0x20480061, 0x00000000, 0x0007001f },
-   { 0x00800031, 0x2c401d29, 0x008d0040, 0x0418a004 },
-   { 0x00000040, 0x20440c21, 0x00210044, 0x00000008 },
-   { 0x00800031, 0x2d401d29, 0x008d0040, 0x0418a004 },
-   { 0x00800001, 0x23800229, 0x00b10c40, 0x00000000 },
-   { 0x00800001, 0x23a00229, 0x00b10c60, 0x00000000 },
-   { 0x00800001, 0x23c00229, 0x00b10c80, 0x00000000 },
-   { 0x00800001, 0x23e00229, 0x00b10ca0, 0x00000000 },
-   { 0x00800001, 0x24000229, 0x00b10cc0, 0x00000000 },
-   { 0x00800001, 0x24200229, 0x00b10ce0, 0x00000000 },
-   { 0x00800001, 0x24400229, 0x00b10d00, 0x00000000 },
-   { 0x00800001, 0x24600229, 0x00b10d20, 0x00000000 },
-   { 0x00800001, 0x24800229, 0x00b10d40, 0x00000000 },
-   { 0x00800001, 0x24a00229, 0x00b10d60, 0x00000000 },
-   { 0x00800001, 0x24c00229, 0x00b10d80, 0x00000000 },
-   { 0x00800001, 0x24e00229, 0x00b10da0, 0x00000000 },
-   { 0x00800001, 0x25000229, 0x00b10dc0, 0x00000000 },
-   { 0x00800001, 0x25200229, 0x00b10de0, 0x00000000 },
-   { 0x00800001, 0x25400229, 0x00b10e00, 0x00000000 },
-   { 0x00800001, 0x25600229, 0x00b10e20, 0x00000000 },
-   { 0x00802001, 0x26800021, 0x00b10380, 0x00000000 },
-   { 0x00802001, 0x26c00021, 0x00b103c0, 0x00000000 },
-   { 0x00802001, 0x27000021, 0x00b10400, 0x00000000 },
-   { 0x00802001, 0x27400021, 0x00b10440, 0x00000000 },
-   { 0x00802001, 0x27800021, 0x00b10480, 0x00000000 },
-   { 0x00802001, 0x27c00021, 0x00b104c0, 0x00000000 },
-   { 0x00802001, 0x28000021, 0x00b10500, 0x00000000 },
-   { 0x00802001, 0x28400021, 0x00b10540, 0x00000000 },
-   { 0x0020000c, 0x202e3dad, 0x00450e72, 0x00010001 },
-   { 0x00200040, 0x20403421, 0x00450e60, 0x0045002e },
-   { 0x01000005, 0x20000d3c, 0x00210e72, 0x00000001 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x0000005f },
-   { 0x01000005, 0x20000d3c, 0x00210e74, 0x00000001 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000048 },
-   { 0x00000001, 0x20480061, 0x00000000, 0x0007001f },
-   { 0x00800031, 0x2c401d29, 0x008d0040, 0x0418a007 },
-   { 0x00000040, 0x20440c21, 0x00210044, 0x00000008 },
-   { 0x00800031, 0x2d401d29, 0x008d0040, 0x0418a007 },
-   { 0x00000040, 0x20440c21, 0x00210044, 0x00000008 },
-   { 0x00000001, 0x20480061, 0x00000000, 0x0000001f },
-   { 0x00800031, 0x2f001d29, 0x008d0040, 0x0411a007 },
-   { 0x00800040, 0x23804629, 0x00b10c40, 0x00b10c41 },
-   { 0x00800040, 0x23a04629, 0x00b10c60, 0x00b10c61 },
-   { 0x00800040, 0x23c04629, 0x00b10c80, 0x00b10c81 },
-   { 0x00800040, 0x23e04629, 0x00b10ca0, 0x00b10ca1 },
-   { 0x00800040, 0x24004629, 0x00b10cc0, 0x00b10cc1 },
-   { 0x00800040, 0x24204629, 0x00b10ce0, 0x00b10ce1 },
-   { 0x00800040, 0x24404629, 0x00b10d00, 0x00b10d01 },
-   { 0x00800040, 0x24604629, 0x00b10d20, 0x00b10d21 },
-   { 0x00800040, 0x24804629, 0x00b10d40, 0x00b10d41 },
-   { 0x00800040, 0x24a04629, 0x00b10d60, 0x00b10d61 },
-   { 0x00800040, 0x24c04629, 0x00b10d80, 0x00b10d81 },
-   { 0x00800040, 0x24e04629, 0x00b10da0, 0x00b10da1 },
-   { 0x00800040, 0x25004629, 0x00b10dc0, 0x00b10dc1 },
-   { 0x00800040, 0x25204629, 0x00b10de0, 0x00b10de1 },
-   { 0x00800040, 0x25404629, 0x00b10e00, 0x00b10e01 },
-   { 0x00800040, 0x25604629, 0x00b10e20, 0x00b10e21 },
-   { 0x00800040, 0x23804529, 0x00b10380, 0x00b10c60 },
-   { 0x00800040, 0x23a04529, 0x00b103a0, 0x00b10c80 },
-   { 0x00800040, 0x23c04529, 0x00b103c0, 0x00b10ca0 },
-   { 0x00800040, 0x23e04529, 0x00b103e0, 0x00b10cc0 },
-   { 0x00800040, 0x24004529, 0x00b10400, 0x00b10ce0 },
-   { 0x00800040, 0x24204529, 0x00b10420, 0x00b10d00 },
-   { 0x00800040, 0x24404529, 0x00b10440, 0x00b10d20 },
-   { 0x00800040, 0x24604529, 0x00b10460, 0x00b10d40 },
-   { 0x00800040, 0x24804529, 0x00b10480, 0x00b10d60 },
-   { 0x00800040, 0x24a04529, 0x00b104a0, 0x00b10d80 },
-   { 0x00800040, 0x24c04529, 0x00b104c0, 0x00b10da0 },
-   { 0x00800040, 0x24e04529, 0x00b104e0, 0x00b10dc0 },
-   { 0x00800040, 0x25004529, 0x00b10500, 0x00b10de0 },
-   { 0x00800040, 0x25204529, 0x00b10520, 0x00b10e00 },
-   { 0x00800040, 0x25404529, 0x00b10540, 0x00b10e20 },
-   { 0x00800040, 0x25604529, 0x00b10560, 0x00b10f00 },
-   { 0x00800040, 0x23804529, 0x00b10380, 0x00b10c61 },
-   { 0x00800040, 0x23a04529, 0x00b103a0, 0x00b10c81 },
-   { 0x00800040, 0x23c04529, 0x00b103c0, 0x00b10ca1 },
-   { 0x00800040, 0x23e04529, 0x00b103e0, 0x00b10cc1 },
-   { 0x00800040, 0x24004529, 0x00b10400, 0x00b10ce1 },
-   { 0x00800040, 0x24204529, 0x00b10420, 0x00b10d01 },
-   { 0x00800040, 0x24404529, 0x00b10440, 0x00b10d21 },
-   { 0x00800040, 0x24604529, 0x00b10460, 0x00b10d41 },
-   { 0x00800040, 0x24804529, 0x00b10480, 0x00b10d61 },
-   { 0x00800040, 0x24a04529, 0x00b104a0, 0x00b10d81 },
-   { 0x00800040, 0x24c04529, 0x00b104c0, 0x00b10da1 },
-   { 0x00800040, 0x24e04529, 0x00b104e0, 0x00b10dc1 },
-   { 0x00800040, 0x25004529, 0x00b10500, 0x00b10de1 },
-   { 0x00800040, 0x25204529, 0x00b10520, 0x00b10e01 },
-   { 0x00800040, 0x25404529, 0x00b10540, 0x00b10e21 },
-   { 0x00800040, 0x25604529, 0x00b10560, 0x00b10f01 },
-   { 0x80800008, 0x23802d29, 0x00b10380, 0x00020002 },
-   { 0x80800008, 0x23a02d29, 0x00b103a0, 0x00020002 },
-   { 0x80800008, 0x23c02d29, 0x00b103c0, 0x00020002 },
-   { 0x80800008, 0x23e02d29, 0x00b103e0, 0x00020002 },
-   { 0x80800008, 0x24002d29, 0x00b10400, 0x00020002 },
-   { 0x80800008, 0x24202d29, 0x00b10420, 0x00020002 },
-   { 0x80800008, 0x24402d29, 0x00b10440, 0x00020002 },
-   { 0x80800008, 0x24602d29, 0x00b10460, 0x00020002 },
-   { 0x80800008, 0x24802d29, 0x00b10480, 0x00020002 },
-   { 0x80800008, 0x24a02d29, 0x00b104a0, 0x00020002 },
-   { 0x80800008, 0x24c02d29, 0x00b104c0, 0x00020002 },
-   { 0x80800008, 0x24e02d29, 0x00b104e0, 0x00020002 },
-   { 0x80800008, 0x25002d29, 0x00b10500, 0x00020002 },
-   { 0x80800008, 0x25202d29, 0x00b10520, 0x00020002 },
-   { 0x80800008, 0x25402d29, 0x00b10540, 0x00020002 },
-   { 0x80800008, 0x25602d29, 0x00b10560, 0x00020002 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000043 },
-   { 0x00000001, 0x20480061, 0x00000000, 0x0007001f },
-   { 0x00800031, 0x2c401d29, 0x008d0040, 0x0418a007 },
-   { 0x00000040, 0x20440c21, 0x00210044, 0x00000008 },
-   { 0x00800031, 0x2d401d29, 0x008d0040, 0x0418a007 },
-   { 0x80800042, 0x23804629, 0x00b10c40, 0x00b10c41 },
-   { 0x80800042, 0x23a04629, 0x00b10c60, 0x00b10c61 },
-   { 0x80800042, 0x23c04629, 0x00b10c80, 0x00b10c81 },
-   { 0x80800042, 0x23e04629, 0x00b10ca0, 0x00b10ca1 },
-   { 0x80800042, 0x24004629, 0x00b10cc0, 0x00b10cc1 },
-   { 0x80800042, 0x24204629, 0x00b10ce0, 0x00b10ce1 },
-   { 0x80800042, 0x24404629, 0x00b10d00, 0x00b10d01 },
-   { 0x80800042, 0x24604629, 0x00b10d20, 0x00b10d21 },
-   { 0x80800042, 0x24804629, 0x00b10d40, 0x00b10d41 },
-   { 0x80800042, 0x24a04629, 0x00b10d60, 0x00b10d61 },
-   { 0x80800042, 0x24c04629, 0x00b10d80, 0x00b10d81 },
-   { 0x80800042, 0x24e04629, 0x00b10da0, 0x00b10da1 },
-   { 0x80800042, 0x25004629, 0x00b10dc0, 0x00b10dc1 },
-   { 0x80800042, 0x25204629, 0x00b10de0, 0x00b10de1 },
-   { 0x80800042, 0x25404629, 0x00b10e00, 0x00b10e01 },
-   { 0x80800042, 0x25604629, 0x00b10e20, 0x00b10e21 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x0000002e },
-   { 0x01000005, 0x20000d3c, 0x00210e74, 0x00000001 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000018 },
-   { 0x00000001, 0x20480061, 0x00000000, 0x0007001f },
-   { 0x00800031, 0x2c401d29, 0x008d0040, 0x0418a007 },
-   { 0x00000040, 0x20440c21, 0x00210044, 0x00000008 },
-   { 0x00800031, 0x2d401d29, 0x008d0040, 0x0418a007 },
-   { 0x00000040, 0x20440c21, 0x00210044, 0x00000008 },
-   { 0x00000001, 0x20480061, 0x00000000, 0x0000001f },
-   { 0x00800031, 0x2f001d29, 0x008d0040, 0x0411a007 },
-   { 0x80800042, 0x23804629, 0x00b10c40, 0x00b10c60 },
-   { 0x80800042, 0x23a04629, 0x00b10c60, 0x00b10c80 },
-   { 0x80800042, 0x23c04629, 0x00b10c80, 0x00b10ca0 },
-   { 0x80800042, 0x23e04629, 0x00b10ca0, 0x00b10cc0 },
-   { 0x80800042, 0x24004629, 0x00b10cc0, 0x00b10ce0 },
-   { 0x80800042, 0x24204629, 0x00b10ce0, 0x00b10d00 },
-   { 0x80800042, 0x24404629, 0x00b10d00, 0x00b10d20 },
-   { 0x80800042, 0x24604629, 0x00b10d20, 0x00b10d40 },
-   { 0x80800042, 0x24804629, 0x00b10d40, 0x00b10d60 },
-   { 0x80800042, 0x24a04629, 0x00b10d60, 0x00b10d80 },
-   { 0x80800042, 0x24c04629, 0x00b10d80, 0x00b10da0 },
-   { 0x80800042, 0x24e04629, 0x00b10da0, 0x00b10dc0 },
-   { 0x80800042, 0x25004629, 0x00b10dc0, 0x00b10de0 },
-   { 0x80800042, 0x25204629, 0x00b10de0, 0x00b10e00 },
-   { 0x80800042, 0x25404629, 0x00b10e00, 0x00b10e20 },
-   { 0x80800042, 0x25604629, 0x00b10e20, 0x00b10f00 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000014 },
-   { 0x00000001, 0x20480061, 0x00000000, 0x0007001f },
-   { 0x00800031, 0x2c401d29, 0x008d0040, 0x0418a007 },
-   { 0x00000040, 0x20440c21, 0x00210044, 0x00000008 },
-   { 0x00800031, 0x2d401d29, 0x008d0040, 0x0418a007 },
-   { 0x00800001, 0x23800229, 0x00b10c40, 0x00000000 },
-   { 0x00800001, 0x23a00229, 0x00b10c60, 0x00000000 },
-   { 0x00800001, 0x23c00229, 0x00b10c80, 0x00000000 },
-   { 0x00800001, 0x23e00229, 0x00b10ca0, 0x00000000 },
-   { 0x00800001, 0x24000229, 0x00b10cc0, 0x00000000 },
-   { 0x00800001, 0x24200229, 0x00b10ce0, 0x00000000 },
-   { 0x00800001, 0x24400229, 0x00b10d00, 0x00000000 },
-   { 0x00800001, 0x24600229, 0x00b10d20, 0x00000000 },
-   { 0x00800001, 0x24800229, 0x00b10d40, 0x00000000 },
-   { 0x00800001, 0x24a00229, 0x00b10d60, 0x00000000 },
-   { 0x00800001, 0x24c00229, 0x00b10d80, 0x00000000 },
-   { 0x00800001, 0x24e00229, 0x00b10da0, 0x00000000 },
-   { 0x00800001, 0x25000229, 0x00b10dc0, 0x00000000 },
-   { 0x00800001, 0x25200229, 0x00b10de0, 0x00000000 },
-   { 0x00800001, 0x25400229, 0x00b10e00, 0x00000000 },
-   { 0x00800001, 0x25600229, 0x00b10e20, 0x00000000 },
-   { 0x80800042, 0x23802529, 0x00b10380, 0x00b10680 },
-   { 0x80800042, 0x23a02529, 0x00b103a0, 0x00b106a0 },
-   { 0x80800042, 0x23c02529, 0x00b103c0, 0x00b106c0 },
-   { 0x80800042, 0x23e02529, 0x00b103e0, 0x00b106e0 },
-   { 0x80800042, 0x24002529, 0x00b10400, 0x00b10700 },
-   { 0x80800042, 0x24202529, 0x00b10420, 0x00b10720 },
-   { 0x80800042, 0x24402529, 0x00b10440, 0x00b10740 },
-   { 0x80800042, 0x24602529, 0x00b10460, 0x00b10760 },
-   { 0x80800042, 0x24802529, 0x00b10480, 0x00b10780 },
-   { 0x80800042, 0x24a02529, 0x00b104a0, 0x00b107a0 },
-   { 0x80800042, 0x24c02529, 0x00b104c0, 0x00b107c0 },
-   { 0x80800042, 0x24e02529, 0x00b104e0, 0x00b107e0 },
-   { 0x80800042, 0x25002529, 0x00b10500, 0x00b10800 },
-   { 0x80800042, 0x25202529, 0x00b10520, 0x00b10820 },
-   { 0x80800042, 0x25402529, 0x00b10540, 0x00b10840 },
-   { 0x80800042, 0x25602529, 0x00b10560, 0x00b10860 },
-   { 0x00200008, 0x20200c21, 0x00450e60, 0x00000001 },
-   { 0x0020000c, 0x2e6e3dad, 0x00450e6e, 0x00010001 },
-   { 0x0020000c, 0x202e3dad, 0x00450e6e, 0x00010001 },
-   { 0x00200040, 0x20403421, 0x00450020, 0x0045002e },
-   { 0x00000001, 0x20480061, 0x00000000, 0x0007000f },
-   { 0x00800031, 0x2ac01d29, 0x008d0040, 0x0414a005 },
-   { 0x00800031, 0x2b401d29, 0x008d0040, 0x0414a006 },
-   { 0x00800001, 0x25800229, 0x00ad0ac0, 0x00000000 },
-   { 0x00800001, 0x25a00229, 0x00ad0ae0, 0x00000000 },
-   { 0x00800001, 0x25c00229, 0x00ad0b00, 0x00000000 },
-   { 0x00800001, 0x25e00229, 0x00ad0b20, 0x00000000 },
-   { 0x00800001, 0x26000229, 0x00ad0b40, 0x00000000 },
-   { 0x00800001, 0x26200229, 0x00ad0b60, 0x00000000 },
-   { 0x00800001, 0x26400229, 0x00ad0b80, 0x00000000 },
-   { 0x00800001, 0x26600229, 0x00ad0ba0, 0x00000000 },
-   { 0x00800001, 0x2f400231, 0x00b20580, 0x00000000 },
-   { 0x00800001, 0x2f500231, 0x00b205a0, 0x00000000 },
-   { 0x00800001, 0x2f600231, 0x00b205c0, 0x00000000 },
-   { 0x00800001, 0x2f700231, 0x00b205e0, 0x00000000 },
-   { 0x00800001, 0x2f800231, 0x00b20600, 0x00000000 },
-   { 0x00800001, 0x2f900231, 0x00b20620, 0x00000000 },
-   { 0x00800001, 0x2fa00231, 0x00b20640, 0x00000000 },
-   { 0x00800001, 0x2fb00231, 0x00b20660, 0x00000000 },
-   { 0x0020000c, 0x2e723dad, 0x00450e72, 0x00010001 },
-   { 0x0020000c, 0x202e3dad, 0x00450e72, 0x00010001 },
-   { 0x00200040, 0x20403421, 0x00450020, 0x0045002e },
-   { 0x00000001, 0x20480061, 0x00000000, 0x0007000f },
-   { 0x00800031, 0x2ac01d29, 0x008d0040, 0x0414a008 },
-   { 0x00800031, 0x2b401d29, 0x008d0040, 0x0414a009 },
-   { 0x00800001, 0x25800229, 0x00ad0ac0, 0x00000000 },
-   { 0x00800001, 0x25a00229, 0x00ad0ae0, 0x00000000 },
-   { 0x00800001, 0x25c00229, 0x00ad0b00, 0x00000000 },
-   { 0x00800001, 0x25e00229, 0x00ad0b20, 0x00000000 },
-   { 0x00800001, 0x26000229, 0x00ad0b40, 0x00000000 },
-   { 0x00800001, 0x26200229, 0x00ad0b60, 0x00000000 },
-   { 0x00800001, 0x26400229, 0x00ad0b80, 0x00000000 },
-   { 0x00800001, 0x26600229, 0x00ad0ba0, 0x00000000 },
-   { 0x80800042, 0x25804529, 0x00b10580, 0x00b10f40 },
-   { 0x80800042, 0x25a04529, 0x00b105a0, 0x00b10f50 },
-   { 0x80800042, 0x25c04529, 0x00b105c0, 0x00b10f60 },
-   { 0x80800042, 0x25e04529, 0x00b105e0, 0x00b10f70 },
-   { 0x80800042, 0x26004529, 0x00b10600, 0x00b10f80 },
-   { 0x80800042, 0x26204529, 0x00b10620, 0x00b10f90 },
-   { 0x80800042, 0x26404529, 0x00b10640, 0x00b10fa0 },
-   { 0x80800042, 0x26604529, 0x00b10660, 0x00b10fb0 },
-   { 0x00600001, 0x20200021, 0x008d0980, 0x00000000 },
-   { 0x00800001, 0x458101f1, 0x00000000, 0x00000000 },
-   { 0x00800001, 0x45a101f1, 0x00000000, 0x00000000 },
-   { 0x00800001, 0x45c101f1, 0x00000000, 0x00000000 },
-   { 0x00800001, 0x45e101f1, 0x00000000, 0x00000000 },
-   { 0x00800001, 0x460101f1, 0x00000000, 0x00000000 },
-   { 0x00800001, 0x462101f1, 0x00000000, 0x00000000 },
-   { 0x00800001, 0x464101f1, 0x00000000, 0x00000000 },
-   { 0x00800001, 0x466101f1, 0x00000000, 0x00000000 },
-   { 0x02000005, 0x20002e3c, 0x0021003e, 0x00010001 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000011 },
-   { 0x00800040, 0x238045ad, 0x00b10060, 0x00b20380 },
-   { 0x00800040, 0x23a045ad, 0x00b10080, 0x00b203a0 },
-   { 0x00800040, 0x23c045ad, 0x00b100a0, 0x00b203c0 },
-   { 0x00800040, 0x23e045ad, 0x00b100c0, 0x00b203e0 },
-   { 0x00800040, 0x240045ad, 0x00b100e0, 0x00b20400 },
-   { 0x00800040, 0x242045ad, 0x00b10100, 0x00b20420 },
-   { 0x00800040, 0x244045ad, 0x00b10120, 0x00b20440 },
-   { 0x00800040, 0x246045ad, 0x00b10140, 0x00b20460 },
-   { 0x00800040, 0x248045ad, 0x00b10160, 0x00b20480 },
-   { 0x00800040, 0x24a045ad, 0x00b10180, 0x00b204a0 },
-   { 0x00800040, 0x24c045ad, 0x00b101a0, 0x00b204c0 },
-   { 0x00800040, 0x24e045ad, 0x00b101c0, 0x00b204e0 },
-   { 0x00800040, 0x250045ad, 0x00b101e0, 0x00b20500 },
-   { 0x00800040, 0x252045ad, 0x00b10200, 0x00b20520 },
-   { 0x00800040, 0x254045ad, 0x00b10220, 0x00b20540 },
-   { 0x00800040, 0x256045ad, 0x00b10240, 0x00b20560 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000010 },
-   { 0x00800040, 0x238045ad, 0x00b10060, 0x00b20380 },
-   { 0x00800040, 0x23a045ad, 0x00b10160, 0x00b203a0 },
-   { 0x00800040, 0x23c045ad, 0x00b10080, 0x00b203c0 },
-   { 0x00800040, 0x23e045ad, 0x00b10180, 0x00b203e0 },
-   { 0x00800040, 0x240045ad, 0x00b100a0, 0x00b20400 },
-   { 0x00800040, 0x242045ad, 0x00b101a0, 0x00b20420 },
-   { 0x00800040, 0x244045ad, 0x00b100c0, 0x00b20440 },
-   { 0x00800040, 0x246045ad, 0x00b101c0, 0x00b20460 },
-   { 0x00800040, 0x248045ad, 0x00b100e0, 0x00b20480 },
-   { 0x00800040, 0x24a045ad, 0x00b101e0, 0x00b204a0 },
-   { 0x00800040, 0x24c045ad, 0x00b10100, 0x00b204c0 },
-   { 0x00800040, 0x24e045ad, 0x00b10200, 0x00b204e0 },
-   { 0x00800040, 0x250045ad, 0x00b10120, 0x00b20500 },
-   { 0x00800040, 0x252045ad, 0x00b10220, 0x00b20520 },
-   { 0x00800040, 0x254045ad, 0x00b10140, 0x00b20540 },
-   { 0x00800040, 0x256045ad, 0x00b10240, 0x00b20560 },
-   { 0x00000001, 0x20280061, 0x00000000, 0x000f000f },
-   { 0x80800001, 0x438001b1, 0x00b10380, 0x00000000 },
-   { 0x80800001, 0x43a001b1, 0x00b103a0, 0x00000000 },
-   { 0x80800001, 0x43c001b1, 0x00b103c0, 0x00000000 },
-   { 0x80800001, 0x43e001b1, 0x00b103e0, 0x00000000 },
-   { 0x80800001, 0x440001b1, 0x00b10400, 0x00000000 },
-   { 0x80800001, 0x442001b1, 0x00b10420, 0x00000000 },
-   { 0x80800001, 0x444001b1, 0x00b10440, 0x00000000 },
-   { 0x80800001, 0x446001b1, 0x00b10460, 0x00000000 },
-   { 0x80800001, 0x448001b1, 0x00b10480, 0x00000000 },
-   { 0x80800001, 0x44a001b1, 0x00b104a0, 0x00000000 },
-   { 0x80800001, 0x44c001b1, 0x00b104c0, 0x00000000 },
-   { 0x80800001, 0x44e001b1, 0x00b104e0, 0x00000000 },
-   { 0x80800001, 0x450001b1, 0x00b10500, 0x00000000 },
-   { 0x80800001, 0x452001b1, 0x00b10520, 0x00000000 },
-   { 0x80800001, 0x454001b1, 0x00b10540, 0x00000000 },
-   { 0x80800001, 0x456001b1, 0x00b10560, 0x00000000 },
-   { 0x00800001, 0x20200232, 0x00b20380, 0x00000000 },
-   { 0x00800001, 0x20300232, 0x00b203a0, 0x00000000 },
-   { 0x00800001, 0x20400232, 0x00b203c0, 0x00000000 },
-   { 0x00800001, 0x20500232, 0x00b203e0, 0x00000000 },
-   { 0x00800001, 0x20600232, 0x00b20400, 0x00000000 },
-   { 0x00800001, 0x20700232, 0x00b20420, 0x00000000 },
-   { 0x00800001, 0x20800232, 0x00b20440, 0x00000000 },
-   { 0x00800001, 0x20900232, 0x00b20460, 0x00000000 },
-   { 0x00800001, 0x20a00232, 0x00b20480, 0x00000000 },
-   { 0x00800001, 0x20b00232, 0x00b204a0, 0x00000000 },
-   { 0x00800001, 0x20c00232, 0x00b204c0, 0x00000000 },
-   { 0x00800001, 0x20d00232, 0x00b204e0, 0x00000000 },
-   { 0x00800001, 0x20e00232, 0x00b20500, 0x00000000 },
-   { 0x00800001, 0x20f00232, 0x00b20520, 0x00000000 },
-   { 0x00800001, 0x21000232, 0x00b20540, 0x00000000 },
-   { 0x00800001, 0x21100232, 0x00b20560, 0x00000000 },
-   { 0x00800031, 0x24001d28, 0x008d0020, 0x05902000 },
-   { 0x00000001, 0x20280061, 0x00000000, 0x00070007 },
-   { 0x00200008, 0x20201c21, 0x00450020, 0x00000001 },
-   { 0x00800040, 0x258025a9, 0x00b10260, 0x00b10580 },
-   { 0x00800040, 0x25a025a9, 0x00b10280, 0x00b105a0 },
-   { 0x00800040, 0x25c025a9, 0x00b102a0, 0x00b105c0 },
-   { 0x00800040, 0x25e025a9, 0x00b102c0, 0x00b105e0 },
-   { 0x80800001, 0x45800131, 0x00b10580, 0x00000000 },
-   { 0x80800001, 0x45a00131, 0x00b105a0, 0x00000000 },
-   { 0x80800001, 0x45c00131, 0x00b105c0, 0x00000000 },
-   { 0x80800001, 0x45e00131, 0x00b105e0, 0x00000000 },
-   { 0x00800001, 0x20200232, 0x00b20580, 0x00000000 },
-   { 0x00800001, 0x20300232, 0x00b205a0, 0x00000000 },
-   { 0x00800001, 0x20400232, 0x00b205c0, 0x00000000 },
-   { 0x00800001, 0x20500232, 0x00b205e0, 0x00000000 },
-   { 0x00800031, 0x24001d28, 0x008d0020, 0x05302001 },
-   { 0x00800040, 0x260025a9, 0x00b102e0, 0x00b10600 },
-   { 0x00800040, 0x262025a9, 0x00b10300, 0x00b10620 },
-   { 0x00800040, 0x264025a9, 0x00b10320, 0x00b10640 },
-   { 0x00800040, 0x266025a9, 0x00b10340, 0x00b10660 },
-   { 0x80800001, 0x46000131, 0x00b10600, 0x00000000 },
-   { 0x80800001, 0x46200131, 0x00b10620, 0x00000000 },
-   { 0x80800001, 0x46400131, 0x00b10640, 0x00000000 },
-   { 0x80800001, 0x46600131, 0x00b10660, 0x00000000 },
-   { 0x00800001, 0x20200232, 0x00b20600, 0x00000000 },
-   { 0x00800001, 0x20300232, 0x00b20620, 0x00000000 },
-   { 0x00800001, 0x20400232, 0x00b20640, 0x00000000 },
-   { 0x00800001, 0x20500232, 0x00b20660, 0x00000000 },
-   { 0x00800031, 0x24001d28, 0x008d0020, 0x05302002 },
-   { 0x00800031, 0x24001d28, 0x008d0000, 0x87100000 },
-   { 0x00800031, 0x24001d28, 0x008d0000, 0x87100000 },
+   { 0x00600001, 0x2a400021, 0x008d03e0, 0x00000000 },
+   { 0x00000001, 0x2fc80001, 0x00001400, 0x00000000 },
+   { 0x00000040, 0x34000c20, 0x002102a0, 0x00000050 },
+   { 0x0020000c, 0x23ee3dad, 0x00450a4e, 0x00010001 },
+   { 0x00200040, 0x24003421, 0x004503e0, 0x004503ee },
+   { 0x00000001, 0x24100169, 0x00000000, 0x00000000 },
+   { 0x00000001, 0x22000060, 0x00000000, 0x00000a4e },
+   { 0x00000001, 0x2fc80001, 0x00001400, 0x00000000 },
+   { 0x00000040, 0x34000c20, 0x002102a0, 0x00000000 },
+   { 0x00802001, 0x2d800021, 0x00b10740, 0x00000000 },
+   { 0x00802001, 0x2dc00021, 0x00b10780, 0x00000000 },
+   { 0x00802001, 0x2e000021, 0x00b107c0, 0x00000000 },
+   { 0x00802001, 0x2e400021, 0x00b10800, 0x00000000 },
+   { 0x00802001, 0x2e800021, 0x00b10840, 0x00000000 },
+   { 0x00802001, 0x2ec00021, 0x00b10880, 0x00000000 },
+   { 0x00802001, 0x2f000021, 0x00b108c0, 0x00000000 },
+   { 0x00802001, 0x2f400021, 0x00b10900, 0x00000000 },
+   { 0x0020000c, 0x23ee3dad, 0x00450a52, 0x00010001 },
+   { 0x00200040, 0x24003421, 0x004503e0, 0x004503ee },
+   { 0x00000001, 0x24100169, 0x00000000, 0x00010001 },
+   { 0x00000001, 0x22000060, 0x00000000, 0x00000a52 },
+   { 0x00000001, 0x2fc80001, 0x00001400, 0x00000000 },
+   { 0x00000040, 0x34000c20, 0x002102a0, 0x00000000 },
+   { 0x00a02042, 0x27402529, 0x00b10740, 0x00b10d80 },
+   { 0x00a02042, 0x27802529, 0x00b10780, 0x00b10dc0 },
+   { 0x00a02042, 0x27c02529, 0x00b107c0, 0x00b10e00 },
+   { 0x00a02042, 0x28002529, 0x00b10800, 0x00b10e40 },
+   { 0x00a02042, 0x28402529, 0x00b10840, 0x00b10e80 },
+   { 0x00a02042, 0x28802529, 0x00b10880, 0x00b10ec0 },
+   { 0x00a02042, 0x28c02529, 0x00b108c0, 0x00b10f00 },
+   { 0x00a02042, 0x29002529, 0x00b10900, 0x00b10f40 },
+   { 0x00200008, 0x23e00c21, 0x004503e0, 0x00000001 },
+   { 0x0020000c, 0x23ee3dad, 0x00450a4e, 0x00020002 },
+   { 0x00200040, 0x24003421, 0x004503e0, 0x004503ee },
+   { 0x00000001, 0x24100169, 0x00000000, 0x00000000 },
+   { 0x00000001, 0x2fc80001, 0x00001400, 0x00000000 },
+   { 0x00000040, 0x34000c20, 0x002102a0, 0x00000010 },
+   { 0x00a02001, 0x2d800129, 0x00b10940, 0x00000000 },
+   { 0x00a02001, 0x2dc00129, 0x00b10980, 0x00000000 },
+   { 0x00a02001, 0x2e000129, 0x00b109c0, 0x00000000 },
+   { 0x00a02001, 0x2e400129, 0x00b10a00, 0x00000000 },
+   { 0x0020000c, 0x23ee3dad, 0x00450a52, 0x00020002 },
+   { 0x00200040, 0x24003421, 0x004503e0, 0x004503ee },
+   { 0x00000001, 0x24100169, 0x00000000, 0x00010001 },
+   { 0x00000001, 0x2fc80001, 0x00001400, 0x00000000 },
+   { 0x00000040, 0x34000c20, 0x002102a0, 0x00000010 },
+   { 0x00a02042, 0x29402529, 0x00b10940, 0x00b10d80 },
+   { 0x00a02042, 0x29802529, 0x00b10980, 0x00b10dc0 },
+   { 0x00a02042, 0x29c02529, 0x00b109c0, 0x00b10e00 },
+   { 0x00a02042, 0x2a002529, 0x00b10a00, 0x00b10e40 },
+   { 0x00000040, 0x34000c20, 0x002102a0, 0x00000040 },
diff --git a/src/xvmc/shader/mc/frame_forward_igd.g4a b/src/xvmc/shader/mc/frame_forward_igd.g4a
index f474807..11928ea 100644
--- a/src/xvmc/shader/mc/frame_forward_igd.g4a
+++ b/src/xvmc/shader/mc/frame_forward_igd.g4a
@@ -1,65 +1,30 @@
-/*
- * Copyright © 2008 Intel Corporation
- *
- * Permission is hereby granted, free of charge, to any person obtaining a
- * copy of this software and associated documentation files (the "Software"),
- * to deal in the Software without restriction, including without limitation
- * the rights to use, copy, modify, merge, publish, distribute, sublicense,
- * and/or sell copies of the Software, and to permit persons to whom the
- * Software is furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice (including the next
- * paragraph) shall be included in all copies or substantial portions of the
- * Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
- * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
- * SOFTWARE.
- *
- * Author:
- *    Zou Nan hai <nanhai.zou at intel.com>
- *    Zhang Hua jun <huajun.zhang at intel.com>
- *    Xing Dong sheng <dongsheng.xing at intel.com>
- *
- */
+/* GRF allocation:
+   g1~g30: constant buffer
+           g1~g2:intra IQ matrix
+           g3~g4:non intra IQ matrix
+           g5~g20:IDCT table
+   g31:    thread payload 
+   g32:    message descriptor for reading reference data
+   g58~g81:reference data
+   g82:    thread payload backup
+   g83~g106:IDCT data                           */
+mov (8) g82.0<1>UD g31.0<8,8,1>UD {align1};
+mov (1) g126.8<1>UD ip {align1};
+add (1) ip g21.0<1,1,1>UD 0x50UD {align1};   //jump to the lib to do IDCT  
 
-/* shader for backward predict mc
-*/
+//Y, (x', y') = (x, y) + (motion_vector.x >> 1, motion_vector.y >> 1) 
+asr (2) g31.14<1>W g82.14<2,2,1>W 1W {align1};  
+add (2) g32.0<1>UD g31.0<2,2,1>UD g31.14<2,2,1>W {align1};
+mov (1) g32.16<1>UW 0UW {align1};           //0:forward 1:backward
+mov (1) a0.0<1>UD 0x0A4EUD {align1};        //g82.14,motion vector
+mov (1) g126.8<1>UD ip {align1};
+add (1) ip g21.0<1,1,1>UD 0x00UD {align1};   //jump to the lib to read reference data  
 
-/* save payload */
-mov (8) g76.0<1>UD g1.0<8,8,1>UD {align1};
-//mov (8) g77.0<1>UD g2.0<8,8,1>UD {align1};
+//UV, (x', y') = (x >> 1, y >> 1) + (motion_vector.x >> 2, motion_vector.y >> 2)
+shr (2) g31.0<1>UD g31.0<2,2,1>UD 1UD {align1};
+asr (2) g31.14<1>W g82.14<2,2,1>W 2W {align1};
+add (2) g32.0<1>UD g31.0<2,2,1>UD g31.14<2,2,1>W {align1};
+mov (1) g126.8<1>UD ip {align1};
+add (1) ip g21.0<1,1,1>UD 0x10UD {align1};          //jump to the lib to read reference data  
 
-include(`block_clear.g4i')
-
-mov (8) g115.0<1>UD g1.0<8,8,1>UD {align1}; 
-mov (1) g1.8<1>UD 0x0070007UD {align1};  
-define(`input_surface',	`4')
-define(`mv1',	`g115.14')
-define(`mv2',	`g115.16')
-/* Y */
-/* (x', y') = (x, y) + (motion_vector.x >> 1, motion_vector.y >> 1) */
-asr (2) g1.14<1>W g115.14<2,2,1>W 1W {align1};
-add (2) g2.0<1>UD g115.0<2,2,1>UD g1.14<2,2,1>W {align1};
-include(`motion_frame_y_igd.g4i')
-/* motion_vector = motion_vector >> 1 */
-/* (x', y') = (x, y) + (motion_vector.x >> 1, motion_vector.y >> 1) */
-/* U */
-shr (2) g1.0<1>UD g115.0<2,2,1>UD 1UD {align1};
-asr (2) g115.14<1>W g115.14<2,2,1>W 1W {align1};
-asr (2) g1.14<1>W g115.14<2,2,1>W 1W {align1};
-add (2) g2.0<1>UD g1.0<2,2,1>UD g1.14<2,2,1>W {align1};
-define(`input_surface1',	`5')
-define(`input_surface2',	`6')
-mov (1) g2.8<1>UD 0x007000fUD  {align1};
-include(`motion_frame_uv_igd.g4i')
-/* V */
-/* (x', y') = (x, y) + (motion_vector.x >> 1, motion_vector.y >> 1) */
-include(`addidct.g4i')
-
-send (16) 0 acc0<1>UW g0<8,8,1>UW 
-	thread_spawner(0, 0, 0) mlen 1 rlen 0 { align1 EOT};
+add (1) ip g21.0<1,1,1>UD 0x40UD {align1};          //jump to the lib to add the reference and idct data
diff --git a/src/xvmc/shader/mc/frame_forward_igd.g4b b/src/xvmc/shader/mc/frame_forward_igd.g4b
index 9356180..ea7ecf8 100644
--- a/src/xvmc/shader/mc/frame_forward_igd.g4b
+++ b/src/xvmc/shader/mc/frame_forward_igd.g4b
@@ -1,373 +1,15 @@
-   { 0x00600001, 0x29800021, 0x008d0020, 0x00000000 },
-   { 0x02000005, 0x20000c3c, 0x00210040, 0x00000001 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000030 },
-   { 0x00000040, 0x20480c21, 0x00210988, 0x00000000 },
-   { 0x00800031, 0x20601c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x20801c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x20a01c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x20c01c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x20e01c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x21001c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x21201c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x21401c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x21601c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x21801c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x21a01c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x21c01c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x21e01c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x22001c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x22201c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x22401c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x22601c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x22801c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x22a01c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x22c01c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x22e01c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x23001c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x23201c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x23401c21, 0x00b10040, 0x04110203 },
-   { 0x02000005, 0x20002d3c, 0x0021098c, 0x00200020 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000008 },
-   { 0x00600001, 0x20600169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x20800169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x20a00169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x20c00169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x20e00169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x21000169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x21200169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x21400169, 0x00000000, 0x00000000 },
-   { 0x02000005, 0x20002d3c, 0x0021002c, 0x00100010 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000008 },
-   { 0x00600001, 0x20700169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x20900169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x20b00169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x20d00169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x20f00169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x21100169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x21300169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x21500169, 0x00000000, 0x00000000 },
-   { 0x02000005, 0x20002d3c, 0x0021002c, 0x00080008 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000008 },
-   { 0x00600001, 0x21600169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x21800169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x21a00169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x21c00169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x21e00169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x22000169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x22200169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x22400169, 0x00000000, 0x00000000 },
-   { 0x02000005, 0x20002d3c, 0x0021002c, 0x00040004 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000008 },
-   { 0x00600001, 0x21700169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x21900169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x21b00169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x21d00169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x21f00169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x22100169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x22300169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x22500169, 0x00000000, 0x00000000 },
-   { 0x02000005, 0x20002d3c, 0x0021002c, 0x00020002 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000004 },
-   { 0x00800001, 0x22600169, 0x00000000, 0x00000000 },
-   { 0x00800001, 0x22800169, 0x00000000, 0x00000000 },
-   { 0x00800001, 0x22a00169, 0x00000000, 0x00000000 },
-   { 0x00800001, 0x22c00169, 0x00000000, 0x00000000 },
-   { 0x02000005, 0x20002d3c, 0x0021002c, 0x00010001 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000004 },
-   { 0x00800001, 0x22e00169, 0x00000000, 0x00000000 },
-   { 0x00800001, 0x23000169, 0x00000000, 0x00000000 },
-   { 0x00800001, 0x23200169, 0x00000000, 0x00000000 },
-   { 0x00800001, 0x23400169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x2e600021, 0x008d0020, 0x00000000 },
-   { 0x00000001, 0x20280061, 0x00000000, 0x00070007 },
-   { 0x0020000c, 0x202e3dad, 0x00450e6e, 0x00010001 },
-   { 0x00200040, 0x20403421, 0x00450e60, 0x0045002e },
-   { 0x01000005, 0x20000d3c, 0x00210e6e, 0x00000001 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x0000005f },
-   { 0x01000005, 0x20000d3c, 0x00210e70, 0x00000001 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000048 },
-   { 0x00000001, 0x20480061, 0x00000000, 0x0007001f },
-   { 0x00800031, 0x2c401d29, 0x008d0040, 0x0418a004 },
-   { 0x00000040, 0x20440c21, 0x00210044, 0x00000008 },
-   { 0x00800031, 0x2d401d29, 0x008d0040, 0x0418a004 },
-   { 0x00000040, 0x20440c21, 0x00210044, 0x00000008 },
-   { 0x00000001, 0x20480061, 0x00000000, 0x0000001f },
-   { 0x00800031, 0x2f001d29, 0x008d0040, 0x0411a004 },
-   { 0x00800040, 0x23804629, 0x00b10c40, 0x00b10c41 },
-   { 0x00800040, 0x23a04629, 0x00b10c60, 0x00b10c61 },
-   { 0x00800040, 0x23c04629, 0x00b10c80, 0x00b10c81 },
-   { 0x00800040, 0x23e04629, 0x00b10ca0, 0x00b10ca1 },
-   { 0x00800040, 0x24004629, 0x00b10cc0, 0x00b10cc1 },
-   { 0x00800040, 0x24204629, 0x00b10ce0, 0x00b10ce1 },
-   { 0x00800040, 0x24404629, 0x00b10d00, 0x00b10d01 },
-   { 0x00800040, 0x24604629, 0x00b10d20, 0x00b10d21 },
-   { 0x00800040, 0x24804629, 0x00b10d40, 0x00b10d41 },
-   { 0x00800040, 0x24a04629, 0x00b10d60, 0x00b10d61 },
-   { 0x00800040, 0x24c04629, 0x00b10d80, 0x00b10d81 },
-   { 0x00800040, 0x24e04629, 0x00b10da0, 0x00b10da1 },
-   { 0x00800040, 0x25004629, 0x00b10dc0, 0x00b10dc1 },
-   { 0x00800040, 0x25204629, 0x00b10de0, 0x00b10de1 },
-   { 0x00800040, 0x25404629, 0x00b10e00, 0x00b10e01 },
-   { 0x00800040, 0x25604629, 0x00b10e20, 0x00b10e21 },
-   { 0x00800040, 0x23804529, 0x00b10380, 0x00b10c60 },
-   { 0x00800040, 0x23a04529, 0x00b103a0, 0x00b10c80 },
-   { 0x00800040, 0x23c04529, 0x00b103c0, 0x00b10ca0 },
-   { 0x00800040, 0x23e04529, 0x00b103e0, 0x00b10cc0 },
-   { 0x00800040, 0x24004529, 0x00b10400, 0x00b10ce0 },
-   { 0x00800040, 0x24204529, 0x00b10420, 0x00b10d00 },
-   { 0x00800040, 0x24404529, 0x00b10440, 0x00b10d20 },
-   { 0x00800040, 0x24604529, 0x00b10460, 0x00b10d40 },
-   { 0x00800040, 0x24804529, 0x00b10480, 0x00b10d60 },
-   { 0x00800040, 0x24a04529, 0x00b104a0, 0x00b10d80 },
-   { 0x00800040, 0x24c04529, 0x00b104c0, 0x00b10da0 },
-   { 0x00800040, 0x24e04529, 0x00b104e0, 0x00b10dc0 },
-   { 0x00800040, 0x25004529, 0x00b10500, 0x00b10de0 },
-   { 0x00800040, 0x25204529, 0x00b10520, 0x00b10e00 },
-   { 0x00800040, 0x25404529, 0x00b10540, 0x00b10e20 },
-   { 0x00800040, 0x25604529, 0x00b10560, 0x00b10f00 },
-   { 0x00800040, 0x23804529, 0x00b10380, 0x00b10c61 },
-   { 0x00800040, 0x23a04529, 0x00b103a0, 0x00b10c81 },
-   { 0x00800040, 0x23c04529, 0x00b103c0, 0x00b10ca1 },
-   { 0x00800040, 0x23e04529, 0x00b103e0, 0x00b10cc1 },
-   { 0x00800040, 0x24004529, 0x00b10400, 0x00b10ce1 },
-   { 0x00800040, 0x24204529, 0x00b10420, 0x00b10d01 },
-   { 0x00800040, 0x24404529, 0x00b10440, 0x00b10d21 },
-   { 0x00800040, 0x24604529, 0x00b10460, 0x00b10d41 },
-   { 0x00800040, 0x24804529, 0x00b10480, 0x00b10d61 },
-   { 0x00800040, 0x24a04529, 0x00b104a0, 0x00b10d81 },
-   { 0x00800040, 0x24c04529, 0x00b104c0, 0x00b10da1 },
-   { 0x00800040, 0x24e04529, 0x00b104e0, 0x00b10dc1 },
-   { 0x00800040, 0x25004529, 0x00b10500, 0x00b10de1 },
-   { 0x00800040, 0x25204529, 0x00b10520, 0x00b10e01 },
-   { 0x00800040, 0x25404529, 0x00b10540, 0x00b10e21 },
-   { 0x00800040, 0x25604529, 0x00b10560, 0x00b10f01 },
-   { 0x80800008, 0x23802d29, 0x00b10380, 0x00020002 },
-   { 0x80800008, 0x23a02d29, 0x00b103a0, 0x00020002 },
-   { 0x80800008, 0x23c02d29, 0x00b103c0, 0x00020002 },
-   { 0x80800008, 0x23e02d29, 0x00b103e0, 0x00020002 },
-   { 0x80800008, 0x24002d29, 0x00b10400, 0x00020002 },
-   { 0x80800008, 0x24202d29, 0x00b10420, 0x00020002 },
-   { 0x80800008, 0x24402d29, 0x00b10440, 0x00020002 },
-   { 0x80800008, 0x24602d29, 0x00b10460, 0x00020002 },
-   { 0x80800008, 0x24802d29, 0x00b10480, 0x00020002 },
-   { 0x80800008, 0x24a02d29, 0x00b104a0, 0x00020002 },
-   { 0x80800008, 0x24c02d29, 0x00b104c0, 0x00020002 },
-   { 0x80800008, 0x24e02d29, 0x00b104e0, 0x00020002 },
-   { 0x80800008, 0x25002d29, 0x00b10500, 0x00020002 },
-   { 0x80800008, 0x25202d29, 0x00b10520, 0x00020002 },
-   { 0x80800008, 0x25402d29, 0x00b10540, 0x00020002 },
-   { 0x80800008, 0x25602d29, 0x00b10560, 0x00020002 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000043 },
-   { 0x00000001, 0x20480061, 0x00000000, 0x0007001f },
-   { 0x00800031, 0x2c401d29, 0x008d0040, 0x0418a004 },
-   { 0x00000040, 0x20440c21, 0x00210044, 0x00000008 },
-   { 0x00800031, 0x2d401d29, 0x008d0040, 0x0418a004 },
-   { 0x80800042, 0x23804629, 0x00b10c40, 0x00b10c41 },
-   { 0x80800042, 0x23a04629, 0x00b10c60, 0x00b10c61 },
-   { 0x80800042, 0x23c04629, 0x00b10c80, 0x00b10c81 },
-   { 0x80800042, 0x23e04629, 0x00b10ca0, 0x00b10ca1 },
-   { 0x80800042, 0x24004629, 0x00b10cc0, 0x00b10cc1 },
-   { 0x80800042, 0x24204629, 0x00b10ce0, 0x00b10ce1 },
-   { 0x80800042, 0x24404629, 0x00b10d00, 0x00b10d01 },
-   { 0x80800042, 0x24604629, 0x00b10d20, 0x00b10d21 },
-   { 0x80800042, 0x24804629, 0x00b10d40, 0x00b10d41 },
-   { 0x80800042, 0x24a04629, 0x00b10d60, 0x00b10d61 },
-   { 0x80800042, 0x24c04629, 0x00b10d80, 0x00b10d81 },
-   { 0x80800042, 0x24e04629, 0x00b10da0, 0x00b10da1 },
-   { 0x80800042, 0x25004629, 0x00b10dc0, 0x00b10dc1 },
-   { 0x80800042, 0x25204629, 0x00b10de0, 0x00b10de1 },
-   { 0x80800042, 0x25404629, 0x00b10e00, 0x00b10e01 },
-   { 0x80800042, 0x25604629, 0x00b10e20, 0x00b10e21 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x0000002e },
-   { 0x01000005, 0x20000d3c, 0x00210e70, 0x00000001 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000018 },
-   { 0x00000001, 0x20480061, 0x00000000, 0x0007001f },
-   { 0x00800031, 0x2c401d29, 0x008d0040, 0x0418a004 },
-   { 0x00000040, 0x20440c21, 0x00210044, 0x00000008 },
-   { 0x00800031, 0x2d401d29, 0x008d0040, 0x0418a004 },
-   { 0x00000040, 0x20440c21, 0x00210044, 0x00000008 },
-   { 0x00000001, 0x20480061, 0x00000000, 0x0000001f },
-   { 0x00800031, 0x2f001d29, 0x008d0040, 0x0411a004 },
-   { 0x80800042, 0x23804629, 0x00b10c40, 0x00b10c60 },
-   { 0x80800042, 0x23a04629, 0x00b10c60, 0x00b10c80 },
-   { 0x80800042, 0x23c04629, 0x00b10c80, 0x00b10ca0 },
-   { 0x80800042, 0x23e04629, 0x00b10ca0, 0x00b10cc0 },
-   { 0x80800042, 0x24004629, 0x00b10cc0, 0x00b10ce0 },
-   { 0x80800042, 0x24204629, 0x00b10ce0, 0x00b10d00 },
-   { 0x80800042, 0x24404629, 0x00b10d00, 0x00b10d20 },
-   { 0x80800042, 0x24604629, 0x00b10d20, 0x00b10d40 },
-   { 0x80800042, 0x24804629, 0x00b10d40, 0x00b10d60 },
-   { 0x80800042, 0x24a04629, 0x00b10d60, 0x00b10d80 },
-   { 0x80800042, 0x24c04629, 0x00b10d80, 0x00b10da0 },
-   { 0x80800042, 0x24e04629, 0x00b10da0, 0x00b10dc0 },
-   { 0x80800042, 0x25004629, 0x00b10dc0, 0x00b10de0 },
-   { 0x80800042, 0x25204629, 0x00b10de0, 0x00b10e00 },
-   { 0x80800042, 0x25404629, 0x00b10e00, 0x00b10e20 },
-   { 0x80800042, 0x25604629, 0x00b10e20, 0x00b10f00 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000014 },
-   { 0x00000001, 0x20480061, 0x00000000, 0x0007001f },
-   { 0x00800031, 0x2c401d29, 0x008d0040, 0x0418a004 },
-   { 0x00000040, 0x20440c21, 0x00210044, 0x00000008 },
-   { 0x00800031, 0x2d401d29, 0x008d0040, 0x0418a004 },
-   { 0x00800001, 0x23800229, 0x00b10c40, 0x00000000 },
-   { 0x00800001, 0x23a00229, 0x00b10c60, 0x00000000 },
-   { 0x00800001, 0x23c00229, 0x00b10c80, 0x00000000 },
-   { 0x00800001, 0x23e00229, 0x00b10ca0, 0x00000000 },
-   { 0x00800001, 0x24000229, 0x00b10cc0, 0x00000000 },
-   { 0x00800001, 0x24200229, 0x00b10ce0, 0x00000000 },
-   { 0x00800001, 0x24400229, 0x00b10d00, 0x00000000 },
-   { 0x00800001, 0x24600229, 0x00b10d20, 0x00000000 },
-   { 0x00800001, 0x24800229, 0x00b10d40, 0x00000000 },
-   { 0x00800001, 0x24a00229, 0x00b10d60, 0x00000000 },
-   { 0x00800001, 0x24c00229, 0x00b10d80, 0x00000000 },
-   { 0x00800001, 0x24e00229, 0x00b10da0, 0x00000000 },
-   { 0x00800001, 0x25000229, 0x00b10dc0, 0x00000000 },
-   { 0x00800001, 0x25200229, 0x00b10de0, 0x00000000 },
-   { 0x00800001, 0x25400229, 0x00b10e00, 0x00000000 },
-   { 0x00800001, 0x25600229, 0x00b10e20, 0x00000000 },
-   { 0x00200008, 0x20200c21, 0x00450e60, 0x00000001 },
-   { 0x0020000c, 0x2e6e3dad, 0x00450e6e, 0x00010001 },
-   { 0x0020000c, 0x202e3dad, 0x00450e6e, 0x00010001 },
-   { 0x00200040, 0x20403421, 0x00450020, 0x0045002e },
-   { 0x00000001, 0x20480061, 0x00000000, 0x0007000f },
-   { 0x00800031, 0x2ac01d29, 0x008d0040, 0x0414a005 },
-   { 0x00800031, 0x2b401d29, 0x008d0040, 0x0414a006 },
-   { 0x00800001, 0x25800229, 0x00ad0ac0, 0x00000000 },
-   { 0x00800001, 0x25a00229, 0x00ad0ae0, 0x00000000 },
-   { 0x00800001, 0x25c00229, 0x00ad0b00, 0x00000000 },
-   { 0x00800001, 0x25e00229, 0x00ad0b20, 0x00000000 },
-   { 0x00800001, 0x26000229, 0x00ad0b40, 0x00000000 },
-   { 0x00800001, 0x26200229, 0x00ad0b60, 0x00000000 },
-   { 0x00800001, 0x26400229, 0x00ad0b80, 0x00000000 },
-   { 0x00800001, 0x26600229, 0x00ad0ba0, 0x00000000 },
-   { 0x00600001, 0x20200021, 0x008d0980, 0x00000000 },
-   { 0x00800001, 0x458101f1, 0x00000000, 0x00000000 },
-   { 0x00800001, 0x45a101f1, 0x00000000, 0x00000000 },
-   { 0x00800001, 0x45c101f1, 0x00000000, 0x00000000 },
-   { 0x00800001, 0x45e101f1, 0x00000000, 0x00000000 },
-   { 0x00800001, 0x460101f1, 0x00000000, 0x00000000 },
-   { 0x00800001, 0x462101f1, 0x00000000, 0x00000000 },
-   { 0x00800001, 0x464101f1, 0x00000000, 0x00000000 },
-   { 0x00800001, 0x466101f1, 0x00000000, 0x00000000 },
-   { 0x02000005, 0x20002e3c, 0x0021003e, 0x00010001 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000011 },
-   { 0x00800040, 0x238045ad, 0x00b10060, 0x00b20380 },
-   { 0x00800040, 0x23a045ad, 0x00b10080, 0x00b203a0 },
-   { 0x00800040, 0x23c045ad, 0x00b100a0, 0x00b203c0 },
-   { 0x00800040, 0x23e045ad, 0x00b100c0, 0x00b203e0 },
-   { 0x00800040, 0x240045ad, 0x00b100e0, 0x00b20400 },
-   { 0x00800040, 0x242045ad, 0x00b10100, 0x00b20420 },
-   { 0x00800040, 0x244045ad, 0x00b10120, 0x00b20440 },
-   { 0x00800040, 0x246045ad, 0x00b10140, 0x00b20460 },
-   { 0x00800040, 0x248045ad, 0x00b10160, 0x00b20480 },
-   { 0x00800040, 0x24a045ad, 0x00b10180, 0x00b204a0 },
-   { 0x00800040, 0x24c045ad, 0x00b101a0, 0x00b204c0 },
-   { 0x00800040, 0x24e045ad, 0x00b101c0, 0x00b204e0 },
-   { 0x00800040, 0x250045ad, 0x00b101e0, 0x00b20500 },
-   { 0x00800040, 0x252045ad, 0x00b10200, 0x00b20520 },
-   { 0x00800040, 0x254045ad, 0x00b10220, 0x00b20540 },
-   { 0x00800040, 0x256045ad, 0x00b10240, 0x00b20560 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000010 },
-   { 0x00800040, 0x238045ad, 0x00b10060, 0x00b20380 },
-   { 0x00800040, 0x23a045ad, 0x00b10160, 0x00b203a0 },
-   { 0x00800040, 0x23c045ad, 0x00b10080, 0x00b203c0 },
-   { 0x00800040, 0x23e045ad, 0x00b10180, 0x00b203e0 },
-   { 0x00800040, 0x240045ad, 0x00b100a0, 0x00b20400 },
-   { 0x00800040, 0x242045ad, 0x00b101a0, 0x00b20420 },
-   { 0x00800040, 0x244045ad, 0x00b100c0, 0x00b20440 },
-   { 0x00800040, 0x246045ad, 0x00b101c0, 0x00b20460 },
-   { 0x00800040, 0x248045ad, 0x00b100e0, 0x00b20480 },
-   { 0x00800040, 0x24a045ad, 0x00b101e0, 0x00b204a0 },
-   { 0x00800040, 0x24c045ad, 0x00b10100, 0x00b204c0 },
-   { 0x00800040, 0x24e045ad, 0x00b10200, 0x00b204e0 },
-   { 0x00800040, 0x250045ad, 0x00b10120, 0x00b20500 },
-   { 0x00800040, 0x252045ad, 0x00b10220, 0x00b20520 },
-   { 0x00800040, 0x254045ad, 0x00b10140, 0x00b20540 },
-   { 0x00800040, 0x256045ad, 0x00b10240, 0x00b20560 },
-   { 0x00000001, 0x20280061, 0x00000000, 0x000f000f },
-   { 0x80800001, 0x438001b1, 0x00b10380, 0x00000000 },
-   { 0x80800001, 0x43a001b1, 0x00b103a0, 0x00000000 },
-   { 0x80800001, 0x43c001b1, 0x00b103c0, 0x00000000 },
-   { 0x80800001, 0x43e001b1, 0x00b103e0, 0x00000000 },
-   { 0x80800001, 0x440001b1, 0x00b10400, 0x00000000 },
-   { 0x80800001, 0x442001b1, 0x00b10420, 0x00000000 },
-   { 0x80800001, 0x444001b1, 0x00b10440, 0x00000000 },
-   { 0x80800001, 0x446001b1, 0x00b10460, 0x00000000 },
-   { 0x80800001, 0x448001b1, 0x00b10480, 0x00000000 },
-   { 0x80800001, 0x44a001b1, 0x00b104a0, 0x00000000 },
-   { 0x80800001, 0x44c001b1, 0x00b104c0, 0x00000000 },
-   { 0x80800001, 0x44e001b1, 0x00b104e0, 0x00000000 },
-   { 0x80800001, 0x450001b1, 0x00b10500, 0x00000000 },
-   { 0x80800001, 0x452001b1, 0x00b10520, 0x00000000 },
-   { 0x80800001, 0x454001b1, 0x00b10540, 0x00000000 },
-   { 0x80800001, 0x456001b1, 0x00b10560, 0x00000000 },
-   { 0x00800001, 0x20200232, 0x00b20380, 0x00000000 },
-   { 0x00800001, 0x20300232, 0x00b203a0, 0x00000000 },
-   { 0x00800001, 0x20400232, 0x00b203c0, 0x00000000 },
-   { 0x00800001, 0x20500232, 0x00b203e0, 0x00000000 },
-   { 0x00800001, 0x20600232, 0x00b20400, 0x00000000 },
-   { 0x00800001, 0x20700232, 0x00b20420, 0x00000000 },
-   { 0x00800001, 0x20800232, 0x00b20440, 0x00000000 },
-   { 0x00800001, 0x20900232, 0x00b20460, 0x00000000 },
-   { 0x00800001, 0x20a00232, 0x00b20480, 0x00000000 },
-   { 0x00800001, 0x20b00232, 0x00b204a0, 0x00000000 },
-   { 0x00800001, 0x20c00232, 0x00b204c0, 0x00000000 },
-   { 0x00800001, 0x20d00232, 0x00b204e0, 0x00000000 },
-   { 0x00800001, 0x20e00232, 0x00b20500, 0x00000000 },
-   { 0x00800001, 0x20f00232, 0x00b20520, 0x00000000 },
-   { 0x00800001, 0x21000232, 0x00b20540, 0x00000000 },
-   { 0x00800001, 0x21100232, 0x00b20560, 0x00000000 },
-   { 0x00800031, 0x24001d28, 0x008d0020, 0x05902000 },
-   { 0x00000001, 0x20280061, 0x00000000, 0x00070007 },
-   { 0x00200008, 0x20201c21, 0x00450020, 0x00000001 },
-   { 0x00800040, 0x258025a9, 0x00b10260, 0x00b10580 },
-   { 0x00800040, 0x25a025a9, 0x00b10280, 0x00b105a0 },
-   { 0x00800040, 0x25c025a9, 0x00b102a0, 0x00b105c0 },
-   { 0x00800040, 0x25e025a9, 0x00b102c0, 0x00b105e0 },
-   { 0x80800001, 0x45800131, 0x00b10580, 0x00000000 },
-   { 0x80800001, 0x45a00131, 0x00b105a0, 0x00000000 },
-   { 0x80800001, 0x45c00131, 0x00b105c0, 0x00000000 },
-   { 0x80800001, 0x45e00131, 0x00b105e0, 0x00000000 },
-   { 0x00800001, 0x20200232, 0x00b20580, 0x00000000 },
-   { 0x00800001, 0x20300232, 0x00b205a0, 0x00000000 },
-   { 0x00800001, 0x20400232, 0x00b205c0, 0x00000000 },
-   { 0x00800001, 0x20500232, 0x00b205e0, 0x00000000 },
-   { 0x00800031, 0x24001d28, 0x008d0020, 0x05302001 },
-   { 0x00800040, 0x260025a9, 0x00b102e0, 0x00b10600 },
-   { 0x00800040, 0x262025a9, 0x00b10300, 0x00b10620 },
-   { 0x00800040, 0x264025a9, 0x00b10320, 0x00b10640 },
-   { 0x00800040, 0x266025a9, 0x00b10340, 0x00b10660 },
-   { 0x80800001, 0x46000131, 0x00b10600, 0x00000000 },
-   { 0x80800001, 0x46200131, 0x00b10620, 0x00000000 },
-   { 0x80800001, 0x46400131, 0x00b10640, 0x00000000 },
-   { 0x80800001, 0x46600131, 0x00b10660, 0x00000000 },
-   { 0x00800001, 0x20200232, 0x00b20600, 0x00000000 },
-   { 0x00800001, 0x20300232, 0x00b20620, 0x00000000 },
-   { 0x00800001, 0x20400232, 0x00b20640, 0x00000000 },
-   { 0x00800001, 0x20500232, 0x00b20660, 0x00000000 },
-   { 0x00800031, 0x24001d28, 0x008d0020, 0x05302002 },
-   { 0x00800031, 0x24001d28, 0x008d0000, 0x87100000 },
-   { 0x00800031, 0x24001d28, 0x008d0000, 0x87100000 },
+   { 0x00600001, 0x2a400021, 0x008d03e0, 0x00000000 },
+   { 0x00000001, 0x2fc80001, 0x00001400, 0x00000000 },
+   { 0x00000040, 0x34000c20, 0x002102a0, 0x00000050 },
+   { 0x0020000c, 0x23ee3dad, 0x00450a4e, 0x00010001 },
+   { 0x00200040, 0x24003421, 0x004503e0, 0x004503ee },
+   { 0x00000001, 0x24100169, 0x00000000, 0x00000000 },
+   { 0x00000001, 0x22000060, 0x00000000, 0x00000a4e },
+   { 0x00000001, 0x2fc80001, 0x00001400, 0x00000000 },
+   { 0x00000040, 0x34000c20, 0x002102a0, 0x00000000 },
+   { 0x00200008, 0x23e00c21, 0x004503e0, 0x00000001 },
+   { 0x0020000c, 0x23ee3dad, 0x00450a4e, 0x00020002 },
+   { 0x00200040, 0x24003421, 0x004503e0, 0x004503ee },
+   { 0x00000001, 0x2fc80001, 0x00001400, 0x00000000 },
+   { 0x00000040, 0x34000c20, 0x002102a0, 0x00000010 },
+   { 0x00000040, 0x34000c20, 0x002102a0, 0x00000040 },
diff --git a/src/xvmc/shader/mc/motion_field_uv_igd.g4i b/src/xvmc/shader/mc/motion_field_uv_igd.g4i
index d4eba84..9681e2e 100644
--- a/src/xvmc/shader/mc/motion_field_uv_igd.g4i
+++ b/src/xvmc/shader/mc/motion_field_uv_igd.g4i
@@ -24,11 +24,11 @@
  *    Zou Nan hai <nanhai.zou at intel.com>
  *    Zhang Hua jun <huajun.zhang at intel.com>
  *    Xing Dong sheng <dongsheng.xing at intel.com>
- *
  */
-       and.z (1) null mv1<1,1,1>UW 2UW {align1};       
+       and.z (1) null g[a0.0]<1,1,1>UW 2UW {align1};       
        (f0) jmpi L1;
-       and.z (1) null mv2<1,1,1>UW 2UW {align1};       
+       add (1) a0.0<1>UD a0.0<1,1,1>UD 0x2UD {align1};
+       and.z (1) null g[a0.0]<1,1,1>UW 2UW {align1};       
        (f0) jmpi L2;
        include(`read_field_x1y1_uv_igd.g4i')
        jmpi L5;
@@ -36,11 +36,11 @@ L2:
        include(`read_field_x1y0_uv_igd.g4i')
        jmpi L5;
 L1:
-       and.z (1) null mv2<1,1,1>UW 2UW {align1};       
+       add (1) a0.0<1>UD a0.0<1,1,1>UD 0x2UD {align1};
+       and.z (1) null g[a0.0]<1,1,1>UW 2UW {align1};       
        (f0) jmpi L4;
        include(`read_field_x0y1_uv_igd.g4i')
        jmpi L5;
 L4:
        include(`read_field_x0y0_uv_igd.g4i')
 L5:
-
diff --git a/src/xvmc/shader/mc/motion_field_y_igd.g4i b/src/xvmc/shader/mc/motion_field_y_igd.g4i
index bd55cb2..619857a 100644
--- a/src/xvmc/shader/mc/motion_field_y_igd.g4i
+++ b/src/xvmc/shader/mc/motion_field_y_igd.g4i
@@ -19,16 +19,15 @@
  * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
  * SOFTWARE.
- *
  * Author:
  *    Zou Nan hai <nanhai.zou at intel.com>
  *    Zhang Hua jun <huajun.zhang at intel.com>
  *    Xing Dong sheng <dongsheng.xing at intel.com>
- *
  */
-	and.z (1) null mv1<1,1,1>UW 1UW {align1};	
+	and.z (1) null g[a0.0]<1,1,1>UW 1UW {align1};	
 	(f0) jmpi L1;
-	and.z (1) null mv2<1,1,1>UW 1UW {align1};	
+	add (1) a0.0<1>UD a0.0<1,1,1>UD 0x2UD {align1};
+	and.z (1) null g[a0.0]<1,1,1>UW 1UW {align1};	
 	(f0) jmpi L2;
 	include(`read_field_x1y1_y_igd.g4i')
 	jmpi L5;
@@ -36,7 +35,8 @@ L2:
 	include(`read_field_x1y0_y_igd.g4i')
 	jmpi L5;
 L1:
-	and.z (1) null mv2<1,1,1>UW 1UW {align1};	
+	add (1) a0.0<1>UD a0.0<1,1,1>UD 0x2UD {align1};
+	and.z (1) null g[a0.0]<1,1,1>UW 1UW {align1};	
 	(f0) jmpi L4;
 	include(`read_field_x0y1_y_igd.g4i')
 	jmpi L5;
diff --git a/src/xvmc/shader/mc/motion_frame_uv_igd.g4i b/src/xvmc/shader/mc/motion_frame_uv_igd.g4i
index 2e359fd..7fc8931 100644
--- a/src/xvmc/shader/mc/motion_frame_uv_igd.g4i
+++ b/src/xvmc/shader/mc/motion_frame_uv_igd.g4i
@@ -25,5 +25,6 @@
  *    Zhang Hua jun <huajun.zhang at intel.com>
  *    Xing Dong sheng <dongsheng.xing at intel.com>
  */  
-
+	
 	include(`read_frame_x0y0_uv_igd.g4i')
+
diff --git a/src/xvmc/shader/mc/motion_frame_y_igd.g4i b/src/xvmc/shader/mc/motion_frame_y_igd.g4i
index 911a8f4..d888b54 100644
--- a/src/xvmc/shader/mc/motion_frame_y_igd.g4i
+++ b/src/xvmc/shader/mc/motion_frame_y_igd.g4i
@@ -36,10 +36,10 @@
  *	  full_pixel_read;	
  * }	 
  */
-
-	and.z (1) null mv1<1,1,1>UW 1UD {align1};	
+	and.z (1) null g[a0.0]<1,1,1>UW 1UD {align1};	
 	(f0) jmpi LL1;
-	and.z (1) null mv2<1,1,1>UW 1UD {align1};	
+	add (1) a0.0<1>UD a0.0<1,1,1>UD 0x2UD {align1};
+	and.z (1) null g[a0.0]<1,1,1>UW 1UD {align1};	
 	(f0) jmpi LL2;
 	include(`read_frame_x1y1_y_igd.g4i') 
 	jmpi LL5;
@@ -47,7 +47,8 @@ LL2:
 	include(`read_frame_x1y0_y_igd.g4i') 
 	jmpi LL5;
 LL1: 
-	and.z (1) null mv2<1,1,1>UW 1UD {align1};	
+	add (1) a0.0<1>UD a0.0<1,1,1>UD 0x2UD {align1};
+	and.z (1) null g[a0.0]<1,1,1>UW 1UD {align1};	
 	(f0) jmpi LL4;
 	include(`read_frame_x0y1_y_igd.g4i')
 	jmpi LL5;
diff --git a/src/xvmc/shader/mc/read_field_x0y0_uv_igd.g4i b/src/xvmc/shader/mc/read_field_x0y0_uv_igd.g4i
index c03a83d..23fe1a5 100644
--- a/src/xvmc/shader/mc/read_field_x0y0_uv_igd.g4i
+++ b/src/xvmc/shader/mc/read_field_x0y0_uv_igd.g4i
@@ -1,40 +1,30 @@
-/*
- * Copyright © 2008 Intel Corporation
- *
- * Permission is hereby granted, free of charge, to any person obtaining a
- * copy of this software and associated documentation files (the "Software"),
- * to deal in the Software without restriction, including without limitation
- * the rights to use, copy, modify, merge, publish, distribute, sublicense,
- * and/or sell copies of the Software, and to permit persons to whom the
- * Software is furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice (including the next
- * paragraph) shall be included in all copies or substantial portions of the
- * Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
- * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
- * SOFTWARE.
- *
- * Author:
- *    Zou Nan hai <nanhai.zou at intel.com>
- *    Zhang Hua jun <huajun.zhang at intel.com>
- *    Xing Dong sheng <dongsheng.xing at intel.com>
- *
- */
-mov (1) g115.8<1>UD 0x7000FUD {align1}; // 8*16/32=4
-send (16) 0 g86.0<1>UW g115<16,8,1>UW read(surface_u, 2, 0, 2) mlen 1 rlen 4 {align1};//U
-send (16) 0 g91.0<1>UW g115<16,8,1>UW read(surface_v, 2, 0, 2) mlen 1 rlen 4 {align1};//V
+/* GRF allocation:
+   g1~g30: constant buffer
+           g1~g2:intra IQ matrix
+           g3~g4:non intra IQ matrix
+           g5~g20:IDCT table
+   g31:    thread payload 
+   g58~g81:reference data
+   g82:    thread payload backup
+   g83~g106:IDCT data
+   g115:   message descriptor for reading reference data   
+*/
 
-mov (16) g78.0<1>UW g86.0<16,8,1>UB {align1};
-mov (16) g79.0<1>UW g87.0<16,8,1>UB {align1};
-mov (16) g80.0<1>UW g88.0<16,8,1>UB {align1};
-mov (16) g81.0<1>UW g89.0<16,8,1>UB {align1};
-mov (16) g82.0<1>UW g91.0<16,8,1>UB {align1};
-mov (16) g83.0<1>UW g92.0<16,8,1>UB {align1};
-mov (16) g84.0<1>UW g93.0<16,8,1>UB {align1};
-mov (16) g85.0<1>UW g94.0<16,8,1>UB {align1};
+mov (1) g115.8<1>UD 0x07000FUD {align1};
+and.nz (1) null g115.16<1,1,1>UW 1UW {align1};
+(f0) jmpi read_backward;
+
+send (16) 0 g40.0<1>UW g115<8,8,1>UW read(5,2,0,2) mlen 1 rlen 4 {align1};
+send (16) 0 g48.0<1>UW g115<8,8,1>UW read(6,2,0,2) mlen 1 rlen 4 {align1};
+jmpi put_data;
+
+read_backward:
+send (16) 0 g40.0<1>UW g115<8,8,1>UW read(8,2,0,2) mlen 1 rlen 4 {align1};
+send (16) 0 g48.0<1>UW g115<8,8,1>UW read(9,2,0,2) mlen 1 rlen 4 {align1};
+
+put_data:
+mov (16) g32.0<1>UW g40.0<8,8,1>UB {align1 compr};
+mov (16) g34.0<1>UW g42.0<8,8,1>UB {align1 compr};
+
+mov (16) g36.0<1>UW g48.0<8,8,1>UB {align1 compr};
+mov (16) g38.0<1>UW g50.0<8,8,1>UB {align1 compr};
diff --git a/src/xvmc/shader/mc/read_field_x0y0_y_igd.g4i b/src/xvmc/shader/mc/read_field_x0y0_y_igd.g4i
index 294cfb4..8dcb96d 100644
--- a/src/xvmc/shader/mc/read_field_x0y0_y_igd.g4i
+++ b/src/xvmc/shader/mc/read_field_x0y0_y_igd.g4i
@@ -1,48 +1,35 @@
-/*
- * Copyright © 2008 Intel Corporation
- *
- * Permission is hereby granted, free of charge, to any person obtaining a
- * copy of this software and associated documentation files (the "Software"),
- * to deal in the Software without restriction, including without limitation
- * the rights to use, copy, modify, merge, publish, distribute, sublicense,
- * and/or sell copies of the Software, and to permit persons to whom the
- * Software is furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice (including the next
- * paragraph) shall be included in all copies or substantial portions of the
- * Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
- * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
- * SOFTWARE.
- *
- * Author:
- *    Zou Nan hai <nanhai.zou at intel.com>
- *    Zhang Hua jun <huajun.zhang at intel.com>
- *    Xing Dong sheng <dongsheng.xing at intel.com>
- *
- */
-mov (1) g115.8<1>UD 0x01FUD {align1};
-send (16) 0 g78.0<1>UW g115<8,8,1>UW read(surface,2,0,2) mlen 1 rlen 1 {align1};
-add (1) g115.4<1>UD g115.4<1,1,1>UD 2UD {align1};
-send (16) 0 g80.0<1>UW g115<8,8,1>UW read(surface,2,0,2) mlen 1 rlen 1 {align1};
-add (1) g115.4<1>UD g115.4<1,1,1>UD 2UD {align1};
-send (16) 0 g82.0<1>UW g115<8,8,1>UW read(surface,2,0,2) mlen 1 rlen 1 {align1};
-add (1) g115.4<1>UD g115.4<1,1,1>UD 2UD {align1};
-send (16) 0 g84.0<1>UW g115<8,8,1>UW read(surface,2,0,2) mlen 1 rlen 1 {align1};
-add (1) g115.4<1>UD g115.4<1,1,1>UD 2UD {align1};
+/* GRF allocation:
+   g1~g30: constant buffer
+           g1~g2:intra IQ matrix
+           g3~g4:non intra IQ matrix
+           g5~g20:IDCT table
+   g31:    thread payload 
+   g58~g81:reference data
+   g82:    thread payload backup
+   g84~g107:IDCT data
+   g115:   message descriptor for reading reference data   
+*/
 mov (1) g115.8<1>UD 0x07001FUD {align1};
-send (16) 0 g86.0<1>UW g115<8,8,1>UW read(surface,2,0,2) mlen 1 rlen 8 {align1};
+and.nz (1) null g115.16<1,1,1>UW 1UW {align1};
+(f0) jmpi read_backward;
+
+send (16) 0 g40.0<1>UW g115<8,8,1>UW read(4,2,0,2) mlen 1 rlen 8 {align1};
+add (1) g115.4<1>UD g115.4<1,1,1>UD 8UD {align1};
+send (16) 0 g48.0<1>UW g115<8,8,1>UW read(4,2,0,2) mlen 1 rlen 8 {align1};
+jmpi put_data;
+
+read_backward:
+send (16) 0 g40.0<1>UW g115<8,8,1>UW read(7,2,0,2) mlen 1 rlen 8 {align1};
+add (1) g115.4<1>UD g115.4<1,1,1>UD 8UD {align1};
+send (16) 0 g48.0<1>UW g115<8,8,1>UW read(7,2,0,2) mlen 1 rlen 8 {align1};
+
+put_data:
+mov (16) g32.0<1>UW g40.0<16,16,1>UB {align1};
+mov (16) g33.0<1>UW g42.0<16,16,1>UB {align1};
+mov (16) g34.0<1>UW g44.0<16,16,1>UB {align1};
+mov (16) g35.0<1>UW g46.0<16,16,1>UB {align1};
+mov (16) g36.0<1>UW g48.0<16,16,1>UB {align1};
+mov (16) g37.0<1>UW g50.0<16,16,1>UB {align1};
+mov (16) g38.0<1>UW g52.0<16,16,1>UB {align1};
+mov (16) g39.0<1>UW g54.0<16,16,1>UB {align1};
 
-mov (16) g96.0<1>UW g78.0<16,16,1>UB {align1};
-mov (16) g97.0<1>UW g80.0<16,16,1>UB {align1};
-mov (16) g98.0<1>UW g82.0<16,16,1>UB {align1};
-mov (16) g99.0<1>UW g84.0<16,16,1>UB {align1};
-mov (16) g100.0<1>UW g86.0<16,16,1>UB {align1};
-mov (16) g101.0<1>UW g88.0<16,16,1>UB {align1};
-mov (16) g102.0<1>UW g90.0<16,16,1>UB {align1};
-mov (16) g103.0<1>UW g92.0<16,16,1>UB {align1};
diff --git a/src/xvmc/shader/mc/read_field_x0y1_uv_igd.g4i b/src/xvmc/shader/mc/read_field_x0y1_uv_igd.g4i
index 9e8efa0..489f50a 100644
--- a/src/xvmc/shader/mc/read_field_x0y1_uv_igd.g4i
+++ b/src/xvmc/shader/mc/read_field_x0y1_uv_igd.g4i
@@ -1,43 +1,42 @@
-/*
- * Copyright © 2008 Intel Corporation
- *
- * Permission is hereby granted, free of charge, to any person obtaining a
- * copy of this software and associated documentation files (the "Software"),
- * to deal in the Software without restriction, including without limitation
- * the rights to use, copy, modify, merge, publish, distribute, sublicense,
- * and/or sell copies of the Software, and to permit persons to whom the
- * Software is furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice (including the next
- * paragraph) shall be included in all copies or substantial portions of the
- * Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
- * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
- * SOFTWARE.
- *
- * Author:
- *    Zou Nan hai <nanhai.zou at intel.com>
- *    Zhang Hua jun <huajun.zhang at intel.com>
- *    Xing Dong sheng <dongsheng.xing at intel.com>
- *
- */
-mov (1) g115.8<1>UD 0x07000FUD {align1}; // 8*16/32=4
-send (16) 0 g86.0<1>UW g115<16,8,1>UW read(surface_u, 2, 0, 2) mlen 1 rlen 4 {align1};//U
-send (16) 0 g91.0<1>UW g115<16,8,1>UW read(surface_v, 2, 0, 2) mlen 1 rlen 4 {align1};//V
+/* GRF allocation:
+   g1~g30: constant buffer
+           g1~g2:intra IQ matrix
+           g3~g4:non intra IQ matrix
+           g5~g20:IDCT table
+   g31:    thread payload 
+   g58~g81:reference data
+   g82:    thread payload backup
+   g83~g106:IDCT data
+   g115:   message descriptor for reading reference data   
+*/
+
+mov (1) g115.8<1>UD 0x07000FUD {align1}; 
+and.nz (1) null g115.16<1,1,1>UW 1UW {align1};
+(f0) jmpi read_backward;
+
+send (16) 0 g40.0<1>UW g115<8,8,1>UW read(5, 2, 0, 2) mlen 1 rlen 4 {align1};//U
+send (16) 0 g45.0<1>UW g115<8,8,1>UW read(6, 2, 0, 2) mlen 1 rlen 4 {align1};//V
 mov (1) g115.8<1>UD 0xFUD {align1};
-send (16) 0 g90.0<1>UW g115<16,8,1>UW read(surface_u, 2, 0, 2) mlen 1 rlen 1 {align1};
-send (16) 0 g95.0<1>UW g115<16,8,1>UW read(surface_v, 2, 0, 2) mlen 1 rlen 1 {align1};
+add (1) g115.4<1>UD g115.4<1,1,1>UD 8UD {align1};
+send (16) 0 g44.0<1>UW g115<8,8,1>UW read(5, 2, 0, 2) mlen 1 rlen 1 {align1};//U
+send (16) 0 g49.0<1>UW g115<8,8,1>UW read(6, 2, 0, 2) mlen 1 rlen 1 {align1};//V
+jmpi put_data;
+
+read_backward:
+send (16) 0 g40.0<1>UW g115<8,8,1>UW read(8, 2, 0, 2) mlen 1 rlen 4 {align1};//U
+send (16) 0 g45.0<1>UW g115<8,8,1>UW read(9, 2, 0, 2) mlen 1 rlen 4 {align1};//V
+mov (1) g115.8<1>UD 0xFUD {align1};
+add (1) g115.4<1>UD g115.4<1,1,1>UD 8UD {align1};
+send (16) 0 g44.0<1>UW g115<8,8,1>UW read(8, 2, 0, 2) mlen 1 rlen 1 {align1};//U
+send (16) 0 g49.0<1>UW g115<8,8,1>UW read(9, 2, 0, 2) mlen 1 rlen 1 {align1};//V
+
+put_data:
+avg (8) g32.0<1>UW g40.0<8,8,1>UB g41.0<8,8,1>UB {align1};
+avg (8) g33.0<1>UW g41.0<8,8,1>UB g42.0<8,8,1>UB {align1};
+avg (8) g34.0<1>UW g42.0<8,8,1>UB g43.0<8,8,1>UB {align1};
+avg (8) g35.0<1>UW g43.0<8,8,1>UB g44.0<8,8,1>UB {align1};
 
-avg.sat (16) g78.0<1>UW g86.0<16,8,1>UB g87.0<16,8,1>UB {align1};
-avg.sat (16) g79.0<1>UW g87.0<16,8,1>UB g88.0<16,8,1>UB {align1};
-avg.sat (16) g80.0<1>UW g88.0<16,8,1>UB g89.0<16,8,1>UB {align1};
-avg.sat (16) g81.0<1>UW g89.0<16,8,1>UB g90.0<16,8,1>UB {align1};
-avg.sat (16) g82.0<1>UW g91.0<16,8,1>UB g92.0<16,8,1>UB {align1};
-avg.sat (16) g83.0<1>UW g92.0<16,8,1>UB g93.0<16,8,1>UB {align1};
-avg.sat (16) g84.0<1>UW g93.0<16,8,1>UB g94.0<16,8,1>UB {align1};
-avg.sat (16) g85.0<1>UW g94.0<16,8,1>UB g95.0<16,8,1>UB {align1};
+avg (8) g36.0<1>UW g45.0<8,8,1>UB g46.0<8,8,1>UB {align1};
+avg (8) g37.0<1>UW g46.0<8,8,1>UB g47.0<8,8,1>UB {align1};
+avg (8) g38.0<1>UW g47.0<8,8,1>UB g48.0<8,8,1>UB {align1};
+avg (8) g39.0<1>UW g48.0<8,8,1>UB g49.0<8,8,1>UB {align1};
diff --git a/src/xvmc/shader/mc/read_field_x0y1_y_igd.g4i b/src/xvmc/shader/mc/read_field_x0y1_y_igd.g4i
index e48211b..58d3f26 100644
--- a/src/xvmc/shader/mc/read_field_x0y1_y_igd.g4i
+++ b/src/xvmc/shader/mc/read_field_x0y1_y_igd.g4i
@@ -1,51 +1,42 @@
-/*
- * Copyright © 2008 Intel Corporation
- *
- * Permission is hereby granted, free of charge, to any person obtaining a
- * copy of this software and associated documentation files (the "Software"),
- * to deal in the Software without restriction, including without limitation
- * the rights to use, copy, modify, merge, publish, distribute, sublicense,
- * and/or sell copies of the Software, and to permit persons to whom the
- * Software is furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice (including the next
- * paragraph) shall be included in all copies or substantial portions of the
- * Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
- * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
- * SOFTWARE.
- *
- * Author:
- *    Zou Nan hai <nanhai.zou at intel.com>
- *    Zhang Hua jun <huajun.zhang at intel.com>
- *    Xing Dong sheng <dongsheng.xing at intel.com>
- *
- */
-mov (1) g115.8<1>UD 0x01FUD {align1};
-send (16) 0 g78.0<1>UW g115<8,8,1>UW read(surface,2,0,2) mlen 1 rlen 1 {align1};
-add (1) g115.4<1>UD g115.4<1,1,1>UD 2UD {align1};
-send (16) 0 g80.0<1>UW g115<8,8,1>UW read(surface,2,0,2) mlen 1 rlen 1 {align1};
-add (1) g115.4<1>UD g115.4<1,1,1>UD 2UD {align1};
-send (16) 0 g82.0<1>UW g115<8,8,1>UW read(surface,2,0,2) mlen 1 rlen 1 {align1};
-add (1) g115.4<1>UD g115.4<1,1,1>UD 2UD {align1};
-send (16) 0 g84.0<1>UW g115<8,8,1>UW read(surface,2,0,2) mlen 1 rlen 1 {align1};
-add (1) g115.4<1>UD g115.4<1,1,1>UD 2UD {align1};
+/* GRF allocation:
+   g1~g30: constant buffer
+           g1~g2:intra IQ matrix
+           g3~g4:non intra IQ matrix
+           g5~g20:IDCT table
+   g31:    thread payload 
+   g58~g81:reference data
+   g82:    thread payload backup
+   g83~g106:IDCT data
+   g115:   message descriptor for reading reference data   
+*/
+
 mov (1) g115.8<1>UD 0x07001FUD {align1};
-send (16) 0 g86.0<1>UW g115<8,8,1>UW read(surface,2,0,2) mlen 1 rlen 8 {align1};
+and.nz (1) null g115.16<1,1,1>UW 1UW {align1};
+(f0) jmpi read_backward;
+
+send (16) 0 g40.0<1>UW g115<8,8,1>UW read(4,2,0,2) mlen 1 rlen 8 {align1};
+add (1) g115.4<1>UD g115.4<1,1,1>UD 8UD {align1};
+send (16) 0 g48.0<1>UW g115<8,8,1>UW read(4,2,0,2) mlen 1 rlen 8 {align1};
+add (1) g115.4<1>UD g115.4<1,1,1>UD 8UD {align1};
+mov (1) g115.8<1>UD 0x1FUD {align1};
+send (16) 0 g56.0<1>UW g115<8,8,1>UW read(4,2,0,2) mlen 1 rlen 1 {align1};
+jmpi put_data;
+
+read_backward:
+send (16) 0 g40.0<1>UW g115<8,8,1>UW read(7,2,0,2) mlen 1 rlen 8 {align1};
+add (1) g115.4<1>UD g115.4<1,1,1>UD 8UD {align1};
+send (16) 0 g48.0<1>UW g115<8,8,1>UW read(7,2,0,2) mlen 1 rlen 8 {align1};
 add (1) g115.4<1>UD g115.4<1,1,1>UD 8UD {align1};
 mov (1) g115.8<1>UD 0x1FUD {align1};
-send (16) 0 g94.0<1>UW g115<8,8,1>UW read(surface,2,0,2) mlen 1 rlen 1 {align1};
+send (16) 0 g56.0<1>UW g115<8,8,1>UW read(7,2,0,2) mlen 1 rlen 1 {align1};
+
+put_data:
+avg (16) g32.0<1>UW g40.0<16,16,1>UB g42.0<16,16,1>UB {align1};
+avg (16) g33.0<1>UW g42.0<16,16,1>UB g44.0<16,16,1>UB {align1};
+avg (16) g34.0<1>UW g44.0<16,16,1>UB g46.0<16,16,1>UB {align1};
+avg (16) g35.0<1>UW g46.0<16,16,1>UB g48.0<16,16,1>UB {align1};
+avg (16) g36.0<1>UW g48.0<16,16,1>UB g50.0<16,16,1>UB {align1};
+avg (16) g37.0<1>UW g50.0<16,16,1>UB g52.0<16,16,1>UB {align1};
+avg (16) g38.0<1>UW g52.0<16,16,1>UB g54.0<16,16,1>UB {align1};
+avg (16) g39.0<1>UW g54.0<16,16,1>UB g56.0<16,16,1>UB {align1};
 
-avg.sat (16) g96.0<1>UW g78.0<16,16,1>UB g80.0<16,16,1>UB {align1};
-avg.sat (16) g97.0<1>UW g80.0<16,16,1>UB g82.0<16,16,1>UB {align1};
-avg.sat (16) g98.0<1>UW g82.0<16,16,1>UB g84.0<16,16,1>UB {align1};
-avg.sat (16) g99.0<1>UW g84.0<16,16,1>UB g86.0<16,16,1>UB {align1};
-avg.sat (16) g100.0<1>UW g86.0<16,16,1>UB g88.0<16,16,1>UB {align1};
-avg.sat (16) g101.0<1>UW g88.0<16,16,1>UB g90.0<16,16,1>UB {align1};
-avg.sat (16) g102.0<1>UW g90.0<16,16,1>UB g92.0<16,16,1>UB {align1};
-avg.sat (16) g103.0<1>UW g92.0<16,16,1>UB g94.0<16,16,1>UB {align1};
diff --git a/src/xvmc/shader/mc/read_field_x1y0_uv_igd.g4i b/src/xvmc/shader/mc/read_field_x1y0_uv_igd.g4i
index fc56acc..0cec2e0 100644
--- a/src/xvmc/shader/mc/read_field_x1y0_uv_igd.g4i
+++ b/src/xvmc/shader/mc/read_field_x1y0_uv_igd.g4i
@@ -1,40 +1,33 @@
-/*
- * Copyright © 2008 Intel Corporation
- *
- * Permission is hereby granted, free of charge, to any person obtaining a
- * copy of this software and associated documentation files (the "Software"),
- * to deal in the Software without restriction, including without limitation
- * the rights to use, copy, modify, merge, publish, distribute, sublicense,
- * and/or sell copies of the Software, and to permit persons to whom the
- * Software is furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice (including the next
- * paragraph) shall be included in all copies or substantial portions of the
- * Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
- * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
- * SOFTWARE.
- *
- * Author:
- *    Zou Nan hai <nanhai.zou at intel.com>
- *    Zhang Hua jun <huajun.zhang at intel.com>
- *    Xing Dong sheng <dongsheng.xing at intel.com>
- *
- */
+/* GRF allocation:
+   g1~g30: constant buffer
+           g1~g2:intra IQ matrix
+           g3~g4:non intra IQ matrix
+           g5~g20:IDCT table
+   g31:    thread payload 
+   g58~g81:reference data
+   g82:    thread payload backup
+   g83~g106:IDCT data
+   g115:   message descriptor for reading reference data   */
+
 mov (1) g115.8<1>UD 0x07000FUD {align1}; // 8*16/32=4
-send (16) 0 g86.0<1>UW g115<16,8,1>UW read(surface_u, 2, 0, 2) mlen 1 rlen 4 {align1};//U
-send (16) 0 g91.0<1>UW g115<16,8,1>UW read(surface_v, 2, 0, 2) mlen 1 rlen 4 {align1};//V
+and.nz (1) null g115.16<1,1,1>UW 1UW {align1};
+(f0) jmpi read_backward;
+
+send (16) 0 g40.0<1>UW g115<8,8,1>UW read(5, 2, 0, 2) mlen 1 rlen 4 {align1};//U
+send (16) 0 g44.0<1>UW g115<8,8,1>UW read(6, 2, 0, 2) mlen 1 rlen 4 {align1};//V
+jmpi put_data;
+
+read_backward:
+send (16) 0 g40.0<1>UW g115<8,8,1>UW read(8, 2, 0, 2) mlen 1 rlen 4 {align1};//U
+send (16) 0 g44.0<1>UW g115<8,8,1>UW read(9, 2, 0, 2) mlen 1 rlen 4 {align1};//V
+
+put_data:
+avg (8) g32.0<1>UW g40.0<8,8,1>UB g40.1<8,8,1>UB {align1};
+avg (8) g33.0<1>UW g41.0<8,8,1>UB g41.1<8,8,1>UB {align1};
+avg (8) g34.0<1>UW g42.0<8,8,1>UB g42.1<8,8,1>UB {align1};
+avg (8) g35.0<1>UW g43.0<8,8,1>UB g43.1<8,8,1>UB {align1};
 
-avg.sat (16) g78.0<1>UW g86.0<16,8,1>UB g86.1<16,8,1>UB {align1};
-avg.sat (16) g79.0<1>UW g87.0<16,8,1>UB g87.1<16,8,1>UB {align1};
-avg.sat (16) g80.0<1>UW g88.0<16,8,1>UB g88.1<16,8,1>UB {align1};
-avg.sat (16) g81.0<1>UW g89.0<16,8,1>UB g89.1<16,8,1>UB {align1};
-avg.sat (16) g82.0<1>UW g91.0<16,8,1>UB g91.1<16,8,1>UB {align1};
-avg.sat (16) g83.0<1>UW g92.0<16,8,1>UB g92.1<16,8,1>UB {align1};
-avg.sat (16) g84.0<1>UW g93.0<16,8,1>UB g93.1<16,8,1>UB {align1};
-avg.sat (16) g85.0<1>UW g94.0<16,8,1>UB g94.1<16,8,1>UB {align1};
+avg (8) g36.0<1>UW g44.0<8,8,1>UB g44.1<8,8,1>UB {align1};
+avg (8) g37.0<1>UW g45.0<8,8,1>UB g45.1<8,8,1>UB {align1};
+avg (8) g38.0<1>UW g46.0<8,8,1>UB g46.1<8,8,1>UB {align1};
+avg (8) g39.0<1>UW g47.0<8,8,1>UB g47.1<8,8,1>UB {align1};
diff --git a/src/xvmc/shader/mc/read_field_x1y0_y_igd.g4i b/src/xvmc/shader/mc/read_field_x1y0_y_igd.g4i
index 14394ca..f76a267 100644
--- a/src/xvmc/shader/mc/read_field_x1y0_y_igd.g4i
+++ b/src/xvmc/shader/mc/read_field_x1y0_y_igd.g4i
@@ -1,48 +1,35 @@
-/*
- * Copyright © 2008 Intel Corporation
- *
- * Permission is hereby granted, free of charge, to any person obtaining a
- * copy of this software and associated documentation files (the "Software"),
- * to deal in the Software without restriction, including without limitation
- * the rights to use, copy, modify, merge, publish, distribute, sublicense,
- * and/or sell copies of the Software, and to permit persons to whom the
- * Software is furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice (including the next
- * paragraph) shall be included in all copies or substantial portions of the
- * Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
- * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
- * SOFTWARE.
- *
- * Author:
- *    Zou Nan hai <nanhai.zou at intel.com>
- *    Zhang Hua jun <huajun.zhang at intel.com>
- *    Xing Dong sheng <dongsheng.xing at intel.com>
- *
- */
-mov (1) g115.8<1>UD 0x01FUD {align1};
-send (16) 0 g78.0<1>UW g115<8,8,1>UW read(surface,2,0,2) mlen 1 rlen 1 {align1};
-add (1) g115.4<1>UD g115.4<1,1,1>UD 2UD {align1};
-send (16) 0 g80.0<1>UW g115<8,8,1>UW read(surface,2,0,2) mlen 1 rlen 1 {align1};
-add (1) g115.4<1>UD g115.4<1,1,1>UD 2UD {align1};
-send (16) 0 g82.0<1>UW g115<8,8,1>UW read(surface,2,0,2) mlen 1 rlen 1 {align1};
-add (1) g115.4<1>UD g115.4<1,1,1>UD 2UD {align1};
-send (16) 0 g84.0<1>UW g115<8,8,1>UW read(surface,2,0,2) mlen 1 rlen 1 {align1};
-add (1) g115.4<1>UD g115.4<1,1,1>UD 2UD {align1};
+/* GRF allocation:
+   g1~g30: constant buffer
+           g1~g2:intra IQ matrix
+           g3~g4:non intra IQ matrix
+           g5~g20:IDCT table
+   g31:    thread payload 
+   g58~g81:reference data
+   g82:    thread payload backup
+   g83~g106:IDCT data
+   g115:   message descriptor for reading reference data   
+*/
+
 mov (1) g115.8<1>UD 0x07001FUD {align1};
-send (16) 0 g86.0<1>UW g115<8,8,1>UW read(surface,2,0,2) mlen 1 rlen 8 {align1};
+and.nz (1) null g115.16<1,1,1>UW 1UW {align1};
+(f0) jmpi read_backward;
+
+send (16) 0 g40.0<1>UW g115<8,8,1>UW read(4,2,0,2) mlen 1 rlen 8 {align1};
+add (1) g115.4<1>UD g115.4<1,1,1>UD 8UD {align1};
+send (16) 0 g48.0<1>UW g115<8,8,1>UW read(4,2,0,2) mlen 1 rlen 8 {align1};
+jmpi put_data;
+
+read_backward:
+send (16) 0 g40.0<1>UW g115<8,8,1>UW read(7,2,0,2) mlen 1 rlen 8 {align1};
+add (1) g115.4<1>UD g115.4<1,1,1>UD 8UD {align1};
+send (16) 0 g48.0<1>UW g115<8,8,1>UW read(7,2,0,2) mlen 1 rlen 8 {align1};
 
-avg.sat (16) g96.0<1>UW g78.0<16,16,1>UB g78.1<16,16,1>UB {align1};
-avg.sat (16) g97.0<1>UW g80.0<16,16,1>UB g80.1<16,16,1>UB {align1};
-avg.sat (16) g98.0<1>UW g82.0<16,16,1>UB g82.1<16,16,1>UB {align1};
-avg.sat (16) g99.0<1>UW g84.0<16,16,1>UB g84.1<16,16,1>UB {align1};
-avg.sat (16) g100.0<1>UW g86.0<16,16,1>UB g86.1<16,16,1>UB {align1};
-avg.sat (16) g101.0<1>UW g88.0<16,16,1>UB g88.1<16,16,1>UB {align1};
-avg.sat (16) g102.0<1>UW g90.0<16,16,1>UB g90.1<16,16,1>UB {align1};
-avg.sat (16) g103.0<1>UW g92.0<16,16,1>UB g92.1<16,16,1>UB {align1};
+put_data:
+avg (16) g32.0<1>UW g40.0<16,16,1>UB g40.1<16,16,1>UB {align1};
+avg (16) g33.0<1>UW g42.0<16,16,1>UB g42.1<16,16,1>UB {align1};
+avg (16) g34.0<1>UW g44.0<16,16,1>UB g44.1<16,16,1>UB {align1};
+avg (16) g35.0<1>UW g46.0<16,16,1>UB g46.1<16,16,1>UB {align1};
+avg (16) g36.0<1>UW g48.0<16,16,1>UB g48.1<16,16,1>UB {align1};
+avg (16) g37.0<1>UW g50.0<16,16,1>UB g50.1<16,16,1>UB {align1};
+avg (16) g38.0<1>UW g52.0<16,16,1>UB g52.1<16,16,1>UB {align1};
+avg (16) g39.0<1>UW g54.0<16,16,1>UB g54.1<16,16,1>UB {align1};
diff --git a/src/xvmc/shader/mc/read_field_x1y1_uv_igd.g4i b/src/xvmc/shader/mc/read_field_x1y1_uv_igd.g4i
index 10f48c8..e261225 100644
--- a/src/xvmc/shader/mc/read_field_x1y1_uv_igd.g4i
+++ b/src/xvmc/shader/mc/read_field_x1y1_uv_igd.g4i
@@ -1,75 +1,66 @@
-/*
- * Copyright © 2008 Intel Corporation
- *
- * Permission is hereby granted, free of charge, to any person obtaining a
- * copy of this software and associated documentation files (the "Software"),
- * to deal in the Software without restriction, including without limitation
- * the rights to use, copy, modify, merge, publish, distribute, sublicense,
- * and/or sell copies of the Software, and to permit persons to whom the
- * Software is furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice (including the next
- * paragraph) shall be included in all copies or substantial portions of the
- * Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
- * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
- * SOFTWARE.
- *
- * Author:
- *    Zou Nan hai <nanhai.zou at intel.com>
- *    Zhang Hua jun <huajun.zhang at intel.com>
- *    Xing Dong sheng <dongsheng.xing at intel.com>
- *
- */
+/* GRF allocation:
+   g1~g30: constant buffer
+           g1~g2:intra IQ matrix
+           g3~g4:non intra IQ matrix
+           g5~g20:IDCT table
+   g31:    thread payload 
+   g58~g81:reference data
+   g82:    thread payload backup
+   g83~g106:IDCT data
+   g115:   message descriptor for reading reference data   */
 mov (1) g115.8<1>UD 0x07000FUD {align1};
-send (16) 0 g86.0<1>UW g115<16,8,1>UW read(surface_u, 2, 0, 2) mlen 1 rlen 4 {align1};//U
-send (16) 0 g91.0<1>UW g115<16,8,1>UW read(surface_v, 2, 0, 2) mlen 1 rlen 4 {align1};//V
-mov (1) g115.8<1>UD 0x01000FUD {align1};
+and.nz (1) null g115.16<1,1,1>UW 1UW {align1};
+(f0) jmpi read_backward;
+
+send (16) 0 g40.0<1>UW g115<8,8,1>UW read(5, 2, 0, 2) mlen 1 rlen 4 {align1};//U
+send (16) 0 g45.0<1>UW g115<8,8,1>UW read(6, 2, 0, 2) mlen 1 rlen 4 {align1};//V
+mov (1) g115.8<1>UD 0xFUD {align1};
+add (1) g115.4<1>UD g115.4<1,1,1>UD 8UD {align1};
+send (16) 0 g44.0<1>UW g115<8,8,1>UW read(5, 2, 0, 2) mlen 1 rlen 1 {align1};//U
+send (16) 0 g49.0<1>UW g115<8,8,1>UW read(6, 2, 0, 2) mlen 1 rlen 1 {align1};//V
+jmpi put_data;
+
+read_backward:
+send (16) 0 g40.0<1>UW g115<8,8,1>UW read(8, 2, 0, 2) mlen 1 rlen 4 {align1};//U
+send (16) 0 g45.0<1>UW g115<8,8,1>UW read(9, 2, 0, 2) mlen 1 rlen 4 {align1};//V
+mov (1) g115.8<1>UD 0xFUD {align1};
 add (1) g115.4<1>UD g115.4<1,1,1>UD 8UD {align1};
-send (16) 0 g90.0<1>UW g115<16,8,1>UW read(surface_u, 2, 0, 2) mlen 1 rlen 1 {align1};
-send (16) 0 g95.0<1>UW g115<16,8,1>UW read(surface_v, 2, 0, 2) mlen 1 rlen 1 {align1};
+send (16) 0 g44.0<1>UW g115<8,8,1>UW read(8, 2, 0, 2) mlen 1 rlen 1 {align1};//U
+send (16) 0 g49.0<1>UW g115<8,8,1>UW read(9, 2, 0, 2) mlen 1 rlen 1 {align1};//V
+
+put_data:
 //U
-add (16) g78.0<1>UW g86.0<16,8,1>UB g87.0<16,8,1>UB {align1};
-add (16) g79.0<1>UW g87.0<16,8,1>UB g88.0<16,8,1>UB {align1};
-add (16) g80.0<1>UW g88.0<16,8,1>UB g89.0<16,8,1>UB {align1};
-add (16) g81.0<1>UW g89.0<16,8,1>UB g90.0<16,8,1>UB {align1};
+add (8) g32.0<1>UW g40.0<8,8,1>UB g41.0<8,8,1>UB {align1};
+add (8) g33.0<1>UW g41.0<8,8,1>UB g42.0<8,8,1>UB {align1};
+add (8) g34.0<1>UW g42.0<8,8,1>UB g43.0<8,8,1>UB {align1};
+add (8) g35.0<1>UW g43.0<8,8,1>UB g44.0<8,8,1>UB {align1};
 
-add (16) g78.0<1>UW g78.0<16,8,1>UW g86.1<16,8,1>UB {align1};
-add (16) g79.0<1>UW g79.0<16,8,1>UW g87.1<16,8,1>UB {align1};
-add (16) g80.0<1>UW g80.0<16,8,1>UW g88.1<16,8,1>UB {align1};
-add (16) g81.0<1>UW g81.0<16,8,1>UW g89.1<16,8,1>UB {align1};
+add (8) g32.0<1>UW g32.0<8,8,1>UW g40.1<8,8,1>UB {align1};
+add (8) g33.0<1>UW g33.0<8,8,1>UW g41.1<8,8,1>UB {align1};
+add (8) g34.0<1>UW g34.0<8,8,1>UW g42.1<8,8,1>UB {align1};
+add (8) g35.0<1>UW g35.0<8,8,1>UW g43.1<8,8,1>UB {align1};
 
-add (16) g78.0<1>UW g78.0<16,8,1>UW g87.1<16,8,1>UB {align1};
-add (16) g79.0<1>UW g79.0<16,8,1>UW g88.1<16,8,1>UB {align1};
-add (16) g80.0<1>UW g80.0<16,8,1>UW g89.1<16,8,1>UB {align1};
-add (16) g81.0<1>UW g81.0<16,8,1>UW g90.1<16,8,1>UB {align1};
+add (8) g32.0<1>UW g32.0<8,8,1>UW g41.1<8,8,1>UB {align1};
+add (8) g33.0<1>UW g33.0<8,8,1>UW g42.1<8,8,1>UB {align1};
+add (8) g34.0<1>UW g34.0<8,8,1>UW g43.1<8,8,1>UB {align1};
+add (8) g35.0<1>UW g35.0<8,8,1>UW g44.1<8,8,1>UB {align1};
 //V
-add (16) g82.0<1>UW g91.0<16,8,1>UB g92.0<16,8,1>UB {align1};
-add (16) g83.0<1>UW g92.0<16,8,1>UB g93.0<16,8,1>UB {align1};
-add (16) g84.0<1>UW g93.0<16,8,1>UB g94.0<16,8,1>UB {align1};
-add (16) g85.0<1>UW g94.0<16,8,1>UB g95.0<16,8,1>UB {align1};
-
-add (16) g82.0<1>UW g82.0<16,8,1>UW g91.1<16,8,1>UB {align1};
-add (16) g83.0<1>UW g83.0<16,8,1>UW g92.1<16,8,1>UB {align1};
-add (16) g84.0<1>UW g84.0<16,8,1>UW g93.1<16,8,1>UB {align1};
-add (16) g85.0<1>UW g85.0<16,8,1>UW g94.1<16,8,1>UB {align1};
+add (8) g36.0<1>UW g45.0<8,8,1>UB g46.0<8,8,1>UB {align1};
+add (8) g37.0<1>UW g46.0<8,8,1>UB g47.0<8,8,1>UB {align1};
+add (8) g38.0<1>UW g47.0<8,8,1>UB g48.0<8,8,1>UB {align1};
+add (8) g39.0<1>UW g48.0<8,8,1>UB g49.0<8,8,1>UB {align1};
 
-add (16) g82.0<1>UW g82.0<16,8,1>UW g92.1<16,8,1>UB {align1};
-add (16) g83.0<1>UW g83.0<16,8,1>UW g93.1<16,8,1>UB {align1};
-add (16) g84.0<1>UW g84.0<16,8,1>UW g94.1<16,8,1>UB {align1};
-add (16) g85.0<1>UW g85.0<16,8,1>UW g95.1<16,8,1>UB {align1};
+add (8) g36.0<1>UW g36.0<8,8,1>UW g45.1<8,8,1>UB {align1};
+add (8) g37.0<1>UW g37.0<8,8,1>UW g46.1<8,8,1>UB {align1};
+add (8) g38.0<1>UW g38.0<8,8,1>UW g47.1<8,8,1>UB {align1};
+add (8) g39.0<1>UW g39.0<8,8,1>UW g48.1<8,8,1>UB {align1};
 
-shr.sat (16) g78.0<1>UW g78.0<16,16,1>UW 2UW {align1};
-shr.sat (16) g79.0<1>UW g79.0<16,16,1>UW 2UW {align1};
-shr.sat (16) g80.0<1>UW g80.0<16,16,1>UW 2UW {align1};
-shr.sat (16) g81.0<1>UW g81.0<16,16,1>UW 2UW {align1};
-shr.sat (16) g82.0<1>UW g82.0<16,16,1>UW 2UW {align1};
-shr.sat (16) g83.0<1>UW g83.0<16,16,1>UW 2UW {align1};
-shr.sat (16) g84.0<1>UW g84.0<16,16,1>UW 2UW {align1};
-shr.sat (16) g85.0<1>UW g85.0<16,16,1>UW 2UW {align1};
+add (8) g36.0<1>UW g36.0<8,8,1>UW g46.1<8,8,1>UB {align1};
+add (8) g37.0<1>UW g37.0<8,8,1>UW g47.1<8,8,1>UB {align1};
+add (8) g38.0<1>UW g38.0<8,8,1>UW g48.1<8,8,1>UB {align1};
+add (8) g39.0<1>UW g39.0<8,8,1>UW g49.1<8,8,1>UB {align1};
 
+shr (32) g32.0<1>UW g32.0<16,16,1>UW 2UW {align1 compr};
+shr (32) g34.0<1>UW g34.0<16,16,1>UW 2UW {align1 compr};
+shr (32) g36.0<1>UW g36.0<16,16,1>UW 2UW {align1 compr};
+shr (32) g38.0<1>UW g38.0<16,16,1>UW 2UW {align1 compr};
diff --git a/src/xvmc/shader/mc/read_field_x1y1_y_igd.g4i b/src/xvmc/shader/mc/read_field_x1y1_y_igd.g4i
index 39526c8..db635fe 100644
--- a/src/xvmc/shader/mc/read_field_x1y1_y_igd.g4i
+++ b/src/xvmc/shader/mc/read_field_x1y1_y_igd.g4i
@@ -1,78 +1,64 @@
-/*
- * Copyright © 2008 Intel Corporation
- *
- * Permission is hereby granted, free of charge, to any person obtaining a
- * copy of this software and associated documentation files (the "Software"),
- * to deal in the Software without restriction, including without limitation
- * the rights to use, copy, modify, merge, publish, distribute, sublicense,
- * and/or sell copies of the Software, and to permit persons to whom the
- * Software is furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice (including the next
- * paragraph) shall be included in all copies or substantial portions of the
- * Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
- * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
- * SOFTWARE.
- *
- * Author:
- *    Zou Nan hai <nanhai.zou at intel.com>
- *    Zhang Hua jun <huajun.zhang at intel.com>
- *    Xing Dong sheng <dongsheng.xing at intel.com>
- *
- */
-mov (1) g115.8<1>UD 0x01FUD {align1};
-send (16) 0 g78.0<1>UW g115<8,8,1>UW read(surface,2,0,2) mlen 1 rlen 1 {align1};
-add (1) g115.4<1>UD g115.4<1,1,1>UD 2UD {align1};
-send (16) 0 g80.0<1>UW g115<8,8,1>UW read(surface,2,0,2) mlen 1 rlen 1 {align1};
-add (1) g115.4<1>UD g115.4<1,1,1>UD 2UD {align1};
-send (16) 0 g82.0<1>UW g115<8,8,1>UW read(surface,2,0,2) mlen 1 rlen 1 {align1};
-add (1) g115.4<1>UD g115.4<1,1,1>UD 2UD {align1};
-send (16) 0 g84.0<1>UW g115<8,8,1>UW read(surface,2,0,2) mlen 1 rlen 1 {align1};
-add (1) g115.4<1>UD g115.4<1,1,1>UD 2UD {align1};
+/* GRF allocation:
+   g1~g30: constant buffer
+           g1~g2:intra IQ matrix
+           g3~g4:non intra IQ matrix
+           g5~g20:IDCT table
+   g31:    thread payload 
+   g58~g81:reference data
+   g82:    thread payload backup
+   g83~g106:IDCT data
+   g115:   message descriptor for reading reference data   
+*/
+
 mov (1) g115.8<1>UD 0x07001FUD {align1};
-send (16) 0 g86.0<1>UW g115<8,8,1>UW read(surface,2,0,2) mlen 1 rlen 8 {align1};
+and.nz (1) null g115.16<1,1,1>UW 1UW {align1};
+(f0) jmpi read_backward;
+
+send (16) 0 g40.0<1>UW g115<8,8,1>UW read(4,2,0,2) mlen 1 rlen 8 {align1};
+add (1) g115.4<1>UD g115.4<1,1,1>UD 8UD {align1};
+send (16) 0 g48.0<1>UW g115<8,8,1>UW read(4,2,0,2) mlen 1 rlen 8 {align1};
+add (1) g115.4<1>UD g115.4<1,1,1>UD 8UD {align1};
+mov (1) g115.8<1>UD 0x1FUD {align1};
+send (16) 0 g56.0<1>UW g115<8,8,1>UW read(4,2,0,2) mlen 1 rlen 1 {align1};
+jmpi put_data;
+
+read_backward:
+send (16) 0 g40.0<1>UW g115<8,8,1>UW read(7,2,0,2) mlen 1 rlen 8 {align1};
+add (1) g115.4<1>UD g115.4<1,1,1>UD 8UD {align1};
+send (16) 0 g48.0<1>UW g115<8,8,1>UW read(7,2,0,2) mlen 1 rlen 8 {align1};
 add (1) g115.4<1>UD g115.4<1,1,1>UD 8UD {align1};
 mov (1) g115.8<1>UD 0x1FUD {align1};
-send (16) 0 g94.0<1>UW g115<8,8,1>UW read(surface,2,0,2) mlen 1 rlen 1 {align1};
+send (16) 0 g56.0<1>UW g115<8,8,1>UW read(7,2,0,2) mlen 1 rlen 1 {align1};
 
-add (16) g96.0<1>UW g78.0<16,16,1>UB g80.0<16,16,1>UB {align1};
-add (16) g97.0<1>UW g80.0<16,16,1>UB g82.0<16,16,1>UB {align1};
-add (16) g98.0<1>UW g82.0<16,16,1>UB g84.0<16,16,1>UB {align1};
-add (16) g99.0<1>UW g84.0<16,16,1>UB g86.0<16,16,1>UB {align1};
-add (16) g100.0<1>UW g86.0<16,16,1>UB g88.0<16,16,1>UB {align1};
-add (16) g101.0<1>UW g88.0<16,16,1>UB g90.0<16,16,1>UB {align1};
-add (16) g102.0<1>UW g90.0<16,16,1>UB g92.0<16,16,1>UB {align1};
-add (16) g103.0<1>UW g92.0<16,16,1>UB g94.0<16,16,1>UB {align1};
+put_data:
+add (16) g32.0<1>UW g40.0<16,16,1>UB g42.0<16,16,1>UB {align1};
+add (16) g33.0<1>UW g42.0<16,16,1>UB g44.0<16,16,1>UB {align1};
+add (16) g34.0<1>UW g44.0<16,16,1>UB g46.0<16,16,1>UB {align1};
+add (16) g35.0<1>UW g46.0<16,16,1>UB g48.0<16,16,1>UB {align1};
+add (16) g36.0<1>UW g48.0<16,16,1>UB g50.0<16,16,1>UB {align1};
+add (16) g37.0<1>UW g50.0<16,16,1>UB g52.0<16,16,1>UB {align1};
+add (16) g38.0<1>UW g52.0<16,16,1>UB g54.0<16,16,1>UB {align1};
+add (16) g39.0<1>UW g54.0<16,16,1>UB g56.0<16,16,1>UB {align1};
 
-add (16) g96.0<1>UW g96.0<16,16,1>UW g78.1<16,16,1>UB {align1};
-add (16) g97.0<1>UW g97.0<16,16,1>UW g80.1<16,16,1>UB {align1};
-add (16) g98.0<1>UW g98.0<16,16,1>UW g82.1<16,16,1>UB {align1};
-add (16) g99.0<1>UW g99.0<16,16,1>UW g84.1<16,16,1>UB {align1};
-add (16) g100.0<1>UW g100.0<16,16,1>UW g86.1<16,16,1>UB {align1};
-add (16) g101.0<1>UW g101.0<16,16,1>UW g88.1<16,16,1>UB {align1};
-add (16) g102.0<1>UW g102.0<16,16,1>UW g90.1<16,16,1>UB {align1};
-add (16) g103.0<1>UW g103.0<16,16,1>UW g92.1<16,16,1>UB {align1};
+add (16) g32.0<1>UW g32.0<16,16,1>UW g40.1<16,16,1>UB {align1};
+add (16) g33.0<1>UW g33.0<16,16,1>UW g42.1<16,16,1>UB {align1};
+add (16) g34.0<1>UW g34.0<16,16,1>UW g44.1<16,16,1>UB {align1};
+add (16) g35.0<1>UW g35.0<16,16,1>UW g46.1<16,16,1>UB {align1};
+add (16) g36.0<1>UW g36.0<16,16,1>UW g48.1<16,16,1>UB {align1};
+add (16) g37.0<1>UW g37.0<16,16,1>UW g50.1<16,16,1>UB {align1};
+add (16) g38.0<1>UW g38.0<16,16,1>UW g52.1<16,16,1>UB {align1};
+add (16) g39.0<1>UW g39.0<16,16,1>UW g54.1<16,16,1>UB {align1};
 
-add (16) g96.0<1>UW g96.0<16,16,1>UW g80.1<16,16,1>UB {align1};
-add (16) g97.0<1>UW g97.0<16,16,1>UW g82.1<16,16,1>UB {align1};
-add (16) g98.0<1>UW g98.0<16,16,1>UW g84.1<16,16,1>UB {align1};
-add (16) g99.0<1>UW g99.0<16,16,1>UW g86.1<16,16,1>UB {align1};
-add (16) g100.0<1>UW g100.0<16,16,1>UW g88.1<16,16,1>UB {align1};
-add (16) g101.0<1>UW g101.0<16,16,1>UW g90.1<16,16,1>UB {align1};
-add (16) g102.0<1>UW g102.0<16,16,1>UW g92.1<16,16,1>UB {align1};
-add (16) g103.0<1>UW g103.0<16,16,1>UW g94.1<16,16,1>UB {align1};
+add (16) g32.0<1>UW g32.0<16,16,1>UW g42.1<16,16,1>UB {align1};
+add (16) g33.0<1>UW g33.0<16,16,1>UW g44.1<16,16,1>UB {align1};
+add (16) g34.0<1>UW g34.0<16,16,1>UW g46.1<16,16,1>UB {align1};
+add (16) g35.0<1>UW g35.0<16,16,1>UW g48.1<16,16,1>UB {align1};
+add (16) g36.0<1>UW g36.0<16,16,1>UW g50.1<16,16,1>UB {align1};
+add (16) g37.0<1>UW g37.0<16,16,1>UW g52.1<16,16,1>UB {align1};
+add (16) g38.0<1>UW g38.0<16,16,1>UW g54.1<16,16,1>UB {align1};
+add (16) g39.0<1>UW g39.0<16,16,1>UW g56.1<16,16,1>UB {align1};
 
-shr (16) g96.0<1>UW g96.0<16,16,1>UW 2UW {align1};
-shr (16) g97.0<1>UW g97.0<16,16,1>UW 2UW {align1};
-shr (16) g98.0<1>UW g98.0<16,16,1>UW 2UW {align1};
-shr (16) g99.0<1>UW g99.0<16,16,1>UW 2UW {align1};
-shr (16) g100.0<1>UW g100.0<16,16,1>UW 2UW {align1};
-shr (16) g101.0<1>UW g101.0<16,16,1>UW 2UW {align1};
-shr (16) g102.0<1>UW g102.0<16,16,1>UW 2UW {align1};
-shr (16) g103.0<1>UW g103.0<16,16,1>UW 2UW {align1};
+shr (32) g32.0<1>UW g32.0<16,16,1>UW 2UW {align1 compr};
+shr (32) g34.0<1>UW g34.0<16,16,1>UW 2UW {align1 compr};
+shr (32) g36.0<1>UW g36.0<16,16,1>UW 2UW {align1 compr};
+shr (32) g38.0<1>UW g38.0<16,16,1>UW 2UW {align1 compr};
diff --git a/src/xvmc/shader/mc/read_frame_x0y0_uv_igd.g4i b/src/xvmc/shader/mc/read_frame_x0y0_uv_igd.g4i
index d522d0e..edff59b 100644
--- a/src/xvmc/shader/mc/read_frame_x0y0_uv_igd.g4i
+++ b/src/xvmc/shader/mc/read_frame_x0y0_uv_igd.g4i
@@ -1,39 +1,28 @@
-/*
- * Copyright © 2008 Intel Corporation
- *
- * Permission is hereby granted, free of charge, to any person obtaining a
- * copy of this software and associated documentation files (the "Software"),
- * to deal in the Software without restriction, including without limitation
- * the rights to use, copy, modify, merge, publish, distribute, sublicense,
- * and/or sell copies of the Software, and to permit persons to whom the
- * Software is furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice (including the next
- * paragraph) shall be included in all copies or substantial portions of the
- * Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
- * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
- * SOFTWARE.
- *
- * Author:
- *    Zou Nan hai <nanhai.zou at intel.com>
- *    Zhang Hua jun <huajun.zhang at intel.com>
- *    Xing Dong sheng <dongsheng.xing at intel.com>
- *
- */
-send (16) 0 g86.0<1>UW g2<8,8,1>UW read(input_surface1, 2, 0, 2) mlen 1 rlen 4 {align1};
-send (16) 0 g90.0<1>UW g2<8,8,1>UW read(input_surface2, 2, 0, 2) mlen 1 rlen 4 {align1};
+/* GRF allocation:
+   g1~g30: constant buffer
+           g1~g2:intra IQ matrix
+           g3~g4:non intra IQ matrix
+           g5~g20:IDCT table
+   g31:    thread payload 
+   g32:    message descriptor for reading reference data
+   g58~g81:reference data
+   g82:    thread payload backup
+   g83~g106:IDCT data                          
+*/
+mov (1) g32.8<1>UD 0x007000fUD  {align1};
+and.nz (1) null g32.16<1,1,1>UW 1UW {align1};
+(f0) jmpi read_backward;
 
-mov (16) g44.0<1>UW g86.0<16,8,1>UB {align1};
-mov (16) g45.0<1>UW g87.0<16,8,1>UB {align1};
-mov (16) g46.0<1>UW g88.0<16,8,1>UB {align1};
-mov (16) g47.0<1>UW g89.0<16,8,1>UB {align1};
-mov (16) g48.0<1>UW g90.0<16,8,1>UB {align1};
-mov (16) g49.0<1>UW g91.0<16,8,1>UB {align1};
-mov (16) g50.0<1>UW g92.0<16,8,1>UB {align1};
-mov (16) g51.0<1>UW g93.0<16,8,1>UB {align1};
+send (16) 0 g34.0<1>UW g32<8,8,1>UW read(5, 2, 0, 2) mlen 1 rlen 4 {align1};
+send (16) 0 g44.0<1>UW g32<8,8,1>UW read(6, 2, 0, 2) mlen 1 rlen 4 {align1};
+jmpi put_data;
+
+read_backward:
+send (16) 0 g34.0<1>UW g32<8,8,1>UW read(8, 2, 0, 2) mlen 1 rlen 4 {align1};
+send (16) 0 g44.0<1>UW g32<8,8,1>UW read(9, 2, 0, 2) mlen 1 rlen 4 {align1};
+
+put_data:
+mov (32) g74.0<1>UW g34.0<16,8,1>UB {align1 compr};
+mov (32) g76.0<1>UW g36.0<16,8,1>UB {align1 compr};
+mov (32) g78.0<1>UW g44.0<16,8,1>UB {align1 compr};
+mov (32) g80.0<1>UW g46.0<16,8,1>UB {align1 compr};
diff --git a/src/xvmc/shader/mc/read_frame_x0y0_y_igd.g4i b/src/xvmc/shader/mc/read_frame_x0y0_y_igd.g4i
index 6191abf..ba3dc72 100644
--- a/src/xvmc/shader/mc/read_frame_x0y0_y_igd.g4i
+++ b/src/xvmc/shader/mc/read_frame_x0y0_y_igd.g4i
@@ -1,50 +1,35 @@
-/*
- * Copyright © 2008 Intel Corporation
- *
- * Permission is hereby granted, free of charge, to any person obtaining a
- * copy of this software and associated documentation files (the "Software"),
- * to deal in the Software without restriction, including without limitation
- * the rights to use, copy, modify, merge, publish, distribute, sublicense,
- * and/or sell copies of the Software, and to permit persons to whom the
- * Software is furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice (including the next
- * paragraph) shall be included in all copies or substantial portions of the
- * Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
- * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
- * SOFTWARE.
- *
- * Author:
- *    Zou Nan hai <nanhai.zou at intel.com>
- *    Zhang Hua jun <huajun.zhang at intel.com>
- *    Xing Dong sheng <dongsheng.xing at intel.com>
- *
- */
-mov (1) g2.8<1>UD 0x007001FUD {align1};
-send (16) 0 g98.0<1>UW g2<8,8,1>UW read(input_surface, 2, 0, 2) mlen 1 rlen 8 {align1};
-add (1) g2.4<1>UD g2.4<1,1,1>UD 8UD {align1};
-send (16) 0 g106.0<1>UW g2<8,8,1>UW read(input_surface, 2, 0, 2) mlen 1 rlen 8 {align1};
+/* GRF allocation:
+   g1~g30: constant buffer
+           g1~g2:intra IQ matrix
+           g3~g4:non intra IQ matrix
+           g5~g20:IDCT table
+   g31:    thread payload 
+   g32:    message descriptor for reading reference data
+   g58~g81:reference data
+   g82:    thread payload backup
+   g83~g106:IDCT data                           
+*/
+mov (1) g32.8<1>UD 0x007001FUD {align1};
+and.nz (1) null g32.16<1,1,1>UW 1UW {align1};
+(f0) jmpi read_backward;
 
+send (16) 0 g38.0<1>UW g32<8,8,1>UW read(4, 2, 0, 2) mlen 1 rlen 8 {align1};
+add (1) g32.4<1>UD g32.4<1,1,1>UD 8UD {align1};
+send (16) 0 g46.0<1>UW g32<8,8,1>UW read(4, 2, 0, 2) mlen 1 rlen 8 {align1};
+jmpi put_data;
+
+read_backward:
+send (16) 0 g38.0<1>UW g32<8,8,1>UW read(7, 2, 0, 2) mlen 1 rlen 8 {align1};
+add (1) g32.4<1>UD g32.4<1,1,1>UD 8UD {align1};
+send (16) 0 g46.0<1>UW g32<8,8,1>UW read(7, 2, 0, 2) mlen 1 rlen 8 {align1};
+
+put_data:
+mov (32) g58.0<1>UW g38.0<16,16,1>UB {align1 compr};
+mov (32) g60.0<1>UW g40.0<16,16,1>UB {align1 compr};
+mov (32) g62.0<1>UW g42.0<16,16,1>UB {align1 compr};
+mov (32) g64.0<1>UW g44.0<16,16,1>UB {align1 compr};
+mov (32) g66.0<1>UW g46.0<16,16,1>UB {align1 compr};
+mov (32) g68.0<1>UW g48.0<16,16,1>UB {align1 compr};
+mov (32) g70.0<1>UW g50.0<16,16,1>UB {align1 compr};
+mov (32) g72.0<1>UW g52.0<16,16,1>UB {align1 compr};
 
-mov (16) g28.0<1>UW g98.0<16,16,1>UB {align1};
-mov (16) g29.0<1>UW g99.0<16,16,1>UB {align1};
-mov (16) g30.0<1>UW g100.0<16,16,1>UB {align1};
-mov (16) g31.0<1>UW g101.0<16,16,1>UB {align1};
-mov (16) g32.0<1>UW g102.0<16,16,1>UB {align1};
-mov (16) g33.0<1>UW g103.0<16,16,1>UB {align1};
-mov (16) g34.0<1>UW g104.0<16,16,1>UB {align1};
-mov (16) g35.0<1>UW g105.0<16,16,1>UB {align1};
-mov (16) g36.0<1>UW g106.0<16,16,1>UB {align1};
-mov (16) g37.0<1>UW g107.0<16,16,1>UB {align1};
-mov (16) g38.0<1>UW g108.0<16,16,1>UB {align1};
-mov (16) g39.0<1>UW g109.0<16,16,1>UB {align1};
-mov (16) g40.0<1>UW g110.0<16,16,1>UB {align1};
-mov (16) g41.0<1>UW g111.0<16,16,1>UB {align1};
-mov (16) g42.0<1>UW g112.0<16,16,1>UB {align1};
-mov (16) g43.0<1>UW g113.0<16,16,1>UB {align1};
diff --git a/src/xvmc/shader/mc/read_frame_x0y1_y_igd.g4i b/src/xvmc/shader/mc/read_frame_x0y1_y_igd.g4i
index 106296b..65cc88b 100644
--- a/src/xvmc/shader/mc/read_frame_x0y1_y_igd.g4i
+++ b/src/xvmc/shader/mc/read_frame_x0y1_y_igd.g4i
@@ -1,54 +1,49 @@
-/*
- * Copyright © 2008 Intel Corporation
- *
- * Permission is hereby granted, free of charge, to any person obtaining a
- * copy of this software and associated documentation files (the "Software"),
- * to deal in the Software without restriction, including without limitation
- * the rights to use, copy, modify, merge, publish, distribute, sublicense,
- * and/or sell copies of the Software, and to permit persons to whom the
- * Software is furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice (including the next
- * paragraph) shall be included in all copies or substantial portions of the
- * Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
- * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
- * SOFTWARE.
- *
- * Author:
- *    Zou Nan hai <nanhai.zou at intel.com>
- *    Zhang Hua jun <huajun.zhang at intel.com>
- *    Xing Dong sheng <dongsheng.xing at intel.com>
- *
- */
-mov (1) g2.8<1>UD 0x007001FUD {align1};
-send (16) 0 g98.0<1>UW g2<8,8,1>UW read(input_surface, 2, 0, 2) mlen 1 rlen 8 {align1};
+/* GRF allocation:
+   g1~g30: constant buffer
+           g1~g2:intra IQ matrix
+           g3~g4:non intra IQ matrix
+           g5~g20:IDCT table
+   g31:    thread payload 
+   g32:    message descriptor for reading reference data
+   g58~g81:reference data
+   g82:    thread payload backup
+   g83~g106:IDCT data                           */
 
-add (1) g2.4<1>UD g2.4<1,1,1>UD 8UD {align1};
-send (16) 0 g106.0<1>UW g2<8,8,1>UW read(input_surface, 2, 0, 2) mlen 1 rlen 8 {align1};
-add (1) g2.4<1>UD g2.4<1,1,1>UD 8UD {align1};
-mov (1) g2.8<1>UD 0x1FUD {align1};
-send (16) 0 g120.0<1>UW g2<8,8,1>UW read(input_surface, 2, 0, 2) mlen 1 rlen 1 {align1};
+mov (1) g32.8<1>UD 0x007001FUD {align1};
+and.nz (1) null g32.16<1,1,1>UW 1UW {align1};
+(f0) jmpi read_backward;
 
+send (16) 0 g38.0<1>UW g32<8,8,1>UW read(4, 2, 0, 2) mlen 1 rlen 8 {align1};
+add (1) g32.4<1>UD g32.4<1,1,1>UD 8UD {align1};
+send (16) 0 g46.0<1>UW g32<8,8,1>UW read(4, 2, 0, 2) mlen 1 rlen 8 {align1};
+add (1) g32.4<1>UD g32.4<1,1,1>UD 8UD {align1};
+mov (1) g32.8<1>UD 0x1FUD {align1};
+send (16) 0 g54.0<1>UW g32<8,8,1>UW read(4, 2, 0, 2) mlen 1 rlen 1 {align1};
+jmpi put_data;
+
+read_backward:
+send (16) 0 g38.0<1>UW g32<8,8,1>UW read(7, 2, 0, 2) mlen 1 rlen 8 {align1};
+add (1) g32.4<1>UD g32.4<1,1,1>UD 8UD {align1};
+send (16) 0 g46.0<1>UW g32<8,8,1>UW read(7, 2, 0, 2) mlen 1 rlen 8 {align1};
+add (1) g32.4<1>UD g32.4<1,1,1>UD 8UD {align1};
+mov (1) g32.8<1>UD 0x1FUD {align1};
+send (16) 0 g54.0<1>UW g32<8,8,1>UW read(7, 2, 0, 2) mlen 1 rlen 1 {align1};
+
+put_data:
+avg (16) g58.0<1>UW g38.0<16,16,1>UB g39.0<16,16,1>UB {align1};
+avg (16) g59.0<1>UW g39.0<16,16,1>UB g40.0<16,16,1>UB {align1};
+avg (16) g60.0<1>UW g40.0<16,16,1>UB g41.0<16,16,1>UB {align1};
+avg (16) g61.0<1>UW g41.0<16,16,1>UB g42.0<16,16,1>UB {align1};
+avg (16) g62.0<1>UW g42.0<16,16,1>UB g43.0<16,16,1>UB {align1};
+avg (16) g63.0<1>UW g43.0<16,16,1>UB g44.0<16,16,1>UB {align1};
+avg (16) g64.0<1>UW g44.0<16,16,1>UB g45.0<16,16,1>UB {align1};
+avg (16) g65.0<1>UW g45.0<16,16,1>UB g46.0<16,16,1>UB {align1};
+avg (16) g66.0<1>UW g46.0<16,16,1>UB g47.0<16,16,1>UB {align1};
+avg (16) g67.0<1>UW g47.0<16,16,1>UB g48.0<16,16,1>UB {align1};
+avg (16) g68.0<1>UW g48.0<16,16,1>UB g49.0<16,16,1>UB {align1};
+avg (16) g69.0<1>UW g49.0<16,16,1>UB g50.0<16,16,1>UB {align1};
+avg (16) g70.0<1>UW g50.0<16,16,1>UB g51.0<16,16,1>UB {align1};
+avg (16) g71.0<1>UW g51.0<16,16,1>UB g52.0<16,16,1>UB {align1};
+avg (16) g72.0<1>UW g52.0<16,16,1>UB g53.0<16,16,1>UB {align1};
+avg (16) g73.0<1>UW g53.0<16,16,1>UB g54.0<16,16,1>UB {align1};
 
-avg.sat (16) g28.0<1>UW g98.0<16,16,1>UB g99.0<16,16,1>UB {align1};
-avg.sat (16) g29.0<1>UW g99.0<16,16,1>UB g100.0<16,16,1>UB {align1};
-avg.sat (16) g30.0<1>UW g100.0<16,16,1>UB g101.0<16,16,1>UB {align1};
-avg.sat (16) g31.0<1>UW g101.0<16,16,1>UB g102.0<16,16,1>UB {align1};
-avg.sat (16) g32.0<1>UW g102.0<16,16,1>UB g103.0<16,16,1>UB {align1};
-avg.sat (16) g33.0<1>UW g103.0<16,16,1>UB g104.0<16,16,1>UB {align1};
-avg.sat (16) g34.0<1>UW g104.0<16,16,1>UB g105.0<16,16,1>UB {align1};
-avg.sat (16) g35.0<1>UW g105.0<16,16,1>UB g106.0<16,16,1>UB {align1};
-avg.sat (16) g36.0<1>UW g106.0<16,16,1>UB g107.0<16,16,1>UB {align1};
-avg.sat (16) g37.0<1>UW g107.0<16,16,1>UB g108.0<16,16,1>UB {align1};
-avg.sat (16) g38.0<1>UW g108.0<16,16,1>UB g109.0<16,16,1>UB {align1};
-avg.sat (16) g39.0<1>UW g109.0<16,16,1>UB g110.0<16,16,1>UB {align1};
-avg.sat (16) g40.0<1>UW g110.0<16,16,1>UB g111.0<16,16,1>UB {align1};
-avg.sat (16) g41.0<1>UW g111.0<16,16,1>UB g112.0<16,16,1>UB {align1};
-avg.sat (16) g42.0<1>UW g112.0<16,16,1>UB g113.0<16,16,1>UB {align1};
-avg.sat (16) g43.0<1>UW g113.0<16,16,1>UB g120.0<16,16,1>UB {align1};
diff --git a/src/xvmc/shader/mc/read_frame_x1y0_y_igd.g4i b/src/xvmc/shader/mc/read_frame_x1y0_y_igd.g4i
index 03ee54b..64bd8e8 100644
--- a/src/xvmc/shader/mc/read_frame_x1y0_y_igd.g4i
+++ b/src/xvmc/shader/mc/read_frame_x1y0_y_igd.g4i
@@ -1,51 +1,43 @@
-/*
- * Copyright © 2008 Intel Corporation
- *
- * Permission is hereby granted, free of charge, to any person obtaining a
- * copy of this software and associated documentation files (the "Software"),
- * to deal in the Software without restriction, including without limitation
- * the rights to use, copy, modify, merge, publish, distribute, sublicense,
- * and/or sell copies of the Software, and to permit persons to whom the
- * Software is furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice (including the next
- * paragraph) shall be included in all copies or substantial portions of the
- * Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
- * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
- * SOFTWARE.
- *
- * Author:
- *    Zou Nan hai <nanhai.zou at intel.com>
- *    Zhang Hua jun <huajun.zhang at intel.com>
- *    Xing Dong sheng <dongsheng.xing at intel.com>
- *
- */
-mov (1) g2.8<1>UD 0x007001FUD {align1};
-send (16) 0 g98.0<1>UW g2<8,8,1>UW read(input_surface, 2, 0, 2) mlen 1 rlen 8 {align1};
+/* GRF allocation:
+   g1~g30: constant buffer
+           g1~g2:intra IQ matrix
+           g3~g4:non intra IQ matrix
+           g5~g20:IDCT table
+   g31:    thread payload 
+   g32:    message descriptor for reading reference data
+   g58~g81:reference data
+   g82:    thread payload backup
+   g83~g106:IDCT data                           
+*/
 
-add (1) g2.4<1>UD g2.4<1,1,1>UD 8UD {align1};
-send (16) 0 g106.0<1>UW g2<8,8,1>UW read(input_surface, 2, 0, 2) mlen 1 rlen 8 {align1};
+mov (1) g32.8<1>UD 0x007001FUD {align1};
+and.nz (1) null g32.16<1,1,1>UW 1UW {align1};
+(f0) jmpi read_backward;
 
+send (16) 0 g38.0<1>UW g32<8,8,1>UW read(4, 2, 0, 2) mlen 1 rlen 8 {align1};
+add (1) g32.4<1>UD g32.4<1,1,1>UD 8UD {align1};
+send (16) 0 g46.0<1>UW g32<8,8,1>UW read(4, 2, 0, 2) mlen 1 rlen 8 {align1};
+jmpi put_data;
 
-avg.sat (16) g28.0<1>UW g98.0<16,16,1>UB g98.1<16,16,1>UB {align1};
-avg.sat (16) g29.0<1>UW g99.0<16,16,1>UB g99.1<16,16,1>UB {align1};
-avg.sat (16) g30.0<1>UW g100.0<16,16,1>UB g100.1<16,16,1>UB {align1};
-avg.sat (16) g31.0<1>UW g101.0<16,16,1>UB g101.1<16,16,1>UB {align1};
-avg.sat (16) g32.0<1>UW g102.0<16,16,1>UB g102.1<16,16,1>UB {align1};
-avg.sat (16) g33.0<1>UW g103.0<16,16,1>UB g103.1<16,16,1>UB {align1};
-avg.sat (16) g34.0<1>UW g104.0<16,16,1>UB g104.1<16,16,1>UB {align1};
-avg.sat (16) g35.0<1>UW g105.0<16,16,1>UB g105.1<16,16,1>UB {align1};
-avg.sat (16) g36.0<1>UW g106.0<16,16,1>UB g106.1<16,16,1>UB {align1};
-avg.sat (16) g37.0<1>UW g107.0<16,16,1>UB g107.1<16,16,1>UB {align1};
-avg.sat (16) g38.0<1>UW g108.0<16,16,1>UB g108.1<16,16,1>UB {align1};
-avg.sat (16) g39.0<1>UW g109.0<16,16,1>UB g109.1<16,16,1>UB {align1};
-avg.sat (16) g40.0<1>UW g110.0<16,16,1>UB g110.1<16,16,1>UB {align1};
-avg.sat (16) g41.0<1>UW g111.0<16,16,1>UB g111.1<16,16,1>UB {align1};
-avg.sat (16) g42.0<1>UW g112.0<16,16,1>UB g112.1<16,16,1>UB {align1};
-avg.sat (16) g43.0<1>UW g113.0<16,16,1>UB g113.1<16,16,1>UB {align1};
+read_backward:
+send (16) 0 g38.0<1>UW g32<8,8,1>UW read(7, 2, 0, 2) mlen 1 rlen 8 {align1};
+add (1) g32.4<1>UD g32.4<1,1,1>UD 8UD {align1};
+send (16) 0 g46.0<1>UW g32<8,8,1>UW read(7, 2, 0, 2) mlen 1 rlen 8 {align1};
+
+put_data:
+avg (16) g58.0<1>UW g38.0<16,16,1>UB g38.1<16,16,1>UB {align1};
+avg (16) g59.0<1>UW g39.0<16,16,1>UB g39.1<16,16,1>UB {align1};
+avg (16) g60.0<1>UW g40.0<16,16,1>UB g40.1<16,16,1>UB {align1};
+avg (16) g61.0<1>UW g41.0<16,16,1>UB g41.1<16,16,1>UB {align1};
+avg (16) g62.0<1>UW g42.0<16,16,1>UB g42.1<16,16,1>UB {align1};
+avg (16) g63.0<1>UW g43.0<16,16,1>UB g43.1<16,16,1>UB {align1};
+avg (16) g64.0<1>UW g44.0<16,16,1>UB g44.1<16,16,1>UB {align1};
+avg (16) g65.0<1>UW g45.0<16,16,1>UB g45.1<16,16,1>UB {align1};
+avg (16) g66.0<1>UW g46.0<16,16,1>UB g46.1<16,16,1>UB {align1};
+avg (16) g67.0<1>UW g47.0<16,16,1>UB g47.1<16,16,1>UB {align1};
+avg (16) g68.0<1>UW g48.0<16,16,1>UB g48.1<16,16,1>UB {align1};
+avg (16) g69.0<1>UW g49.0<16,16,1>UB g49.1<16,16,1>UB {align1};
+avg (16) g70.0<1>UW g50.0<16,16,1>UB g50.1<16,16,1>UB {align1};
+avg (16) g71.0<1>UW g51.0<16,16,1>UB g51.1<16,16,1>UB {align1};
+avg (16) g72.0<1>UW g52.0<16,16,1>UB g52.1<16,16,1>UB {align1};
+avg (16) g73.0<1>UW g53.0<16,16,1>UB g53.1<16,16,1>UB {align1};
diff --git a/src/xvmc/shader/mc/read_frame_x1y1_y_igd.g4i b/src/xvmc/shader/mc/read_frame_x1y1_y_igd.g4i
index 89adc38..ce8f46a 100644
--- a/src/xvmc/shader/mc/read_frame_x1y1_y_igd.g4i
+++ b/src/xvmc/shader/mc/read_frame_x1y1_y_igd.g4i
@@ -1,105 +1,92 @@
-/*
- * Copyright © 2008 Intel Corporation
- *
- * Permission is hereby granted, free of charge, to any person obtaining a
- * copy of this software and associated documentation files (the "Software"),
- * to deal in the Software without restriction, including without limitation
- * the rights to use, copy, modify, merge, publish, distribute, sublicense,
- * and/or sell copies of the Software, and to permit persons to whom the
- * Software is furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice (including the next
- * paragraph) shall be included in all copies or substantial portions of the
- * Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
- * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
- * SOFTWARE.
- *
- * Author:
- *    Zou Nan hai <nanhai.zou at intel.com>
- *    Zhang Hua jun <huajun.zhang at intel.com>
- *    Xing Dong sheng <dongsheng.xing at intel.com>
- *
- */
-mov (1) g2.8<1>UD 0x007001FUD {align1};
-send (16) 0 g98.0<1>UW g2<8,8,1>UW read(input_surface, 2, 0, 2) mlen 1 rlen 8 {align1};
+/* GRF allocation:
+   g1~g30: constant buffer
+           g1~g2:intra IQ matrix
+           g3~g4:non intra IQ matrix
+           g5~g20:IDCT table
+   g31:    thread payload 
+   g32:    message descriptor for reading reference data
+   g58~g81:reference data
+   g82:    thread payload backup
+   g83~g106:IDCT data                           */
 
-add (1) g2.4<1>UD g2.4<1,1,1>UD 8UD {align1};
-send (16) 0 g106.0<1>UW g2<8,8,1>UW read(input_surface, 2, 0, 2) mlen 1 rlen 8 {align1};
-add (1) g2.4<1>UD g2.4<1,1,1>UD 8UD {align1};
-mov (1) g2.8<1>UD 0x1FUD {align1};
-send (16) 0 g120.0<1>UW g2<8,8,1>UW read(input_surface, 2, 0, 2) mlen 1 rlen 1 {align1};
+mov (1) g32.8<1>UD 0x007001FUD {align1};
+and.nz (1) null g32.16<1,1,1>UW 1UW {align1};
+(f0) jmpi read_backward;
 
+send (16) 0 g38.0<1>UW g32<8,8,1>UW read(4, 2, 0, 2) mlen 1 rlen 8 {align1};
+add (1) g32.4<1>UD g32.4<1,1,1>UD 8UD {align1};
+send (16) 0 g46.0<1>UW g32<8,8,1>UW read(4, 2, 0, 2) mlen 1 rlen 8 {align1};
+add (1) g32.4<1>UD g32.4<1,1,1>UD 8UD {align1};
+mov (1) g32.8<1>UD 0x1FUD {align1};
+send (16) 0 g54.0<1>UW g32<8,8,1>UW read(4, 2, 0, 2) mlen 1 rlen 1 {align1};
+jmpi put_data;
 
-add (16) g28.0<1>UW g98.0<16,16,1>UB g98.1<16,16,1>UB {align1};
-add (16) g29.0<1>UW g99.0<16,16,1>UB g99.1<16,16,1>UB {align1};
-add (16) g30.0<1>UW g100.0<16,16,1>UB g100.1<16,16,1>UB {align1};
-add (16) g31.0<1>UW g101.0<16,16,1>UB g101.1<16,16,1>UB {align1};
-add (16) g32.0<1>UW g102.0<16,16,1>UB g102.1<16,16,1>UB {align1};
-add (16) g33.0<1>UW g103.0<16,16,1>UB g103.1<16,16,1>UB {align1};
-add (16) g34.0<1>UW g104.0<16,16,1>UB g104.1<16,16,1>UB {align1};
-add (16) g35.0<1>UW g105.0<16,16,1>UB g105.1<16,16,1>UB {align1};
-add (16) g36.0<1>UW g106.0<16,16,1>UB g106.1<16,16,1>UB {align1};
-add (16) g37.0<1>UW g107.0<16,16,1>UB g107.1<16,16,1>UB {align1};
-add (16) g38.0<1>UW g108.0<16,16,1>UB g108.1<16,16,1>UB {align1};
-add (16) g39.0<1>UW g109.0<16,16,1>UB g109.1<16,16,1>UB {align1};
-add (16) g40.0<1>UW g110.0<16,16,1>UB g110.1<16,16,1>UB {align1};
-add (16) g41.0<1>UW g111.0<16,16,1>UB g111.1<16,16,1>UB {align1};
-add (16) g42.0<1>UW g112.0<16,16,1>UB g112.1<16,16,1>UB {align1};
-add (16) g43.0<1>UW g113.0<16,16,1>UB g113.1<16,16,1>UB {align1};
+read_backward:
+send (16) 0 g38.0<1>UW g32<8,8,1>UW read(7, 2, 0, 2) mlen 1 rlen 8 {align1};
+add (1) g32.4<1>UD g32.4<1,1,1>UD 8UD {align1};
+send (16) 0 g46.0<1>UW g32<8,8,1>UW read(7, 2, 0, 2) mlen 1 rlen 8 {align1};
+add (1) g32.4<1>UD g32.4<1,1,1>UD 8UD {align1};
+mov (1) g32.8<1>UD 0x1FUD {align1};
+send (16) 0 g54.0<1>UW g32<8,8,1>UW read(7, 2, 0, 2) mlen 1 rlen 1 {align1};
 
-add (16) g28.0<1>UW g28.0<16,16,1>UW g99.0<16,16,1>UB {align1};
-add (16) g29.0<1>UW g29.0<16,16,1>UW g100.0<16,16,1>UB {align1};
-add (16) g30.0<1>UW g30.0<16,16,1>UW g101.0<16,16,1>UB {align1};
-add (16) g31.0<1>UW g31.0<16,16,1>UW g102.0<16,16,1>UB {align1};
-add (16) g32.0<1>UW g32.0<16,16,1>UW g103.0<16,16,1>UB {align1};
-add (16) g33.0<1>UW g33.0<16,16,1>UW g104.0<16,16,1>UB {align1};
-add (16) g34.0<1>UW g34.0<16,16,1>UW g105.0<16,16,1>UB {align1};
-add (16) g35.0<1>UW g35.0<16,16,1>UW g106.0<16,16,1>UB {align1};
-add (16) g36.0<1>UW g36.0<16,16,1>UW g107.0<16,16,1>UB {align1};
-add (16) g37.0<1>UW g37.0<16,16,1>UW g108.0<16,16,1>UB {align1};
-add (16) g38.0<1>UW g38.0<16,16,1>UW g109.0<16,16,1>UB {align1};
-add (16) g39.0<1>UW g39.0<16,16,1>UW g110.0<16,16,1>UB {align1};
-add (16) g40.0<1>UW g40.0<16,16,1>UW g111.0<16,16,1>UB {align1};
-add (16) g41.0<1>UW g41.0<16,16,1>UW g112.0<16,16,1>UB {align1};
-add (16) g42.0<1>UW g42.0<16,16,1>UW g113.0<16,16,1>UB {align1};
-add (16) g43.0<1>UW g43.0<16,16,1>UW g120.0<16,16,1>UB {align1};
+put_data:
+add (16) g58.0<1>UW g38.0<16,16,1>UB g38.1<16,16,1>UB {align1};
+add (16) g59.0<1>UW g39.0<16,16,1>UB g39.1<16,16,1>UB {align1};
+add (16) g60.0<1>UW g40.0<16,16,1>UB g40.1<16,16,1>UB {align1};
+add (16) g61.0<1>UW g41.0<16,16,1>UB g41.1<16,16,1>UB {align1};
+add (16) g62.0<1>UW g42.0<16,16,1>UB g42.1<16,16,1>UB {align1};
+add (16) g63.0<1>UW g43.0<16,16,1>UB g43.1<16,16,1>UB {align1};
+add (16) g64.0<1>UW g44.0<16,16,1>UB g44.1<16,16,1>UB {align1};
+add (16) g65.0<1>UW g45.0<16,16,1>UB g45.1<16,16,1>UB {align1};
+add (16) g66.0<1>UW g46.0<16,16,1>UB g46.1<16,16,1>UB {align1};
+add (16) g67.0<1>UW g47.0<16,16,1>UB g47.1<16,16,1>UB {align1};
+add (16) g68.0<1>UW g48.0<16,16,1>UB g48.1<16,16,1>UB {align1};
+add (16) g69.0<1>UW g49.0<16,16,1>UB g49.1<16,16,1>UB {align1};
+add (16) g70.0<1>UW g50.0<16,16,1>UB g50.1<16,16,1>UB {align1};
+add (16) g71.0<1>UW g51.0<16,16,1>UB g51.1<16,16,1>UB {align1};
+add (16) g72.0<1>UW g52.0<16,16,1>UB g52.1<16,16,1>UB {align1};
+add (16) g73.0<1>UW g53.0<16,16,1>UB g53.1<16,16,1>UB {align1};
 
-add (16) g28.0<1>UW g28.0<16,16,1>UW g99.1<16,16,1>UB {align1};
-add (16) g29.0<1>UW g29.0<16,16,1>UW g100.1<16,16,1>UB {align1};
-add (16) g30.0<1>UW g30.0<16,16,1>UW g101.1<16,16,1>UB {align1};
-add (16) g31.0<1>UW g31.0<16,16,1>UW g102.1<16,16,1>UB {align1};
-add (16) g32.0<1>UW g32.0<16,16,1>UW g103.1<16,16,1>UB {align1};
-add (16) g33.0<1>UW g33.0<16,16,1>UW g104.1<16,16,1>UB {align1};
-add (16) g34.0<1>UW g34.0<16,16,1>UW g105.1<16,16,1>UB {align1};
-add (16) g35.0<1>UW g35.0<16,16,1>UW g106.1<16,16,1>UB {align1};
-add (16) g36.0<1>UW g36.0<16,16,1>UW g107.1<16,16,1>UB {align1};
-add (16) g37.0<1>UW g37.0<16,16,1>UW g108.1<16,16,1>UB {align1};
-add (16) g38.0<1>UW g38.0<16,16,1>UW g109.1<16,16,1>UB {align1};
-add (16) g39.0<1>UW g39.0<16,16,1>UW g110.1<16,16,1>UB {align1};
-add (16) g40.0<1>UW g40.0<16,16,1>UW g111.1<16,16,1>UB {align1};
-add (16) g41.0<1>UW g41.0<16,16,1>UW g112.1<16,16,1>UB {align1};
-add (16) g42.0<1>UW g42.0<16,16,1>UW g113.1<16,16,1>UB {align1};
-add (16) g43.0<1>UW g43.0<16,16,1>UW g120.1<16,16,1>UB {align1};
+add (16) g58.0<1>UW g58.0<16,16,1>UW g39.0<16,16,1>UB {align1};
+add (16) g59.0<1>UW g59.0<16,16,1>UW g40.0<16,16,1>UB {align1};
+add (16) g60.0<1>UW g60.0<16,16,1>UW g41.0<16,16,1>UB {align1};
+add (16) g61.0<1>UW g61.0<16,16,1>UW g42.0<16,16,1>UB {align1};
+add (16) g62.0<1>UW g62.0<16,16,1>UW g43.0<16,16,1>UB {align1};
+add (16) g63.0<1>UW g63.0<16,16,1>UW g44.0<16,16,1>UB {align1};
+add (16) g64.0<1>UW g64.0<16,16,1>UW g45.0<16,16,1>UB {align1};
+add (16) g65.0<1>UW g65.0<16,16,1>UW g46.0<16,16,1>UB {align1};
+add (16) g66.0<1>UW g66.0<16,16,1>UW g47.0<16,16,1>UB {align1};
+add (16) g67.0<1>UW g67.0<16,16,1>UW g48.0<16,16,1>UB {align1};
+add (16) g68.0<1>UW g68.0<16,16,1>UW g49.0<16,16,1>UB {align1};
+add (16) g69.0<1>UW g69.0<16,16,1>UW g50.0<16,16,1>UB {align1};
+add (16) g70.0<1>UW g70.0<16,16,1>UW g51.0<16,16,1>UB {align1};
+add (16) g71.0<1>UW g71.0<16,16,1>UW g52.0<16,16,1>UB {align1};
+add (16) g72.0<1>UW g72.0<16,16,1>UW g53.0<16,16,1>UB {align1};
+add (16) g73.0<1>UW g73.0<16,16,1>UW g54.0<16,16,1>UB {align1};
+
+add (16) g58.0<1>UW g58.0<16,16,1>UW g39.1<16,16,1>UB {align1};
+add (16) g59.0<1>UW g59.0<16,16,1>UW g40.1<16,16,1>UB {align1};
+add (16) g60.0<1>UW g60.0<16,16,1>UW g41.1<16,16,1>UB {align1};
+add (16) g61.0<1>UW g61.0<16,16,1>UW g42.1<16,16,1>UB {align1};
+add (16) g62.0<1>UW g62.0<16,16,1>UW g43.1<16,16,1>UB {align1};
+add (16) g63.0<1>UW g63.0<16,16,1>UW g44.1<16,16,1>UB {align1};
+add (16) g64.0<1>UW g64.0<16,16,1>UW g45.1<16,16,1>UB {align1};
+add (16) g65.0<1>UW g65.0<16,16,1>UW g46.1<16,16,1>UB {align1};
+add (16) g66.0<1>UW g66.0<16,16,1>UW g47.1<16,16,1>UB {align1};
+add (16) g67.0<1>UW g67.0<16,16,1>UW g48.1<16,16,1>UB {align1};
+add (16) g68.0<1>UW g68.0<16,16,1>UW g49.1<16,16,1>UB {align1};
+add (16) g69.0<1>UW g69.0<16,16,1>UW g50.1<16,16,1>UB {align1};
+add (16) g70.0<1>UW g70.0<16,16,1>UW g51.1<16,16,1>UB {align1};
+add (16) g71.0<1>UW g71.0<16,16,1>UW g52.1<16,16,1>UB {align1};
+add (16) g72.0<1>UW g72.0<16,16,1>UW g53.1<16,16,1>UB {align1};
+add (16) g73.0<1>UW g73.0<16,16,1>UW g54.1<16,16,1>UB {align1};
+
+shr (32) g58.0<1>UW g58.0<16,16,1>UW 2UW {align1 compr};
+shr (32) g60.0<1>UW g60.0<16,16,1>UW 2UW {align1 compr};
+shr (32) g62.0<1>UW g62.0<16,16,1>UW 2UW {align1 compr};
+shr (32) g64.0<1>UW g64.0<16,16,1>UW 2UW {align1 compr};
+shr (32) g66.0<1>UW g66.0<16,16,1>UW 2UW {align1 compr};
+shr (32) g68.0<1>UW g68.0<16,16,1>UW 2UW {align1 compr};
+shr (32) g70.0<1>UW g70.0<16,16,1>UW 2UW {align1 compr};
+shr (32) g72.0<1>UW g72.0<16,16,1>UW 2UW {align1 compr};
 
-shr.sat (16) g28.0<1>UW g28.0<16,16,1>UW 2UW {align1};
-shr.sat (16) g29.0<1>UW g29.0<16,16,1>UW 2UW {align1};
-shr.sat (16) g30.0<1>UW g30.0<16,16,1>UW 2UW {align1};
-shr.sat (16) g31.0<1>UW g31.0<16,16,1>UW 2UW {align1};
-shr.sat (16) g32.0<1>UW g32.0<16,16,1>UW 2UW {align1};
-shr.sat (16) g33.0<1>UW g33.0<16,16,1>UW 2UW {align1};
-shr.sat (16) g34.0<1>UW g34.0<16,16,1>UW 2UW {align1};
-shr.sat (16) g35.0<1>UW g35.0<16,16,1>UW 2UW {align1};
-shr.sat (16) g36.0<1>UW g36.0<16,16,1>UW 2UW {align1};
-shr.sat (16) g37.0<1>UW g37.0<16,16,1>UW 2UW {align1};
-shr.sat (16) g38.0<1>UW g38.0<16,16,1>UW 2UW {align1};
-shr.sat (16) g39.0<1>UW g39.0<16,16,1>UW 2UW {align1};
-shr.sat (16) g40.0<1>UW g40.0<16,16,1>UW 2UW {align1};
-shr.sat (16) g41.0<1>UW g41.0<16,16,1>UW 2UW {align1};
-shr.sat (16) g42.0<1>UW g42.0<16,16,1>UW 2UW {align1};
-shr.sat (16) g43.0<1>UW g43.0<16,16,1>UW 2UW {align1};
diff --git a/src/xvmc/xvmc_vld.c b/src/xvmc/xvmc_vld.c
index 9bb9894..a2c2c15 100644
--- a/src/xvmc/xvmc_vld.c
+++ b/src/xvmc/xvmc_vld.c
@@ -34,11 +34,9 @@
 #endif
 
 #define BATCH_STRUCT(x) intelBatchbufferData(&x, sizeof(x), 0)
-
 #define VLD_MAX_SLICE_SIZE (32 * 1024)
-
-#define CS_SIZE 30
-#define URB_SIZE 384
+#define CS_SIZE 	30
+#define URB_SIZE 	384
 /* idct table */
 #define C0 23170
 #define C1 22725
@@ -75,17 +73,19 @@ const uint32_t idct_table[] = {
 #undef C6 
 #undef C7 
 
+#define INTERFACE_NUM	8
 enum interface {
-    INTRA_INTERFACE = 0,
-    FORWARD_INTERFACE,
-    BACKWARD_INTERFACE,
-    F_B_INTERFACE,
-    FIELD_FORWARD_INTERFACE,
-    FIELD_BACKWARD_INTERFACE,
-    FIELD_F_B_INTERFACE,
+    FRAME_INTRA = 0,
+	FRAME_FRAME_PRED_FORWARD,
+	FRAME_FRAME_PRED_BACKWARD,
+	FRAME_FRAME_PRED_BIDIRECT,
+	FRAME_FIELD_PRED_FORWARD,
+	FRAME_FIELD_PRED_BACKWARD,
+	FRAME_FIELD_PRED_BIDIRECT,
     LIB_INTERFACE
 };
 
+/*kernels for vld mode*/
 static uint32_t lib_kernel[][4] = {
    #include "shader/vld/lib.g4b"
 };
@@ -111,10 +111,37 @@ static uint32_t field_f_b_kernel[][4] = {
    #include "shader/vld/field_f_b.g4b"
 };
 
+/*kernels for mc mode*/
+static uint32_t lib_kernel_idct[][4] = {
+   #include "shader/mc/lib_igd.g4b"
+};
+static uint32_t ipicture_kernel_idct[][4] = {
+   #include "shader/mc/ipicture_igd.g4b"
+};
+static uint32_t frame_forward_kernel_idct[][4] = {
+   #include "shader/mc/frame_forward_igd.g4b"
+};
+static uint32_t frame_backward_kernel_idct[][4] = {
+   #include "shader/mc/frame_backward_igd.g4b"
+};
+static uint32_t frame_f_b_kernel_idct[][4] = {
+   #include "shader/mc/frame_f_b_igd.g4b"
+};
+static uint32_t field_forward_kernel_idct[][4] = {
+   #include "shader/mc/field_forward_igd.g4b"
+};
+static uint32_t field_backward_kernel_idct[][4] = {
+   #include "shader/mc/field_backward_igd.g4b"
+};
+static uint32_t field_f_b_kernel_idct[][4] = {
+   #include "shader/mc/field_f_b_igd.g4b"
+};
+
 struct media_kernel {
    uint32_t (*bin)[4];
    int size;
 }media_kernels[] = {
+	/*kernels for vld mode*/
     {ipicture_kernel, sizeof(ipicture_kernel)},
     {frame_forward_kernel, sizeof(frame_forward_kernel)},
     {frame_backward_kernel, sizeof(frame_backward_kernel)},
@@ -122,7 +149,16 @@ struct media_kernel {
     {field_forward_kernel, sizeof(field_forward_kernel)},
     {field_backward_kernel, sizeof(field_backward_kernel)},
     {field_f_b_kernel, sizeof(field_f_b_kernel)},
-    {lib_kernel, sizeof(lib_kernel)}
+    {lib_kernel, sizeof(lib_kernel)},
+	/*kernels for mc mode*/
+    {ipicture_kernel_idct, sizeof(ipicture_kernel_idct)},
+    {frame_forward_kernel_idct, sizeof(frame_forward_kernel_idct)},
+    {frame_backward_kernel_idct, sizeof(frame_backward_kernel_idct)},
+    {frame_f_b_kernel_idct, sizeof(frame_f_b_kernel_idct)},
+    {field_forward_kernel_idct, sizeof(field_forward_kernel_idct)},
+    {field_backward_kernel_idct, sizeof(field_backward_kernel_idct)},
+    {field_f_b_kernel_idct, sizeof(field_f_b_kernel_idct)},
+    {lib_kernel_idct, sizeof(lib_kernel_idct)}
 };
 
 #define MEDIA_KERNEL_NUM (sizeof(media_kernels)/sizeof(media_kernels[0]))
@@ -163,6 +199,10 @@ struct slice_data_obj {
     dri_bo *bo;
 };
 
+struct mb_data_obj {
+    dri_bo *bo;
+};
+
 struct cs_state_obj {
     dri_bo *bo;
 };
@@ -173,6 +213,7 @@ static struct media_state {
     struct binding_table_obj binding_table;
     struct cs_state_obj cs_object;
     struct slice_data_obj slice_data;
+	struct mb_data_obj mb_data;
 } media_state;
 
 /* XvMCQMatrix * 2 + idct_table + 8 * kernel offset pointer */
@@ -191,6 +232,7 @@ static int free_object(struct media_state *s)
     for (i = 0; i < I965_MAX_SURFACES; i++)
         FREE_ONE_BO(s->binding_table.surface_states[i].bo);
     FREE_ONE_BO(s->slice_data.bo);
+    FREE_ONE_BO(s->mb_data.bo);
     FREE_ONE_BO(s->cs_object.bo);
     FREE_ONE_BO(s->vld_state.bo);
 }
@@ -222,18 +264,22 @@ static void flush()
     BATCH_STRUCT(f);
 }
 
-static Status vfe_state()
+static Status vfe_state(int vfe_mode)
 {
-  struct brw_vfe_state tmp, *vfe_state = &tmp;
-  memset(vfe_state, 0, sizeof(*vfe_state));
-  vfe_state->vfe0.extend_vfe_state_present = 1;
-  vfe_state->vfe1.vfe_mode = VFE_VLD_MODE;
-  vfe_state->vfe1.num_urb_entries = 1;
-  vfe_state->vfe1.children_present = 0;
-  vfe_state->vfe1.urb_entry_alloc_size = 2;
-  vfe_state->vfe1.max_threads = 31;
-  vfe_state->vfe2.interface_descriptor_base =
-      media_state.vfe_state.interface.bo->offset >> 4;
+	struct brw_vfe_state tmp, *vfe_state = &tmp;
+	memset(vfe_state, 0, sizeof(*vfe_state));
+	if (vfe_mode == VFE_VLD_MODE) {
+		vfe_state->vfe0.extend_vfe_state_present = 1;
+	} else {
+		vfe_state->vfe0.extend_vfe_state_present = 0; 
+	}
+	vfe_state->vfe1.vfe_mode = vfe_mode;
+	vfe_state->vfe1.num_urb_entries = 1;
+	vfe_state->vfe1.children_present = 0;
+	vfe_state->vfe1.urb_entry_alloc_size = 2;
+	vfe_state->vfe1.max_threads = 31;
+	vfe_state->vfe2.interface_descriptor_base =
+		media_state.vfe_state.interface.bo->offset >> 4;
 
     if (media_state.vfe_state.bo)
         drm_intel_bo_unreference(media_state.vfe_state.bo);
@@ -246,9 +292,9 @@ static Status vfe_state()
     drm_intel_bo_subdata(media_state.vfe_state.bo, 0, sizeof(tmp), &tmp);
 
     drm_intel_bo_emit_reloc(media_state.vfe_state.bo,
-	offsetof(struct brw_vfe_state, vfe2),
-	media_state.vfe_state.interface.bo, 0,
-	I915_GEM_DOMAIN_INSTRUCTION, 0);
+		offsetof(struct brw_vfe_state, vfe2),
+		media_state.vfe_state.interface.bo, 0,
+		I915_GEM_DOMAIN_INSTRUCTION, 0);
     return Success;
 }
 
@@ -267,35 +313,35 @@ static Status interface_descriptor()
         return BadAlloc;
 
     for (i = 0; i < MEDIA_KERNEL_NUM; i++) {
-	memset(desc, 0, sizeof(*desc));
-	desc->desc0.grf_reg_blocks = 15;
-	desc->desc0.kernel_start_pointer =
-            media_state.vfe_state.interface.kernels[i].bo->offset >> 6;
-
-	desc->desc1.const_urb_entry_read_offset = 0;
-	desc->desc1.const_urb_entry_read_len = 30;
-
-	desc->desc3.binding_table_entry_count = I965_MAX_SURFACES - 1;
-	desc->desc3.binding_table_pointer =
-            media_state.binding_table.bo->offset >> 5;
-
-        drm_intel_bo_subdata(media_state.vfe_state.interface.bo, i*sizeof(tmp), sizeof(tmp), desc);
-
-        drm_intel_bo_emit_reloc(
-	    media_state.vfe_state.interface.bo,
-	    i * sizeof(*desc) + 
-	    offsetof(struct brw_interface_descriptor, desc0),
-	    media_state.vfe_state.interface.kernels[i].bo,
-	    desc->desc0.grf_reg_blocks,
-	    I915_GEM_DOMAIN_INSTRUCTION, 0);
-
-       drm_intel_bo_emit_reloc(
-	    media_state.vfe_state.interface.bo,
-	    i * sizeof(*desc) + 
-	    offsetof(struct brw_interface_descriptor, desc3),
-	    media_state.binding_table.bo,
-	    desc->desc3.binding_table_entry_count,
-	    I915_GEM_DOMAIN_INSTRUCTION, 0);
+		memset(desc, 0, sizeof(*desc));
+		desc->desc0.grf_reg_blocks = 15;
+		desc->desc0.kernel_start_pointer =
+				media_state.vfe_state.interface.kernels[i].bo->offset >> 6;
+
+		desc->desc1.const_urb_entry_read_offset = 0;
+		desc->desc1.const_urb_entry_read_len = 30;
+
+		desc->desc3.binding_table_entry_count = I965_MAX_SURFACES - 1;
+		desc->desc3.binding_table_pointer =
+				media_state.binding_table.bo->offset >> 5;
+
+		drm_intel_bo_subdata(media_state.vfe_state.interface.bo, i*sizeof(tmp), sizeof(tmp), desc);
+
+		drm_intel_bo_emit_reloc(
+			media_state.vfe_state.interface.bo,
+			i * sizeof(*desc) + 
+			offsetof(struct brw_interface_descriptor, desc0),
+			media_state.vfe_state.interface.kernels[i].bo,
+			desc->desc0.grf_reg_blocks,
+			I915_GEM_DOMAIN_INSTRUCTION, 0);
+		
+		drm_intel_bo_emit_reloc(
+			media_state.vfe_state.interface.bo,
+			i * sizeof(*desc) + 
+			offsetof(struct brw_interface_descriptor, desc3),
+			media_state.binding_table.bo,
+			desc->desc3.binding_table_entry_count,
+			I915_GEM_DOMAIN_INSTRUCTION, 0);
     }
     return Success;
 }
@@ -347,7 +393,7 @@ static Status binding_tables()
    return Success;
 }
 
-static Status cs_init()
+static Status cs_init(int interface_offset)
 {
    char buf[CS_OBJECT_SIZE];
    unsigned int *lib_reloc;
@@ -364,13 +410,14 @@ static Status cs_init()
    /* idct lib reloction */
    lib_reloc = (unsigned int *)(buf + 32*20);
    for (i = 0; i < 8; i++)
-       lib_reloc[i] = media_state.vfe_state.interface.kernels[LIB_INTERFACE].bo->offset;
+       lib_reloc[i] = 
+	   media_state.vfe_state.interface.kernels[LIB_INTERFACE + interface_offset].bo->offset;
    drm_intel_bo_subdata(media_state.cs_object.bo, 32*4, 32*16 + 8*sizeof(unsigned int), buf + 32*4);
 
    for (i = 0; i < 8; i++)
        drm_intel_bo_emit_reloc(media_state.cs_object.bo,
            32*20 + sizeof(unsigned int) * i,
-           media_state.vfe_state.interface.kernels[LIB_INTERFACE].bo, 0,
+           media_state.vfe_state.interface.kernels[LIB_INTERFACE + interface_offset].bo, 0,
            I915_GEM_DOMAIN_INSTRUCTION, 0);
 
    return Success;
@@ -428,7 +475,7 @@ static Status load_qmatrix(Display *display, XvMCContext *context,
 	const XvMCQMatrix *qmx)
 {
     Status ret;
-    ret = cs_init();
+    ret = cs_init(0);
     if (ret != Success)
         return ret;
     drm_intel_bo_subdata(media_state.cs_object.bo, 0, 64, qmx->intra_quantiser_matrix);
@@ -449,11 +496,11 @@ static Status vld_state(const XvMCMpegControl *control)
     struct brw_vld_state tmp, *vld = &tmp;
 
     if (media_state.vld_state.bo)
-        drm_intel_bo_unreference(media_state.vld_state.bo);
+	drm_intel_bo_unreference(media_state.vld_state.bo);
     media_state.vld_state.bo = drm_intel_bo_alloc(xvmc_driver->bufmgr, 
 	    "vld state", sizeof(struct brw_vld_state), 64);
     if (!media_state.vld_state.bo)
-        return BadAlloc;
+	return BadAlloc;
 
     memset(vld, 0, sizeof(*vld));
     vld->vld0.f_code_0_0 = control->FHMV_range + 1;
@@ -473,23 +520,23 @@ static Status vld_state(const XvMCMpegControl *control)
 
     vld->vld1.picture_coding_type = control->picture_coding_type;
 
-    vld->desc_remap_table0.index_0 = INTRA_INTERFACE;
-    vld->desc_remap_table0.index_1 = FORWARD_INTERFACE;
-    vld->desc_remap_table0.index_2 = FIELD_FORWARD_INTERFACE;
-    vld->desc_remap_table0.index_3 = FIELD_F_B_INTERFACE; /* dual prime */
-    vld->desc_remap_table0.index_4 = BACKWARD_INTERFACE;
-    vld->desc_remap_table0.index_5 = FIELD_BACKWARD_INTERFACE;
-    vld->desc_remap_table0.index_6 = F_B_INTERFACE;
-    vld->desc_remap_table0.index_7 = FIELD_F_B_INTERFACE;
-
-    vld->desc_remap_table1.index_8 = INTRA_INTERFACE;
-    vld->desc_remap_table1.index_9 = FORWARD_INTERFACE;
-    vld->desc_remap_table1.index_10 = FIELD_FORWARD_INTERFACE;
-    vld->desc_remap_table1.index_11 = FIELD_F_B_INTERFACE;
-    vld->desc_remap_table1.index_12 = BACKWARD_INTERFACE;
-    vld->desc_remap_table1.index_13 = FIELD_BACKWARD_INTERFACE;
-    vld->desc_remap_table1.index_14 = F_B_INTERFACE;
-    vld->desc_remap_table1.index_15 = FIELD_F_B_INTERFACE;
+    vld->desc_remap_table0.index_0 = FRAME_INTRA;
+    vld->desc_remap_table0.index_1 = FRAME_FRAME_PRED_FORWARD;
+    vld->desc_remap_table0.index_2 = FRAME_FIELD_PRED_FORWARD;
+    vld->desc_remap_table0.index_3 = FRAME_FIELD_PRED_BIDIRECT; /* dual prime */
+    vld->desc_remap_table0.index_4 = FRAME_FRAME_PRED_BACKWARD;
+    vld->desc_remap_table0.index_5 = FRAME_FIELD_PRED_BACKWARD;
+    vld->desc_remap_table0.index_6 = FRAME_FRAME_PRED_BIDIRECT;
+    vld->desc_remap_table0.index_7 = FRAME_FIELD_PRED_BIDIRECT;
+
+    vld->desc_remap_table1.index_8 = FRAME_INTRA;
+    vld->desc_remap_table1.index_9 = FRAME_FRAME_PRED_FORWARD;
+    vld->desc_remap_table1.index_10 = FRAME_FIELD_PRED_FORWARD;
+    vld->desc_remap_table1.index_11 = FRAME_FIELD_PRED_BIDIRECT;
+    vld->desc_remap_table1.index_12 = FRAME_FRAME_PRED_BACKWARD;
+    vld->desc_remap_table1.index_13 = FRAME_FIELD_PRED_BACKWARD;
+    vld->desc_remap_table1.index_14 = FRAME_FRAME_PRED_BIDIRECT;
+    vld->desc_remap_table1.index_15 = FRAME_FIELD_PRED_BIDIRECT;
 
     drm_intel_bo_subdata(media_state.vld_state.bo, 0, sizeof(tmp), vld);
     return Success;
@@ -534,34 +581,34 @@ static Status setup_surface(struct i965_xvmc_surface *target,
     Status ret;
     ret = setup_media_surface(0, target->bo, 0, w, h, TRUE);
     if (ret != Success)
-        return ret;
+	return ret;
     ret = setup_media_surface(1, target->bo, w*h, w/2, h/2, TRUE);
     if (ret != Success)
-        return ret;
+	return ret;
     ret = setup_media_surface(2, target->bo, w*h + w*h/4, w/2, h/2, TRUE);
     if (ret != Success)
-        return ret;
+	return ret;
     if (past) {
 	ret = setup_media_surface(4, past->bo, 0, w, h, FALSE);
-        if (ret != Success)
-            return ret;
+	if (ret != Success)
+	    return ret;
 	ret = setup_media_surface(5, past->bo, w*h, w/2, h/2, FALSE);
-        if (ret != Success)
-            return ret;
+	if (ret != Success)
+	    return ret;
 	ret = setup_media_surface(6, past->bo, w*h + w*h/4, w/2, h/2, FALSE);
-        if (ret != Success)
-            return ret;
+	if (ret != Success)
+	    return ret;
     }
     if (future) {
 	ret = setup_media_surface(7, future->bo, 0, w, h, FALSE);
-        if (ret != Success)
-            return ret;
+	if (ret != Success)
+	    return ret;
 	ret = setup_media_surface(8, future->bo, w*h, w/2, h/2, FALSE);
-        if (ret != Success)
-            return ret;
+	if (ret != Success)
+	    return ret;
 	ret = setup_media_surface(9, future->bo, w*h + w*h/4, w/2, h/2, FALSE);
-        if (ret != Success)
-            return ret;
+	if (ret != Success)
+	    return ret;
     }
     return Success;
 }
@@ -595,7 +642,7 @@ static  Status begin_surface(Display *display, XvMCContext *context,
     ret = interface_descriptor();
     if (ret != Success)
         return ret;
-    ret = vfe_state();
+    ret = vfe_state(VFE_VLD_MODE);
     if (ret != Success)
         return ret;
 
@@ -631,15 +678,20 @@ static void pipeline_select()
     OUT_BATCH(NEW_PIPELINE_SELECT|PIPELINE_SELECT_MEDIA);
     ADVANCE_BATCH();
 }
-static void media_state_pointers()
+
+static void media_state_pointers(int vfe_mode)
 {
     BATCH_LOCALS;
     BEGIN_BATCH(3);
     OUT_BATCH(BRW_MEDIA_STATE_POINTERS|1);
-    OUT_RELOC(media_state.vld_state.bo, I915_GEM_DOMAIN_INSTRUCTION, 0, 1);
+	if (vfe_mode == VFE_VLD_MODE) 
+		OUT_RELOC(media_state.vld_state.bo, I915_GEM_DOMAIN_INSTRUCTION, 0, 1);
+	else
+		OUT_BATCH(0);
     OUT_RELOC(media_state.vfe_state.bo, I915_GEM_DOMAIN_INSTRUCTION, 0, 0);
     ADVANCE_BATCH();
 }
+
 static void align_urb_fence()
 {
     BATCH_LOCALS;
@@ -654,6 +706,7 @@ static void align_urb_fence()
 	ADVANCE_BATCH();
     }
 }
+
 static void urb_layout()
 {
     BATCH_LOCALS;
@@ -698,6 +751,39 @@ static void cs_buffer()
     ADVANCE_BATCH();
 }
 
+/* kick media object to gpu in idct mode*/
+static void send_media_object(XvMCMacroBlock *mb, dri_bo *bo, 
+							uint32_t offset,  
+							enum interface interface)
+{
+    BATCH_LOCALS;
+    BEGIN_BATCH(13);
+    OUT_BATCH(BRW_MEDIA_OBJECT|11);
+    OUT_BATCH(interface);
+    OUT_BATCH(6*128);
+    OUT_RELOC(bo, I915_GEM_DOMAIN_INSTRUCTION, 0, offset);
+    
+    OUT_BATCH(mb->x<<4);                 	  		
+    OUT_BATCH(mb->y<<4);
+	OUT_RELOC(bo, I915_GEM_DOMAIN_INSTRUCTION, 0, offset);
+    OUT_BATCH_SHORT(mb->coded_block_pattern); 			
+    OUT_BATCH_SHORT(mb->PMV[0][0][0]);        			
+    OUT_BATCH_SHORT(mb->PMV[0][0][1]);        			
+    OUT_BATCH_SHORT(mb->PMV[0][1][0]);        			
+    OUT_BATCH_SHORT(mb->PMV[0][1][1]);        			
+    
+    OUT_BATCH_SHORT(mb->PMV[1][0][0]);        			 
+    OUT_BATCH_SHORT(mb->PMV[1][0][1]);        			
+    OUT_BATCH_SHORT(mb->PMV[1][1][0]);        			
+    OUT_BATCH_SHORT(mb->PMV[1][1][1]);        			
+    OUT_BATCH_CHAR(mb->dct_type);             			
+    OUT_BATCH_CHAR(mb->motion_vertical_field_select);	
+    
+    OUT_BATCH(0xffffffff);
+    ADVANCE_BATCH();
+}
+
+/* kick media object to gpu in vld mode*/
 static void vld_send_media_object(dri_bo *bo,
 	int slice_len, int mb_h_pos, int mb_v_pos, int mb_bit_offset,
 	int mb_count, int q_scale_code)
@@ -749,8 +835,8 @@ static Status put_slice2(Display *display, XvMCContext *context,
     intel_ctx = intel_xvmc_find_context(context->context_id);
     LOCK_HARDWARE(intel_ctx->hw_context);
     state_base_address();
-    pipeline_select(&media_state);
-    media_state_pointers(&media_state);
+    pipeline_select();
+    media_state_pointers(VFE_VLD_MODE);
     urb_layout();	
     cs_urb_layout();
     cs_buffer();
@@ -779,6 +865,169 @@ static Status put_surface(Display *display,XvMCSurface *surface,
 	return Success;
 }
 
+static Status render_surface(Display *display, 
+	XvMCContext *context,
+	unsigned int picture_structure,
+	XvMCSurface *target_surface,
+	XvMCSurface *past_surface,
+	XvMCSurface *future_surface,
+	unsigned int flags,
+	unsigned int num_macroblocks,
+	unsigned int first_macroblock,
+	XvMCMacroBlockArray *macroblock_array,
+	XvMCBlockArray *blocks)
+{
+    struct i965_xvmc_surface *priv_target, *priv_past, *priv_future;
+    intel_xvmc_context_ptr intel_ctx;
+    XvMCMacroBlock *mb;
+    Status ret;
+    unsigned short *block_ptr;
+    int i, j;
+    int block_offset = 0;
+
+    intel_ctx = intel_xvmc_find_context(context->context_id);
+    if (!intel_ctx) {
+	XVMC_ERR("Can't find intel xvmc context\n");
+	return BadValue;
+    }
+
+    priv_target = target_surface->privData;
+    priv_past = past_surface?past_surface->privData:NULL;
+    priv_future = future_surface?future_surface->privData:NULL;
+
+    ret = setup_surface(priv_target, priv_past, priv_future, 
+	    context->width, context->height);
+    if (ret != Success)
+	return ret;
+    ret = binding_tables();
+    if (ret != Success)
+	return ret;
+    ret = interface_descriptor();
+    if (ret != Success)
+	return ret;
+    ret = cs_init(INTERFACE_NUM);
+    if (ret != Success)
+	return ret;
+    ret = vfe_state(VFE_GENERIC_MODE);
+    if (ret != Success)
+	return ret;
+
+    if (media_state.mb_data.bo) {
+	if (xvmc_driver->kernel_exec_fencing)
+	    drm_intel_gem_bo_unmap_gtt(media_state.mb_data.bo);
+	else
+	    drm_intel_bo_unmap(media_state.mb_data.bo);
+
+	drm_intel_bo_unreference(media_state.mb_data.bo);
+    }
+    unsigned int block_num = 
+	(((context->width + 15) >> 4) * ((context->height + 15) >> 4));
+    unsigned int surface_size = (64 * sizeof(short) * 6 * block_num);
+    media_state.mb_data.bo = drm_intel_bo_alloc(xvmc_driver->bufmgr,
+	    "macroblock data", surface_size, 64); 
+    if(!media_state.mb_data.bo)
+	return BadAlloc;
+    if(xvmc_driver->kernel_exec_fencing)
+	drm_intel_gem_bo_map_gtt(media_state.mb_data.bo);
+    else
+	drm_intel_bo_map(media_state.mb_data.bo, 1);
+
+    block_ptr = media_state.mb_data.bo->virtual;
+    unsigned short *mb_block_ptr;
+    for (i = first_macroblock; 
+	    i < num_macroblocks + first_macroblock; i++) {
+	mb = &macroblock_array->macro_blocks[i];
+	mb_block_ptr = &blocks->blocks[(mb->index<<6)];
+
+	if (mb->coded_block_pattern & 0x20) {
+	    for (j = 0; j < 8; j++)
+		memcpy(block_ptr + 16*j, mb_block_ptr + 8*j, 16);	
+	    mb_block_ptr += 64;
+	}
+	if (mb->coded_block_pattern & 0x10) {
+	    for (j = 0; j < 8; j++)
+		memcpy(block_ptr + 16*j + 8, mb_block_ptr + 8*j, 16);	
+	    mb_block_ptr += 64;
+	}
+
+	block_ptr += 2*64;
+	if (mb->coded_block_pattern & 0x08) {
+	    for (j = 0; j < 8; j++)
+		memcpy(block_ptr + 16*j, mb_block_ptr + 8*j, 16);	
+	    mb_block_ptr += 64;
+	}
+	if (mb->coded_block_pattern & 0x04) {
+	    for (j = 0; j < 8; j++)
+		memcpy(block_ptr + 16*j + 8, mb_block_ptr + 8*j, 16);	
+	    mb_block_ptr += 64;
+	}
+
+	block_ptr += 2*64;
+	if (mb->coded_block_pattern & 0x2) {
+	    memcpy(block_ptr, mb_block_ptr, 128);
+	    mb_block_ptr += 64;
+	}
+
+	block_ptr += 64;
+	if (mb->coded_block_pattern & 0x1) 
+	    memcpy(block_ptr, mb_block_ptr, 128);
+	block_ptr += 64; 
+    }
+
+    LOCK_HARDWARE(intel_ctx->hw_context);
+    state_base_address();
+    flush();	
+    pipeline_select();
+    urb_layout();	
+    media_state_pointers(VFE_GENERIC_MODE);
+    cs_urb_layout();
+    cs_buffer();
+    for (i = first_macroblock; 
+	    i < num_macroblocks + first_macroblock; 
+	    i++, block_offset += 128*6) {
+	mb = &macroblock_array->macro_blocks[i];
+
+	if (mb->macroblock_type & XVMC_MB_TYPE_INTRA) {
+	    send_media_object(mb, media_state.mb_data.bo, block_offset, 
+		    FRAME_INTRA + INTERFACE_NUM);
+	} else {
+	    if (((mb->motion_type & 3) == XVMC_PREDICTION_FRAME)) {
+		if ((mb->macroblock_type & XVMC_MB_TYPE_MOTION_FORWARD)) {
+		    if ((mb->macroblock_type & XVMC_MB_TYPE_MOTION_BACKWARD)) {
+			send_media_object(mb, media_state.mb_data.bo, block_offset, 
+				FRAME_FRAME_PRED_BIDIRECT + INTERFACE_NUM);
+		    } else {
+			send_media_object(mb, media_state.mb_data.bo, block_offset, 
+				FRAME_FRAME_PRED_FORWARD + INTERFACE_NUM);
+		    }
+		} else if ((mb->macroblock_type&XVMC_MB_TYPE_MOTION_BACKWARD)) {
+		    send_media_object(mb, media_state.mb_data.bo, block_offset, 
+			    FRAME_FRAME_PRED_BACKWARD + INTERFACE_NUM);
+		}
+	    } else if ((mb->motion_type & 3) == XVMC_PREDICTION_FIELD) {
+		if ((mb->macroblock_type&XVMC_MB_TYPE_MOTION_FORWARD)) {
+		    if (((mb->macroblock_type&XVMC_MB_TYPE_MOTION_BACKWARD))) {
+			send_media_object(mb, media_state.mb_data.bo, block_offset, 
+				FRAME_FIELD_PRED_BIDIRECT + INTERFACE_NUM);
+		    } else {
+			send_media_object(mb, media_state.mb_data.bo, block_offset, 
+				FRAME_FIELD_PRED_FORWARD + INTERFACE_NUM);
+		    }
+		} else if ((mb->macroblock_type&XVMC_MB_TYPE_MOTION_BACKWARD)) {
+		    send_media_object(mb, media_state.mb_data.bo, block_offset, 
+			    FRAME_FIELD_PRED_BACKWARD + INTERFACE_NUM);
+		}
+	    } else {
+		send_media_object(mb, media_state.mb_data.bo, block_offset, 
+			FRAME_FIELD_PRED_BIDIRECT + INTERFACE_NUM); /*dual prime*/
+	    } 
+	}
+    }
+    intelFlushBatch(TRUE);
+    UNLOCK_HARDWARE(intel_ctx->hw_context);
+    return Success;
+}
+
 struct _intel_xvmc_driver xvmc_vld_driver = {
     .type = XVMC_I965_MPEG2_VLD,
     .create_context = create_context,
@@ -788,6 +1037,7 @@ struct _intel_xvmc_driver xvmc_vld_driver = {
     .load_qmatrix = load_qmatrix,
     .get_surface_status = get_surface_status,
     .begin_surface = begin_surface,
+	.render_surface = render_surface,
     .put_surface = put_surface,
     .put_slice = put_slice,
     .put_slice2 = put_slice2
commit 88da9b48737229b305da4423e9aa43a09ccdcfac
Author: Zhenyu Wang <zhenyuw at linux.intel.com>
Date:   Wed Jun 10 10:45:51 2009 +0800

    Add new chipset register dumps
    
    Signed-off-by: Zhenyu Wang <zhenyuw at linux.intel.com>

diff --git a/src/i830_debug.c b/src/i830_debug.c
index f070978..1126c26 100644
--- a/src/i830_debug.c
+++ b/src/i830_debug.c
@@ -128,18 +128,42 @@ DEBUGSTRING(i830_debug_dspcntr)
 {
     char *enabled = val & DISPLAY_PLANE_ENABLE ? "enabled" : "disabled";
     char plane = val & DISPPLANE_SEL_PIPE_B ? 'B' : 'A';
-    return XNFprintf("%s, pipe %c", enabled, plane);
+    if (IS_IGDNG(pI830))
+	return XNFprintf("%s", enabled);
+    else
+	return XNFprintf("%s, pipe %c", enabled, plane);
 }
 
 DEBUGSTRING(i830_debug_pipeconf)
 {
     char *enabled = val & PIPEACONF_ENABLE ? "enabled" : "disabled";
     char *bit30;
+    char *bpc = NULL;
     if (IS_I965G(pI830))
 	bit30 = val & I965_PIPECONF_ACTIVE ? "active" : "inactive";
     else
 	bit30 = val & PIPEACONF_DOUBLE_WIDE ? "double-wide" : "single-wide";
-    return XNFprintf("%s, %s", enabled, bit30);
+
+    if (IS_IGDNG(pI830)) {
+	switch (val & (7<<5)) {
+	    case PIPECONF_8BPP:
+		bpc = "8bpc";
+		break;
+	    case PIPECONF_10BPP:
+		bpc = "10bpc";
+		break;
+	    case PIPECONF_6BPP:
+		bpc = "6bpc";
+		break;
+	    case PIPECONF_12BPP:
+		bpc = "12bpc";
+		break;
+	}
+    }
+    if (IS_IGDNG(pI830))
+	return XNFprintf("%s, %s, %s", enabled, bit30, bpc);
+    else
+	return XNFprintf("%s, %s", enabled, bit30);
 }
 
 DEBUGSTRING(i830_debug_pipestat)
@@ -387,8 +411,12 @@ DEBUGSTRING(i830_debug_adpa)
     char hsync = (val & ADPA_HSYNC_ACTIVE_HIGH) ? '+' : '-';
     char vsync = (val & ADPA_VSYNC_ACTIVE_HIGH) ? '+' : '-';
 
-    return XNFprintf("%s, pipe %c, %chsync, %cvsync",
-		     enable, pipe, hsync, vsync);
+    if (IS_IGDNG(pI830))
+	return XNFprintf("%s, transcoder %c, %chsync, %cvsync",
+		enable, pipe, hsync, vsync);
+    else
+	return XNFprintf("%s, pipe %c, %chsync, %cvsync",
+		enable, pipe, hsync, vsync);
 }
 
 DEBUGSTRING(i830_debug_lvds)
@@ -580,12 +608,14 @@ DEBUGSTRING(i810_debug_965_fence_end)
 #define DEFINEREG2(reg, func) \
 	{ reg, #reg, func, 0 }
 
-static struct i830SnapshotRec {
+struct i830SnapshotRec {
     int reg;
     char *name;
     char *(*debug_output)(I830Ptr pI830, int reg, uint32_t val);
     uint32_t val;
-} i830_snapshot[] = {
+};
+
+static struct i830SnapshotRec i830_snapshot[] = {
     DEFINEREG2(DCC, i830_debug_dcc),
     DEFINEREG2(CHDECMISC, i830_debug_chdecmisc),
     DEFINEREG_16BIT(C0DRB0),
@@ -820,17 +850,551 @@ static struct i830SnapshotRec {
     DEFINEFENCE_965(14),
     DEFINEFENCE_965(15),
 };
-#undef DEFINEREG
 #define NUM_I830_SNAPSHOTREGS (sizeof(i830_snapshot) / sizeof(i830_snapshot[0]))
 
+DEBUGSTRING(igdng_debug_rr_hw_ctl)
+{
+    return XNFprintf("low %d, high %d", val & RR_HW_LOW_POWER_FRAMES_MASK,
+	    (val & RR_HW_HIGH_POWER_FRAMES_MASK) >> 8 );
+}
+
+DEBUGSTRING(igdng_debug_m_tu)
+{
+    return XNFprintf("TU %d, val 0x%x %d", (val >> 25) + 1, val & 0xffffff, val & 0xffffff);
+}
+
+DEBUGSTRING(igdng_debug_n)
+{
+    return XNFprintf("val 0x%x %d", val & 0xffffff, val & 0xffffff);
+}
+
+DEBUGSTRING(igdng_debug_fdi_tx_ctl)
+{
+    char *train = NULL, *voltage = NULL, *pre_emphasis = NULL, *portw = NULL;
+
+    switch (val & FDI_LINK_TRAIN_NONE) {
+	case FDI_LINK_TRAIN_PATTERN_1:
+	    train = "pattern_1";
+	    break;
+	case FDI_LINK_TRAIN_PATTERN_2:
+	    train = "pattern_2";
+	    break;
+	case FDI_LINK_TRAIN_PATTERN_IDLE:
+	    train = "pattern_idle";
+	    break;
+	case FDI_LINK_TRAIN_NONE:
+	    train = "not train";
+	    break;
+    }
+
+    switch (val & (7<<25)) {
+	case FDI_LINK_TRAIN_VOLTAGE_0_4V:
+	    voltage = "0.4V";
+	    break;
+	case FDI_LINK_TRAIN_VOLTAGE_0_6V:
+	    voltage = "0.6V";
+	    break;
+	case FDI_LINK_TRAIN_VOLTAGE_0_8V:
+	    voltage = "0.8V";
+	    break;
+	case FDI_LINK_TRAIN_VOLTAGE_1_2V:
+	    voltage = "1.2V";
+	    break;
+	default:
+	    voltage = "reserved";
+    }
+
+    switch (val & (7<<22)) {
+	case FDI_LINK_TRAIN_PRE_EMPHASIS_NONE:
+	    pre_emphasis = "none";
+	    break;
+	case FDI_LINK_TRAIN_PRE_EMPHASIS_1_5X:
+	    pre_emphasis = "1.5x";
+	    break;
+	case FDI_LINK_TRAIN_PRE_EMPHASIS_2X:
+	    pre_emphasis = "2x";
+	    break;
+	case FDI_LINK_TRAIN_PRE_EMPHASIS_3X:
+	    pre_emphasis = "3x";
+	    break;
+	default:
+	    pre_emphasis = "reserved";
+    }
+
+    switch (val & (7<<19)) {
+	case FDI_DP_PORT_WIDTH_X1:
+	    portw = "X1";
+	    break;
+	case FDI_DP_PORT_WIDTH_X2:
+	    portw = "X2";
+	    break;
+	case FDI_DP_PORT_WIDTH_X3:
+	    portw = "X3";
+	    break;
+	case FDI_DP_PORT_WIDTH_X4:
+	    portw = "X4";
+	    break;
+    }
+
+    return XNFprintf("%s, train pattern %s, voltage swing %s,"
+	    "pre-emphasis %s, port width %s, enhanced framing %s, FDI PLL %s, scrambing %s, master mode %s",
+	    val & FDI_TX_ENABLE ? "enable" : "disable",
+	    train, voltage, pre_emphasis, portw,
+	    val & FDI_TX_ENHANCE_FRAME_ENABLE ? "enable" : "disable",
+	    val & FDI_TX_PLL_ENABLE ? "enable" : "disable",
+	    val & (1 << 7) ? "disable" : "enable",
+	    val & (1 << 0) ? "enable" : "disable");
+}
+
+DEBUGSTRING(igdng_debug_fdi_rx_ctl)
+{
+    char *train = NULL, *portw = NULL, *bpc = NULL;
+
+    switch (val & FDI_LINK_TRAIN_NONE) {
+	case FDI_LINK_TRAIN_PATTERN_1:
+	    train = "pattern_1";
+	    break;
+	case FDI_LINK_TRAIN_PATTERN_2:
+	    train = "pattern_2";
+	    break;
+	case FDI_LINK_TRAIN_PATTERN_IDLE:
+	    train = "pattern_idle";
+	    break;
+	case FDI_LINK_TRAIN_NONE:
+	    train = "not train";
+	    break;
+    }
+
+    switch (val & (7<<19)) {
+	case FDI_DP_PORT_WIDTH_X1:
+	    portw = "X1";
+	    break;
+	case FDI_DP_PORT_WIDTH_X2:
+	    portw = "X2";
+	    break;
+	case FDI_DP_PORT_WIDTH_X3:
+	    portw = "X3";
+	    break;
+	case FDI_DP_PORT_WIDTH_X4:
+	    portw = "X4";
+	    break;
+    }
+
+    switch (val & (7<<16)) {
+	case FDI_8BPC:
+	    bpc = "8bpc";
+	    break;
+	case FDI_10BPC:
+	    bpc = "10bpc";
+	    break;
+	case FDI_6BPC:
+	    bpc = "6bpc";
+	    break;
+	case FDI_12BPC:
+	    bpc = "12bpc";
+	    break;
+    }
+
+    return XNFprintf("%s, train pattern %s, port width %s, %s,"
+	    "link_reverse_strap_overwrite %s, dmi_link_reverse %s, FDI PLL %s,"
+	    "FS ecc %s, FE ecc %s, FS err report %s, FE err report %s,"
+	    "scrambing %s, enhanced framing %s, %s",
+	    val & FDI_RX_ENABLE ? "enable" : "disable",
+	    train, portw, bpc,
+	    val & FDI_LINK_REVERSE_OVERWRITE ? "yes" : "no",
+	    val & FDI_DMI_LINK_REVERSE_MASK ? "yes" : "no",
+	    val & FDI_RX_PLL_ENABLE ? "enable" : "disable",
+	    val & FDI_FS_ERR_CORRECT_ENABLE ? "enable" : "disable",
+	    val & FDI_FE_ERR_CORRECT_ENABLE ? "enable" : "disable",
+	    val & FDI_FS_ERR_REPORT_ENABLE ? "enable" : "disable",
+	    val & FDI_FE_ERR_REPORT_ENABLE ? "enable" : "disable",
+	    val & (1 << 7) ? "disable" : "enable",
+	    val & FDI_RX_ENHANCE_FRAME_ENABLE ? "enable" : "disable",
+	    val & FDI_SEL_PCDCLK ? "PCDClk" : "RawClk");
+}
+
+DEBUGSTRING(igdng_debug_dspstride)
+{
+    return XNFprintf("%d", val >> 6);
+}
+
+DEBUGSTRING(igdng_debug_pch_dpll)
+{
+    char *enable = val & DPLL_VCO_ENABLE ? "enable" : "disable";
+    char *highspeed = val & DPLL_DVO_HIGH_SPEED ? "yes" : "no";
+    char *mode = NULL;
+    char *p2 = NULL;
+    int fpa0_p1, fpa1_p1;
+    char *refclk = NULL;
+    int sdvo_mul;
+
+    if ((val & DPLLB_MODE_LVDS) == DPLLB_MODE_LVDS) {
+	mode = "LVDS";
+	if (val & DPLLB_LVDS_P2_CLOCK_DIV_7)
+	    p2 = "Div 7";
+	else
+	    p2 = "Div 14";
+    } else if ((val & DPLLB_MODE_LVDS) == DPLLB_MODE_DAC_SERIAL) {
+	mode = "Non-LVDS";
+	if (val & DPLL_DAC_SERIAL_P2_CLOCK_DIV_5)
+	    p2 = "Div 5";
+	else
+	    p2 = "Div 10";
+    }
+    fpa0_p1 = ffs((val & DPLL_FPA01_P1_POST_DIV_MASK) >> 16);
+    fpa1_p1 = ffs((val & DPLL_FPA1_P1_POST_DIV_MASK));
+
+    switch (val & PLL_REF_INPUT_MASK) {
+	case PLL_REF_INPUT_DREFCLK:
+	    refclk = "default 120Mhz";
+	    break;
+	case PLL_REF_INPUT_SUPER_SSC:
+	    refclk = "SuperSSC 120Mhz";
+	    break;
+	case PLL_REF_INPUT_TVCLKINBC:
+	    refclk = "SDVO TVClkIn";
+	    break;
+	case PLLB_REF_INPUT_SPREADSPECTRUMIN:
+	    refclk = "SSC";
+	    break;
+	case PLL_REF_INPUT_DMICLK:
+	    refclk = "DMI RefCLK";
+	    break;
+    }
+
+    sdvo_mul = ((val & PLL_REF_SDVO_HDMI_MULTIPLIER_MASK) >> 9) + 1;
+
+    return XNFprintf("%s, sdvo high speed %s, mode %s, p2 %s, "
+	    "FPA0 P1 %d, FPA1 P1 %d, refclk %s, sdvo/hdmi mul %d",
+	    enable, highspeed, mode, p2, fpa0_p1, fpa1_p1, refclk, sdvo_mul);
+}
+
+DEBUGSTRING(igdng_debug_dref_ctl)
+{
+    char *cpu_source;
+    char *ssc_source = val & DREF_SSC_SOURCE_ENABLE ? "enable" : "disable";
+    char *nonspread_source = val & DREF_NONSPREAD_SOURCE_ENABLE ? "enable":"disable";
+    char *superspread_source = val & DREF_SUPERSPREAD_SOURCE_ENABLE ? "enable":"disable";
+    char *ssc4_mode = val & DREF_SSC4_CENTERSPREAD ? "centerspread" : "downspread";
+    char *ssc1 = val & DREF_SSC1_ENABLE ? "enable" : "disable";
+    char *ssc4 = val & DREF_SSC4_ENABLE ? "enable" : "disable";
+
+    switch (val & DREF_CPU_SOURCE_OUTPUT_NONSPREAD) {
+	case DREF_CPU_SOURCE_OUTPUT_DISABLE:
+	    cpu_source = "disable";
+	    break;
+	case DREF_CPU_SOURCE_OUTPUT_DOWNSPREAD:
+	    cpu_source = "downspread";
+	    break;
+	case DREF_CPU_SOURCE_OUTPUT_NONSPREAD:
+	    cpu_source = "nonspread";
+	    break;
+	default:
+	    cpu_source = "reserved";
+    }
+    return XNFprintf("cpu source %s, ssc_source %s, nonspread_source %s, "
+	    "superspread_source %s, ssc4_mode %s, ssc1 %s, ssc4 %s",
+	    cpu_source, ssc_source, nonspread_source, superspread_source,
+	    ssc4_mode, ssc1, ssc4);
+}
+
+DEBUGSTRING(igdng_debug_rawclk_freq)
+{
+    char *tp1 = NULL, *tp2 = NULL;
+
+    switch (val & FDL_TP1_TIMER_MASK) {
+	case 0:
+	    tp1 = "0.5us";
+	    break;
+	case (1 << 12):
+	    tp1 = "1.0us";
+	    break;
+	case (2 << 12):
+	    tp1 = "2.0us";
+	    break;
+	case (3 << 12):
+	    tp1 = "4.0us";
+	    break;
+    }
+    switch (val & FDL_TP2_TIMER_MASK) {
+	case 0:
+	    tp2 = "1.5us";
+	    break;
+	case (1 << 10):
+	    tp2 = "3.0us";
+	    break;
+	case (2 << 10):
+	    tp2 = "6.0us";
+	    break;
+	case (3 << 10):
+	    tp2 = "12.0us";
+	    break;
+    }
+    return XNFprintf("FDL_TP1 timer %s, FDL_TP2 timer %s, freq %d",
+	    tp1, tp2, val & RAWCLK_FREQ_MASK);
+
+}
+
+DEBUGSTRING(igdng_debug_fdi_rx_misc)
+{
+    return XNFprintf("FDI Delay %d", val & ((1 << 13) - 1));
+}
+
+DEBUGSTRING(igdng_debug_transconf)
+{
+    return XNFprintf("%s, %s",
+	    val & TRANS_ENABLE ? "enable" : "disable",
+	    val & TRANS_STATE_ENABLE ? "active" : "inactive");
+}
+
+DEBUGSTRING(igdng_debug_panel_fitting)
+{
+    char *vadapt = NULL, *filter_sel = NULL;
+
+    switch (val & (3 << 25)) {
+	case 0:
+	    vadapt = "least";
+	    break;
+	case (1<<25):
+	    vadapt = "moderate";
+	    break;
+	case (2<<25):
+	    vadapt = "reserved";
+	    break;
+	case (3<<25):
+	    vadapt = "most";
+	    break;
+    }
+
+    switch (val & (3 << 23)) {
+	case 0:
+	    filter_sel = "programmed";
+	    break;
+	case (1<<25):
+	    filter_sel = "hardcoded";
+	    break;
+	case (2<<25):
+	    filter_sel = "edge_enhance";
+	    break;
+	case (3<<25):
+	    filter_sel = "edge_soften";
+	    break;
+    }
+
+    return XNFprintf("%s, auto_scale %s, auto_scale_cal %s, v_filter %s, vadapt %s, mode %s, filter_sel %s,"
+	    "chroma pre-filter %s, vert3tap %s, v_inter_invert %s",
+	    val & PF_ENABLE ? "enable" : "disable",
+	    val & (1 << 30) ? "no" : "yes",
+	    val & (1 << 29) ? "yes" : "no",
+	    val & (1 << 28) ? "bypass" : "enable",
+	    val & (1 << 27) ? "enable" : "disable",
+	    vadapt, filter_sel,
+	    val & (1 << 22) ? "enable" : "disable",
+	    val & (1 << 21) ? "force" : "auto",
+	    val & (1 << 20) ? "field 0" : "field 1");
+}
+
+static struct i830SnapshotRec igdng_snapshot[] = {
+    DEFINEREG2(CPU_VGACNTRL, i830_debug_vgacntrl),
+    DEFINEREG(DIGITAL_PORT_HOTPLUG_CNTRL),
+
+    DEFINEREG2(RR_HW_CTL, igdng_debug_rr_hw_ctl),
+
+    DEFINEREG(FDI_PLL_BIOS_0),
+    DEFINEREG(FDI_PLL_BIOS_1),
+    DEFINEREG(FDI_PLL_BIOS_2),
+
+    DEFINEREG(DISPLAY_PORT_PLL_BIOS_0),
+    DEFINEREG(DISPLAY_PORT_PLL_BIOS_1),
+    DEFINEREG(DISPLAY_PORT_PLL_BIOS_2),
+
+    DEFINEREG(FDI_PLL_FREQ_CTL),
+
+    DEFINEREG2(PIPEACONF, i830_debug_pipeconf),
+
+    DEFINEREG2(HTOTAL_A, i830_debug_hvtotal),
+    DEFINEREG2(HBLANK_A, i830_debug_hvsyncblank),
+    DEFINEREG2(HSYNC_A, i830_debug_hvsyncblank),
+    DEFINEREG2(VTOTAL_A, i830_debug_hvtotal),
+    DEFINEREG2(VBLANK_A, i830_debug_hvsyncblank),
+    DEFINEREG2(VSYNC_A, i830_debug_hvsyncblank),
+    DEFINEREG(VSYNCSHIFT_A),
+    DEFINEREG2(PIPEASRC, i830_debug_yxminus1),
+
+    DEFINEREG2(PIPEA_DATA_M1, igdng_debug_m_tu),
+    DEFINEREG2(PIPEA_DATA_N1, igdng_debug_n),
+    DEFINEREG2(PIPEA_DATA_M2, igdng_debug_m_tu),
+    DEFINEREG2(PIPEA_DATA_N2, igdng_debug_n),
+
+    DEFINEREG2(PIPEA_LINK_M1, igdng_debug_n),
+    DEFINEREG2(PIPEA_LINK_N1, igdng_debug_n),
+    DEFINEREG2(PIPEA_LINK_M2, igdng_debug_n),
+    DEFINEREG2(PIPEA_LINK_N2, igdng_debug_n),
+
+    DEFINEREG2(DSPACNTR, i830_debug_dspcntr),
+    DEFINEREG(DSPABASE),
+    DEFINEREG2(DSPASTRIDE, igdng_debug_dspstride),
+    DEFINEREG(DSPASURF),
+    DEFINEREG2(DSPATILEOFF, i830_debug_xy),
+
+    DEFINEREG2(PIPEBCONF, i830_debug_pipeconf),
+
+    DEFINEREG2(HTOTAL_B, i830_debug_hvtotal),
+    DEFINEREG2(HBLANK_B, i830_debug_hvsyncblank),
+    DEFINEREG2(HSYNC_B, i830_debug_hvsyncblank),
+    DEFINEREG2(VTOTAL_B, i830_debug_hvtotal),
+    DEFINEREG2(VBLANK_B, i830_debug_hvsyncblank),
+    DEFINEREG2(VSYNC_B, i830_debug_hvsyncblank),
+    DEFINEREG(VSYNCSHIFT_B),
+
+    DEFINEREG2(DSPBCNTR, i830_debug_dspcntr),
+    DEFINEREG(DSPBBASE),
+    DEFINEREG2(DSPBSTRIDE, igdng_debug_dspstride),
+    DEFINEREG(DSPBSURF),
+    DEFINEREG2(DSPBTILEOFF, i830_debug_xy),
+
+    DEFINEREG2(PIPEBSRC, i830_debug_yxminus1),
+
+    DEFINEREG2(PIPEB_DATA_M1, igdng_debug_m_tu),
+    DEFINEREG2(PIPEB_DATA_N1, igdng_debug_n),
+    DEFINEREG2(PIPEB_DATA_M2, igdng_debug_m_tu),
+    DEFINEREG2(PIPEB_DATA_N2, igdng_debug_n),
+
+    DEFINEREG2(PIPEB_LINK_M1, igdng_debug_n),
+    DEFINEREG2(PIPEB_LINK_N1, igdng_debug_n),
+    DEFINEREG2(PIPEB_LINK_M2, igdng_debug_n),
+    DEFINEREG2(PIPEB_LINK_N2, igdng_debug_n),
+
+    DEFINEREG2(PFA_CTRL_1, igdng_debug_panel_fitting),
+    DEFINEREG2(PFB_CTRL_1, igdng_debug_panel_fitting),
+
+    /* PCH */
+
+    DEFINEREG2(PCH_DREF_CONTROL, igdng_debug_dref_ctl),
+    DEFINEREG2(PCH_RAWCLK_FREQ, igdng_debug_rawclk_freq),
+    DEFINEREG(PCH_DPLL_TMR_CFG),
+    DEFINEREG(PCH_SSC4_PARMS),
+    DEFINEREG(PCH_SSC4_AUX_PARMS),
+
+    DEFINEREG2(PCH_DPLL_A, igdng_debug_pch_dpll),
+    DEFINEREG2(PCH_DPLL_B, igdng_debug_pch_dpll),
+    DEFINEREG2(PCH_FPA0, i830_debug_fp),
+    DEFINEREG2(PCH_FPA1, i830_debug_fp),
+    DEFINEREG2(PCH_FPB0, i830_debug_fp),
+    DEFINEREG2(PCH_FPB1, i830_debug_fp),
+
+    DEFINEREG2(TRANS_HTOTAL_A, i830_debug_hvtotal),
+    DEFINEREG2(TRANS_HBLANK_A, i830_debug_hvsyncblank),
+    DEFINEREG2(TRANS_HSYNC_A, i830_debug_hvsyncblank),
+    DEFINEREG2(TRANS_VTOTAL_A, i830_debug_hvtotal),
+    DEFINEREG2(TRANS_VBLANK_A, i830_debug_hvsyncblank),
+    DEFINEREG2(TRANS_VSYNC_A, i830_debug_hvsyncblank),
+
+    DEFINEREG2(TRANSA_DATA_M1, igdng_debug_m_tu),
+    DEFINEREG2(TRANSA_DATA_N1, igdng_debug_n),
+    DEFINEREG2(TRANSA_DATA_M2, igdng_debug_m_tu),
+    DEFINEREG2(TRANSA_DATA_N2, igdng_debug_n),
+    DEFINEREG2(TRANSA_DP_LINK_M1, igdng_debug_n),
+    DEFINEREG2(TRANSA_DP_LINK_N1, igdng_debug_n),
+    DEFINEREG2(TRANSA_DP_LINK_M2, igdng_debug_n),
+    DEFINEREG2(TRANSA_DP_LINK_N2, igdng_debug_n),
+
+    DEFINEREG2(TRANS_HTOTAL_B, i830_debug_hvtotal),
+    DEFINEREG2(TRANS_HBLANK_B, i830_debug_hvsyncblank),
+    DEFINEREG2(TRANS_HSYNC_B, i830_debug_hvsyncblank),
+    DEFINEREG2(TRANS_VTOTAL_B, i830_debug_hvtotal),
+    DEFINEREG2(TRANS_VBLANK_B, i830_debug_hvsyncblank),
+    DEFINEREG2(TRANS_VSYNC_B, i830_debug_hvsyncblank),
+
+    DEFINEREG2(TRANSB_DATA_M1, igdng_debug_m_tu),
+    DEFINEREG2(TRANSB_DATA_N1, igdng_debug_n),
+    DEFINEREG2(TRANSB_DATA_M2, igdng_debug_m_tu),
+    DEFINEREG2(TRANSB_DATA_N2, igdng_debug_n),
+    DEFINEREG2(TRANSB_DP_LINK_M1, igdng_debug_n),
+    DEFINEREG2(TRANSB_DP_LINK_N1, igdng_debug_n),
+    DEFINEREG2(TRANSB_DP_LINK_M2, igdng_debug_n),
+    DEFINEREG2(TRANSB_DP_LINK_N2, igdng_debug_n),
+
+    DEFINEREG2(TRANSACONF, igdng_debug_transconf),
+    DEFINEREG2(TRANSBCONF, igdng_debug_transconf),
+
+    DEFINEREG2(FDI_TXA_CTL, igdng_debug_fdi_tx_ctl),
+    DEFINEREG2(FDI_TXB_CTL, igdng_debug_fdi_tx_ctl),
+    DEFINEREG2(FDI_RXA_CTL, igdng_debug_fdi_rx_ctl),
+    DEFINEREG2(FDI_RXB_CTL, igdng_debug_fdi_rx_ctl),
+
+    DEFINEREG2(FDI_RXA_MISC, igdng_debug_fdi_rx_misc),
+    DEFINEREG2(FDI_RXB_MISC, igdng_debug_fdi_rx_misc),
+    DEFINEREG(FDI_RXA_TUSIZE1),
+    DEFINEREG(FDI_RXA_TUSIZE2),
+    DEFINEREG(FDI_RXB_TUSIZE1),
+    DEFINEREG(FDI_RXB_TUSIZE2),
+
+    DEFINEREG(FDI_PLL_CTL_1),
+    DEFINEREG(FDI_PLL_CTL_2),
+
+    DEFINEREG(FDI_RXA_IIR),
+    DEFINEREG(FDI_RXA_IMR),
+    DEFINEREG(FDI_RXB_IIR),
+    DEFINEREG(FDI_RXB_IMR),
+
+    DEFINEREG2(PCH_ADPA, i830_debug_adpa),
+    DEFINEREG(HDMIB),
+    DEFINEREG(HDMIC),
+    DEFINEREG(HDMID),
+};
+#define NUM_IGDNG_SNAPSHOTREGS (sizeof(igdng_snapshot) / sizeof(igdng_snapshot[0]))
+#undef DEFINEREG
+
 #ifndef REG_DUMPER
 void i830TakeRegSnapshot(ScrnInfoPtr pScrn)
 {
     I830Ptr pI830 = I830PTR(pScrn);
     int i;
 
-    for (i = 0; i < NUM_I830_SNAPSHOTREGS; i++) {
-	i830_snapshot[i].val = INREG(i830_snapshot[i].reg);
+    if (IS_IGDNG(pI830)) {
+	for (i = 0; i < NUM_IGDNG_SNAPSHOTREGS; i++) {
+	    igdng_snapshot[i].val = INREG(igdng_snapshot[i].reg);
+	}
+    } else {
+	for (i = 0; i < NUM_I830_SNAPSHOTREGS; i++) {
+	    i830_snapshot[i].val = INREG(i830_snapshot[i].reg);
+	}
+    }
+}
+
+static void IGDNGCompareRegsToSnapshot(ScrnInfoPtr pScrn, char *where)
+{
+    I830Ptr pI830 = I830PTR(pScrn);
+    int i;
+
+    xf86DrvMsg(pScrn->scrnIndex, X_INFO,
+	       "Comparing regs from server start up to %s\n", where);
+    for (i = 0; i < NUM_IGDNG_SNAPSHOTREGS; i++) {
+	uint32_t val = INREG(igdng_snapshot[i].reg);
+	if (igdng_snapshot[i].val == val)
+	    continue;
+
+	xf86DrvMsg(pScrn->scrnIndex, X_WARNING,
+		   "Register 0x%x (%s) changed from 0x%08x to 0x%08x\n",
+		   igdng_snapshot[i].reg, igdng_snapshot[i].name,
+		   (int)igdng_snapshot[i].val, (int)val);
+
+	if (igdng_snapshot[i].debug_output != NULL) {
+	    char *before, *after;
+
+	    before = igdng_snapshot[i].debug_output(pI830,
+						   igdng_snapshot[i].reg,
+						   igdng_snapshot[i].val);
+	    after = igdng_snapshot[i].debug_output(pI830,
+						  igdng_snapshot[i].reg,
+						  val);
+	    xf86DrvMsg(pScrn->scrnIndex, X_WARNING,
+		       "%s before: %s\n", igdng_snapshot[i].name, before);
+	    xf86DrvMsg(pScrn->scrnIndex, X_WARNING,
+		       "%s after: %s\n", igdng_snapshot[i].name, after);
+
+	}
     }
 }
 
@@ -839,6 +1403,10 @@ void i830CompareRegsToSnapshot(ScrnInfoPtr pScrn, char *where)
     I830Ptr pI830 = I830PTR(pScrn);
     int i;
 
+    if (IS_IGDNG(pI830)) {
+	IGDNGCompareRegsToSnapshot(pScrn, where);
+	return;
+    }
     xf86DrvMsg(pScrn->scrnIndex, X_INFO,
 	       "Comparing regs from server start up to %s\n", where);
     for (i = 0; i < NUM_I830_SNAPSHOTREGS; i++) {
@@ -913,6 +1481,31 @@ static void i830DumpAR(ScrnInfoPtr pScrn)
 }
 #endif
 
+static void IGDNGDumpRegs (ScrnInfoPtr pScrn)
+{
+    I830Ptr pI830 = I830PTR(pScrn);
+    int i;
+
+    xf86DrvMsg (pScrn->scrnIndex, X_INFO, "DumpRegsBegin\n");
+    for (i = 0; i < NUM_IGDNG_SNAPSHOTREGS; i++) {
+	uint32_t val = INREG(igdng_snapshot[i].reg);
+
+	if (igdng_snapshot[i].debug_output != NULL) {
+	    char *debug = igdng_snapshot[i].debug_output(pI830,
+							igdng_snapshot[i].reg,
+							val);
+	    if (debug != NULL) {
+		xf86DrvMsg (pScrn->scrnIndex, X_INFO, "%20.20s: 0x%08x (%s)\n",
+			    igdng_snapshot[i].name, (unsigned int)val, debug);
+		xfree(debug);
+	    }
+	} else {
+	    xf86DrvMsg (pScrn->scrnIndex, X_INFO, "%20.20s: 0x%08x\n",
+			igdng_snapshot[i].name, (unsigned int)val);
+	}
+    }
+}
+
 void i830DumpRegs (ScrnInfoPtr pScrn)
 {
     I830Ptr pI830 = I830PTR(pScrn);
@@ -928,6 +1521,10 @@ void i830DumpRegs (ScrnInfoPtr pScrn)
     int crt;
 #endif
 
+    if (IS_IGDNG(pI830)) {
+	IGDNGDumpRegs(pScrn);
+	return;
+    }
     xf86DrvMsg (pScrn->scrnIndex, X_INFO, "DumpRegsBegin\n");
     for (i = 0; i < NUM_I830_SNAPSHOTREGS; i++) {
 	uint32_t val = INREG(i830_snapshot[i].reg);
commit 0d56ef94be0592aec9aa83e4a5e4ff13348640c2
Author: Zhenyu Wang <zhenyuw at linux.intel.com>
Date:   Fri Jun 5 12:59:07 2009 +0800

    Disable composite on new chipset for now
    
    This depends on updated intel-gen4asm be ready for new chip.
    
    Signed-off-by: Zhenyu Wang <zhenyuw at linux.intel.com>

diff --git a/src/i830_uxa.c b/src/i830_uxa.c
index eb35014..faf4d5d 100644
--- a/src/i830_uxa.c
+++ b/src/i830_uxa.c
@@ -722,6 +722,14 @@ i830_uxa_init (ScreenPtr pScreen)
  	i830->uxa_driver->done_composite = i830_done_composite;
     }
 
+    /* FIXME */
+    if (IS_IGDNG(i830)) {
+	i830->uxa_driver->check_composite = NULL;
+	i830->uxa_driver->prepare_composite = NULL;
+	i830->uxa_driver->composite = NULL;
+	i830->uxa_driver->done_composite = NULL;
+    }
+
     i830->uxa_driver->prepare_access = i830_uxa_prepare_access;
     i830->uxa_driver->finish_access = i830_uxa_finish_access;
     i830->uxa_driver->pixmap_is_offscreen = i830_uxa_pixmap_is_offscreen;
commit 440ccc44f51d3a5d6f46c28cfcc576cad155fbbc
Author: Zhenyu Wang <zhenyuw at linux.intel.com>
Date:   Fri Jun 5 12:56:04 2009 +0800

    Add new register definitions
    
    Signed-off-by: Zhenyu Wang <zhenyuw at linux.intel.com>

diff --git a/src/i810_reg.h b/src/i810_reg.h
index db542aa..ae1933d 100644
--- a/src/i810_reg.h
+++ b/src/i810_reg.h
@@ -982,13 +982,18 @@ SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 # define DPLL_FPA01_P1_POST_DIV_MASK_I830_LVDS	0x003f0000
 # define DPLL_FPA01_P1_POST_DIV_SHIFT		16
 # define DPLL_FPA01_P1_POST_DIV_SHIFT_IGD	15
+/* IGDNG */
+# define DPLL_FPA0_P1_POST_DIV_SHIFT		16
+
 # define PLL_P2_DIVIDE_BY_4			(1 << 23) /* i830, required in DVO non-gang */
 # define PLL_P1_DIVIDE_BY_TWO			(1 << 21) /* i830 */
 # define PLL_REF_INPUT_DREFCLK			(0 << 13)
 # define PLL_REF_INPUT_TVCLKINA			(1 << 13) /* i830 */
+# define PLL_REF_INPUT_SUPER_SSC		(1 << 13) /* IGDNG: 120M SSC */
 # define PLL_REF_INPUT_TVCLKINBC		(2 << 13) /* SDVO TVCLKIN */
 # define PLLB_REF_INPUT_SPREADSPECTRUMIN	(3 << 13)
 # define PLL_REF_INPUT_MASK			(3 << 13)
+# define PLL_REF_INPUT_DMICLK			(5 << 13) /* IGDNG: DMI refclk */
 # define PLL_LOAD_PULSE_PHASE_SHIFT		9
 /*
  * Parallel to Serial Load Pulse phase selection.
@@ -998,6 +1003,12 @@ SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
  */
 # define PLL_LOAD_PULSE_PHASE_MASK		(0xf << PLL_LOAD_PULSE_PHASE_SHIFT)
 # define DISPLAY_RATE_SELECT_FPA1		(1 << 8)
+/* IGDNG */
+# define PLL_REF_SDVO_HDMI_MULTIPLIER_SHIFT	9
+# define PLL_REF_SDVO_HDMI_MULTIPLIER_MASK	(7 << 9)
+# define PLL_REF_SDVO_HDMI_MULTIPLIER(x)	(((x)-1)<< PLL_REF_SDVO_HDMI_MULTIPLIER_SHIFT)
+# define DPLL_FPA1_P1_POST_DIV_SHIFT		0
+# define DPLL_FPA1_P1_POST_DIV_MASK		0xff
 
 /**
  * SDVO multiplier for 945G/GM. Not used on 965.
@@ -2146,10 +2157,33 @@ SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 #define PIPEACONF_PIPE_LOCKED	(1<<25)
 #define PIPEACONF_PALETTE	0
 #define PIPEACONF_GAMMA 	(1<<24)
+/* IGDNG: gamma */
+#define PIPECONF_PALETTE_8BIT	(0<<24)
+#define PIPECONF_PALETTE_10BIT	(1<<24)
+#define PIPECONF_PALETTE_12BIT	(2<<24)
 #define PIPECONF_FORCE_BORDER	(1<<25)
 #define PIPECONF_PROGRESSIVE	(0 << 21)
 #define PIPECONF_INTERLACE_W_FIELD_INDICATION	(6 << 21)
 #define PIPECONF_INTERLACE_FIELD_0_ONLY		(7 << 21)
+/* IGDNG */
+#define PIPECONF_MSA_TIMING_DELAY	(0<<18) /* for eDP */
+#define PIPECONF_NO_DYNAMIC_RATE_CHANGE	(0 << 16)
+#define PIPECONF_NO_ROTATION		(0<<14)
+#define PIPECONF_FULL_COLOR_RANGE	(0<<13)
+#define PIPECONF_CE_COLOR_RANGE		(1<<13)
+#define PIPECONF_COLOR_SPACE_RGB	(0<<11)
+#define PIPECONF_COLOR_SPACE_YUV601	(1<<11)
+#define PIPECONF_COLOR_SPACE_YUV709	(2<<11)
+#define PIPECONF_CONNECT_DEFAULT	(0<<9)
+#define PIPECONF_8BPP			(0<<5)
+#define PIPECONF_10BPP			(1<<5)
+#define PIPECONF_6BPP			(2<<5)
+#define PIPECONF_12BPP			(3<<5)
+#define PIPECONF_ENABLE_DITHER		(1<<4)
+#define PIPECONF_DITHER_SPATIAL		(0<<2)
+#define PIPECONF_DITHER_ST1		(1<<2)
+#define PIPECONF_DITHER_ST2		(2<<2)
+#define PIPECONF_DITHER_TEMPORAL	(3<<2)
 
 #define PIPEAGCMAXRED		0x70010
 #define PIPEAGCMAXGREEN		0x70014
@@ -2285,13 +2319,23 @@ SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 #define DISPPLANE_8BPP				(0x2<<26)
 #define DISPPLANE_15_16BPP			(0x4<<26)
 #define DISPPLANE_16BPP				(0x5<<26)
-#define DISPPLANE_32BPP_NO_ALPHA 		(0x6<<26)
-#define DISPPLANE_32BPP				(0x7<<26)
+#define DISPPLANE_32BPP_NO_ALPHA 		(0x6<<26) /* IGDNG: BGRX */
+#define DISPPLANE_32BPP				(0x7<<26) /* IGDNG: not support */
+/* IGDNG */
+#define DISPPLANE_32BPP_10			(0x8<<26) /* 2:10:10:10 */
+#define DISPPLANE_32BPP_BGRX			(0xa<<26)
+#define DISPPLANE_64BPP				(0xc<<26)
+#define DISPPLANE_32BPP_RGBX			(0xe<<26)
 #define DISPPLANE_STEREO_ENABLE			(1<<25)
 #define DISPPLANE_STEREO_DISABLE		0
 #define DISPPLANE_SEL_PIPE_MASK			(1<<24)
-#define DISPPLANE_SEL_PIPE_A			0
+#define DISPPLANE_SEL_PIPE_A			0	/* IGDNG: don't use */
 #define DISPPLANE_SEL_PIPE_B			(1<<24)
+#define DISPPLANE_NORMAL_RANGE			(0<<25)
+#define DISPPLANE_EXT_RANGE			(1<<25)
+/* IGDNG */
+#define DISPPLANE_CSC_BYPASS			(0<<24)
+#define DISPPLANE_CSC_PASSTHROUGH		(1<<24)
 #define DISPPLANE_SRC_KEY_ENABLE		(1<<22)
 #define DISPPLANE_SRC_KEY_DISABLE		0
 #define DISPPLANE_LINE_DOUBLE			(1<<20)
@@ -2303,11 +2347,18 @@ SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 #define DISPPLANE_ALPHA_TRANS_DISABLE		0
 #define DISPPLANE_SPRITE_ABOVE_DISPLAYA		0
 #define DISPPLANE_SPRITE_ABOVE_OVERLAY		(1)
+/* IGDNG */
+#define DISPPLANE_X_TILE			(1<<10)
+#define DISPPLANE_LINEAR			(0<<10)
 
 #define DSPABASE		0x70184
+/* IGDNG */
+#define DSPALINOFF		0x70184
 #define DSPASTRIDE		0x70188
 
 #define DSPBBASE		0x71184
+/* IGDNG */
+#define DSPBLINOFF		0x71184
 #define DSPBADDR		DSPBBASE
 #define DSPBSTRIDE		0x71188
 
@@ -2919,4 +2970,439 @@ typedef enum {
 #define MCHBAR_RENDER_STANDBY	0x111B8
 #define RENDER_STANDBY_ENABLE	(1 << 30)
 
+/* IGDNG */
+
+/* warmup time in us */
+#define WARMUP_PCH_REF_CLK_SSC_MOD	1
+#define WARMUP_PCH_FDI_RECEIVER_PLL	25
+#define WARMUP_PCH_DPLL			50
+#define WARMUP_CPU_DP_PLL		20
+#define WARMUP_CPU_FDI_TRANSMITTER_PLL	10
+#define WARMUP_DMI_LATENCY		20
+#define FDI_TRAIN_PATTERN_1_TIME	0.5
+#define FDI_TRAIN_PATTERN_2_TIME	1.5
+#define FDI_ONE_IDLE_PATTERN_TIME	31
+
+#define CPU_VGACNTRL		0x41000
+
+#define DIGITAL_PORT_HOTPLUG_CNTRL	0x44030
+#define  DIGITAL_PORTA_HOTPLUG_ENABLE		(1 << 4)
+#define  DIGITAL_PORTA_SHORT_PULSE_2MS		(0 << 2)
+#define  DIGITAL_PORTA_SHORT_PULSE_4_5MS	(1 << 2)
+#define  DIGITAL_PORTA_SHORT_PULSE_6MS		(2 << 2)
+#define  DIGITAL_PORTA_SHORT_PULSE_100MS	(3 << 2)
+#define  DIGITAL_PORTA_NO_DETECT		(0 << 0)
+#define  DIGITAL_PORTA_LONG_PULSE_DETECT_MASK	(1 << 1)
+#define  DIGITAL_PORTA_SHORT_PULSE_DETECT_MASK	(1 << 0)
+
+/* refresh rate hardware control */
+#define RR_HW_CTL	0x45300
+#define  RR_HW_LOW_POWER_FRAMES_MASK	0xff
+#define  RR_HW_HIGH_POWER_FRAMES_MASK	0xff00
+
+#define FDI_PLL_BIOS_0			0x46000
+#define FDI_PLL_BIOS_1			0x46004
+#define FDI_PLL_BIOS_2			0x46008
+#define DISPLAY_PORT_PLL_BIOS_0		0x4600c
+#define DISPLAY_PORT_PLL_BIOS_1		0x46010
+#define DISPLAY_PORT_PLL_BIOS_2		0x46014
+
+#define FDI_PLL_FREQ_CTL	0x46030
+#define  FDI_PLL_FREQ_CHANGE_REQUEST	(1<<24)
+#define  FDI_PLL_FREQ_LOCK_LIMIT_MASK	0xfff00
+#define  FDI_PLL_FREQ_DISABLE_COUNT_LIMIT_MASK	0xff
+
+#define PIPEA_DATA_M1		0x60030
+#define  TU_SIZE(x)		(((x)-1) << 25) /* default size 64 */
+#define  TU_SIZE_MASK		0x7e000000
+#define  PIPEA_DATA_M1_OFFSET	0
+#define PIPEA_DATA_N1		0x60034
+#define  PIPEA_DATA_N1_OFFSET	0
+
+#define PIPEA_DATA_M2		0x60038
+#define  PIPEA_DATA_M2_OFFSET	0
+#define PIPEA_DATA_N2		0x6003c
+#define  PIPEA_DATA_N2_OFFSET	0
+
+#define PIPEA_LINK_M1		0x60040
+#define  PIPEA_LINK_M1_OFFSET	0
+#define PIPEA_LINK_N1		0x60044
+#define  PIPEA_LINK_N1_OFFSET	0
+
+#define PIPEA_LINK_M2		0x60048
+#define  PIPEA_LINK_M2_OFFSET	0
+#define PIPEA_LINK_N2		0x6004c
+#define  PIPEA_LINK_N2_OFFSET	0
+
+/* PIPEB timing regs are same start from 0x61000 */
+
+#define PIPEB_DATA_M1		0x61030
+#define  PIPEB_DATA_M1_OFFSET	0
+#define PIPEB_DATA_N1		0x61034
+#define  PIPEB_DATA_N1_OFFSET	0
+
+#define PIPEB_DATA_M2		0x61038
+#define  PIPEB_DATA_M2_OFFSET	0
+#define PIPEB_DATA_N2		0x6103c
+#define  PIPEB_DATA_N2_OFFSET	0
+
+#define PIPEB_LINK_M1		0x61040
+#define  PIPEB_LINK_M1_OFFSET	0
+#define PIPEB_LINK_N1		0x61044
+#define  PIPEB_LINK_N1_OFFSET	0
+
+#define PIPEB_LINK_M2		0x61048
+#define  PIPEB_LINK_M2_OFFSET	0
+#define PIPEB_LINK_N2		0x6104c
+#define  PIPEB_LINK_N2_OFFSET	0
+
+/* PIPECONF for pipe A/B addr is same */
+
+/* cusor A is only connected to pipe A,
+   cursor B is connected to pipe B. Otherwise no change. */
+
+/* Plane A/B, DSPACNTR/DSPBCNTR addr not changed */
+
+/* CPU panel fitter */
+#define PFA_CTL_1		0x68080
+#define PFB_CTL_1		0x68880
+#define  PF_ENABLE		(1<<31)
+
+/* CPU panel fitter */
+#define PFA_CTRL_1		0x68080
+#define PFB_CTRL_1		0x68880
+
+/* legacy palette */
+#define LGC_PALETTE_A		0x4a000
+#define LGC_PALETTE_B		0x4a800
+
+/* interrupts */
+#define DE_MASTER_IRQ_CONTROL	(1 << 31)
+#define DE_SPRITEB_FLIP_DONE	(1 << 29)
+#define DE_SPRITEA_FLIP_DONE	(1 << 28)
+#define DE_PLANEB_FLIP_DONE	(1 << 27)
+#define DE_PLANEA_FLIP_DONE	(1 << 26)
+#define DE_PCU_EVENT		(1 << 25)
+#define DE_GTT_FAULT		(1 << 24)
+#define DE_POISON		(1 << 23)
+#define DE_PERFORM_COUNTER	(1 << 22)
+#define DE_PCH_EVENT		(1 << 21)
+#define DE_AUX_CHANNEL_A	(1 << 20)
+#define DE_DP_A_HOTPLUG		(1 << 19)
+#define DE_GSE			(1 << 18)
+#define DE_PIPEB_VBLANK		(1 << 15)
+#define DE_PIPEB_EVEN_FIELD	(1 << 14)
+#define DE_PIPEB_ODD_FIELD	(1 << 13)
+#define DE_PIPEB_LINE_COMPARE	(1 << 12)
+#define DE_PIPEB_VSYNC		(1 << 11)
+#define DE_PIPEB_FIFO_UNDERRUN	(1 << 8)
+#define DE_PIPEA_VBLANK		(1 << 7)
+#define DE_PIPEA_EVEN_FIELD	(1 << 6)
+#define DE_PIPEA_ODD_FIELD	(1 << 5)
+#define DE_PIPEA_LINE_COMPARE	(1 << 4)
+#define DE_PIPEA_VSYNC		(1 << 3)
+#define DE_PIPEA_FIFO_UNDERRUN	(1 << 0)
+
+#define DEISR	0x44000
+#define DEIMR	0x44004
+#define DEIIR	0x44008
+#define DEIER	0x4400c
+
+/* GT interrupt */
+#define GT_SYNC_STATUS		(1 << 2)
+#define GT_USER_INTERRUPT	(1 << 0)
+
+#define GTISR	0x44010
+#define GTIMR	0x44014
+#define GTIIR	0x44018
+#define GTIER	0x4401c
+
+/* PCH */
+
+/* south display engine interrupt */
+#define SDE_CRT_HOTPLUG		(1 << 11)
+#define SDE_PORTD_HOTPLUG	(1 << 10)
+#define SDE_PORTC_HOTPLUG	(1 << 9)
+#define SDE_PORTB_HOTPLUG	(1 << 8)
+#define SDE_SDVOB_HOTPLUG	(1 << 6)
+
+#define SDEISR	0xc4000
+#define SDEIMR	0xc4004
+#define SDEIIR	0xc4008
+#define SDEIER	0xc400c
+
+/* digital port hotplug */
+#define PCH_PORT_HOTPLUG	0xc4030
+#define PORTD_HOTPLUG_ENABLE		(1 << 20)
+#define PORTD_PULSE_DURATION_2ms	(0)
+#define PORTD_PULSE_DURATION_4_5ms	(1 << 18)
+#define PORTD_PULSE_DURATION_6ms	(2 << 18)
+#define PORTD_PULSE_DURATION_100ms	(3 << 18)
+#define PORTD_HOTPLUG_NO_DETECT		(0)
+#define PORTD_HOTPLUG_SHORT_DETECT	(1 << 16)
+#define PORTD_HOTPLUG_LONG_DETECT	(1 << 17)
+#define PORTC_HOTPLUG_ENABLE		(1 << 12)
+#define PORTC_PULSE_DURATION_2ms	(0)
+#define PORTC_PULSE_DURATION_4_5ms	(1 << 10)
+#define PORTC_PULSE_DURATION_6ms	(2 << 10)
+#define PORTC_PULSE_DURATION_100ms	(3 << 10)
+#define PORTC_HOTPLUG_NO_DETECT		(0)
+#define PORTC_HOTPLUG_SHORT_DETECT	(1 << 8)
+#define PORTC_HOTPLUG_LONG_DETECT	(1 << 9)
+#define PORTB_HOTPLUG_ENABLE		(1 << 4)
+#define PORTB_PULSE_DURATION_2ms	(0)
+#define PORTB_PULSE_DURATION_4_5ms	(1 << 2)
+#define PORTB_PULSE_DURATION_6ms	(2 << 2)
+#define PORTB_PULSE_DURATION_100ms	(3 << 2)
+#define PORTB_HOTPLUG_NO_DETECT		(0)
+#define PORTB_HOTPLUG_SHORT_DETECT	(1 << 0)
+#define PORTB_HOTPLUG_LONG_DETECT	(1 << 1)
+
+#define PCH_GPIOA		0xc5010
+#define PCH_GPIOB		0xc5014
+#define PCH_GPIOC		0xc5018
+#define PCH_GPIOD		0xc501c
+#define PCH_GPIOE		0xc5020
+#define PCH_GPIOF		0xc5024
+#define PCH_GMBUS0		0xc5100
+#define PCH_GMBUS1		0xc5104
+#define PCH_GMBUS2		0xc5108
+#define PCH_GMBUS3		0xc510c
+#define PCH_GMBUS4		0xc5110
+#define PCH_GMBUS5		0xc5120
+
+#define PCH_DPLL_A		0xc6014
+#define PCH_DPLL_B		0xc6018
+
+#define PCH_FPA0		0xc6040
+#define PCH_FPA1		0xc6044
+#define PCH_FPB0		0xc6048
+#define PCH_FPB1		0xc604c
+
+#define PCH_DPLL_TEST		0xc606c
+
+#define PCH_DREF_CONTROL	0xC6200
+#define  DREF_CONTROL_MASK	0x7fc3
+#define  DREF_CPU_SOURCE_OUTPUT_DISABLE		(0<<13)
+#define  DREF_CPU_SOURCE_OUTPUT_DOWNSPREAD	(2<<13)
+#define  DREF_CPU_SOURCE_OUTPUT_NONSPREAD	(3<<13)
+#define  DREF_SSC_SOURCE_DISABLE		(0<<11)
+#define  DREF_SSC_SOURCE_ENABLE			(2<<11)
+#define  DREF_NONSPREAD_SOURCE_DISABLE		(0<<9)
+#define  DREF_NONSPREAD_SOURCE_ENABLE		(2<<9)
+#define  DREF_SUPERSPREAD_SOURCE_DISABLE	(0<<7)
+#define  DREF_SUPERSPREAD_SOURCE_ENABLE		(2<<7)
+#define  DREF_SSC4_DOWNSPREAD			(0<<6)
+#define  DREF_SSC4_CENTERSPREAD			(1<<6)
+#define  DREF_SSC1_DISABLE			(0<<1)
+#define  DREF_SSC1_ENABLE			(1<<1)
+#define  DREF_SSC4_DISABLE			(0)
+#define  DREF_SSC4_ENABLE			(1)
+
+#define PCH_RAWCLK_FREQ		0xc6204
+#define  FDL_TP1_TIMER_SHIFT	12
+#define  FDL_TP1_TIMER_MASK	(3<<12)
+#define  FDL_TP2_TIMER_SHIFT	10
+#define  FDL_TP2_TIMER_MASK	(3<<10)
+#define  RAWCLK_FREQ_MASK	0x3ff
+
+#define PCH_DPLL_TMR_CFG	0xc6208
+
+#define PCH_SSC4_PARMS		0xc6210
+#define PCH_SSC4_AUX_PARMS	0xc6214
+
+/* transcoder */
+
+#define TRANS_HTOTAL_A		0xe0000
+#define  TRANS_HTOTAL_SHIFT	16
+#define  TRANS_HACTIVE_SHIFT	0
+#define TRANS_HBLANK_A		0xe0004
+#define  TRANS_HBLANK_END_SHIFT	16
+#define  TRANS_HBLANK_START_SHIFT 0
+#define TRANS_HSYNC_A		0xe0008
+#define  TRANS_HSYNC_END_SHIFT	16
+#define  TRANS_HSYNC_START_SHIFT 0
+#define TRANS_VTOTAL_A		0xe000c
+#define  TRANS_VTOTAL_SHIFT	16
+#define  TRANS_VACTIVE_SHIFT	0
+#define TRANS_VBLANK_A		0xe0010
+#define  TRANS_VBLANK_END_SHIFT	16
+#define  TRANS_VBLANK_START_SHIFT 0
+#define TRANS_VSYNC_A		0xe0014
+#define  TRANS_VSYNC_END_SHIFT	16
+#define  TRANS_VSYNC_START_SHIFT 0
+
+#define TRANSA_DATA_M1		0xe0030
+#define TRANSA_DATA_N1		0xe0034
+#define TRANSA_DATA_M2		0xe0038
+#define TRANSA_DATA_N2		0xe003c
+#define TRANSA_DP_LINK_M1	0xe0040
+#define TRANSA_DP_LINK_N1	0xe0044
+#define TRANSA_DP_LINK_M2	0xe0048
+#define TRANSA_DP_LINK_N2	0xe004c
+
+#define TRANS_HTOTAL_B		0xe1000
+#define TRANS_HBLANK_B		0xe1004
+#define TRANS_HSYNC_B		0xe1008
+#define TRANS_VTOTAL_B		0xe100c
+#define TRANS_VBLANK_B		0xe1010
+#define TRANS_VSYNC_B		0xe1014
+
+#define TRANSB_DATA_M1		0xe1030
+#define TRANSB_DATA_N1		0xe1034
+#define TRANSB_DATA_M2		0xe1038
+#define TRANSB_DATA_N2		0xe103c
+#define TRANSB_DP_LINK_M1	0xe1040
+#define TRANSB_DP_LINK_N1	0xe1044
+#define TRANSB_DP_LINK_M2	0xe1048
+#define TRANSB_DP_LINK_N2	0xe104c
+
+#define TRANSACONF		0xf0008
+#define TRANSBCONF		0xf1008
+#define  TRANS_DISABLE		(0<<31)
+#define  TRANS_ENABLE		(1<<31)
+#define  TRANS_STATE_MASK	(1<<30)
+#define  TRANS_STATE_DISABLE	(0<<30)
+#define  TRANS_STATE_ENABLE	(1<<30)
+#define  TRANS_FSYNC_DELAY_HB1	(0<<27)
+#define  TRANS_FSYNC_DELAY_HB2	(1<<27)
+#define  TRANS_FSYNC_DELAY_HB3	(2<<27)
+#define  TRANS_FSYNC_DELAY_HB4	(3<<27)
+#define  TRANS_DP_AUDIO_ONLY	(1<<26)
+#define  TRANS_DP_VIDEO_AUDIO	(0<<26)
+#define  TRANS_PROGRESSIVE	(0<<21)
+#define  TRANS_8BPC		(0<<5)
+#define  TRANS_10BPC		(1<<5)
+#define  TRANS_6BPC		(2<<5)
+#define  TRANS_12BPC		(3<<5)
+
+#define FDI_RXA_CHICKEN		0xc200c
+#define FDI_RXB_CHICKEN		0xc2010
+#define  FDI_RX_PHASE_SYNC_POINTER_ENABLE	(1)
+
+/* CPU: FDI_TX */
+#define FDI_TXA_CTL		0x60100
+#define FDI_TXB_CTL		0x61100
+#define  FDI_TX_DISABLE		(0<<31)
+#define  FDI_TX_ENABLE		(1<<31)
+#define  FDI_LINK_TRAIN_PATTERN_1	(0<<28)
+#define  FDI_LINK_TRAIN_PATTERN_2	(1<<28)
+#define  FDI_LINK_TRAIN_PATTERN_IDLE	(2<<28)
+#define  FDI_LINK_TRAIN_NONE		(3<<28)
+#define  FDI_LINK_TRAIN_VOLTAGE_0_4V	(0<<25)
+#define  FDI_LINK_TRAIN_VOLTAGE_0_6V	(1<<25)
+#define  FDI_LINK_TRAIN_VOLTAGE_0_8V	(2<<25)
+#define  FDI_LINK_TRAIN_VOLTAGE_1_2V	(3<<25)
+#define  FDI_LINK_TRAIN_PRE_EMPHASIS_NONE (0<<22)
+#define  FDI_LINK_TRAIN_PRE_EMPHASIS_1_5X (1<<22)
+#define  FDI_LINK_TRAIN_PRE_EMPHASIS_2X	  (2<<22)
+#define  FDI_LINK_TRAIN_PRE_EMPHASIS_3X	  (3<<22)
+#define  FDI_DP_PORT_WIDTH_X1		(0<<19)
+#define  FDI_DP_PORT_WIDTH_X2		(1<<19)
+#define  FDI_DP_PORT_WIDTH_X3		(2<<19)
+#define  FDI_DP_PORT_WIDTH_X4		(3<<19)
+#define  FDI_TX_ENHANCE_FRAME_ENABLE	(1<<18)
+/* IGDNG: hardwired to 1 */
+#define  FDI_TX_PLL_ENABLE		(1<<14)
+/* both Tx and Rx */
+#define  FDI_SCRAMBLING_ENABLE		(0<<7)
+#define  FDI_SCRAMBLING_DISABLE		(1<<7)
+
+/* FDI_RX, FDI_X is hard-wired to Transcoder_X */
+#define FDI_RXA_CTL		0xf000c
+#define FDI_RXB_CTL		0xf100c
+#define  FDI_RX_ENABLE		(1<<31)
+#define  FDI_RX_DISABLE		(0<<31)
+/* train, dp width same as FDI_TX */
+#define  FDI_DP_PORT_WIDTH_X8		(7<<19)
+#define  FDI_8BPC			(0<<16)
+#define  FDI_10BPC			(1<<16)
+#define  FDI_6BPC			(2<<16)
+#define  FDI_12BPC			(3<<16)
+#define  FDI_LINK_REVERSE_OVERWRITE	(1<<15)
+#define  FDI_DMI_LINK_REVERSE_MASK	(1<<14)
+#define  FDI_RX_PLL_ENABLE		(1<<13)
+#define  FDI_FS_ERR_CORRECT_ENABLE	(1<<11)
+#define  FDI_FE_ERR_CORRECT_ENABLE	(1<<10)
+#define  FDI_FS_ERR_REPORT_ENABLE	(1<<9)
+#define  FDI_FE_ERR_REPORT_ENABLE	(1<<8)
+#define  FDI_RX_ENHANCE_FRAME_ENABLE	(1<<6)
+#define  FDI_SEL_RAWCLK			(0<<4)
+#define  FDI_SEL_PCDCLK			(1<<4)
+
+#define FDI_RXA_MISC		0xf0010
+#define FDI_RXB_MISC		0xf1010
+#define FDI_RXA_TUSIZE1		0xf0030
+#define FDI_RXA_TUSIZE2		0xf0038
+#define FDI_RXB_TUSIZE1		0xf1030
+#define FDI_RXB_TUSIZE2		0xf1038
+
+/* FDI_RX interrupt register format */
+#define FDI_RX_INTER_LANE_ALIGN		(1<<10)
+#define FDI_RX_SYMBOL_LOCK		(1<<9) /* train 2 */
+#define FDI_RX_BIT_LOCK			(1<<8) /* train 1 */
+#define FDI_RX_TRAIN_PATTERN_2_FAIL	(1<<7)
+#define FDI_RX_FS_CODE_ERR		(1<<6)
+#define FDI_RX_FE_CODE_ERR		(1<<5)
+#define FDI_RX_SYMBOL_ERR_RATE_ABOVE	(1<<4)
+#define FDI_RX_HDCP_LINK_FAIL		(1<<3)
+#define FDI_RX_PIXEL_FIFO_OVERFLOW	(1<<2)
+#define FDI_RX_CROSS_CLOCK_OVERFLOW	(1<<1)
+#define FDI_RX_SYMBOL_QUEUE_OVERFLOW	(1<<0)
+
+#define FDI_RXA_IIR		0xf0014
+#define FDI_RXA_IMR		0xf0018
+#define FDI_RXB_IIR		0xf1014
+#define FDI_RXB_IMR		0xf1018
+
+#define FDI_PLL_CTL_1		0xfe000
+#define FDI_PLL_CTL_2		0xfe004
+
+/* CRT */
+#define PCH_ADPA		0xe1100
+#define  ADPA_TRANS_SELECT_MASK	(1<<30)
+#define  ADPA_TRANS_A_SELECT	0
+#define  ADPA_TRANS_B_SELECT	(1<<30)
+/* HPD is here */
+#define  ADPA_CRT_HOTPLUG_MASK	0x03ff0000 /* bit 25-16 */
+#define	 ADPA_CRT_HOTPLUG_MONITOR_NONE	(0<<24)
+#define  ADPA_CRT_HOTPLUG_MONITOR_MASK	(3<<24)
+#define  ADPA_CRT_HOTPLUG_MONITOR_COLOR	(3<<24)
+#define  ADPA_CRT_HOTPLUG_MONITOR_MONO	(2<<24)
+#define  ADPA_CRT_HOTPLUG_ENABLE	(1<<23)
+#define  ADPA_CRT_HOTPLUG_PERIOD_64	(0<<22)
+#define  ADPA_CRT_HOTPLUG_PERIOD_128	(1<<22)
+#define  ADPA_CRT_HOTPLUG_WARMUP_5MS	(0<<21)
+#define  ADPA_CRT_HOTPLUG_WARMUP_10MS	(1<<21)
+#define  ADPA_CRT_HOTPLUG_SAMPLE_2S	(0<<20)
+#define  ADPA_CRT_HOTPLUG_SAMPLE_4S	(1<<20)
+#define  ADPA_CRT_HOTPLUG_VOLTAGE_40	(0<<18)
+#define  ADPA_CRT_HOTPLUG_VOLTAGE_50	(1<<18)
+#define  ADPA_CRT_HOTPLUG_VOLTAGE_60	(2<<18)
+#define  ADPA_CRT_HOTPLUG_VOLTAGE_70	(3<<18)
+#define  ADPA_CRT_HOTPLUG_VOLREF_325MV	(0<<17)
+#define  ADPA_CRT_HOTPLUG_VOLREF_475MV	(1<<17)
+#define  ADPA_CRT_HOTPLUG_FORCE_TRIGGER	(1<<16)
+/* polarity control not changed */
+
+/* or SDVOB */
+#define HDMIB	0xe1140
+#define  PORT_ENABLE	(1 << 31)
+#define  TRANSCODER_A	(0)
+#define  TRANSCODER_B	(1 << 30)
+#define  COLOR_FORMAT_8bpc	(0)
+#define  COLOR_FORMAT_12bpc	(3 << 26)
+#define  SDVOB_HOTPLUG_ENABLE	(1 << 23)
+#define  SDVO_ENCODING		(0)
+#define  TMDS_ENCODING		(2 << 10)
+#define  NULL_PACKET_VSYNC_ENABLE	(1 << 9)
+#define  SDVOB_BORDER_ENABLE	(1 << 7)
+#define  AUDIO_ENABLE		(1 << 6)
+#define  VSYNC_ACTIVE_HIGH	(1 << 4)
+#define  HSYNC_ACTIVE_HIGH	(1 << 3)
+#define  PORT_DETECTED		(1 << 2)
+
+#define HDMIC	0xe1150
+#define HDMID	0xe1160
+
 #endif /* _I810_REG_H */
commit 0d8a9e2c6f58115b9b8449de52e795699ed032af
Author: Zhenyu Wang <zhenyuw at linux.intel.com>
Date:   Fri Jun 5 12:51:51 2009 +0800

    Update intel_gtt utility for new chipset GTT check
    
    Signed-off-by: Zhenyu Wang <zhenyuw at linux.intel.com>

diff --git a/src/reg_dumper/gtt.c b/src/reg_dumper/gtt.c
index 4a46f11..c331601 100644
--- a/src/reg_dumper/gtt.c
+++ b/src/reg_dumper/gtt.c
@@ -52,7 +52,7 @@ int main(int argc, char **argv)
 		exit(1);
 	}
 
-	if (IS_G4X(pI830))
+	if (IS_G4X(pI830) || IS_IGDNG(pI830))
 		gtt = (unsigned char *)(pI830->mmio + MB(2));
 	else if (IS_I965G(pI830))
 		gtt = (unsigned char *)(pI830->mmio + KB(512));
commit fb524caa3e2f1f516717669642bb4b2244f9e7e4
Author: Zhenyu Wang <zhenyuw at linux.intel.com>
Date:   Mon Jun 8 10:22:14 2009 +0800

    Remove fixed MMIO size
    
    Use pci resource size instead, which will get the correct MMIO range.
    New chipset uses obviously larger MMIO range.
    
    Signed-off-by: Zhenyu Wang <zhenyuw at linux.intel.com>

diff --git a/src/i830.h b/src/i830.h
index c0e7dcd..a69f47c 100644
--- a/src/i830.h
+++ b/src/i830.h
@@ -415,6 +415,7 @@ typedef struct _I830Rec {
    int Chipset;
    unsigned long LinearAddr;
    unsigned long MMIOAddr;
+   unsigned int MMIOSize;
    IOADDRESS ioBase;
    EntityInfoPtr pEnt;
    struct pci_device *PciInfo;
diff --git a/src/i830_driver.c b/src/i830_driver.c
index 8400872..9d38fba 100644
--- a/src/i830_driver.c
+++ b/src/i830_driver.c
@@ -425,7 +425,7 @@ I830MapMMIO(ScrnInfoPtr pScrn)
    device = pI830->PciInfo;
    err = pci_device_map_range (device,
 			       pI830->MMIOAddr,
-			       I810_REG_SIZE,
+			       pI830->MMIOSize,
 			       PCI_DEV_MAP_FLAG_WRITABLE,
 			       (void **) &pI830->MMIOBase);
    if (err) 
@@ -508,7 +508,7 @@ I830UnmapMMIO(ScrnInfoPtr pScrn)
 {
    I830Ptr pI830 = I830PTR(pScrn);
 
-   pci_device_unmap_range (pI830->PciInfo, pI830->MMIOBase, I810_REG_SIZE);
+   pci_device_unmap_range (pI830->PciInfo, pI830->MMIOBase, pI830->MMIOSize);
    pI830->MMIOBase = NULL;
 
    if (IS_I9XX(pI830)) {
@@ -1218,6 +1218,7 @@ i830_detect_chipset(ScrnInfoPtr pScrn)
     if (pI830->pEnt->device->IOBase != 0) {
 	pI830->MMIOAddr = pI830->pEnt->device->IOBase;
 	from = X_CONFIG;
+	pI830->MMIOSize = I810_REG_SIZE;
     } else {
 	pI830->MMIOAddr = I810_MEMBASE (pI830->PciInfo, mmio_bar);
 	if (pI830->MMIOAddr == 0) {
@@ -1226,10 +1227,11 @@ i830_detect_chipset(ScrnInfoPtr pScrn)
 	    PreInitCleanup(pScrn);
 	    return FALSE;
 	}
+	pI830->MMIOSize = pI830->PciInfo->regions[mmio_bar].size;
     }
 
-    xf86DrvMsg(pScrn->scrnIndex, from, "IO registers at addr 0x%lX\n",
-	       (unsigned long)pI830->MMIOAddr);
+    xf86DrvMsg(pScrn->scrnIndex, from, "IO registers at addr 0x%lX size %u\n",
+	       (unsigned long)pI830->MMIOAddr, pI830->MMIOSize);
 
     /* Now figure out mapsize on 8xx chips */
     if (IS_I830(pI830) || IS_845G(pI830)) {
commit 4f40b33ef4b069b18a6a18406da83a23ca6e1127
Author: Zhenyu Wang <zhenyuw at linux.intel.com>
Date:   Fri Jun 5 11:57:57 2009 +0800

    Add new chipsets PCI ids
    
    Desktop and mobile version of new chipsets are added.
    Also do memory config like Intel 4 series chipset.
    
    Signed-off-by: Zhenyu Wang <zhenyuw at linux.intel.com>

diff --git a/src/common.h b/src/common.h
index 335fe75..69f5604 100644
--- a/src/common.h
+++ b/src/common.h
@@ -310,6 +310,16 @@ extern int I810_DEBUG;
 #define PCI_CHIP_G41_G_BRIDGE	0x2E30
 #endif
 
+#ifndef PCI_CHIP_IGDNG_D_G
+#define PCI_CHIP_IGDNG_D_G		0x0042
+#define PCI_CHIP_IGDNG_D_G_BRIDGE	0x0040
+#endif
+
+#ifndef PCI_CHIP_IGDNG_M_G
+#define PCI_CHIP_IGDNG_M_G		0x0046
+#define PCI_CHIP_IGDNG_M_G_BRIDGE	0x0044
+#endif
+
 #define I810_MEMBASE(p,n) (p)->regions[(n)].base_addr
 #define VENDOR_ID(p)      (p)->vendor_id
 #define DEVICE_ID(p)      (p)->device_id
@@ -339,7 +349,10 @@ extern int I810_DEBUG;
 #define IS_G4X(pI810) (DEVICE_ID(pI810->PciInfo) == PCI_CHIP_IGD_E_G || DEVICE_ID(pI810->PciInfo) == PCI_CHIP_G45_G || DEVICE_ID(pI810->PciInfo) == PCI_CHIP_Q45_G || DEVICE_ID(pI810->PciInfo) == PCI_CHIP_G41_G || IS_GM45(pI810))
 #define IS_I965GM(pI810) (DEVICE_ID(pI810->PciInfo) == PCI_CHIP_I965_GM || DEVICE_ID(pI810->PciInfo) == PCI_CHIP_I965_GME)
 #define IS_965_Q(pI810) (DEVICE_ID(pI810->PciInfo) == PCI_CHIP_I965_Q)
-#define IS_I965G(pI810) (DEVICE_ID(pI810->PciInfo) == PCI_CHIP_I965_G || DEVICE_ID(pI810->PciInfo) == PCI_CHIP_G35_G || DEVICE_ID(pI810->PciInfo) == PCI_CHIP_I965_Q || DEVICE_ID(pI810->PciInfo) == PCI_CHIP_I946_GZ || DEVICE_ID(pI810->PciInfo) == PCI_CHIP_I965_GM || DEVICE_ID(pI810->PciInfo) == PCI_CHIP_I965_GME || IS_G4X(pI810))
+#define IS_IGDNG_D(pI810) (DEVICE_ID(pI810->PciInfo) == PCI_CHIP_IGDNG_D_G)
+#define IS_IGDNG_M(pI810) (DEVICE_ID(pI810->PciInfo) == PCI_CHIP_IGDNG_M_G)
+#define IS_IGDNG(pI810) (IS_IGDNG_D(pI810) || IS_IGDNG_M(pI810))
+#define IS_I965G(pI810) (DEVICE_ID(pI810->PciInfo) == PCI_CHIP_I965_G || DEVICE_ID(pI810->PciInfo) == PCI_CHIP_G35_G || DEVICE_ID(pI810->PciInfo) == PCI_CHIP_I965_Q || DEVICE_ID(pI810->PciInfo) == PCI_CHIP_I946_GZ || DEVICE_ID(pI810->PciInfo) == PCI_CHIP_I965_GM || DEVICE_ID(pI810->PciInfo) == PCI_CHIP_I965_GME || IS_G4X(pI810) || IS_IGDNG(pI810))
 #define IS_G33CLASS(pI810) (DEVICE_ID(pI810->PciInfo) == PCI_CHIP_G33_G ||\
  			    DEVICE_ID(pI810->PciInfo) == PCI_CHIP_Q35_G ||\
 			    DEVICE_ID(pI810->PciInfo) == PCI_CHIP_Q33_G || \
@@ -347,20 +360,20 @@ extern int I810_DEBUG;
 #define IS_I9XX(pI810) (IS_I915G(pI810) || IS_I915GM(pI810) || IS_I945G(pI810) || IS_I945GM(pI810) || IS_I965G(pI810) || IS_G33CLASS(pI810))
 #define IS_I915(pI810) (IS_I915G(pI810) || IS_I915GM(pI810) || IS_I945G(pI810) || IS_I945GM(pI810) || IS_G33CLASS(pI810))
 
-#define IS_MOBILE(pI810) (IS_I830(pI810) || IS_I85X(pI810) || IS_I915GM(pI810) || IS_I945GM(pI810) || IS_I965GM(pI810) || IS_GM45(pI810) || IS_IGD(pI810))
+#define IS_MOBILE(pI810) (IS_I830(pI810) || IS_I85X(pI810) || IS_I915GM(pI810) || IS_I945GM(pI810) || IS_I965GM(pI810) || IS_GM45(pI810) || IS_IGD(pI810) || IS_IGDNG_M(pI810))
 /* mark chipsets for using gfx VM offset for overlay */
 #define OVERLAY_NOPHYSICAL(pI810) (IS_G33CLASS(pI810) || IS_I965G(pI810))
 /* mark chipsets without overlay hw */
-#define OVERLAY_NOEXIST(pI810) (IS_G4X(pI810))
+#define OVERLAY_NOEXIST(pI810) (IS_G4X(pI810) || IS_IGDNG(pI810))
 /* chipsets require graphics mem for hardware status page */
 #define HWS_NEED_GFX(pI810) (!pI810->use_drm_mode && \
 			     (IS_G33CLASS(pI810) ||\
-			      IS_G4X(pI810)))
+			      IS_G4X(pI810) || IS_IGDNG(pI810)))
 /* chipsets require status page in non stolen memory */
-#define HWS_NEED_NONSTOLEN(pI810) (IS_G4X(pI810))
-#define SUPPORTS_INTEGRATED_HDMI(pI810) (IS_G4X(pI810))
+#define HWS_NEED_NONSTOLEN(pI810) (IS_G4X(pI810) || IS_IGDNG(pI810))
+#define SUPPORTS_INTEGRATED_HDMI(pI810) (IS_G4X(pI810) || IS_IGDNG(pI810))
 /* dsparb controlled by hw only */
-#define DSPARB_HWCONTROL(pI810) (IS_G4X(pI810))
+#define DSPARB_HWCONTROL(pI810) (IS_G4X(pI810) || IS_IGDNG(pI810))
 /* supports Y tiled surfaces (pre-965 Mesa isn't ready yet) */
 #define SUPPORTS_YTILING(pI810) (IS_I965G(pI830))
 
diff --git a/src/i810_driver.c b/src/i810_driver.c
index 21c35da..4b8c459 100644
--- a/src/i810_driver.c
+++ b/src/i810_driver.c
@@ -138,6 +138,8 @@ static const struct pci_id_match intel_device_match[] = {
    INTEL_DEVICE_MATCH (PCI_CHIP_G45_G, 0 ),
    INTEL_DEVICE_MATCH (PCI_CHIP_Q45_G, 0 ),
    INTEL_DEVICE_MATCH (PCI_CHIP_G41_G, 0 ),
+   INTEL_DEVICE_MATCH (PCI_CHIP_IGDNG_D_G, 0 ),
+   INTEL_DEVICE_MATCH (PCI_CHIP_IGDNG_M_G, 0 ),
     { 0, 0, 0 },
 };
 
@@ -189,6 +191,8 @@ static SymTabRec I810Chipsets[] = {
    {PCI_CHIP_G45_G,		"G45/G43"},
    {PCI_CHIP_Q45_G,		"Q45/Q43"},
    {PCI_CHIP_G41_G,		"G41"},
+   {PCI_CHIP_IGDNG_D_G,		"IGDNG_D"},
+   {PCI_CHIP_IGDNG_M_G,		"IGDNG_M"},
    {-1,				NULL}
 };
 
@@ -225,6 +229,8 @@ static PciChipsets I810PciChipsets[] = {
    {PCI_CHIP_G45_G,		PCI_CHIP_G45_G,		RES_SHARED_VGA},
    {PCI_CHIP_Q45_G,		PCI_CHIP_Q45_G,		RES_SHARED_VGA},
    {PCI_CHIP_G41_G,		PCI_CHIP_G41_G,		RES_SHARED_VGA},
+   {PCI_CHIP_IGDNG_D_G,		PCI_CHIP_IGDNG_D_G,	RES_SHARED_VGA},
+   {PCI_CHIP_IGDNG_M_G,		PCI_CHIP_IGDNG_M_G,	RES_SHARED_VGA},
    {-1,				-1, RES_UNDEFINED }
 };
 
diff --git a/src/i830_driver.c b/src/i830_driver.c
index 73d350f..8400872 100644
--- a/src/i830_driver.c
+++ b/src/i830_driver.c
@@ -118,6 +118,8 @@ static SymTabRec I830Chipsets[] = {
    {PCI_CHIP_G45_G,		"G45/G43"},
    {PCI_CHIP_Q45_G,		"Q45/Q43"},
    {PCI_CHIP_G41_G,		"G41"},
+   {PCI_CHIP_IGDNG_D_G,		"IGDNG_D"},
+   {PCI_CHIP_IGDNG_M_G,		"IGDNG_M"},
    {-1,				NULL}
 };
 
@@ -148,6 +150,8 @@ static PciChipsets I830PciChipsets[] = {
    {PCI_CHIP_G45_G,		PCI_CHIP_G45_G,		RES_SHARED_VGA},
    {PCI_CHIP_Q45_G,		PCI_CHIP_Q45_G,		RES_SHARED_VGA},
    {PCI_CHIP_G41_G,		PCI_CHIP_G41_G,		RES_SHARED_VGA},
+   {PCI_CHIP_IGDNG_D_G,		PCI_CHIP_IGDNG_D_G,		RES_SHARED_VGA},
+   {PCI_CHIP_IGDNG_M_G,		PCI_CHIP_IGDNG_M_G,		RES_SHARED_VGA},
    {-1,				-1,			RES_UNDEFINED}
 };
 
@@ -324,7 +328,7 @@ I830DetectMemory(ScrnInfoPtr pScrn)
    range = gtt_size + 4;
 
    /* new 4 series hardware has seperate GTT stolen with GFX stolen */
-   if (IS_G4X(pI830) || IS_IGD(pI830))
+   if (IS_G4X(pI830) || IS_IGD(pI830) || IS_IGDNG(pI830))
        range = 4;
 
    if (IS_I85X(pI830) || IS_I865G(pI830) || IS_I9XX(pI830)) {
@@ -440,7 +444,7 @@ I830MapMMIO(ScrnInfoPtr pScrn)
 
       if (IS_I965G(pI830)) 
       {
-	 if (IS_G4X(pI830)) {
+	 if (IS_G4X(pI830) || IS_IGDNG(pI830)) {
 	     gttaddr = pI830->MMIOAddr + MB(2);
 	     pI830->GTTMapSize = MB(2);
 	 } else {
@@ -1135,6 +1139,12 @@ i830_detect_chipset(ScrnInfoPtr pScrn)
     case PCI_CHIP_G41_G:
 	chipname = "G41";
 	break;
+    case PCI_CHIP_IGDNG_D_G:
+	chipname = "IGDNG_D";
+	break;
+    case PCI_CHIP_IGDNG_M_G:
+	chipname = "IGDNG_M";
+	break;
    default:
 	chipname = "unknown chipset";
 	break;
commit accdbd23676d812d2345f86d8e3ee62f108841ff
Author: Carl Worth <cworth at cworth.org>
Date:   Fri May 29 15:34:20 2009 -0700

    UXA: Rasterize trapezoids to system memory, not a pixmap
    
    Since we're only doing software rasterization right now, anyway, it
    makes more sense to just rasterize to system memory and then upload
    to a pixmap once complete. This avoids expensive read-modify-write
    cycles.
    
    This results in a 2.4x speedup for a real-world test case that's
    heavy on trapezoids, which is swfdec running on the following file:
    
    http://michalevy.com/wp-content/uploads/Giant%20Steps%202007.swf
    
    Many thanks to Chris Wilson for his cairo-traces repository and
    cairo-perf-trace tool which makes it so easy to measure things
    like this.

diff --git a/uxa/uxa-render.c b/uxa/uxa-render.c
index b377bf5..2d81ac4 100644
--- a/uxa/uxa-render.c
+++ b/uxa/uxa-render.c
@@ -897,23 +897,62 @@ uxa_trapezoids (CARD8 op, PicturePtr pSrc, PicturePtr pDst,
 	PicturePtr	pPicture;
 	INT16		xDst, yDst;
 	INT16		xRel, yRel;
+	int		width, height, stride;
+	PixmapPtr	pPixmap;
+	GCPtr		pGC;
+	pixman_image_t	*image;
 
 	xDst = traps[0].left.p1.x >> 16;
 	yDst = traps[0].left.p1.y >> 16;
 
+	width = bounds.x2 - bounds.x1;
+	height = bounds.y2 - bounds.y1;
+	stride = (width * BitsPerPixel (maskFormat->depth) + 7) / 8;
+
 	pPicture = uxa_create_alpha_picture (pScreen, pDst, maskFormat,
-	                                  bounds.x2 - bounds.x1,
-	                                  bounds.y2 - bounds.y1);
+					     width, height);
 	if (!pPicture)
 	    return;
 
-	if (uxa_prepare_access(pPicture->pDrawable, UXA_ACCESS_RW)) {
-	    for (; ntrap; ntrap--, traps++)
-		(*ps->RasterizeTrapezoid) (pPicture, traps,
-					   -bounds.x1, -bounds.y1);
-	    uxa_finish_access(pPicture->pDrawable);
+	image = pixman_image_create_bits (pPicture->format,
+					  width, height,
+					  NULL, stride);
+	if (!image) {
+	    FreePicture (pPicture, 0);
+	    return;
 	}
 
+	for (; ntrap; ntrap--, traps++)
+	    pixman_rasterize_trapezoid (image, (pixman_trapezoid_t *) traps,
+					-bounds.x1, -bounds.y1);
+
+	pPixmap = GetScratchPixmapHeader(pScreen, width, height,
+					 maskFormat->depth,
+					 BitsPerPixel (maskFormat->depth),
+					 PixmapBytePad (width, maskFormat->depth),
+					 pixman_image_get_data (image));
+	if (!pPixmap) {
+	    FreePicture (pPicture, 0);
+	    pixman_image_unref (image);
+	    return;
+	}
+
+	pGC = GetScratchGC (pPicture->pDrawable->depth, pScreen);
+	if (!pGC)
+	{
+	    FreeScratchPixmapHeader (pPixmap);
+	    pixman_image_unref (image);
+	    FreePicture (pPicture, 0);
+	    return;
+	}
+
+	(*pGC->ops->CopyArea) (&pPixmap->drawable, pPicture->pDrawable,
+			       pGC, 0, 0, width, height, 0, 0);
+
+	FreeScratchGC (pGC);
+	FreeScratchPixmapHeader (pPixmap);
+	pixman_image_unref (image);
+
 	xRel = bounds.x1 + xSrc - xDst;
 	yRel = bounds.y1 + ySrc - yDst;
 	CompositePicture (op, pSrc, pPicture, pDst,
commit b5e32c9cf896a0b93d193d797a8e83b4aa4691fb
Author: Carl Worth <cworth at cworth.org>
Date:   Fri May 1 13:51:39 2009 -0700

    Rename i830_exa.c to i830_uxa.c
    
    It was just confusing otherwise, (since the EXA code has all been
    removed now).

diff --git a/src/Makefile.am b/src/Makefile.am
index 3f42e16..6496dec 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -104,7 +104,7 @@ intel_drv_la_SOURCES = \
 	 i915_reg.h \
 	 i915_video.c \
 	 i965_video.c \
-	 i830_exa.c \
+	 i830_uxa.c \
 	 i830_render.c \
 	 i915_render.c \
 	 i965_render.c \
diff --git a/src/i830_exa.c b/src/i830_exa.c
deleted file mode 100644
index eb35014..0000000
--- a/src/i830_exa.c
+++ /dev/null
@@ -1,743 +0,0 @@
-/**************************************************************************
-
-Copyright 1998-1999 Precision Insight, Inc., Cedar Park, Texas.
-All Rights Reserved.
-Copyright (c) 2005 Jesse Barnes <jbarnes at virtuousgeek.org>
-  Based on code from i830_xaa.c.
-
-Permission is hereby granted, free of charge, to any person obtaining a
-copy of this software and associated documentation files (the
-"Software"), to deal in the Software without restriction, including
-without limitation the rights to use, copy, modify, merge, publish,
-distribute, sub license, and/or sell copies of the Software, and to
-permit persons to whom the Software is furnished to do so, subject to
-the following conditions:
-
-The above copyright notice and this permission notice (including the
-next paragraph) shall be included in all copies or substantial portions
-of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
-OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.
-IN NO EVENT SHALL PRECISION INSIGHT AND/OR ITS SUPPLIERS BE LIABLE FOR
-ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
-TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
-SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-**************************************************************************/
-
-#ifdef HAVE_CONFIG_H
-#include "config.h"
-#endif
-
-#include "xf86.h"
-#include "xaarop.h"
-#include "i830.h"
-#include "i810_reg.h"
-#include "i915_drm.h"
-#include <string.h>
-#include <sys/mman.h>
-
-const int I830CopyROP[16] =
-{
-   ROP_0,               /* GXclear */
-   ROP_DSa,             /* GXand */
-   ROP_SDna,            /* GXandReverse */
-   ROP_S,               /* GXcopy */
-   ROP_DSna,            /* GXandInverted */
-   ROP_D,               /* GXnoop */
-   ROP_DSx,             /* GXxor */
-   ROP_DSo,             /* GXor */
-   ROP_DSon,            /* GXnor */
-   ROP_DSxn,            /* GXequiv */
-   ROP_Dn,              /* GXinvert*/
-   ROP_SDno,            /* GXorReverse */
-   ROP_Sn,              /* GXcopyInverted */
-   ROP_DSno,            /* GXorInverted */
-   ROP_DSan,            /* GXnand */
-   ROP_1                /* GXset */
-};
-
-const int I830PatternROP[16] =
-{
-    ROP_0,
-    ROP_DPa,
-    ROP_PDna,
-    ROP_P,
-    ROP_DPna,
-    ROP_D,
-    ROP_DPx,
-    ROP_DPo,
-    ROP_DPon,
-    ROP_PDxn,
-    ROP_Dn,
-    ROP_PDno,
-    ROP_Pn,
-    ROP_DPno,
-    ROP_DPan,
-    ROP_1
-};
-
-static int uxa_pixmap_index;
-
-/**
- * Returns whether a given pixmap is tiled or not.
- *
- * Currently, we only have one pixmap that might be tiled, which is the front
- * buffer.  At the point where we are tiling some pixmaps managed by the
- * general allocator, we should move this to using pixmap privates.
- */
-Bool
-i830_pixmap_tiled(PixmapPtr pPixmap)
-{
-    ScreenPtr pScreen = pPixmap->drawable.pScreen;
-    ScrnInfoPtr pScrn = xf86Screens[pScreen->myNum];
-    I830Ptr pI830 = I830PTR(pScrn);
-    unsigned long offset;
-    dri_bo *bo;
-
-    bo = i830_get_pixmap_bo(pPixmap);
-    if (bo != NULL) {
-	uint32_t tiling_mode, swizzle_mode;
-	int ret;
-
-	ret = drm_intel_bo_get_tiling(bo, &tiling_mode, &swizzle_mode);
-	if (ret != 0) {
-	    FatalError("Couldn't get tiling on bo %p: %s\n",
-		       bo, strerror(-ret));
-	}
-
-	return tiling_mode != I915_TILING_NONE;
-    }
-
-    offset = intel_get_pixmap_offset(pPixmap);
-    if (offset == pI830->front_buffer->offset &&
-	pI830->front_buffer->tiling != TILE_NONE)
-    {
-	return TRUE;
-    }
-
-    return FALSE;
-}
-
-Bool
-i830_get_aperture_space(ScrnInfoPtr pScrn, drm_intel_bo **bo_table, int num_bos)
-{
-    I830Ptr pI830 = I830PTR(pScrn);
-
-    if (pI830->batch_bo == NULL)
-	I830FALLBACK("VT inactive\n");
-
-    bo_table[0] = pI830->batch_bo;
-    if (drm_intel_bufmgr_check_aperture_space(bo_table, num_bos) != 0) {
-	intel_batch_flush(pScrn, FALSE);
-	bo_table[0] = pI830->batch_bo;
-	if (drm_intel_bufmgr_check_aperture_space(bo_table, num_bos) != 0)
-	    I830FALLBACK("Couldn't get aperture space for BOs\n");
-    }
-    return TRUE;
-}
-
-static unsigned long
-i830_pixmap_pitch(PixmapPtr pixmap)
-{
-    return pixmap->devKind;
-}
-
-static int
-i830_pixmap_pitch_is_aligned(PixmapPtr pixmap)
-{
-    ScrnInfoPtr pScrn = xf86Screens[pixmap->drawable.pScreen->myNum];
-    I830Ptr pI830 = I830PTR(pScrn);
-
-    return i830_pixmap_pitch(pixmap) % pI830->accel_pixmap_pitch_alignment == 0;
-}
-
-/**
- * Sets up hardware state for a series of solid fills.
- */
-static Bool
-i830_uxa_prepare_solid(PixmapPtr pPixmap, int alu, Pixel planemask, Pixel fg)
-{
-    ScrnInfoPtr pScrn = xf86Screens[pPixmap->drawable.pScreen->myNum];
-    I830Ptr pI830 = I830PTR(pScrn);
-    unsigned long pitch;
-    drm_intel_bo *bo_table[] = {
-	NULL, /* batch_bo */
-	i830_get_pixmap_bo(pPixmap),
-    };
-
-    if (!UXA_PM_IS_SOLID(&pPixmap->drawable, planemask))
-	I830FALLBACK("planemask is not solid");
-
-    if (pPixmap->drawable.bitsPerPixel == 24)
-	I830FALLBACK("solid 24bpp unsupported!\n");
-
-    if (pPixmap->drawable.bitsPerPixel < 8)
-	I830FALLBACK("under 8bpp pixmaps unsupported\n");
-
-    i830_exa_check_pitch_2d(pPixmap);
-
-    pitch = i830_pixmap_pitch(pPixmap);
-
-    if (!i830_pixmap_pitch_is_aligned(pPixmap))
-	I830FALLBACK("pixmap pitch not aligned");
-
-    if (!i830_get_aperture_space(pScrn, bo_table, ARRAY_SIZE(bo_table)))
-	return FALSE;
-
-    pI830->BR[13] = (I830PatternROP[alu] & 0xff) << 16 ;
-    switch (pPixmap->drawable.bitsPerPixel) {
-	case 8:
-	    break;
-	case 16:
-	    /* RGB565 */
-	    pI830->BR[13] |= (1 << 24);
-	    break;
-	case 32:
-	    /* RGB8888 */
-	    pI830->BR[13] |= ((1 << 24) | (1 << 25));
-	    break;
-    }
-    pI830->BR[16] = fg;
-    return TRUE;
-}
-
-static void
-i830_uxa_solid(PixmapPtr pPixmap, int x1, int y1, int x2, int y2)
-{
-    ScrnInfoPtr pScrn = xf86Screens[pPixmap->drawable.pScreen->myNum];
-    I830Ptr pI830 = I830PTR(pScrn);
-    unsigned long pitch;
-    uint32_t cmd;
-
-    pitch = i830_pixmap_pitch(pPixmap);
-
-    {
-	BEGIN_BATCH(6);
-
-	cmd = XY_COLOR_BLT_CMD;
-
-	if (pPixmap->drawable.bitsPerPixel == 32)
-	    cmd |= XY_COLOR_BLT_WRITE_ALPHA | XY_COLOR_BLT_WRITE_RGB;
-
-	if (IS_I965G(pI830) && i830_pixmap_tiled(pPixmap)) {
-	    assert((pitch % 512) == 0);
-	    pitch >>= 2;
-	    cmd |= XY_COLOR_BLT_TILED;
-	}
-
-	OUT_BATCH(cmd);
-
-	OUT_BATCH(pI830->BR[13] | pitch);
-	OUT_BATCH((y1 << 16) | (x1 & 0xffff));
-	OUT_BATCH((y2 << 16) | (x2 & 0xffff));
-	OUT_RELOC_PIXMAP(pPixmap, I915_GEM_DOMAIN_RENDER, I915_GEM_DOMAIN_RENDER, 0);
-	OUT_BATCH(pI830->BR[16]);
-	ADVANCE_BATCH();
-    }
-}
-
-static void
-i830_uxa_done_solid(PixmapPtr pPixmap)
-{
-    ScrnInfoPtr pScrn = xf86Screens[pPixmap->drawable.pScreen->myNum];
-
-    i830_debug_sync(pScrn);
-}
-
-/**
- * TODO:
- *   - support planemask using FULL_BLT_CMD?
- */
-static Bool
-i830_uxa_prepare_copy(PixmapPtr pSrcPixmap, PixmapPtr pDstPixmap, int xdir,
-		      int ydir, int alu, Pixel planemask)
-{
-    ScrnInfoPtr pScrn = xf86Screens[pDstPixmap->drawable.pScreen->myNum];
-    I830Ptr pI830 = I830PTR(pScrn);
-    drm_intel_bo *bo_table[] = {
-	NULL, /* batch_bo */
-	i830_get_pixmap_bo(pSrcPixmap),
-	i830_get_pixmap_bo(pDstPixmap),
-    };
-
-    if (!UXA_PM_IS_SOLID(&pSrcPixmap->drawable, planemask))
-	I830FALLBACK("planemask is not solid");
-
-    if (pDstPixmap->drawable.bitsPerPixel < 8)
-	I830FALLBACK("under 8bpp pixmaps unsupported\n");
-
-    if (!i830_get_aperture_space(pScrn, bo_table, ARRAY_SIZE(bo_table)))
-	return FALSE;
-
-    i830_exa_check_pitch_2d(pSrcPixmap);
-    i830_exa_check_pitch_2d(pDstPixmap);
-
-    pI830->pSrcPixmap = pSrcPixmap;
-
-    pI830->BR[13] = I830CopyROP[alu] << 16;
-
-    switch (pSrcPixmap->drawable.bitsPerPixel) {
-    case 8:
-	break;
-    case 16:
-	pI830->BR[13] |= (1 << 24);
-	break;
-    case 32:
-	pI830->BR[13] |= ((1 << 25) | (1 << 24));
-	break;
-    }
-    return TRUE;
-}
-
-static void
-i830_uxa_copy(PixmapPtr pDstPixmap, int src_x1, int src_y1, int dst_x1,
-	      int dst_y1, int w, int h)
-{
-    ScrnInfoPtr pScrn = xf86Screens[pDstPixmap->drawable.pScreen->myNum];
-    I830Ptr pI830 = I830PTR(pScrn);
-    uint32_t cmd;
-    int dst_x2, dst_y2;
-    unsigned int dst_pitch, src_pitch;
-
-    dst_x2 = dst_x1 + w;
-    dst_y2 = dst_y1 + h;
-
-    dst_pitch = i830_pixmap_pitch(pDstPixmap);
-    src_pitch = i830_pixmap_pitch(pI830->pSrcPixmap);
-
-    {
-	BEGIN_BATCH(8);
-
-	cmd = XY_SRC_COPY_BLT_CMD;
-
-	if (pDstPixmap->drawable.bitsPerPixel == 32)
-	    cmd |= XY_SRC_COPY_BLT_WRITE_ALPHA | XY_SRC_COPY_BLT_WRITE_RGB;
-
-	if (IS_I965G(pI830)) {
-	    if (i830_pixmap_tiled(pDstPixmap)) {
-		assert((dst_pitch % 512) == 0);
-		dst_pitch >>= 2;
-		cmd |= XY_SRC_COPY_BLT_DST_TILED;
-	    }
-
-	    if (i830_pixmap_tiled(pI830->pSrcPixmap)) {
-		assert((src_pitch % 512) == 0);
-		src_pitch >>= 2;
-		cmd |= XY_SRC_COPY_BLT_SRC_TILED;
-	    }
-	}
-
-	OUT_BATCH(cmd);
-
-	OUT_BATCH(pI830->BR[13] | dst_pitch);
-	OUT_BATCH((dst_y1 << 16) | (dst_x1 & 0xffff));
-	OUT_BATCH((dst_y2 << 16) | (dst_x2 & 0xffff));
-	OUT_RELOC_PIXMAP(pDstPixmap, I915_GEM_DOMAIN_RENDER, I915_GEM_DOMAIN_RENDER, 0);
-	OUT_BATCH((src_y1 << 16) | (src_x1 & 0xffff));
-	OUT_BATCH(src_pitch);
-	OUT_RELOC_PIXMAP(pI830->pSrcPixmap, I915_GEM_DOMAIN_RENDER, 0, 0);
-
-	ADVANCE_BATCH();
-    }
-}
-
-static void
-i830_uxa_done_copy(PixmapPtr pDstPixmap)
-{
-    ScrnInfoPtr pScrn = xf86Screens[pDstPixmap->drawable.pScreen->myNum];
-
-    i830_debug_sync(pScrn);
-}
-
-
-/**
- * Do any cleanup from the Composite operation.
- *
- * This is shared between i830 through i965.
- */
-void
-i830_done_composite(PixmapPtr pDst)
-{
-    ScrnInfoPtr pScrn = xf86Screens[pDst->drawable.pScreen->myNum];
-
-    i830_debug_sync(pScrn);
-}
-
-#define xFixedToFloat(val) \
-	((float)xFixedToInt(val) + ((float)xFixedFrac(val) / 65536.0))
-
-static Bool
-_i830_transform_point (PictTransformPtr transform,
-		       float		x,
-		       float		y,
-		       float		result[3])
-{
-    int		    j;
-
-    for (j = 0; j < 3; j++)
-    {
-	result[j] = (xFixedToFloat (transform->matrix[j][0]) * x +
-		     xFixedToFloat (transform->matrix[j][1]) * y +
-		     xFixedToFloat (transform->matrix[j][2]));
-    }
-    if (!result[2])
-	return FALSE;
-    return TRUE;
-}
-
-/**
- * Returns the floating-point coordinates transformed by the given transform.
- *
- * transform may be null.
- */
-Bool
-i830_get_transformed_coordinates(int x, int y, PictTransformPtr transform,
-				 float *x_out, float *y_out)
-{
-    if (transform == NULL) {
-	*x_out = x;
-	*y_out = y;
-    } else {
-	float	result[3];
-
-	if (!_i830_transform_point (transform, (float) x, (float) y, result))
-	    return FALSE;
-	*x_out = result[0] / result[2];
-	*y_out = result[1] / result[2];
-    }
-    return TRUE;
-}
-
-/**
- * Returns the un-normalized floating-point coordinates transformed by the given transform.
- *
- * transform may be null.
- */
-Bool
-i830_get_transformed_coordinates_3d(int x, int y, PictTransformPtr transform,
-				    float *x_out, float *y_out, float *w_out)
-{
-    if (transform == NULL) {
-	*x_out = x;
-	*y_out = y;
-	*w_out = 1;
-    } else {
-	float    result[3];
-
-	if (!_i830_transform_point (transform, (float) x, (float) y, result))
-	    return FALSE;
-	*x_out = result[0];
-	*y_out = result[1];
-	*w_out = result[2];
-    }
-    return TRUE;
-}
-
-/**
- * Returns whether the provided transform is affine.
- *
- * transform may be null.
- */
-Bool
-i830_transform_is_affine (PictTransformPtr t)
-{
-    if (t == NULL)
-	return TRUE;
-    return t->matrix[2][0] == 0 && t->matrix[2][1] == 0;
-}
-
-dri_bo *
-i830_get_pixmap_bo(PixmapPtr pixmap)
-{
-    ScreenPtr screen = pixmap->drawable.pScreen;
-    ScrnInfoPtr scrn = xf86Screens[screen->myNum];
-    I830Ptr i830 = I830PTR(scrn);
-
-    if (i830->accel == ACCEL_UXA)
-	return dixLookupPrivate(&pixmap->devPrivates, &uxa_pixmap_index);
-    else
-	return NULL;
-}
-
-void
-i830_set_pixmap_bo(PixmapPtr pixmap, dri_bo *bo)
-{
-    ScrnInfoPtr pScrn = xf86Screens[pixmap->drawable.pScreen->myNum];
-    I830Ptr i830 = I830PTR(pScrn);
-    dri_bo  *old_bo = i830_get_pixmap_bo (pixmap);
-
-    if (old_bo)
-	dri_bo_unreference (old_bo);
-    if (i830->accel == ACCEL_UXA) {
-	if (bo != NULL)
-	    dri_bo_reference(bo);
-	dixSetPrivate(&pixmap->devPrivates, &uxa_pixmap_index, bo);
-    }
-}
-
-static void
-i830_uxa_set_pixmap_bo (PixmapPtr pixmap, dri_bo *bo)
-{
-    dixSetPrivate(&pixmap->devPrivates, &uxa_pixmap_index, bo);
-}
-
-static Bool
-i830_uxa_prepare_access (PixmapPtr pixmap, uxa_access_t access)
-{
-    dri_bo *bo = i830_get_pixmap_bo (pixmap);
-
-    if (bo) {
-	ScreenPtr screen = pixmap->drawable.pScreen;
-	ScrnInfoPtr scrn = xf86Screens[screen->myNum];
-	I830Ptr i830 = I830PTR(scrn);
-	
-	intel_batch_flush(scrn, FALSE);
-
-	/* No VT sema or GEM?  No GTT mapping. */
-	if (!scrn->vtSema || !i830->have_gem) {
-	    if (dri_bo_map(bo, access == UXA_ACCESS_RW) != 0)
-		return FALSE;
-	    pixmap->devPrivate.ptr = bo->virtual;
-	    return TRUE;
-	}
-
-	/* Kernel manages fences at GTT map/fault time */
-	if (i830->kernel_exec_fencing) {
-	    if (bo->size < i830->max_gtt_map_size) {
-		if (drm_intel_gem_bo_map_gtt(bo)) {
-		    xf86DrvMsg(scrn->scrnIndex, X_WARNING,
-			       "%s: bo map failed\n",
-			       __FUNCTION__);
-		    return FALSE;
-		}
-	    } else {
-		if (dri_bo_map(bo, access == UXA_ACCESS_RW) != 0) {
-		    xf86DrvMsg(scrn->scrnIndex, X_WARNING,
-			       "%s: bo map failed\n",
-			       __FUNCTION__);
-		    return FALSE;
-		}
-	    }
-	    pixmap->devPrivate.ptr = bo->virtual;
-	} else { /* or not... */
-	    if (drm_intel_bo_pin(bo, 4096) != 0)
-		return FALSE;
-	    drm_intel_gem_bo_start_gtt_access(bo, access == UXA_ACCESS_RW);
-	    pixmap->devPrivate.ptr = i830->FbBase + bo->offset;
-	}
-    }
-    return TRUE;
-}
-
-static void
-i830_uxa_finish_access (PixmapPtr pixmap)
-{
-    dri_bo *bo = i830_get_pixmap_bo (pixmap);
-
-    if (bo) {
-	ScreenPtr screen = pixmap->drawable.pScreen;
-	ScrnInfoPtr scrn = xf86Screens[screen->myNum];
-	I830Ptr i830 = I830PTR(scrn);
-
-	if (bo == i830->front_buffer->bo)
-	    i830->need_flush = TRUE;
-
-	if (!scrn->vtSema || !i830->have_gem) {
-	    dri_bo_unmap(bo);
-	    pixmap->devPrivate.ptr = NULL;
-	    return;
-	}
-
-	if (i830->kernel_exec_fencing)
-	    if (bo->size < i830->max_gtt_map_size)
-		drm_intel_gem_bo_unmap_gtt(bo);
-	    else
-		dri_bo_unmap(bo);
-	else
-	    drm_intel_bo_unpin(bo);
-	pixmap->devPrivate.ptr = NULL;
-    }
-}
-
-void
-i830_uxa_block_handler (ScreenPtr screen)
-{
-    ScrnInfoPtr scrn = xf86Screens[screen->myNum];
-    I830Ptr i830 = I830PTR(scrn);
-
-    if (i830->need_flush) {
-	dri_bo_wait_rendering (i830->front_buffer->bo);
-	i830->need_flush = FALSE;
-    }
-}
-
-static Bool
-i830_uxa_pixmap_is_offscreen(PixmapPtr pixmap)
-{
-    ScreenPtr screen = pixmap->drawable.pScreen;
-
-    /* The front buffer is always in memory and pinned */
-    if (screen->GetScreenPixmap(screen) == pixmap)
-	return TRUE;
-
-    return i830_get_pixmap_bo (pixmap) != NULL;
-}
-
-static PixmapPtr
-i830_uxa_create_pixmap (ScreenPtr screen, int w, int h, int depth, unsigned usage)
-{
-    ScrnInfoPtr scrn = xf86Screens[screen->myNum];
-    I830Ptr i830 = I830PTR(scrn);
-    dri_bo *bo;
-    int stride;
-    PixmapPtr pixmap;
-    
-    if (w > 32767 || h > 32767)
-	return NullPixmap;
-
-    if (usage == CREATE_PIXMAP_USAGE_GLYPH_PICTURE)
-	return fbCreatePixmap (screen, w, h, depth, usage);
-
-    pixmap = fbCreatePixmap (screen, 0, 0, depth, usage);
-
-    if (w && h)
-    {
-	unsigned int size;
-	uint32_t tiling = I915_TILING_NONE;
-
-	stride = ROUND_TO((w * pixmap->drawable.bitsPerPixel + 7) / 8,
-			  i830->accel_pixmap_pitch_alignment);
-
-	if (usage == INTEL_CREATE_PIXMAP_TILING_X)
-	    tiling = I915_TILING_X;
-	else if (usage == INTEL_CREATE_PIXMAP_TILING_Y)
-	    tiling = I915_TILING_Y;
-
-	if (tiling == I915_TILING_NONE) {
-	    size = stride * h;
-	} else {
-	    stride = i830_get_fence_pitch(i830, stride, tiling);
-	    /* Round the object up to the size of the fence it will live in
-	     * if necessary.  We could potentially make the kernel allocate
-	     * a larger aperture space and just bind the subset of pages in,
-	     * but this is easier and also keeps us out of trouble (as much)
-	     * with drm_intel_bufmgr_check_aperture().
-	     */
-	    size = i830_get_fence_size(i830, stride * h);
-	}
-
-	bo = drm_intel_bo_alloc_for_render(i830->bufmgr, "pixmap", size, 0);
-	if (!bo) {
-	    fbDestroyPixmap (pixmap);
-	    return NullPixmap;
-	}
-
-	if (tiling != I915_TILING_NONE)
-	    drm_intel_bo_set_tiling(bo, &tiling, stride);
-
-	screen->ModifyPixmapHeader (pixmap, w, h, 0, 0, stride, NULL);
-    
-	i830_uxa_set_pixmap_bo (pixmap, bo);
-    }
-
-    return pixmap;
-}
-
-static Bool
-i830_uxa_destroy_pixmap (PixmapPtr pixmap)
-{
-    if (pixmap->refcnt == 1) {
-	dri_bo  *bo = i830_get_pixmap_bo (pixmap);
-    
-	if (bo)
-	    dri_bo_unreference (bo);
-    }
-    fbDestroyPixmap (pixmap);
-    return TRUE;
-}
-
-void i830_uxa_create_screen_resources(ScreenPtr pScreen)
-{
-    ScrnInfoPtr scrn = xf86Screens[pScreen->myNum];
-    I830Ptr i830 = I830PTR(scrn);
-    dri_bo *bo = i830->front_buffer->bo;
-
-    if (bo != NULL) {
-	PixmapPtr   pixmap = pScreen->GetScreenPixmap(pScreen);
-	i830_uxa_set_pixmap_bo (pixmap, bo);
-	dri_bo_reference(bo);
-    }
-}
-
-Bool
-i830_uxa_init (ScreenPtr pScreen)
-{
-    ScrnInfoPtr scrn = xf86Screens[pScreen->myNum];
-    I830Ptr i830 = I830PTR(scrn);
-
-    if (!dixRequestPrivate(&uxa_pixmap_index, 0))
-	return FALSE;
-
-    i830->uxa_driver = uxa_driver_alloc();
-    if (i830->uxa_driver == NULL) {
-	i830->accel = ACCEL_NONE;
-	return FALSE;
-    }
-    memset(i830->uxa_driver, 0, sizeof(*i830->uxa_driver));
-
-    i830->bufferOffset = 0;
-    i830->uxa_driver->uxa_major = 1;
-    i830->uxa_driver->uxa_minor = 0;
-
-    /* Solid fill */
-    i830->uxa_driver->prepare_solid = i830_uxa_prepare_solid;
-    i830->uxa_driver->solid = i830_uxa_solid;
-    i830->uxa_driver->done_solid = i830_uxa_done_solid;
-
-    /* Copy */
-    i830->uxa_driver->prepare_copy = i830_uxa_prepare_copy;
-    i830->uxa_driver->copy = i830_uxa_copy;
-    i830->uxa_driver->done_copy = i830_uxa_done_copy;
-
-    /* Composite */
-    if (!IS_I9XX(i830)) {
-    	i830->uxa_driver->check_composite = i830_check_composite;
-    	i830->uxa_driver->prepare_composite = i830_prepare_composite;
-    	i830->uxa_driver->composite = i830_composite;
-    	i830->uxa_driver->done_composite = i830_done_composite;
-    } else if (IS_I915G(i830) || IS_I915GM(i830) ||
-	       IS_I945G(i830) || IS_I945GM(i830) || IS_G33CLASS(i830))
-    {
-	i830->uxa_driver->check_composite = i915_check_composite;
-   	i830->uxa_driver->prepare_composite = i915_prepare_composite;
-	i830->uxa_driver->composite = i915_composite;
-    	i830->uxa_driver->done_composite = i830_done_composite;
-    } else {
- 	i830->uxa_driver->check_composite = i965_check_composite;
- 	i830->uxa_driver->prepare_composite = i965_prepare_composite;
- 	i830->uxa_driver->composite = i965_composite;
- 	i830->uxa_driver->done_composite = i830_done_composite;
-    }
-
-    i830->uxa_driver->prepare_access = i830_uxa_prepare_access;
-    i830->uxa_driver->finish_access = i830_uxa_finish_access;
-    i830->uxa_driver->pixmap_is_offscreen = i830_uxa_pixmap_is_offscreen;
-
-    if(!uxa_driver_init(pScreen, i830->uxa_driver)) {
-	xf86DrvMsg(scrn->scrnIndex, X_INFO,
-		   "UXA initialization failed\n");
-	xfree(i830->uxa_driver);
-	i830->accel = ACCEL_NONE;
-	return FALSE;
-    }
-
-    pScreen->CreatePixmap = i830_uxa_create_pixmap;
-    pScreen->DestroyPixmap = i830_uxa_destroy_pixmap;
-
-    uxa_set_fallback_debug(pScreen, i830->fallback_debug);
-
-    return TRUE;
-}
diff --git a/src/i830_uxa.c b/src/i830_uxa.c
new file mode 100644
index 0000000..eb35014
--- /dev/null
+++ b/src/i830_uxa.c
@@ -0,0 +1,743 @@
+/**************************************************************************
+
+Copyright 1998-1999 Precision Insight, Inc., Cedar Park, Texas.
+All Rights Reserved.
+Copyright (c) 2005 Jesse Barnes <jbarnes at virtuousgeek.org>
+  Based on code from i830_xaa.c.
+
+Permission is hereby granted, free of charge, to any person obtaining a
+copy of this software and associated documentation files (the
+"Software"), to deal in the Software without restriction, including
+without limitation the rights to use, copy, modify, merge, publish,
+distribute, sub license, and/or sell copies of the Software, and to
+permit persons to whom the Software is furnished to do so, subject to
+the following conditions:
+
+The above copyright notice and this permission notice (including the
+next paragraph) shall be included in all copies or substantial portions
+of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.
+IN NO EVENT SHALL PRECISION INSIGHT AND/OR ITS SUPPLIERS BE LIABLE FOR
+ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+**************************************************************************/
+
+#ifdef HAVE_CONFIG_H
+#include "config.h"
+#endif
+
+#include "xf86.h"
+#include "xaarop.h"
+#include "i830.h"
+#include "i810_reg.h"
+#include "i915_drm.h"
+#include <string.h>
+#include <sys/mman.h>
+
+const int I830CopyROP[16] =
+{
+   ROP_0,               /* GXclear */
+   ROP_DSa,             /* GXand */
+   ROP_SDna,            /* GXandReverse */
+   ROP_S,               /* GXcopy */
+   ROP_DSna,            /* GXandInverted */
+   ROP_D,               /* GXnoop */
+   ROP_DSx,             /* GXxor */
+   ROP_DSo,             /* GXor */
+   ROP_DSon,            /* GXnor */
+   ROP_DSxn,            /* GXequiv */
+   ROP_Dn,              /* GXinvert*/
+   ROP_SDno,            /* GXorReverse */
+   ROP_Sn,              /* GXcopyInverted */
+   ROP_DSno,            /* GXorInverted */
+   ROP_DSan,            /* GXnand */
+   ROP_1                /* GXset */
+};
+
+const int I830PatternROP[16] =
+{
+    ROP_0,
+    ROP_DPa,
+    ROP_PDna,
+    ROP_P,
+    ROP_DPna,
+    ROP_D,
+    ROP_DPx,
+    ROP_DPo,
+    ROP_DPon,
+    ROP_PDxn,
+    ROP_Dn,
+    ROP_PDno,
+    ROP_Pn,
+    ROP_DPno,
+    ROP_DPan,
+    ROP_1
+};
+
+static int uxa_pixmap_index;
+
+/**
+ * Returns whether a given pixmap is tiled or not.
+ *
+ * Currently, we only have one pixmap that might be tiled, which is the front
+ * buffer.  At the point where we are tiling some pixmaps managed by the
+ * general allocator, we should move this to using pixmap privates.
+ */
+Bool
+i830_pixmap_tiled(PixmapPtr pPixmap)
+{
+    ScreenPtr pScreen = pPixmap->drawable.pScreen;
+    ScrnInfoPtr pScrn = xf86Screens[pScreen->myNum];
+    I830Ptr pI830 = I830PTR(pScrn);
+    unsigned long offset;
+    dri_bo *bo;
+
+    bo = i830_get_pixmap_bo(pPixmap);
+    if (bo != NULL) {
+	uint32_t tiling_mode, swizzle_mode;
+	int ret;
+
+	ret = drm_intel_bo_get_tiling(bo, &tiling_mode, &swizzle_mode);
+	if (ret != 0) {
+	    FatalError("Couldn't get tiling on bo %p: %s\n",
+		       bo, strerror(-ret));
+	}
+
+	return tiling_mode != I915_TILING_NONE;
+    }
+
+    offset = intel_get_pixmap_offset(pPixmap);
+    if (offset == pI830->front_buffer->offset &&
+	pI830->front_buffer->tiling != TILE_NONE)
+    {
+	return TRUE;
+    }
+
+    return FALSE;
+}
+
+Bool
+i830_get_aperture_space(ScrnInfoPtr pScrn, drm_intel_bo **bo_table, int num_bos)
+{
+    I830Ptr pI830 = I830PTR(pScrn);
+
+    if (pI830->batch_bo == NULL)
+	I830FALLBACK("VT inactive\n");
+
+    bo_table[0] = pI830->batch_bo;
+    if (drm_intel_bufmgr_check_aperture_space(bo_table, num_bos) != 0) {
+	intel_batch_flush(pScrn, FALSE);
+	bo_table[0] = pI830->batch_bo;
+	if (drm_intel_bufmgr_check_aperture_space(bo_table, num_bos) != 0)
+	    I830FALLBACK("Couldn't get aperture space for BOs\n");
+    }
+    return TRUE;
+}
+
+static unsigned long
+i830_pixmap_pitch(PixmapPtr pixmap)
+{
+    return pixmap->devKind;
+}
+
+static int
+i830_pixmap_pitch_is_aligned(PixmapPtr pixmap)
+{
+    ScrnInfoPtr pScrn = xf86Screens[pixmap->drawable.pScreen->myNum];
+    I830Ptr pI830 = I830PTR(pScrn);
+
+    return i830_pixmap_pitch(pixmap) % pI830->accel_pixmap_pitch_alignment == 0;
+}
+
+/**
+ * Sets up hardware state for a series of solid fills.
+ */
+static Bool
+i830_uxa_prepare_solid(PixmapPtr pPixmap, int alu, Pixel planemask, Pixel fg)
+{
+    ScrnInfoPtr pScrn = xf86Screens[pPixmap->drawable.pScreen->myNum];
+    I830Ptr pI830 = I830PTR(pScrn);
+    unsigned long pitch;
+    drm_intel_bo *bo_table[] = {
+	NULL, /* batch_bo */
+	i830_get_pixmap_bo(pPixmap),
+    };
+
+    if (!UXA_PM_IS_SOLID(&pPixmap->drawable, planemask))
+	I830FALLBACK("planemask is not solid");
+
+    if (pPixmap->drawable.bitsPerPixel == 24)
+	I830FALLBACK("solid 24bpp unsupported!\n");
+
+    if (pPixmap->drawable.bitsPerPixel < 8)
+	I830FALLBACK("under 8bpp pixmaps unsupported\n");
+
+    i830_exa_check_pitch_2d(pPixmap);
+
+    pitch = i830_pixmap_pitch(pPixmap);
+
+    if (!i830_pixmap_pitch_is_aligned(pPixmap))
+	I830FALLBACK("pixmap pitch not aligned");
+
+    if (!i830_get_aperture_space(pScrn, bo_table, ARRAY_SIZE(bo_table)))
+	return FALSE;
+
+    pI830->BR[13] = (I830PatternROP[alu] & 0xff) << 16 ;
+    switch (pPixmap->drawable.bitsPerPixel) {
+	case 8:
+	    break;
+	case 16:
+	    /* RGB565 */
+	    pI830->BR[13] |= (1 << 24);
+	    break;
+	case 32:
+	    /* RGB8888 */
+	    pI830->BR[13] |= ((1 << 24) | (1 << 25));
+	    break;
+    }
+    pI830->BR[16] = fg;
+    return TRUE;
+}
+
+static void
+i830_uxa_solid(PixmapPtr pPixmap, int x1, int y1, int x2, int y2)
+{
+    ScrnInfoPtr pScrn = xf86Screens[pPixmap->drawable.pScreen->myNum];
+    I830Ptr pI830 = I830PTR(pScrn);
+    unsigned long pitch;
+    uint32_t cmd;
+
+    pitch = i830_pixmap_pitch(pPixmap);
+
+    {
+	BEGIN_BATCH(6);
+
+	cmd = XY_COLOR_BLT_CMD;
+
+	if (pPixmap->drawable.bitsPerPixel == 32)
+	    cmd |= XY_COLOR_BLT_WRITE_ALPHA | XY_COLOR_BLT_WRITE_RGB;
+
+	if (IS_I965G(pI830) && i830_pixmap_tiled(pPixmap)) {
+	    assert((pitch % 512) == 0);
+	    pitch >>= 2;
+	    cmd |= XY_COLOR_BLT_TILED;
+	}
+
+	OUT_BATCH(cmd);
+
+	OUT_BATCH(pI830->BR[13] | pitch);
+	OUT_BATCH((y1 << 16) | (x1 & 0xffff));
+	OUT_BATCH((y2 << 16) | (x2 & 0xffff));
+	OUT_RELOC_PIXMAP(pPixmap, I915_GEM_DOMAIN_RENDER, I915_GEM_DOMAIN_RENDER, 0);
+	OUT_BATCH(pI830->BR[16]);
+	ADVANCE_BATCH();
+    }
+}
+
+static void
+i830_uxa_done_solid(PixmapPtr pPixmap)
+{
+    ScrnInfoPtr pScrn = xf86Screens[pPixmap->drawable.pScreen->myNum];
+
+    i830_debug_sync(pScrn);
+}
+
+/**
+ * TODO:
+ *   - support planemask using FULL_BLT_CMD?
+ */
+static Bool
+i830_uxa_prepare_copy(PixmapPtr pSrcPixmap, PixmapPtr pDstPixmap, int xdir,
+		      int ydir, int alu, Pixel planemask)
+{
+    ScrnInfoPtr pScrn = xf86Screens[pDstPixmap->drawable.pScreen->myNum];
+    I830Ptr pI830 = I830PTR(pScrn);
+    drm_intel_bo *bo_table[] = {
+	NULL, /* batch_bo */
+	i830_get_pixmap_bo(pSrcPixmap),
+	i830_get_pixmap_bo(pDstPixmap),
+    };
+
+    if (!UXA_PM_IS_SOLID(&pSrcPixmap->drawable, planemask))
+	I830FALLBACK("planemask is not solid");
+
+    if (pDstPixmap->drawable.bitsPerPixel < 8)
+	I830FALLBACK("under 8bpp pixmaps unsupported\n");
+
+    if (!i830_get_aperture_space(pScrn, bo_table, ARRAY_SIZE(bo_table)))
+	return FALSE;
+
+    i830_exa_check_pitch_2d(pSrcPixmap);
+    i830_exa_check_pitch_2d(pDstPixmap);
+
+    pI830->pSrcPixmap = pSrcPixmap;
+
+    pI830->BR[13] = I830CopyROP[alu] << 16;
+
+    switch (pSrcPixmap->drawable.bitsPerPixel) {
+    case 8:
+	break;
+    case 16:
+	pI830->BR[13] |= (1 << 24);
+	break;
+    case 32:
+	pI830->BR[13] |= ((1 << 25) | (1 << 24));
+	break;
+    }
+    return TRUE;
+}
+
+static void
+i830_uxa_copy(PixmapPtr pDstPixmap, int src_x1, int src_y1, int dst_x1,
+	      int dst_y1, int w, int h)
+{
+    ScrnInfoPtr pScrn = xf86Screens[pDstPixmap->drawable.pScreen->myNum];
+    I830Ptr pI830 = I830PTR(pScrn);
+    uint32_t cmd;
+    int dst_x2, dst_y2;
+    unsigned int dst_pitch, src_pitch;
+
+    dst_x2 = dst_x1 + w;
+    dst_y2 = dst_y1 + h;
+
+    dst_pitch = i830_pixmap_pitch(pDstPixmap);
+    src_pitch = i830_pixmap_pitch(pI830->pSrcPixmap);
+
+    {
+	BEGIN_BATCH(8);
+
+	cmd = XY_SRC_COPY_BLT_CMD;
+
+	if (pDstPixmap->drawable.bitsPerPixel == 32)
+	    cmd |= XY_SRC_COPY_BLT_WRITE_ALPHA | XY_SRC_COPY_BLT_WRITE_RGB;
+
+	if (IS_I965G(pI830)) {
+	    if (i830_pixmap_tiled(pDstPixmap)) {
+		assert((dst_pitch % 512) == 0);
+		dst_pitch >>= 2;
+		cmd |= XY_SRC_COPY_BLT_DST_TILED;
+	    }
+
+	    if (i830_pixmap_tiled(pI830->pSrcPixmap)) {
+		assert((src_pitch % 512) == 0);
+		src_pitch >>= 2;
+		cmd |= XY_SRC_COPY_BLT_SRC_TILED;
+	    }
+	}
+
+	OUT_BATCH(cmd);
+
+	OUT_BATCH(pI830->BR[13] | dst_pitch);
+	OUT_BATCH((dst_y1 << 16) | (dst_x1 & 0xffff));
+	OUT_BATCH((dst_y2 << 16) | (dst_x2 & 0xffff));
+	OUT_RELOC_PIXMAP(pDstPixmap, I915_GEM_DOMAIN_RENDER, I915_GEM_DOMAIN_RENDER, 0);
+	OUT_BATCH((src_y1 << 16) | (src_x1 & 0xffff));
+	OUT_BATCH(src_pitch);
+	OUT_RELOC_PIXMAP(pI830->pSrcPixmap, I915_GEM_DOMAIN_RENDER, 0, 0);
+
+	ADVANCE_BATCH();
+    }
+}
+
+static void
+i830_uxa_done_copy(PixmapPtr pDstPixmap)
+{
+    ScrnInfoPtr pScrn = xf86Screens[pDstPixmap->drawable.pScreen->myNum];
+
+    i830_debug_sync(pScrn);
+}
+
+
+/**
+ * Do any cleanup from the Composite operation.
+ *
+ * This is shared between i830 through i965.
+ */
+void
+i830_done_composite(PixmapPtr pDst)
+{
+    ScrnInfoPtr pScrn = xf86Screens[pDst->drawable.pScreen->myNum];
+
+    i830_debug_sync(pScrn);
+}
+
+#define xFixedToFloat(val) \
+	((float)xFixedToInt(val) + ((float)xFixedFrac(val) / 65536.0))
+
+static Bool
+_i830_transform_point (PictTransformPtr transform,
+		       float		x,
+		       float		y,
+		       float		result[3])
+{
+    int		    j;
+
+    for (j = 0; j < 3; j++)
+    {
+	result[j] = (xFixedToFloat (transform->matrix[j][0]) * x +
+		     xFixedToFloat (transform->matrix[j][1]) * y +
+		     xFixedToFloat (transform->matrix[j][2]));
+    }
+    if (!result[2])
+	return FALSE;
+    return TRUE;
+}
+
+/**
+ * Returns the floating-point coordinates transformed by the given transform.
+ *
+ * transform may be null.
+ */
+Bool
+i830_get_transformed_coordinates(int x, int y, PictTransformPtr transform,
+				 float *x_out, float *y_out)
+{
+    if (transform == NULL) {
+	*x_out = x;
+	*y_out = y;
+    } else {
+	float	result[3];
+
+	if (!_i830_transform_point (transform, (float) x, (float) y, result))
+	    return FALSE;
+	*x_out = result[0] / result[2];
+	*y_out = result[1] / result[2];
+    }
+    return TRUE;
+}
+
+/**
+ * Returns the un-normalized floating-point coordinates transformed by the given transform.
+ *
+ * transform may be null.
+ */
+Bool
+i830_get_transformed_coordinates_3d(int x, int y, PictTransformPtr transform,
+				    float *x_out, float *y_out, float *w_out)
+{
+    if (transform == NULL) {
+	*x_out = x;
+	*y_out = y;
+	*w_out = 1;
+    } else {
+	float    result[3];
+
+	if (!_i830_transform_point (transform, (float) x, (float) y, result))
+	    return FALSE;
+	*x_out = result[0];
+	*y_out = result[1];
+	*w_out = result[2];
+    }
+    return TRUE;
+}
+
+/**
+ * Returns whether the provided transform is affine.
+ *
+ * transform may be null.
+ */
+Bool
+i830_transform_is_affine (PictTransformPtr t)
+{
+    if (t == NULL)
+	return TRUE;
+    return t->matrix[2][0] == 0 && t->matrix[2][1] == 0;
+}
+
+dri_bo *
+i830_get_pixmap_bo(PixmapPtr pixmap)
+{
+    ScreenPtr screen = pixmap->drawable.pScreen;
+    ScrnInfoPtr scrn = xf86Screens[screen->myNum];
+    I830Ptr i830 = I830PTR(scrn);
+
+    if (i830->accel == ACCEL_UXA)
+	return dixLookupPrivate(&pixmap->devPrivates, &uxa_pixmap_index);
+    else
+	return NULL;
+}
+
+void
+i830_set_pixmap_bo(PixmapPtr pixmap, dri_bo *bo)
+{
+    ScrnInfoPtr pScrn = xf86Screens[pixmap->drawable.pScreen->myNum];
+    I830Ptr i830 = I830PTR(pScrn);
+    dri_bo  *old_bo = i830_get_pixmap_bo (pixmap);
+
+    if (old_bo)
+	dri_bo_unreference (old_bo);
+    if (i830->accel == ACCEL_UXA) {
+	if (bo != NULL)
+	    dri_bo_reference(bo);
+	dixSetPrivate(&pixmap->devPrivates, &uxa_pixmap_index, bo);
+    }
+}
+
+static void
+i830_uxa_set_pixmap_bo (PixmapPtr pixmap, dri_bo *bo)
+{
+    dixSetPrivate(&pixmap->devPrivates, &uxa_pixmap_index, bo);
+}
+
+static Bool
+i830_uxa_prepare_access (PixmapPtr pixmap, uxa_access_t access)
+{
+    dri_bo *bo = i830_get_pixmap_bo (pixmap);
+
+    if (bo) {
+	ScreenPtr screen = pixmap->drawable.pScreen;
+	ScrnInfoPtr scrn = xf86Screens[screen->myNum];
+	I830Ptr i830 = I830PTR(scrn);
+	
+	intel_batch_flush(scrn, FALSE);
+
+	/* No VT sema or GEM?  No GTT mapping. */
+	if (!scrn->vtSema || !i830->have_gem) {
+	    if (dri_bo_map(bo, access == UXA_ACCESS_RW) != 0)
+		return FALSE;
+	    pixmap->devPrivate.ptr = bo->virtual;
+	    return TRUE;
+	}
+
+	/* Kernel manages fences at GTT map/fault time */
+	if (i830->kernel_exec_fencing) {
+	    if (bo->size < i830->max_gtt_map_size) {
+		if (drm_intel_gem_bo_map_gtt(bo)) {
+		    xf86DrvMsg(scrn->scrnIndex, X_WARNING,
+			       "%s: bo map failed\n",
+			       __FUNCTION__);
+		    return FALSE;
+		}
+	    } else {
+		if (dri_bo_map(bo, access == UXA_ACCESS_RW) != 0) {
+		    xf86DrvMsg(scrn->scrnIndex, X_WARNING,
+			       "%s: bo map failed\n",
+			       __FUNCTION__);
+		    return FALSE;
+		}
+	    }
+	    pixmap->devPrivate.ptr = bo->virtual;
+	} else { /* or not... */
+	    if (drm_intel_bo_pin(bo, 4096) != 0)
+		return FALSE;
+	    drm_intel_gem_bo_start_gtt_access(bo, access == UXA_ACCESS_RW);
+	    pixmap->devPrivate.ptr = i830->FbBase + bo->offset;
+	}
+    }
+    return TRUE;
+}
+
+static void
+i830_uxa_finish_access (PixmapPtr pixmap)
+{
+    dri_bo *bo = i830_get_pixmap_bo (pixmap);
+
+    if (bo) {
+	ScreenPtr screen = pixmap->drawable.pScreen;
+	ScrnInfoPtr scrn = xf86Screens[screen->myNum];
+	I830Ptr i830 = I830PTR(scrn);
+
+	if (bo == i830->front_buffer->bo)
+	    i830->need_flush = TRUE;
+
+	if (!scrn->vtSema || !i830->have_gem) {
+	    dri_bo_unmap(bo);
+	    pixmap->devPrivate.ptr = NULL;
+	    return;
+	}
+
+	if (i830->kernel_exec_fencing)
+	    if (bo->size < i830->max_gtt_map_size)
+		drm_intel_gem_bo_unmap_gtt(bo);
+	    else
+		dri_bo_unmap(bo);
+	else
+	    drm_intel_bo_unpin(bo);
+	pixmap->devPrivate.ptr = NULL;
+    }
+}
+
+void
+i830_uxa_block_handler (ScreenPtr screen)
+{
+    ScrnInfoPtr scrn = xf86Screens[screen->myNum];
+    I830Ptr i830 = I830PTR(scrn);
+
+    if (i830->need_flush) {
+	dri_bo_wait_rendering (i830->front_buffer->bo);
+	i830->need_flush = FALSE;
+    }
+}
+
+static Bool
+i830_uxa_pixmap_is_offscreen(PixmapPtr pixmap)
+{
+    ScreenPtr screen = pixmap->drawable.pScreen;
+
+    /* The front buffer is always in memory and pinned */
+    if (screen->GetScreenPixmap(screen) == pixmap)
+	return TRUE;
+
+    return i830_get_pixmap_bo (pixmap) != NULL;
+}
+
+static PixmapPtr
+i830_uxa_create_pixmap (ScreenPtr screen, int w, int h, int depth, unsigned usage)
+{
+    ScrnInfoPtr scrn = xf86Screens[screen->myNum];
+    I830Ptr i830 = I830PTR(scrn);
+    dri_bo *bo;
+    int stride;
+    PixmapPtr pixmap;
+    
+    if (w > 32767 || h > 32767)
+	return NullPixmap;
+
+    if (usage == CREATE_PIXMAP_USAGE_GLYPH_PICTURE)
+	return fbCreatePixmap (screen, w, h, depth, usage);
+
+    pixmap = fbCreatePixmap (screen, 0, 0, depth, usage);
+
+    if (w && h)
+    {
+	unsigned int size;
+	uint32_t tiling = I915_TILING_NONE;
+
+	stride = ROUND_TO((w * pixmap->drawable.bitsPerPixel + 7) / 8,
+			  i830->accel_pixmap_pitch_alignment);
+
+	if (usage == INTEL_CREATE_PIXMAP_TILING_X)
+	    tiling = I915_TILING_X;
+	else if (usage == INTEL_CREATE_PIXMAP_TILING_Y)
+	    tiling = I915_TILING_Y;
+
+	if (tiling == I915_TILING_NONE) {
+	    size = stride * h;
+	} else {
+	    stride = i830_get_fence_pitch(i830, stride, tiling);
+	    /* Round the object up to the size of the fence it will live in
+	     * if necessary.  We could potentially make the kernel allocate
+	     * a larger aperture space and just bind the subset of pages in,
+	     * but this is easier and also keeps us out of trouble (as much)
+	     * with drm_intel_bufmgr_check_aperture().
+	     */
+	    size = i830_get_fence_size(i830, stride * h);
+	}
+
+	bo = drm_intel_bo_alloc_for_render(i830->bufmgr, "pixmap", size, 0);
+	if (!bo) {
+	    fbDestroyPixmap (pixmap);
+	    return NullPixmap;
+	}
+
+	if (tiling != I915_TILING_NONE)
+	    drm_intel_bo_set_tiling(bo, &tiling, stride);
+
+	screen->ModifyPixmapHeader (pixmap, w, h, 0, 0, stride, NULL);
+    
+	i830_uxa_set_pixmap_bo (pixmap, bo);
+    }
+
+    return pixmap;
+}
+
+static Bool
+i830_uxa_destroy_pixmap (PixmapPtr pixmap)
+{
+    if (pixmap->refcnt == 1) {
+	dri_bo  *bo = i830_get_pixmap_bo (pixmap);
+    
+	if (bo)
+	    dri_bo_unreference (bo);
+    }
+    fbDestroyPixmap (pixmap);
+    return TRUE;
+}
+
+void i830_uxa_create_screen_resources(ScreenPtr pScreen)
+{
+    ScrnInfoPtr scrn = xf86Screens[pScreen->myNum];
+    I830Ptr i830 = I830PTR(scrn);
+    dri_bo *bo = i830->front_buffer->bo;
+
+    if (bo != NULL) {
+	PixmapPtr   pixmap = pScreen->GetScreenPixmap(pScreen);
+	i830_uxa_set_pixmap_bo (pixmap, bo);
+	dri_bo_reference(bo);
+    }
+}
+
+Bool
+i830_uxa_init (ScreenPtr pScreen)
+{
+    ScrnInfoPtr scrn = xf86Screens[pScreen->myNum];
+    I830Ptr i830 = I830PTR(scrn);
+
+    if (!dixRequestPrivate(&uxa_pixmap_index, 0))
+	return FALSE;
+
+    i830->uxa_driver = uxa_driver_alloc();
+    if (i830->uxa_driver == NULL) {
+	i830->accel = ACCEL_NONE;
+	return FALSE;
+    }
+    memset(i830->uxa_driver, 0, sizeof(*i830->uxa_driver));
+
+    i830->bufferOffset = 0;
+    i830->uxa_driver->uxa_major = 1;
+    i830->uxa_driver->uxa_minor = 0;
+
+    /* Solid fill */
+    i830->uxa_driver->prepare_solid = i830_uxa_prepare_solid;
+    i830->uxa_driver->solid = i830_uxa_solid;
+    i830->uxa_driver->done_solid = i830_uxa_done_solid;
+
+    /* Copy */
+    i830->uxa_driver->prepare_copy = i830_uxa_prepare_copy;
+    i830->uxa_driver->copy = i830_uxa_copy;
+    i830->uxa_driver->done_copy = i830_uxa_done_copy;
+
+    /* Composite */
+    if (!IS_I9XX(i830)) {
+    	i830->uxa_driver->check_composite = i830_check_composite;
+    	i830->uxa_driver->prepare_composite = i830_prepare_composite;
+    	i830->uxa_driver->composite = i830_composite;
+    	i830->uxa_driver->done_composite = i830_done_composite;
+    } else if (IS_I915G(i830) || IS_I915GM(i830) ||
+	       IS_I945G(i830) || IS_I945GM(i830) || IS_G33CLASS(i830))
+    {
+	i830->uxa_driver->check_composite = i915_check_composite;
+   	i830->uxa_driver->prepare_composite = i915_prepare_composite;
+	i830->uxa_driver->composite = i915_composite;
+    	i830->uxa_driver->done_composite = i830_done_composite;
+    } else {
+ 	i830->uxa_driver->check_composite = i965_check_composite;
+ 	i830->uxa_driver->prepare_composite = i965_prepare_composite;
+ 	i830->uxa_driver->composite = i965_composite;
+ 	i830->uxa_driver->done_composite = i830_done_composite;
+    }
+
+    i830->uxa_driver->prepare_access = i830_uxa_prepare_access;
+    i830->uxa_driver->finish_access = i830_uxa_finish_access;
+    i830->uxa_driver->pixmap_is_offscreen = i830_uxa_pixmap_is_offscreen;
+
+    if(!uxa_driver_init(pScreen, i830->uxa_driver)) {
+	xf86DrvMsg(scrn->scrnIndex, X_INFO,
+		   "UXA initialization failed\n");
+	xfree(i830->uxa_driver);
+	i830->accel = ACCEL_NONE;
+	return FALSE;
+    }
+
+    pScreen->CreatePixmap = i830_uxa_create_pixmap;
+    pScreen->DestroyPixmap = i830_uxa_destroy_pixmap;
+
+    uxa_set_fallback_debug(pScreen, i830->fallback_debug);
+
+    return TRUE;
+}
commit ee539e58c3bf39766c560d625f6e4158d419e64e
Author: Kristian Høgsberg <krh at redhat.com>
Date:   Mon Jun 8 21:14:14 2009 -0400

    Fall back to fb pixmaps for backing glyph pictures
    
    GEM pads pixmaps to 512 byte stride and backs them with a kernel side
    buffer objects.  We typically don't render out of glyph pictures, so
    we're incurring a lot of overhead per glyph by allocating a GEM pixmap
    per glyph.  By looking at the usage hint, we can fall back to
    fbCreatePixmap for pixmaps backing glyph pictures, which gives us
    a nice tight malloced pixmap.  The fast path for text rendering is
    compositing from the glyph cache pixmap to the destination, which
    shouldn't be significantly affected.
    
    Quick bit of testing:
    (firefox-20090601)
        xlib-rgba-before    384512.49:  1.01x
        xlib-rgba-after     389633.94:  1.00x
    The difference being within the margin of error for the benchmark.
    
    Signed-off-by: Eric Anholt <eric at anholt.net>
    Tested-by: Chris Wilson <chris at chris-wilson.co.uk>

diff --git a/src/i830_exa.c b/src/i830_exa.c
index d0ada02..eb35014 100644
--- a/src/i830_exa.c
+++ b/src/i830_exa.c
@@ -598,6 +598,9 @@ i830_uxa_create_pixmap (ScreenPtr screen, int w, int h, int depth, unsigned usag
     if (w > 32767 || h > 32767)
 	return NullPixmap;
 
+    if (usage == CREATE_PIXMAP_USAGE_GLYPH_PICTURE)
+	return fbCreatePixmap (screen, w, h, depth, usage);
+
     pixmap = fbCreatePixmap (screen, 0, 0, depth, usage);
 
     if (w && h)
commit 4698b3bd79452ae2066a3d195cf58dd5e30c93f3
Author: Xiang, Haihao <haihao.xiang at intel.com>
Date:   Fri Jun 5 10:43:50 2009 +0800

    xvmc: don't include xf86dri.h

diff --git a/src/xvmc/intel_xvmc.h b/src/xvmc/intel_xvmc.h
index 862b30e..169e7f8 100644
--- a/src/xvmc/intel_xvmc.h
+++ b/src/xvmc/intel_xvmc.h
@@ -54,7 +54,6 @@
 #include <X11/extensions/vldXvMC.h>
 #include <drm_sarea.h>
 #include "i915_drm.h"
-#include "xf86dri.h"
 #include "intel_bufmgr.h"
 
 #include "intel_batchbuffer.h"
commit 4d9f3a21ab9b2737fe7a5a088c2da1b0c2be7f04
Merge: b8e360b... 52054b6...
Author: root <root at hdmi.sh.intel.com>
Date:   Thu Jun 4 10:27:41 2009 +0800

    Merge branch 'xvmc-vld'

commit b8e360bf2b77d28559d15a7c0f9c766848eb6ced
Author: Eric Anholt <eric at anholt.net>
Date:   Wed Jun 3 10:12:25 2009 +0000

    Fix segfault in DRI2 vblank syncing if the region isn't onscreen.
    
    Also, fix some weirdness in the checking for whether the target was the
    screen.

diff --git a/src/i830_dri.c b/src/i830_dri.c
index 667f687..9da1d40 100644
--- a/src/i830_dri.c
+++ b/src/i830_dri.c
@@ -289,7 +289,6 @@ I830DRI2CopyRegion(DrawablePtr pDraw, RegionPtr pRegion,
 	? pDraw : &srcPrivate->pPixmap->drawable;
     DrawablePtr dst = (dstPrivate->attachment == DRI2BufferFrontLeft)
 	? pDraw : &dstPrivate->pPixmap->drawable;
-    PixmapPtr dst_pixmap = get_drawable_pixmap(dst);
     RegionPtr pCopyClip;
     GCPtr pGC;
 
@@ -300,7 +299,7 @@ I830DRI2CopyRegion(DrawablePtr pDraw, RegionPtr pRegion,
     ValidateGC(dst, pGC);
 
     /* Wait for the scanline to be outside the region to be copied */
-    if (dstPrivate->attachment == DRI2BufferFrontLeft) {
+    if (pixmap_is_scanout(get_drawable_pixmap(dst))) {
 	BoxPtr box;
 	BoxRec crtcbox;
 	int y1, y2;
@@ -310,33 +309,35 @@ I830DRI2CopyRegion(DrawablePtr pDraw, RegionPtr pRegion,
 	box = REGION_EXTENTS(unused, pGC->pCompositeClip);
 	crtc = i830_covering_crtc(pScrn, box, NULL, &crtcbox);
 
-	if (pI830->use_drm_mode)
-	    pipe = drmmode_get_pipe_from_crtc_id(pI830->bufmgr, crtc);
-	else {
-	    I830CrtcPrivatePtr intel_crtc = crtc->driver_private;
-	    pipe = intel_crtc->pipe;
-	}
+	if (crtc != NULL) {
+	    if (pI830->use_drm_mode)
+		pipe = drmmode_get_pipe_from_crtc_id(pI830->bufmgr, crtc);
+	    else {
+		I830CrtcPrivatePtr intel_crtc = crtc->driver_private;
+		pipe = intel_crtc->pipe;
+	    }
 
-	if (pipe == 0) {
-	    event = MI_WAIT_FOR_PIPEA_SCAN_LINE_WINDOW;
-	    load_scan_lines_pipe = MI_LOAD_SCAN_LINES_DISPLAY_PIPEA;
-	} else {
-	    event = MI_WAIT_FOR_PIPEB_SCAN_LINE_WINDOW;
-	    load_scan_lines_pipe = MI_LOAD_SCAN_LINES_DISPLAY_PIPEB;
-	}
+	    if (pipe == 0) {
+		event = MI_WAIT_FOR_PIPEA_SCAN_LINE_WINDOW;
+		load_scan_lines_pipe = MI_LOAD_SCAN_LINES_DISPLAY_PIPEA;
+	    } else {
+		event = MI_WAIT_FOR_PIPEB_SCAN_LINE_WINDOW;
+		load_scan_lines_pipe = MI_LOAD_SCAN_LINES_DISPLAY_PIPEB;
+	    }
 
-	y1 = box->y1 - crtc->y;
-	y2 = box->y2 - crtc->y;
-
-	BEGIN_BATCH(5);
-	/* The documentation says that the LOAD_SCAN_LINES command
-	 * always comes in pairs. Don't ask me why. */
-	OUT_BATCH(MI_LOAD_SCAN_LINES_INCL | load_scan_lines_pipe);
-	OUT_BATCH((y1 << 16) | y2);
-	OUT_BATCH(MI_LOAD_SCAN_LINES_INCL | load_scan_lines_pipe);
-	OUT_BATCH((y1 << 16) | y2);
-	OUT_BATCH(MI_WAIT_FOR_EVENT | event);
-	ADVANCE_BATCH();
+	    y1 = box->y1 - crtc->y;
+	    y2 = box->y2 - crtc->y;
+
+	    BEGIN_BATCH(5);
+	    /* The documentation says that the LOAD_SCAN_LINES command
+	     * always comes in pairs. Don't ask me why. */
+	    OUT_BATCH(MI_LOAD_SCAN_LINES_INCL | load_scan_lines_pipe);
+	    OUT_BATCH((y1 << 16) | y2);
+	    OUT_BATCH(MI_LOAD_SCAN_LINES_INCL | load_scan_lines_pipe);
+	    OUT_BATCH((y1 << 16) | y2);
+	    OUT_BATCH(MI_WAIT_FOR_EVENT | event);
+	    ADVANCE_BATCH();
+	}
     }
 
     (*pGC->ops->CopyArea)(src, dst,
commit 5901a67fc85ac80fabfa98b78202a388445275c3
Author: Eric Anholt <eric at anholt.net>
Date:   Wed Jun 3 10:00:50 2009 +0000

    Fix some drawable abuse in i830_dri.c
    
    We were casting pixmaps to drawables even if they weren't pixmaps.  They did
    happen to work out since we only used the drawable record out of them.

diff --git a/src/i830_dri.c b/src/i830_dri.c
index 8b2629f..667f687 100644
--- a/src/i830_dri.c
+++ b/src/i830_dri.c
@@ -285,10 +285,11 @@ I830DRI2CopyRegion(DrawablePtr pDraw, RegionPtr pRegion,
     ScreenPtr pScreen = pDraw->pScreen;
     ScrnInfoPtr pScrn = xf86Screens[pScreen->myNum];
     I830Ptr pI830 = I830PTR(pScrn);
-    PixmapPtr pSrcPixmap = (srcPrivate->attachment == DRI2BufferFrontLeft)
-	? (PixmapPtr) pDraw : srcPrivate->pPixmap;
-    PixmapPtr pDstPixmap = (dstPrivate->attachment == DRI2BufferFrontLeft)
-	? (PixmapPtr) pDraw : dstPrivate->pPixmap;
+    DrawablePtr src = (srcPrivate->attachment == DRI2BufferFrontLeft)
+	? pDraw : &srcPrivate->pPixmap->drawable;
+    DrawablePtr dst = (dstPrivate->attachment == DRI2BufferFrontLeft)
+	? pDraw : &dstPrivate->pPixmap->drawable;
+    PixmapPtr dst_pixmap = get_drawable_pixmap(dst);
     RegionPtr pCopyClip;
     GCPtr pGC;
 
@@ -296,7 +297,7 @@ I830DRI2CopyRegion(DrawablePtr pDraw, RegionPtr pRegion,
     pCopyClip = REGION_CREATE(pScreen, NULL, 0);
     REGION_COPY(pScreen, pCopyClip, pRegion);
     (*pGC->funcs->ChangeClip) (pGC, CT_REGION, pCopyClip, 0);
-    ValidateGC(&pDstPixmap->drawable, pGC);
+    ValidateGC(dst, pGC);
 
     /* Wait for the scanline to be outside the region to be copied */
     if (dstPrivate->attachment == DRI2BufferFrontLeft) {
@@ -338,7 +339,7 @@ I830DRI2CopyRegion(DrawablePtr pDraw, RegionPtr pRegion,
 	ADVANCE_BATCH();
     }
 
-    (*pGC->ops->CopyArea)(&pSrcPixmap->drawable, &pDstPixmap->drawable,
+    (*pGC->ops->CopyArea)(src, dst,
 			  pGC, 0, 0, pDraw->width, pDraw->height, 0, 0);
     FreeScratchGC(pGC);
 
commit 5e48146777921b693c828af9566a77422cc4f85f
Author: Eric Anholt <eric at anholt.net>
Date:   Wed Jun 3 09:57:10 2009 +0000

    Replace some pixmap-related idioms with inline functions to do so.

diff --git a/src/i830.h b/src/i830.h
index 2d9e905..c0e7dcd 100644
--- a/src/i830.h
+++ b/src/i830.h
@@ -946,4 +946,23 @@ i830_debug_sync(ScrnInfoPtr scrn)
 }
 #endif
 
+static inline PixmapPtr
+get_drawable_pixmap(DrawablePtr drawable)
+{
+    ScreenPtr screen = drawable->pScreen;
+
+    if (drawable->type == DRAWABLE_PIXMAP)
+	return (PixmapPtr)drawable;
+    else
+	return screen->GetWindowPixmap((WindowPtr)drawable);
+}
+
+static inline Bool
+pixmap_is_scanout(PixmapPtr pixmap)
+{
+    ScreenPtr screen = pixmap->drawable.pScreen;
+
+    return pixmap == screen->GetScreenPixmap(screen);
+}
+
 #endif /* _I830_H_ */
diff --git a/src/i830_dri.c b/src/i830_dri.c
index 632280e..8b2629f 100644
--- a/src/i830_dri.c
+++ b/src/i830_dri.c
@@ -103,10 +103,7 @@ I830DRI2CreateBuffers(DrawablePtr pDraw, unsigned int *attachments, int count)
     pDepthPixmap = NULL;
     for (i = 0; i < count; i++) {
 	if (attachments[i] == DRI2BufferFrontLeft) {
-	    if (pDraw->type == DRAWABLE_PIXMAP)
-		pPixmap = (PixmapPtr) pDraw;
-	    else
-		pPixmap = (*pScreen->GetWindowPixmap)((WindowPtr) pDraw);
+	    pPixmap = get_drawable_pixmap(pDraw);
 	    pPixmap->refcnt++;
 	} else if (attachments[i] == DRI2BufferStencil && pDepthPixmap) {
 	    pPixmap = pDepthPixmap;
@@ -186,10 +183,7 @@ I830DRI2CreateBuffer(DrawablePtr pDraw, unsigned int attachment,
     }
 
     if (attachment == DRI2BufferFrontLeft) {
-	if (pDraw->type == DRAWABLE_PIXMAP)
-	    pPixmap = (PixmapPtr) pDraw;
-	else
-	    pPixmap = (*pScreen->GetWindowPixmap)((WindowPtr) pDraw);
+	pPixmap = get_drawable_pixmap(pDraw);
 	pPixmap->refcnt++;
     } else {
 	unsigned int hint = 0;
diff --git a/src/i830_video.c b/src/i830_video.c
index 085e79a..1ff80a0 100644
--- a/src/i830_video.c
+++ b/src/i830_video.c
@@ -2216,7 +2216,7 @@ I830PutImage(ScrnInfoPtr pScrn,
     I830PortPrivPtr pPriv = (I830PortPrivPtr) data;
     ScreenPtr pScreen = screenInfo.screens[pScrn->scrnIndex];
     I830OverlayRegPtr overlay;
-    PixmapPtr pPixmap;
+    PixmapPtr pPixmap = get_drawable_pixmap(pDraw);;
     INT32 x1, x2, y1, y2;
     int srcPitch = 0, srcPitch2 = 0, dstPitch, destId;
     int dstPitch2 = 0;
@@ -2467,12 +2467,6 @@ I830PutImage(ScrnInfoPtr pScrn,
 	break;
     }
 
-    if (pDraw->type == DRAWABLE_WINDOW) {
-	pPixmap = (*pScreen->GetWindowPixmap)((WindowPtr)pDraw);
-    } else {
-	pPixmap = (PixmapPtr)pDraw;
-    }
-
     if (!pPriv->textured) {
 	i830_display_video(pScrn, crtc, destId, width, height, dstPitch,
 			   x1, y1, x2, y2, &dstBox, src_w, src_h,
@@ -2497,7 +2491,7 @@ I830PutImage(ScrnInfoPtr pScrn,
 	    int y1, y2;
 	    int pipe = -1, event, load_scan_lines_pipe;
 
-	    if (pPixmap == pScreen->GetScreenPixmap(pScreen)) {
+	    if (pixmap_is_scanout(pPixmap)) {
 		if (pI830->use_drm_mode)
 		    pipe = drmmode_get_pipe_from_crtc_id(pI830->bufmgr, crtc);
 		else {
commit ea0b00e675281b2914450992501566122f9affe0
Author: Ma Ling <ling.ma at intel.com>
Date:   Mon Jun 1 17:13:53 2009 +0800

    Provide mode line from VBT to xorg.
    
    If sdvo get modes function can't find modes from EDID,
    transmit sdvo lvds modes from VBT to xorg.
    
    Signed-off-by: Ma Ling <ling.ma at intel.com>

diff --git a/src/i830_sdvo.c b/src/i830_sdvo.c
index a4c9120..cfba482 100644
--- a/src/i830_sdvo.c
+++ b/src/i830_sdvo.c
@@ -91,6 +91,10 @@ struct i830_sdvo_priv {
      * This is set if we treat the device as HDMI, instead of DVI.
      */
     Bool is_hdmi;
+    /**
+     * This is set if we detect output of sdvo device as LVDS.
+     */
+    Bool is_lvds;
 
     /**
      * Returned SDTV resolutions allowed for the current format, if the
@@ -1550,6 +1554,31 @@ i830_sdvo_check_hdmi_encode (xf86OutputPtr output)
 	return FALSE;
 }
 
+/* This function will try to fetch native modes for sdvo lvds output*/
+static DisplayModePtr i830_sdvo_lvds_fetch_modes(xf86OutputPtr  output)
+{
+    I830Ptr                 pI830 = I830PTR(output->scrn);
+    DisplayModePtr          modes;
+
+    /*
+     * Attempt to get the mode list from DDC.
+     * Assume that the preferred modes are
+     * arranged in priority order,
+     */
+    modes = i830_ddc_get_modes(output);
+    if (modes != NULL)
+        goto end;
+
+    if (pI830->sdvo_lvds_fixed_mode != NULL)
+        modes = xf86DuplicateModes(output->scrn, pI830->sdvo_lvds_fixed_mode);
+
+end:
+    /* Guarantee the the first preferred mode is chosen by xserver */
+    if (modes != NULL)
+        modes->type |= (M_T_DRIVER | M_T_PREFERRED);
+    return modes;
+}
+
 static void i830_sdvo_select_ddc_bus(struct i830_sdvo_priv *dev_priv);
 
 static Bool
@@ -1568,6 +1597,7 @@ i830_sdvo_output_setup (xf86OutputPtr output, uint16_t flag)
     /* clear up privates */
     dev_priv->is_tv = FALSE;
     intel_output->needs_tv_clock = FALSE;
+    dev_priv->is_lvds = FALSE;
 
     if (flag & (SDVO_OUTPUT_TMDS0 | SDVO_OUTPUT_TMDS1))
     {
@@ -1608,14 +1638,14 @@ i830_sdvo_output_setup (xf86OutputPtr output, uint16_t flag)
 	dev_priv->controlled_output = SDVO_OUTPUT_RGB1;
 	output->subpixel_order = SubPixelHorizontalRGB;
 	name_prefix="VGA";
-    } else if (flag & SDVO_OUTPUT_LVDS0) {
-	dev_priv->controlled_output = SDVO_OUTPUT_LVDS0;
-	output->subpixel_order = SubPixelHorizontalRGB;
-	name_prefix="LVDS";
-    } else if (flag & SDVO_OUTPUT_LVDS1) {
-	dev_priv->controlled_output = SDVO_OUTPUT_LVDS1;
-	output->subpixel_order = SubPixelHorizontalRGB;
-	name_prefix="LVDS";
+    } else if (flag & (SDVO_OUTPUT_LVDS0 | SDVO_OUTPUT_LVDS1)) {
+        if (flag & SDVO_OUTPUT_LVDS0)
+            dev_priv->controlled_output = SDVO_OUTPUT_LVDS0;
+        else
+            dev_priv->controlled_output = SDVO_OUTPUT_LVDS1;
+        output->subpixel_order = SubPixelHorizontalRGB;
+        name_prefix="LVDS";
+        dev_priv->is_lvds = TRUE;
     } else {
 	unsigned char	bytes[2];
 
@@ -1746,11 +1776,15 @@ i830_sdvo_get_ddc_modes(xf86OutputPtr output)
     xf86CrtcConfigPtr   xf86_config = XF86_CRTC_CONFIG_PTR(pScrn);
     DisplayModePtr modes = NULL;
     xf86OutputPtr crt;
-    I830OutputPrivatePtr intel_output;
+    I830OutputPrivatePtr intel_output =output->driver_private;
     xf86MonPtr edid_mon = NULL;
-    struct i830_sdvo_priv *dev_priv;
+    struct i830_sdvo_priv *dev_priv = intel_output->dev_priv;
+
+    if (dev_priv->is_lvds)
+        modes = i830_sdvo_lvds_fetch_modes(output);
+    else
+        modes = i830_ddc_get_modes(output);
 
-    modes = i830_ddc_get_modes(output);
     if (modes != NULL)
 	goto check_hdmi;
 
@@ -1774,9 +1808,6 @@ i830_sdvo_get_ddc_modes(xf86OutputPtr output)
 
 check_hdmi:
     /* Check if HDMI encode, setup it and set the flag for HDMI audio */
-    intel_output = output->driver_private;
-    dev_priv = intel_output->dev_priv;
-
     if (dev_priv->caps.output_flags & (SDVO_OUTPUT_TMDS0 | SDVO_OUTPUT_TMDS1))
     {
 	if (!i830_sdvo_check_hdmi_encode(output)) {
@@ -2105,7 +2136,6 @@ i830_sdvo_select_ddc_bus(struct i830_sdvo_priv *dev_priv)
     dev_priv->ddc_bus = 1 << num_bits;
 }
 
-
 Bool
 i830_sdvo_init(ScrnInfoPtr pScrn, int output_device)
 {
commit 9e7ee50bea5f65003f1d70cc06d8c1ace1282548
Author: Ma Ling <ling.ma at intel.com>
Date:   Mon Jun 1 17:13:22 2009 +0800

    Fetch mode line from VBT, then keep it.
    
    Parse SDVO LVDS option section, then according to panel type
    fetch fixed mode line from SDVO LVDS DTDS section .
    
    Signed-off-by: Ma Ling <ling.ma at intel.com>

diff --git a/src/i830.h b/src/i830.h
index 8854286..2d9e905 100644
--- a/src/i830.h
+++ b/src/i830.h
@@ -498,6 +498,7 @@ typedef struct _I830Rec {
    int lvds_ssc_freq; /* in MHz */
    Bool lvds_dither;
    DisplayModePtr lvds_fixed_mode;
+   DisplayModePtr sdvo_lvds_fixed_mode;
    Bool skip_panel_detect;
    Bool integrated_lvds; /* LVDS config from driver feature BDB */
 
diff --git a/src/i830_bios.c b/src/i830_bios.c
index 73c097a..9c1f101 100644
--- a/src/i830_bios.c
+++ b/src/i830_bios.c
@@ -73,6 +73,36 @@ find_section(struct bdb_header *bdb, int section_id)
     return NULL;
 }
 
+static void
+fill_detail_timing_data(DisplayModePtr fixed_mode, unsigned char *timing_ptr)
+{
+    fixed_mode->HDisplay   = _H_ACTIVE(timing_ptr);
+    fixed_mode->VDisplay   = _V_ACTIVE(timing_ptr);
+    fixed_mode->HSyncStart = fixed_mode->HDisplay +
+        _H_SYNC_OFF(timing_ptr);
+    fixed_mode->HSyncEnd   = fixed_mode->HSyncStart +
+        _H_SYNC_WIDTH(timing_ptr);
+    fixed_mode->HTotal     = fixed_mode->HDisplay +
+        _H_BLANK(timing_ptr);
+    fixed_mode->VSyncStart = fixed_mode->VDisplay +
+        _V_SYNC_OFF(timing_ptr);
+    fixed_mode->VSyncEnd   = fixed_mode->VSyncStart +
+        _V_SYNC_WIDTH(timing_ptr);
+    fixed_mode->VTotal     = fixed_mode->VDisplay +
+        _V_BLANK(timing_ptr);
+    fixed_mode->Clock      = _PIXEL_CLOCK(timing_ptr) / 1000;
+    fixed_mode->type       = M_T_PREFERRED;
+
+    /* Some VBTs have bogus h/vtotal values */
+    if (fixed_mode->HSyncEnd > fixed_mode->HTotal)
+        fixed_mode->HTotal = fixed_mode->HSyncEnd + 1;
+    if (fixed_mode->VSyncEnd > fixed_mode->VTotal)
+        fixed_mode->VTotal = fixed_mode->VSyncEnd + 1;
+
+    xf86SetModeDefaultName(fixed_mode);
+
+}
+
 /**
  * Returns the BIOS's fixed panel mode.
  *
@@ -82,7 +112,7 @@ find_section(struct bdb_header *bdb, int section_id)
  * detecting the panel mode is preferable.
  */
 static void
-parse_panel_data(I830Ptr pI830, struct bdb_header *bdb)
+parse_integrated_panel_data(I830Ptr pI830, struct bdb_header *bdb)
 {
     struct bdb_lvds_options *lvds_options;
     struct bdb_lvds_lfp_data_ptrs *lvds_lfp_data_ptrs;
@@ -118,32 +148,43 @@ parse_panel_data(I830Ptr pI830, struct bdb_header *bdb)
     /* Since lvds_bdb_2_fp_edid_dtd is just an EDID detailed timing
      * block, pull the contents out using EDID macros.
      */
-    fixed_mode->HDisplay   = _H_ACTIVE(timing_ptr);
-    fixed_mode->VDisplay   = _V_ACTIVE(timing_ptr);
-    fixed_mode->HSyncStart = fixed_mode->HDisplay +
-	_H_SYNC_OFF(timing_ptr);
-    fixed_mode->HSyncEnd   = fixed_mode->HSyncStart +
-	_H_SYNC_WIDTH(timing_ptr);
-    fixed_mode->HTotal     = fixed_mode->HDisplay +
-	_H_BLANK(timing_ptr);
-    fixed_mode->VSyncStart = fixed_mode->VDisplay +
-	_V_SYNC_OFF(timing_ptr);
-    fixed_mode->VSyncEnd   = fixed_mode->VSyncStart +
-	_V_SYNC_WIDTH(timing_ptr);
-    fixed_mode->VTotal     = fixed_mode->VDisplay +
-	_V_BLANK(timing_ptr);
-    fixed_mode->Clock      = _PIXEL_CLOCK(timing_ptr) / 1000;
-    fixed_mode->type       = M_T_PREFERRED;
+    fill_detail_timing_data(fixed_mode, timing_ptr);
+    pI830->lvds_fixed_mode = fixed_mode;
+}
 
-    /* Some VBTs have bogus h/vtotal values */
-    if (fixed_mode->HSyncEnd > fixed_mode->HTotal)
-	fixed_mode->HTotal = fixed_mode->HSyncEnd + 1;
-    if (fixed_mode->VSyncEnd > fixed_mode->VTotal)
-	fixed_mode->VTotal = fixed_mode->VSyncEnd + 1;
+static void
+parse_sdvo_panel_data(I830Ptr pI830, struct bdb_header *bdb)
+{
+    DisplayModePtr fixed_mode;
+    struct bdb_sdvo_lvds_options *sdvo_lvds_options;
+    unsigned char *timing_ptr;
 
-    xf86SetModeDefaultName(fixed_mode);
+    pI830->sdvo_lvds_fixed_mode = NULL;
 
-    pI830->lvds_fixed_mode = fixed_mode;
+    sdvo_lvds_options = find_section(bdb, BDB_SDVO_LVDS_OPTIONS);
+    if (sdvo_lvds_options == NULL)
+        return;
+
+    timing_ptr = find_section(bdb, BDB_SDVO_PANEL_DTDS);
+    if (timing_ptr == NULL)
+        return;
+
+    fixed_mode = xnfalloc(sizeof(DisplayModeRec));
+    if (fixed_mode == NULL)
+        return;
+
+    memset(fixed_mode, 0, sizeof(*fixed_mode));
+    fill_detail_timing_data(fixed_mode, timing_ptr +
+                        (sdvo_lvds_options->panel_type * DET_TIMING_INFO_LEN));
+    pI830->sdvo_lvds_fixed_mode = fixed_mode;
+
+}
+
+static void
+parse_panel_data(I830Ptr pI830, struct bdb_header *bdb)
+{
+    parse_integrated_panel_data(pI830, bdb);
+    parse_sdvo_panel_data(pI830, bdb);
 }
 
 static void
diff --git a/src/i830_bios.h b/src/i830_bios.h
index 78af830..1f1f1aa 100644
--- a/src/i830_bios.h
+++ b/src/i830_bios.h
@@ -436,6 +436,23 @@ struct bdb_driver_feature {
     uint8_t	legacy_crt_max_refresh;
 } __attribute__((packed));
 
+struct bdb_sdvo_lvds_options {
+    uint8_t     panel_backlight;
+    uint8_t     h40_set_panel_type;
+    uint8_t     panel_type;
+    uint8_t     ssc_clk_freq;
+    uint16_t    als_low_trip;
+    uint16_t    als_high_trip;
+    uint8_t     sclalarcoeff_tab_row_num;
+    uint8_t     sclalarcoeff_tab_row_size;
+    uint8_t     coefficient[8];
+    uint8_t     panel_misc_bits_1;
+    uint8_t     panel_misc_bits_2;
+    uint8_t     panel_misc_bits_3;
+    uint8_t     panel_misc_bits_4;
+} __attribute__((packed));
+
+
 #ifndef REG_DUMPER
 int i830_bios_init(ScrnInfoPtr pScrn);
 #endif
commit 88f766be008008d76c150e3ac16f09d4ecbb6d53
Author: Ma Ling <ling.ma at intel.com>
Date:   Fri May 15 15:22:11 2009 +0800

    Wait doubled regis to be stable for load pipe detection
    
    We have two approaches for VGA detections: hot plug detection for 945G onwards
    and load pipe detection for Pre-945G. load pipe detection will get one free
    pipe ,and set border color as red and blue, then check CRT status by
    swf register. Because pipe registers in hires mode are double buffered,
    once set force border bit in pipeconf register, we have to wait for
    a vblank until it is effective, otherwise result is unstable.
    
    It fixed freedesktop bug #20463
    
    Signed-off-by: Ma Ling <ling.ma at intel.com>

diff --git a/src/i830_crt.c b/src/i830_crt.c
index eced5e8..536d63d 100644
--- a/src/i830_crt.c
+++ b/src/i830_crt.c
@@ -286,7 +286,8 @@ i830_crt_detect_load (xf86CrtcPtr	    crtc,
     {
 	uint32_t	pipeconf = INREG(pipeconf_reg);
 	OUTREG(pipeconf_reg, pipeconf | PIPECONF_FORCE_BORDER);
-	
+        /* Wait for next Vblank to substitue border color for Color info */
+        i830WaitForVblank (pScrn);
 	st00 = pI830->readStandard (pI830, 0x3c2);
 	present = (st00 & (1 << 4)) != 0;
 	OUTREG(pipeconf_reg, pipeconf);
commit 6a635be5ea2b2df9d6b9a8006325244394038474
Author: Ma Ling <ling.ma at intel.com>
Date:   Fri May 15 14:01:18 2009 +0800

    Set activation periods as 64 cdclk sync up with KMS
    
    We use force CRT detect trigger bit(1 << 3) to detect VGA in hot plug mode,
    which triggers a CRT hotplug/unplug detection cycle independent of the
    interrupt enable bit(1 << 9), so keep bit 9.
    And although spec says CRT_HOTPLUG_ACTIVATION_PERIOD_64(1 << 8) is only useful
    for mobile platform, it is also required to detect vga on G4x platform correctly.
    Tested the patch on G45/G43/Q45 platforms with no regressions
    
    It fixed freedesktop.org bug #21120 and part of bug #21210.
    
    Signed-off-by: Ma Ling <ling.ma at intel.com>

diff --git a/src/i810_reg.h b/src/i810_reg.h
index cb33784..db542aa 100644
--- a/src/i810_reg.h
+++ b/src/i810_reg.h
@@ -1262,6 +1262,7 @@ SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 # define CRT_HOTPLUG_DETECT_VOLTAGE_325MV	(0 << 2)
 # define CRT_HOTPLUG_DETECT_VOLTAGE_475MV	(1 << 2)
 # define CRT_HOTPLUG_MASK			(0x3fc)	/* Bits 9-2 */
+# define CRT_FORCE_HOTPLUG_MASK                 0xfffffe1f
 
 #define PORT_HOTPLUG_STAT	0x61114
 # define HDMIB_HOTPLUG_INT_STATUS		(1 << 29)
diff --git a/src/i830_crt.c b/src/i830_crt.c
index d8e4a76..eced5e8 100644
--- a/src/i830_crt.c
+++ b/src/i830_crt.c
@@ -185,7 +185,7 @@ i830_crt_detect_hotplug(xf86OutputPtr output)
 
     hotplug_en = INREG(PORT_HOTPLUG_EN);
 
-    hotplug_en &= ~CRT_HOTPLUG_MASK;
+    hotplug_en &= CRT_FORCE_HOTPLUG_MASK;
 
     /* This starts the detection sequence */
     hotplug_en |= CRT_HOTPLUG_FORCE_DETECT;
@@ -193,7 +193,7 @@ i830_crt_detect_hotplug(xf86OutputPtr output)
     /* GM45 requires a longer activation period to reliably
      * detect CRT
      */
-    if (IS_GM45(pI830))
+    if (IS_G4X(pI830))
 	hotplug_en |= CRT_HOTPLUG_ACTIVATION_PERIOD_64;
 
     /* Use the default voltage value */
commit ec2fde7c8250fdc30984f16c8a1d3587d70b0144
Author: Jesse Barnes <jbarnes at virtuousgeek.org>
Date:   Tue Jun 2 16:42:56 2009 +0100

    Sync DRI2 CopyRegion to vertical retrace
    
    Akin to the Xv code, wait for the scanline to be outside the range to be
    copied by the DRI2 CopyRegion hook.
    
    Fixes fdo bug #20664.
    
    Reviewed-by: Eric Anholt <eric at anholt.net>
    Signed-off-by: Jesse Barnes <jbarnes at virtuousgeek.org>

diff --git a/src/i830.h b/src/i830.h
index 60dc146..8854286 100644
--- a/src/i830.h
+++ b/src/i830.h
@@ -663,7 +663,9 @@ extern void I830EmitFlush(ScrnInfoPtr pScrn);
 
 extern void I830InitVideo(ScreenPtr pScreen);
 extern void i830_crtc_dpms_video(xf86CrtcPtr crtc, Bool on);
-
+extern xf86CrtcPtr i830_covering_crtc (ScrnInfoPtr pScrn, BoxPtr box,
+				       xf86CrtcPtr desired,
+				       BoxPtr crtc_box_ret);
 int
 i830_crtc_pipe (xf86CrtcPtr crtc);
 
diff --git a/src/i830_dri.c b/src/i830_dri.c
index fc059df..632280e 100644
--- a/src/i830_dri.c
+++ b/src/i830_dri.c
@@ -303,6 +303,47 @@ I830DRI2CopyRegion(DrawablePtr pDraw, RegionPtr pRegion,
     REGION_COPY(pScreen, pCopyClip, pRegion);
     (*pGC->funcs->ChangeClip) (pGC, CT_REGION, pCopyClip, 0);
     ValidateGC(&pDstPixmap->drawable, pGC);
+
+    /* Wait for the scanline to be outside the region to be copied */
+    if (dstPrivate->attachment == DRI2BufferFrontLeft) {
+	BoxPtr box;
+	BoxRec crtcbox;
+	int y1, y2;
+	int pipe = -1, event, load_scan_lines_pipe;
+	xf86CrtcPtr crtc;
+
+	box = REGION_EXTENTS(unused, pGC->pCompositeClip);
+	crtc = i830_covering_crtc(pScrn, box, NULL, &crtcbox);
+
+	if (pI830->use_drm_mode)
+	    pipe = drmmode_get_pipe_from_crtc_id(pI830->bufmgr, crtc);
+	else {
+	    I830CrtcPrivatePtr intel_crtc = crtc->driver_private;
+	    pipe = intel_crtc->pipe;
+	}
+
+	if (pipe == 0) {
+	    event = MI_WAIT_FOR_PIPEA_SCAN_LINE_WINDOW;
+	    load_scan_lines_pipe = MI_LOAD_SCAN_LINES_DISPLAY_PIPEA;
+	} else {
+	    event = MI_WAIT_FOR_PIPEB_SCAN_LINE_WINDOW;
+	    load_scan_lines_pipe = MI_LOAD_SCAN_LINES_DISPLAY_PIPEB;
+	}
+
+	y1 = box->y1 - crtc->y;
+	y2 = box->y2 - crtc->y;
+
+	BEGIN_BATCH(5);
+	/* The documentation says that the LOAD_SCAN_LINES command
+	 * always comes in pairs. Don't ask me why. */
+	OUT_BATCH(MI_LOAD_SCAN_LINES_INCL | load_scan_lines_pipe);
+	OUT_BATCH((y1 << 16) | y2);
+	OUT_BATCH(MI_LOAD_SCAN_LINES_INCL | load_scan_lines_pipe);
+	OUT_BATCH((y1 << 16) | y2);
+	OUT_BATCH(MI_WAIT_FOR_EVENT | event);
+	ADVANCE_BATCH();
+    }
+
     (*pGC->ops->CopyArea)(&pSrcPixmap->drawable, &pDstPixmap->drawable,
 			  pGC, 0, 0, pDraw->width, pDraw->height, 0, 0);
     FreeScratchGC(pGC);
diff --git a/src/i830_video.c b/src/i830_video.c
index 5beee52..085e79a 100644
--- a/src/i830_video.c
+++ b/src/i830_video.c
@@ -1713,7 +1713,7 @@ i830_box_area (BoxPtr box)
  * with greater coverage
  */
 
-static xf86CrtcPtr
+xf86CrtcPtr
 i830_covering_crtc (ScrnInfoPtr pScrn,
 		    BoxPtr	box,
 		    xf86CrtcPtr desired,
commit 704771f1c595df481d244a6f074e9f5620d4a720
Author: Adam Jackson <ajax at redhat.com>
Date:   Thu May 28 15:03:45 2009 -0400

    Remove useless loader symbol lists.

diff --git a/src/common.h b/src/common.h
index ab7a653..335fe75 100644
--- a/src/common.h
+++ b/src/common.h
@@ -82,17 +82,6 @@ extern void I830InitpScrn(ScrnInfoPtr pScrn);
 
 /* Symbol lists shared by the i810 and i830 parts. */
 extern int I830EntityIndex;
-extern const char *I810vgahwSymbols[];
-extern const char *I810ramdacSymbols[];
-extern const char *I810ddcSymbols[];
-extern const char *I810fbSymbols[];
-extern const char *I810xaaSymbols[];
-extern const char *I810shadowFBSymbols[];
-#ifdef XF86DRI
-extern const char *I810driSymbols[];
-extern const char *I810drmSymbols[];
-#endif
-extern const char *I810i2cSymbols[];
 
 extern void I830DPRINTF_stub(const char *filename, int line,
 			     const char *function, const char *fmt, ...);
diff --git a/src/i810.h b/src/i810.h
index bb356e8..93b8b76 100644
--- a/src/i810.h
+++ b/src/i810.h
@@ -266,8 +266,6 @@ typedef struct _I810Rec {
    int  drmMinor;
 } I810Rec;
 
-extern const char *I810vbeSymbols[];
-
 #define I810PTR(p) ((I810Ptr)((p)->driverPrivate))
 
 #define I810_SELECT_FRONT	0
diff --git a/src/i810_driver.c b/src/i810_driver.c
index 627cffc..21c35da 100644
--- a/src/i810_driver.c
+++ b/src/i810_driver.c
@@ -258,145 +258,6 @@ static const OptionInfoRec I810Options[] = {
 /* *INDENT-ON* */
 #endif
 
-const char *I810vgahwSymbols[] = {
-   "vgaHWFreeHWRec",
-   "vgaHWGetHWRec",
-   "vgaHWGetIOBase",
-   "vgaHWGetIndex",
-   "vgaHWInit",
-   "vgaHWLock",
-   "vgaHWMapMem",
-   "vgaHWProtect",
-   "vgaHWRestore",
-   "vgaHWSave",
-   "vgaHWSaveScreen",
-   "vgaHWSetMmioFuncs",
-   "vgaHWUnlock",
-   "vgaHWUnmapMem",
-   NULL
-};
-
-const char *I810fbSymbols[] = {
-   "fbPictureInit",
-   "fbScreenInit",
-   NULL
-};
-
-const char *I810vbeSymbols[] = {
-   "VBEFreeModeInfo",
-   "VBEFreeVBEInfo",
-   "VBEGetModeInfo",
-   "VBEGetModePool",
-   "VBEGetVBEInfo",
-   "VBEGetVBEMode",
-   "VBEInit",
-   "VBEPrintModes",
-   "VBESaveRestore",
-   "VBESetDisplayStart",
-   "VBESetGetDACPaletteFormat",
-   "VBESetGetLogicalScanlineLength",
-   "VBESetGetPaletteData",
-   "VBESetModeNames",
-   "VBESetModeParameters",
-   "VBESetVBEMode",
-   "VBEValidateModes",
-   "vbeDoEDID",
-   "vbeFree",
-   NULL
-};
-
-#ifdef XFree86LOADER
-static const char *vbeOptionalSymbols[] = {
-   "VBEDPMSSet",
-   "VBEGetPixelClock",
-   NULL
-};
-#endif
-
-const char *I810ddcSymbols[] = {
-   "xf86PrintEDID",
-   "xf86SetDDCproperties",
-   NULL
-};
-
-const char *I810xaaSymbols[] = {
-   "XAACreateInfoRec",
-   "XAADestroyInfoRec",
-   "XAAInit",
-   "XAAGetCopyROP",
-   "XAAGetPatternROP",
-   NULL
-};
-
-const char *I810ramdacSymbols[] = {
-   "xf86CreateCursorInfoRec",
-   "xf86DestroyCursorInfoRec",
-   "xf86InitCursor",
-   NULL
-};
-
-const char *I810shadowFBSymbols[] = {
-    "ShadowFBInit",
-    NULL
-};
-
-#ifdef XF86DRI
-const char *I810drmSymbols[] = {
-   "drmAddBufs",
-   "drmAddMap",
-   "drmAgpAcquire",
-   "drmAgpAlloc",
-   "drmAgpBind",
-   "drmAgpEnable",
-   "drmAgpFree",
-   "drmAgpRelease",
-   "drmAgpUnbind",
-   "drmAuthMagic",
-   "drmCommandNone",
-   "drmCommandWrite",
-   "drmCreateContext",
-   "drmCtlInstHandler",
-   "drmCtlUninstHandler",
-   "drmDestroyContext",
-   "drmFreeVersion",
-   "drmGetInterruptFromBusID",
-   "drmGetLibVersion",
-   "drmGetVersion",
-   "drmRmMap",
-#ifdef XSERVER_LIBDRM_MM 
-   "drmMMInit",
-   "drmMMTakedown",
-   "drmMMLock",
-   "drmMMUnlock",
-#endif
-   NULL
-};
-
-
-const char *I810driSymbols[] = {
-   "DRICloseScreen",
-   "DRICreateInfoRec",
-   "DRIGetContext",
-   "DRIDestroyInfoRec",
-   "DRIFinishScreenInit",
-   "DRIGetSAREAPrivate",
-   "DRILock",
-   "DRIQueryVersion",
-   "DRIScreenInit",
-   "DRIUnlock",
-   "GlxSetVisualConfigs",
-   "DRICreatePCIBusID",
-   NULL
-};
-
-#endif /* I830_ONLY */
-
-const char *I810i2cSymbols[] = {
-    "xf86CreateI2CBusRec",
-    "xf86I2CBusInit",
-    NULL
-};
-
 #ifndef I810_DEBUG
 int I810_DEBUG = (0
 /*     		  | DEBUG_ALWAYS_SYNC  */
@@ -457,20 +318,6 @@ i810Setup(pointer module, pointer opts, int *errmaj, int *errmin)
 		    );
 
       /*
-       * Tell the loader about symbols from other modules that this module
-       * might refer to.
-       */
-      LoaderRefSymLists(I810vgahwSymbols,
-			I810fbSymbols, I810xaaSymbols, I810ramdacSymbols,
-#ifdef XF86DRI
-			I810drmSymbols,
-			I810driSymbols,
-#endif
-			I810shadowFBSymbols,
-			I810vbeSymbols, vbeOptionalSymbols,
-			I810ddcSymbols, NULL);
-
-      /*
        * The return value must be non-NULL on success even though there
        * is no TearDownProc.
        */
@@ -634,7 +481,6 @@ I810DoDDC(ScrnInfoPtr pScrn, int index)
    }
 
    if (xf86LoadSubModule(pScrn, "vbe") && (pVbe = VBEInit(NULL, index))) {
-      xf86LoaderReqSymLists(I810vbeSymbols, NULL);
       MonInfo = vbeDoEDID(pVbe, NULL);
       xf86PrintEDID(MonInfo);
       xf86SetDDCproperties(pScrn, MonInfo);
@@ -689,8 +535,6 @@ I810PreInit(ScrnInfoPtr pScrn, int flags)
    if (!xf86LoadSubModule(pScrn, "vgahw"))
       return FALSE;
 
-   xf86LoaderReqSymLists(I810vgahwSymbols, NULL);
-
    /* Allocate a vgaHWRec */
    if (!vgaHWGetHWRec(pScrn))
       return FALSE;
@@ -781,7 +625,6 @@ I810PreInit(ScrnInfoPtr pScrn, int flags)
 	 I810FreeRec(pScrn);
 	 return FALSE;
       }
-      xf86LoaderReqSymLists(I810xaaSymbols, NULL);
    }
    
 #ifdef XF86DRI
@@ -1019,14 +862,12 @@ I810PreInit(ScrnInfoPtr pScrn, int flags)
       I810FreeRec(pScrn);
       return FALSE;
    }
-   xf86LoaderReqSymLists(I810fbSymbols, NULL);
 
    if (!xf86ReturnOptValBool(pI810->Options, OPTION_SW_CURSOR, FALSE)) {
       if (!xf86LoadSubModule(pScrn, "ramdac")) {
 	 I810FreeRec(pScrn);
 	 return FALSE;
       }
-      xf86LoaderReqSymLists(I810ramdacSymbols, NULL);
    }
 
    if (xf86GetOptValInteger
@@ -1053,9 +894,6 @@ I810PreInit(ScrnInfoPtr pScrn, int flags)
 	 xf86DrvMsg(pScrn->scrnIndex, X_ERROR, 
 		    "Couldn't load shadowfb module:\n");
        }
-       else {
-	 xf86LoaderReqSymLists(I810shadowFBSymbols, NULL);
-       }
      }
      
      xf86DrvMsg(pScrn->scrnIndex, X_CONFIG, "page flipping %s\n",
@@ -1087,9 +925,7 @@ I810PreInit(ScrnInfoPtr pScrn, int flags)
 #ifdef XF86DRI
    /* Load the dri module if requested. */
    if (xf86ReturnOptValBool(pI810->Options, OPTION_DRI, FALSE)) {
-      if (xf86LoadSubModule(pScrn, "dri")) {
-	 xf86LoaderReqSymLists(I810driSymbols, I810drmSymbols, NULL);
-      }
+      xf86LoadSubModule(pScrn, "dri");
    }
 #endif
 
diff --git a/src/i830.h b/src/i830.h
index 7c260de..60dc146 100644
--- a/src/i830.h
+++ b/src/i830.h
@@ -210,7 +210,6 @@ struct _I830DVODriver {
    unsigned int dvo_reg;
    uint32_t gpio;
    int address;
-   const char **symbols;
    I830I2CVidOutputRec *vid_rec;
    void *dev_priv;
    pointer modhandle;
diff --git a/src/i830_driver.c b/src/i830_driver.c
index 0b6bb71..8375e94 100644
--- a/src/i830_driver.c
+++ b/src/i830_driver.c
@@ -824,7 +824,6 @@ I830PreInitDDC(ScrnInfoPtr pScrn)
    if (!xf86LoadSubModule(pScrn, "ddc")) {
       pI830->ddc2 = FALSE;
    } else {
-      xf86LoaderReqSymLists(I810ddcSymbols, NULL);
       pI830->ddc2 = TRUE;
    }
 
@@ -832,8 +831,6 @@ I830PreInitDDC(ScrnInfoPtr pScrn)
    /* Load I2C if we have the code to use it */
    if (pI830->ddc2) {
       if (xf86LoadSubModule(pScrn, "i2c")) {
-	 xf86LoaderReqSymLists(I810i2cSymbols, NULL);
-
 	 pI830->ddc2 = TRUE;
       } else {
 	 pI830->ddc2 = FALSE;
@@ -1266,11 +1263,9 @@ I830LoadSyms(ScrnInfoPtr pScrn)
     /* The vgahw module should be loaded here when needed */
     if (!xf86LoadSubModule(pScrn, "vgahw"))
 	return FALSE;
-    xf86LoaderReqSymLists(I810vgahwSymbols, NULL);
 
     if (!xf86LoadSubModule(pScrn, "ramdac"))
        return FALSE;
-    xf86LoaderReqSymLists(I810ramdacSymbols, NULL);
 
     return TRUE;
 }
@@ -1675,8 +1670,6 @@ I830PreInit(ScrnInfoPtr pScrn, int flags)
       return FALSE;
    }
 
-   xf86LoaderReqSymLists(I810fbSymbols, NULL);
-
    if (!pI830->use_drm_mode) {
        i830CompareRegsToSnapshot(pScrn, "After PreInit");
 
diff --git a/src/i830_dvo.c b/src/i830_dvo.c
index a0e8074..2f74144 100644
--- a/src/i830_dvo.c
+++ b/src/i830_dvo.c
@@ -38,28 +38,6 @@ USE OR OTHER DEALINGS IN THE SOFTWARE.
 #include "ch7xxx/ch7xxx.h"
 #include "tfp410/tfp410.h"
 
-static const char *SIL164Symbols[] = {
-    "Sil164VidOutput",
-    NULL
-};
-static const char *TFP410Symbols[] = {
-    "Tfp410VidOutput",
-    NULL
-};
-static const char *CH7xxxSymbols[] = {
-    "CH7xxxVidOutput",
-    NULL
-};
-static const char *ivch_symbols[] = {
-    "ivch_methods",
-    NULL
-};
-
-static const char *ch7017_symbols[] = {
-    "ch7017_methods",
-    NULL
-};
-
 /* driver list */
 static struct _I830DVODriver i830_dvo_drivers[] =
 {
@@ -69,7 +47,6 @@ static struct _I830DVODriver i830_dvo_drivers[] =
 	.fntablename = "SIL164VidOutput",
 	.dvo_reg = DVOC,
 	.address = (SIL164_ADDR_1<<1),
-	.symbols = SIL164Symbols
     },
     {
 	.type = I830_OUTPUT_DVO_TMDS,
@@ -77,7 +54,6 @@ static struct _I830DVODriver i830_dvo_drivers[] =
 	.fntablename = "CH7xxxVidOutput",
 	.dvo_reg = DVOC,
 	.address = (CH7xxx_ADDR_1<<1),
-	.symbols = CH7xxxSymbols
     },
     {
 	.type = I830_OUTPUT_DVO_LVDS,
@@ -85,7 +61,6 @@ static struct _I830DVODriver i830_dvo_drivers[] =
 	.fntablename = "ivch_methods",
 	.dvo_reg = DVOA,
 	.address = 0x04, /* Might also be 0x44, 0x84, 0xc4 */
-	.symbols = ivch_symbols
     },
     {
 	.type = I830_OUTPUT_DVO_TMDS,
@@ -93,7 +68,6 @@ static struct _I830DVODriver i830_dvo_drivers[] =
 	.fntablename = "TFP410VidOutput",
 	.dvo_reg = DVOC,
 	.address = (TFP410_ADDR_1<<1),
-	.symbols = TFP410Symbols
     },
     {
 	.type = I830_OUTPUT_DVO_LVDS,
@@ -101,7 +75,6 @@ static struct _I830DVODriver i830_dvo_drivers[] =
 	.fntablename = "ch7017_methods",
 	.dvo_reg = DVOC,
 	.address = 0xea,
-	.symbols = ch7017_symbols,
 	.gpio = GPIOE,
     }
 };
@@ -447,8 +420,6 @@ i830_dvo_init(ScrnInfoPtr pScrn)
 	if (drv->modhandle == NULL)
 	    continue;
 
-	xf86LoaderReqSymLists(drv->symbols, NULL);
-
 	ret_ptr = NULL;
 	drv->vid_rec = LoaderSymbol(drv->fntablename);
 
commit 8e942b70cb9a784b3f1311affd6fc74c4bcf68bb
Author: Carl Worth <cworth at cworth.org>
Date:   Thu May 21 13:12:52 2009 -0700

    Revert "Rely on BO pixmaps being present in acceleration paths."
    
    This reverts commit 4653a7db622ad54a3182d93c81331765d930db34.
    
    Eric was getting a little too ambitious about our brave, new world.
    We do still want the driver to work with old, non-GEM kernels
    after all.

diff --git a/src/i830_batchbuffer.h b/src/i830_batchbuffer.h
index 0283438..4903b8c 100644
--- a/src/i830_batchbuffer.h
+++ b/src/i830_batchbuffer.h
@@ -102,9 +102,16 @@ intel_batch_emit_reloc_pixmap(I830Ptr pI830, PixmapPtr pPixmap,
 			      uint32_t delta)
 {
     dri_bo *bo = i830_get_pixmap_bo(pPixmap);
+    uint32_t offset;
     assert(pI830->batch_ptr != NULL);
     assert(intel_batch_space(pI830) >= 4);
-    intel_batch_emit_reloc(pI830, bo, read_domains, write_domain, delta);
+    if (bo) {
+	intel_batch_emit_reloc(pI830, bo, read_domains, write_domain, delta);
+	return;
+    }
+    offset = intel_get_pixmap_offset(pPixmap);
+    *(uint32_t *)(pI830->batch_ptr + pI830->batch_used) = offset + delta;
+    pI830->batch_used += 4;
 }
 
 #define OUT_BATCH(dword) intel_batch_emit_dword(pI830, dword)
diff --git a/src/i965_render.c b/src/i965_render.c
index 7583af1..e527f11 100644
--- a/src/i965_render.c
+++ b/src/i965_render.c
@@ -923,7 +923,6 @@ i965_set_picture_surface_state(dri_bo *ss_bo, int ss_index,
     struct brw_surface_state_padded *ss;
     struct brw_surface_state local_ss;
     dri_bo *pixmap_bo = i830_get_pixmap_bo(pPixmap);
-    uint32_t write_domain, read_domains;
 
     ss = (struct brw_surface_state_padded *)ss_bo->virtual + ss_index;
 
@@ -953,7 +952,10 @@ i965_set_picture_surface_state(dri_bo *ss_bo, int ss_index,
     local_ss.ss0.vert_line_stride_ofs = 0;
     local_ss.ss0.mipmap_layout_mode = 0;
     local_ss.ss0.render_cache_read_mode = 0;
-    local_ss.ss1.base_addr = pixmap_bo->offset;
+    if (pixmap_bo != NULL)
+	local_ss.ss1.base_addr = pixmap_bo->offset;
+    else
+	local_ss.ss1.base_addr = intel_get_pixmap_offset(pPixmap);
 
     local_ss.ss2.mip_count = 0;
     local_ss.ss2.render_target_rotation = 0;
@@ -965,20 +967,22 @@ i965_set_picture_surface_state(dri_bo *ss_bo, int ss_index,
 
     memcpy(ss, &local_ss, sizeof(local_ss));
 
+    if (pixmap_bo != NULL) {
+	uint32_t write_domain, read_domains;
 
-    if (is_dst) {
-	write_domain = I915_GEM_DOMAIN_RENDER;
-	read_domains = I915_GEM_DOMAIN_RENDER;
-    } else {
-	write_domain = 0;
-	read_domains = I915_GEM_DOMAIN_SAMPLER;
+	if (is_dst) {
+	    write_domain = I915_GEM_DOMAIN_RENDER;
+	    read_domains = I915_GEM_DOMAIN_RENDER;
+	} else {
+	    write_domain = 0;
+	    read_domains = I915_GEM_DOMAIN_SAMPLER;
+	}
+	dri_bo_emit_reloc(ss_bo, read_domains, write_domain,
+			  0,
+			  ss_index * sizeof(*ss) +
+			  offsetof(struct brw_surface_state, ss1),
+			  pixmap_bo);
     }
-    drm_intel_bo_emit_reloc(ss_bo,
-			    ss_index * sizeof(*ss) +
-			    offsetof(struct brw_surface_state, ss1),
-			    pixmap_bo,
-			    0,
-			    read_domains, write_domain);
 }
 
 static void
commit 1a039f4371bec455cad43f0fb7b329f2ee09a974
Author: Eric Anholt <eric at anholt.net>
Date:   Mon Apr 27 17:45:02 2009 -0700

    Fold GEM detection into DRM master open.
    
    We don't have anything to do with the DRM unless it's GEM-enabled, unless
    we were to support GEM-but-not-DRI2, which doesn't seem useful.
    
    Compilation fixes by Carl Worth <cworth at cworth.org>

diff --git a/src/i830_driver.c b/src/i830_driver.c
index ef4d575..0b6bb71 100644
--- a/src/i830_driver.c
+++ b/src/i830_driver.c
@@ -1420,7 +1420,8 @@ i830_open_drm_master(ScrnInfoPtr scrn)
     struct pci_device *dev = i830->PciInfo;
     char *busid;
     drmSetVersion sv;
-    int err;
+    struct drm_i915_getparam gp;
+    int err, has_gem;
 
     /* We wish we had asprintf, but all we get is XNFprintf. */
     busid = XNFprintf("pci:%04x:%02x:%02x.%d",
@@ -1428,6 +1429,7 @@ i830_open_drm_master(ScrnInfoPtr scrn)
 
     i830->drmSubFD = drmOpen("i915", busid);
     if (i830->drmSubFD == -1) {
+	xfree(busid);
 	xf86DrvMsg(scrn->scrnIndex, X_ERROR,
 		   "[drm] Failed to open DRM device for %s\n", busid);
 	return FALSE;
@@ -1449,6 +1451,19 @@ i830_open_drm_master(ScrnInfoPtr scrn)
 	return FALSE;
     }
 
+    has_gem = FALSE;
+    gp.param = I915_PARAM_HAS_GEM;
+    gp.value = &has_gem;
+    (void)drmCommandWriteRead(i830->drmSubFD, DRM_I915_GETPARAM,
+			      &gp, sizeof(gp));
+    if (!has_gem) {
+	xf86DrvMsg(scrn->scrnIndex, X_ERROR,
+		   "[drm] Failed to detect GEM.  Kernel 2.6.28 required.\n");
+	drmClose(i830->drmSubFD);
+	i830->drmSubFD = -1;
+	return FALSE;
+    }
+
     return TRUE;
 }
 
diff --git a/src/i830_memory.c b/src/i830_memory.c
index 99b9fc8..5e07213 100644
--- a/src/i830_memory.c
+++ b/src/i830_memory.c
@@ -368,9 +368,7 @@ i830_allocator_init(ScrnInfoPtr pScrn, unsigned long size)
 {
     I830Ptr pI830 = I830PTR(pScrn);
     i830_memory *start, *end;
-    struct drm_i915_getparam gp;
     struct drm_i915_setparam sp;
-    int has_gem;
 
     start = xcalloc(1, sizeof(*start));
     if (start == NULL)
@@ -407,24 +405,12 @@ i830_allocator_init(ScrnInfoPtr pScrn, unsigned long size)
 
     pI830->memory_list = start;
 
-    has_gem = FALSE;
-
-    if (pI830->directRenderingType >= DRI_DRI2)
-    {
-	has_gem = FALSE;
-	gp.param = I915_PARAM_HAS_GEM;
-	gp.value = &has_gem;
-    
-	(void)drmCommandWriteRead(pI830->drmSubFD, DRM_I915_GETPARAM,
-				  &gp, sizeof(gp));
-    }
-
     /* Now that we have our manager set up, initialize the kernel MM if
      * possible, covering almost all of the aperture.  We need libdri interface
      * 5.4 or newer so we can rely on the lock being held after DRIScreenInit,
      * rather than after DRIFinishScreenInit.
      */
-    if (pI830->directRenderingType == DRI_DRI2 && has_gem) {
+    if (pI830->directRenderingType == DRI_DRI2) {
 	int mmsize;
 
 	/* Take over all of the graphics aperture minus enough to for
commit a04a51c9bb6066454e0fda3c7897f97dab436358
Author: Eric Anholt <eric at anholt.net>
Date:   Mon Apr 27 17:29:36 2009 -0700

    Open the DRM and keep the handle throughout server startup to finish.
    
    This will let us configure the server from start to finish with the
    most pertinent information available (KMS vs UMS, DRI2 vs non-DRI).  Also,
    we now close the DRI2 fd at terminate, which we didn't before.
    
    This duplicates some code from DRI1 for getting a master FD like I'd done in
    DRI2, but given that we weren't loading DRI1 ourselves, this is also a
    bogosity cleanup, and avoids allocating the extra DRI1 private.

diff --git a/src/i830_dri.c b/src/i830_dri.c
index 0648249..fc059df 100644
--- a/src/i830_dri.c
+++ b/src/i830_dri.c
@@ -329,7 +329,7 @@ Bool I830DRI2ScreenInit(ScreenPtr pScreen)
     ScrnInfoPtr pScrn = xf86Screens[pScreen->myNum];
     I830Ptr pI830 = I830PTR(pScrn);
     DRI2InfoRec info;
-    char *p, buf[64];
+    char *p;
     int i;
     struct stat sbuf;
     dev_t d;
@@ -355,36 +355,7 @@ Bool I830DRI2ScreenInit(ScreenPtr pScreen)
     }
 #endif
 
-    sprintf(buf, "pci:%04x:%02x:%02x.%d",
-	    pI830->PciInfo->domain,
-	    pI830->PciInfo->bus,
-	    pI830->PciInfo->dev,
-	    pI830->PciInfo->func);
-
-    /* Use the already opened (master) fd from modesetting */
-    if (pI830->use_drm_mode) {
-	info.fd = pI830->drmSubFD;
-    } else {
-	info.fd = drmOpen("i915", buf);
-	drmSetVersion sv;
-	int err;
-
-	/* Check that what we opened was a master or a master-capable FD,
-	 * by setting the version of the interface we'll use to talk to it.
-	 * (see DRIOpenDRMMaster() in DRI1)
-	 */
-	sv.drm_di_major = 1;
-	sv.drm_di_minor = 1;
-	sv.drm_dd_major = -1;
-	err = drmSetInterfaceVersion(info.fd, &sv);
-	if (err != 0)
-	    return FALSE;
-    }
-
-    if (info.fd < 0) {
-	xf86DrvMsg(pScrn->scrnIndex, X_WARNING, "Failed to open DRM device\n");
-	return FALSE;
-    }
+    info.fd = pI830->drmSubFD;
 
     /* The whole drmOpen thing is a fiasco and we need to find a way
      * back to just using open(2).  For now, however, lets just make
@@ -423,8 +394,6 @@ Bool I830DRI2ScreenInit(ScreenPtr pScreen)
 
     info.CopyRegion = I830DRI2CopyRegion;
 
-    pI830->drmSubFD = info.fd;
-
     return DRI2ScreenInit(pScreen, &info);
 }
 
diff --git a/src/i830_driver.c b/src/i830_driver.c
index 854ad0f..ef4d575 100644
--- a/src/i830_driver.c
+++ b/src/i830_driver.c
@@ -1414,28 +1414,61 @@ I830AccelMethodInit(ScrnInfoPtr pScrn)
 }
 
 static Bool
-I830DrmModeInit(ScrnInfoPtr pScrn)
+i830_open_drm_master(ScrnInfoPtr scrn)
 {
-    I830Ptr pI830 = I830PTR(pScrn);
-    char *bus_id;
-    int ret;
+    I830Ptr i830 = I830PTR(scrn);
+    struct pci_device *dev = i830->PciInfo;
+    char *busid;
+    drmSetVersion sv;
+    int err;
+
+    /* We wish we had asprintf, but all we get is XNFprintf. */
+    busid = XNFprintf("pci:%04x:%02x:%02x.%d",
+		      dev->domain, dev->bus, dev->dev, dev->func);
+
+    i830->drmSubFD = drmOpen("i915", busid);
+    if (i830->drmSubFD == -1) {
+	xf86DrvMsg(scrn->scrnIndex, X_ERROR,
+		   "[drm] Failed to open DRM device for %s\n", busid);
+	return FALSE;
+    }
 
-    pI830->accel = ACCEL_UXA;
+    xfree(busid);
 
-    bus_id = DRICreatePCIBusID(pI830->PciInfo);
+    /* Check that what we opened was a master or a master-capable FD,
+     * by setting the version of the interface we'll use to talk to it.
+     * (see DRIOpenDRMMaster() in DRI1)
+     */
+    sv.drm_di_major = 1;
+    sv.drm_di_minor = 1;
+    sv.drm_dd_major = -1;
+    err = drmSetInterfaceVersion(i830->drmSubFD, &sv);
+    if (err != 0) {
+	drmClose(i830->drmSubFD);
+	i830->drmSubFD = -1;
+	return FALSE;
+    }
 
-    /* Create a bus Id */
-    /* Low level DRM open */
-    ret = DRIOpenDRMMaster(pScrn, SAREA_MAX, bus_id, "i915");
-    xfree(bus_id);
-    if (!ret) {
-	    xf86DrvMsg(pScrn->scrnIndex, X_ERROR,
-		       "[dri] DRIGetVersion failed to open the DRM\n"
-		       "[dri] Disabling DRI.\n");
-	    return FALSE;
+    return TRUE;
+}
+
+static void
+i830_close_drm_master(ScrnInfoPtr scrn)
+{
+    I830Ptr i830 = I830PTR(scrn);
+    if (i830->drmSubFD > 0) {
+	drmClose(i830->drmSubFD);
+	i830->drmSubFD = -1;
     }
+}
+
+static Bool
+I830DrmModeInit(ScrnInfoPtr pScrn)
+{
+    I830Ptr pI830 = I830PTR(pScrn);
+
+    pI830->accel = ACCEL_UXA;
 
-    pI830->drmSubFD = DRIMasterFD(pScrn);
     if (drmmode_pre_init(pScrn, pI830->drmSubFD, pI830->cpp) == FALSE) {
 	xf86DrvMsg(pScrn->scrnIndex, X_ERROR,
 		   "Kernel modesetting setup failed\n");
@@ -1477,11 +1510,17 @@ I830XvInit(ScrnInfoPtr pScrn)
 }
 
 /**
- * This is called per zaphod head (so usually just once) to do initialization
- * before the Screen is created.
+ * This is called before ScreenInit to do any require probing of screen
+ * configuration.
  *
  * This code generally covers probing, module loading, option handling
  * card mapping, and RandR setup.
+ *
+ * Since xf86InitialConfiguration ends up requiring that we set video modes
+ * in order to detect configuration, we end up having to do a lot of driver
+ * setup (talking to the DRM, mapping the device, etc.) in this function.
+ * As a result, we want to set up that server initialization once rather
+ * that doing it per generation.
  */
 static Bool
 I830PreInit(ScrnInfoPtr pScrn, int flags)
@@ -1531,6 +1570,8 @@ I830PreInit(ScrnInfoPtr pScrn, int flags)
 
    pI830->PciInfo = xf86GetPciInfoForEntity(pI830->pEnt->index);
 
+   i830_open_drm_master(pScrn);
+
    if (xf86RegisterResources(pI830->pEnt->index, NULL, ResNone)) {
       PreInitCleanup(pScrn);
       return FALSE;
@@ -2839,12 +2880,15 @@ i830AdjustFrame(int scrnIndex, int x, int y, int flags)
 static void
 I830FreeScreen(int scrnIndex, int flags)
 {
-#ifdef INTEL_XVMC
     ScrnInfoPtr pScrn = xf86Screens[scrnIndex];
+#ifdef INTEL_XVMC
     I830Ptr pI830 = I830PTR(pScrn);
     if (pI830 && pI830->XvMCEnabled)
 	intel_xvmc_finish(xf86Screens[scrnIndex]);
 #endif
+
+    i830_close_drm_master(pScrn);
+
    I830FreeRec(xf86Screens[scrnIndex]);
    if (xf86LoaderCheckSymbol("vgaHWFreeHWRec"))
       vgaHWFreeHWRec(xf86Screens[scrnIndex]);
commit c3bf8b980134a2761701e4bc18235695a1cb07a4
Author: Eric Anholt <eric at anholt.net>
Date:   Thu May 21 11:05:01 2009 -0700

    Fix backwards logic on whether to sync to vblank or not.
    
    Thanks to Michel Dänzer for catching it.

diff --git a/src/i830_video.c b/src/i830_video.c
index 6fec8ff..5beee52 100644
--- a/src/i830_video.c
+++ b/src/i830_video.c
@@ -2497,7 +2497,7 @@ I830PutImage(ScrnInfoPtr pScrn,
 	    int y1, y2;
 	    int pipe = -1, event, load_scan_lines_pipe;
 
-	    if (pPixmap != pScreen->GetScreenPixmap(pScreen)) {
+	    if (pPixmap == pScreen->GetScreenPixmap(pScreen)) {
 		if (pI830->use_drm_mode)
 		    pipe = drmmode_get_pipe_from_crtc_id(pI830->bufmgr, crtc);
 		else {
commit ad2128825ba28551cfef203da017151e2eac32ef
Author: Kristian Høgsberg <krh at redhat.com>
Date:   Wed May 20 12:32:10 2009 -0400

    Only return FALSE when dri_bo_map() fails
    
    Small typo in the previous commit.

diff --git a/src/i830_exa.c b/src/i830_exa.c
index 3ca7933..d0ada02 100644
--- a/src/i830_exa.c
+++ b/src/i830_exa.c
@@ -514,11 +514,12 @@ i830_uxa_prepare_access (PixmapPtr pixmap, uxa_access_t access)
 		    return FALSE;
 		}
 	    } else {
-		if (dri_bo_map(bo, access == UXA_ACCESS_RW) != 0)
+		if (dri_bo_map(bo, access == UXA_ACCESS_RW) != 0) {
 		    xf86DrvMsg(scrn->scrnIndex, X_WARNING,
 			       "%s: bo map failed\n",
 			       __FUNCTION__);
-		return FALSE;
+		    return FALSE;
+		}
 	    }
 	    pixmap->devPrivate.ptr = bo->virtual;
 	} else { /* or not... */
commit 09beee378cecd1079e7a9fa6eee8f084d680d37e
Author: Eric Anholt <eric at anholt.net>
Date:   Mon May 18 18:01:05 2009 -0700

    Don't do GTT maps on objects bigger than half the available aperture size.
    
    The basic problem is that software fallbacks will do single instructions that
    copy from one GTT-mapped BO into another GTT-mapped BO.  If we can't get both
    of them bound simultanously, we fault one in, retry the instruction, fault the
    other in (kicking out #1), retry the instruction, fault #1 back in
    (kicking out #2), etc.
    
    Note that we'll still get into a nasty spot if you do a composite operation
    with a mask where all 3 are big-but-less-than-half-available-aperture, where
    you'll thrash.  It at least means you'll make progress, though, since each
    instruction will only be operating on two BOs at at time, and the situation
    seems unlikely.
    
    Bug #20152 (3/3)

diff --git a/src/drmmode_display.c b/src/drmmode_display.c
index 7df7b6f..24e0e26 100644
--- a/src/drmmode_display.c
+++ b/src/drmmode_display.c
@@ -232,6 +232,8 @@ drmmode_set_mode_major(xf86CrtcPtr crtc, DisplayModePtr mode,
 		drmmode_output_dpms(output, DPMSModeOn);
 	}
 
+	i830_set_max_gtt_map_size(pScrn);
+
 done:
 	if (!ret) {
 		crtc->x = saved_x;
diff --git a/src/i830.h b/src/i830.h
index 0969c48..7c260de 100644
--- a/src/i830.h
+++ b/src/i830.h
@@ -437,6 +437,7 @@ typedef struct _I830Rec {
    int accel_pixmap_offset_alignment;
    int accel_max_x;
    int accel_max_y;
+   int max_gtt_map_size;
 
    I830WriteIndexedByteFunc writeControl;
    I830ReadIndexedByteFunc readControl;
@@ -748,6 +749,7 @@ Bool i830_bind_all_memory(ScrnInfoPtr pScrn);
 Bool i830_unbind_all_memory(ScrnInfoPtr pScrn);
 unsigned long i830_get_fence_size(I830Ptr pI830, unsigned long size);
 unsigned long i830_get_fence_pitch(I830Ptr pI830, unsigned long pitch, int format);
+void i830_set_max_gtt_map_size(ScrnInfoPtr pScrn);
 
 Bool I830BindAGPMemory(ScrnInfoPtr pScrn);
 Bool I830UnbindAGPMemory(ScrnInfoPtr pScrn);
diff --git a/src/i830_exa.c b/src/i830_exa.c
index 824f032..3ca7933 100644
--- a/src/i830_exa.c
+++ b/src/i830_exa.c
@@ -506,9 +506,18 @@ i830_uxa_prepare_access (PixmapPtr pixmap, uxa_access_t access)
 
 	/* Kernel manages fences at GTT map/fault time */
 	if (i830->kernel_exec_fencing) {
-	    if (drm_intel_gem_bo_map_gtt(bo)) {
-		xf86DrvMsg(scrn->scrnIndex, X_WARNING, "%s: bo map failed\n",
-			   __FUNCTION__);
+	    if (bo->size < i830->max_gtt_map_size) {
+		if (drm_intel_gem_bo_map_gtt(bo)) {
+		    xf86DrvMsg(scrn->scrnIndex, X_WARNING,
+			       "%s: bo map failed\n",
+			       __FUNCTION__);
+		    return FALSE;
+		}
+	    } else {
+		if (dri_bo_map(bo, access == UXA_ACCESS_RW) != 0)
+		    xf86DrvMsg(scrn->scrnIndex, X_WARNING,
+			       "%s: bo map failed\n",
+			       __FUNCTION__);
 		return FALSE;
 	    }
 	    pixmap->devPrivate.ptr = bo->virtual;
@@ -542,7 +551,10 @@ i830_uxa_finish_access (PixmapPtr pixmap)
 	}
 
 	if (i830->kernel_exec_fencing)
-	    drm_intel_gem_bo_unmap_gtt(bo);
+	    if (bo->size < i830->max_gtt_map_size)
+		drm_intel_gem_bo_unmap_gtt(bo);
+	    else
+		dri_bo_unmap(bo);
 	else
 	    drm_intel_bo_unpin(bo);
 	pixmap->devPrivate.ptr = NULL;
diff --git a/src/i830_memory.c b/src/i830_memory.c
index 2a697a7..99b9fc8 100644
--- a/src/i830_memory.c
+++ b/src/i830_memory.c
@@ -1128,6 +1128,8 @@ i830_allocate_framebuffer(ScrnInfoPtr pScrn)
     if (!pI830->use_drm_mode && pI830->FbBase && front_buffer->bound)
 	memset (pI830->FbBase + front_buffer->offset, 0, size);
 
+    i830_set_max_gtt_map_size(pScrn);
+
     return front_buffer;
 }
 
@@ -1588,6 +1590,7 @@ i830_bind_all_memory(ScrnInfoPtr pScrn)
     }
     if (!pI830->use_drm_mode)
 	i830_update_cursor_offsets(pScrn);
+    i830_set_max_gtt_map_size(pScrn);
 
     return TRUE;
 }
@@ -1672,3 +1675,26 @@ Bool i830_allocate_xvmc_buffer(ScrnInfoPtr pScrn, const char *name,
     return TRUE;
 }
 #endif
+
+void
+i830_set_max_gtt_map_size(ScrnInfoPtr pScrn)
+{
+    I830Ptr pI830 = I830PTR(pScrn);
+    struct drm_i915_gem_get_aperture aperture;
+    int ret;
+
+    /* Default low value in case it gets used during server init. */
+    pI830->max_gtt_map_size = 16 * 1024 * 1024;
+
+    if (!pI830->have_gem)
+	return;
+
+    ret = ioctl(pI830->drmSubFD, DRM_IOCTL_I915_GEM_GET_APERTURE, &aperture);
+    if (ret == 0) {
+	/* Let objects up get bound up to the size where only 2 would fit in
+	 * the aperture, but then leave slop to account for alignment like
+	 * libdrm does.
+	 */
+	pI830->max_gtt_map_size = aperture.aper_available_size * 3 / 4 / 2;
+    }
+}
commit 52054b6a4c1ca5117c9750361f71aedd91220c39
Author: Li Shao Hua <shaohua.li at intel.com>
Date:   Tue May 19 16:27:32 2009 +0800

     switch XvMC to gem

diff --git a/src/i830_hwmc.h b/src/i830_hwmc.h
index ad95e1e..7db6a86 100644
--- a/src/i830_hwmc.h
+++ b/src/i830_hwmc.h
@@ -66,6 +66,7 @@ struct hwmc_buffer
 struct _intel_xvmc_common {
     unsigned int type;
     struct hwmc_buffer batchbuffer;
+    unsigned int kernel_exec_fencing:1;
 };
 
 /* Intel private XvMC command to DDX driver */
@@ -76,7 +77,7 @@ struct intel_xvmc_command {
     unsigned int subPicNo;
     unsigned int flags;
     unsigned int real_id;
-    unsigned int surf_offset;
+    uint32_t handle;
     unsigned int pad[5];
 };
 
diff --git a/src/i965_hwmc.c b/src/i965_hwmc.c
index efcdf12..4dc2e3a 100644
--- a/src/i965_hwmc.c
+++ b/src/i965_hwmc.c
@@ -38,6 +38,7 @@
 #define _INTEL_XVMC_SERVER_
 #include "i830_hwmc.h"
 #include "i965_hwmc.h"
+#include "intel_bufmgr.h"
 
 #define STRIDE(w)               (w)
 #define SIZE_YUV420(w, h)       (h * (STRIDE(w) + STRIDE(w >> 1)))
@@ -50,40 +51,6 @@
 static PutImageFuncPtr XvPutImage;
 
 
-static int alloc_drm_memory(ScrnInfoPtr pScrn, 
-	struct drm_memory_block *mem, 
-	char *name, size_t size)
-{
-    I830Ptr pI830 = I830PTR(pScrn);
-    if ((mem->buffer = i830_allocate_memory(pScrn, 
-	    name, size, PITCH_NONE, GTT_PAGE_SIZE,
-	    ALIGN_BOTH_ENDS, TILE_NONE)) == NULL) {
-	ErrorF("Fail to alloc \n");
-	return BadAlloc;
-    }
-
-    if (drmAddMap(pI830->drmSubFD,
-                  (drm_handle_t)(mem->buffer->offset + pI830->LinearAddr),
-                  size, DRM_AGP, 0,
-                  (drmAddress)&mem->handle) < 0) {
-	ErrorF("Fail to map %d \n", errno);
-	i830_free_memory(pScrn, mem->buffer);
-	return BadAlloc;
-    }
-
-    mem->size = size;
-    mem->offset = mem->buffer->offset;
-    return Success;
-}
-
-static void free_drm_memory(ScrnInfoPtr pScrn,
-		struct drm_memory_block *mem)
-{
-    I830Ptr pI830 = I830PTR(pScrn);
-    drmRmMap(pI830->drmSubFD, mem->handle);
-    i830_free_memory(pScrn, mem->buffer);
-}
-
 static int create_context(ScrnInfoPtr pScrn, 
 	XvMCContextPtr context, int *num_privates, CARD32 **private)
 {
@@ -106,31 +73,8 @@ static int create_context(ScrnInfoPtr pScrn,
 
     private_context->is_g4x = IS_G4X(I830);
     private_context->is_965_q = IS_965_Q(I830);
+    private_context->comm.kernel_exec_fencing = I830->kernel_exec_fencing;
     private_context->comm.type = xvmc_driver->flag;
-    private_context->comm.batchbuffer.offset = xvmc_driver->batch->offset;
-    private_context->comm.batchbuffer.size = xvmc_driver->batch->size;
-    private_context->comm.batchbuffer.handle = xvmc_driver->batch_handle;
-
-    if (alloc_drm_memory(pScrn, &private_context->static_buffer,
-		"XVMC static buffers", 
-		I965_MC_STATIC_BUFFER_SIZE)) {
-	ErrorF("Unable to allocate and map static buffer for XVMC\n");	
-	return BadAlloc;
-    }
-
-    if (alloc_drm_memory(pScrn, &private_context->blocks,
-		"XVMC blocks", blocksize)) {
-	ErrorF("Unable to allocate and map block buffer for XVMC\n");	
-	return BadAlloc;
-    }
-
-    if (IS_G4X(I830)) {
-	if (alloc_drm_memory(pScrn, &private_context->slice,
-		    "XVMC vld slice", VLD_MAX_SLICE_LEN)) {
-	    ErrorF("Unable to allocate and vld slice buffer for XVMC\n");	
-	    return BadAlloc;
-	}
-    }
 
     *num_privates = sizeof(*private_context)/sizeof(CARD32);
     *private = (CARD32 *)private_context;
@@ -143,12 +87,7 @@ static int create_context(ScrnInfoPtr pScrn,
 static void destroy_context(ScrnInfoPtr pScrn, XvMCContextPtr context)
 {
     struct i965_xvmc_context *private_context;
-    I830Ptr pI830 = I830PTR(pScrn);
     private_context = context->driver_priv;
-    free_drm_memory(pScrn, &private_context->static_buffer);
-    free_drm_memory(pScrn, &private_context->blocks);
-    if (IS_G4X(pI830))
-	free_drm_memory(pScrn, &private_context->slice);
     Xfree(private_context);
 }
 
@@ -159,7 +98,6 @@ static int create_surface(ScrnInfoPtr pScrn, XvMCSurfacePtr surface,
 
 	struct i965_xvmc_surface *priv_surface, *surface_dup;
 	struct i965_xvmc_context *priv_ctx = ctx->driver_priv;
-	size_t bufsize = SIZE_YUV420(ctx->width, ctx->height);
 	int i;
 	for (i = 0 ; i < I965_MAX_SURFACES; i++) {
 	    if (priv_ctx->surfaces[i] == NULL) {
@@ -172,13 +110,10 @@ static int create_surface(ScrnInfoPtr pScrn, XvMCSurfacePtr surface,
 		
 		priv_surface->no = i;
 		priv_surface->handle = priv_surface;
+		priv_surface->w = ctx->width;
+		priv_surface->h = ctx->height;
 		priv_ctx->surfaces[i] = surface->driver_priv 
 		    = priv_surface;
-		if (alloc_drm_memory(pScrn, &priv_surface->buffer,
-			    "surface buffer\n", (bufsize+0xFFF)&~(0xFFF))) {
-		        ErrorF("Unable to allocate surface buffer\n");
-            		return BadAlloc;
-        	}
 		memcpy(surface_dup, priv_surface, sizeof(*priv_surface));
 		*num_priv = sizeof(*priv_surface)/sizeof(CARD32);
 		*priv = (CARD32 *)surface_dup;
@@ -200,7 +135,6 @@ static void destory_surface(ScrnInfoPtr pScrn, XvMCSurfacePtr surface)
 	struct i965_xvmc_surface *priv_surface = surface->driver_priv; 
 	struct i965_xvmc_context *priv_ctx = ctx->driver_priv;
 	priv_ctx->surfaces[priv_surface->no] = NULL;
-	free_drm_memory(pScrn, &priv_surface->buffer);
 	Xfree(priv_surface);
 }
 
@@ -224,21 +158,27 @@ static int put_image(ScrnInfoPtr pScrn,
 {
 	I830Ptr pI830 = I830PTR(pScrn);
 	struct intel_xvmc_command *cmd = (struct intel_xvmc_command *)buf;
+	dri_bo *bo;
+
 	if (id == FOURCC_XVMC) {
-	    buf = pI830->FbBase + cmd->surf_offset;
+            bo = intel_bo_gem_create_from_name(pI830->bufmgr, "surface", cmd->handle);
+            dri_bo_pin(bo, 0x1000);
+	    buf = pI830->FbBase + bo->offset;
 	}
 	XvPutImage(pScrn, src_x, src_y, drw_x, drw_y, src_w, src_h,
 		drw_w, drw_h, id, buf, width, height, sync, clipBoxes,
 		data, pDraw);
+
+	if (id == FOURCC_XVMC) {
+	    dri_bo_unpin(bo);
+	    dri_bo_unreference(bo);
+	}
+
 	return Success;
 }
 
 static Bool init(ScrnInfoPtr screen_info, XF86VideoAdaptorPtr adaptor)
 {
-    if (!intel_xvmc_init_batch(screen_info)) {
-	ErrorF("[XvMC] fail to init batch buffer\n");
-	return FALSE;
-    }
     XvPutImage = adaptor->PutImage;
     adaptor->PutImage = put_image;
 
diff --git a/src/i965_hwmc.h b/src/i965_hwmc.h
index 9db0f35..fb61516 100644
--- a/src/i965_hwmc.h
+++ b/src/i965_hwmc.h
@@ -10,9 +10,10 @@ struct  drm_memory_block {
 };
 
 struct i965_xvmc_surface {
-    struct 		drm_memory_block buffer;
+    int			w, h;
     unsigned int 	no;
     void 		*handle; 
+    dri_bo		*bo;
 };
 
 struct i965_xvmc_context {
diff --git a/src/xvmc/Makefile.am b/src/xvmc/Makefile.am
index 4567060..fc402bb 100644
--- a/src/xvmc/Makefile.am
+++ b/src/xvmc/Makefile.am
@@ -31,4 +31,4 @@ libIntelXvMC_la_SOURCES = intel_xvmc.c \
 libIntelXvMC_la_CFLAGS = @XORG_CFLAGS@ @DRM_CFLAGS@ @DRI_CFLAGS@ \
 	@XVMCLIB_CFLAGS@ -I$(top_srcdir)/src -DTRUE=1 -DFALSE=0
 libIntelXvMC_la_LDFLAGS = -version-number 1:0:0
-libIntelXvMC_la_LIBADD = @DRI_LIBS@ @DRM_LIBS@ @XVMCLIB_LIBS@ @XEXT_LIBS@ -lpthread
+libIntelXvMC_la_LIBADD = @DRI_LIBS@ @DRM_LIBS@ @XVMCLIB_LIBS@ @XEXT_LIBS@ -lpthread -ldrm_intel
diff --git a/src/xvmc/i965_xvmc.c b/src/xvmc/i965_xvmc.c
index 4b1c481..51a7ae6 100644
--- a/src/xvmc/i965_xvmc.c
+++ b/src/xvmc/i965_xvmc.c
@@ -32,13 +32,15 @@
 #include "i965_hwmc.h"
 #define BATCH_STRUCT(x) intelBatchbufferData(&x, sizeof(x), 0)
 #define URB_SIZE     256        /* XXX */
+
+#define ARRAY_SIZE(x) (sizeof(x) / sizeof(x[0]))
+
 enum interface {
-    INTRA_INTERFACE,            /* non field intra */
+    INTRA_INTERFACE = 0,            /* non field intra */
     NULL_INTERFACE,             /* fill with white, do nothing, for debug */
     FORWARD_INTERFACE,          /* non field forward predict */
     BACKWARD_INTERFACE,         /* non field backward predict */
     F_B_INTERFACE,              /* non field forward and backward predict */
-    FIELD_INTRA_INTERFACE,      /* field intra */
     FIELD_FORWARD_INTERFACE,    /* field forward predict */
     FIELD_BACKWARD_INTERFACE,   /* field backward predict */
     FIELD_F_B_INTERFACE,        /* field forward and backward predict */
@@ -94,65 +96,137 @@ static const uint32_t dual_prime_igd_kernel_static[][4]= {
 	#include "shader/mc/dual_prime_igd.g4b"
 }; 
 
+struct kernel_struct{
+	const uint32_t (*bin)[4];
+	uint32_t size;
+};
+
+struct kernel_struct kernels_igd[] = {
+    {ipicture_kernel_static, sizeof(ipicture_kernel_static)},
+    {null_kernel_static, sizeof(null_kernel_static)},
+    {frame_forward_igd_kernel_static, sizeof(frame_forward_igd_kernel_static)},
+    {frame_backward_igd_kernel_static, sizeof(frame_backward_igd_kernel_static)},
+    {frame_f_b_igd_kernel_static, sizeof(frame_f_b_igd_kernel_static)},
+    {field_forward_igd_kernel_static, sizeof(field_forward_igd_kernel_static)},
+    {field_backward_igd_kernel_static, sizeof(field_backward_igd_kernel_static)},
+    {field_f_b_igd_kernel_static, sizeof(field_f_b_igd_kernel_static)},
+    {dual_prime_igd_kernel_static, sizeof(dual_prime_igd_kernel_static)}
+};
+
+struct kernel_struct kernels_965[] = {
+    {ipicture_kernel_static, sizeof(ipicture_kernel_static)},
+    {null_kernel_static, sizeof(null_kernel_static)},
+    {frame_forward_kernel_static, sizeof(frame_forward_kernel_static)},
+    {frame_backward_kernel_static, sizeof(frame_backward_kernel_static)},
+    {frame_f_b_kernel_static, sizeof(frame_f_b_kernel_static)},
+    {field_forward_kernel_static, sizeof(field_forward_kernel_static)},
+    {field_backward_kernel_static, sizeof(field_backward_kernel_static)},
+    {field_f_b_kernel_static, sizeof(field_f_b_kernel_static)},
+    {dual_prime_kernel_static, sizeof(dual_prime_kernel_static)}
+};
+
 #define ALIGN(i,m)    (((i) + (m) - 1) & ~((m) - 1))
 
 #define MAX_SURFACE_NUM	10
 #define DESCRIPTOR_NUM 12
 
+struct media_kernel_obj {
+    dri_bo *bo;
+};
+
+struct interface_descriptor_obj {
+   dri_bo *bo;
+   struct media_kernel_obj kernels[DESCRIPTOR_NUM];
+};
+
+struct vfe_state_obj {
+   dri_bo *bo;
+   struct interface_descriptor_obj interface;
+};
+
+struct surface_obj {
+     dri_bo *bo; 
+};
+
+struct surface_state_obj {
+      struct surface_obj surface; 
+      dri_bo *bo;
+};
+
+struct binding_table_obj {
+    dri_bo *bo;
+    struct surface_state_obj surface_states[MAX_SURFACE_NUM];
+};
+
+struct indirect_data_obj {
+    dri_bo *bo;
+};
+
 struct media_state {
-    unsigned long state_base;
-    void 	      *state_ptr;
-    unsigned int  binding_table_entry_count;
-    unsigned long vfe_state_offset;
-    unsigned long interface_descriptor_offset[DESCRIPTOR_NUM];
-    unsigned long ipicture_kernel_offset;
-    unsigned long frame_forward_kernel_offset;
-    unsigned long frame_backward_kernel_offset;
-    unsigned long frame_f_b_kernel_offset;
-    unsigned long ipicture_field_kernel_offset;
-    unsigned long field_forward_kernel_offset;
-    unsigned long field_backward_kernel_offset;
-    unsigned long field_f_b_kernel_offset;
-    unsigned long dual_prime_kernel_offset;
-    unsigned long null_kernel_offset;
-    unsigned long surface_offsets[MAX_SURFACE_NUM];
-    unsigned long binding_table_offset;
     unsigned int  is_g4x:1;
     unsigned int  is_965_q:1;
+
+    struct vfe_state_obj vfe_state;
+    struct binding_table_obj binding_table;
+    struct indirect_data_obj indirect_data;
 };
 struct media_state media_state;
 
-static int map_buffer(struct  drm_memory_block *mem)
+static int free_object(struct media_state *s)
 {
-    return (drmMap(xvmc_driver->fd, 
-		mem->handle, mem->size, &mem->ptr));
+    int i;
+#define FREE_ONE_BO(bo) drm_intel_bo_unreference(bo)
+    FREE_ONE_BO(s->vfe_state.bo);
+    FREE_ONE_BO(s->vfe_state.interface.bo);
+    for (i = 0; i < DESCRIPTOR_NUM; i++)
+        FREE_ONE_BO(s->vfe_state.interface.kernels[i].bo);
+    FREE_ONE_BO(s->binding_table.bo);
+    for (i = 0; i < MAX_SURFACE_NUM; i++)
+        FREE_ONE_BO(s->binding_table.surface_states[i].bo);
+    FREE_ONE_BO(s->indirect_data.bo);
 }
 
-static void unmap_buffer(struct  drm_memory_block *mem)
+static int alloc_object(struct media_state *s)
 {
-    drmUnmap(mem->ptr, mem->size);
+    int i;
+
+    for (i = 0; i < MAX_SURFACE_NUM; i++) {
+        s->binding_table.surface_states[i].bo =
+            drm_intel_bo_alloc(xvmc_driver->bufmgr, "surface_state", 
+ 		sizeof(struct brw_surface_state), 0x1000);
+        if (!s->binding_table.surface_states[i].bo)
+            goto out;
+    }
+    return 0;
+out:
+    free_object(s);
+    return BadAlloc;
 }
 
+
 static Status destroy_context(Display *display, XvMCContext *context)
 {
     struct i965_xvmc_context *private_context;
     private_context = context->privData;
-    unmap_buffer(&private_context->static_buffer);
-    unmap_buffer(&private_context->blocks);
 
+    free_object(&media_state);
     Xfree(private_context);
     return Success;
 }
 
+#define STRIDE(w)               (w)
+#define SIZE_YUV420(w, h)       (h * (STRIDE(w) + STRIDE(w >> 1)))
+
 static Status create_surface(Display *display,
 	XvMCContext *context, XvMCSurface *surface, int priv_count,
 	CARD32 *priv_data)
 {
     struct i965_xvmc_surface *priv_surface = 
 	(struct i965_xvmc_surface *)priv_data;
-    if (map_buffer(&priv_surface->buffer))
-	return BadAlloc;
+    size_t size = SIZE_YUV420(priv_surface->w, priv_surface->h);
     surface->privData = priv_data;
+    priv_surface->bo = drm_intel_bo_alloc(xvmc_driver->bufmgr, "surface", 
+	    size, 0x1000);
     return Success;
 }
 
@@ -160,7 +234,9 @@ static Status destroy_surface(Display *display, XvMCSurface *surface)
 {
     struct i965_xvmc_surface *priv_surface = 
 	surface->privData;
-    unmap_buffer(&priv_surface->buffer);
+    XSync(display, False);
+
+    drm_intel_bo_unreference(priv_surface->bo);
     return Success;
 }
 
@@ -206,21 +282,6 @@ static void urb_layout()
     OUT_BATCH(BRW_URB_FENCE |
 	    UF0_VFE_REALLOC |
 	    UF0_CS_REALLOC |
-	    1);
-    OUT_BATCH(0);
-    OUT_BATCH(((URB_SIZE)<< UF2_VFE_FENCE_SHIFT) |	/* VFE_SIZE */
-	    ((URB_SIZE)<< UF2_CS_FENCE_SHIFT));		/* CS_SIZE is 0 */
-    ADVANCE_BATCH();
-}
-
-/* clear previous urb layout */
-static void clear_urb_state()
-{
-    BATCH_LOCALS;
-    align_urb_fence();
-    BEGIN_BATCH(3);
-    OUT_BATCH(BRW_URB_FENCE |
-	    UF0_CS_REALLOC |
 	    UF0_SF_REALLOC |
 	    UF0_CLIP_REALLOC |
 	    UF0_GS_REALLOC |
@@ -229,8 +290,9 @@ static void clear_urb_state()
     OUT_BATCH((0 << UF1_CLIP_FENCE_SHIFT) |
 	    (0 << UF1_GS_FENCE_SHIFT) |
 	    (0 << UF1_VS_FENCE_SHIFT));
-    OUT_BATCH((0 << UF2_CS_FENCE_SHIFT) |
-	    (0 << UF2_SF_FENCE_SHIFT));
+
+    OUT_BATCH(((URB_SIZE)<< UF2_VFE_FENCE_SHIFT) |	/* VFE_SIZE */
+	    ((URB_SIZE)<< UF2_CS_FENCE_SHIFT));		/* CS_SIZE is 0 */
     ADVANCE_BATCH();
 }
 
@@ -240,62 +302,89 @@ static void media_state_pointers(struct media_state *media_state)
     BEGIN_BATCH(3);
     OUT_BATCH(BRW_MEDIA_STATE_POINTERS|1);
     OUT_BATCH(0);
-    OUT_BATCH(media_state->vfe_state_offset);
-    ADVANCE_BATCH();
-}
-
-static void cs_urb_layout()
-{
-    BATCH_LOCALS;
-    BEGIN_BATCH(2);
-    OUT_BATCH(BRW_CS_URB_STATE | 0);
-    OUT_BATCH((0 << 4) |    /* URB Entry Allocation Size */
-	      (0 << 0));    /* Number of URB Entries */
+    OUT_RELOC(media_state->vfe_state.bo, I915_GEM_DOMAIN_INSTRUCTION, 0, 0);
     ADVANCE_BATCH();
 }
 
 /* setup 2D surface for media_read or media_write 
  */
-static void setup_media_surface(struct media_state *media_state,
-	int surface_num, unsigned long offset, int w, int h)
+static Status setup_media_surface(struct media_state *media_state,
+	int surface_num, dri_bo *bo, unsigned long offset, int w, int h, Bool write)
 {
-    struct brw_surface_state *ss;
-    ss = media_state->state_ptr +
-	(media_state->surface_offsets[surface_num] - media_state->state_base);
+    struct brw_surface_state s, *ss = &s;
+
     memset(ss, 0, sizeof(struct brw_surface_state));
     ss->ss0.surface_type = BRW_SURFACE_2D;
     ss->ss0.surface_format = BRW_SURFACEFORMAT_R8_SINT;
-    ss->ss1.base_addr = offset;
+    ss->ss1.base_addr = offset + bo->offset;
     ss->ss2.width = w - 1;
     ss->ss2.height = h - 1;
     ss->ss3.pitch = w - 1;
+
+    if (media_state->binding_table.surface_states[surface_num].bo)
+        drm_intel_bo_unreference(media_state->binding_table.surface_states[surface_num].bo);
+    media_state->binding_table.surface_states[surface_num].bo =
+            drm_intel_bo_alloc(xvmc_driver->bufmgr, "surface_state", 
+ 		sizeof(struct brw_surface_state), 0x1000);
+    if (!media_state->binding_table.surface_states[surface_num].bo)
+        return BadAlloc;
+
+    drm_intel_bo_subdata(
+	    media_state->binding_table.surface_states[surface_num].bo,
+	    0, sizeof(*ss), ss);
+
+    drm_intel_bo_emit_reloc(media_state->binding_table.surface_states[surface_num].bo, 
+	    offsetof(struct brw_surface_state, ss1),
+	    bo,
+	    offset,
+	    I915_GEM_DOMAIN_RENDER, write?I915_GEM_DOMAIN_RENDER:0);
+
+    return Success;
 }
 
-static void setup_surfaces(struct media_state *media_state, 
-	unsigned long dst_offset, unsigned long past_offset, 
-	unsigned long future_offset, 
+static Status setup_surfaces(struct media_state *media_state, 
+	dri_bo *dst_bo, dri_bo *past_bo, dri_bo *future_bo, 
 	int w, int h)
 {
-    setup_media_surface(media_state, 0, dst_offset, w, h);
-    setup_media_surface(media_state, 1, dst_offset+w*h, w/2, h/2);
-    setup_media_surface(media_state, 2, dst_offset+w*h + w*h/4, w/2, h/2);
-    if (past_offset) {
-	setup_media_surface(media_state, 4, past_offset, w, h);
-	setup_media_surface(media_state, 5, past_offset+w*h, w/2, h/2);
-	setup_media_surface(media_state, 6, past_offset+w*h + w*h/4, w/2, h/2);
+    Status ret;
+    ret = setup_media_surface(media_state, 0, dst_bo, 0, w, h, TRUE);
+    if (ret != Success)
+        return ret;
+    ret = setup_media_surface(media_state, 1, dst_bo, w*h, w/2, h/2, TRUE);
+    if (ret != Success)
+        return ret;
+    ret = setup_media_surface(media_state, 2, dst_bo, w*h + w*h/4, w/2, h/2, TRUE);
+    if (ret != Success)
+        return ret;
+    if (past_bo) {
+	ret = setup_media_surface(media_state, 4, past_bo, 0, w, h, FALSE);
+        if (ret != Success)
+            return ret;
+	ret = setup_media_surface(media_state, 5, past_bo, w*h, w/2, h/2, FALSE);
+        if (ret != Success)
+            return ret;
+	ret = setup_media_surface(media_state, 6, past_bo, w*h + w*h/4, w/2, h/2, FALSE);
+        if (ret != Success)
+            return ret;
     }
-    if (future_offset) {
-	setup_media_surface(media_state, 7, future_offset, w, h);
-	setup_media_surface(media_state, 8, future_offset+w*h, w/2, h/2);
-	setup_media_surface(media_state, 9, future_offset+w*h + w*h/4, w/2, h/2);
+    if (future_bo) {
+	ret = setup_media_surface(media_state, 7, future_bo, 0, w, h, FALSE);
+        if (ret != Success)
+            return ret;
+	ret = setup_media_surface(media_state, 8, future_bo, w*h, w/2, h/2, FALSE);
+        if (ret != Success)
+            return ret;
+	ret = setup_media_surface(media_state, 9, future_bo, w*h + w*h/4, w/2, h/2, FALSE);
+        if (ret != Success)
+            return ret;
     }
+    return Success;
 }
 /* BUFFER SURFACE has a strange format
  * the size of the surface is in part of w h and d component
  */
 
-static void setup_blocks(struct media_state *media_state, 
-	unsigned long offset, unsigned int block_size)
+static Status setup_blocks(struct media_state *media_state, unsigned int block_size)
 {
     union element{
 		struct {
@@ -306,22 +395,39 @@ static void setup_blocks(struct media_state *media_state,
 		}whd;
 		unsigned int size;	
     }e;
-    struct brw_surface_state *ss;
-    ss = media_state->state_ptr +
-	(media_state->surface_offsets[3] - media_state->state_base);
-    memset(ss, 0, sizeof(struct brw_surface_state));
-    ss->ss0.surface_type = BRW_SURFACE_BUFFER;
-    ss->ss0.surface_format = BRW_SURFACEFORMAT_R8_UINT;
-    ss->ss1.base_addr = offset;
+    struct brw_surface_state ss;
+    memset(&ss, 0, sizeof(struct brw_surface_state));
+    ss.ss0.surface_type = BRW_SURFACE_BUFFER;
+    ss.ss0.surface_format = BRW_SURFACEFORMAT_R8_UINT;
+    ss.ss1.base_addr = media_state->indirect_data.bo->offset;
+
     e.size = block_size - 1;
-    ss->ss2.width = e.whd.w;
-    ss->ss2.height = e.whd.h;
-    ss->ss3.depth = e.whd.d;
-    ss->ss3.pitch = block_size - 1;
+    ss.ss2.width = e.whd.w;
+    ss.ss2.height = e.whd.h;
+    ss.ss3.depth = e.whd.d;
+    ss.ss3.pitch = block_size - 1;
+  
+    if (media_state->binding_table.surface_states[3].bo)
+        drm_intel_bo_unreference(media_state->binding_table.surface_states[3].bo);
+
+    media_state->binding_table.surface_states[3].bo =
+            drm_intel_bo_alloc(xvmc_driver->bufmgr, "surface_state", 
+ 		sizeof(struct brw_surface_state), 0x1000);
+    if (!media_state->binding_table.surface_states[3].bo)
+        return BadAlloc;
+  
+    drm_intel_bo_subdata(media_state->binding_table.surface_states[3].bo, 0, 
+	    sizeof(ss), &ss);
+
+    drm_intel_bo_emit_reloc(media_state->binding_table.surface_states[3].bo,
+        offsetof(struct brw_surface_state, ss1),
+        media_state->indirect_data.bo, 0,
+        I915_GEM_DOMAIN_SAMPLER, 0);
+    return Success;
 }
 
 /* setup state base address */
-static void state_base_address(int offset)
+static void state_base_address()
 {
     BATCH_LOCALS;
     BEGIN_BATCH(6);
@@ -330,7 +436,7 @@ static void state_base_address(int offset)
     OUT_BATCH(0 | BASE_ADDRESS_MODIFY); 
     OUT_BATCH(0 | BASE_ADDRESS_MODIFY);
     OUT_BATCH(0 | BASE_ADDRESS_MODIFY);
-    OUT_BATCH((0xFFFFF<<12) | BASE_ADDRESS_MODIFY);
+    OUT_BATCH(BASE_ADDRESS_MODIFY);
     ADVANCE_BATCH();
 }
 
@@ -358,12 +464,13 @@ static void send_media_object(XvMCMacroBlock *mb, int offset, enum interface int
 	OUT_BATCH(0);
     }else {
 	OUT_BATCH(6*128);
-	OUT_BATCH(offset);
+        OUT_RELOC(media_state.indirect_data.bo, I915_GEM_DOMAIN_INSTRUCTION, 0, offset);
     }
     
     OUT_BATCH(mb->x<<4);                 //g1.0
     OUT_BATCH(mb->y<<4);
-    OUT_BATCH(offset);               //g1.8
+    OUT_RELOC(media_state.indirect_data.bo, //g1.8
+            I915_GEM_DOMAIN_INSTRUCTION, 0, offset);
     OUT_BATCH_SHORT(mb->coded_block_pattern);  //g1.12
     OUT_BATCH_SHORT(mb->PMV[0][0][0]);         //g1.14
     OUT_BATCH_SHORT(mb->PMV[0][0][1]);         //g1.16
@@ -384,178 +491,152 @@ static void send_media_object(XvMCMacroBlock *mb, int offset, enum interface int
     ADVANCE_BATCH();
 }
 
-static void binding_tables(struct media_state *media_state)
+static Status binding_tables(struct media_state *media_state)
 {
-    unsigned int *binding_table;
+    unsigned int binding_table[MAX_SURFACE_NUM];
     int i;
-    binding_table = media_state->state_ptr +
-	(media_state->binding_table_offset - media_state->state_base);
+
+    if (media_state->binding_table.bo)
+        drm_intel_bo_unreference(media_state->binding_table.bo);
+    media_state->binding_table.bo = 
+ 	drm_intel_bo_alloc(xvmc_driver->bufmgr, "binding_table", 
+ 		MAX_SURFACE_NUM*4, 0x1000);
+    if (!media_state->binding_table.bo)
+        return BadAlloc;
+
+    for (i = 0; i < MAX_SURFACE_NUM; i++)
+	binding_table[i] = media_state->binding_table.surface_states[i].bo->offset;
+    drm_intel_bo_subdata(media_state->binding_table.bo, 0, sizeof(binding_table),
+        binding_table);
+
     for (i = 0; i < MAX_SURFACE_NUM; i++)
-	binding_table[i] = media_state->surface_offsets[i];
+        drm_intel_bo_emit_reloc(media_state->binding_table.bo, 
+	    i * sizeof(unsigned int),
+	    media_state->binding_table.surface_states[i].bo, 0,
+	    I915_GEM_DOMAIN_INSTRUCTION, 0);
+     return Success;
 }
 
-static void media_kernels(struct media_state *media_state)
+static int media_kernels(struct media_state *media_state)
 {
-	void *kernel; 
-#define LOAD_KERNEL(name) kernel = media_state->state_ptr +\
-	(media_state->name##_kernel_offset - media_state->state_base);\
-	memcpy(kernel, name##_kernel_static, sizeof(name##_kernel_static));
-#define LOAD_KERNEL_IGD(name) kernel = media_state->state_ptr +\
-	(media_state->name##_kernel_offset - media_state->state_base);\
-	memcpy(kernel, name##_igd_kernel_static, sizeof(name##_igd_kernel_static));
-
-	LOAD_KERNEL(ipicture);
-	LOAD_KERNEL(null);
+	struct kernel_struct *kernels;
+	int kernel_array_size, i;
+
 	if (media_state->is_g4x) {
-		LOAD_KERNEL_IGD(frame_forward);
-		LOAD_KERNEL_IGD(field_forward);
-		LOAD_KERNEL_IGD(frame_backward);
-		LOAD_KERNEL_IGD(field_backward);
-		LOAD_KERNEL_IGD(frame_f_b);
-		LOAD_KERNEL_IGD(field_f_b);
-		LOAD_KERNEL_IGD(dual_prime);
-
-	}else {
-		LOAD_KERNEL(frame_forward);
-		LOAD_KERNEL(field_forward);
-		LOAD_KERNEL(frame_backward);
-		LOAD_KERNEL(field_backward);
-		LOAD_KERNEL(frame_f_b);
-		LOAD_KERNEL(field_f_b);
-		LOAD_KERNEL(dual_prime);
+		kernels = kernels_igd;
+		kernel_array_size = ARRAY_SIZE(kernels_igd);
+	} else {
+		kernels = kernels_965;
+		kernel_array_size = ARRAY_SIZE(kernels_965);
+	}
+
+	for (i = 0; i < kernel_array_size; i++) {
+		media_state->vfe_state.interface.kernels[i].bo =
+			drm_intel_bo_alloc(xvmc_driver->bufmgr, "kernel",
+					kernels[i].size, 0x1000);
+		if (!media_state->vfe_state.interface.kernels[i].bo)
+			goto out;
 	}
+
+	for (i = 0; i < kernel_array_size; i++) {
+		dri_bo *bo = media_state->vfe_state.interface.kernels[i].bo;
+		drm_intel_bo_subdata(bo, 0, kernels[i].size, kernels[i].bin);
+	}
+	return 0;
+out:
+	free_object(media_state);
+	return BadAlloc;
 }
 
 static void setup_interface(struct media_state *media_state, 
-	enum interface interface, unsigned int kernel_offset)
+	enum interface i)
 {
-    struct brw_interface_descriptor *desc;
-    desc = media_state->state_ptr +
-	(media_state->interface_descriptor_offset[interface] 
-	 - media_state->state_base);
-    memset(desc, 0, sizeof(*desc));
-    desc->desc0.grf_reg_blocks = 15;
-    desc->desc0.kernel_start_pointer = kernel_offset >> 6;
-    desc->desc1.floating_point_mode = BRW_FLOATING_POINT_NON_IEEE_754;
+    struct brw_interface_descriptor desc;
+    memset(&desc, 0, sizeof(desc));
+
+    desc.desc0.grf_reg_blocks = 15;
+    desc.desc0.kernel_start_pointer =
+        media_state->vfe_state.interface.kernels[i].bo->offset >> 6;
+
+    desc.desc1.floating_point_mode = BRW_FLOATING_POINT_NON_IEEE_754;
 
     /* use same binding table for all interface
      * may change this if it affect performance
      */
-    desc->desc3.binding_table_entry_count = MAX_SURFACE_NUM;
-    desc->desc3.binding_table_pointer = media_state->binding_table_offset >> 5;
+    desc.desc3.binding_table_entry_count = MAX_SURFACE_NUM;
+    desc.desc3.binding_table_pointer = media_state->binding_table.bo->offset >> 5;
+
+    drm_intel_bo_subdata(media_state->vfe_state.interface.bo, i*sizeof(desc), 
+	    sizeof(desc), &desc);
+
+    drm_intel_bo_emit_reloc(
+	    media_state->vfe_state.interface.bo,
+	    i * sizeof(desc) + 
+	    offsetof(struct brw_interface_descriptor, desc0),
+	    media_state->vfe_state.interface.kernels[i].bo,
+	    desc.desc0.grf_reg_blocks,
+	    I915_GEM_DOMAIN_INSTRUCTION, 0);
+
+    drm_intel_bo_emit_reloc(
+	    media_state->vfe_state.interface.bo,
+	    i * sizeof(desc) + 
+	    offsetof(struct brw_interface_descriptor, desc3),
+	    media_state->binding_table.bo,
+	    desc.desc3.binding_table_entry_count,
+	    I915_GEM_DOMAIN_INSTRUCTION, 0);
 }
 
-static void interface_descriptor(struct media_state *media_state)
+static Status interface_descriptor(struct media_state *media_state)
 {
-	setup_interface(media_state, INTRA_INTERFACE, 
-		media_state->ipicture_kernel_offset);
-	setup_interface(media_state, NULL_INTERFACE, 
-		media_state->null_kernel_offset);
-	setup_interface(media_state, FORWARD_INTERFACE, 
-		media_state->frame_forward_kernel_offset);
-	setup_interface(media_state, FIELD_FORWARD_INTERFACE, 
-		media_state->field_forward_kernel_offset);
-	setup_interface(media_state, BACKWARD_INTERFACE, 
-		media_state->frame_backward_kernel_offset);
-	setup_interface(media_state, FIELD_BACKWARD_INTERFACE, 
-		media_state->field_backward_kernel_offset);
-	setup_interface(media_state, F_B_INTERFACE, 
-		media_state->frame_f_b_kernel_offset);
-	setup_interface(media_state, FIELD_F_B_INTERFACE, 
-		media_state->field_f_b_kernel_offset);
-	setup_interface(media_state, DUAL_PRIME_INTERFACE,
-		media_state->dual_prime_kernel_offset);
+	if (media_state->vfe_state.interface.bo)
+		drm_intel_bo_unreference(media_state->vfe_state.interface.bo);
+	media_state->vfe_state.interface.bo = drm_intel_bo_alloc(xvmc_driver->bufmgr,
+			"interfaces", DESCRIPTOR_NUM*sizeof(struct brw_interface_descriptor),
+			0x1000);
+	if (!media_state->vfe_state.interface.bo)
+		return BadAlloc;
+
+	setup_interface(media_state, INTRA_INTERFACE);
+	setup_interface(media_state, NULL_INTERFACE);
+	setup_interface(media_state, FORWARD_INTERFACE);
+	setup_interface(media_state, FIELD_FORWARD_INTERFACE);
+	setup_interface(media_state, BACKWARD_INTERFACE);
+	setup_interface(media_state, FIELD_BACKWARD_INTERFACE);
+	setup_interface(media_state, F_B_INTERFACE);
+	setup_interface(media_state, FIELD_F_B_INTERFACE);
+	setup_interface(media_state, DUAL_PRIME_INTERFACE);
+	return Success;
 }
 
-static void vfe_state(struct media_state *media_state)
+static Status vfe_state(struct media_state *media_state)
 {
-	struct brw_vfe_state *state;
-	state = media_state->state_ptr +
-	    (media_state->vfe_state_offset - media_state->state_base);
-	memset(state, 0, sizeof(*state));
+	struct brw_vfe_state state;
+	memset(&state, 0, sizeof(state));
+
 	/* no scratch space */
-	state->vfe1.vfe_mode = VFE_GENERIC_MODE;
-	state->vfe1.num_urb_entries = 1; 
+	state.vfe1.vfe_mode = VFE_GENERIC_MODE;
+	state.vfe1.num_urb_entries = 1;
 	/* XXX TODO */
 	/* should carefully caculate those values for performance */
-	state->vfe1.urb_entry_alloc_size = 2; 
-	state->vfe1.max_threads = 31; 
-	state->vfe2.interface_descriptor_base = 
-		media_state->interface_descriptor_offset[0] >> 4;
-}
-
-static void calc_state_layouts(struct media_state *media_state)
-{
-    int i;
-    media_state->vfe_state_offset = ALIGN(media_state->state_base, 64);
-    media_state->interface_descriptor_offset[0] = 
-	ALIGN(media_state->vfe_state_offset + sizeof(struct brw_vfe_state), 64);
-    for (i = 1; i < DESCRIPTOR_NUM; i++)
-	media_state->interface_descriptor_offset[i] = 
-	    media_state->interface_descriptor_offset[i-1]
-	    + sizeof(struct brw_interface_descriptor);
-    media_state->binding_table_offset = 
-	ALIGN(media_state->interface_descriptor_offset[DESCRIPTOR_NUM - 1]
-		+ sizeof(struct brw_interface_descriptor), 64);
-    media_state->surface_offsets[0] = 
-	ALIGN(media_state->binding_table_offset
-		+ 4*media_state->binding_table_entry_count , 32);
-    for (i = 1; i < MAX_SURFACE_NUM; i++)
-	media_state->surface_offsets[i] = 
-	    ALIGN(media_state->surface_offsets[i - 1] 
-		    + sizeof(struct brw_surface_state) , 32);
-    media_state->ipicture_kernel_offset = 
-	ALIGN(media_state->surface_offsets[MAX_SURFACE_NUM - 1] 
-		+ sizeof(struct brw_surface_state) , 64);
-
-    media_state->frame_forward_kernel_offset = 
-	    ALIGN(media_state->ipicture_kernel_offset + 
-			    sizeof(ipicture_kernel_static), 64);
-    if(!media_state->is_g4x) {
-	    media_state->field_forward_kernel_offset = 
-		    ALIGN(media_state->frame_forward_kernel_offset + 
-				    sizeof(frame_forward_kernel_static), 64);
-	    media_state->frame_backward_kernel_offset = 
-		    ALIGN(media_state->field_forward_kernel_offset + 
-				    sizeof(field_forward_kernel_static), 64);
-	    media_state->field_backward_kernel_offset = 
-		    ALIGN(media_state->frame_backward_kernel_offset + 
-				    sizeof(frame_backward_kernel_static), 64);
-	    media_state->frame_f_b_kernel_offset = 
-		    ALIGN(media_state->field_backward_kernel_offset + 
-				    sizeof(field_backward_kernel_static), 64);
-	    media_state->field_f_b_kernel_offset = 
-		    ALIGN(media_state->frame_f_b_kernel_offset + 
-				    sizeof(frame_f_b_kernel_static), 64);
-	    media_state->null_kernel_offset =
-		    ALIGN(media_state->field_f_b_kernel_offset +
-				    sizeof(field_f_b_kernel_static), 64);
-	    media_state->dual_prime_kernel_offset =
-		    ALIGN(media_state->null_kernel_offset +
-				    sizeof(null_kernel_static), 64);
-    } else {
-	    media_state->field_forward_kernel_offset = 
-		    ALIGN(media_state->frame_forward_kernel_offset + 
-				    sizeof(frame_forward_igd_kernel_static), 64);
-	    media_state->frame_backward_kernel_offset = 
-		    ALIGN(media_state->field_forward_kernel_offset + 
-				    sizeof(field_forward_igd_kernel_static), 64);
-	    media_state->field_backward_kernel_offset = 
-		    ALIGN(media_state->frame_backward_kernel_offset + 
-				    sizeof(frame_backward_igd_kernel_static), 64);
-	    media_state->frame_f_b_kernel_offset = 
-		    ALIGN(media_state->field_backward_kernel_offset + 
-				    sizeof(field_backward_igd_kernel_static), 64);
-	    media_state->field_f_b_kernel_offset = 
-		    ALIGN(media_state->frame_f_b_kernel_offset + 
-				    sizeof(frame_f_b_igd_kernel_static), 64);
-	    media_state->null_kernel_offset =
-		    ALIGN(media_state->field_f_b_kernel_offset +
-				    sizeof(field_f_b_igd_kernel_static), 64);
-	    media_state->dual_prime_kernel_offset =
-		    ALIGN(media_state->null_kernel_offset +
-				    sizeof(null_kernel_static), 64);
-    }
+	state.vfe1.urb_entry_alloc_size = 2;
+	state.vfe1.max_threads = 31;
+        state.vfe2.interface_descriptor_base =
+		media_state->vfe_state.interface.bo->offset >> 4;
+
+	if (media_state->vfe_state.bo)
+		drm_intel_bo_unreference(media_state->vfe_state.bo);
+	media_state->vfe_state.bo = drm_intel_bo_alloc(xvmc_driver->bufmgr,
+		"vfe state", sizeof(struct brw_vfe_state), 0x1000);
+	if (!media_state->vfe_state.bo)
+		return BadAlloc;
+
+	drm_intel_bo_subdata(media_state->vfe_state.bo, 0, sizeof(state), &state);
+
+	drm_intel_bo_emit_reloc(media_state->vfe_state.bo,
+		offsetof(struct brw_vfe_state, vfe2),
+		media_state->vfe_state.interface.bo, 0,
+		I915_GEM_DOMAIN_INSTRUCTION, 0);
+	return Success;
 }
 
 static Status render_surface(Display *display, 
@@ -588,13 +669,35 @@ static Status render_surface(Display *display,
 	XVMC_ERR("Can't find intel xvmc context\n");
 	return BadValue;
     }
+
+    if (media_state.indirect_data.bo) {
+        if (xvmc_driver->kernel_exec_fencing)
+            drm_intel_gem_bo_unmap_gtt(media_state.indirect_data.bo);
+        else
+            drm_intel_bo_unmap(media_state.indirect_data.bo);
+
+        drm_intel_bo_unreference(media_state.indirect_data.bo);
+    }
+    media_state.indirect_data.bo = drm_intel_bo_alloc(xvmc_driver->bufmgr,
+	    "indirect data", 128*6*num_macroblocks, 64);
+    if (!media_state.indirect_data.bo)
+        return BadAlloc;
     setup_surfaces(&media_state, 
-	    priv_target_surface->buffer.offset, 
-	    past_surface? priv_past_surface->buffer.offset:0, 
-	    future_surface?priv_future_surface->buffer.offset:0, 
+	    priv_target_surface->bo, 
+	    past_surface? priv_past_surface->bo:NULL, 
+	    future_surface?priv_future_surface->bo:NULL, 
 	    context->width, context->height);
+    setup_blocks(&media_state, 128*6*num_macroblocks);
+    binding_tables(&media_state);
+    interface_descriptor(&media_state);
+    vfe_state(&media_state);
+
+    if (xvmc_driver->kernel_exec_fencing)
+        drm_intel_gem_bo_map_gtt(media_state.indirect_data.bo);
+    else
+        drm_intel_bo_map(media_state.indirect_data.bo, 1);
 
-    block_ptr = i965_ctx->blocks.ptr;
+    block_ptr = media_state.indirect_data.bo->virtual;
     for (i = first_macroblock; 
 	    i < num_macroblocks + first_macroblock; i++) {
 	unsigned short *mb_block_ptr;
@@ -635,20 +738,15 @@ static Status render_surface(Display *display,
 	    memcpy(block_ptr, mb_block_ptr, 128);
 	block_ptr += 64;
     }
-
     {
-	int block_offset;
-	block_offset = media_state.is_965_q?0:i965_ctx->blocks.offset;
+	int block_offset = 0;
 	LOCK_HARDWARE(intel_ctx->hw_context);
-	state_base_address(block_offset);
+	state_base_address();
 	flush();	
 	clear_sf_state();
-	clear_urb_state();
 	pipeline_select(&media_state);
 	urb_layout();	
 	media_state_pointers(&media_state);
-	cs_urb_layout();
-
 	for (i = first_macroblock; 
 		i < num_macroblocks + first_macroblock; 
 		i++, block_offset += 128*6) {
@@ -700,8 +798,11 @@ static Status put_surface(Display *display,XvMCSurface *surface,
 {
 	struct i965_xvmc_surface *private_surface =
 		surface->privData;
+	uint32_t handle = 0;
+
+	drm_intel_bo_flink(private_surface->bo, &handle);
+	data->handle = handle;
 
-	data->surf_offset = private_surface->buffer.offset;
 	return Success;
 }
 
@@ -718,25 +819,14 @@ static Status create_context(Display *display, XvMCContext *context,
     struct i965_xvmc_context *i965_ctx;
     i965_ctx = (struct i965_xvmc_context *)priv_data;
     context->privData = i965_ctx;
-    if (map_buffer(&i965_ctx->static_buffer))
-	return BadAlloc;
-    if(map_buffer(&i965_ctx->blocks))
-	return BadAlloc;
-    {
-	media_state.state_base = i965_ctx->static_buffer.offset;
-	media_state.state_ptr = i965_ctx->static_buffer.ptr;
-	media_state.is_g4x = i965_ctx->is_g4x;
-	media_state.is_965_q = i965_ctx->is_965_q;
-	media_state.binding_table_entry_count = MAX_SURFACE_NUM;
-	calc_state_layouts(&media_state);
-	vfe_state(&media_state);
-	interface_descriptor(&media_state); 
-	media_kernels(&media_state);
-	setup_blocks(&media_state, 
-		i965_ctx->blocks.offset, 
-		6*context->width*context->height*sizeof(short));
-	binding_tables(&media_state);
-    }
+
+    media_state.is_g4x = i965_ctx->is_g4x;
+    media_state.is_965_q = i965_ctx->is_965_q;
+
+    if (alloc_object(&media_state))
+        return BadAlloc;
+    if (media_kernels(&media_state))
+        return BadAlloc;
     return Success;
 }
 
diff --git a/src/xvmc/intel_batchbuffer.c b/src/xvmc/intel_batchbuffer.c
index 6d4b496..02fbd5a 100644
--- a/src/xvmc/intel_batchbuffer.c
+++ b/src/xvmc/intel_batchbuffer.c
@@ -45,9 +45,10 @@
 
 #include "intel_xvmc.h"
 #include "intel_batchbuffer.h"
-
+#include "brw_defines.h"
+#include "brw_structs.h"
 #define MI_BATCH_BUFFER_END     (0xA << 23)
-
+#define BATCH_SIZE 8*1024 /* one bo is allocated each time, so the size can be small */
 static int intelEmitIrqLocked(void)
 {
    drmI830IrqEmit ie;
@@ -82,192 +83,105 @@ static void intelWaitIrq(int seq)
    }
 }
 
-static void intelDestroyBatchBuffer(void)
+static void i965_end_batch(void)
 {
-   if (xvmc_driver->alloc.offset) {
-       xvmc_driver->alloc.ptr = NULL;
-       xvmc_driver->alloc.offset = 0;
-   } else if (xvmc_driver->alloc.ptr) {
-      free(xvmc_driver->alloc.ptr);
-      xvmc_driver->alloc.ptr = NULL;
-   }
-
-   memset(&xvmc_driver->batch, 0, sizeof(xvmc_driver->batch));
+    unsigned int size = xvmc_driver->batch.ptr - 
+	xvmc_driver->batch.init_ptr;
+    if ((size & 4) == 0) {
+	*(unsigned int*)xvmc_driver->batch.ptr = 0;
+	xvmc_driver->batch.ptr += 4;
+    }
+    *(unsigned int*)xvmc_driver->batch.ptr = MI_BATCH_BUFFER_END;
+    xvmc_driver->batch.ptr += 4;
 }
 
-
 Bool intelInitBatchBuffer(void)
 {
-    if (drmMap(xvmc_driver->fd,
-		xvmc_driver->batchbuffer.handle,
-		xvmc_driver->batchbuffer.size,
-		(drmAddress *)&xvmc_driver->batchbuffer.map) != 0) {
-	XVMC_ERR("fail to map batch buffer\n");
+    int i;
+
+    if((xvmc_driver->batch.buf = 
+		drm_intel_bo_alloc(xvmc_driver->bufmgr, 
+		    "batch buffer", BATCH_SIZE, 0x1000)) == NULL) {
+	fprintf(stderr, "unable to alloc batch buffer\n");
 	return False;
     }
 
-    if (xvmc_driver->batchbuffer.map) {
-	xvmc_driver->alloc.size = xvmc_driver->batchbuffer.size;
-	xvmc_driver->alloc.offset = xvmc_driver->batchbuffer.offset;
-	xvmc_driver->alloc.ptr = xvmc_driver->batchbuffer.map;
-    } else {
-	xvmc_driver->alloc.size = 8 * 1024;
-	xvmc_driver->alloc.offset = 0;
-	xvmc_driver->alloc.ptr = malloc(xvmc_driver->alloc.size);
-    }
+    if (xvmc_driver->kernel_exec_fencing)
+        drm_intel_gem_bo_map_gtt(xvmc_driver->batch.buf);
+    else
+        drm_intel_bo_map(xvmc_driver->batch.buf, 1);
 
-    xvmc_driver->alloc.active_buf = 0;
-    assert(xvmc_driver->alloc.ptr);
+    xvmc_driver->batch.init_ptr = xvmc_driver->batch.buf->virtual;
+    xvmc_driver->batch.size = BATCH_SIZE;
+    xvmc_driver->batch.space = BATCH_SIZE;
+    xvmc_driver->batch.ptr = xvmc_driver->batch.init_ptr;
     return True;
 }
 
 void intelFiniBatchBuffer(void)
 {
-    if (xvmc_driver->batchbuffer.map) {
-        drmUnmap(xvmc_driver->batchbuffer.map, xvmc_driver->batchbuffer.size);
-        xvmc_driver->batchbuffer.map = NULL;
-    }
-    intelDestroyBatchBuffer();
-}
-
-static void intelBatchbufferRequireSpace(unsigned int sz)
-{
-   if (xvmc_driver->batch.space < sz)
-      intelFlushBatch(TRUE);
-}
-
-void intelBatchbufferData(const void *data, unsigned bytes, unsigned flags)
-{
-   assert((bytes & 0x3) == 0);
-
-   intelBatchbufferRequireSpace(bytes);
-   memcpy(xvmc_driver->batch.ptr, data, bytes);
-   xvmc_driver->batch.ptr += bytes;
-   xvmc_driver->batch.space -= bytes;
+    if (xvmc_driver->kernel_exec_fencing)
+        drm_intel_gem_bo_unmap_gtt(xvmc_driver->batch.buf);
+    else
+        drm_intel_bo_unmap(xvmc_driver->batch.buf);
 
-   assert(xvmc_driver->batch.space >= 0);
+    drm_intel_bo_unreference(xvmc_driver->batch.buf);
 }
 
-#define MI_FLUSH                ((0 << 29) | (4 << 23))
-#define FLUSH_MAP_CACHE         (1 << 0)
-#define FLUSH_RENDER_CACHE      (0 << 2)
-#define FLUSH_WRITE_DIRTY_STATE (1 << 4)
 
-static void intelRefillBatchLocked(Bool allow_unlock)
+void intelFlushBatch(Bool refill )
 {
-   unsigned half = xvmc_driver->alloc.size >> 1;
-   unsigned buf = (xvmc_driver->alloc.active_buf ^= 1);
-   unsigned dword[2];
-
-   dword[0] = MI_FLUSH | FLUSH_WRITE_DIRTY_STATE | FLUSH_RENDER_CACHE | FLUSH_MAP_CACHE;
-   dword[1] = 0;
-   intelCmdIoctl((char *)&dword[0], sizeof(dword));
-
-   xvmc_driver->alloc.irq_emitted = intelEmitIrqLocked();
+    i965_end_batch();
+
+    if (xvmc_driver->kernel_exec_fencing)
+        drm_intel_gem_bo_unmap_gtt(xvmc_driver->batch.buf);
+    else
+        drm_intel_bo_unmap(xvmc_driver->batch.buf);
+
+    drm_intel_bo_exec(xvmc_driver->batch.buf, 
+	    xvmc_driver->batch.ptr - xvmc_driver->batch.init_ptr,
+	    0, 0, 0);
+    //dri_bo_wait_rendering(xvmc_driver->batch.buf);
+
+    drm_intel_bo_unreference(xvmc_driver->batch.buf);
+    if((xvmc_driver->batch.buf = 
+		drm_intel_bo_alloc(xvmc_driver->bufmgr, 
+		    "batch buffer", BATCH_SIZE, 0x1000)) == NULL) {
+	fprintf(stderr, "unable to alloc batch buffer\n");
+    }
 
-   if (xvmc_driver->alloc.irq_emitted) {
-       intelWaitIrq(xvmc_driver->alloc.irq_emitted);
-   }
+    if (xvmc_driver->kernel_exec_fencing)
+        drm_intel_gem_bo_map_gtt(xvmc_driver->batch.buf);
+    else
+        drm_intel_bo_map(xvmc_driver->batch.buf, 1);
 
-   xvmc_driver->batch.start_offset = xvmc_driver->alloc.offset + buf * half;
-   xvmc_driver->batch.ptr = (unsigned char *)xvmc_driver->alloc.ptr + buf * half;
-   xvmc_driver->batch.size = half - 8;
-   xvmc_driver->batch.space = half - 8;
-   assert(xvmc_driver->batch.space >= 0);
+    xvmc_driver->batch.init_ptr = xvmc_driver->batch.buf->virtual;
+    xvmc_driver->batch.size = BATCH_SIZE;
+    xvmc_driver->batch.space = BATCH_SIZE;
+    xvmc_driver->batch.ptr = xvmc_driver->batch.init_ptr;
 }
 
-
-static void intelFlushBatchLocked(Bool ignore_cliprects,
-				  Bool refill,
-				  Bool allow_unlock)
+void intelBatchbufferRequireSpace(int size)
 {
-   drmI830BatchBuffer batch;
-
-   if (xvmc_driver->batch.space != xvmc_driver->batch.size) {
-
-      batch.start = xvmc_driver->batch.start_offset;
-      batch.used = xvmc_driver->batch.size - xvmc_driver->batch.space;
-      batch.cliprects = 0;
-      batch.num_cliprects = 0;
-      batch.DR1 = 0;
-      batch.DR4 = 0;
-
-      if (xvmc_driver->alloc.offset) {
-          if ((batch.used & 0x4) == 0) {
-              ((int *)xvmc_driver->batch.ptr)[0] = 0;
-              ((int *)xvmc_driver->batch.ptr)[1] = MI_BATCH_BUFFER_END;
-              batch.used += 0x8;
-              xvmc_driver->batch.ptr += 0x8;
-          } else {
-              ((int *)xvmc_driver->batch.ptr)[0] = MI_BATCH_BUFFER_END;
-              batch.used += 0x4;
-              xvmc_driver->batch.ptr += 0x4;
-          }
-      }
-
-      xvmc_driver->batch.start_offset += batch.used;
-      xvmc_driver->batch.size -= batch.used;
-
-      if (xvmc_driver->batch.size < 8) {
-         refill = TRUE;
-         xvmc_driver->batch.space = xvmc_driver->batch.size = 0;
-      }
-      else {
-         xvmc_driver->batch.size -= 8;
-         xvmc_driver->batch.space = xvmc_driver->batch.size;
-      }
-
-      assert(xvmc_driver->batch.space >= 0);
-      assert(batch.start >= xvmc_driver->alloc.offset);
-      assert(batch.start < xvmc_driver->alloc.offset + xvmc_driver->alloc.size);
-      assert(batch.start + batch.used > xvmc_driver->alloc.offset);
-      assert(batch.start + batch.used <= xvmc_driver->alloc.offset + xvmc_driver->alloc.size);
-
-      if (xvmc_driver->alloc.offset) {
-          if (drmCommandWrite(xvmc_driver->fd, DRM_I830_BATCHBUFFER, &batch, sizeof(batch))) {
-              fprintf(stderr, "DRM_I830_BATCHBUFFER: %d\n",  -errno);
-              exit(1);
-          }
-      } else {
-         drmI830CmdBuffer cmd;
-         cmd.buf = (char *)xvmc_driver->alloc.ptr + batch.start;
-         cmd.sz = batch.used;
-         cmd.DR1 = batch.DR1;
-         cmd.DR4 = batch.DR4;
-         cmd.num_cliprects = batch.num_cliprects;
-         cmd.cliprects = batch.cliprects;
-
-         if (drmCommandWrite(xvmc_driver->fd, DRM_I830_CMDBUFFER, 
-                             &cmd, sizeof(cmd))) {
-            fprintf(stderr, "DRM_I915_CMDBUFFER: %d\n",  -errno);
-            exit(1);
-         }
-      }
-   }
-
-   if (refill)
-      intelRefillBatchLocked(allow_unlock);
+    assert(xvmc_driver->batch.ptr - xvmc_driver->batch.init_ptr + size <
+        xvmc_driver->batch.size - 8);
+    if (xvmc_driver->batch.ptr - xvmc_driver->batch.init_ptr + size 
+	    >= xvmc_driver->batch.size - 8) 
+	intelFlushBatch(1);
 }
 
-void intelFlushBatch(Bool refill )
+void intelBatchbufferData(const void *data, unsigned bytes, unsigned flags)
 {
-   intelFlushBatchLocked(FALSE, refill, TRUE);
+   intelBatchbufferRequireSpace(bytes);
+   memcpy(xvmc_driver->batch.ptr, data, bytes);
+   xvmc_driver->batch.ptr += bytes;
+   xvmc_driver->batch.space -= bytes;
 }
 
-void intelCmdIoctl(char *buf, unsigned used)
+void intel_batch_emit_reloc(dri_bo *bo, uint32_t read_domain,
+	uint32_t write_domain, uint32_t delta, unsigned char *ptr)
 {
-   drmI830CmdBuffer cmd;
-
-   cmd.buf = buf;
-   cmd.sz = used;
-   cmd.cliprects = 0;
-   cmd.num_cliprects = 0;
-   cmd.DR1 = 0;
-   cmd.DR4 = 0;
-
-   if (drmCommandWrite(xvmc_driver->fd, DRM_I830_CMDBUFFER, 
-                       &cmd, sizeof(cmd))) {
-      fprintf(stderr, "DRM_I830_CMDBUFFER: %d\n",  -errno);
-      exit(1);
-   }
+    drm_intel_bo_emit_reloc(xvmc_driver->batch.buf, 
+	    ptr - xvmc_driver->batch.init_ptr, bo, delta,
+	    read_domain, write_domain);
 }
diff --git a/src/xvmc/intel_batchbuffer.h b/src/xvmc/intel_batchbuffer.h
index d4d8037..ea9058c 100644
--- a/src/xvmc/intel_batchbuffer.h
+++ b/src/xvmc/intel_batchbuffer.h
@@ -10,6 +10,7 @@ extern int VERBOSE;
 
 #define BEGIN_BATCH(n)                                                  \
     do {                                                                \
+	assert(xvmc_driver->batch.space >= (n) *4);			\
         if (xvmc_driver->batch.space < (n)*4)                           \
             intelFlushBatch(TRUE);                            		\
         batch_ptr = xvmc_driver->batch.ptr;                             \
@@ -21,6 +22,13 @@ extern int VERBOSE;
         batch_ptr += 4;                                                 \
     } while (0)
 
+#define OUT_RELOC(bo,read_domains,write_domains,delta)  \
+    do { \
+        *(unsigned int *)batch_ptr = delta + bo->offset; \
+        intel_batch_emit_reloc(bo, read_domains, write_domains, delta, batch_ptr); \
+        batch_ptr += 4;                                                 \
+    } while (0)
+
 #define OUT_BATCH_SHORT(n)                                              \
     do {                                                                \
         *(short *)batch_ptr = (n);                                      \
@@ -44,4 +52,6 @@ extern void intelBatchbufferData(const void *, unsigned, unsigned);
 extern Bool intelInitBatchBuffer(void);
 extern void intelFiniBatchBuffer(void);
 extern void intelCmdIoctl(char *, unsigned);
+extern void intel_batch_emit_reloc(dri_bo *bo, uint32_t read_domain,
+	uint32_t write_domain, uint32_t delta, unsigned char *);
 #endif /* _INTEL_BATCHBUFFER_H */
diff --git a/src/xvmc/intel_xvmc.c b/src/xvmc/intel_xvmc.c
index 71ae77b..6f55902 100644
--- a/src/xvmc/intel_xvmc.c
+++ b/src/xvmc/intel_xvmc.c
@@ -342,9 +342,7 @@ _X_EXPORT Status XvMCCreateContext(Display *display, XvPortID port,
 
     XVMC_INFO("decoder type is %s", intel_xvmc_decoder_string(comm->type));
 
-    xvmc_driver->batchbuffer.handle = comm->batchbuffer.handle;
-    xvmc_driver->batchbuffer.offset = comm->batchbuffer.offset;
-    xvmc_driver->batchbuffer.size = comm->batchbuffer.size;
+    xvmc_driver->kernel_exec_fencing = comm->kernel_exec_fencing;
 
     /* assign local ctx info */
     intel_ctx = intel_xvmc_new_context(display);
@@ -410,6 +408,13 @@ _X_EXPORT Status XvMCCreateContext(Display *display, XvPortID port,
         return ret;
     }
 
+    if ((xvmc_driver->bufmgr =
+		intel_bufmgr_gem_init(xvmc_driver->fd, 1024*64)) == NULL) {
+	XVMC_ERR("Can't init bufmgr\n");
+ 	return BadAlloc;
+    }
+    drm_intel_bufmgr_gem_enable_reuse(xvmc_driver->bufmgr);
+
     /* call driver hook.
      * driver hook should free priv_data after return if success.*/
     ret = (xvmc_driver->create_context)(display, context, priv_count, priv_data);
@@ -451,6 +456,10 @@ _X_EXPORT Status XvMCDestroyContext(Display *display, XvMCContext *context)
 	return ret;
     }
 
+    intelFiniBatchBuffer();
+
+    dri_bufmgr_destroy(xvmc_driver->bufmgr);
+
     intel_xvmc_free_context(context->context_id);
 
     ret = _xvmc_destroy_context(display, context);
@@ -466,7 +475,6 @@ _X_EXPORT Status XvMCDestroyContext(Display *display, XvMCContext *context)
        close(xvmc_driver->fd);
    
 	xvmc_driver->fd = -1;
-	intelFiniBatchBuffer();
 	intel_xvmc_dump_close();
     }
     return Success;
diff --git a/src/xvmc/intel_xvmc.h b/src/xvmc/intel_xvmc.h
index f9c517a..862b30e 100644
--- a/src/xvmc/intel_xvmc.h
+++ b/src/xvmc/intel_xvmc.h
@@ -53,8 +53,9 @@
 #include <X11/extensions/XvMClib.h>
 #include <X11/extensions/vldXvMC.h>
 #include <drm_sarea.h>
-
+#include "i915_drm.h"
 #include "xf86dri.h"
+#include "intel_bufmgr.h"
 
 #include "intel_batchbuffer.h"
 
@@ -131,11 +132,16 @@ typedef struct _intel_xvmc_driver {
 
     int fd;			/* drm file handler */
 
+    dri_bufmgr      *bufmgr;
+    unsigned int kernel_exec_fencing:1;
+
     struct {
-	unsigned int start_offset;
+	unsigned int init_offset;
 	unsigned int size;
 	unsigned int space;
 	unsigned char *ptr;
+	unsigned char *init_ptr;
+	dri_bo *buf;
     } batch;
 
     struct
diff --git a/src/xvmc/xvmc_vld.c b/src/xvmc/xvmc_vld.c
index 204cfb7..9bb9894 100644
--- a/src/xvmc/xvmc_vld.c
+++ b/src/xvmc/xvmc_vld.c
@@ -35,6 +35,8 @@
 
 #define BATCH_STRUCT(x) intelBatchbufferData(&x, sizeof(x), 0)
 
+#define VLD_MAX_SLICE_SIZE (32 * 1024)
+
 #define CS_SIZE 30
 #define URB_SIZE 384
 /* idct table */
@@ -125,25 +127,89 @@ struct media_kernel {
 
 #define MEDIA_KERNEL_NUM (sizeof(media_kernels)/sizeof(media_kernels[0]))
 
+struct media_kernel_obj {
+    dri_bo *bo;
+};
+
+struct interface_descriptor_obj {
+   dri_bo *bo;
+   struct media_kernel_obj kernels[MEDIA_KERNEL_NUM];
+};
+
+struct vfe_state_obj {
+   dri_bo *bo;
+   struct interface_descriptor_obj interface;
+};
+
+struct vld_state_obj {
+   dri_bo *bo;
+};
+
+struct surface_obj {
+     dri_bo *bo; 
+};
+
+struct surface_state_obj {
+      struct surface_obj surface; 
+      dri_bo *bo;
+};
+
+struct binding_table_obj {
+    dri_bo *bo;
+    struct surface_state_obj surface_states[I965_MAX_SURFACES];
+};
+
+struct slice_data_obj {
+    dri_bo *bo;
+};
+
+struct cs_state_obj {
+    dri_bo *bo;
+};
+
 static struct media_state {
-    unsigned long state_base;
-    void 	  *state_ptr;
-    unsigned long vld_state_offset;
-    unsigned long vfe_state_offset;
-    unsigned long interface_descriptor_offsets[16];
-    unsigned long kernel_offsets[MEDIA_KERNEL_NUM];
-    unsigned long cs_offset;
-    unsigned long surface_state_offsets[I965_MAX_SURFACES];
-    unsigned long binding_table_offset;
+    struct vfe_state_obj vfe_state;
+    struct vld_state_obj vld_state;
+    struct binding_table_obj binding_table;
+    struct cs_state_obj cs_object;
+    struct slice_data_obj slice_data;
 } media_state;
 
-static int map_buffer(struct drm_memory_block *mem)
+/* XvMCQMatrix * 2 + idct_table + 8 * kernel offset pointer */
+#define CS_OBJECT_SIZE (32*20 + sizeof(unsigned int) * 8)
+static int free_object(struct media_state *s)
 {
-    return drmMap(xvmc_driver->fd, mem->handle, mem->size, &mem->ptr);
+    int i;
+#define FREE_ONE_BO(bo) \
+    if (bo) \
+        drm_intel_bo_unreference(bo)
+    FREE_ONE_BO(s->vfe_state.bo);
+    FREE_ONE_BO(s->vfe_state.interface.bo);
+    for (i = 0; i < MEDIA_KERNEL_NUM; i++)
+        FREE_ONE_BO(s->vfe_state.interface.kernels[i].bo);
+    FREE_ONE_BO(s->binding_table.bo);
+    for (i = 0; i < I965_MAX_SURFACES; i++)
+        FREE_ONE_BO(s->binding_table.surface_states[i].bo);
+    FREE_ONE_BO(s->slice_data.bo);
+    FREE_ONE_BO(s->cs_object.bo);
+    FREE_ONE_BO(s->vld_state.bo);
 }
-static void unmap_buffer(struct drm_memory_block *mem)
+
+static int alloc_object(struct media_state *s)
 {
-    drmUnmap(mem->ptr, mem->size);
+    int i;
+
+    for (i = 0; i < I965_MAX_SURFACES; i++) {
+        s->binding_table.surface_states[i].bo =
+            drm_intel_bo_alloc(xvmc_driver->bufmgr, "surface_state", 
+ 		sizeof(struct brw_surface_state), 0x1000);
+        if (!s->binding_table.surface_states[i].bo)
+            goto out;
+    }
+    return 0;
+out:
+    free_object(s);
+    return BadAlloc;
 }
 
 static void flush()
@@ -156,47 +222,9 @@ static void flush()
     BATCH_STRUCT(f);
 }
 
-static void calc_state_layout()
-{
-  int i;
-  media_state.vld_state_offset = media_state.state_base;
-  media_state.vfe_state_offset = 
-      ALIGN(media_state.vld_state_offset + sizeof(struct brw_vld_state), 64);
-  media_state.interface_descriptor_offsets[0] =
-      ALIGN(media_state.vfe_state_offset + sizeof(struct brw_vfe_state), 64);
-  for (i = 1; i < 16; i++)
-      media_state.interface_descriptor_offsets[i] =
-	  media_state.interface_descriptor_offsets[i - 1] 
-	  + sizeof(struct brw_interface_descriptor);
-  media_state.binding_table_offset = 
-	  ALIGN(media_state.interface_descriptor_offsets[15] + 
-	  + sizeof(struct brw_interface_descriptor), 64);
-  media_state.surface_state_offsets[0] = ALIGN(media_state.binding_table_offset 
-	  + 4*I965_MAX_SURFACES, 32);
-  for (i = 1; i < I965_MAX_SURFACES; i++)
-      media_state.surface_state_offsets[i] = 
-	  ALIGN(media_state.surface_state_offsets[i-1]
-		  + sizeof(struct brw_surface_state), 32);
-
-  media_state.kernel_offsets[0] = 
-      ALIGN(media_state.surface_state_offsets[I965_MAX_SURFACES - 1]
-	      + sizeof(struct brw_surface_state), 64);
-  for (i = 1; i < MEDIA_KERNEL_NUM; i++)
-      media_state.kernel_offsets[i] = 
-	  ALIGN(media_state.kernel_offsets[i-1] + media_kernels[i-1].size, 64);
-  media_state.cs_offset = ALIGN(media_state.kernel_offsets[MEDIA_KERNEL_NUM-1]
-	  + media_kernels[MEDIA_KERNEL_NUM-1].size, 64);
-}
-
-static void *offset_to_ptr(unsigned long offset)
+static Status vfe_state()
 {
-    return media_state.state_ptr + (offset - media_state.state_base);
-}
-
-static void vfe_state()
-{
-  struct brw_vfe_state *vfe_state;
-  vfe_state = offset_to_ptr(media_state.vfe_state_offset);
+  struct brw_vfe_state tmp, *vfe_state = &tmp;
   memset(vfe_state, 0, sizeof(*vfe_state));
   vfe_state->vfe0.extend_vfe_state_present = 1;
   vfe_state->vfe1.vfe_mode = VFE_VLD_MODE;
@@ -204,59 +232,148 @@ static void vfe_state()
   vfe_state->vfe1.children_present = 0;
   vfe_state->vfe1.urb_entry_alloc_size = 2;
   vfe_state->vfe1.max_threads = 31;
+  vfe_state->vfe2.interface_descriptor_base =
+      media_state.vfe_state.interface.bo->offset >> 4;
+
+    if (media_state.vfe_state.bo)
+        drm_intel_bo_unreference(media_state.vfe_state.bo);
 
-  vfe_state->vfe2.interface_descriptor_base = 
-      media_state.interface_descriptor_offsets[0] >> 4;
+    media_state.vfe_state.bo = drm_intel_bo_alloc(xvmc_driver->bufmgr,
+        "vfe state", sizeof(struct brw_vfe_state), 0x1000);
+    if (!media_state.vfe_state.bo)
+        return BadAlloc;
+
+    drm_intel_bo_subdata(media_state.vfe_state.bo, 0, sizeof(tmp), &tmp);
+
+    drm_intel_bo_emit_reloc(media_state.vfe_state.bo,
+	offsetof(struct brw_vfe_state, vfe2),
+	media_state.vfe_state.interface.bo, 0,
+	I915_GEM_DOMAIN_INSTRUCTION, 0);
+    return Success;
 }
 
-static void interface_descriptor()
+static Status interface_descriptor()
 {
     int i;
-    struct brw_interface_descriptor *desc;
+    struct brw_interface_descriptor tmp, *desc = &tmp;
+
+    if (media_state.vfe_state.interface.bo)
+        drm_intel_bo_unreference(media_state.vfe_state.interface.bo);
+
+    media_state.vfe_state.interface.bo = drm_intel_bo_alloc(xvmc_driver->bufmgr,
+        "interfaces", MEDIA_KERNEL_NUM*sizeof(struct brw_interface_descriptor),
+	    0x1000);
+    if (!media_state.vfe_state.interface.bo)
+        return BadAlloc;
+
     for (i = 0; i < MEDIA_KERNEL_NUM; i++) {
-	desc = offset_to_ptr(media_state.interface_descriptor_offsets[i]);
 	memset(desc, 0, sizeof(*desc));
 	desc->desc0.grf_reg_blocks = 15;
-	desc->desc0.kernel_start_pointer = media_state.kernel_offsets[i] >> 6;
+	desc->desc0.kernel_start_pointer =
+            media_state.vfe_state.interface.kernels[i].bo->offset >> 6;
 
 	desc->desc1.const_urb_entry_read_offset = 0;
 	desc->desc1.const_urb_entry_read_len = 30;
 
 	desc->desc3.binding_table_entry_count = I965_MAX_SURFACES - 1;
-	desc->desc3.binding_table_pointer = media_state.binding_table_offset>>5;
+	desc->desc3.binding_table_pointer =
+            media_state.binding_table.bo->offset >> 5;
+
+        drm_intel_bo_subdata(media_state.vfe_state.interface.bo, i*sizeof(tmp), sizeof(tmp), desc);
+
+        drm_intel_bo_emit_reloc(
+	    media_state.vfe_state.interface.bo,
+	    i * sizeof(*desc) + 
+	    offsetof(struct brw_interface_descriptor, desc0),
+	    media_state.vfe_state.interface.kernels[i].bo,
+	    desc->desc0.grf_reg_blocks,
+	    I915_GEM_DOMAIN_INSTRUCTION, 0);
+
+       drm_intel_bo_emit_reloc(
+	    media_state.vfe_state.interface.bo,
+	    i * sizeof(*desc) + 
+	    offsetof(struct brw_interface_descriptor, desc3),
+	    media_state.binding_table.bo,
+	    desc->desc3.binding_table_entry_count,
+	    I915_GEM_DOMAIN_INSTRUCTION, 0);
     }
+    return Success;
 }
 
-static void setup_media_kernels()
+static int setup_media_kernels()
 {
     int i;
-    void *kernel_ptr;
+
     for (i = 0; i < MEDIA_KERNEL_NUM; i++) {
-	kernel_ptr = offset_to_ptr(media_state.kernel_offsets[i]);
-	memcpy(kernel_ptr, media_kernels[i].bin, media_kernels[i].size);
+        media_state.vfe_state.interface.kernels[i].bo =
+		drm_intel_bo_alloc(xvmc_driver->bufmgr, "kernel",
+			media_kernels[i].size, 0x1000);
+        if (!media_state.vfe_state.interface.kernels[i].bo)
+            goto out;
     }
+
+    for (i = 0; i < MEDIA_KERNEL_NUM; i++) {
+        dri_bo *bo = media_state.vfe_state.interface.kernels[i].bo;
+        drm_intel_bo_subdata(bo, 0, media_kernels[i].size, media_kernels[i].bin);
+    }
+    return 0;
+out:
+    free_object(&media_state);
+    return BadAlloc;
 }
 
-static void binding_tables()
+static Status binding_tables()
 {
-   unsigned int *table;
+   unsigned int table[I965_MAX_SURFACES];
    int i;
-   table = offset_to_ptr(media_state.binding_table_offset);
-   for (i = 0; i < I965_MAX_SURFACES; i++)
-       table[i] = media_state.surface_state_offsets[i];
+
+   if (media_state.binding_table.bo)
+       drm_intel_bo_unreference(media_state.binding_table.bo);
+   media_state.binding_table.bo = 
+	drm_intel_bo_alloc(xvmc_driver->bufmgr, "binding_table", 
+		I965_MAX_SURFACES*4, 0x1000);
+   if (!media_state.binding_table.bo)
+       return BadAlloc;
+
+   for (i = 0; i < I965_MAX_SURFACES; i++) {
+       table[i] = media_state.binding_table.surface_states[i].bo->offset;
+       drm_intel_bo_emit_reloc(media_state.binding_table.bo, 
+	    i * sizeof(unsigned int),
+	    media_state.binding_table.surface_states[i].bo, 0,
+	    I915_GEM_DOMAIN_INSTRUCTION, 0);
+   }
+
+   drm_intel_bo_subdata(media_state.binding_table.bo, 0, sizeof(table), table);
+   return Success;
 }
 
-static void cs_init()
+static Status cs_init()
 {
-   void *buf;
+   char buf[CS_OBJECT_SIZE];
    unsigned int *lib_reloc;
    int i;
-   buf = offset_to_ptr(media_state.cs_offset);
+
+   if (media_state.cs_object.bo)
+       drm_intel_bo_unreference(media_state.cs_object.bo);
+
+   media_state.cs_object.bo = drm_intel_bo_alloc(xvmc_driver->bufmgr, "cs object", CS_OBJECT_SIZE, 64);
+   if (!media_state.cs_object.bo)
+       return BadAlloc;
+
    memcpy(buf + 32*4, idct_table, sizeof(idct_table));
    /* idct lib reloction */
-   lib_reloc = buf + 32*20;
+   lib_reloc = (unsigned int *)(buf + 32*20);
    for (i = 0; i < 8; i++)
-       lib_reloc[i] = media_state.kernel_offsets[LIB_INTERFACE];
+       lib_reloc[i] = media_state.vfe_state.interface.kernels[LIB_INTERFACE].bo->offset;
+   drm_intel_bo_subdata(media_state.cs_object.bo, 32*4, 32*16 + 8*sizeof(unsigned int), buf + 32*4);
+
+   for (i = 0; i < 8; i++)
+       drm_intel_bo_emit_reloc(media_state.cs_object.bo,
+           32*20 + sizeof(unsigned int) * i,
+           media_state.vfe_state.interface.kernels[LIB_INTERFACE].bo, 0,
+           I915_GEM_DOMAIN_INSTRUCTION, 0);
+
+   return Success;
 }
 
 static Status create_context(Display *display, XvMCContext *context,
@@ -265,18 +382,12 @@ static Status create_context(Display *display, XvMCContext *context,
     struct i965_xvmc_context *i965_ctx;
     i965_ctx = (struct i965_xvmc_context *)priv_data;
     context->privData = priv_data;
-    if (map_buffer(&i965_ctx->static_buffer))
-	return BadAlloc;
-    if (map_buffer(&i965_ctx->slice))
-	return BadAlloc;
-    media_state.state_base = i965_ctx->static_buffer.offset;
-    media_state.state_ptr = i965_ctx->static_buffer.ptr;
-    calc_state_layout();
-    vfe_state();
-    interface_descriptor();
-    setup_media_kernels();
-    binding_tables();
-    cs_init();
+
+    if (alloc_object(&media_state))
+        return BadAlloc;
+
+    if (setup_media_kernels())
+        return BadAlloc;
     return Success;
 }
 
@@ -284,34 +395,45 @@ static Status destroy_context(Display *display, XvMCContext *context)
 {
     struct i965_xvmc_context *i965_ctx;
     i965_ctx = context->privData;
-    unmap_buffer(&i965_ctx->slice);
-    unmap_buffer(&i965_ctx->static_buffer);
     Xfree(i965_ctx);
     return Success;
 }
 
+#define STRIDE(w)               (w)
+#define SIZE_YUV420(w, h)       (h * (STRIDE(w) + STRIDE(w >> 1)))
 static Status create_surface(Display *display,
 	XvMCContext *context, XvMCSurface *surface, int priv_count,
 	CARD32 *priv_data)
 {
-    struct i965_xvmc_surface *x; 
+    struct i965_xvmc_surface *priv_surface =
+	(struct i965_xvmc_surface *)priv_data;
+    size_t size = SIZE_YUV420(priv_surface->w, priv_surface->h);
     surface->privData = priv_data;
-    x = surface->privData;
+    priv_surface->bo = drm_intel_bo_alloc(xvmc_driver->bufmgr, "surface", 
+	    size, 0x1000);
+
     return Success;
 }
 static Status destroy_surface(Display *display,
 	XvMCSurface *surface)
 {
+    struct i965_xvmc_surface *priv_surface = 
+	surface->privData;
+    XSync(display, False);
+    drm_intel_bo_unreference(priv_surface->bo);
     return Success;
 }
 
 static Status load_qmatrix(Display *display, XvMCContext *context,
 	const XvMCQMatrix *qmx)
 {
-    unsigned char *qmatrix;
-    qmatrix = offset_to_ptr(media_state.cs_offset);
-    memcpy(qmatrix, qmx->intra_quantiser_matrix, 64);
-    memcpy(qmatrix + 64, qmx->non_intra_quantiser_matrix, 64);
+    Status ret;
+    ret = cs_init();
+    if (ret != Success)
+        return ret;
+    drm_intel_bo_subdata(media_state.cs_object.bo, 0, 64, qmx->intra_quantiser_matrix);
+    drm_intel_bo_subdata(media_state.cs_object.bo, 64, 64, qmx->non_intra_quantiser_matrix);
+
     return Success;
 }
 
@@ -322,12 +444,18 @@ static Status get_surface_status(Display *display, XvMCSurface *surface,
     return Success;
 }
 
-static void vld_state(const XvMCMpegControl *control)
+static Status vld_state(const XvMCMpegControl *control)
 {
-    struct brw_vld_state *vld;
-    vld = offset_to_ptr(media_state.vld_state_offset);
-    memset(vld, 0, sizeof(*vld));
+    struct brw_vld_state tmp, *vld = &tmp;
+
+    if (media_state.vld_state.bo)
+        drm_intel_bo_unreference(media_state.vld_state.bo);
+    media_state.vld_state.bo = drm_intel_bo_alloc(xvmc_driver->bufmgr, 
+	    "vld state", sizeof(struct brw_vld_state), 64);
+    if (!media_state.vld_state.bo)
+        return BadAlloc;
 
+    memset(vld, 0, sizeof(*vld));
     vld->vld0.f_code_0_0 = control->FHMV_range + 1;
     vld->vld0.f_code_0_1 = control->FVMV_range + 1;
     vld->vld0.f_code_1_0 = control->BHMV_range + 1;
@@ -362,44 +490,80 @@ static void vld_state(const XvMCMpegControl *control)
     vld->desc_remap_table1.index_13 = FIELD_BACKWARD_INTERFACE;
     vld->desc_remap_table1.index_14 = F_B_INTERFACE;
     vld->desc_remap_table1.index_15 = FIELD_F_B_INTERFACE;
+
+    drm_intel_bo_subdata(media_state.vld_state.bo, 0, sizeof(tmp), vld);
+    return Success;
 }
 
-static void setup_media_surface(int binding_table_index, 
-	unsigned long offset, int w, int h)
+static Status setup_media_surface(int index, dri_bo *bo,
+	unsigned long offset, int w, int h, Bool write)
 {
-    struct brw_surface_state *ss;
-    ss = offset_to_ptr(media_state.surface_state_offsets[binding_table_index]);
+    struct brw_surface_state tmp, *ss = &tmp;
     memset(ss, 0, sizeof(*ss)); 
     ss->ss0.surface_type = BRW_SURFACE_2D;
     ss->ss0.surface_format = BRW_SURFACEFORMAT_R8_SINT;
-    ss->ss1.base_addr = offset;
+    ss->ss1.base_addr = offset + bo->offset;
     ss->ss2.width = w - 1;
     ss->ss2.height = h - 1;
     ss->ss3.pitch = w - 1;
+
+    if (media_state.binding_table.surface_states[index].bo)
+        drm_intel_bo_unreference(media_state.binding_table.surface_states[index].bo);
+
+    media_state.binding_table.surface_states[index].bo =
+            drm_intel_bo_alloc(xvmc_driver->bufmgr, "surface_state", 
+ 		sizeof(struct brw_surface_state), 0x1000);
+    if (!media_state.binding_table.surface_states[index].bo)
+        return BadAlloc;
+
+    drm_intel_bo_subdata(
+	    media_state.binding_table.surface_states[index].bo,
+	    0, sizeof(*ss), ss);
+    drm_intel_bo_emit_reloc(media_state.binding_table.surface_states[index].bo, 
+	    offsetof(struct brw_surface_state, ss1),
+	    bo, offset,
+	    I915_GEM_DOMAIN_RENDER, write?I915_GEM_DOMAIN_RENDER:0);
+    return Success;
 }
 
-static void setup_surface(struct i965_xvmc_surface *target,
+static Status setup_surface(struct i965_xvmc_surface *target,
 	 struct i965_xvmc_surface *past,
 	 struct i965_xvmc_surface *future,
 	 int w, int h)
 {
-    unsigned long dst_offset, past_offset, future_offset;
-    dst_offset = target->buffer.offset;
-    setup_media_surface(0, dst_offset, w, h);
-    setup_media_surface(1, dst_offset + w*h, w/2, h/2);
-    setup_media_surface(2, dst_offset + w*h + w*h/4, w/2, h/2);
+    Status ret;
+    ret = setup_media_surface(0, target->bo, 0, w, h, TRUE);
+    if (ret != Success)
+        return ret;
+    ret = setup_media_surface(1, target->bo, w*h, w/2, h/2, TRUE);
+    if (ret != Success)
+        return ret;
+    ret = setup_media_surface(2, target->bo, w*h + w*h/4, w/2, h/2, TRUE);
+    if (ret != Success)
+        return ret;
     if (past) {
-	past_offset = past->buffer.offset;
-	setup_media_surface(4, past_offset, w, h);
-	setup_media_surface(5, past_offset + w*h, w/2, h/2);
-	setup_media_surface(6, past_offset + w*h + w*h/4, w/2, h/2);
+	ret = setup_media_surface(4, past->bo, 0, w, h, FALSE);
+        if (ret != Success)
+            return ret;
+	ret = setup_media_surface(5, past->bo, w*h, w/2, h/2, FALSE);
+        if (ret != Success)
+            return ret;
+	ret = setup_media_surface(6, past->bo, w*h + w*h/4, w/2, h/2, FALSE);
+        if (ret != Success)
+            return ret;
     }
     if (future) {
-	future_offset = future->buffer.offset;
-	setup_media_surface(7, future_offset, w, h);
-	setup_media_surface(8, future_offset + w*h, w/2, h/2);
-	setup_media_surface(9, future_offset + w*h + w*h/4, w/2, h/2);
+	ret = setup_media_surface(7, future->bo, 0, w, h, FALSE);
+        if (ret != Success)
+            return ret;
+	ret = setup_media_surface(8, future->bo, w*h, w/2, h/2, FALSE);
+        if (ret != Success)
+            return ret;
+	ret = setup_media_surface(9, future->bo, w*h + w*h/4, w/2, h/2, FALSE);
+        if (ret != Success)
+            return ret;
     }
+    return Success;
 }
 
 static  Status begin_surface(Display *display, XvMCContext *context,
@@ -411,13 +575,30 @@ static  Status begin_surface(Display *display, XvMCContext *context,
     struct i965_xvmc_contex *i965_ctx;
     struct i965_xvmc_surface *priv_target, *priv_past, *priv_future;
     intel_xvmc_context_ptr intel_ctx;
+    Status ret;
+
     intel_ctx = intel_xvmc_find_context(context->context_id);
     priv_target = target->privData;
     priv_past = past?past->privData:NULL;
     priv_future = future?future->privData:NULL;
-    vld_state(control);
-    setup_surface(priv_target, priv_past, priv_future, 
+
+    ret = vld_state(control);
+    if (ret != Success)
+        return ret;
+    ret = setup_surface(priv_target, priv_past, priv_future, 
 	    context->width, context->height);
+    if (ret != Success)
+        return ret;
+    ret = binding_tables();
+    if (ret != Success)
+        return ret;
+    ret = interface_descriptor();
+    if (ret != Success)
+        return ret;
+    ret = vfe_state();
+    if (ret != Success)
+        return ret;
+
     LOCK_HARDWARE(intel_ctx->hw_context);
     flush();
     UNLOCK_HARDWARE(intel_ctx->hw_context);
@@ -455,8 +636,8 @@ static void media_state_pointers()
     BATCH_LOCALS;
     BEGIN_BATCH(3);
     OUT_BATCH(BRW_MEDIA_STATE_POINTERS|1);
-    OUT_BATCH(media_state.vld_state_offset|1);
-    OUT_BATCH(media_state.vfe_state_offset);
+    OUT_RELOC(media_state.vld_state.bo, I915_GEM_DOMAIN_INSTRUCTION, 0, 1);
+    OUT_RELOC(media_state.vfe_state.bo, I915_GEM_DOMAIN_INSTRUCTION, 0, 0);
     ADVANCE_BATCH();
 }
 static void align_urb_fence()
@@ -513,11 +694,11 @@ static void cs_buffer()
     BATCH_LOCALS;
     BEGIN_BATCH(2);
     OUT_BATCH(BRW_CONSTANT_BUFFER|0|(1<<8));
-    OUT_BATCH(media_state.cs_offset|CS_SIZE);
+    OUT_RELOC(media_state.cs_object.bo, I915_GEM_DOMAIN_INSTRUCTION, 0, CS_SIZE);
     ADVANCE_BATCH();
 }
 
-static void vld_send_media_object(unsigned long slice_offset,
+static void vld_send_media_object(dri_bo *bo,
 	int slice_len, int mb_h_pos, int mb_v_pos, int mb_bit_offset,
 	int mb_count, int q_scale_code)
 {
@@ -526,11 +707,12 @@ static void vld_send_media_object(unsigned long slice_offset,
     OUT_BATCH(BRW_MEDIA_OBJECT|4);
     OUT_BATCH(0);
     OUT_BATCH(slice_len);
-    OUT_BATCH(slice_offset);
+    OUT_RELOC(bo, I915_GEM_DOMAIN_INSTRUCTION, 0, 0);
     OUT_BATCH((mb_h_pos<<24)|(mb_v_pos<<16)|(mb_count<<8)|(mb_bit_offset));
     OUT_BATCH(q_scale_code<<24);
     ADVANCE_BATCH();
 }
+
 static Status put_slice2(Display *display, XvMCContext *context, 
 	unsigned char *slice, int nbytes, int sliceCode)
 {
@@ -545,9 +727,26 @@ static Status put_slice2(Display *display, XvMCContext *context,
 
     q_scale_code = bit_buf>>27;
 
-    memcpy(i965_ctx->slice.ptr, slice, nbytes);
-    intel_ctx = intel_xvmc_find_context(context->context_id);
+    if (media_state.slice_data.bo) {
+        if (xvmc_driver->kernel_exec_fencing)
+            drm_intel_gem_bo_unmap_gtt(media_state.slice_data.bo);
+        else
+            drm_intel_bo_unmap(media_state.slice_data.bo);
 
+        drm_intel_bo_unreference(media_state.slice_data.bo);
+    }
+    media_state.slice_data.bo = drm_intel_bo_alloc(xvmc_driver->bufmgr, 
+	    "slice data", VLD_MAX_SLICE_SIZE, 64);
+    if (!media_state.slice_data.bo)
+        return BadAlloc;
+    if (xvmc_driver->kernel_exec_fencing)
+        drm_intel_gem_bo_map_gtt(media_state.slice_data.bo);
+    else
+        drm_intel_bo_map(media_state.slice_data.bo, 1);
+
+    memcpy(media_state.slice_data.bo->virtual, slice, nbytes);
+
+    intel_ctx = intel_xvmc_find_context(context->context_id);
     LOCK_HARDWARE(intel_ctx->hw_context);
     state_base_address();
     pipeline_select(&media_state);
@@ -555,7 +754,7 @@ static Status put_slice2(Display *display, XvMCContext *context,
     urb_layout();	
     cs_urb_layout();
     cs_buffer();
-    vld_send_media_object(i965_ctx->slice.offset, 
+    vld_send_media_object(media_state.slice_data.bo,
 	    nbytes, 
 	    0, mb_row, 6, 127, q_scale_code);
     intelFlushBatch(TRUE);
@@ -573,8 +772,10 @@ static Status put_surface(Display *display,XvMCSurface *surface,
 {
 	struct i965_xvmc_surface *private_surface =
 		surface->privData;
+        uint32_t handle;
 
-	data->surf_offset = private_surface->buffer.offset;
+        drm_intel_bo_flink(private_surface->bo, &handle);
+        data->handle = handle;
 	return Success;
 }
 
commit 34660fd2df5d61b77ed7041d32ac29053fc94f5a
Author: Eric Anholt <eric at anholt.net>
Date:   Fri May 15 23:21:05 2009 -0700

    Only sync XV to vblank when drawing to the frontbuffer.
    
    This fixes emitting syncs to random pipes with boxes bigger than that
    pipe's vertical, leading to GPU hangs.
    
    Bug #21738

diff --git a/src/i830_video.c b/src/i830_video.c
index 1c3a5b7..6fec8ff 100644
--- a/src/i830_video.c
+++ b/src/i830_video.c
@@ -2495,13 +2495,15 @@ I830PutImage(ScrnInfoPtr pScrn,
         if (sync) {
 	    BoxPtr box;
 	    int y1, y2;
-            int pipe, event, load_scan_lines_pipe;
-
-	    if (pI830->use_drm_mode)
-		pipe = drmmode_get_pipe_from_crtc_id(pI830->bufmgr, crtc);
-	    else {
-		I830CrtcPrivatePtr intel_crtc = crtc->driver_private;
-		pipe = intel_crtc->pipe;
+	    int pipe = -1, event, load_scan_lines_pipe;
+
+	    if (pPixmap != pScreen->GetScreenPixmap(pScreen)) {
+		if (pI830->use_drm_mode)
+		    pipe = drmmode_get_pipe_from_crtc_id(pI830->bufmgr, crtc);
+		else {
+		    I830CrtcPrivatePtr intel_crtc = crtc->driver_private;
+		    pipe = intel_crtc->pipe;
+		}
 	    }
 
 	    if (pipe >= 0) {
commit b622860429e00d6ab4407980232659c283a8fe8d
Author: Xiang Hai hao <haihao.xiang at intel.com>
Date:   Mon May 18 17:12:30 2009 +0800

     DRI2 for XvMC

diff --git a/configure.ac b/configure.ac
index 2b45787..d1629d1 100644
--- a/configure.ac
+++ b/configure.ac
@@ -78,10 +78,10 @@ else
 	DEBUGFLAGS=""
 fi
 
-dnl AC_ARG_ENABLE(xvmc, AC_HELP_STRING([--disable-xvmc],
-dnl                                   [Disable XvMC support [[default=auto]]]),
-dnl               [XVMC="$enableval"],
-dnl               [XVMC=auto])
+AC_ARG_ENABLE(xvmc, AC_HELP_STRING([--disable-xvmc],
+                                  [Disable XvMC support [[default=yes]]]),
+              [XVMC="$enableval"],
+              [XVMC=yes])
 
 # Checks for extensions
 XORG_DRIVER_CHECK_EXT(XINERAMA, xineramaproto)
@@ -151,12 +151,6 @@ if test "$VIDEO_DEBUG" = yes; then
 	AC_DEFINE(VIDEO_DEBUG,1,[Enable debug support])
 fi
 
-if test "$XVMC" = auto; then
-	XVMC="$DRI"
-fi
-if test "$XVMC" = yes && test "$DRI" = no; then
-	AC_MSG_ERROR([XvMC can't be enabled without DRI])
-fi
 if test "$XVMC" = yes; then
 	PKG_CHECK_MODULES(XVMCLIB, [xvmc], [XVMC=yes], [XVMC=no])
 	PKG_CHECK_MODULES(XEXT, [xext])
diff --git a/src/i830_driver.c b/src/i830_driver.c
index 854ad0f..1061d44 100644
--- a/src/i830_driver.c
+++ b/src/i830_driver.c
@@ -2767,8 +2767,9 @@ I830ScreenInit(int scrnIndex, ScreenPtr pScreen, int argc, char **argv)
 
 #ifdef INTEL_XVMC
     pI830->XvMCEnabled = FALSE;
-    from =  xf86GetOptValBool(pI830->Options, OPTION_XVMC,
-			      &pI830->XvMCEnabled) ? X_CONFIG : X_DEFAULT;
+    from = ((pI830->directRenderingType == DRI_DRI2) &&
+            xf86GetOptValBool(pI830->Options, OPTION_XVMC,
+                              &pI830->XvMCEnabled) ? X_CONFIG : X_DEFAULT);
     xf86DrvMsg(pScrn->scrnIndex, from, "Intel XvMC decoder %sabled\n",
 	       pI830->XvMCEnabled ? "en" : "dis");
 #endif
diff --git a/src/i830_hwmc.c b/src/i830_hwmc.c
index fc3faaa..75bf2e6 100644
--- a/src/i830_hwmc.c
+++ b/src/i830_hwmc.c
@@ -52,12 +52,6 @@ Bool intel_xvmc_probe(ScrnInfoPtr pScrn)
     I830Ptr pI830 = I830PTR(pScrn);
     Bool ret = FALSE;
 
-    /* Disable XvMC on DRI2 for now */
-    if (pI830->directRenderingType == DRI_DRI2) {
-	pI830->XvMCEnabled = FALSE;
-	return FALSE;
-    }
-
     if (!pI830->XvMCEnabled)
 	return FALSE;
 
@@ -85,6 +79,9 @@ void intel_xvmc_finish(ScrnInfoPtr pScrn)
 Bool intel_xvmc_driver_init(ScreenPtr pScreen, XF86VideoAdaptorPtr xv_adaptor)
 {
     ScrnInfoPtr pScrn = xf86Screens[pScreen->myNum];
+    I830Ptr pI830 = I830PTR(pScrn);
+    struct drm_i915_setparam sp;
+    int ret;
 
     if (!xvmc_driver) {
 	ErrorF("Failed to probe XvMC driver.\n");
@@ -95,14 +92,23 @@ Bool intel_xvmc_driver_init(ScreenPtr pScreen, XF86VideoAdaptorPtr xv_adaptor)
 	ErrorF("XvMC driver initialize failed.\n");
 	return FALSE;
     }
-    return TRUE;
+
+    /* Currently XvMC uses batchbuffer */
+    sp.param = I915_SETPARAM_ALLOW_BATCHBUFFER;
+    sp.value = 1; 
+    ret = drmCommandWrite(pI830->drmSubFD, DRM_I915_SETPARAM,
+                          &sp, sizeof(sp));
+    if (ret == 0)
+        return TRUE;
+    
+    return FALSE;
 }
 
 Bool intel_xvmc_screen_init(ScreenPtr pScreen)
 {
     ScrnInfoPtr pScrn = xf86Screens[pScreen->myNum];
     I830Ptr pI830 = I830PTR(pScrn);
-    DRIInfoPtr pDRIInfo = pI830->pDRIInfo;
+    char buf[64];
 
     if (!xvmc_driver)
 	return FALSE;
@@ -119,9 +125,15 @@ Bool intel_xvmc_screen_init(ScreenPtr pScreen)
 	return FALSE;
     }
 
+    sprintf(buf, "pci:%04x:%02x:%02x.%d",
+            pI830->PciInfo->domain,
+            pI830->PciInfo->bus,
+            pI830->PciInfo->dev,
+            pI830->PciInfo->func);
+
     xf86XvMCRegisterDRInfo(pScreen, INTEL_XVMC_LIBNAME,
-		    pDRIInfo->busIdString,
-		    INTEL_XVMC_MAJOR, INTEL_XVMC_MINOR, INTEL_XVMC_PATCHLEVEL);
+                           buf,
+                           INTEL_XVMC_MAJOR, INTEL_XVMC_MINOR, INTEL_XVMC_PATCHLEVEL);
     return TRUE;
 }
 
diff --git a/src/i830_hwmc.h b/src/i830_hwmc.h
index 062234c..ad95e1e 100644
--- a/src/i830_hwmc.h
+++ b/src/i830_hwmc.h
@@ -65,7 +65,6 @@ struct hwmc_buffer
 
 struct _intel_xvmc_common {
     unsigned int type;
-    unsigned int sarea_size;
     struct hwmc_buffer batchbuffer;
 };
 
diff --git a/src/i915_hwmc.c b/src/i915_hwmc.c
index 659638e..0723c80 100644
--- a/src/i915_hwmc.c
+++ b/src/i915_hwmc.c
@@ -416,8 +416,6 @@ static int i915_xvmc_create_context (ScrnInfoPtr pScrn, XvMCContextPtr pContext,
                                   int *num_priv, long **priv )
 {
     I830Ptr pI830 = I830PTR(pScrn);
-    DRIInfoPtr pDRIInfo = pI830->pDRIInfo;
-    I830DRIPtr pI830DRI = pDRIInfo->devPrivate;
     I915XvMCCreateContextRec *contextRec = NULL;
     I915XvMCPtr pXvMC = (I915XvMCPtr)xvmc_driver->devPrivate;
     I915XvMCContextPriv *ctxpriv = NULL;
@@ -490,7 +488,6 @@ static int i915_xvmc_create_context (ScrnInfoPtr pScrn, XvMCContextPtr pContext,
 
     /* common context items */
     contextRec->comm.type = xvmc_driver->flag;
-    contextRec->comm.sarea_size = pDRIInfo->SAREASize;
     contextRec->comm.batchbuffer.offset = xvmc_driver->batch->offset;
     contextRec->comm.batchbuffer.size = xvmc_driver->batch->size;
     contextRec->comm.batchbuffer.handle = xvmc_driver->batch_handle;
@@ -515,8 +512,7 @@ static int i915_xvmc_create_context (ScrnInfoPtr pScrn, XvMCContextPtr pContext,
     contextRec->corrdata.handle = ctxpriv->corrdata_handle;
     contextRec->corrdata.offset = ctxpriv->mcCorrdata->offset;
     contextRec->corrdata.size = ctxpriv->mcCorrdata->size;
-    contextRec->sarea_priv_offset = sizeof(XF86DRISAREARec);
-    contextRec->deviceID = pI830DRI->deviceID;
+    contextRec->deviceID = DEVICE_ID(pI830->PciInfo);
 
     if (IS_I915G(pI830) || IS_I915GM(pI830)) {
 	contextRec->sis.bus_addr = ctxpriv->mcStaticIndirectState->bus_addr;
diff --git a/src/i915_hwmc.h b/src/i915_hwmc.h
index 8f6557d..abd3171 100644
--- a/src/i915_hwmc.h
+++ b/src/i915_hwmc.h
@@ -49,7 +49,6 @@ typedef struct
     struct hwmc_buffer psp;
     struct hwmc_buffer psc;
     struct hwmc_buffer corrdata;/* Correction Data Buffer */
-    unsigned int sarea_priv_offset;
     int deviceID;
 } I915XvMCCreateContextRec;
 
diff --git a/src/i915_video.c b/src/i915_video.c
index 150cf04..1ef58ac 100644
--- a/src/i915_video.c
+++ b/src/i915_video.c
@@ -172,7 +172,10 @@ I915DisplayVideoTextured(ScrnInfoPtr pScrn, I830PortPrivPtr pPriv, int id,
 
       OUT_BATCH(_3DSTATE_MAP_STATE | 3);
       OUT_BATCH(0x00000001);	/* texture map #1 */
-      OUT_RELOC(pPriv->buf, I915_GEM_DOMAIN_SAMPLER, 0, pPriv->YBuf0offset);
+      if (pPriv->buf)
+          OUT_RELOC(pPriv->buf, I915_GEM_DOMAIN_SAMPLER, 0, pPriv->YBuf0offset);
+      else
+          OUT_BATCH(pPriv->YBuf0offset);
 
       ms3 = MAPSURF_422 | MS3_USE_FENCE_REGS;
       switch (id) {
@@ -281,7 +284,11 @@ I915DisplayVideoTextured(ScrnInfoPtr pScrn, I830PortPrivPtr pPriv, int id,
       OUT_BATCH(_3DSTATE_MAP_STATE | 9);
       OUT_BATCH(0x00000007);
 
-      OUT_RELOC(pPriv->buf, I915_GEM_DOMAIN_SAMPLER, 0, pPriv->YBuf0offset);
+      if (pPriv->buf)
+          OUT_RELOC(pPriv->buf, I915_GEM_DOMAIN_SAMPLER, 0, pPriv->YBuf0offset);
+      else
+          OUT_BATCH(pPriv->YBuf0offset);
+
       ms3 = MAPSURF_8BIT | MT_8BIT_I8 | MS3_USE_FENCE_REGS;
       ms3 |= (height - 1) << MS3_HEIGHT_SHIFT;
       ms3 |= (width - 1) << MS3_WIDTH_SHIFT;
@@ -294,14 +301,22 @@ I915DisplayVideoTextured(ScrnInfoPtr pScrn, I830PortPrivPtr pPriv, int id,
       else
 	  OUT_BATCH(((video_pitch * 2 / 4) - 1) << MS4_PITCH_SHIFT);
 
-      OUT_RELOC(pPriv->buf, I915_GEM_DOMAIN_SAMPLER, 0, pPriv->UBuf0offset);
+      if (pPriv->buf)
+          OUT_RELOC(pPriv->buf, I915_GEM_DOMAIN_SAMPLER, 0, pPriv->UBuf0offset);
+      else
+          OUT_BATCH(pPriv->UBuf0offset);
+
       ms3 = MAPSURF_8BIT | MT_8BIT_I8 | MS3_USE_FENCE_REGS;
       ms3 |= (height / 2 - 1) << MS3_HEIGHT_SHIFT;
       ms3 |= (width / 2 - 1) << MS3_WIDTH_SHIFT;
       OUT_BATCH(ms3);
       OUT_BATCH(((video_pitch / 4) - 1) << MS4_PITCH_SHIFT);
 
-      OUT_RELOC(pPriv->buf, I915_GEM_DOMAIN_SAMPLER, 0, pPriv->VBuf0offset);
+      if (pPriv->buf)
+          OUT_RELOC(pPriv->buf, I915_GEM_DOMAIN_SAMPLER, 0, pPriv->VBuf0offset);
+      else
+          OUT_BATCH(pPriv->VBuf0offset);
+
       ms3 = MAPSURF_8BIT | MT_8BIT_I8 | MS3_USE_FENCE_REGS;
       ms3 |= (height / 2 - 1) << MS3_HEIGHT_SHIFT;
       ms3 |= (width / 2 - 1) << MS3_WIDTH_SHIFT;
diff --git a/src/i965_hwmc.c b/src/i965_hwmc.c
index 68d908d..efcdf12 100644
--- a/src/i965_hwmc.c
+++ b/src/i965_hwmc.c
@@ -89,7 +89,6 @@ static int create_context(ScrnInfoPtr pScrn,
 {
     struct i965_xvmc_context *private_context, *context_dup;
     I830Ptr I830 = I830PTR(pScrn);
-    DRIInfoPtr driinfo = I830->pDRIInfo;
 
     unsigned int blocknum = 
 	(((context->width + 15)/16)*((context->height+15)/16));
@@ -108,7 +107,6 @@ static int create_context(ScrnInfoPtr pScrn,
     private_context->is_g4x = IS_G4X(I830);
     private_context->is_965_q = IS_965_Q(I830);
     private_context->comm.type = xvmc_driver->flag;
-    private_context->comm.sarea_size = driinfo->SAREASize;
     private_context->comm.batchbuffer.offset = xvmc_driver->batch->offset;
     private_context->comm.batchbuffer.size = xvmc_driver->batch->size;
     private_context->comm.batchbuffer.handle = xvmc_driver->batch_handle;
diff --git a/src/xvmc/Makefile.am b/src/xvmc/Makefile.am
index f4587d1..4567060 100644
--- a/src/xvmc/Makefile.am
+++ b/src/xvmc/Makefile.am
@@ -25,9 +25,8 @@ libIntelXvMC_la_SOURCES = intel_xvmc.c \
         xvmc_vld.h                     \
         intel_batchbuffer.c            \
         intel_batchbuffer.h            \
-        xf86dri.c                      \
-        xf86dri.h                      \
-        xf86dristr.h
+        dri2.c                         \
+        dri2.h	
 
 libIntelXvMC_la_CFLAGS = @XORG_CFLAGS@ @DRM_CFLAGS@ @DRI_CFLAGS@ \
 	@XVMCLIB_CFLAGS@ -I$(top_srcdir)/src -DTRUE=1 -DFALSE=0
diff --git a/src/xvmc/dri2.c b/src/xvmc/dri2.c
new file mode 100644
index 0000000..f967432
--- /dev/null
+++ b/src/xvmc/dri2.c
@@ -0,0 +1,301 @@
+/*
+ * Copyright © 2008 Red Hat, Inc.
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Soft-
+ * ware"), to deal in the Software without restriction, including without
+ * limitation the rights to use, copy, modify, merge, publish, distribute,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, provided that the above copyright
+ * notice(s) and this permission notice appear in all copies of the Soft-
+ * ware and that both the above copyright notice(s) and this permission
+ * notice appear in supporting documentation.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABIL-
+ * ITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF THIRD PARTY
+ * RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR HOLDERS INCLUDED IN
+ * THIS NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL INDIRECT OR CONSE-
+ * QUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
+ * DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
+ * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFOR-
+ * MANCE OF THIS SOFTWARE.
+ *
+ * Except as contained in this notice, the name of a copyright holder shall
+ * not be used in advertising or otherwise to promote the sale, use or
+ * other dealings in this Software without prior written authorization of
+ * the copyright holder.
+ *
+ * Authors:
+ *   Kristian Høgsberg (krh at redhat.com)
+ */
+
+
+#define NEED_REPLIES
+#include <X11/Xlibint.h>
+#include <X11/extensions/Xext.h>
+#include <X11/extensions/extutil.h>
+#include <X11/extensions/dri2proto.h>
+#include "xf86drm.h"
+#include "dri2.h"
+
+static char dri2ExtensionName[] = DRI2_NAME;
+static XExtensionInfo *dri2Info;
+static XEXT_GENERATE_CLOSE_DISPLAY (DRI2CloseDisplay, dri2Info)
+static /* const */ XExtensionHooks dri2ExtensionHooks = {
+    NULL,				/* create_gc */
+    NULL,				/* copy_gc */
+    NULL,				/* flush_gc */
+    NULL,				/* free_gc */
+    NULL,				/* create_font */
+    NULL,				/* free_font */
+    DRI2CloseDisplay,			/* close_display */
+    NULL,				/* wire_to_event */
+    NULL,				/* event_to_wire */
+    NULL,				/* error */
+    NULL,				/* error_string */
+};
+
+static XEXT_GENERATE_FIND_DISPLAY (DRI2FindDisplay, dri2Info, 
+				   dri2ExtensionName, 
+				   &dri2ExtensionHooks, 
+				   0, NULL)
+
+Bool DRI2QueryExtension(Display *dpy, int *eventBase, int *errorBase)
+{
+    XExtDisplayInfo *info = DRI2FindDisplay(dpy);
+
+    if (XextHasExtension(info)) {
+	*eventBase = info->codes->first_event;
+	*errorBase = info->codes->first_error;
+	return True;
+    }
+
+    return False;
+}
+
+Bool DRI2QueryVersion(Display *dpy, int *major, int *minor)
+{
+    XExtDisplayInfo *info = DRI2FindDisplay (dpy);
+    xDRI2QueryVersionReply rep;
+    xDRI2QueryVersionReq *req;
+
+    XextCheckExtension (dpy, info, dri2ExtensionName, False);
+
+    LockDisplay(dpy);
+    GetReq(DRI2QueryVersion, req);
+    req->reqType = info->codes->major_opcode;
+    req->dri2ReqType = X_DRI2QueryVersion;
+    req->majorVersion = DRI2_MAJOR;
+    req->minorVersion = DRI2_MINOR;
+    if (!_XReply(dpy, (xReply *)&rep, 0, xFalse)) {
+	UnlockDisplay(dpy);
+	SyncHandle();
+	return False;
+    }
+    *major = rep.majorVersion;
+    *minor = rep.minorVersion;
+    UnlockDisplay(dpy);
+    SyncHandle();
+
+    return True;
+}
+
+Bool DRI2Connect(Display *dpy, XID window,
+		 char **driverName, char **deviceName)
+{
+    XExtDisplayInfo *info = DRI2FindDisplay(dpy);
+    xDRI2ConnectReply rep;
+    xDRI2ConnectReq *req;
+
+    XextCheckExtension (dpy, info, dri2ExtensionName, False);
+
+    LockDisplay(dpy);
+    GetReq(DRI2Connect, req);
+    req->reqType = info->codes->major_opcode;
+    req->dri2ReqType = X_DRI2Connect;
+    req->window = window;
+    req->driverType = DRI2DriverDRI;
+    if (!_XReply(dpy, (xReply *)&rep, 0, xFalse)) {
+	UnlockDisplay(dpy);
+	SyncHandle();
+	return False;
+    }
+
+    if (rep.driverNameLength == 0 && rep.deviceNameLength == 0) {
+	UnlockDisplay(dpy);
+	SyncHandle();
+	return False;
+    }
+
+    *driverName = Xmalloc(rep.driverNameLength + 1);
+    if (*driverName == NULL) {
+	_XEatData(dpy, 
+		  ((rep.driverNameLength + 3) & ~3) +
+		  ((rep.deviceNameLength + 3) & ~3));
+	UnlockDisplay(dpy);
+	SyncHandle();
+	return False;
+    }
+    _XReadPad(dpy, *driverName, rep.driverNameLength);
+    (*driverName)[rep.driverNameLength] = '\0';
+
+    *deviceName = Xmalloc(rep.deviceNameLength + 1);
+    if (*deviceName == NULL) {
+	Xfree(*driverName);
+	_XEatData(dpy, ((rep.deviceNameLength + 3) & ~3));
+	UnlockDisplay(dpy);
+	SyncHandle();
+	return False;
+    }
+    _XReadPad(dpy, *deviceName, rep.deviceNameLength);
+    (*deviceName)[rep.deviceNameLength] = '\0';
+
+    UnlockDisplay(dpy);
+    SyncHandle();
+
+    return True;
+}
+
+Bool DRI2Authenticate(Display *dpy, XID window, drm_magic_t magic)
+{
+    XExtDisplayInfo *info = DRI2FindDisplay(dpy);
+    xDRI2AuthenticateReq *req;
+    xDRI2AuthenticateReply rep;
+
+    XextCheckExtension (dpy, info, dri2ExtensionName, False);
+
+    LockDisplay(dpy);
+    GetReq(DRI2Authenticate, req);
+    req->reqType = info->codes->major_opcode;
+    req->dri2ReqType = X_DRI2Authenticate;
+    req->window = window;
+    req->magic = magic;
+
+    if (!_XReply(dpy, (xReply *)&rep, 0, xFalse)) {
+	UnlockDisplay(dpy);
+	SyncHandle();
+	return False;
+    }
+
+    UnlockDisplay(dpy);
+    SyncHandle();
+
+    return rep.authenticated;
+}
+
+void DRI2CreateDrawable(Display *dpy, XID drawable)
+{
+    XExtDisplayInfo *info = DRI2FindDisplay(dpy);
+    xDRI2CreateDrawableReq *req;
+
+    XextSimpleCheckExtension (dpy, info, dri2ExtensionName);
+
+    LockDisplay(dpy);
+    GetReq(DRI2CreateDrawable, req);
+    req->reqType = info->codes->major_opcode;
+    req->dri2ReqType = X_DRI2CreateDrawable;
+    req->drawable = drawable;
+    UnlockDisplay(dpy);
+    SyncHandle();
+}
+
+void DRI2DestroyDrawable(Display *dpy, XID drawable)
+{
+    XExtDisplayInfo *info = DRI2FindDisplay(dpy);
+    xDRI2DestroyDrawableReq *req;
+
+    XextSimpleCheckExtension (dpy, info, dri2ExtensionName);
+
+    XSync(dpy, False);
+
+    LockDisplay(dpy);
+    GetReq(DRI2DestroyDrawable, req);
+    req->reqType = info->codes->major_opcode;
+    req->dri2ReqType = X_DRI2DestroyDrawable;
+    req->drawable = drawable;
+    UnlockDisplay(dpy);
+    SyncHandle();
+}
+
+DRI2Buffer *DRI2GetBuffers(Display *dpy, XID drawable,
+			   int *width, int *height,
+			   unsigned int *attachments, int count,
+			   int *outCount)
+{
+    XExtDisplayInfo *info = DRI2FindDisplay(dpy);
+    xDRI2GetBuffersReply rep;
+    xDRI2GetBuffersReq *req;
+    DRI2Buffer *buffers;
+    xDRI2Buffer repBuffer;
+    CARD32 *p;
+    int i;
+
+    XextCheckExtension (dpy, info, dri2ExtensionName, False);
+
+    LockDisplay(dpy);
+    GetReqExtra(DRI2GetBuffers, count * 4, req);
+    req->reqType = info->codes->major_opcode;
+    req->dri2ReqType = X_DRI2GetBuffers;
+    req->drawable = drawable;
+    req->count = count;
+    p = (CARD32 *) &req[1];
+    for (i = 0; i < count; i++)
+	p[i] = attachments[i];
+
+    if (!_XReply(dpy, (xReply *)&rep, 0, xFalse)) {
+	UnlockDisplay(dpy);
+	SyncHandle();
+	return NULL;
+    }
+
+    *width = rep.width;
+    *height = rep.height;
+    *outCount = rep.count;
+
+    buffers = Xmalloc(rep.count * sizeof buffers[0]);
+    if (buffers == NULL) {
+	_XEatData(dpy, rep.count * sizeof repBuffer);
+	UnlockDisplay(dpy);
+	SyncHandle();
+	return NULL;
+    }
+
+    for (i = 0; i < rep.count; i++) {
+	_XReadPad(dpy, (char *) &repBuffer, sizeof repBuffer);
+	buffers[i].attachment = repBuffer.attachment;
+	buffers[i].name = repBuffer.name;
+	buffers[i].pitch = repBuffer.pitch;
+	buffers[i].cpp = repBuffer.cpp;
+	buffers[i].flags = repBuffer.flags;
+    }
+
+    UnlockDisplay(dpy);
+    SyncHandle();
+
+    return buffers;
+}
+
+void DRI2CopyRegion(Display *dpy, XID drawable, XserverRegion region,
+		    CARD32 dest, CARD32 src)
+{
+    XExtDisplayInfo *info = DRI2FindDisplay(dpy);
+    xDRI2CopyRegionReq *req;
+    xDRI2CopyRegionReply rep;
+
+    XextSimpleCheckExtension (dpy, info, dri2ExtensionName);
+
+    LockDisplay(dpy);
+    GetReq(DRI2CopyRegion, req);
+    req->reqType = info->codes->major_opcode;
+    req->dri2ReqType = X_DRI2CopyRegion;
+    req->drawable = drawable;
+    req->region = region;
+    req->dest = dest;
+    req->src = src;
+
+    _XReply(dpy, (xReply *)&rep, 0, xFalse);
+
+    UnlockDisplay(dpy);
+    SyncHandle();
+}
diff --git a/src/xvmc/dri2.h b/src/xvmc/dri2.h
new file mode 100644
index 0000000..356c6bc
--- /dev/null
+++ b/src/xvmc/dri2.h
@@ -0,0 +1,70 @@
+/*
+ * Copyright © 2007,2008 Red Hat, Inc.
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Soft-
+ * ware"), to deal in the Software without restriction, including without
+ * limitation the rights to use, copy, modify, merge, publish, distribute,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, provided that the above copyright
+ * notice(s) and this permission notice appear in all copies of the Soft-
+ * ware and that both the above copyright notice(s) and this permission
+ * notice appear in supporting documentation.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABIL-
+ * ITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF THIRD PARTY
+ * RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR HOLDERS INCLUDED IN
+ * THIS NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL INDIRECT OR CONSE-
+ * QUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
+ * DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
+ * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFOR-
+ * MANCE OF THIS SOFTWARE.
+ *
+ * Except as contained in this notice, the name of a copyright holder shall
+ * not be used in advertising or otherwise to promote the sale, use or
+ * other dealings in this Software without prior written authorization of
+ * the copyright holder.
+ *
+ * Authors:
+ *   Kristian Høgsberg (krh at redhat.com)
+ */
+
+#ifndef _DRI2_H_
+#define _DRI2_H_
+
+#include <X11/extensions/Xfixes.h>
+#include <X11/extensions/dri2tokens.h>
+
+typedef struct {
+    unsigned int attachment;
+    unsigned int name;
+    unsigned int pitch;
+    unsigned int cpp;
+    unsigned int flags;
+} DRI2Buffer;
+
+extern Bool
+DRI2QueryExtension(Display *display, int *eventBase, int *errorBase);
+extern Bool
+DRI2QueryVersion(Display *display, int *major, int *minor);
+extern Bool
+DRI2Connect(Display *display, XID window,
+	    char **driverName, char **deviceName);
+extern Bool
+DRI2Authenticate(Display *display, XID window, drm_magic_t magic);
+extern void
+DRI2CreateDrawable(Display *display, XID drawable);
+extern void
+DRI2DestroyDrawable(Display *display, XID handle);
+extern DRI2Buffer *
+DRI2GetBuffers(Display *dpy, XID drawable,
+	       int *width, int *height,
+	       unsigned int *attachments, int count,
+	       int *outCount);
+
+extern void
+DRI2CopyRegion(Display *dpy, XID drawable, XserverRegion region,
+	       CARD32 dest, CARD32 src);
+
+#endif
diff --git a/src/xvmc/i915_xvmc.c b/src/xvmc/i915_xvmc.c
index c32073a..d6f7f01 100644
--- a/src/xvmc/i915_xvmc.c
+++ b/src/xvmc/i915_xvmc.c
@@ -1560,7 +1560,6 @@ static Status i915_xvmc_mc_create_context(Display *display, XvMCContext *context
 {
     i915XvMCContext *pI915XvMC = NULL;
     I915XvMCCreateContextRec *tmpComm = NULL;
-    drm_sarea_t *pSAREA;
 
     XVMC_DBG("%s\n", __FUNCTION__);
 
@@ -1612,15 +1611,11 @@ static Status i915_xvmc_mc_create_context(Display *display, XvMCContext *context
     pI915XvMC->corrdata.handle = tmpComm->corrdata.handle;
     pI915XvMC->corrdata.offset = tmpComm->corrdata.offset;
     pI915XvMC->corrdata.size = tmpComm->corrdata.size;
-    pI915XvMC->sarea_priv_offset = tmpComm->sarea_priv_offset;
 
     /* Must free the private data we were passed from X */
     XFree(priv_data);
     priv_data = NULL;
 
-    pSAREA = (drm_sarea_t *)xvmc_driver->sarea_address;
-    pI915XvMC->sarea = (drmI830Sarea*)((char*)pSAREA + pI915XvMC->sarea_priv_offset);
-
     if (i915_xvmc_map_buffers(pI915XvMC)) {
         i915_xvmc_unmap_buffers(pI915XvMC);
         free(pI915XvMC);
@@ -2042,11 +2037,6 @@ static int i915_xvmc_mc_get_surface_status(Display *display,
         }
     }
 
-    if (pI915Surface->last_render &&
-        (pI915Surface->last_render > pI915XvMC->sarea->last_dispatch)) {
-        *stat |= XVMC_RENDERING;
-    }
-
     PPTHREAD_MUTEX_UNLOCK();
     return 0;
 }
@@ -2457,12 +2447,7 @@ Status i915_xvmc_get_subpict_status(Display *display, XvMCSubpicture *subpicture
         return XvMCBadSubpicture;
 
     PPTHREAD_MUTEX_LOCK();
-    /* FIXME: */
-    if (pI915Subpicture->last_render &&
-        (pI915Subpicture->last_render > pI915XvMC->sarea->last_dispatch)) {
-        *stat |= XVMC_RENDERING;
-    }
-
+    
     PPTHREAD_MUTEX_UNLOCK();
     return Success;
 }
diff --git a/src/xvmc/i915_xvmc.h b/src/xvmc/i915_xvmc.h
index af0a77d..de9eb78 100644
--- a/src/xvmc/i915_xvmc.h
+++ b/src/xvmc/i915_xvmc.h
@@ -55,8 +55,6 @@ typedef struct _i915XvMCContext {
     unsigned int yStride;
     unsigned int uvStride;
     unsigned short ref;
-    volatile drmI830Sarea *sarea;
-    unsigned int sarea_priv_offset;	        /* Offset in sarea to private part */
     unsigned int depth;
     XvPortID port;		       /* Xv Port ID when displaying */
     int haveXv;                        /* Have I initialized the Xv
diff --git a/src/xvmc/intel_xvmc.c b/src/xvmc/intel_xvmc.c
index 76302d9..71ae77b 100644
--- a/src/xvmc/intel_xvmc.c
+++ b/src/xvmc/intel_xvmc.c
@@ -100,21 +100,12 @@ unsigned int mb_bytes_420[] = {
 
 int DEBUG;
 
-static int error_base;
-static int event_base;
-
 static void intel_xvmc_debug_init(void)
 {
     if (getenv("INTEL_XVMC_DEBUG"))
 	DEBUG = 1;
 }
 
-/* locking */
-static void intel_xvmc_try_heavy_lock(drm_context_t ctx)
-{
-    drmGetLock(xvmc_driver->fd, ctx, 0);
-}
-
 void LOCK_HARDWARE(drm_context_t ctx)
 {
     char __ret = 0;
@@ -122,19 +113,13 @@ void LOCK_HARDWARE(drm_context_t ctx)
     PPTHREAD_MUTEX_LOCK();
     assert(!xvmc_driver->locked);
 
-    DRM_CAS(xvmc_driver->driHwLock, ctx,
-            (DRM_LOCK_HELD | ctx), __ret);
-
-    if (__ret)
-	intel_xvmc_try_heavy_lock(ctx);
-
     xvmc_driver->locked = 1;
 }
 
 void UNLOCK_HARDWARE(drm_context_t ctx)
 {
     xvmc_driver->locked = 0;
-    DRM_UNLOCK(xvmc_driver->fd, xvmc_driver->driHwLock, ctx);
+    
     PPTHREAD_MUTEX_UNLOCK();
 }
 
@@ -269,17 +254,18 @@ _X_EXPORT Status XvMCCreateContext(Display *display, XvPortID port,
                          int flags, XvMCContext *context)
 {
     Status ret;
-    drm_sarea_t *pSAREA;
-    char *curBusID;
     CARD32 *priv_data = NULL;
     struct _intel_xvmc_common *comm;
     drm_magic_t magic;
     int major, minor;
+    int error_base;
+    int event_base;
     int priv_count;
     int isCapable;
     int screen = DefaultScreen(display);
     intel_xvmc_context_ptr intel_ctx;
     int fd;
+    char *driverName = NULL, *deviceName = NULL;
 
     /* Verify Obvious things first */
     if (!display || !context)
@@ -356,7 +342,6 @@ _X_EXPORT Status XvMCCreateContext(Display *display, XvPortID port,
 
     XVMC_INFO("decoder type is %s", intel_xvmc_decoder_string(comm->type));
 
-    xvmc_driver->sarea_size = comm->sarea_size;
     xvmc_driver->batchbuffer.handle = comm->batchbuffer.handle;
     xvmc_driver->batchbuffer.offset = comm->batchbuffer.offset;
     xvmc_driver->batchbuffer.size = comm->batchbuffer.size;
@@ -369,70 +354,60 @@ _X_EXPORT Status XvMCCreateContext(Display *display, XvPortID port,
     }
     intel_ctx->context = context;
 
-    ret = uniDRIQueryDirectRenderingCapable(display, screen,
-                                            &isCapable);
-    if (!ret || !isCapable) {
-	XVMC_ERR("Direct Rendering is not available on this system!");
-	XFree(priv_data);
-        return BadValue;
-    }
+    /* check DRI2 */
+    ret = Success;
+    xvmc_driver->fd = -1;
 
-    if (!uniDRIOpenConnection(display, screen,
-                              &xvmc_driver->hsarea, &curBusID)) {
-        XVMC_ERR("Could not open DRI connection to X server!");
-	XFree(priv_data);
-        return BadValue;
-    }
+    do {
+        if (!DRI2QueryExtension(display, &event_base, &error_base)) {
+            ret = BadValue;
+            break;
+        }
+
+        if (!DRI2QueryVersion(display, &major, &minor)) {
+            ret = BadValue;
+            break;
+        }
+
+        if (!DRI2Connect(display, RootWindow(display, screen),
+                         &driverName, &deviceName)) {
+            ret = BadValue;
+            break;
+        }
+
+        xvmc_driver->fd = open(deviceName, O_RDWR);
+
+        if (xvmc_driver->fd < 0) {
+            XVMC_ERR("Failed to open drm device: %s\n", strerror(errno));
+            ret = BadValue;
+            break;
+        }
+
+        if (drmGetMagic(xvmc_driver->fd, &magic)) {
+            XVMC_ERR("Failed to get magic\n");
+            ret = BadValue;
+            break;
+        }
+
+        if (!DRI2Authenticate(display, RootWindow(display, screen), magic)) {
+            XVMC_ERR("Failed to authenticate magic %d\n", magic);
+            ret = BadValue;
+            break;
+        }
+    } while (0);
+
+    XFree(driverName);
+    XFree(deviceName);
 
-    /* Open DRI Device */
-    if((fd = drmOpen("i915", curBusID)) < 0) {
-        XVMC_ERR("DRM Device could not be opened.");
+    if (ret != Success) {
         XFree(priv_data);
-        XFree(curBusID);
-        return BadValue;
-    }
-
-    xvmc_driver->fd = fd;
-
-    strncpy(xvmc_driver->busID, curBusID, 20);
-    xvmc_driver->busID[20] = '\0';
-    XFree(curBusID);
-
-    /* Get magic number */
-    drmGetMagic(xvmc_driver->fd, &magic);
-    // context->flags = (unsigned long)magic;
-
-    if (!uniDRIAuthConnection(display, screen, magic)) {
-	XVMC_ERR("[XvMC]: X server did not allow DRI. Check permissions.");
-	xvmc_driver = NULL;
-	XFree(priv_data);
-        return BadAlloc;
-    }
+        context->privData = NULL;
 
-    /*
-     * Map DRI Sarea. we always want it right?
-     */
-    if (drmMap(xvmc_driver->fd, xvmc_driver->hsarea,
-               xvmc_driver->sarea_size, &xvmc_driver->sarea_address) < 0) {
-        XVMC_ERR("Unable to map DRI SAREA.\n");
-	xvmc_driver = NULL;
-	XFree(priv_data);
-        return BadAlloc;
-    }
-    pSAREA = (drm_sarea_t *)xvmc_driver->sarea_address;
-    xvmc_driver->driHwLock = (drmLock *)&pSAREA->lock;
-    pthread_mutex_init(&xvmc_driver->ctxmutex, NULL);
+        if (xvmc_driver->fd >= 0)
+            close(xvmc_driver->fd);
 
-    /* context_id is alloc in _xvmc_create_context */
-    if (!uniDRICreateContext(display, screen, DefaultVisual(display, screen),
-			     context->context_id,
-                             &intel_ctx->hw_context)) {
-        XVMC_ERR("Could not create DRI context for xvmc ctx %d.",
-		 (int)context->context_id);
-	XFree(priv_data);
-        context->privData = NULL;
-        drmUnmap(xvmc_driver->sarea_address, xvmc_driver->sarea_size);
-        return BadAlloc;
+        xvmc_driver = NULL;
+        return ret;
     }
 
     /* call driver hook.
@@ -441,12 +416,13 @@ _X_EXPORT Status XvMCCreateContext(Display *display, XvPortID port,
     if (ret) {
 	XVMC_ERR("driver create context failed\n");
 	XFree(priv_data);
-	drmUnmap(xvmc_driver->sarea_address, xvmc_driver->sarea_size);
+	context->privData = NULL;
+	xvmc_driver = NULL;
 	return ret;
     }
 
+    pthread_mutex_init(&xvmc_driver->ctxmutex, NULL);
     intelInitBatchBuffer();
-
     intel_xvmc_dump_open();
 
     return Success;
@@ -475,7 +451,6 @@ _X_EXPORT Status XvMCDestroyContext(Display *display, XvMCContext *context)
 	return ret;
     }
 
-    uniDRIDestroyContext(display, screen, context->context_id);
     intel_xvmc_free_context(context->context_id);
 
     ret = _xvmc_destroy_context(display, context);
@@ -485,18 +460,13 @@ _X_EXPORT Status XvMCDestroyContext(Display *display, XvMCContext *context)
     }
 
     if (xvmc_driver->num_ctx == 0) {
-	uniDRICloseConnection(display, screen);
-
 	pthread_mutex_destroy(&xvmc_driver->ctxmutex);
 
-	drmUnmap(xvmc_driver->sarea_address, xvmc_driver->sarea_size);
-
 	if (xvmc_driver->fd >= 0)
-	    drmClose(xvmc_driver->fd);
+       close(xvmc_driver->fd);
+   
 	xvmc_driver->fd = -1;
-
 	intelFiniBatchBuffer();
-
 	intel_xvmc_dump_close();
     }
     return Success;
diff --git a/src/xvmc/intel_xvmc.h b/src/xvmc/intel_xvmc.h
index 73a37a0..f9c517a 100644
--- a/src/xvmc/intel_xvmc.h
+++ b/src/xvmc/intel_xvmc.h
@@ -130,11 +130,6 @@ typedef struct _intel_xvmc_driver {
     int screen;			/* current screen num*/
 
     int fd;			/* drm file handler */
-    drm_handle_t hsarea;	/* DRI open connect */
-    char busID[32];
-
-    unsigned int sarea_size;
-    drmAddress sarea_address;
 
     struct {
 	unsigned int start_offset;
@@ -156,9 +151,7 @@ typedef struct _intel_xvmc_driver {
 
     sigset_t sa_mask;
     pthread_mutex_t ctxmutex;
-    int lock;   /* Lightweight lock to avoid locking twice */
     int locked;
-    drmLock *driHwLock;
 
     int num_ctx;
     intel_xvmc_context_ptr ctx_list;
diff --git a/src/xvmc/xf86dri.c b/src/xvmc/xf86dri.c
deleted file mode 100644
index 9ea919a..0000000
--- a/src/xvmc/xf86dri.c
+++ /dev/null
@@ -1,565 +0,0 @@
-/**************************************************************************
-
-Copyright 1998-1999 Precision Insight, Inc., Cedar Park, Texas.
-Copyright 2000 VA Linux Systems, Inc.
-All Rights Reserved.
-
-Permission is hereby granted, free of charge, to any person obtaining a
-copy of this software and associated documentation files (the
-"Software"), to deal in the Software without restriction, including
-without limitation the rights to use, copy, modify, merge, publish,
-distribute, sub license, and/or sell copies of the Software, and to
-permit persons to whom the Software is furnished to do so, subject to
-the following conditions:
-
-The above copyright notice and this permission notice (including the
-next paragraph) shall be included in all copies or substantial portions
-of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
-OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.
-IN NO EVENT SHALL PRECISION INSIGHT AND/OR ITS SUPPLIERS BE LIABLE FOR
-ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
-TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
-SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-**************************************************************************/
-
-/*
- * Authors:
- *   Kevin E. Martin <martin at valinux.com>
- *   Jens Owen <jens at tungstengraphics.com>
- *   Rickard E. (Rik) Faith <faith at valinux.com>
- *
- */
-
-/* THIS IS NOT AN X CONSORTIUM STANDARD */
-
-#define NEED_REPLIES
-#include <X11/Xlibint.h>
-#include <X11/extensions/Xext.h>
-#include <X11/extensions/extutil.h>
-#include "xf86dristr.h"
-
-static XExtensionInfo _xf86dri_info_data;
-static XExtensionInfo *xf86dri_info = &_xf86dri_info_data;
-static char xf86dri_extension_name[] = XF86DRINAME;
-
-#define uniDRICheckExtension(dpy,i,val) \
-  XextCheckExtension (dpy, i, xf86dri_extension_name, val)
-
-/*****************************************************************************
- *                                                                           *
- *			   private utility routines                          *
- *                                                                           *
- *****************************************************************************/
-
-static int close_display(Display * dpy, XExtCodes * extCodes);
-static /* const */ XExtensionHooks xf86dri_extension_hooks = {
-    NULL,			       /* create_gc */
-    NULL,			       /* copy_gc */
-    NULL,			       /* flush_gc */
-    NULL,			       /* free_gc */
-    NULL,			       /* create_font */
-    NULL,			       /* free_font */
-    close_display,		       /* close_display */
-    NULL,			       /* wire_to_event */
-    NULL,			       /* event_to_wire */
-    NULL,			       /* error */
-    NULL,			       /* error_string */
-};
-
-static
-XEXT_GENERATE_FIND_DISPLAY(find_display, xf86dri_info,
-    xf86dri_extension_name, &xf86dri_extension_hooks, 0, NULL)
-
-    static XEXT_GENERATE_CLOSE_DISPLAY(close_display, xf86dri_info)
-
-/*****************************************************************************
- *                                                                           *
- *		    public XFree86-DRI Extension routines                    *
- *                                                                           *
- *****************************************************************************/
-#if 0
-#include <stdio.h>
-#define TRACE(msg, arg...)  fprintf(stderr,"uniDRI" msg "\n", ##arg);
-#else
-#define TRACE(msg, arg...)
-#endif
-Bool
-uniDRIQueryExtension(Display *dpy, int *event_basep, int *error_basep)
-{
-    XExtDisplayInfo *info = find_display(dpy);
-
-    TRACE("QueryExtension...");
-    if (XextHasExtension(info)) {
-	*event_basep = info->codes->first_event;
-	*error_basep = info->codes->first_error;
-	TRACE("QueryExtension... return True");
-	return True;
-    } else {
-	TRACE("QueryExtension... return False");
-	return False;
-    }
-}
-
-Bool
-uniDRIQueryVersion(Display *dpy, int *majorVersion, int *minorVersion,
-		   int *patchVersion)
-{
-    XExtDisplayInfo *info = find_display(dpy);
-    xXF86DRIQueryVersionReply rep;
-    xXF86DRIQueryVersionReq *req;
-
-    TRACE("QueryVersion...");
-    uniDRICheckExtension(dpy, info, False);
-
-    LockDisplay(dpy);
-    GetReq(XF86DRIQueryVersion, req);
-    req->reqType = info->codes->major_opcode;
-    req->driReqType = X_XF86DRIQueryVersion;
-    if (!_XReply(dpy, (xReply *) & rep, 0, xFalse)) {
-	UnlockDisplay(dpy);
-	SyncHandle();
-	TRACE("QueryVersion... return False");
-	return False;
-    }
-    *majorVersion = rep.majorVersion;
-    *minorVersion = rep.minorVersion;
-    *patchVersion = rep.patchVersion;
-    UnlockDisplay(dpy);
-    SyncHandle();
-    TRACE("QueryVersion... %d.%d.%d return True", rep.majorVersion,
-		    rep.minorVersion, rep.patchVersion);
-    return True;
-}
-
-Bool
-uniDRIQueryDirectRenderingCapable(Display *dpy, int screen, Bool *isCapable)
-{
-    XExtDisplayInfo *info = find_display(dpy);
-    xXF86DRIQueryDirectRenderingCapableReply rep;
-    xXF86DRIQueryDirectRenderingCapableReq *req;
-
-    TRACE("QueryDirectRenderingCapable...");
-    uniDRICheckExtension(dpy, info, False);
-
-    LockDisplay(dpy);
-    GetReq(XF86DRIQueryDirectRenderingCapable, req);
-    req->reqType = info->codes->major_opcode;
-    req->driReqType = X_XF86DRIQueryDirectRenderingCapable;
-    req->screen = screen;
-    if (!_XReply(dpy, (xReply *) & rep, 0, xFalse)) {
-	UnlockDisplay(dpy);
-	SyncHandle();
-	TRACE("QueryDirectRenderingCapable... return False");
-	return False;
-    }
-    *isCapable = rep.isCapable;
-    UnlockDisplay(dpy);
-    SyncHandle();
-    TRACE("QueryDirectRenderingCapable... %s return True",
-		    rep.isCapable ? "true" : "false");
-    return True;
-}
-
-Bool
-uniDRIOpenConnection(Display *dpy, int screen,
-		     drm_handle_t *hSAREA, char **busIdString)
-{
-    XExtDisplayInfo *info = find_display(dpy);
-    xXF86DRIOpenConnectionReply rep;
-    xXF86DRIOpenConnectionReq *req;
-
-    TRACE("OpenConnection...");
-    uniDRICheckExtension(dpy, info, False);
-
-    LockDisplay(dpy);
-    GetReq(XF86DRIOpenConnection, req);
-    req->reqType = info->codes->major_opcode;
-    req->driReqType = X_XF86DRIOpenConnection;
-    req->screen = screen;
-    if (!_XReply(dpy, (xReply *) & rep, 0, xFalse)) {
-	UnlockDisplay(dpy);
-	SyncHandle();
-	TRACE("OpenConnection... return False");
-	return False;
-    }
-
-    *hSAREA = rep.hSAREALow;
-#ifdef LONG64
-    if (sizeof(drm_handle_t) == 8) {
-	*hSAREA |= ((unsigned long)rep.hSAREAHigh) << 32;
-    }
-#endif
-    if (rep.length) {
-	if (!(*busIdString = (char *)Xcalloc(rep.busIdStringLength + 1, 1))) {
-	    _XEatData(dpy, ((rep.busIdStringLength + 3) & ~3));
-	    UnlockDisplay(dpy);
-	    SyncHandle();
-	    TRACE("OpenConnection... return False");
-	    return False;
-	}
-	_XReadPad(dpy, *busIdString, rep.busIdStringLength);
-    } else {
-	*busIdString = NULL;
-    }
-    UnlockDisplay(dpy);
-    SyncHandle();
-    TRACE("OpenConnection... busid %s return True",
-		   *busIdString ? *busIdString : "null");
-    return True;
-}
-
-Bool
-uniDRIAuthConnection(Display *dpy, int screen, drm_magic_t magic)
-{
-    XExtDisplayInfo *info = find_display(dpy);
-    xXF86DRIAuthConnectionReq *req;
-    xXF86DRIAuthConnectionReply rep;
-
-    TRACE("AuthConnection...");
-    uniDRICheckExtension(dpy, info, False);
-
-    LockDisplay(dpy);
-    GetReq(XF86DRIAuthConnection, req);
-    req->reqType = info->codes->major_opcode;
-    req->driReqType = X_XF86DRIAuthConnection;
-    req->screen = screen;
-    req->magic = magic;
-    rep.authenticated = 0;
-    if (!_XReply(dpy, (xReply *) & rep, 0, xFalse) || !rep.authenticated) {
-	UnlockDisplay(dpy);
-	SyncHandle();
-	TRACE("AuthConnection... return False");
-	return False;
-    }
-    UnlockDisplay(dpy);
-    SyncHandle();
-    TRACE("AuthConnection... return True");
-    return True;
-}
-
-Bool
-uniDRICloseConnection(Display *dpy, int screen)
-{
-    XExtDisplayInfo *info = find_display(dpy);
-    xXF86DRICloseConnectionReq *req;
-
-    TRACE("CloseConnection...");
-
-    uniDRICheckExtension(dpy, info, False);
-
-    LockDisplay(dpy);
-    GetReq(XF86DRICloseConnection, req);
-    req->reqType = info->codes->major_opcode;
-    req->driReqType = X_XF86DRICloseConnection;
-    req->screen = screen;
-    UnlockDisplay(dpy);
-    SyncHandle();
-    TRACE("CloseConnection... return True");
-    return True;
-}
-
-Bool
-uniDRIGetClientDriverName(Display *dpy, int screen, int *ddxDriverMajorVersion,
-			  int *ddxDriverMinorVersion, int *ddxDriverPatchVersion,
-			  char **clientDriverName)
-{
-    XExtDisplayInfo *info = find_display(dpy);
-    xXF86DRIGetClientDriverNameReply rep;
-    xXF86DRIGetClientDriverNameReq *req;
-
-    TRACE("GetClientDriverName...");
-    uniDRICheckExtension(dpy, info, False);
-
-    LockDisplay(dpy);
-    GetReq(XF86DRIGetClientDriverName, req);
-    req->reqType = info->codes->major_opcode;
-    req->driReqType = X_XF86DRIGetClientDriverName;
-    req->screen = screen;
-    if (!_XReply(dpy, (xReply *) & rep, 0, xFalse)) {
-	UnlockDisplay(dpy);
-	SyncHandle();
-	TRACE("GetClientDriverName... return False");
-	return False;
-    }
-
-    *ddxDriverMajorVersion = rep.ddxDriverMajorVersion;
-    *ddxDriverMinorVersion = rep.ddxDriverMinorVersion;
-    *ddxDriverPatchVersion = rep.ddxDriverPatchVersion;
-
-    if (rep.length) {
-	if (!(*clientDriverName =
-		(char *)Xcalloc(rep.clientDriverNameLength + 1, 1))) {
-	    _XEatData(dpy, ((rep.clientDriverNameLength + 3) & ~3));
-	    UnlockDisplay(dpy);
-	    SyncHandle();
-	    TRACE("GetClientDriverName... return False");
-	    return False;
-	}
-	_XReadPad(dpy, *clientDriverName, rep.clientDriverNameLength);
-    } else {
-	*clientDriverName = NULL;
-    }
-    UnlockDisplay(dpy);
-    SyncHandle();
-    TRACE("GetClientDriverName... return True");
-    return True;
-}
-
-Bool
-uniDRICreateContextWithConfig(Display *dpy, int screen, int configID,
-			      XID context, drm_context_t *hHWContext)
-{
-    XExtDisplayInfo *info = find_display(dpy);
-    xXF86DRICreateContextReply rep;
-    xXF86DRICreateContextReq *req;
-
-    TRACE("CreateContext... id %d", context);
-    uniDRICheckExtension(dpy, info, False);
-
-    LockDisplay(dpy);
-    GetReq(XF86DRICreateContext, req);
-    req->reqType = info->codes->major_opcode;
-    req->driReqType = X_XF86DRICreateContext;
-    req->visual = configID;
-    req->screen = screen;
-    req->context = context;
-    if (!_XReply(dpy, (xReply *) & rep, 0, xFalse)) {
-	UnlockDisplay(dpy);
-	SyncHandle();
-	TRACE("CreateContext... return False");
-	return False;
-    }
-    *hHWContext = rep.hHWContext;
-    UnlockDisplay(dpy);
-    SyncHandle();
-    TRACE("CreateContext... return True");
-    return True;
-}
-
-Bool
-uniDRICreateContext(Display *dpy, int screen, Visual *visual,
-		    XID context, drm_context_t *hHWContext)
-{
-    return uniDRICreateContextWithConfig(dpy, screen,
-	   visual->visualid, context, hHWContext);
-}
-
-Bool
-uniDRIDestroyContext(Display * ndpy, int screen, XID context)
-{
-    Display *const dpy = (Display *) ndpy;
-    XExtDisplayInfo *info = find_display(dpy);
-    xXF86DRIDestroyContextReq *req;
-
-    TRACE("DestroyContext... id %d", context);
-    uniDRICheckExtension(dpy, info, False);
-
-    LockDisplay(dpy);
-    GetReq(XF86DRIDestroyContext, req);
-    req->reqType = info->codes->major_opcode;
-    req->driReqType = X_XF86DRIDestroyContext;
-    req->screen = screen;
-    req->context = context;
-    UnlockDisplay(dpy);
-    SyncHandle();
-    TRACE("DestroyContext... return True");
-    return True;
-}
-
-Bool
-uniDRICreateDrawable(Display * ndpy, int screen,
-    Drawable drawable, drm_drawable_t * hHWDrawable)
-{
-    Display *const dpy = (Display *) ndpy;
-    XExtDisplayInfo *info = find_display(dpy);
-    xXF86DRICreateDrawableReply rep;
-    xXF86DRICreateDrawableReq *req;
-
-    TRACE("CreateDrawable...");
-    uniDRICheckExtension(dpy, info, False);
-
-    LockDisplay(dpy);
-    GetReq(XF86DRICreateDrawable, req);
-    req->reqType = info->codes->major_opcode;
-    req->driReqType = X_XF86DRICreateDrawable;
-    req->screen = screen;
-    req->drawable = drawable;
-    if (!_XReply(dpy, (xReply *) & rep, 0, xFalse)) {
-	UnlockDisplay(dpy);
-	SyncHandle();
-	TRACE("CreateDrawable... return False");
-	return False;
-    }
-    *hHWDrawable = rep.hHWDrawable;
-    UnlockDisplay(dpy);
-    SyncHandle();
-    TRACE("CreateDrawable... return True");
-    return True;
-}
-
-Bool
-uniDRIDestroyDrawable(Display * ndpy, int screen, Drawable drawable)
-{
-    Display *const dpy = (Display *) ndpy;
-    XExtDisplayInfo *info = find_display(dpy);
-    xXF86DRIDestroyDrawableReq *req;
-
-    TRACE("DestroyDrawable...");
-    uniDRICheckExtension(dpy, info, False);
-
-    LockDisplay(dpy);
-    GetReq(XF86DRIDestroyDrawable, req);
-    req->reqType = info->codes->major_opcode;
-    req->driReqType = X_XF86DRIDestroyDrawable;
-    req->screen = screen;
-    req->drawable = drawable;
-    UnlockDisplay(dpy);
-    SyncHandle();
-    TRACE("DestroyDrawable... return True");
-    return True;
-}
-
-Bool
-uniDRIGetDrawableInfo(Display * dpy, int screen, Drawable drawable,
-    unsigned int *index, unsigned int *stamp,
-    int *X, int *Y, int *W, int *H,
-    int *numClipRects, drm_clip_rect_t ** pClipRects,
-    int *backX, int *backY,
-    int *numBackClipRects, drm_clip_rect_t ** pBackClipRects)
-{
-    XExtDisplayInfo *info = find_display(dpy);
-    xXF86DRIGetDrawableInfoReply rep;
-    xXF86DRIGetDrawableInfoReq *req;
-    int total_rects;
-
-    TRACE("GetDrawableInfo...");
-    uniDRICheckExtension(dpy, info, False);
-
-    LockDisplay(dpy);
-    GetReq(XF86DRIGetDrawableInfo, req);
-    req->reqType = info->codes->major_opcode;
-    req->driReqType = X_XF86DRIGetDrawableInfo;
-    req->screen = screen;
-    req->drawable = drawable;
-
-    if (!_XReply(dpy, (xReply *) & rep, 1, xFalse)) {
-	UnlockDisplay(dpy);
-	SyncHandle();
-	TRACE("GetDrawableInfo... return False");
-	return False;
-    }
-    *index = rep.drawableTableIndex;
-    *stamp = rep.drawableTableStamp;
-    *X = (int)rep.drawableX;
-    *Y = (int)rep.drawableY;
-    *W = (int)rep.drawableWidth;
-    *H = (int)rep.drawableHeight;
-    *numClipRects = rep.numClipRects;
-    total_rects = *numClipRects;
-
-    *backX = rep.backX;
-    *backY = rep.backY;
-    *numBackClipRects = rep.numBackClipRects;
-    total_rects += *numBackClipRects;
-
-#if 0
-    /* Because of the fix in Xserver/GL/dri/xf86dri.c, this check breaks
-     * backwards compatibility (Because of the >> 2 shift) but the fix
-     * enables multi-threaded apps to work.
-     */
-    if (rep.length != ((((SIZEOF(xXF86DRIGetDrawableInfoReply) -
-			SIZEOF(xGenericReply) +
-			total_rects * sizeof(drm_clip_rect_t)) +
-		    3) & ~3) >> 2)) {
-	_XEatData(dpy, rep.length);
-	UnlockDisplay(dpy);
-	SyncHandle();
-	TRACE("GetDrawableInfo... return False");
-	return False;
-    }
-#endif
-
-    if (*numClipRects) {
-	int len = sizeof(drm_clip_rect_t) * (*numClipRects);
-
-	*pClipRects = (drm_clip_rect_t *) Xcalloc(len, 1);
-	if (*pClipRects)
-	    _XRead(dpy, (char *)*pClipRects, len);
-    } else {
-	*pClipRects = NULL;
-    }
-
-    if (*numBackClipRects) {
-	int len = sizeof(drm_clip_rect_t) * (*numBackClipRects);
-
-	*pBackClipRects = (drm_clip_rect_t *) Xcalloc(len, 1);
-	if (*pBackClipRects)
-	    _XRead(dpy, (char *)*pBackClipRects, len);
-    } else {
-	*pBackClipRects = NULL;
-    }
-
-    UnlockDisplay(dpy);
-    SyncHandle();
-    TRACE("GetDrawableInfo... return True");
-    return True;
-}
-
-Bool
-uniDRIGetDeviceInfo(Display *dpy, int screen, drm_handle_t *hFrameBuffer,
-		    int *fbOrigin, int *fbSize, int *fbStride,
-		    int *devPrivateSize, void **pDevPrivate)
-{
-    XExtDisplayInfo *info = find_display(dpy);
-    xXF86DRIGetDeviceInfoReply rep;
-    xXF86DRIGetDeviceInfoReq *req;
-
-    TRACE("GetDeviceInfo...");
-    uniDRICheckExtension(dpy, info, False);
-
-    LockDisplay(dpy);
-    GetReq(XF86DRIGetDeviceInfo, req);
-    req->reqType = info->codes->major_opcode;
-    req->driReqType = X_XF86DRIGetDeviceInfo;
-    req->screen = screen;
-    if (!_XReply(dpy, (xReply *) & rep, 0, xFalse)) {
-	UnlockDisplay(dpy);
-	SyncHandle();
-	TRACE("GetDeviceInfo... return False");
-	return False;
-    }
-
-    *hFrameBuffer = rep.hFrameBufferLow;
-#ifdef LONG64
-    if (sizeof(drm_handle_t) == 8) {
-	*hFrameBuffer |= ((unsigned long)rep.hFrameBufferHigh) << 32;
-    }
-#endif
-
-    *fbOrigin = rep.framebufferOrigin;
-    *fbSize = rep.framebufferSize;
-    *fbStride = rep.framebufferStride;
-    *devPrivateSize = rep.devPrivateSize;
-
-    if (rep.length) {
-	if (!(*pDevPrivate = (void *)Xcalloc(rep.devPrivateSize, 1))) {
-	    _XEatData(dpy, ((rep.devPrivateSize + 3) & ~3));
-	    UnlockDisplay(dpy);
-	    SyncHandle();
-	    TRACE("GetDeviceInfo... return False");
-	    return False;
-	}
-	_XRead(dpy, (char *)*pDevPrivate, rep.devPrivateSize);
-    } else {
-	*pDevPrivate = NULL;
-    }
-
-    UnlockDisplay(dpy);
-    SyncHandle();
-    TRACE("GetDeviceInfo... return True");
-    return True;
-}
diff --git a/src/xvmc/xf86dri.h b/src/xvmc/xf86dri.h
deleted file mode 100644
index 5b8655d..0000000
--- a/src/xvmc/xf86dri.h
+++ /dev/null
@@ -1,117 +0,0 @@
-/**************************************************************************
-
-Copyright 1998-1999 Precision Insight, Inc., Cedar Park, Texas.
-Copyright 2000 VA Linux Systems, Inc.
-All Rights Reserved.
-
-Permission is hereby granted, free of charge, to any person obtaining a
-copy of this software and associated documentation files (the
-"Software"), to deal in the Software without restriction, including
-without limitation the rights to use, copy, modify, merge, publish,
-distribute, sub license, and/or sell copies of the Software, and to
-permit persons to whom the Software is furnished to do so, subject to
-the following conditions:
-
-The above copyright notice and this permission notice (including the
-next paragraph) shall be included in all copies or substantial portions
-of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
-OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.
-IN NO EVENT SHALL PRECISION INSIGHT AND/OR ITS SUPPLIERS BE LIABLE FOR
-ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
-TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
-SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-**************************************************************************/
-
-/**
- * \file xf86dri.h
- * Protocol numbers and function prototypes for DRI X protocol.
- *
- * \author Kevin E. Martin <martin at valinux.com>
- * \author Jens Owen <jens at tungstengraphics.com>
- * \author Rickard E. (Rik) Faith <faith at valinux.com>
- */
-
-#ifndef _XF86DRI_H_
-#define _XF86DRI_H_
-
-#include <X11/Xfuncproto.h>
-#include <xf86drm.h>
-
-#define X_XF86DRIQueryVersion			0
-#define X_XF86DRIQueryDirectRenderingCapable	1
-#define X_XF86DRIOpenConnection			2
-#define X_XF86DRICloseConnection		3
-#define X_XF86DRIGetClientDriverName		4
-#define X_XF86DRICreateContext			5
-#define X_XF86DRIDestroyContext			6
-#define X_XF86DRICreateDrawable			7
-#define X_XF86DRIDestroyDrawable		8
-#define X_XF86DRIGetDrawableInfo		9
-#define X_XF86DRIGetDeviceInfo			10
-#define X_XF86DRIAuthConnection                 11
-#define X_XF86DRIOpenFullScreen                 12	/* Deprecated */
-#define X_XF86DRICloseFullScreen                13	/* Deprecated */
-
-#define XF86DRINumberEvents		0
-
-#define XF86DRIClientNotLocal		0
-#define XF86DRIOperationNotSupported	1
-#define XF86DRINumberErrors		(XF86DRIOperationNotSupported + 1)
-
-#ifndef _XF86DRI_SERVER_
-
-_XFUNCPROTOBEGIN
-extern Bool uniDRIQueryExtension(Display * dpy, int *event_base,
-    int *error_base);
-
-extern Bool uniDRIQueryVersion(Display * dpy, int *majorVersion,
-    int *minorVersion, int *patchVersion);
-
-extern Bool uniDRIQueryDirectRenderingCapable(Display * dpy, int screen,
-    Bool * isCapable);
-
-extern Bool uniDRIOpenConnection(Display * dpy, int screen, drm_handle_t * hSAREA,
-    char **busIDString);
-
-extern Bool uniDRIAuthConnection(Display * dpy, int screen, drm_magic_t magic);
-
-extern Bool uniDRICloseConnection(Display * dpy, int screen);
-
-extern Bool uniDRIGetClientDriverName(Display * dpy, int screen,
-    int *ddxDriverMajorVersion, int *ddxDriverMinorVersion,
-    int *ddxDriverPatchVersion, char **clientDriverName);
-
-/* XvMC context XID is alloced in _xvmc_create_context, so
- * don't recreate here */
-extern Bool uniDRICreateContext(Display * dpy, int screen, Visual * visual,
-    XID context_id, drm_context_t * hHWContext);
-
-extern Bool uniDRICreateContextWithConfig(Display * dpy, int screen,
-    int configID, XID context_id, drm_context_t * hHWContext);
-
-extern Bool uniDRIDestroyContext(Display * dpy, int screen, XID context_id);
-
-extern Bool uniDRICreateDrawable(Display * dpy, int screen,
-    Drawable drawable, drm_drawable_t * hHWDrawable);
-
-extern Bool uniDRIDestroyDrawable(Display * dpy, int screen,
-    Drawable drawable);
-
-extern Bool uniDRIGetDeviceInfo(Display * dpy, int screen,
-    drm_handle_t * hFrameBuffer, int *fbOrigin, int *fbSize,
-    int *fbStride, int *devPrivateSize, void **pDevPrivate);
-
-extern Bool uniDRIGetDrawableInfo(Display * dpy, int screen,
-    Drawable drawable, unsigned int *index, unsigned int *stamp,
-    int *X, int *Y, int *W, int *H,
-    int *numClipRects, drm_clip_rect_t ** pClipRects,
-    int *backX, int *backY,
-    int *numBackClipRects, drm_clip_rect_t ** pBackClipRects);
-
-_XFUNCPROTOEND
-#endif /* _XF86DRI_SERVER_ */
-#endif /* _XF86DRI_H_ */
diff --git a/src/xvmc/xf86dristr.h b/src/xvmc/xf86dristr.h
deleted file mode 100644
index d898996..0000000
--- a/src/xvmc/xf86dristr.h
+++ /dev/null
@@ -1,389 +0,0 @@
-/**************************************************************************
-
-Copyright 1998-1999 Precision Insight, Inc., Cedar Park, Texas.
-Copyright 2000 VA Linux Systems, Inc.
-All Rights Reserved.
-
-Permission is hereby granted, free of charge, to any person obtaining a
-copy of this software and associated documentation files (the
-"Software"), to deal in the Software without restriction, including
-without limitation the rights to use, copy, modify, merge, publish,
-distribute, sub license, and/or sell copies of the Software, and to
-permit persons to whom the Software is furnished to do so, subject to
-the following conditions:
-
-The above copyright notice and this permission notice (including the
-next paragraph) shall be included in all copies or substantial portions
-of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
-OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.
-IN NO EVENT SHALL PRECISION INSIGHT AND/OR ITS SUPPLIERS BE LIABLE FOR
-ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
-TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
-SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-**************************************************************************/
-
-/*
- * Authors:
- *   Kevin E. Martin <martin at valinux.com>
- *   Jens Owen <jens at tungstengraphics.com>
- *   Rickard E. (Rik) Fiath <faith at valinux.com>
- *
- */
-
-#ifndef _XF86DRISTR_H_
-#define _XF86DRISTR_H_
-
-#include "xf86dri.h"
-
-#define XF86DRINAME "XFree86-DRI"
-
-/* The DRI version number.  This was originally set to be the same of the
- * XFree86 version number.  However, this version is really indepedent of
- * the XFree86 version.
- *
- * Version History:
- *    4.0.0: Original
- *    4.0.1: Patch to bump clipstamp when windows are destroyed, 28 May 02
- *    4.1.0: Add transition from single to multi in DRMInfo rec, 24 Jun 02
- */
-#define XF86DRI_MAJOR_VERSION	4
-#define XF86DRI_MINOR_VERSION	1
-#define XF86DRI_PATCH_VERSION	0
-
-typedef struct _XF86DRIQueryVersion
-{
-    CARD8 reqType;		       /* always DRIReqCode */
-    CARD8 driReqType;		       /* always X_DRIQueryVersion */
-    CARD16 length B16;
-} xXF86DRIQueryVersionReq;
-
-#define sz_xXF86DRIQueryVersionReq	4
-
-typedef struct
-{
-    BYTE type;			       /* X_Reply */
-    BOOL pad1;
-    CARD16 sequenceNumber B16;
-    CARD32 length B32;
-    CARD16 majorVersion B16;	       /* major version of DRI protocol */
-    CARD16 minorVersion B16;	       /* minor version of DRI protocol */
-    CARD32 patchVersion B32;	       /* patch version of DRI protocol */
-    CARD32 pad3 B32;
-    CARD32 pad4 B32;
-    CARD32 pad5 B32;
-    CARD32 pad6 B32;
-} xXF86DRIQueryVersionReply;
-
-#define sz_xXF86DRIQueryVersionReply	32
-
-typedef struct _XF86DRIQueryDirectRenderingCapable
-{
-    CARD8 reqType;		       /* always DRIReqCode */
-    CARD8 driReqType;		       /* X_DRIQueryDirectRenderingCapable */
-    CARD16 length B16;
-    CARD32 screen B32;
-} xXF86DRIQueryDirectRenderingCapableReq;
-
-#define sz_xXF86DRIQueryDirectRenderingCapableReq	8
-
-typedef struct
-{
-    BYTE type;			       /* X_Reply */
-    BOOL pad1;
-    CARD16 sequenceNumber B16;
-    CARD32 length B32;
-    BOOL isCapable;
-    BOOL pad2;
-    BOOL pad3;
-    BOOL pad4;
-    CARD32 pad5 B32;
-    CARD32 pad6 B32;
-    CARD32 pad7 B32;
-    CARD32 pad8 B32;
-    CARD32 pad9 B32;
-} xXF86DRIQueryDirectRenderingCapableReply;
-
-#define sz_xXF86DRIQueryDirectRenderingCapableReply	32
-
-typedef struct _XF86DRIOpenConnection
-{
-    CARD8 reqType;		       /* always DRIReqCode */
-    CARD8 driReqType;		       /* always X_DRIOpenConnection */
-    CARD16 length B16;
-    CARD32 screen B32;
-} xXF86DRIOpenConnectionReq;
-
-#define sz_xXF86DRIOpenConnectionReq	8
-
-typedef struct
-{
-    BYTE type;			       /* X_Reply */
-    BOOL pad1;
-    CARD16 sequenceNumber B16;
-    CARD32 length B32;
-    CARD32 hSAREALow B32;
-    CARD32 hSAREAHigh B32;
-    CARD32 busIdStringLength B32;
-    CARD32 pad6 B32;
-    CARD32 pad7 B32;
-    CARD32 pad8 B32;
-} xXF86DRIOpenConnectionReply;
-
-#define sz_xXF86DRIOpenConnectionReply	32
-
-typedef struct _XF86DRIAuthConnection
-{
-    CARD8 reqType;		       /* always DRIReqCode */
-    CARD8 driReqType;		       /* always X_DRICloseConnection */
-    CARD16 length B16;
-    CARD32 screen B32;
-    CARD32 magic B32;
-} xXF86DRIAuthConnectionReq;
-
-#define sz_xXF86DRIAuthConnectionReq	12
-
-typedef struct
-{
-    BYTE type;
-    BOOL pad1;
-    CARD16 sequenceNumber B16;
-    CARD32 length B32;
-    CARD32 authenticated B32;
-    CARD32 pad2 B32;
-    CARD32 pad3 B32;
-    CARD32 pad4 B32;
-    CARD32 pad5 B32;
-    CARD32 pad6 B32;
-} xXF86DRIAuthConnectionReply;
-
-#define zx_xXF86DRIAuthConnectionReply  32
-
-typedef struct _XF86DRICloseConnection
-{
-    CARD8 reqType;		       /* always DRIReqCode */
-    CARD8 driReqType;		       /* always X_DRICloseConnection */
-    CARD16 length B16;
-    CARD32 screen B32;
-} xXF86DRICloseConnectionReq;
-
-#define sz_xXF86DRICloseConnectionReq	8
-
-typedef struct _XF86DRIGetClientDriverName
-{
-    CARD8 reqType;		       /* always DRIReqCode */
-    CARD8 driReqType;		       /* always X_DRIGetClientDriverName */
-    CARD16 length B16;
-    CARD32 screen B32;
-} xXF86DRIGetClientDriverNameReq;
-
-#define sz_xXF86DRIGetClientDriverNameReq	8
-
-typedef struct
-{
-    BYTE type;			       /* X_Reply */
-    BOOL pad1;
-    CARD16 sequenceNumber B16;
-    CARD32 length B32;
-    CARD32 ddxDriverMajorVersion B32;
-    CARD32 ddxDriverMinorVersion B32;
-    CARD32 ddxDriverPatchVersion B32;
-    CARD32 clientDriverNameLength B32;
-    CARD32 pad5 B32;
-    CARD32 pad6 B32;
-} xXF86DRIGetClientDriverNameReply;
-
-#define sz_xXF86DRIGetClientDriverNameReply	32
-
-typedef struct _XF86DRICreateContext
-{
-    CARD8 reqType;		       /* always DRIReqCode */
-    CARD8 driReqType;		       /* always X_DRICreateContext */
-    CARD16 length B16;
-    CARD32 screen B32;
-    CARD32 visual B32;
-    CARD32 context B32;
-} xXF86DRICreateContextReq;
-
-#define sz_xXF86DRICreateContextReq	16
-
-typedef struct
-{
-    BYTE type;			       /* X_Reply */
-    BOOL pad1;
-    CARD16 sequenceNumber B16;
-    CARD32 length B32;
-    CARD32 hHWContext B32;
-    CARD32 pad2 B32;
-    CARD32 pad3 B32;
-    CARD32 pad4 B32;
-    CARD32 pad5 B32;
-    CARD32 pad6 B32;
-} xXF86DRICreateContextReply;
-
-#define sz_xXF86DRICreateContextReply	32
-
-typedef struct _XF86DRIDestroyContext
-{
-    CARD8 reqType;		       /* always DRIReqCode */
-    CARD8 driReqType;		       /* always X_DRIDestroyContext */
-    CARD16 length B16;
-    CARD32 screen B32;
-    CARD32 context B32;
-} xXF86DRIDestroyContextReq;
-
-#define sz_xXF86DRIDestroyContextReq	12
-
-typedef struct _XF86DRICreateDrawable
-{
-    CARD8 reqType;		       /* always DRIReqCode */
-    CARD8 driReqType;		       /* always X_DRICreateDrawable */
-    CARD16 length B16;
-    CARD32 screen B32;
-    CARD32 drawable B32;
-} xXF86DRICreateDrawableReq;
-
-#define sz_xXF86DRICreateDrawableReq	12
-
-typedef struct
-{
-    BYTE type;			       /* X_Reply */
-    BOOL pad1;
-    CARD16 sequenceNumber B16;
-    CARD32 length B32;
-    CARD32 hHWDrawable B32;
-    CARD32 pad2 B32;
-    CARD32 pad3 B32;
-    CARD32 pad4 B32;
-    CARD32 pad5 B32;
-    CARD32 pad6 B32;
-} xXF86DRICreateDrawableReply;
-
-#define sz_xXF86DRICreateDrawableReply	32
-
-typedef struct _XF86DRIDestroyDrawable
-{
-    CARD8 reqType;		       /* always DRIReqCode */
-    CARD8 driReqType;		       /* always X_DRIDestroyDrawable */
-    CARD16 length B16;
-    CARD32 screen B32;
-    CARD32 drawable B32;
-} xXF86DRIDestroyDrawableReq;
-
-#define sz_xXF86DRIDestroyDrawableReq	12
-
-typedef struct _XF86DRIGetDrawableInfo
-{
-    CARD8 reqType;		       /* always DRIReqCode */
-    CARD8 driReqType;		       /* always X_DRIGetDrawableInfo */
-    CARD16 length B16;
-    CARD32 screen B32;
-    CARD32 drawable B32;
-} xXF86DRIGetDrawableInfoReq;
-
-#define sz_xXF86DRIGetDrawableInfoReq	12
-
-typedef struct
-{
-    BYTE type;			       /* X_Reply */
-    BOOL pad1;
-    CARD16 sequenceNumber B16;
-    CARD32 length B32;
-    CARD32 drawableTableIndex B32;
-    CARD32 drawableTableStamp B32;
-    INT16 drawableX B16;
-    INT16 drawableY B16;
-    INT16 drawableWidth B16;
-    INT16 drawableHeight B16;
-    CARD32 numClipRects B32;
-    INT16 backX B16;
-    INT16 backY B16;
-    CARD32 numBackClipRects B32;
-} xXF86DRIGetDrawableInfoReply;
-
-#define sz_xXF86DRIGetDrawableInfoReply	36
-
-typedef struct _XF86DRIGetDeviceInfo
-{
-    CARD8 reqType;		       /* always DRIReqCode */
-    CARD8 driReqType;		       /* always X_DRIGetDeviceInfo */
-    CARD16 length B16;
-    CARD32 screen B32;
-} xXF86DRIGetDeviceInfoReq;
-
-#define sz_xXF86DRIGetDeviceInfoReq	8
-
-typedef struct
-{
-    BYTE type;			       /* X_Reply */
-    BOOL pad1;
-    CARD16 sequenceNumber B16;
-    CARD32 length B32;
-    CARD32 hFrameBufferLow B32;
-    CARD32 hFrameBufferHigh B32;
-    CARD32 framebufferOrigin B32;
-    CARD32 framebufferSize B32;
-    CARD32 framebufferStride B32;
-    CARD32 devPrivateSize B32;
-} xXF86DRIGetDeviceInfoReply;
-
-#define sz_xXF86DRIGetDeviceInfoReply	32
-
-typedef struct _XF86DRIOpenFullScreen
-{
-    CARD8 reqType;		       /* always DRIReqCode */
-    CARD8 driReqType;		       /* always X_DRIOpenFullScreen */
-    CARD16 length B16;
-    CARD32 screen B32;
-    CARD32 drawable B32;
-} xXF86DRIOpenFullScreenReq;
-
-#define sz_xXF86DRIOpenFullScreenReq    12
-
-typedef struct
-{
-    BYTE type;
-    BOOL pad1;
-    CARD16 sequenceNumber B16;
-    CARD32 length B32;
-    CARD32 isFullScreen B32;
-    CARD32 pad2 B32;
-    CARD32 pad3 B32;
-    CARD32 pad4 B32;
-    CARD32 pad5 B32;
-    CARD32 pad6 B32;
-} xXF86DRIOpenFullScreenReply;
-
-#define sz_xXF86DRIOpenFullScreenReply  32
-
-typedef struct _XF86DRICloseFullScreen
-{
-    CARD8 reqType;		       /* always DRIReqCode */
-    CARD8 driReqType;		       /* always X_DRICloseFullScreen */
-    CARD16 length B16;
-    CARD32 screen B32;
-    CARD32 drawable B32;
-} xXF86DRICloseFullScreenReq;
-
-#define sz_xXF86DRICloseFullScreenReq   12
-
-typedef struct
-{
-    BYTE type;
-    BOOL pad1;
-    CARD16 sequenceNumber B16;
-    CARD32 length B32;
-    CARD32 pad2 B32;
-    CARD32 pad3 B32;
-    CARD32 pad4 B32;
-    CARD32 pad5 B32;
-    CARD32 pad6 B32;
-    CARD32 pad7 B32;
-} xXF86DRICloseFullScreenReply;
-
-#define sz_xXF86DRICloseFullScreenReply  32
-
-#endif /* _XF86DRISTR_H_ */
commit 50c10ededba15dd0c118f1b65756362061491090
Merge: 13c730e... 87332a7...
Author: Zou Nan hai <nanhai.zou at intel.com>
Date:   Mon May 18 17:11:28 2009 +0800

    Merge branch 'master' into xvmc-vld

diff --cc src/i830_hwmc.h
index d0dc15b,41f6441..062234c
--- a/src/i830_hwmc.h
+++ b/src/i830_hwmc.h
@@@ -100,9 -100,7 +100,8 @@@ struct intel_xvmc_driver 
  extern struct intel_xvmc_driver *xvmc_driver;
  extern struct intel_xvmc_driver i915_xvmc_driver;
  extern struct intel_xvmc_driver i965_xvmc_driver;
 +extern struct intel_xvmc_driver vld_xvmc_driver;
  
- extern Bool intel_xvmc_set_driver(struct intel_xvmc_driver *);
  extern Bool intel_xvmc_probe(ScrnInfoPtr);
  extern Bool intel_xvmc_driver_init(ScreenPtr, XF86VideoAdaptorPtr);
  extern Bool intel_xvmc_screen_init(ScreenPtr);
commit 87332a7cc16af82aa47e07fbf90da3635b071dbf
Author: Keith Packard <keithp at keithp.com>
Date:   Mon May 11 13:52:00 2009 -0700

    Use drm_intel_bo_disable_reuse API to flag scanout and cursor buffers
    
    Buffers referenced by the kernel for scanout or cursor display should not be
    reused by the driver. Use the new drm API to disable reuse of these buffers.
    
    Signed-off-by: Keith Packard <keithp at keithp.com>

diff --git a/src/i830.h b/src/i830.h
index 33a92c6..0969c48 100644
--- a/src/i830.h
+++ b/src/i830.h
@@ -902,6 +902,7 @@ extern const int I830CopyROP[16];
 #define NEED_NON_STOLEN			0x00000004
 #define NEED_LIFETIME_FIXED		0x00000008
 #define ALLOW_SHARING			0x00000010
+#define DISABLE_REUSE			0x00000020
 
 /* Chipset registers for VIDEO BIOS memory RW access */
 #define _855_DRAM_RW_CONTROL 0x58
diff --git a/src/i830_memory.c b/src/i830_memory.c
index 892c26e..2a697a7 100644
--- a/src/i830_memory.c
+++ b/src/i830_memory.c
@@ -799,6 +799,9 @@ i830_allocate_memory_bo(ScrnInfoPtr pScrn, const char *name,
 	}
     }
 
+    if (flags & DISABLE_REUSE)
+	drm_intel_bo_disable_reuse(mem->bo);
+
     /* Insert new allocation into the list */
     mem->prev = NULL;
     mem->next = pI830->bo_list;
@@ -1076,7 +1079,7 @@ i830_allocate_framebuffer(ScrnInfoPtr pScrn)
     i830_memory *front_buffer = NULL;
     enum tile_format tile_format = TILE_NONE;
 
-    flags = ALLOW_SHARING;
+    flags = ALLOW_SHARING|DISABLE_REUSE;
 
     /* We'll allocate the fb such that the root window will fit regardless of
      * rotation.
@@ -1142,6 +1145,8 @@ i830_allocate_cursor_buffers(ScrnInfoPtr pScrn)
 
     flags = pI830->CursorNeedsPhysical ? NEED_PHYSICAL_ADDR : 0;
 
+    flags |= DISABLE_REUSE;
+
     /* Try to allocate one big blob for our cursor memory.  This works
      * around a limitation in the FreeBSD AGP driver that allows only one
      * physical allocation larger than a page, and could allow us
commit ebe05200df381c0e6ee636f0f83440bfedea9bcb
Author: Jesse Barnes <jbarnes at virtuousgeek.org>
Date:   Fri May 15 08:50:17 2009 -0700

    Add --enable-debug flag to configure
    
    Defaults to enabled.

diff --git a/configure.ac b/configure.ac
index 028d17d..bb05d1e 100644
--- a/configure.ac
+++ b/configure.ac
@@ -70,6 +70,14 @@ AC_ARG_ENABLE(video-debug, AC_HELP_STRING([--enable-video-debug],
               [VIDEO_DEBUG="$enableval"],
               [VIDEO_DEBUG=no])
 
+AC_ARG_ENABLE(debug, AC_HELP_STRING([--enable-debug],
+				    [Compile with debug support [[default=yes]]]))
+if test "x$enableval" == "xyes" ; then
+	DEBUGFLAGS="-g"
+else
+	DEBUGFLAGS=""
+fi
+
 dnl AC_ARG_ENABLE(xvmc, AC_HELP_STRING([--disable-xvmc],
 dnl                                   [Disable XvMC support [[default=auto]]]),
 dnl               [XVMC="$enableval"],
@@ -116,7 +124,7 @@ if test x$DRI = xauto; then
         fi
 fi
 AC_MSG_RESULT([$DRI])
-CFLAGS="$save_CFLAGS"
+CFLAGS="$save_CFLAGS $DEBUGFLAGS"
 
 PKG_CHECK_MODULES([PCIACCESS], [pciaccess >= 0.10])
 
commit 04772b6c09a88f0483c2a7efc48029967c77b9bc
Author: Keith Packard <keithp at keithp.com>
Date:   Thu May 14 16:57:11 2009 -0700

    If DRM can't figure out which pipe to sync on, then don't sync at all.
    
    Syncing to the wrong pipe can wedge the hardware if the exclusion area is
    larger than the vtotal
    
    Signed-off-by: Keith Packard <keithp at keithp.com>

diff --git a/configure.ac b/configure.ac
index 8aef4cf..028d17d 100644
--- a/configure.ac
+++ b/configure.ac
@@ -130,7 +130,7 @@ if test "x$GCC" = "xyes"; then
 	-Wnested-externs -fno-strict-aliasing"
 fi
 
-PKG_CHECK_MODULES(DRM, [libdrm >= 2.4.6])
+PKG_CHECK_MODULES(DRM, [libdrm >= 2.4.11])
 AM_CONDITIONAL(DRI, test x$DRI = xyes)
 if test "$DRI" = yes; then
         PKG_CHECK_MODULES(DRI, [xf86driproto glproto])
diff --git a/src/i830_video.c b/src/i830_video.c
index 64cea04..1c3a5b7 100644
--- a/src/i830_video.c
+++ b/src/i830_video.c
@@ -2504,27 +2504,29 @@ I830PutImage(ScrnInfoPtr pScrn,
 		pipe = intel_crtc->pipe;
 	    }
 
-	    if (pipe == 0) {
-		event = MI_WAIT_FOR_PIPEA_SCAN_LINE_WINDOW;
-		load_scan_lines_pipe = MI_LOAD_SCAN_LINES_DISPLAY_PIPEA;
-	    } else {
-		event = MI_WAIT_FOR_PIPEB_SCAN_LINE_WINDOW;
-		load_scan_lines_pipe = MI_LOAD_SCAN_LINES_DISPLAY_PIPEB;
-	    }
+	    if (pipe >= 0) {
+		if (pipe == 0) {
+		    event = MI_WAIT_FOR_PIPEA_SCAN_LINE_WINDOW;
+		    load_scan_lines_pipe = MI_LOAD_SCAN_LINES_DISPLAY_PIPEA;
+		} else {
+		    event = MI_WAIT_FOR_PIPEB_SCAN_LINE_WINDOW;
+		    load_scan_lines_pipe = MI_LOAD_SCAN_LINES_DISPLAY_PIPEB;
+		}
 
-	    box = REGION_EXTENTS(unused, clipBoxes);
-	    y1 = box->y1 - crtc->y;
-	    y2 = box->y2 - crtc->y;
-
-            BEGIN_BATCH(5);
-	    /* The documentation says that the LOAD_SCAN_LINES command
-	     * always comes in pairs. Don't ask me why. */
-	    OUT_BATCH(MI_LOAD_SCAN_LINES_INCL | load_scan_lines_pipe);
-	    OUT_BATCH((y1 << 16) | y2);
-	    OUT_BATCH(MI_LOAD_SCAN_LINES_INCL | load_scan_lines_pipe);
-	    OUT_BATCH((y1 << 16) | y2);
-            OUT_BATCH(MI_WAIT_FOR_EVENT | event);
-            ADVANCE_BATCH();
+		box = REGION_EXTENTS(unused, clipBoxes);
+		y1 = box->y1 - crtc->y;
+		y2 = box->y2 - crtc->y;
+
+		BEGIN_BATCH(5);
+		/* The documentation says that the LOAD_SCAN_LINES command
+		 * always comes in pairs. Don't ask me why. */
+		OUT_BATCH(MI_LOAD_SCAN_LINES_INCL | load_scan_lines_pipe);
+		OUT_BATCH((y1 << 16) | y2);
+		OUT_BATCH(MI_LOAD_SCAN_LINES_INCL | load_scan_lines_pipe);
+		OUT_BATCH((y1 << 16) | y2);
+		OUT_BATCH(MI_WAIT_FOR_EVENT | event);
+		ADVANCE_BATCH();
+	    }
         }
 
         if (IS_I965G(pI830)) {
commit 128c1c3b7d57b157604788f82bf9fd389839068f
Author: Carl Worth <cworth at cworth.org>
Date:   Wed Apr 29 14:43:56 2009 -0700

    Use libdrm to lookup pipe for tear-free sync of XV
    
    Previously, the code was trying to examine a driver_private field,
    but those fields are only set by the userland-modesetting code so
    would fail in the case of KMS. This fixes bug #21076:
    
    [945GME] [KMS] XV_SYNC_TO_VBLANK does not prevent tearing of xv video
    https://bugs.freedesktop.org/show_bug.cgi?id=21076

diff --git a/src/drmmode_display.c b/src/drmmode_display.c
index 15ffc29..7df7b6f 100644
--- a/src/drmmode_display.c
+++ b/src/drmmode_display.c
@@ -920,3 +920,11 @@ Bool drmmode_pre_init(ScrnInfoPtr pScrn, int fd, int cpp)
 
 	return TRUE;
 }
+
+int
+drmmode_get_pipe_from_crtc_id(drm_intel_bufmgr *bufmgr, xf86CrtcPtr crtc)
+{
+	drmmode_crtc_private_ptr drmmode_crtc = crtc->driver_private;
+
+	return drm_intel_get_pipe_from_crtc_id (bufmgr, drmmode_crtc->mode_crtc->crtc_id);
+}
diff --git a/src/i830.h b/src/i830.h
index 68bc0a5..33a92c6 100644
--- a/src/i830.h
+++ b/src/i830.h
@@ -679,6 +679,7 @@ Bool I830DRI2ScreenInit(ScreenPtr pScreen);
 void I830DRI2CloseScreen(ScreenPtr pScreen);
 
 extern Bool drmmode_pre_init(ScrnInfoPtr pScrn, int fd, int cpp);
+extern int drmmode_get_pipe_from_crtc_id(drm_intel_bufmgr *bufmgr, xf86CrtcPtr crtc);
 
 extern Bool I830AccelInit(ScreenPtr pScreen);
 extern void I830SetupForScreenToScreenCopy(ScrnInfoPtr pScrn, int xdir,
diff --git a/src/i830_video.c b/src/i830_video.c
index 1e05e9c..64cea04 100644
--- a/src/i830_video.c
+++ b/src/i830_video.c
@@ -2495,15 +2495,21 @@ I830PutImage(ScrnInfoPtr pScrn,
         if (sync) {
 	    BoxPtr box;
 	    int y1, y2;
-            int event, pipe;
-	    I830CrtcPrivatePtr intel_crtc = crtc->driver_private;
+            int pipe, event, load_scan_lines_pipe;
 
-	    if (intel_crtc->pipe == 0) {
+	    if (pI830->use_drm_mode)
+		pipe = drmmode_get_pipe_from_crtc_id(pI830->bufmgr, crtc);
+	    else {
+		I830CrtcPrivatePtr intel_crtc = crtc->driver_private;
+		pipe = intel_crtc->pipe;
+	    }
+
+	    if (pipe == 0) {
 		event = MI_WAIT_FOR_PIPEA_SCAN_LINE_WINDOW;
-		pipe = MI_LOAD_SCAN_LINES_DISPLAY_PIPEA;
+		load_scan_lines_pipe = MI_LOAD_SCAN_LINES_DISPLAY_PIPEA;
 	    } else {
 		event = MI_WAIT_FOR_PIPEB_SCAN_LINE_WINDOW;
-		pipe = MI_LOAD_SCAN_LINES_DISPLAY_PIPEB;
+		load_scan_lines_pipe = MI_LOAD_SCAN_LINES_DISPLAY_PIPEB;
 	    }
 
 	    box = REGION_EXTENTS(unused, clipBoxes);
@@ -2513,9 +2519,9 @@ I830PutImage(ScrnInfoPtr pScrn,
             BEGIN_BATCH(5);
 	    /* The documentation says that the LOAD_SCAN_LINES command
 	     * always comes in pairs. Don't ask me why. */
-	    OUT_BATCH(MI_LOAD_SCAN_LINES_INCL | pipe);
+	    OUT_BATCH(MI_LOAD_SCAN_LINES_INCL | load_scan_lines_pipe);
 	    OUT_BATCH((y1 << 16) | y2);
-	    OUT_BATCH(MI_LOAD_SCAN_LINES_INCL | pipe);
+	    OUT_BATCH(MI_LOAD_SCAN_LINES_INCL | load_scan_lines_pipe);
 	    OUT_BATCH((y1 << 16) | y2);
             OUT_BATCH(MI_WAIT_FOR_EVENT | event);
             ADVANCE_BATCH();
commit 2572fcc6196aff7a2f1095d211fd85d8668647ca
Author: Wu Fengguang <fengguang.wu at intel.com>
Date:   Thu Apr 30 19:51:26 2009 +0800

    README: kill an evil dot
    
    To make copy and paste a more pleasure.
    
    Signed-off-by: Wu Fengguang <fengguang.wu at intel.com>
    Signed-off-by: Eric Anholt <eric at anholt.net>

diff --git a/README b/README
index 96db084..8b0998f 100644
--- a/README
+++ b/README
@@ -31,7 +31,7 @@ documentation can be read with the following command:
 Mailing list for communication with users and developers of
 xf86-video-intel:
 
-	intel-gfx at lists.freedesktop.org.
+	intel-gfx at lists.freedesktop.org
 
 	Note: Subscription is required before posting, but anyone is
 	free to subscribe. See instructions (and archives) here:
commit b9462516d18bc57be5f33f57adb6c3e8beede5ff
Author: Eric Anholt <eric at anholt.net>
Date:   Tue May 12 18:53:27 2009 -0700

    Remove dead "avail" variable from XAA stuff.

diff --git a/src/i830_memory.c b/src/i830_memory.c
index 14e7f89..892c26e 100644
--- a/src/i830_memory.c
+++ b/src/i830_memory.c
@@ -1069,7 +1069,7 @@ i830_allocate_framebuffer(ScrnInfoPtr pScrn)
 {
     I830Ptr pI830 = I830PTR(pScrn);
     unsigned int pitch = pScrn->displayWidth * pI830->cpp;
-    unsigned long minspace, avail;
+    unsigned long minspace;
     int align;
     long size, fb_height;
     int flags;
@@ -1088,7 +1088,6 @@ i830_allocate_framebuffer(ScrnInfoPtr pScrn)
      * enough for the virtual screen size.
      */
     minspace = pitch * pScrn->virtualY;
-    avail = pScrn->videoRam * 1024;
 
     size = ROUND_TO_PAGE(pitch * fb_height);
 
commit 1c68bc376a9cb3c0a010c8e28f69a776755c8f64
Author: Jesse Barnes <jbarnes at virtuousgeek.org>
Date:   Wed May 13 13:19:53 2009 -0700

    Add new have_gem flag
    
    Prior to this patch, code that wanted to check whether GEM was present
    would look at pI830->memory_manager.  This turned out to be occasionally
    problematic in the KMS case, since memory_manager didn't always get set
    correctly.  So add a new pI830->have_gem flag to make things clear in
    the various code paths, and set it after GEM initializes or when KMS is
    detected.
    
    Reviewed-by: Eric Anholt <eric at anholt.net>
    Tested-by: Magnus Kessler <Magnus.Kessler at gmx.net>
    Signed-off-by: Jesse Barnes <jbarnes at virtuousgeek.org>

diff --git a/src/i830.h b/src/i830.h
index 0d8726c..68bc0a5 100644
--- a/src/i830.h
+++ b/src/i830.h
@@ -405,6 +405,7 @@ typedef struct _I830Rec {
 
    i830_memory *memory_manager;		/**< DRI memory manager aperture */
 
+   Bool have_gem;
    Bool need_mi_flush;
 
    Bool tiling;
diff --git a/src/i830_batchbuffer.c b/src/i830_batchbuffer.c
index 5a9f9c5..a6d9c6e 100644
--- a/src/i830_batchbuffer.c
+++ b/src/i830_batchbuffer.c
@@ -179,7 +179,7 @@ intel_batch_flush(ScrnInfoPtr pScrn, Bool flushed)
 	return;
 
     /* If we're not using GEM, then emit a flush after each batch buffer */
-    if (pI830->memory_manager == NULL && !flushed) {
+    if (!pI830->have_gem && !flushed) {
 	int flags = MI_WRITE_DIRTY_STATE | MI_INVALIDATE_MAP_CACHE;
 
 	if (IS_I965G(pI830))
@@ -219,7 +219,7 @@ intel_batch_flush(ScrnInfoPtr pScrn, Bool flushed)
      * blockhandler.  We could set this less often, but it's probably not worth
      * the work.
      */
-    if (pI830->memory_manager != NULL)
+    if (pI830->have_gem)
 	pI830->need_mi_flush = TRUE;
 
     if (pI830->batch_flush_notify)
diff --git a/src/i830_debug.c b/src/i830_debug.c
index 5a8c3eb..f070978 100644
--- a/src/i830_debug.c
+++ b/src/i830_debug.c
@@ -1882,7 +1882,7 @@ i830_check_error_state(ScrnInfoPtr pScrn)
 	errors++;
     }
     temp = INREG(LP_RING + RING_LEN);
-    if (!pI830->memory_manager && (temp & 1)) {
+    if (!pI830->have_gem && (temp & 1)) {
 	xf86DrvMsg(pScrn->scrnIndex, X_WARNING,
 		   "PRB0_CTL (0x%08lx) indicates ring buffer enabled\n", temp);
 	errors++;
diff --git a/src/i830_driver.c b/src/i830_driver.c
index aaf5a20..854ad0f 100644
--- a/src/i830_driver.c
+++ b/src/i830_driver.c
@@ -611,7 +611,7 @@ i830_update_front_offset(ScrnInfoPtr pScrn)
    /* If we are still in ScreenInit, there is no screen pixmap to be updated
     * yet.  We'll fix it up at CreateScreenResources.
     */
-   if (!pI830->memory_manager) {
+   if (!pI830->have_gem) {
        data = pI830->FbBase + pScrn->fbOffset; /* default to legacy */
    } else {
       dri_bo *bo = pI830->front_buffer->bo;
@@ -1444,6 +1444,7 @@ I830DrmModeInit(ScrnInfoPtr pScrn)
     }
 
     pI830->directRenderingType = DRI_NONE;
+    pI830->have_gem = TRUE;
 
     i830_init_bufmgr(pScrn);
 
@@ -2227,7 +2228,7 @@ I830BlockHandler(int i,
 	* fashion.
 	*/
        intel_batch_flush(pScrn, flushed);
-       if (pI830->memory_manager)
+       if (pI830->have_gem)
 	 drmCommandNone(pI830->drmSubFD, DRM_I915_GEM_THROTTLE);
 
        pI830->need_mi_flush = FALSE;
@@ -2370,7 +2371,7 @@ i830_init_bufmgr(ScrnInfoPtr pScrn)
    if (pI830->bufmgr)
        return;
 
-   if (pI830->memory_manager || pI830->use_drm_mode) {
+   if (pI830->have_gem) {
       int batch_size;
 
       batch_size = 4096 * 4;
@@ -2557,8 +2558,10 @@ I830ScreenInit(int scrnIndex, ScreenPtr pScreen, int argc, char **argv)
    }
 
    if (pI830->use_drm_mode) {
-       pI830->stolen_size = 0;
-       pScrn->videoRam = ~0UL / KB(1);
+       struct pci_device *const device = pI830->PciInfo;
+       int fb_bar = IS_I9XX(pI830) ? 2 : 0;
+
+       pScrn->videoRam = device->regions[fb_bar].size / 1024;
    } else {
        I830AdjustMemory(pScreen);
    }
@@ -2651,7 +2654,7 @@ I830ScreenInit(int scrnIndex, ScreenPtr pScreen, int argc, char **argv)
    }
 
    if (pI830->accel != ACCEL_NONE && !pI830->use_drm_mode) {
-      if (pI830->memory_manager == NULL && pI830->ring.mem->size == 0) {
+      if (!pI830->have_gem && pI830->ring.mem->size == 0) {
 	  xf86DrvMsg(pScrn->scrnIndex, X_WARNING,
 		     "Disabling acceleration because the ring buffer "
 		      "allocation failed.\n");
@@ -2875,11 +2878,10 @@ I830LeaveVT(int scrnIndex, int flags)
        /* Evict everything from the bufmgr, as we're about to lose ownership of
 	* the graphics memory.
 	*/
-       if (!pI830->memory_manager)
+       if (!pI830->have_gem) {
 	   intel_bufmgr_fake_evict_all(pI830->bufmgr);
-
-       if (!pI830->memory_manager)
 	   i830_stop_ring(pScrn, TRUE);
+       }
 
        if (pI830->debug_modes) {
 	   i830CompareRegsToSnapshot(pScrn, "After LeaveVT");
@@ -2891,7 +2893,7 @@ I830LeaveVT(int scrnIndex, int flags)
 
    i830_unbind_all_memory(pScrn);
 
-   if (pI830->memory_manager && !pI830->use_drm_mode) {
+   if (pI830->have_gem && !pI830->use_drm_mode) {
       int ret;
 
       /* Tell the kernel to evict all buffer objects and block GTT usage while
@@ -2968,7 +2970,7 @@ I830EnterVT(int scrnIndex, int flags)
    if (!pI830->use_drm_mode)
        i830_disable_render_standby(pScrn);
 
-   if (pI830->memory_manager && !pI830->use_drm_mode) {
+   if (pI830->have_gem && !pI830->use_drm_mode) {
       int ret;
 
       /* Tell the kernel that we're back in control and ready for GTT
@@ -2999,7 +3001,7 @@ I830EnterVT(int scrnIndex, int flags)
        }
 
        /* Re-set up the ring. */
-       if (!pI830->memory_manager) {
+       if (!pI830->have_gem) {
 	   i830_stop_ring(pScrn, FALSE);
 	   i830_start_ring(pScrn);
        }
diff --git a/src/i830_exa.c b/src/i830_exa.c
index c1f512d..824f032 100644
--- a/src/i830_exa.c
+++ b/src/i830_exa.c
@@ -497,7 +497,7 @@ i830_uxa_prepare_access (PixmapPtr pixmap, uxa_access_t access)
 	intel_batch_flush(scrn, FALSE);
 
 	/* No VT sema or GEM?  No GTT mapping. */
-	if (!scrn->vtSema || !i830->memory_manager) {
+	if (!scrn->vtSema || !i830->have_gem) {
 	    if (dri_bo_map(bo, access == UXA_ACCESS_RW) != 0)
 		return FALSE;
 	    pixmap->devPrivate.ptr = bo->virtual;
@@ -535,7 +535,7 @@ i830_uxa_finish_access (PixmapPtr pixmap)
 	if (bo == i830->front_buffer->bo)
 	    i830->need_flush = TRUE;
 
-	if (!scrn->vtSema || !i830->memory_manager) {
+	if (!scrn->vtSema || !i830->have_gem) {
 	    dri_bo_unmap(bo);
 	    pixmap->devPrivate.ptr = NULL;
 	    return;
diff --git a/src/i830_memory.c b/src/i830_memory.c
index 18ddff4..14e7f89 100644
--- a/src/i830_memory.c
+++ b/src/i830_memory.c
@@ -480,6 +480,7 @@ i830_allocator_init(ScrnInfoPtr pScrn, unsigned long size)
 		    i830_free_memory(pScrn, pI830->memory_manager);
 		    pI830->memory_manager = NULL;
 		}
+		pI830->have_gem = TRUE;
 		i830_init_bufmgr(pScrn);
 	    }
 	} else {
commit 52367847087206b92f18c40d356d36ab9ee89d39
Author: Keith Packard <keithp at keithp.com>
Date:   Thu May 7 14:58:02 2009 -0700

    Load i915 and fbcon when checking for KMS
    
    Signed-off-by: Keith Packard <keithp at keithp.com>
    Signed-off-by: Eric Anholt <eric at anholt.net>

diff --git a/src/i830_driver.c b/src/i830_driver.c
index 0f66d63..aaf5a20 100644
--- a/src/i830_driver.c
+++ b/src/i830_driver.c
@@ -1009,6 +1009,14 @@ static Bool i830_kernel_mode_enabled(ScrnInfoPtr pScrn)
     busIdString = DRICreatePCIBusID(PciInfo);
 
     ret = drmCheckModesettingSupported(busIdString);
+    if (ret)
+	if (xf86LoadKernelModule("i915")) {
+	    ret = drmCheckModesettingSupported(busIdString);
+
+	    /* Be nice to the user and load fbcon too */
+	    if (!ret)
+		(void) xf86LoadKernelModule("fbcon");
+	}
     xfree(busIdString);
     if (ret)
 	return FALSE;
commit ff7494b4c4b1bd8bb6f169402a9edbe9780787bb
Author: Keith Packard <keithp at keithp.com>
Date:   Thu May 7 14:58:01 2009 -0700

    Add DP link and GMCH M and N registers
    
    Signed-off-by: Eric Anholt <eric at anholt.net>

diff --git a/src/i810_reg.h b/src/i810_reg.h
index 8d4e641..cb33784 100644
--- a/src/i810_reg.h
+++ b/src/i810_reg.h
@@ -2214,6 +2214,43 @@ SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 #define PIPE_PIXEL_MASK		0x00ffffff
 #define PIPE_PIXEL_SHIFT	0
 
+/*
+ * Computing GMCH M and N values.
+ *
+ * GMCH M/N = dot clock * bytes per pixel / ls_clk * # of lanes
+ *
+ * ls_clk (we assume) is the DP link clock (1.62 or 2.7 GHz)
+ *
+ * The GMCH value is used internally
+ */
+#define PIPEA_GMCH_DATA_M	0x70050
+
+/* Transfer unit size for display port - 1, default is 0x3f (for TU size 64) */
+#define PIPE_GMCH_DATA_M_TU_SIZE_MASK	(0x3f << 25)
+#define PIPE_GMCH_DATA_M_TU_SIZE_SHIFT	25
+
+#define PIPE_GMCH_DATA_M_MASK		(0xffffff)
+
+#define PIPEA_GMCH_DATA_N	0x70054
+#define PIPE_GMCH_DATA_N_MASK		(0xffffff)
+
+/*
+ * Computing Link M and N values.
+ *
+ * Link M / N = pixel_clock / ls_clk
+ *
+ * (the DP spec calls pixel_clock the 'strm_clk')
+ *
+ * The Link value is transmitted in the Main Stream
+ * Attributes and VB-ID.
+ */
+
+#define PIPEA_DP_LINK_M		0x70060
+#define PIPEA_DP_LINK_M_MASK	(0xffffff)
+
+#define PIPEA_DP_LINK_N		0x70064
+#define PIPEA_DP_LINK_N_MASK	(0xffffff)
+
 #define PIPEB_DSL		0x71000
 
 #define PIPEBCONF 0x71008
@@ -2231,6 +2268,11 @@ SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 #define PIPEBFRAMEHIGH		0x71040
 #define PIPEBFRAMEPIXEL		0x71044
 
+#define PIPEB_GMCH_DATA_M	0x71050
+#define PIPEB_GMCH_DATA_N	0x71054
+#define PIPEB_DP_LINK_M		0x71060
+#define PIPEB_DP_LINK_N		0x71064
+
 #define DSPACNTR		0x70180
 #define DSPBCNTR		0x71180
 #define DISPLAY_PLANE_ENABLE 			(1<<31)
diff --git a/src/i830_debug.c b/src/i830_debug.c
index 86f5f21..5a8c3eb 100644
--- a/src/i830_debug.c
+++ b/src/i830_debug.c
@@ -652,6 +652,10 @@ static struct i830SnapshotRec {
     DEFINEREG2(PIPEACONF, i830_debug_pipeconf),
     DEFINEREG2(PIPEASRC, i830_debug_yxminus1),
     DEFINEREG2(PIPEASTAT, i830_debug_pipestat),
+    DEFINEREG(PIPEA_GMCH_DATA_M),
+    DEFINEREG(PIPEA_GMCH_DATA_N),
+    DEFINEREG(PIPEA_DP_LINK_M),
+    DEFINEREG(PIPEA_DP_LINK_N),
 
     DEFINEREG2(FPA0, i830_debug_fp),
     DEFINEREG2(FPA1, i830_debug_fp),
@@ -676,6 +680,10 @@ static struct i830SnapshotRec {
     DEFINEREG2(PIPEBCONF, i830_debug_pipeconf),
     DEFINEREG2(PIPEBSRC, i830_debug_yxminus1),
     DEFINEREG2(PIPEBSTAT, i830_debug_pipestat),
+    DEFINEREG(PIPEB_GMCH_DATA_M),
+    DEFINEREG(PIPEB_GMCH_DATA_N),
+    DEFINEREG(PIPEB_DP_LINK_M),
+    DEFINEREG(PIPEB_DP_LINK_N),
 
     DEFINEREG2(FPB0, i830_debug_fp),
     DEFINEREG2(FPB1, i830_debug_fp),
commit e54a23bff068416ccbdb75d538dc7dcd40a6c95c
Author: Keith Packard <keithp at keithp.com>
Date:   Thu May 7 16:35:19 2009 -0700

    Fallback when VT inactive
    
    While the VT is inactive, pI830->batch_bo will be NULL, so use that as a
    simple check for when to not use the accelerator. The alternative is to
    ignore VT switch and just keep drawing, which would also be fine.
    
    Bug #21468.
    
    Signed-off-by: Keith Packard <keithp at keithp.com>
    [anholt: Removed extra return FALSE -- I830FALLBACK does that.]
    Signed-off-by: Eric Anholt <eric at anholt.net>

diff --git a/src/i830_exa.c b/src/i830_exa.c
index 0a15de8..c1f512d 100644
--- a/src/i830_exa.c
+++ b/src/i830_exa.c
@@ -126,6 +126,9 @@ i830_get_aperture_space(ScrnInfoPtr pScrn, drm_intel_bo **bo_table, int num_bos)
 {
     I830Ptr pI830 = I830PTR(pScrn);
 
+    if (pI830->batch_bo == NULL)
+	I830FALLBACK("VT inactive\n");
+
     bo_table[0] = pI830->batch_bo;
     if (drm_intel_bufmgr_check_aperture_space(bo_table, num_bos) != 0) {
 	intel_batch_flush(pScrn, FALSE);
commit 660bd745c21c56e330d844fe4c8eaae862a77483
Author: Wu Fengguang <fengguang.wu at intel.com>
Date:   Thu Apr 30 18:42:18 2009 +0800

    Remove the offset parameter from i830_allocator_init()
    
    offset is redundant.  i830_allocator_init() is only called
    in one place with offset=0.
    
    Acked-by: Magnus Kessler <Magnus.Kessler at gmx.net>
    Signed-off-by: Wu Fengguang <fengguang.wu at intel.com>
    Signed-off-by: Eric Anholt <eric at anholt.net>

diff --git a/src/i830.h b/src/i830.h
index 207d4ec..0d8726c 100644
--- a/src/i830.h
+++ b/src/i830.h
@@ -692,8 +692,7 @@ extern void I830SetupForSolidFill(ScrnInfoPtr pScrn, int color, int rop,
 extern void I830SubsequentSolidFillRect(ScrnInfoPtr pScrn, int x, int y,
 					int w, int h);
 
-Bool i830_allocator_init(ScrnInfoPtr pScrn, unsigned long offset,
-			 unsigned long size);
+Bool i830_allocator_init(ScrnInfoPtr pScrn, unsigned long size);
 void i830_allocator_fini(ScrnInfoPtr pScrn);
 i830_memory * i830_allocate_memory(ScrnInfoPtr pScrn, const char *name,
 				   unsigned long size, unsigned long pitch,
diff --git a/src/i830_driver.c b/src/i830_driver.c
index 1887a51..0f66d63 100644
--- a/src/i830_driver.c
+++ b/src/i830_driver.c
@@ -2319,7 +2319,7 @@ i830_memory_init(ScrnInfoPtr pScrn)
 
     tiled = i830_tiled_width(pI830, &pScrn->displayWidth, pI830->cpp);
     /* Set up our video memory allocator for the chosen videoRam */
-    if (!i830_allocator_init(pScrn, 0, pScrn->videoRam * KB(1))) {
+    if (!i830_allocator_init(pScrn, pScrn->videoRam * KB(1))) {
 	xf86DrvMsg(pScrn->scrnIndex, X_ERROR,
 		"Couldn't initialize video memory allocator\n");
 	PreInitCleanup(pScrn);
diff --git a/src/i830_memory.c b/src/i830_memory.c
index d5827f8..18ddff4 100644
--- a/src/i830_memory.c
+++ b/src/i830_memory.c
@@ -364,7 +364,7 @@ i830_reset_allocations(ScrnInfoPtr pScrn)
  * addresses to reference.
  */
 Bool
-i830_allocator_init(ScrnInfoPtr pScrn, unsigned long offset, unsigned long size)
+i830_allocator_init(ScrnInfoPtr pScrn, unsigned long size)
 {
     I830Ptr pI830 = I830PTR(pScrn);
     i830_memory *start, *end;
@@ -395,12 +395,12 @@ i830_allocator_init(ScrnInfoPtr pScrn, unsigned long offset, unsigned long size)
     }
 
     start->key = -1;
-    start->offset = offset;
+    start->offset = 0;
     start->end = start->offset;
     start->size = 0;
     start->next = end;
     end->key = -1;
-    end->offset = offset + size;
+    end->offset = size;
     end->end = end->offset;
     end->size = 0;
     end->prev = start;
commit b1f5cc3349f6811ff4d8dc64cc291788d6726372
Author: Carl Worth <cworth at cworth.org>
Date:   Tue May 12 11:45:03 2009 -0700

    RELEASING: Better instructions for where to send announcements
    
    The xorg-announce list doesn't need to hear about development
    snapshots and release candidates. The intel-gfx list is good for
    that.

diff --git a/RELEASING b/RELEASING
index 9376110..2196c8f 100644
--- a/RELEASING
+++ b/RELEASING
@@ -33,8 +33,19 @@ The process for releasing a new tarball is as follows:
 
 	$ <path_to>/util/modular/release.sh driver <last_ver> <ver>
 
-7. Edit the generated release message as needed and send it out
+7. Edit and send the generated release message.
 
 	At the very least, add the release notes from the NEWS file.
 
+	The message is generated as xf86-video-inte-<version>.announce
+
+	For snapshots and release candidates, mail to:
+
+		intel-gfx at lists.freedesktop.org
+
+	For major releases also send to:
+
+		xorg at lists.freedesktop.org
+		xorg-announce at lists.freedesktop.org
+
 8. Throw a release party, you're done! :)
commit f16ee218845ec48940ea457b921d34896d80a807
Author: Alan Coopersmith <alan.coopersmith at sun.com>
Date:   Sun May 10 16:25:24 2009 -0700

    Fix "Unkown" typo in two FatalError messages
    
    Signed-off-by: Alan Coopersmith <alan.coopersmith at sun.com>

diff --git a/src/i830_render.c b/src/i830_render.c
index 4ca4e33..4bee5ba 100644
--- a/src/i830_render.c
+++ b/src/i830_render.c
@@ -285,7 +285,7 @@ i830_texture_setup(PicturePtr pPict, PixmapPtr pPix, int unit)
 	wrap_mode = TEXCOORDMODE_MIRROR;
 	break;
     default:
-	FatalError("Unkown repeat type %d\n", pPict->repeatType);
+	FatalError("Unknown repeat type %d\n", pPict->repeatType);
     }
 
     switch (pPict->filter) {
diff --git a/src/i915_render.c b/src/i915_render.c
index 268dd8a..ab04e9c 100644
--- a/src/i915_render.c
+++ b/src/i915_render.c
@@ -270,7 +270,7 @@ i915_texture_setup(PicturePtr pPict, PixmapPtr pPix, int unit)
 	wrap_mode = TEXCOORDMODE_MIRROR;
 	break;
     default:
-	FatalError("Unkown repeat type %d\n", pPict->repeatType);
+	FatalError("Unknown repeat type %d\n", pPict->repeatType);
     }
 
     switch (pPict->filter) {
commit 8d27247829fe4f55691ce68f9f4b14810fb34b32
Author: Stijn van Drongelen <tinctorius at gmail.com>
Date:   Tue May 5 16:37:06 2009 +0200

    Fix typo in (unused) INTEL_BIOS_32 macro
    
    Debian bug#527062 <http://bugs.debian.org/527062>
    
    [jcristau: fix same typo in bios_reader.c]
    Signed-off-by: Julien Cristau <jcristau at debian.org>

diff --git a/src/bios_reader/bios_reader.c b/src/bios_reader/bios_reader.c
index fc51821..328cacf 100644
--- a/src/bios_reader/bios_reader.c
+++ b/src/bios_reader/bios_reader.c
@@ -55,8 +55,8 @@ struct _fake_i830 *pI830 = &I830;
 #define INTEL_BIOS_16(_addr)	(pI830->VBIOS[_addr] | \
 				 (pI830->VBIOS[_addr + 1] << 8))
 #define INTEL_BIOS_32(_addr)	(pI830->VBIOS[_addr] | \
-				 (pI830->VBIOS[_addr + 1] << 8) \
-				 (pI830->VBIOS[_addr + 2] << 16) \
+				 (pI830->VBIOS[_addr + 1] << 8) | \
+				 (pI830->VBIOS[_addr + 2] << 16) | \
 				 (pI830->VBIOS[_addr + 3] << 24))
 
 #define YESNO(val) ((val) ? "yes" : "no")
diff --git a/src/i830_bios.c b/src/i830_bios.c
index 7c51f38..73c097a 100644
--- a/src/i830_bios.c
+++ b/src/i830_bios.c
@@ -43,8 +43,8 @@
 #define INTEL_BIOS_16(_addr)	(bios[_addr] |			\
 				 (bios[_addr + 1] << 8))
 #define INTEL_BIOS_32(_addr)	(bios[_addr] |			\
-				 (bios[_addr + 1] << 8)		\
-				 (bios[_addr + 2] << 16)	\
+				 (bios[_addr + 1] << 8) |	\
+				 (bios[_addr + 2] << 16) |	\
 				 (bios[_addr + 3] << 24))
 
 static void *
commit a8a771a853478e5f45f71d0eff3c4d55bf24d0ad
Author: Arkadiusz Miśkiewicz <arekm at maven.pl>
Date:   Wed Apr 29 00:21:18 2009 +0200

    Restore CFLAGS after tests.
    
    Reverts single line of broken commit e5133a94dc78411eaef324131ea8056aeb81779e.
    
    Signed-off-by: Eric Anholt <eric at anholt.net>

diff --git a/configure.ac b/configure.ac
index 12fec79..8aef4cf 100644
--- a/configure.ac
+++ b/configure.ac
@@ -116,6 +116,7 @@ if test x$DRI = xauto; then
         fi
 fi
 AC_MSG_RESULT([$DRI])
+CFLAGS="$save_CFLAGS"
 
 PKG_CHECK_MODULES([PCIACCESS], [pciaccess >= 0.10])
 
commit 8255cca2c9092f7ecb798944aa8f03fa3efcfa6c
Author: Keith Packard <keithp at keithp.com>
Date:   Fri May 1 18:34:43 2009 -0700

    Split i915 textured video commands to fit into batch buffers.
    
    i915 textured video commands are quite long, but must be contained in the
    same batch buffer as the 3D setup commands. When the number of clip rects
    for the video becomes too large for the associated commands to fit in the
    same batch buffer, this change breaks the sequence into pieces, ensuring
    that each batch contains the necessary setup sequence.
    
    Signed-off-by: Keith Packard <keithp at keithp.com>

diff --git a/src/i915_video.c b/src/i915_video.c
index 1d1fa01..150cf04 100644
--- a/src/i915_video.c
+++ b/src/i915_video.c
@@ -50,7 +50,8 @@ I915DisplayVideoTextured(ScrnInfoPtr pScrn, I830PortPrivPtr pPriv, int id,
    I830Ptr pI830 = I830PTR(pScrn);
    uint32_t format, ms3, s5;
    BoxPtr pbox = REGION_RECTS(dstRegion);
-   int nbox = REGION_NUM_RECTS(dstRegion);
+   int nbox_total = REGION_NUM_RECTS(dstRegion);
+   int nbox_this_time;
    int dxo, dyo, pix_xoff, pix_yoff;
    Bool planar;
 
@@ -73,7 +74,17 @@ I915DisplayVideoTextured(ScrnInfoPtr pScrn, I830PortPrivPtr pPriv, int id,
       return;
    }
 
-   intel_batch_start_atomic(pScrn, 200 + 20 * nbox);
+#define BYTES_FOR_BOXES(n)	((200 + (n) * 20) * 4)
+#define BOXES_IN_BYTES(s)	((((s)/4) - 200) / 20)
+#define BATCH_BYTES(p)		((p)->batch_bo->size - 16)
+
+   while (nbox_total) {
+	nbox_this_time = nbox_total;
+	if (BYTES_FOR_BOXES(nbox_this_time) > BATCH_BYTES(pI830))
+		nbox_this_time = BOXES_IN_BYTES(BATCH_BYTES(pI830));
+	nbox_total -= nbox_this_time;
+
+   intel_batch_start_atomic(pScrn, 200 + 20 * nbox_this_time);
 
    IntelEmitInvarientState(pScrn);
    pI830->last_3d = LAST_3D_VIDEO;
@@ -366,7 +377,7 @@ I915DisplayVideoTextured(ScrnInfoPtr pScrn, I830PortPrivPtr pPriv, int id,
    dxo = dstRegion->extents.x1;
    dyo = dstRegion->extents.y1;
 
-   while (nbox--)
+   while (nbox_this_time--)
    {
       int box_x1 = pbox->x1;
       int box_y1 = pbox->y1;
@@ -415,5 +426,6 @@ I915DisplayVideoTextured(ScrnInfoPtr pScrn, I830PortPrivPtr pPriv, int id,
    }
 
    intel_batch_end_atomic(pScrn);
+   }
 }
 
commit e5e0fb846bda3e1757b89e50d5244d28457b9fe3
Author: Keith Packard <keithp at keithp.com>
Date:   Fri May 1 12:26:04 2009 -0700

    Call down to lower CloseScreen before shutting down DRM allocator
    
    Lower level functions will destroy objects that are managed by the DRM
    allocator, so make sure those are done before the allocator shuts down.
    
    Signed-off-by: Keith Packard <keithp at keithp.com>

diff --git a/src/i830_driver.c b/src/i830_driver.c
index 1ff5866..1887a51 100644
--- a/src/i830_driver.c
+++ b/src/i830_driver.c
@@ -3085,6 +3085,9 @@ I830CloseScreen(int scrnIndex, ScreenPtr pScreen)
    free(pI830->offscreenImages);
    pI830->offscreenImages = NULL;
 
+   pScreen->CloseScreen = pI830->CloseScreen;
+   (*pScreen->CloseScreen) (scrnIndex, pScreen);
+
    dri_bufmgr_destroy(pI830->bufmgr);
    pI830->bufmgr = NULL;
 
@@ -3098,8 +3101,7 @@ I830CloseScreen(int scrnIndex, ScreenPtr pScreen)
    pScrn->PointerMoved = pI830->PointerMoved;
    pScrn->vtSema = FALSE;
    pI830->closing = FALSE;
-   pScreen->CloseScreen = pI830->CloseScreen;
-   return (*pScreen->CloseScreen) (scrnIndex, pScreen);
+   return TRUE;
 }
 
 static ModeStatus
commit cfb98f3da936907945f48dad4c2345930f7beb60
Author: Keith Packard <keithp at keithp.com>
Date:   Fri May 1 12:23:32 2009 -0700

    Revert "Leave allocator running until lower-level CloseScreens are done"
    
    Uh, oops -- the FD used to talk to the kernel is closed before the
    allocator_fini function is called now.
    
    This reverts commit 1872869e6ffcc8e6cab820c508fe5404d7e8ff9c.

diff --git a/src/i830_driver.c b/src/i830_driver.c
index ff7124d..1ff5866 100644
--- a/src/i830_driver.c
+++ b/src/i830_driver.c
@@ -3079,6 +3079,7 @@ I830CloseScreen(int scrnIndex, ScreenPtr pScreen)
 
    xf86_cursors_fini (pScreen);
 
+   i830_allocator_fini(pScrn);
 
    i965_free_video(pScrn);
    free(pI830->offscreenImages);
@@ -3098,9 +3099,7 @@ I830CloseScreen(int scrnIndex, ScreenPtr pScreen)
    pScrn->vtSema = FALSE;
    pI830->closing = FALSE;
    pScreen->CloseScreen = pI830->CloseScreen;
-   (*pScreen->CloseScreen) (scrnIndex, pScreen);
-   i830_allocator_fini(pScrn);
-   return TRUE;
+   return (*pScreen->CloseScreen) (scrnIndex, pScreen);
 }
 
 static ModeStatus
commit 11a853bd8e5d907fe7f5bd907453bcdac9032861
Author: Keith Packard <keithp at keithp.com>
Date:   Fri May 1 11:51:13 2009 -0700

    Hold reference to video binding table until all rects are painted.
    
    The optimization of unreferencing the binding table when the relocation is
    posted causes the object to be dereferenced for each box in the clip list,
    causing general chaos in the buffer manager. It's easier to just hold a
    reference to the object until all of the boxes are painted and then drop it.
    
    Signed-off-by: Keith Packard <keithp at keithp.com>

diff --git a/src/i965_video.c b/src/i965_video.c
index a1f577f..d459027 100644
--- a/src/i965_video.c
+++ b/src/i965_video.c
@@ -791,7 +791,6 @@ i965_emit_video_setup(ScrnInfoPtr pScrn, drm_intel_bo *bind_bo, int n_src_surf)
     OUT_BATCH(0); /* sf */
     /* Only the PS uses the binding table */
     OUT_RELOC(bind_bo, I915_GEM_DOMAIN_INSTRUCTION, 0, 0);
-    drm_intel_bo_unreference(bind_bo);
 
     /* Blend constant color (magenta is fun) */
     OUT_BATCH(BRW_3DSTATE_CONSTANT_COLOR | 3);
@@ -1158,6 +1157,9 @@ I965DisplayVideoTextured(ScrnInfoPtr pScrn, I830PortPrivPtr pPriv, int id,
 	i965_post_draw_debug(pScrn);
     }
 
+    /* release reference once we're finished */
+    drm_intel_bo_unreference(bind_bo);
+
 #if WATCH_STATS
     i830_dump_error_state(pScrn);
 #endif
commit ed492131c13715b73c14d328d0668120acb58b40
Author: Keith Packard <keithp at keithp.com>
Date:   Fri May 1 11:50:17 2009 -0700

    3D_STATE_VERTEX_BUFFERS takes four 32-bit values, not three.
    
    The spec says this command takes an extra (mbz) 32-bit value, so let's
    provide it with one.
    
    Signed-off-by: Keith Packard <keithp at keithp.com>

diff --git a/src/i965_video.c b/src/i965_video.c
index c25bcb3..a1f577f 100644
--- a/src/i965_video.c
+++ b/src/i965_video.c
@@ -1127,15 +1127,16 @@ I965DisplayVideoTextured(ScrnInfoPtr pScrn, I830PortPrivPtr pPriv, int id,
 
 	i965_emit_video_setup(pScrn, bind_bo, n_src_surf);
 
-	BEGIN_BATCH(10);
+	BEGIN_BATCH(12);
 	/* Set up the pointer to our vertex buffer */
-	OUT_BATCH(BRW_3DSTATE_VERTEX_BUFFERS | 2);
+	OUT_BATCH(BRW_3DSTATE_VERTEX_BUFFERS | 3);
 	/* four 32-bit floats per vertex */
 	OUT_BATCH((0 << VB0_BUFFER_INDEX_SHIFT) |
 		  VB0_VERTEXDATA |
 		  ((4 * 4) << VB0_BUFFER_PITCH_SHIFT));
 	OUT_RELOC(vb_bo, I915_GEM_DOMAIN_VERTEX, 0, 0);
 	OUT_BATCH(3); /* four corners to our rectangle */
+	OUT_BATCH(0); /* reserved */
 
 	OUT_BATCH(BRW_3DPRIMITIVE |
 		  BRW_3DPRIMITIVE_VERTEX_SEQUENTIAL |
@@ -1147,6 +1148,7 @@ I965DisplayVideoTextured(ScrnInfoPtr pScrn, I830PortPrivPtr pPriv, int id,
 	OUT_BATCH(1); /* single instance */
 	OUT_BATCH(0); /* start instance location */
 	OUT_BATCH(0); /* index buffer offset, ignored */
+	OUT_BATCH(MI_NOOP);
 	ADVANCE_BATCH();
 
 	intel_batch_end_atomic(pScrn);
commit 66d1536a2ecc7a3d44da4c0dbe6c85aaa4e05791
Author: Keith Packard <keithp at keithp.com>
Date:   Fri May 1 11:48:51 2009 -0700

    Don't bother to enable VF statistics during 965 video playback
    
    This was used while bringing up the driver to debug vertext fetches.
    
    Signed-off-by: Keith Packard <keithp at keithp.com>

diff --git a/src/i965_video.c b/src/i965_video.c
index 1d0ed74..c25bcb3 100644
--- a/src/i965_video.c
+++ b/src/i965_video.c
@@ -772,8 +772,7 @@ i965_emit_video_setup(ScrnInfoPtr pScrn, drm_intel_bo *bind_bo, int n_src_surf)
     /* brw_debug (pScrn, "after base address modify"); */
 
     BEGIN_BATCH(38);
-    /* Enable VF statistics */
-    OUT_BATCH(BRW_3DSTATE_VF_STATISTICS | 1);
+    OUT_BATCH(MI_NOOP);
 
     /* Pipe control */
     OUT_BATCH(BRW_PIPE_CONTROL |
commit 1872869e6ffcc8e6cab820c508fe5404d7e8ff9c
Author: Keith Packard <keithp at keithp.com>
Date:   Fri May 1 11:46:51 2009 -0700

    Leave allocator running until lower-level CloseScreens are done
    
    The lower level close screen functions will free allocated objects, causing
    a crash if the allocator isn't still available.
    
    Signed-off-by: Keith Packard <keithp at keithp.com>

diff --git a/src/i830_driver.c b/src/i830_driver.c
index 1ff5866..ff7124d 100644
--- a/src/i830_driver.c
+++ b/src/i830_driver.c
@@ -3079,7 +3079,6 @@ I830CloseScreen(int scrnIndex, ScreenPtr pScreen)
 
    xf86_cursors_fini (pScreen);
 
-   i830_allocator_fini(pScrn);
 
    i965_free_video(pScrn);
    free(pI830->offscreenImages);
@@ -3099,7 +3098,9 @@ I830CloseScreen(int scrnIndex, ScreenPtr pScreen)
    pScrn->vtSema = FALSE;
    pI830->closing = FALSE;
    pScreen->CloseScreen = pI830->CloseScreen;
-   return (*pScreen->CloseScreen) (scrnIndex, pScreen);
+   (*pScreen->CloseScreen) (scrnIndex, pScreen);
+   i830_allocator_fini(pScrn);
+   return TRUE;
 }
 
 static ModeStatus
commit 1142353b487c155a31011923fbd08ec67e60f505
Author: Keith Packard <keithp at keithp.com>
Date:   Fri May 1 11:44:13 2009 -0700

    intel_batch_start_atomic: fix size passed to intel_batch_require_space (*4)
    
    intel_batch_start_atomic takes an argument in 32-bit units, and so it must
    multiply that by 4 before passing it to intel_batch_require_space, which
    takes an argument in bytes.
    
    We should figure out what units we want to use and use the same everywhere...
    
    Signed-off-by: Keith Packard <keithp at keithp.com>

diff --git a/src/i830_batchbuffer.h b/src/i830_batchbuffer.h
index 6e0aaa7..0283438 100644
--- a/src/i830_batchbuffer.h
+++ b/src/i830_batchbuffer.h
@@ -57,7 +57,7 @@ intel_batch_start_atomic(ScrnInfoPtr pScrn, unsigned int sz)
     I830Ptr pI830 = I830PTR(pScrn);
 
     assert(!pI830->in_batch_atomic);
-    intel_batch_require_space(pScrn, pI830, sz);
+    intel_batch_require_space(pScrn, pI830, sz * 4);
 
     pI830->in_batch_atomic = TRUE;
     pI830->batch_atomic_limit = pI830->batch_used + sz * 4;
commit 8232177a005127a0001af4b14c3beb766958ef11
Author: Keith Packard <keithp at keithp.com>
Date:   Thu Apr 30 15:30:05 2009 -0700

    Allow cursors to roam past 2048x2048 limit.
    
    There's no reason to clip cursor positions to an artificial limit; the
    hardware cursor limits always mirror the hardware display limits.
    
    Signed-off-by: Keith Packard <keithp at keithp.com>

diff --git a/src/i830_cursor.c b/src/i830_cursor.c
index 33b1bd9..a6aba41 100644
--- a/src/i830_cursor.c
+++ b/src/i830_cursor.c
@@ -147,15 +147,15 @@ i830_crtc_set_cursor_position (xf86CrtcPtr crtc, int x, int y)
 
     temp = 0;
     if (x < 0) {
-	temp |= (CURSOR_POS_SIGN << CURSOR_X_SHIFT);
+	temp |= CURSOR_POS_SIGN << CURSOR_X_SHIFT;
 	x = -x;
     }
     if (y < 0) {
-	temp |= (CURSOR_POS_SIGN << CURSOR_Y_SHIFT);
+	temp |= CURSOR_POS_SIGN << CURSOR_Y_SHIFT;
 	y = -y;
     }
-    temp |= ((x & CURSOR_POS_MASK) << CURSOR_X_SHIFT);
-    temp |= ((y & CURSOR_POS_MASK) << CURSOR_Y_SHIFT);
+    temp |= x << CURSOR_X_SHIFT;
+    temp |= y << CURSOR_Y_SHIFT;
 
     switch (intel_crtc->pipe) {
     case 0:
commit 417f3784b7fae8de3559c7607a2de60661a6a448
Author: Carl Worth <cworth at cworth.org>
Date:   Tue Apr 28 20:42:22 2009 -0700

    Add doltlibtool to DISTCLEANFILES
    
    Otherwise make distcheck fails.

diff --git a/Makefile.am b/Makefile.am
index d91b3d2..10653ff 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -24,4 +24,4 @@ ACLOCAL_AMFLAGS = -I m4
 SUBDIRS = uxa src man
 
 EXTRA_DIST = README AUTHORS NEWS
-DISTCLEANFILES = doltcompile
+DISTCLEANFILES = doltcompile doltlibtool
commit bc9a688476f02233450eb05dfb40acbf337d679b
Author: Carl Worth <cworth at cworth.org>
Date:   Tue Apr 28 20:37:13 2009 -0700

    NEWS: Add notes for 2.7.99.1 snapshot

diff --git a/NEWS b/NEWS
index 0d0cd8a..5787be3 100644
--- a/NEWS
+++ b/NEWS
@@ -1,3 +1,42 @@
+Snapshot 2.7.99.1 (2009-04-28)
+------------------------------
+This is a development snapshot very early in the process toward
+developing 2.8. There have been some big changes to the code, and
+we're anxious to get feedback on these changes as early as possible.
+
+Here is a summary of the biggest changes:
+
+  * Driver now depends on X server 1.6 or later
+
+  * Eliminate XAA and EXA support (in favor of UXA)
+
+  * Eliminate DRI1 support
+
+  * Fixes for running without DRI at all
+
+These code removals represent a deletion of a substantial amount of
+code, (and hopefully piles of bugs), as well as reduce the maintenance
+effort going forward as the number of combinatorial configurations for
+the driver are greatly reduced. This means that users are much more
+likely to be running code that has actually been tested, and it will
+be much easy for developers to replicate bugs that users experience.
+
+One of the things that would be most useful in testing this release is
+to revisit any outstanding bugs that you have previously reported. If
+the buggy behavior is gone, (or the bug is no longer relevant---such
+as a bug that's specific to XAA only), please feel free to indicate so
+in bugzilla or even just close the bug.
+
+If you confirm that the bug is still present, please indicate so in
+the bug report. (I was going to ask that you select a 1.7.99 version,
+but it looks like bugzilla only has versions for products not
+compoenents, while we use a "xorg" product and a "driver/intel"
+component.) We definitely want to make any such confirmed bugs a
+priority, so it would be nice to have a consistent mechanism to search
+for these bugs. Suggestions are welcome on the best approach.
+
+Thanks in advance for any testing or feedback on this snapshot.
+
 Release 2.7.0 (2009-04-15)
 --------------------------
 Compared to the 2.6 series, 2.7.0 has a large number of bug fixes, but
commit 13c730e003e805e19deee0996b2af30f69e54c4d
Author: Zou Nan hai <nanhai.zou at intel.com>
Date:   Wed Apr 1 15:12:55 2009 +0800

     fix
     1.multiple instance
     2.memory leak

diff --git a/src/i965_hwmc.c b/src/i965_hwmc.c
index 7a5e652..68d908d 100644
--- a/src/i965_hwmc.c
+++ b/src/i965_hwmc.c
@@ -148,6 +148,7 @@ static void destroy_context(ScrnInfoPtr pScrn, XvMCContextPtr context)
     I830Ptr pI830 = I830PTR(pScrn);
     private_context = context->driver_priv;
     free_drm_memory(pScrn, &private_context->static_buffer);
+    free_drm_memory(pScrn, &private_context->blocks);
     if (IS_G4X(pI830))
 	free_drm_memory(pScrn, &private_context->slice);
     Xfree(private_context);
diff --git a/src/xvmc/xvmc_vld.c b/src/xvmc/xvmc_vld.c
index 4f95842..204cfb7 100644
--- a/src/xvmc/xvmc_vld.c
+++ b/src/xvmc/xvmc_vld.c
@@ -439,7 +439,7 @@ static void state_base_address()
     OUT_BATCH(0 | BASE_ADDRESS_MODIFY);
     OUT_BATCH(0 | BASE_ADDRESS_MODIFY);
     OUT_BATCH(0 | BASE_ADDRESS_MODIFY);
-    OUT_BATCH((0xFFFFF<<12) | BASE_ADDRESS_MODIFY);
+    OUT_BATCH(0 | BASE_ADDRESS_MODIFY);
     ADVANCE_BATCH();
 }
 
commit defa6971c6b639ab72d9d4c85c4607d5f852b2b0
Author: Zou Nan hai <nanhai.zou at intel.com>
Date:   Thu Mar 26 15:24:29 2009 +0800

        enable UV half pixel

diff --git a/src/xvmc/intel_batchbuffer.c b/src/xvmc/intel_batchbuffer.c
index 224d0de..6d4b496 100644
--- a/src/xvmc/intel_batchbuffer.c
+++ b/src/xvmc/intel_batchbuffer.c
@@ -162,6 +162,7 @@ static void intelRefillBatchLocked(Bool allow_unlock)
    dword[0] = MI_FLUSH | FLUSH_WRITE_DIRTY_STATE | FLUSH_RENDER_CACHE | FLUSH_MAP_CACHE;
    dword[1] = 0;
    intelCmdIoctl((char *)&dword[0], sizeof(dword));
+
    xvmc_driver->alloc.irq_emitted = intelEmitIrqLocked();
 
    if (xvmc_driver->alloc.irq_emitted) {
diff --git a/src/xvmc/shader/vld/field_backward.g4b b/src/xvmc/shader/vld/field_backward.g4b
index c1283e4..5d46829 100644
--- a/src/xvmc/shader/vld/field_backward.g4b
+++ b/src/xvmc/shader/vld/field_backward.g4b
@@ -267,6 +267,76 @@
    { 0x00200040, 0x2e603421, 0x004503e0, 0x004503ee },
    { 0x02000005, 0x20002d3c, 0x00210a42, 0x20002000 },
    { 0x00010040, 0x2e640c21, 0x00210e64, 0x00000001 },
+   { 0x01000005, 0x20003dbc, 0x00210a54, 0x00010001 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x00000032 },
+   { 0x01000005, 0x20003dbc, 0x00210a56, 0x00010001 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x00000024 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0007000f },
+   { 0x00800031, 0x25001d29, 0x008d0e60, 0x0414a008 },
+   { 0x00800031, 0x25a01d29, 0x008d0e60, 0x0414a009 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0001000f },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 },
+   { 0x00800031, 0x25801d29, 0x008d0e60, 0x0411a008 },
+   { 0x00800031, 0x26201d29, 0x008d0e60, 0x0411a009 },
+   { 0x00800040, 0x24004629, 0x00ad0500, 0x00ad0520 },
+   { 0x00800040, 0x24204629, 0x00ad0520, 0x00ad0540 },
+   { 0x00800040, 0x24404629, 0x00ad0540, 0x00ad0560 },
+   { 0x00800040, 0x24604629, 0x00ad0560, 0x00ad0580 },
+   { 0x00800040, 0x24004529, 0x00ad0400, 0x00ad0501 },
+   { 0x00800040, 0x24204529, 0x00ad0420, 0x00ad0521 },
+   { 0x00800040, 0x24404529, 0x00ad0440, 0x00ad0541 },
+   { 0x00800040, 0x24604529, 0x00ad0460, 0x00ad0561 },
+   { 0x00800040, 0x24004529, 0x00ad0400, 0x00ad0521 },
+   { 0x00800040, 0x24204529, 0x00ad0420, 0x00ad0541 },
+   { 0x00800040, 0x24404529, 0x00ad0440, 0x00ad0561 },
+   { 0x00800040, 0x24604529, 0x00ad0460, 0x00ad0581 },
+   { 0x00800040, 0x24804629, 0x00ad05a0, 0x00ad05c0 },
+   { 0x00800040, 0x24a04629, 0x00ad05c0, 0x00ad05e0 },
+   { 0x00800040, 0x24c04629, 0x00ad05e0, 0x00ad0600 },
+   { 0x00800040, 0x24e04629, 0x00ad0600, 0x00ad0620 },
+   { 0x00800040, 0x24804529, 0x00ad0480, 0x00ad05a1 },
+   { 0x00800040, 0x24a04529, 0x00ad04a0, 0x00ad05c1 },
+   { 0x00800040, 0x24c04529, 0x00ad04c0, 0x00ad05e1 },
+   { 0x00800040, 0x24e04529, 0x00ad04e0, 0x00ad0601 },
+   { 0x00800040, 0x24804529, 0x00ad0480, 0x00ad05c1 },
+   { 0x00800040, 0x24a04529, 0x00ad04a0, 0x00ad05e1 },
+   { 0x00800040, 0x24c04529, 0x00ad04c0, 0x00ad0601 },
+   { 0x00800040, 0x24e04529, 0x00ad04e0, 0x00ad0621 },
+   { 0x00a02008, 0x24002d29, 0x00b10400, 0x00020002 },
+   { 0x00a02008, 0x24402d29, 0x00b10440, 0x00020002 },
+   { 0x00a02008, 0x24802d29, 0x00b10480, 0x00020002 },
+   { 0x00a02008, 0x24c02d29, 0x00b104c0, 0x00020002 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000029 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0007000f },
+   { 0x00800031, 0x25001d29, 0x008d0e60, 0x0414a008 },
+   { 0x00800031, 0x25801d29, 0x008d0e60, 0x0414a009 },
+   { 0x00800042, 0x24004629, 0x00ad0500, 0x00ad0501 },
+   { 0x00800042, 0x24204629, 0x00ad0520, 0x00ad0521 },
+   { 0x00800042, 0x24404629, 0x00ad0540, 0x00ad0541 },
+   { 0x00800042, 0x24604629, 0x00ad0560, 0x00ad0561 },
+   { 0x00800042, 0x24804629, 0x00ad0580, 0x00ad0581 },
+   { 0x00800042, 0x24a04629, 0x00ad05a0, 0x00ad05a1 },
+   { 0x00800042, 0x24c04629, 0x00ad05c0, 0x00ad05c1 },
+   { 0x00800042, 0x24e04629, 0x00ad05e0, 0x00ad05e1 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x0000001d },
+   { 0x01000005, 0x20003dbc, 0x00210a56, 0x00010001 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x00000010 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0007000f },
+   { 0x00800031, 0x25001d29, 0x008d0e60, 0x0414a008 },
+   { 0x00800031, 0x25a01d29, 0x008d0e60, 0x0414a009 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0000000f },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 },
+   { 0x00800031, 0x25801d29, 0x008d0e60, 0x0411a008 },
+   { 0x00800031, 0x26201d29, 0x008d0e60, 0x0411a009 },
+   { 0x00800042, 0x24004629, 0x00ad0500, 0x00ad0520 },
+   { 0x00800042, 0x24204629, 0x00ad0520, 0x00ad0540 },
+   { 0x00800042, 0x24404629, 0x00ad0540, 0x00ad0560 },
+   { 0x00800042, 0x24604629, 0x00ad0560, 0x00ad0580 },
+   { 0x00800042, 0x24804629, 0x00ad05a0, 0x00ad05c0 },
+   { 0x00800042, 0x24a04629, 0x00ad05c0, 0x00ad05e0 },
+   { 0x00800042, 0x24c04629, 0x00ad05e0, 0x00ad0600 },
+   { 0x00800042, 0x24e04629, 0x00ad0600, 0x00ad0620 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x0000000b },
    { 0x00000001, 0x2e680061, 0x00000000, 0x0007000f },
    { 0x00800031, 0x25001d29, 0x00ad0e60, 0x0414a008 },
    { 0x00800031, 0x25a01d29, 0x00ad0e60, 0x0414a009 },
@@ -292,6 +362,76 @@
    { 0x00200040, 0x2e603421, 0x004503e0, 0x004503ee },
    { 0x02000005, 0x20002d3c, 0x00210a42, 0x80008000 },
    { 0x00010040, 0x2e640c21, 0x00210e64, 0x00000001 },
+   { 0x01000005, 0x20003dbc, 0x00210a5c, 0x00010001 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x00000032 },
+   { 0x01000005, 0x20003dbc, 0x00210a5e, 0x00010001 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x00000024 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0007000f },
+   { 0x00800031, 0x25001d29, 0x008d0e60, 0x0414a008 },
+   { 0x00800031, 0x25a01d29, 0x008d0e60, 0x0414a009 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0001000f },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 },
+   { 0x00800031, 0x25801d29, 0x008d0e60, 0x0411a008 },
+   { 0x00800031, 0x26201d29, 0x008d0e60, 0x0411a009 },
+   { 0x00800040, 0x24004629, 0x00ad0500, 0x00ad0520 },
+   { 0x00800040, 0x24204629, 0x00ad0520, 0x00ad0540 },
+   { 0x00800040, 0x24404629, 0x00ad0540, 0x00ad0560 },
+   { 0x00800040, 0x24604629, 0x00ad0560, 0x00ad0580 },
+   { 0x00800040, 0x24004529, 0x00ad0400, 0x00ad0501 },
+   { 0x00800040, 0x24204529, 0x00ad0420, 0x00ad0521 },
+   { 0x00800040, 0x24404529, 0x00ad0440, 0x00ad0541 },
+   { 0x00800040, 0x24604529, 0x00ad0460, 0x00ad0561 },
+   { 0x00800040, 0x24004529, 0x00ad0400, 0x00ad0521 },
+   { 0x00800040, 0x24204529, 0x00ad0420, 0x00ad0541 },
+   { 0x00800040, 0x24404529, 0x00ad0440, 0x00ad0561 },
+   { 0x00800040, 0x24604529, 0x00ad0460, 0x00ad0581 },
+   { 0x00800040, 0x24804629, 0x00ad05a0, 0x00ad05c0 },
+   { 0x00800040, 0x24a04629, 0x00ad05c0, 0x00ad05e0 },
+   { 0x00800040, 0x24c04629, 0x00ad05e0, 0x00ad0600 },
+   { 0x00800040, 0x24e04629, 0x00ad0600, 0x00ad0620 },
+   { 0x00800040, 0x24804529, 0x00ad0480, 0x00ad05a1 },
+   { 0x00800040, 0x24a04529, 0x00ad04a0, 0x00ad05c1 },
+   { 0x00800040, 0x24c04529, 0x00ad04c0, 0x00ad05e1 },
+   { 0x00800040, 0x24e04529, 0x00ad04e0, 0x00ad0601 },
+   { 0x00800040, 0x24804529, 0x00ad0480, 0x00ad05c1 },
+   { 0x00800040, 0x24a04529, 0x00ad04a0, 0x00ad05e1 },
+   { 0x00800040, 0x24c04529, 0x00ad04c0, 0x00ad0601 },
+   { 0x00800040, 0x24e04529, 0x00ad04e0, 0x00ad0621 },
+   { 0x00a02008, 0x24002d29, 0x00b10400, 0x00020002 },
+   { 0x00a02008, 0x24402d29, 0x00b10440, 0x00020002 },
+   { 0x00a02008, 0x24802d29, 0x00b10480, 0x00020002 },
+   { 0x00a02008, 0x24c02d29, 0x00b104c0, 0x00020002 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000029 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0007000f },
+   { 0x00800031, 0x25001d29, 0x008d0e60, 0x0414a008 },
+   { 0x00800031, 0x25801d29, 0x008d0e60, 0x0414a009 },
+   { 0x00800042, 0x24004629, 0x00ad0500, 0x00ad0501 },
+   { 0x00800042, 0x24204629, 0x00ad0520, 0x00ad0521 },
+   { 0x00800042, 0x24404629, 0x00ad0540, 0x00ad0541 },
+   { 0x00800042, 0x24604629, 0x00ad0560, 0x00ad0561 },
+   { 0x00800042, 0x24804629, 0x00ad0580, 0x00ad0581 },
+   { 0x00800042, 0x24a04629, 0x00ad05a0, 0x00ad05a1 },
+   { 0x00800042, 0x24c04629, 0x00ad05c0, 0x00ad05c1 },
+   { 0x00800042, 0x24e04629, 0x00ad05e0, 0x00ad05e1 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x0000001d },
+   { 0x01000005, 0x20003dbc, 0x00210a5e, 0x00010001 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x00000010 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0007000f },
+   { 0x00800031, 0x25001d29, 0x008d0e60, 0x0414a008 },
+   { 0x00800031, 0x25a01d29, 0x008d0e60, 0x0414a009 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0000000f },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 },
+   { 0x00800031, 0x25801d29, 0x008d0e60, 0x0411a008 },
+   { 0x00800031, 0x26201d29, 0x008d0e60, 0x0411a009 },
+   { 0x00800042, 0x24004629, 0x00ad0500, 0x00ad0520 },
+   { 0x00800042, 0x24204629, 0x00ad0520, 0x00ad0540 },
+   { 0x00800042, 0x24404629, 0x00ad0540, 0x00ad0560 },
+   { 0x00800042, 0x24604629, 0x00ad0560, 0x00ad0580 },
+   { 0x00800042, 0x24804629, 0x00ad05a0, 0x00ad05c0 },
+   { 0x00800042, 0x24a04629, 0x00ad05c0, 0x00ad05e0 },
+   { 0x00800042, 0x24c04629, 0x00ad05e0, 0x00ad0600 },
+   { 0x00800042, 0x24e04629, 0x00ad0600, 0x00ad0620 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x0000000b },
    { 0x00000001, 0x2e680061, 0x00000000, 0x0007000f },
    { 0x00800031, 0x25001d29, 0x00ad0e60, 0x0414a008 },
    { 0x00800031, 0x25a01d29, 0x00ad0e60, 0x0414a009 },
diff --git a/src/xvmc/shader/vld/field_f_b.g4b b/src/xvmc/shader/vld/field_f_b.g4b
index 437c664..9bd272e 100644
--- a/src/xvmc/shader/vld/field_f_b.g4b
+++ b/src/xvmc/shader/vld/field_f_b.g4b
@@ -268,6 +268,76 @@
    { 0x00000005, 0x2e640c21, 0x00210e64, 0xfffffffe },
    { 0x02000005, 0x20002d3c, 0x00210a42, 0x10001000 },
    { 0x00010040, 0x2e640c21, 0x00210e64, 0x00000001 },
+   { 0x01000005, 0x20003dbc, 0x00210a50, 0x00010001 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x00000032 },
+   { 0x01000005, 0x20003dbc, 0x00210a52, 0x00010001 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x00000024 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0007000f },
+   { 0x00800031, 0x25001d29, 0x008d0e60, 0x0414a005 },
+   { 0x00800031, 0x25a01d29, 0x008d0e60, 0x0414a006 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0001000f },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 },
+   { 0x00800031, 0x25801d29, 0x008d0e60, 0x0411a005 },
+   { 0x00800031, 0x26201d29, 0x008d0e60, 0x0411a006 },
+   { 0x00800040, 0x24004629, 0x00ad0500, 0x00ad0520 },
+   { 0x00800040, 0x24204629, 0x00ad0520, 0x00ad0540 },
+   { 0x00800040, 0x24404629, 0x00ad0540, 0x00ad0560 },
+   { 0x00800040, 0x24604629, 0x00ad0560, 0x00ad0580 },
+   { 0x00800040, 0x24004529, 0x00ad0400, 0x00ad0501 },
+   { 0x00800040, 0x24204529, 0x00ad0420, 0x00ad0521 },
+   { 0x00800040, 0x24404529, 0x00ad0440, 0x00ad0541 },
+   { 0x00800040, 0x24604529, 0x00ad0460, 0x00ad0561 },
+   { 0x00800040, 0x24004529, 0x00ad0400, 0x00ad0521 },
+   { 0x00800040, 0x24204529, 0x00ad0420, 0x00ad0541 },
+   { 0x00800040, 0x24404529, 0x00ad0440, 0x00ad0561 },
+   { 0x00800040, 0x24604529, 0x00ad0460, 0x00ad0581 },
+   { 0x00800040, 0x24804629, 0x00ad05a0, 0x00ad05c0 },
+   { 0x00800040, 0x24a04629, 0x00ad05c0, 0x00ad05e0 },
+   { 0x00800040, 0x24c04629, 0x00ad05e0, 0x00ad0600 },
+   { 0x00800040, 0x24e04629, 0x00ad0600, 0x00ad0620 },
+   { 0x00800040, 0x24804529, 0x00ad0480, 0x00ad05a1 },
+   { 0x00800040, 0x24a04529, 0x00ad04a0, 0x00ad05c1 },
+   { 0x00800040, 0x24c04529, 0x00ad04c0, 0x00ad05e1 },
+   { 0x00800040, 0x24e04529, 0x00ad04e0, 0x00ad0601 },
+   { 0x00800040, 0x24804529, 0x00ad0480, 0x00ad05c1 },
+   { 0x00800040, 0x24a04529, 0x00ad04a0, 0x00ad05e1 },
+   { 0x00800040, 0x24c04529, 0x00ad04c0, 0x00ad0601 },
+   { 0x00800040, 0x24e04529, 0x00ad04e0, 0x00ad0621 },
+   { 0x00a02008, 0x24002d29, 0x00b10400, 0x00020002 },
+   { 0x00a02008, 0x24402d29, 0x00b10440, 0x00020002 },
+   { 0x00a02008, 0x24802d29, 0x00b10480, 0x00020002 },
+   { 0x00a02008, 0x24c02d29, 0x00b104c0, 0x00020002 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000029 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0007000f },
+   { 0x00800031, 0x25001d29, 0x008d0e60, 0x0414a005 },
+   { 0x00800031, 0x25801d29, 0x008d0e60, 0x0414a006 },
+   { 0x00800042, 0x24004629, 0x00ad0500, 0x00ad0501 },
+   { 0x00800042, 0x24204629, 0x00ad0520, 0x00ad0521 },
+   { 0x00800042, 0x24404629, 0x00ad0540, 0x00ad0541 },
+   { 0x00800042, 0x24604629, 0x00ad0560, 0x00ad0561 },
+   { 0x00800042, 0x24804629, 0x00ad0580, 0x00ad0581 },
+   { 0x00800042, 0x24a04629, 0x00ad05a0, 0x00ad05a1 },
+   { 0x00800042, 0x24c04629, 0x00ad05c0, 0x00ad05c1 },
+   { 0x00800042, 0x24e04629, 0x00ad05e0, 0x00ad05e1 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x0000001d },
+   { 0x01000005, 0x20003dbc, 0x00210a52, 0x00010001 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x00000010 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0007000f },
+   { 0x00800031, 0x25001d29, 0x008d0e60, 0x0414a005 },
+   { 0x00800031, 0x25a01d29, 0x008d0e60, 0x0414a006 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0000000f },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 },
+   { 0x00800031, 0x25801d29, 0x008d0e60, 0x0411a005 },
+   { 0x00800031, 0x26201d29, 0x008d0e60, 0x0411a006 },
+   { 0x00800042, 0x24004629, 0x00ad0500, 0x00ad0520 },
+   { 0x00800042, 0x24204629, 0x00ad0520, 0x00ad0540 },
+   { 0x00800042, 0x24404629, 0x00ad0540, 0x00ad0560 },
+   { 0x00800042, 0x24604629, 0x00ad0560, 0x00ad0580 },
+   { 0x00800042, 0x24804629, 0x00ad05a0, 0x00ad05c0 },
+   { 0x00800042, 0x24a04629, 0x00ad05c0, 0x00ad05e0 },
+   { 0x00800042, 0x24c04629, 0x00ad05e0, 0x00ad0600 },
+   { 0x00800042, 0x24e04629, 0x00ad0600, 0x00ad0620 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x0000000b },
    { 0x00000001, 0x2e680061, 0x00000000, 0x0007000f },
    { 0x00800031, 0x25001d29, 0x00ad0e60, 0x0414a005 },
    { 0x00800031, 0x25a01d29, 0x00ad0e60, 0x0414a006 },
@@ -294,6 +364,76 @@
    { 0x00000005, 0x2e640c21, 0x00210e64, 0xfffffffe },
    { 0x02000005, 0x20002d3c, 0x00210a42, 0x40004000 },
    { 0x00010040, 0x2e640c21, 0x00210e64, 0x00000001 },
+   { 0x01000005, 0x20003dbc, 0x00210a58, 0x00010001 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x00000032 },
+   { 0x01000005, 0x20003dbc, 0x00210a5a, 0x00010001 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x00000024 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0007000f },
+   { 0x00800031, 0x25001d29, 0x008d0e60, 0x0414a005 },
+   { 0x00800031, 0x25a01d29, 0x008d0e60, 0x0414a006 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0001000f },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 },
+   { 0x00800031, 0x25801d29, 0x008d0e60, 0x0411a005 },
+   { 0x00800031, 0x26201d29, 0x008d0e60, 0x0411a006 },
+   { 0x00800040, 0x24004629, 0x00ad0500, 0x00ad0520 },
+   { 0x00800040, 0x24204629, 0x00ad0520, 0x00ad0540 },
+   { 0x00800040, 0x24404629, 0x00ad0540, 0x00ad0560 },
+   { 0x00800040, 0x24604629, 0x00ad0560, 0x00ad0580 },
+   { 0x00800040, 0x24004529, 0x00ad0400, 0x00ad0501 },
+   { 0x00800040, 0x24204529, 0x00ad0420, 0x00ad0521 },
+   { 0x00800040, 0x24404529, 0x00ad0440, 0x00ad0541 },
+   { 0x00800040, 0x24604529, 0x00ad0460, 0x00ad0561 },
+   { 0x00800040, 0x24004529, 0x00ad0400, 0x00ad0521 },
+   { 0x00800040, 0x24204529, 0x00ad0420, 0x00ad0541 },
+   { 0x00800040, 0x24404529, 0x00ad0440, 0x00ad0561 },
+   { 0x00800040, 0x24604529, 0x00ad0460, 0x00ad0581 },
+   { 0x00800040, 0x24804629, 0x00ad05a0, 0x00ad05c0 },
+   { 0x00800040, 0x24a04629, 0x00ad05c0, 0x00ad05e0 },
+   { 0x00800040, 0x24c04629, 0x00ad05e0, 0x00ad0600 },
+   { 0x00800040, 0x24e04629, 0x00ad0600, 0x00ad0620 },
+   { 0x00800040, 0x24804529, 0x00ad0480, 0x00ad05a1 },
+   { 0x00800040, 0x24a04529, 0x00ad04a0, 0x00ad05c1 },
+   { 0x00800040, 0x24c04529, 0x00ad04c0, 0x00ad05e1 },
+   { 0x00800040, 0x24e04529, 0x00ad04e0, 0x00ad0601 },
+   { 0x00800040, 0x24804529, 0x00ad0480, 0x00ad05c1 },
+   { 0x00800040, 0x24a04529, 0x00ad04a0, 0x00ad05e1 },
+   { 0x00800040, 0x24c04529, 0x00ad04c0, 0x00ad0601 },
+   { 0x00800040, 0x24e04529, 0x00ad04e0, 0x00ad0621 },
+   { 0x00a02008, 0x24002d29, 0x00b10400, 0x00020002 },
+   { 0x00a02008, 0x24402d29, 0x00b10440, 0x00020002 },
+   { 0x00a02008, 0x24802d29, 0x00b10480, 0x00020002 },
+   { 0x00a02008, 0x24c02d29, 0x00b104c0, 0x00020002 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000029 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0007000f },
+   { 0x00800031, 0x25001d29, 0x008d0e60, 0x0414a005 },
+   { 0x00800031, 0x25801d29, 0x008d0e60, 0x0414a006 },
+   { 0x00800042, 0x24004629, 0x00ad0500, 0x00ad0501 },
+   { 0x00800042, 0x24204629, 0x00ad0520, 0x00ad0521 },
+   { 0x00800042, 0x24404629, 0x00ad0540, 0x00ad0541 },
+   { 0x00800042, 0x24604629, 0x00ad0560, 0x00ad0561 },
+   { 0x00800042, 0x24804629, 0x00ad0580, 0x00ad0581 },
+   { 0x00800042, 0x24a04629, 0x00ad05a0, 0x00ad05a1 },
+   { 0x00800042, 0x24c04629, 0x00ad05c0, 0x00ad05c1 },
+   { 0x00800042, 0x24e04629, 0x00ad05e0, 0x00ad05e1 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x0000001d },
+   { 0x01000005, 0x20003dbc, 0x00210a5a, 0x00010001 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x00000010 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0007000f },
+   { 0x00800031, 0x25001d29, 0x008d0e60, 0x0414a005 },
+   { 0x00800031, 0x25a01d29, 0x008d0e60, 0x0414a006 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0000000f },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 },
+   { 0x00800031, 0x25801d29, 0x008d0e60, 0x0411a005 },
+   { 0x00800031, 0x26201d29, 0x008d0e60, 0x0411a006 },
+   { 0x00800042, 0x24004629, 0x00ad0500, 0x00ad0520 },
+   { 0x00800042, 0x24204629, 0x00ad0520, 0x00ad0540 },
+   { 0x00800042, 0x24404629, 0x00ad0540, 0x00ad0560 },
+   { 0x00800042, 0x24604629, 0x00ad0560, 0x00ad0580 },
+   { 0x00800042, 0x24804629, 0x00ad05a0, 0x00ad05c0 },
+   { 0x00800042, 0x24a04629, 0x00ad05c0, 0x00ad05e0 },
+   { 0x00800042, 0x24c04629, 0x00ad05e0, 0x00ad0600 },
+   { 0x00800042, 0x24e04629, 0x00ad0600, 0x00ad0620 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x0000000b },
    { 0x00000001, 0x2e680061, 0x00000000, 0x0007000f },
    { 0x00800031, 0x25001d29, 0x00ad0e60, 0x0414a005 },
    { 0x00800031, 0x25a01d29, 0x00ad0e60, 0x0414a006 },
@@ -580,6 +720,76 @@
    { 0x00000005, 0x2e640c21, 0x00210e64, 0xfffffffe },
    { 0x02000005, 0x20002d3c, 0x00210a42, 0x20002000 },
    { 0x00010040, 0x2e640c21, 0x00210e64, 0x00000001 },
+   { 0x01000005, 0x20003dbc, 0x00210a54, 0x00010001 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x00000032 },
+   { 0x01000005, 0x20003dbc, 0x00210a56, 0x00010001 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x00000024 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0007000f },
+   { 0x00800031, 0x25001d29, 0x008d0e60, 0x0414a008 },
+   { 0x00800031, 0x25a01d29, 0x008d0e60, 0x0414a009 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0001000f },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 },
+   { 0x00800031, 0x25801d29, 0x008d0e60, 0x0411a008 },
+   { 0x00800031, 0x26201d29, 0x008d0e60, 0x0411a009 },
+   { 0x00800040, 0x24004629, 0x00ad0500, 0x00ad0520 },
+   { 0x00800040, 0x24204629, 0x00ad0520, 0x00ad0540 },
+   { 0x00800040, 0x24404629, 0x00ad0540, 0x00ad0560 },
+   { 0x00800040, 0x24604629, 0x00ad0560, 0x00ad0580 },
+   { 0x00800040, 0x24004529, 0x00ad0400, 0x00ad0501 },
+   { 0x00800040, 0x24204529, 0x00ad0420, 0x00ad0521 },
+   { 0x00800040, 0x24404529, 0x00ad0440, 0x00ad0541 },
+   { 0x00800040, 0x24604529, 0x00ad0460, 0x00ad0561 },
+   { 0x00800040, 0x24004529, 0x00ad0400, 0x00ad0521 },
+   { 0x00800040, 0x24204529, 0x00ad0420, 0x00ad0541 },
+   { 0x00800040, 0x24404529, 0x00ad0440, 0x00ad0561 },
+   { 0x00800040, 0x24604529, 0x00ad0460, 0x00ad0581 },
+   { 0x00800040, 0x24804629, 0x00ad05a0, 0x00ad05c0 },
+   { 0x00800040, 0x24a04629, 0x00ad05c0, 0x00ad05e0 },
+   { 0x00800040, 0x24c04629, 0x00ad05e0, 0x00ad0600 },
+   { 0x00800040, 0x24e04629, 0x00ad0600, 0x00ad0620 },
+   { 0x00800040, 0x24804529, 0x00ad0480, 0x00ad05a1 },
+   { 0x00800040, 0x24a04529, 0x00ad04a0, 0x00ad05c1 },
+   { 0x00800040, 0x24c04529, 0x00ad04c0, 0x00ad05e1 },
+   { 0x00800040, 0x24e04529, 0x00ad04e0, 0x00ad0601 },
+   { 0x00800040, 0x24804529, 0x00ad0480, 0x00ad05c1 },
+   { 0x00800040, 0x24a04529, 0x00ad04a0, 0x00ad05e1 },
+   { 0x00800040, 0x24c04529, 0x00ad04c0, 0x00ad0601 },
+   { 0x00800040, 0x24e04529, 0x00ad04e0, 0x00ad0621 },
+   { 0x00a02008, 0x24002d29, 0x00b10400, 0x00020002 },
+   { 0x00a02008, 0x24402d29, 0x00b10440, 0x00020002 },
+   { 0x00a02008, 0x24802d29, 0x00b10480, 0x00020002 },
+   { 0x00a02008, 0x24c02d29, 0x00b104c0, 0x00020002 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000029 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0007000f },
+   { 0x00800031, 0x25001d29, 0x008d0e60, 0x0414a008 },
+   { 0x00800031, 0x25801d29, 0x008d0e60, 0x0414a009 },
+   { 0x00800042, 0x24004629, 0x00ad0500, 0x00ad0501 },
+   { 0x00800042, 0x24204629, 0x00ad0520, 0x00ad0521 },
+   { 0x00800042, 0x24404629, 0x00ad0540, 0x00ad0541 },
+   { 0x00800042, 0x24604629, 0x00ad0560, 0x00ad0561 },
+   { 0x00800042, 0x24804629, 0x00ad0580, 0x00ad0581 },
+   { 0x00800042, 0x24a04629, 0x00ad05a0, 0x00ad05a1 },
+   { 0x00800042, 0x24c04629, 0x00ad05c0, 0x00ad05c1 },
+   { 0x00800042, 0x24e04629, 0x00ad05e0, 0x00ad05e1 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x0000001d },
+   { 0x01000005, 0x20003dbc, 0x00210a56, 0x00010001 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x00000010 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0007000f },
+   { 0x00800031, 0x25001d29, 0x008d0e60, 0x0414a008 },
+   { 0x00800031, 0x25a01d29, 0x008d0e60, 0x0414a009 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0000000f },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 },
+   { 0x00800031, 0x25801d29, 0x008d0e60, 0x0411a008 },
+   { 0x00800031, 0x26201d29, 0x008d0e60, 0x0411a009 },
+   { 0x00800042, 0x24004629, 0x00ad0500, 0x00ad0520 },
+   { 0x00800042, 0x24204629, 0x00ad0520, 0x00ad0540 },
+   { 0x00800042, 0x24404629, 0x00ad0540, 0x00ad0560 },
+   { 0x00800042, 0x24604629, 0x00ad0560, 0x00ad0580 },
+   { 0x00800042, 0x24804629, 0x00ad05a0, 0x00ad05c0 },
+   { 0x00800042, 0x24a04629, 0x00ad05c0, 0x00ad05e0 },
+   { 0x00800042, 0x24c04629, 0x00ad05e0, 0x00ad0600 },
+   { 0x00800042, 0x24e04629, 0x00ad0600, 0x00ad0620 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x0000000b },
    { 0x00000001, 0x2e680061, 0x00000000, 0x0007000f },
    { 0x00800031, 0x25001d29, 0x00ad0e60, 0x0414a008 },
    { 0x00800031, 0x25a01d29, 0x00ad0e60, 0x0414a009 },
@@ -606,6 +816,76 @@
    { 0x00000005, 0x2e640c21, 0x00210e64, 0xfffffffe },
    { 0x02000005, 0x20002d3c, 0x00210a42, 0x80008000 },
    { 0x00010040, 0x2e640c21, 0x00210e64, 0x00000001 },
+   { 0x01000005, 0x20003dbc, 0x00210a5c, 0x00010001 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x00000032 },
+   { 0x01000005, 0x20003dbc, 0x00210a5e, 0x00010001 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x00000024 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0007000f },
+   { 0x00800031, 0x25001d29, 0x008d0e60, 0x0414a008 },
+   { 0x00800031, 0x25a01d29, 0x008d0e60, 0x0414a009 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0001000f },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 },
+   { 0x00800031, 0x25801d29, 0x008d0e60, 0x0411a008 },
+   { 0x00800031, 0x26201d29, 0x008d0e60, 0x0411a009 },
+   { 0x00800040, 0x24004629, 0x00ad0500, 0x00ad0520 },
+   { 0x00800040, 0x24204629, 0x00ad0520, 0x00ad0540 },
+   { 0x00800040, 0x24404629, 0x00ad0540, 0x00ad0560 },
+   { 0x00800040, 0x24604629, 0x00ad0560, 0x00ad0580 },
+   { 0x00800040, 0x24004529, 0x00ad0400, 0x00ad0501 },
+   { 0x00800040, 0x24204529, 0x00ad0420, 0x00ad0521 },
+   { 0x00800040, 0x24404529, 0x00ad0440, 0x00ad0541 },
+   { 0x00800040, 0x24604529, 0x00ad0460, 0x00ad0561 },
+   { 0x00800040, 0x24004529, 0x00ad0400, 0x00ad0521 },
+   { 0x00800040, 0x24204529, 0x00ad0420, 0x00ad0541 },
+   { 0x00800040, 0x24404529, 0x00ad0440, 0x00ad0561 },
+   { 0x00800040, 0x24604529, 0x00ad0460, 0x00ad0581 },
+   { 0x00800040, 0x24804629, 0x00ad05a0, 0x00ad05c0 },
+   { 0x00800040, 0x24a04629, 0x00ad05c0, 0x00ad05e0 },
+   { 0x00800040, 0x24c04629, 0x00ad05e0, 0x00ad0600 },
+   { 0x00800040, 0x24e04629, 0x00ad0600, 0x00ad0620 },
+   { 0x00800040, 0x24804529, 0x00ad0480, 0x00ad05a1 },
+   { 0x00800040, 0x24a04529, 0x00ad04a0, 0x00ad05c1 },
+   { 0x00800040, 0x24c04529, 0x00ad04c0, 0x00ad05e1 },
+   { 0x00800040, 0x24e04529, 0x00ad04e0, 0x00ad0601 },
+   { 0x00800040, 0x24804529, 0x00ad0480, 0x00ad05c1 },
+   { 0x00800040, 0x24a04529, 0x00ad04a0, 0x00ad05e1 },
+   { 0x00800040, 0x24c04529, 0x00ad04c0, 0x00ad0601 },
+   { 0x00800040, 0x24e04529, 0x00ad04e0, 0x00ad0621 },
+   { 0x00a02008, 0x24002d29, 0x00b10400, 0x00020002 },
+   { 0x00a02008, 0x24402d29, 0x00b10440, 0x00020002 },
+   { 0x00a02008, 0x24802d29, 0x00b10480, 0x00020002 },
+   { 0x00a02008, 0x24c02d29, 0x00b104c0, 0x00020002 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000029 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0007000f },
+   { 0x00800031, 0x25001d29, 0x008d0e60, 0x0414a008 },
+   { 0x00800031, 0x25801d29, 0x008d0e60, 0x0414a009 },
+   { 0x00800042, 0x24004629, 0x00ad0500, 0x00ad0501 },
+   { 0x00800042, 0x24204629, 0x00ad0520, 0x00ad0521 },
+   { 0x00800042, 0x24404629, 0x00ad0540, 0x00ad0541 },
+   { 0x00800042, 0x24604629, 0x00ad0560, 0x00ad0561 },
+   { 0x00800042, 0x24804629, 0x00ad0580, 0x00ad0581 },
+   { 0x00800042, 0x24a04629, 0x00ad05a0, 0x00ad05a1 },
+   { 0x00800042, 0x24c04629, 0x00ad05c0, 0x00ad05c1 },
+   { 0x00800042, 0x24e04629, 0x00ad05e0, 0x00ad05e1 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x0000001d },
+   { 0x01000005, 0x20003dbc, 0x00210a5e, 0x00010001 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x00000010 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0007000f },
+   { 0x00800031, 0x25001d29, 0x008d0e60, 0x0414a008 },
+   { 0x00800031, 0x25a01d29, 0x008d0e60, 0x0414a009 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0000000f },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 },
+   { 0x00800031, 0x25801d29, 0x008d0e60, 0x0411a008 },
+   { 0x00800031, 0x26201d29, 0x008d0e60, 0x0411a009 },
+   { 0x00800042, 0x24004629, 0x00ad0500, 0x00ad0520 },
+   { 0x00800042, 0x24204629, 0x00ad0520, 0x00ad0540 },
+   { 0x00800042, 0x24404629, 0x00ad0540, 0x00ad0560 },
+   { 0x00800042, 0x24604629, 0x00ad0560, 0x00ad0580 },
+   { 0x00800042, 0x24804629, 0x00ad05a0, 0x00ad05c0 },
+   { 0x00800042, 0x24a04629, 0x00ad05c0, 0x00ad05e0 },
+   { 0x00800042, 0x24c04629, 0x00ad05e0, 0x00ad0600 },
+   { 0x00800042, 0x24e04629, 0x00ad0600, 0x00ad0620 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x0000000b },
    { 0x00000001, 0x2e680061, 0x00000000, 0x0007000f },
    { 0x00800031, 0x25001d29, 0x00ad0e60, 0x0414a008 },
    { 0x00800031, 0x25a01d29, 0x00ad0e60, 0x0414a009 },
diff --git a/src/xvmc/shader/vld/field_forward.g4b b/src/xvmc/shader/vld/field_forward.g4b
index 343643c..6c02221 100644
--- a/src/xvmc/shader/vld/field_forward.g4b
+++ b/src/xvmc/shader/vld/field_forward.g4b
@@ -268,6 +268,76 @@
    { 0x00000005, 0x2e640c21, 0x00210e64, 0xfffffffe },
    { 0x02000005, 0x20002d3c, 0x00210a42, 0x10001000 },
    { 0x00010040, 0x2e640c21, 0x00210e64, 0x00000001 },
+   { 0x01000005, 0x20003dbc, 0x00210a50, 0x00010001 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x00000032 },
+   { 0x01000005, 0x20003dbc, 0x00210a52, 0x00010001 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x00000024 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0007000f },
+   { 0x00800031, 0x25001d29, 0x008d0e60, 0x0414a005 },
+   { 0x00800031, 0x25a01d29, 0x008d0e60, 0x0414a006 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0001000f },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 },
+   { 0x00800031, 0x25801d29, 0x008d0e60, 0x0411a005 },
+   { 0x00800031, 0x26201d29, 0x008d0e60, 0x0411a006 },
+   { 0x00800040, 0x24004629, 0x00ad0500, 0x00ad0520 },
+   { 0x00800040, 0x24204629, 0x00ad0520, 0x00ad0540 },
+   { 0x00800040, 0x24404629, 0x00ad0540, 0x00ad0560 },
+   { 0x00800040, 0x24604629, 0x00ad0560, 0x00ad0580 },
+   { 0x00800040, 0x24004529, 0x00ad0400, 0x00ad0501 },
+   { 0x00800040, 0x24204529, 0x00ad0420, 0x00ad0521 },
+   { 0x00800040, 0x24404529, 0x00ad0440, 0x00ad0541 },
+   { 0x00800040, 0x24604529, 0x00ad0460, 0x00ad0561 },
+   { 0x00800040, 0x24004529, 0x00ad0400, 0x00ad0521 },
+   { 0x00800040, 0x24204529, 0x00ad0420, 0x00ad0541 },
+   { 0x00800040, 0x24404529, 0x00ad0440, 0x00ad0561 },
+   { 0x00800040, 0x24604529, 0x00ad0460, 0x00ad0581 },
+   { 0x00800040, 0x24804629, 0x00ad05a0, 0x00ad05c0 },
+   { 0x00800040, 0x24a04629, 0x00ad05c0, 0x00ad05e0 },
+   { 0x00800040, 0x24c04629, 0x00ad05e0, 0x00ad0600 },
+   { 0x00800040, 0x24e04629, 0x00ad0600, 0x00ad0620 },
+   { 0x00800040, 0x24804529, 0x00ad0480, 0x00ad05a1 },
+   { 0x00800040, 0x24a04529, 0x00ad04a0, 0x00ad05c1 },
+   { 0x00800040, 0x24c04529, 0x00ad04c0, 0x00ad05e1 },
+   { 0x00800040, 0x24e04529, 0x00ad04e0, 0x00ad0601 },
+   { 0x00800040, 0x24804529, 0x00ad0480, 0x00ad05c1 },
+   { 0x00800040, 0x24a04529, 0x00ad04a0, 0x00ad05e1 },
+   { 0x00800040, 0x24c04529, 0x00ad04c0, 0x00ad0601 },
+   { 0x00800040, 0x24e04529, 0x00ad04e0, 0x00ad0621 },
+   { 0x00a02008, 0x24002d29, 0x00b10400, 0x00020002 },
+   { 0x00a02008, 0x24402d29, 0x00b10440, 0x00020002 },
+   { 0x00a02008, 0x24802d29, 0x00b10480, 0x00020002 },
+   { 0x00a02008, 0x24c02d29, 0x00b104c0, 0x00020002 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000029 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0007000f },
+   { 0x00800031, 0x25001d29, 0x008d0e60, 0x0414a005 },
+   { 0x00800031, 0x25801d29, 0x008d0e60, 0x0414a006 },
+   { 0x00800042, 0x24004629, 0x00ad0500, 0x00ad0501 },
+   { 0x00800042, 0x24204629, 0x00ad0520, 0x00ad0521 },
+   { 0x00800042, 0x24404629, 0x00ad0540, 0x00ad0541 },
+   { 0x00800042, 0x24604629, 0x00ad0560, 0x00ad0561 },
+   { 0x00800042, 0x24804629, 0x00ad0580, 0x00ad0581 },
+   { 0x00800042, 0x24a04629, 0x00ad05a0, 0x00ad05a1 },
+   { 0x00800042, 0x24c04629, 0x00ad05c0, 0x00ad05c1 },
+   { 0x00800042, 0x24e04629, 0x00ad05e0, 0x00ad05e1 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x0000001d },
+   { 0x01000005, 0x20003dbc, 0x00210a52, 0x00010001 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x00000010 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0007000f },
+   { 0x00800031, 0x25001d29, 0x008d0e60, 0x0414a005 },
+   { 0x00800031, 0x25a01d29, 0x008d0e60, 0x0414a006 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0000000f },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 },
+   { 0x00800031, 0x25801d29, 0x008d0e60, 0x0411a005 },
+   { 0x00800031, 0x26201d29, 0x008d0e60, 0x0411a006 },
+   { 0x00800042, 0x24004629, 0x00ad0500, 0x00ad0520 },
+   { 0x00800042, 0x24204629, 0x00ad0520, 0x00ad0540 },
+   { 0x00800042, 0x24404629, 0x00ad0540, 0x00ad0560 },
+   { 0x00800042, 0x24604629, 0x00ad0560, 0x00ad0580 },
+   { 0x00800042, 0x24804629, 0x00ad05a0, 0x00ad05c0 },
+   { 0x00800042, 0x24a04629, 0x00ad05c0, 0x00ad05e0 },
+   { 0x00800042, 0x24c04629, 0x00ad05e0, 0x00ad0600 },
+   { 0x00800042, 0x24e04629, 0x00ad0600, 0x00ad0620 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x0000000b },
    { 0x00000001, 0x2e680061, 0x00000000, 0x0007000f },
    { 0x00800031, 0x25001d29, 0x00ad0e60, 0x0414a005 },
    { 0x00800031, 0x25a01d29, 0x00ad0e60, 0x0414a006 },
@@ -294,6 +364,76 @@
    { 0x00000005, 0x2e640c21, 0x00210e64, 0xfffffffe },
    { 0x02000005, 0x20002d3c, 0x00210a42, 0x40004000 },
    { 0x00010040, 0x2e640c21, 0x00210e64, 0x00000001 },
+   { 0x01000005, 0x20003dbc, 0x00210a58, 0x00010001 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x00000032 },
+   { 0x01000005, 0x20003dbc, 0x00210a5a, 0x00010001 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x00000024 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0007000f },
+   { 0x00800031, 0x25001d29, 0x008d0e60, 0x0414a005 },
+   { 0x00800031, 0x25a01d29, 0x008d0e60, 0x0414a006 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0001000f },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 },
+   { 0x00800031, 0x25801d29, 0x008d0e60, 0x0411a005 },
+   { 0x00800031, 0x26201d29, 0x008d0e60, 0x0411a006 },
+   { 0x00800040, 0x24004629, 0x00ad0500, 0x00ad0520 },
+   { 0x00800040, 0x24204629, 0x00ad0520, 0x00ad0540 },
+   { 0x00800040, 0x24404629, 0x00ad0540, 0x00ad0560 },
+   { 0x00800040, 0x24604629, 0x00ad0560, 0x00ad0580 },
+   { 0x00800040, 0x24004529, 0x00ad0400, 0x00ad0501 },
+   { 0x00800040, 0x24204529, 0x00ad0420, 0x00ad0521 },
+   { 0x00800040, 0x24404529, 0x00ad0440, 0x00ad0541 },
+   { 0x00800040, 0x24604529, 0x00ad0460, 0x00ad0561 },
+   { 0x00800040, 0x24004529, 0x00ad0400, 0x00ad0521 },
+   { 0x00800040, 0x24204529, 0x00ad0420, 0x00ad0541 },
+   { 0x00800040, 0x24404529, 0x00ad0440, 0x00ad0561 },
+   { 0x00800040, 0x24604529, 0x00ad0460, 0x00ad0581 },
+   { 0x00800040, 0x24804629, 0x00ad05a0, 0x00ad05c0 },
+   { 0x00800040, 0x24a04629, 0x00ad05c0, 0x00ad05e0 },
+   { 0x00800040, 0x24c04629, 0x00ad05e0, 0x00ad0600 },
+   { 0x00800040, 0x24e04629, 0x00ad0600, 0x00ad0620 },
+   { 0x00800040, 0x24804529, 0x00ad0480, 0x00ad05a1 },
+   { 0x00800040, 0x24a04529, 0x00ad04a0, 0x00ad05c1 },
+   { 0x00800040, 0x24c04529, 0x00ad04c0, 0x00ad05e1 },
+   { 0x00800040, 0x24e04529, 0x00ad04e0, 0x00ad0601 },
+   { 0x00800040, 0x24804529, 0x00ad0480, 0x00ad05c1 },
+   { 0x00800040, 0x24a04529, 0x00ad04a0, 0x00ad05e1 },
+   { 0x00800040, 0x24c04529, 0x00ad04c0, 0x00ad0601 },
+   { 0x00800040, 0x24e04529, 0x00ad04e0, 0x00ad0621 },
+   { 0x00a02008, 0x24002d29, 0x00b10400, 0x00020002 },
+   { 0x00a02008, 0x24402d29, 0x00b10440, 0x00020002 },
+   { 0x00a02008, 0x24802d29, 0x00b10480, 0x00020002 },
+   { 0x00a02008, 0x24c02d29, 0x00b104c0, 0x00020002 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000029 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0007000f },
+   { 0x00800031, 0x25001d29, 0x008d0e60, 0x0414a005 },
+   { 0x00800031, 0x25801d29, 0x008d0e60, 0x0414a006 },
+   { 0x00800042, 0x24004629, 0x00ad0500, 0x00ad0501 },
+   { 0x00800042, 0x24204629, 0x00ad0520, 0x00ad0521 },
+   { 0x00800042, 0x24404629, 0x00ad0540, 0x00ad0541 },
+   { 0x00800042, 0x24604629, 0x00ad0560, 0x00ad0561 },
+   { 0x00800042, 0x24804629, 0x00ad0580, 0x00ad0581 },
+   { 0x00800042, 0x24a04629, 0x00ad05a0, 0x00ad05a1 },
+   { 0x00800042, 0x24c04629, 0x00ad05c0, 0x00ad05c1 },
+   { 0x00800042, 0x24e04629, 0x00ad05e0, 0x00ad05e1 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x0000001d },
+   { 0x01000005, 0x20003dbc, 0x00210a5a, 0x00010001 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x00000010 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0007000f },
+   { 0x00800031, 0x25001d29, 0x008d0e60, 0x0414a005 },
+   { 0x00800031, 0x25a01d29, 0x008d0e60, 0x0414a006 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0000000f },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 },
+   { 0x00800031, 0x25801d29, 0x008d0e60, 0x0411a005 },
+   { 0x00800031, 0x26201d29, 0x008d0e60, 0x0411a006 },
+   { 0x00800042, 0x24004629, 0x00ad0500, 0x00ad0520 },
+   { 0x00800042, 0x24204629, 0x00ad0520, 0x00ad0540 },
+   { 0x00800042, 0x24404629, 0x00ad0540, 0x00ad0560 },
+   { 0x00800042, 0x24604629, 0x00ad0560, 0x00ad0580 },
+   { 0x00800042, 0x24804629, 0x00ad05a0, 0x00ad05c0 },
+   { 0x00800042, 0x24a04629, 0x00ad05c0, 0x00ad05e0 },
+   { 0x00800042, 0x24c04629, 0x00ad05e0, 0x00ad0600 },
+   { 0x00800042, 0x24e04629, 0x00ad0600, 0x00ad0620 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x0000000b },
    { 0x00000001, 0x2e680061, 0x00000000, 0x0007000f },
    { 0x00800031, 0x25001d29, 0x00ad0e60, 0x0414a005 },
    { 0x00800031, 0x25a01d29, 0x00ad0e60, 0x0414a006 },
diff --git a/src/xvmc/shader/vld/frame_backward.g4b b/src/xvmc/shader/vld/frame_backward.g4b
index 66d911f..475200b 100644
--- a/src/xvmc/shader/vld/frame_backward.g4b
+++ b/src/xvmc/shader/vld/frame_backward.g4b
@@ -150,6 +150,112 @@
    { 0x00200008, 0x23e00c21, 0x004503e0, 0x00000001 },
    { 0x0020000c, 0x23ee3dad, 0x00450a54, 0x00020002 },
    { 0x00200040, 0x24003421, 0x004503e0, 0x004503ee },
+   { 0x01000005, 0x20000d3c, 0x00210a54, 0x00000002 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x0000004e },
+   { 0x01000005, 0x20000d3c, 0x00210a56, 0x00000002 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x00000040 },
+   { 0x00000001, 0x24080061, 0x00000000, 0x0007001f },
+   { 0x00800031, 0x24401d29, 0x008d0400, 0x0418a008 },
+   { 0x00800031, 0x25801d29, 0x008d0400, 0x0418a009 },
+   { 0x00000040, 0x24040c21, 0x00210404, 0x00000008 },
+   { 0x00000001, 0x24080061, 0x00000000, 0x0000001f },
+   { 0x00800031, 0x25401d29, 0x008d0400, 0x0411a008 },
+   { 0x00800031, 0x26801d29, 0x008d0400, 0x0411a009 },
+   { 0x00600040, 0x29404629, 0x008d0440, 0x008d0441 },
+   { 0x00600040, 0x29504629, 0x008d0460, 0x008d0461 },
+   { 0x00600040, 0x29604629, 0x008d0480, 0x008d0481 },
+   { 0x00600040, 0x29704629, 0x008d04a0, 0x008d04a1 },
+   { 0x00600040, 0x29804629, 0x008d04c0, 0x008d04c1 },
+   { 0x00600040, 0x29904629, 0x008d04e0, 0x008d04e1 },
+   { 0x00600040, 0x29a04629, 0x008d0500, 0x008d0501 },
+   { 0x00600040, 0x29b04629, 0x008d0520, 0x008d0521 },
+   { 0x00600040, 0x29404529, 0x008d0940, 0x008d0460 },
+   { 0x00600040, 0x29504529, 0x008d0950, 0x008d0480 },
+   { 0x00600040, 0x29604529, 0x008d0960, 0x008d04a0 },
+   { 0x00600040, 0x29704529, 0x008d0970, 0x008d04c0 },
+   { 0x00600040, 0x29804529, 0x008d0980, 0x008d04e0 },
+   { 0x00600040, 0x29904529, 0x008d0990, 0x008d0500 },
+   { 0x00600040, 0x29a04529, 0x008d09a0, 0x008d0520 },
+   { 0x00600040, 0x29b04529, 0x008d09b0, 0x008d0540 },
+   { 0x00600040, 0x29404529, 0x008d0940, 0x008d0461 },
+   { 0x00600040, 0x29504529, 0x008d0950, 0x008d0481 },
+   { 0x00600040, 0x29604529, 0x008d0960, 0x008d04a1 },
+   { 0x00600040, 0x29704529, 0x008d0970, 0x008d04c1 },
+   { 0x00600040, 0x29804529, 0x008d0980, 0x008d04e1 },
+   { 0x00600040, 0x29904529, 0x008d0990, 0x008d0501 },
+   { 0x00600040, 0x29a04529, 0x008d09a0, 0x008d0521 },
+   { 0x00600040, 0x29b04529, 0x008d09b0, 0x008d0541 },
+   { 0x00600040, 0x29c04629, 0x008d0580, 0x008d0581 },
+   { 0x00600040, 0x29d04629, 0x008d05a0, 0x008d05a1 },
+   { 0x00600040, 0x29e04629, 0x008d05c0, 0x008d05c1 },
+   { 0x00600040, 0x29f04629, 0x008d05e0, 0x008d05e1 },
+   { 0x00600040, 0x2a004629, 0x008d0600, 0x008d0601 },
+   { 0x00600040, 0x2a104629, 0x008d0620, 0x008d0621 },
+   { 0x00600040, 0x2a204629, 0x008d0640, 0x008d0641 },
+   { 0x00600040, 0x2a304629, 0x008d0660, 0x008d0661 },
+   { 0x00600040, 0x29c04529, 0x008d09c0, 0x008d05a0 },
+   { 0x00600040, 0x29d04529, 0x008d09d0, 0x008d05c0 },
+   { 0x00600040, 0x29e04529, 0x008d09e0, 0x008d05e0 },
+   { 0x00600040, 0x29f04529, 0x008d09f0, 0x008d0600 },
+   { 0x00600040, 0x2a004529, 0x008d0a00, 0x008d0620 },
+   { 0x00600040, 0x2a104529, 0x008d0a10, 0x008d0640 },
+   { 0x00600040, 0x2a204529, 0x008d0a20, 0x008d0660 },
+   { 0x00600040, 0x2a304529, 0x008d0a30, 0x008d0680 },
+   { 0x00600040, 0x29c04529, 0x008d09c0, 0x008d05a1 },
+   { 0x00600040, 0x29d04529, 0x008d09d0, 0x008d05c1 },
+   { 0x00600040, 0x29e04529, 0x008d09e0, 0x008d05e1 },
+   { 0x00600040, 0x29f04529, 0x008d09f0, 0x008d0601 },
+   { 0x00600040, 0x2a004529, 0x008d0a00, 0x008d0621 },
+   { 0x00600040, 0x2a104529, 0x008d0a10, 0x008d0641 },
+   { 0x00600040, 0x2a204529, 0x008d0a20, 0x008d0661 },
+   { 0x00600040, 0x2a304529, 0x008d0a30, 0x008d0681 },
+   { 0x00800008, 0x29402d29, 0x00b10940, 0x00020002 },
+   { 0x00800008, 0x29602d29, 0x00b10960, 0x00020002 },
+   { 0x00800008, 0x29802d29, 0x00b10980, 0x00020002 },
+   { 0x00800008, 0x29a02d29, 0x00b109a0, 0x00020002 },
+   { 0x00800008, 0x29c02d29, 0x00b109c0, 0x00020002 },
+   { 0x00800008, 0x29e02d29, 0x00b109e0, 0x00020002 },
+   { 0x00800008, 0x2a002d29, 0x00b10a00, 0x00020002 },
+   { 0x00800008, 0x2a202d29, 0x00b10a20, 0x00020002 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000031 },
+   { 0x00000001, 0x24080061, 0x00000000, 0x0007000f },
+   { 0x00800031, 0x24401d29, 0x008d0400, 0x0414a008 },
+   { 0x00800031, 0x25801d29, 0x008d0400, 0x0414a009 },
+   { 0x00800042, 0x29404629, 0x00ad0440, 0x00ad0441 },
+   { 0x00800042, 0x29604629, 0x00ad0460, 0x00ad0461 },
+   { 0x00800042, 0x29804629, 0x00ad0480, 0x00ad0481 },
+   { 0x00800042, 0x29a04629, 0x00ad04a0, 0x00ad04a1 },
+   { 0x00800042, 0x29c04629, 0x00ad0580, 0x00ad0581 },
+   { 0x00800042, 0x29e04629, 0x00ad05a0, 0x00ad05a1 },
+   { 0x00800042, 0x2a004629, 0x00ad05c0, 0x00ad05c1 },
+   { 0x00800042, 0x2a204629, 0x00ad05e0, 0x00ad05e1 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000025 },
+   { 0x01000005, 0x20000d3c, 0x00210a56, 0x00000002 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x00000018 },
+   { 0x00000001, 0x24080061, 0x00000000, 0x0007001f },
+   { 0x00800031, 0x24401d29, 0x008d0400, 0x0418a008 },
+   { 0x00800031, 0x25801d29, 0x008d0400, 0x0418a009 },
+   { 0x00000040, 0x24040c21, 0x00210404, 0x00000008 },
+   { 0x00000001, 0x24080061, 0x00000000, 0x0000001f },
+   { 0x00800031, 0x25401d29, 0x008d0400, 0x0411a008 },
+   { 0x00800031, 0x26801d29, 0x008d0400, 0x0411a009 },
+   { 0x00600042, 0x29404629, 0x008d0440, 0x008d0460 },
+   { 0x00600042, 0x29504629, 0x008d0460, 0x008d0480 },
+   { 0x00600042, 0x29604629, 0x008d0480, 0x008d04a0 },
+   { 0x00600042, 0x29704629, 0x008d04a0, 0x008d04c0 },
+   { 0x00600042, 0x29804629, 0x008d04c0, 0x008d04e0 },
+   { 0x00600042, 0x29904629, 0x008d04e0, 0x008d0500 },
+   { 0x00600042, 0x29a04629, 0x008d0500, 0x008d0520 },
+   { 0x00600042, 0x29b04629, 0x008d0520, 0x008d0540 },
+   { 0x00600042, 0x29c04629, 0x008d0580, 0x008d05a0 },
+   { 0x00600042, 0x29d04629, 0x008d05a0, 0x008d05c0 },
+   { 0x00600042, 0x29e04629, 0x008d05c0, 0x008d05e0 },
+   { 0x00600042, 0x29f04629, 0x008d05e0, 0x008d0600 },
+   { 0x00600042, 0x2a004629, 0x008d0600, 0x008d0620 },
+   { 0x00600042, 0x2a104629, 0x008d0620, 0x008d0640 },
+   { 0x00600042, 0x2a204629, 0x008d0640, 0x008d0660 },
+   { 0x00600042, 0x2a304629, 0x008d0660, 0x008d0680 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x0000000b },
    { 0x00000001, 0x24080061, 0x00000000, 0x0007000f },
    { 0x00800031, 0x24801d29, 0x008d0400, 0x0414a008 },
    { 0x00800031, 0x25001d29, 0x008d0400, 0x0414a009 },
diff --git a/src/xvmc/shader/vld/frame_f_b.g4b b/src/xvmc/shader/vld/frame_f_b.g4b
index c006968..0ca1f38 100644
--- a/src/xvmc/shader/vld/frame_f_b.g4b
+++ b/src/xvmc/shader/vld/frame_f_b.g4b
@@ -321,6 +321,112 @@
    { 0x0020000c, 0x23ee3dad, 0x00450a50, 0x00020002 },
    { 0x00200040, 0x24003421, 0x004503e0, 0x004503ee },
    { 0x00000001, 0x24080061, 0x00000000, 0x0007000f },
+   { 0x01000005, 0x20000d3c, 0x00210a54, 0x00000002 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x0000004e },
+   { 0x01000005, 0x20000d3c, 0x00210a56, 0x00000002 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x00000040 },
+   { 0x00000001, 0x24080061, 0x00000000, 0x0007001f },
+   { 0x00800031, 0x24401d29, 0x008d0400, 0x0418a005 },
+   { 0x00800031, 0x25801d29, 0x008d0400, 0x0418a006 },
+   { 0x00000040, 0x24040c21, 0x00210404, 0x00000008 },
+   { 0x00000001, 0x24080061, 0x00000000, 0x0000001f },
+   { 0x00800031, 0x25401d29, 0x008d0400, 0x0411a005 },
+   { 0x00800031, 0x26801d29, 0x008d0400, 0x0411a006 },
+   { 0x00600040, 0x29404629, 0x008d0440, 0x008d0441 },
+   { 0x00600040, 0x29504629, 0x008d0460, 0x008d0461 },
+   { 0x00600040, 0x29604629, 0x008d0480, 0x008d0481 },
+   { 0x00600040, 0x29704629, 0x008d04a0, 0x008d04a1 },
+   { 0x00600040, 0x29804629, 0x008d04c0, 0x008d04c1 },
+   { 0x00600040, 0x29904629, 0x008d04e0, 0x008d04e1 },
+   { 0x00600040, 0x29a04629, 0x008d0500, 0x008d0501 },
+   { 0x00600040, 0x29b04629, 0x008d0520, 0x008d0521 },
+   { 0x00600040, 0x29404529, 0x008d0940, 0x008d0460 },
+   { 0x00600040, 0x29504529, 0x008d0950, 0x008d0480 },
+   { 0x00600040, 0x29604529, 0x008d0960, 0x008d04a0 },
+   { 0x00600040, 0x29704529, 0x008d0970, 0x008d04c0 },
+   { 0x00600040, 0x29804529, 0x008d0980, 0x008d04e0 },
+   { 0x00600040, 0x29904529, 0x008d0990, 0x008d0500 },
+   { 0x00600040, 0x29a04529, 0x008d09a0, 0x008d0520 },
+   { 0x00600040, 0x29b04529, 0x008d09b0, 0x008d0540 },
+   { 0x00600040, 0x29404529, 0x008d0940, 0x008d0461 },
+   { 0x00600040, 0x29504529, 0x008d0950, 0x008d0481 },
+   { 0x00600040, 0x29604529, 0x008d0960, 0x008d04a1 },
+   { 0x00600040, 0x29704529, 0x008d0970, 0x008d04c1 },
+   { 0x00600040, 0x29804529, 0x008d0980, 0x008d04e1 },
+   { 0x00600040, 0x29904529, 0x008d0990, 0x008d0501 },
+   { 0x00600040, 0x29a04529, 0x008d09a0, 0x008d0521 },
+   { 0x00600040, 0x29b04529, 0x008d09b0, 0x008d0541 },
+   { 0x00600040, 0x29c04629, 0x008d0580, 0x008d0581 },
+   { 0x00600040, 0x29d04629, 0x008d05a0, 0x008d05a1 },
+   { 0x00600040, 0x29e04629, 0x008d05c0, 0x008d05c1 },
+   { 0x00600040, 0x29f04629, 0x008d05e0, 0x008d05e1 },
+   { 0x00600040, 0x2a004629, 0x008d0600, 0x008d0601 },
+   { 0x00600040, 0x2a104629, 0x008d0620, 0x008d0621 },
+   { 0x00600040, 0x2a204629, 0x008d0640, 0x008d0641 },
+   { 0x00600040, 0x2a304629, 0x008d0660, 0x008d0661 },
+   { 0x00600040, 0x29c04529, 0x008d09c0, 0x008d05a0 },
+   { 0x00600040, 0x29d04529, 0x008d09d0, 0x008d05c0 },
+   { 0x00600040, 0x29e04529, 0x008d09e0, 0x008d05e0 },
+   { 0x00600040, 0x29f04529, 0x008d09f0, 0x008d0600 },
+   { 0x00600040, 0x2a004529, 0x008d0a00, 0x008d0620 },
+   { 0x00600040, 0x2a104529, 0x008d0a10, 0x008d0640 },
+   { 0x00600040, 0x2a204529, 0x008d0a20, 0x008d0660 },
+   { 0x00600040, 0x2a304529, 0x008d0a30, 0x008d0680 },
+   { 0x00600040, 0x29c04529, 0x008d09c0, 0x008d05a1 },
+   { 0x00600040, 0x29d04529, 0x008d09d0, 0x008d05c1 },
+   { 0x00600040, 0x29e04529, 0x008d09e0, 0x008d05e1 },
+   { 0x00600040, 0x29f04529, 0x008d09f0, 0x008d0601 },
+   { 0x00600040, 0x2a004529, 0x008d0a00, 0x008d0621 },
+   { 0x00600040, 0x2a104529, 0x008d0a10, 0x008d0641 },
+   { 0x00600040, 0x2a204529, 0x008d0a20, 0x008d0661 },
+   { 0x00600040, 0x2a304529, 0x008d0a30, 0x008d0681 },
+   { 0x00800008, 0x29402d29, 0x00b10940, 0x00020002 },
+   { 0x00800008, 0x29602d29, 0x00b10960, 0x00020002 },
+   { 0x00800008, 0x29802d29, 0x00b10980, 0x00020002 },
+   { 0x00800008, 0x29a02d29, 0x00b109a0, 0x00020002 },
+   { 0x00800008, 0x29c02d29, 0x00b109c0, 0x00020002 },
+   { 0x00800008, 0x29e02d29, 0x00b109e0, 0x00020002 },
+   { 0x00800008, 0x2a002d29, 0x00b10a00, 0x00020002 },
+   { 0x00800008, 0x2a202d29, 0x00b10a20, 0x00020002 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000031 },
+   { 0x00000001, 0x24080061, 0x00000000, 0x0007000f },
+   { 0x00800031, 0x24401d29, 0x008d0400, 0x0414a005 },
+   { 0x00800031, 0x25801d29, 0x008d0400, 0x0414a006 },
+   { 0x00800042, 0x29404629, 0x00ad0440, 0x00ad0441 },
+   { 0x00800042, 0x29604629, 0x00ad0460, 0x00ad0461 },
+   { 0x00800042, 0x29804629, 0x00ad0480, 0x00ad0481 },
+   { 0x00800042, 0x29a04629, 0x00ad04a0, 0x00ad04a1 },
+   { 0x00800042, 0x29c04629, 0x00ad0580, 0x00ad0581 },
+   { 0x00800042, 0x29e04629, 0x00ad05a0, 0x00ad05a1 },
+   { 0x00800042, 0x2a004629, 0x00ad05c0, 0x00ad05c1 },
+   { 0x00800042, 0x2a204629, 0x00ad05e0, 0x00ad05e1 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000025 },
+   { 0x01000005, 0x20000d3c, 0x00210a56, 0x00000002 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x00000018 },
+   { 0x00000001, 0x24080061, 0x00000000, 0x0007001f },
+   { 0x00800031, 0x24401d29, 0x008d0400, 0x0418a005 },
+   { 0x00800031, 0x25801d29, 0x008d0400, 0x0418a006 },
+   { 0x00000040, 0x24040c21, 0x00210404, 0x00000008 },
+   { 0x00000001, 0x24080061, 0x00000000, 0x0000001f },
+   { 0x00800031, 0x25401d29, 0x008d0400, 0x0411a005 },
+   { 0x00800031, 0x26801d29, 0x008d0400, 0x0411a006 },
+   { 0x00600042, 0x29404629, 0x008d0440, 0x008d0460 },
+   { 0x00600042, 0x29504629, 0x008d0460, 0x008d0480 },
+   { 0x00600042, 0x29604629, 0x008d0480, 0x008d04a0 },
+   { 0x00600042, 0x29704629, 0x008d04a0, 0x008d04c0 },
+   { 0x00600042, 0x29804629, 0x008d04c0, 0x008d04e0 },
+   { 0x00600042, 0x29904629, 0x008d04e0, 0x008d0500 },
+   { 0x00600042, 0x29a04629, 0x008d0500, 0x008d0520 },
+   { 0x00600042, 0x29b04629, 0x008d0520, 0x008d0540 },
+   { 0x00600042, 0x29c04629, 0x008d0580, 0x008d05a0 },
+   { 0x00600042, 0x29d04629, 0x008d05a0, 0x008d05c0 },
+   { 0x00600042, 0x29e04629, 0x008d05c0, 0x008d05e0 },
+   { 0x00600042, 0x29f04629, 0x008d05e0, 0x008d0600 },
+   { 0x00600042, 0x2a004629, 0x008d0600, 0x008d0620 },
+   { 0x00600042, 0x2a104629, 0x008d0620, 0x008d0640 },
+   { 0x00600042, 0x2a204629, 0x008d0640, 0x008d0660 },
+   { 0x00600042, 0x2a304629, 0x008d0660, 0x008d0680 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x0000000b },
    { 0x00000001, 0x24080061, 0x00000000, 0x0007000f },
    { 0x00800031, 0x24801d29, 0x008d0400, 0x0414a005 },
    { 0x00800031, 0x25001d29, 0x008d0400, 0x0414a006 },
@@ -342,6 +448,112 @@
    { 0x00800001, 0x2df00231, 0x00b20a20, 0x00000000 },
    { 0x0020000c, 0x23ee3dad, 0x00450a54, 0x00020002 },
    { 0x00200040, 0x24003421, 0x004503e0, 0x004503ee },
+   { 0x01000005, 0x20000d3c, 0x00210a54, 0x00000002 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x0000004e },
+   { 0x01000005, 0x20000d3c, 0x00210a56, 0x00000002 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x00000040 },
+   { 0x00000001, 0x24080061, 0x00000000, 0x0007001f },
+   { 0x00800031, 0x24401d29, 0x008d0400, 0x0418a008 },
+   { 0x00800031, 0x25801d29, 0x008d0400, 0x0418a009 },
+   { 0x00000040, 0x24040c21, 0x00210404, 0x00000008 },
+   { 0x00000001, 0x24080061, 0x00000000, 0x0000001f },
+   { 0x00800031, 0x25401d29, 0x008d0400, 0x0411a008 },
+   { 0x00800031, 0x26801d29, 0x008d0400, 0x0411a009 },
+   { 0x00600040, 0x29404629, 0x008d0440, 0x008d0441 },
+   { 0x00600040, 0x29504629, 0x008d0460, 0x008d0461 },
+   { 0x00600040, 0x29604629, 0x008d0480, 0x008d0481 },
+   { 0x00600040, 0x29704629, 0x008d04a0, 0x008d04a1 },
+   { 0x00600040, 0x29804629, 0x008d04c0, 0x008d04c1 },
+   { 0x00600040, 0x29904629, 0x008d04e0, 0x008d04e1 },
+   { 0x00600040, 0x29a04629, 0x008d0500, 0x008d0501 },
+   { 0x00600040, 0x29b04629, 0x008d0520, 0x008d0521 },
+   { 0x00600040, 0x29404529, 0x008d0940, 0x008d0460 },
+   { 0x00600040, 0x29504529, 0x008d0950, 0x008d0480 },
+   { 0x00600040, 0x29604529, 0x008d0960, 0x008d04a0 },
+   { 0x00600040, 0x29704529, 0x008d0970, 0x008d04c0 },
+   { 0x00600040, 0x29804529, 0x008d0980, 0x008d04e0 },
+   { 0x00600040, 0x29904529, 0x008d0990, 0x008d0500 },
+   { 0x00600040, 0x29a04529, 0x008d09a0, 0x008d0520 },
+   { 0x00600040, 0x29b04529, 0x008d09b0, 0x008d0540 },
+   { 0x00600040, 0x29404529, 0x008d0940, 0x008d0461 },
+   { 0x00600040, 0x29504529, 0x008d0950, 0x008d0481 },
+   { 0x00600040, 0x29604529, 0x008d0960, 0x008d04a1 },
+   { 0x00600040, 0x29704529, 0x008d0970, 0x008d04c1 },
+   { 0x00600040, 0x29804529, 0x008d0980, 0x008d04e1 },
+   { 0x00600040, 0x29904529, 0x008d0990, 0x008d0501 },
+   { 0x00600040, 0x29a04529, 0x008d09a0, 0x008d0521 },
+   { 0x00600040, 0x29b04529, 0x008d09b0, 0x008d0541 },
+   { 0x00600040, 0x29c04629, 0x008d0580, 0x008d0581 },
+   { 0x00600040, 0x29d04629, 0x008d05a0, 0x008d05a1 },
+   { 0x00600040, 0x29e04629, 0x008d05c0, 0x008d05c1 },
+   { 0x00600040, 0x29f04629, 0x008d05e0, 0x008d05e1 },
+   { 0x00600040, 0x2a004629, 0x008d0600, 0x008d0601 },
+   { 0x00600040, 0x2a104629, 0x008d0620, 0x008d0621 },
+   { 0x00600040, 0x2a204629, 0x008d0640, 0x008d0641 },
+   { 0x00600040, 0x2a304629, 0x008d0660, 0x008d0661 },
+   { 0x00600040, 0x29c04529, 0x008d09c0, 0x008d05a0 },
+   { 0x00600040, 0x29d04529, 0x008d09d0, 0x008d05c0 },
+   { 0x00600040, 0x29e04529, 0x008d09e0, 0x008d05e0 },
+   { 0x00600040, 0x29f04529, 0x008d09f0, 0x008d0600 },
+   { 0x00600040, 0x2a004529, 0x008d0a00, 0x008d0620 },
+   { 0x00600040, 0x2a104529, 0x008d0a10, 0x008d0640 },
+   { 0x00600040, 0x2a204529, 0x008d0a20, 0x008d0660 },
+   { 0x00600040, 0x2a304529, 0x008d0a30, 0x008d0680 },
+   { 0x00600040, 0x29c04529, 0x008d09c0, 0x008d05a1 },
+   { 0x00600040, 0x29d04529, 0x008d09d0, 0x008d05c1 },
+   { 0x00600040, 0x29e04529, 0x008d09e0, 0x008d05e1 },
+   { 0x00600040, 0x29f04529, 0x008d09f0, 0x008d0601 },
+   { 0x00600040, 0x2a004529, 0x008d0a00, 0x008d0621 },
+   { 0x00600040, 0x2a104529, 0x008d0a10, 0x008d0641 },
+   { 0x00600040, 0x2a204529, 0x008d0a20, 0x008d0661 },
+   { 0x00600040, 0x2a304529, 0x008d0a30, 0x008d0681 },
+   { 0x00800008, 0x29402d29, 0x00b10940, 0x00020002 },
+   { 0x00800008, 0x29602d29, 0x00b10960, 0x00020002 },
+   { 0x00800008, 0x29802d29, 0x00b10980, 0x00020002 },
+   { 0x00800008, 0x29a02d29, 0x00b109a0, 0x00020002 },
+   { 0x00800008, 0x29c02d29, 0x00b109c0, 0x00020002 },
+   { 0x00800008, 0x29e02d29, 0x00b109e0, 0x00020002 },
+   { 0x00800008, 0x2a002d29, 0x00b10a00, 0x00020002 },
+   { 0x00800008, 0x2a202d29, 0x00b10a20, 0x00020002 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000031 },
+   { 0x00000001, 0x24080061, 0x00000000, 0x0007000f },
+   { 0x00800031, 0x24401d29, 0x008d0400, 0x0414a008 },
+   { 0x00800031, 0x25801d29, 0x008d0400, 0x0414a009 },
+   { 0x00800042, 0x29404629, 0x00ad0440, 0x00ad0441 },
+   { 0x00800042, 0x29604629, 0x00ad0460, 0x00ad0461 },
+   { 0x00800042, 0x29804629, 0x00ad0480, 0x00ad0481 },
+   { 0x00800042, 0x29a04629, 0x00ad04a0, 0x00ad04a1 },
+   { 0x00800042, 0x29c04629, 0x00ad0580, 0x00ad0581 },
+   { 0x00800042, 0x29e04629, 0x00ad05a0, 0x00ad05a1 },
+   { 0x00800042, 0x2a004629, 0x00ad05c0, 0x00ad05c1 },
+   { 0x00800042, 0x2a204629, 0x00ad05e0, 0x00ad05e1 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000025 },
+   { 0x01000005, 0x20000d3c, 0x00210a56, 0x00000002 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x00000018 },
+   { 0x00000001, 0x24080061, 0x00000000, 0x0007001f },
+   { 0x00800031, 0x24401d29, 0x008d0400, 0x0418a008 },
+   { 0x00800031, 0x25801d29, 0x008d0400, 0x0418a009 },
+   { 0x00000040, 0x24040c21, 0x00210404, 0x00000008 },
+   { 0x00000001, 0x24080061, 0x00000000, 0x0000001f },
+   { 0x00800031, 0x25401d29, 0x008d0400, 0x0411a008 },
+   { 0x00800031, 0x26801d29, 0x008d0400, 0x0411a009 },
+   { 0x00600042, 0x29404629, 0x008d0440, 0x008d0460 },
+   { 0x00600042, 0x29504629, 0x008d0460, 0x008d0480 },
+   { 0x00600042, 0x29604629, 0x008d0480, 0x008d04a0 },
+   { 0x00600042, 0x29704629, 0x008d04a0, 0x008d04c0 },
+   { 0x00600042, 0x29804629, 0x008d04c0, 0x008d04e0 },
+   { 0x00600042, 0x29904629, 0x008d04e0, 0x008d0500 },
+   { 0x00600042, 0x29a04629, 0x008d0500, 0x008d0520 },
+   { 0x00600042, 0x29b04629, 0x008d0520, 0x008d0540 },
+   { 0x00600042, 0x29c04629, 0x008d0580, 0x008d05a0 },
+   { 0x00600042, 0x29d04629, 0x008d05a0, 0x008d05c0 },
+   { 0x00600042, 0x29e04629, 0x008d05c0, 0x008d05e0 },
+   { 0x00600042, 0x29f04629, 0x008d05e0, 0x008d0600 },
+   { 0x00600042, 0x2a004629, 0x008d0600, 0x008d0620 },
+   { 0x00600042, 0x2a104629, 0x008d0620, 0x008d0640 },
+   { 0x00600042, 0x2a204629, 0x008d0640, 0x008d0660 },
+   { 0x00600042, 0x2a304629, 0x008d0660, 0x008d0680 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x0000000b },
    { 0x00000001, 0x24080061, 0x00000000, 0x0007000f },
    { 0x00800031, 0x24801d29, 0x008d0400, 0x0414a008 },
    { 0x00800031, 0x25001d29, 0x008d0400, 0x0414a009 },
diff --git a/src/xvmc/shader/vld/frame_forward.g4b b/src/xvmc/shader/vld/frame_forward.g4b
index fed4551..4bf6c93 100644
--- a/src/xvmc/shader/vld/frame_forward.g4b
+++ b/src/xvmc/shader/vld/frame_forward.g4b
@@ -150,6 +150,112 @@
    { 0x00200008, 0x23e00c21, 0x004503e0, 0x00000001 },
    { 0x0020000c, 0x23ee3dad, 0x00450a50, 0x00020002 },
    { 0x00200040, 0x24003421, 0x004503e0, 0x004503ee },
+   { 0x01000005, 0x20000d3c, 0x00210a50, 0x00000002 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x0000004e },
+   { 0x01000005, 0x20000d3c, 0x00210a52, 0x00000002 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x00000040 },
+   { 0x00000001, 0x24080061, 0x00000000, 0x0007001f },
+   { 0x00800031, 0x24401d29, 0x008d0400, 0x0418a005 },
+   { 0x00800031, 0x25801d29, 0x008d0400, 0x0418a006 },
+   { 0x00000040, 0x24040c21, 0x00210404, 0x00000008 },
+   { 0x00000001, 0x24080061, 0x00000000, 0x0000001f },
+   { 0x00800031, 0x25401d29, 0x008d0400, 0x0411a005 },
+   { 0x00800031, 0x26801d29, 0x008d0400, 0x0411a006 },
+   { 0x00600040, 0x29404629, 0x008d0440, 0x008d0441 },
+   { 0x00600040, 0x29504629, 0x008d0460, 0x008d0461 },
+   { 0x00600040, 0x29604629, 0x008d0480, 0x008d0481 },
+   { 0x00600040, 0x29704629, 0x008d04a0, 0x008d04a1 },
+   { 0x00600040, 0x29804629, 0x008d04c0, 0x008d04c1 },
+   { 0x00600040, 0x29904629, 0x008d04e0, 0x008d04e1 },
+   { 0x00600040, 0x29a04629, 0x008d0500, 0x008d0501 },
+   { 0x00600040, 0x29b04629, 0x008d0520, 0x008d0521 },
+   { 0x00600040, 0x29404529, 0x008d0940, 0x008d0460 },
+   { 0x00600040, 0x29504529, 0x008d0950, 0x008d0480 },
+   { 0x00600040, 0x29604529, 0x008d0960, 0x008d04a0 },
+   { 0x00600040, 0x29704529, 0x008d0970, 0x008d04c0 },
+   { 0x00600040, 0x29804529, 0x008d0980, 0x008d04e0 },
+   { 0x00600040, 0x29904529, 0x008d0990, 0x008d0500 },
+   { 0x00600040, 0x29a04529, 0x008d09a0, 0x008d0520 },
+   { 0x00600040, 0x29b04529, 0x008d09b0, 0x008d0540 },
+   { 0x00600040, 0x29404529, 0x008d0940, 0x008d0461 },
+   { 0x00600040, 0x29504529, 0x008d0950, 0x008d0481 },
+   { 0x00600040, 0x29604529, 0x008d0960, 0x008d04a1 },
+   { 0x00600040, 0x29704529, 0x008d0970, 0x008d04c1 },
+   { 0x00600040, 0x29804529, 0x008d0980, 0x008d04e1 },
+   { 0x00600040, 0x29904529, 0x008d0990, 0x008d0501 },
+   { 0x00600040, 0x29a04529, 0x008d09a0, 0x008d0521 },
+   { 0x00600040, 0x29b04529, 0x008d09b0, 0x008d0541 },
+   { 0x00600040, 0x29c04629, 0x008d0580, 0x008d0581 },
+   { 0x00600040, 0x29d04629, 0x008d05a0, 0x008d05a1 },
+   { 0x00600040, 0x29e04629, 0x008d05c0, 0x008d05c1 },
+   { 0x00600040, 0x29f04629, 0x008d05e0, 0x008d05e1 },
+   { 0x00600040, 0x2a004629, 0x008d0600, 0x008d0601 },
+   { 0x00600040, 0x2a104629, 0x008d0620, 0x008d0621 },
+   { 0x00600040, 0x2a204629, 0x008d0640, 0x008d0641 },
+   { 0x00600040, 0x2a304629, 0x008d0660, 0x008d0661 },
+   { 0x00600040, 0x29c04529, 0x008d09c0, 0x008d05a0 },
+   { 0x00600040, 0x29d04529, 0x008d09d0, 0x008d05c0 },
+   { 0x00600040, 0x29e04529, 0x008d09e0, 0x008d05e0 },
+   { 0x00600040, 0x29f04529, 0x008d09f0, 0x008d0600 },
+   { 0x00600040, 0x2a004529, 0x008d0a00, 0x008d0620 },
+   { 0x00600040, 0x2a104529, 0x008d0a10, 0x008d0640 },
+   { 0x00600040, 0x2a204529, 0x008d0a20, 0x008d0660 },
+   { 0x00600040, 0x2a304529, 0x008d0a30, 0x008d0680 },
+   { 0x00600040, 0x29c04529, 0x008d09c0, 0x008d05a1 },
+   { 0x00600040, 0x29d04529, 0x008d09d0, 0x008d05c1 },
+   { 0x00600040, 0x29e04529, 0x008d09e0, 0x008d05e1 },
+   { 0x00600040, 0x29f04529, 0x008d09f0, 0x008d0601 },
+   { 0x00600040, 0x2a004529, 0x008d0a00, 0x008d0621 },
+   { 0x00600040, 0x2a104529, 0x008d0a10, 0x008d0641 },
+   { 0x00600040, 0x2a204529, 0x008d0a20, 0x008d0661 },
+   { 0x00600040, 0x2a304529, 0x008d0a30, 0x008d0681 },
+   { 0x00800008, 0x29402d29, 0x00b10940, 0x00020002 },
+   { 0x00800008, 0x29602d29, 0x00b10960, 0x00020002 },
+   { 0x00800008, 0x29802d29, 0x00b10980, 0x00020002 },
+   { 0x00800008, 0x29a02d29, 0x00b109a0, 0x00020002 },
+   { 0x00800008, 0x29c02d29, 0x00b109c0, 0x00020002 },
+   { 0x00800008, 0x29e02d29, 0x00b109e0, 0x00020002 },
+   { 0x00800008, 0x2a002d29, 0x00b10a00, 0x00020002 },
+   { 0x00800008, 0x2a202d29, 0x00b10a20, 0x00020002 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000031 },
+   { 0x00000001, 0x24080061, 0x00000000, 0x0007000f },
+   { 0x00800031, 0x24401d29, 0x008d0400, 0x0414a005 },
+   { 0x00800031, 0x25801d29, 0x008d0400, 0x0414a006 },
+   { 0x00800042, 0x29404629, 0x00ad0440, 0x00ad0441 },
+   { 0x00800042, 0x29604629, 0x00ad0460, 0x00ad0461 },
+   { 0x00800042, 0x29804629, 0x00ad0480, 0x00ad0481 },
+   { 0x00800042, 0x29a04629, 0x00ad04a0, 0x00ad04a1 },
+   { 0x00800042, 0x29c04629, 0x00ad0580, 0x00ad0581 },
+   { 0x00800042, 0x29e04629, 0x00ad05a0, 0x00ad05a1 },
+   { 0x00800042, 0x2a004629, 0x00ad05c0, 0x00ad05c1 },
+   { 0x00800042, 0x2a204629, 0x00ad05e0, 0x00ad05e1 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000025 },
+   { 0x01000005, 0x20000d3c, 0x00210a52, 0x00000002 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x00000018 },
+   { 0x00000001, 0x24080061, 0x00000000, 0x0007001f },
+   { 0x00800031, 0x24401d29, 0x008d0400, 0x0418a005 },
+   { 0x00800031, 0x25801d29, 0x008d0400, 0x0418a006 },
+   { 0x00000040, 0x24040c21, 0x00210404, 0x00000008 },
+   { 0x00000001, 0x24080061, 0x00000000, 0x0000001f },
+   { 0x00800031, 0x25401d29, 0x008d0400, 0x0411a005 },
+   { 0x00800031, 0x26801d29, 0x008d0400, 0x0411a006 },
+   { 0x00600042, 0x29404629, 0x008d0440, 0x008d0460 },
+   { 0x00600042, 0x29504629, 0x008d0460, 0x008d0480 },
+   { 0x00600042, 0x29604629, 0x008d0480, 0x008d04a0 },
+   { 0x00600042, 0x29704629, 0x008d04a0, 0x008d04c0 },
+   { 0x00600042, 0x29804629, 0x008d04c0, 0x008d04e0 },
+   { 0x00600042, 0x29904629, 0x008d04e0, 0x008d0500 },
+   { 0x00600042, 0x29a04629, 0x008d0500, 0x008d0520 },
+   { 0x00600042, 0x29b04629, 0x008d0520, 0x008d0540 },
+   { 0x00600042, 0x29c04629, 0x008d0580, 0x008d05a0 },
+   { 0x00600042, 0x29d04629, 0x008d05a0, 0x008d05c0 },
+   { 0x00600042, 0x29e04629, 0x008d05c0, 0x008d05e0 },
+   { 0x00600042, 0x29f04629, 0x008d05e0, 0x008d0600 },
+   { 0x00600042, 0x2a004629, 0x008d0600, 0x008d0620 },
+   { 0x00600042, 0x2a104629, 0x008d0620, 0x008d0640 },
+   { 0x00600042, 0x2a204629, 0x008d0640, 0x008d0660 },
+   { 0x00600042, 0x2a304629, 0x008d0660, 0x008d0680 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x0000000b },
    { 0x00000001, 0x24080061, 0x00000000, 0x0007000f },
    { 0x00800031, 0x24801d29, 0x008d0400, 0x0414a005 },
    { 0x00800031, 0x25001d29, 0x008d0400, 0x0414a006 },
diff --git a/src/xvmc/shader/vld/motion_field_uv.g4i b/src/xvmc/shader/vld/motion_field_uv.g4i
index 3329569..4598c85 100644
--- a/src/xvmc/shader/vld/motion_field_uv.g4i
+++ b/src/xvmc/shader/vld/motion_field_uv.g4i
@@ -1,5 +1,5 @@
 /*
- * Copyright © 2009 Intel Corporation
+ * Copyright © 2008 Intel Corporation
  *
  * Permission is hereby granted, free of charge, to any person obtaining a
  * copy of this software and associated documentation files (the "Software"),
@@ -26,4 +26,21 @@
  *    Xing Dong sheng <dongsheng.xing at intel.com>
  *
  */
-include(`read_field_x0y0_uv.g4i')
+       and.z (1) null mv1<1,1,1>W 1W {align1};       
+       (f0) jmpi L1;
+       and.z (1) null mv2<1,1,1>W 1W {align1};       
+       (f0) jmpi L2;
+       include(`read_field_x1y1_uv.g4i')
+       jmpi L5;
+L2:
+       include(`read_field_x1y0_uv.g4i')
+       jmpi L5;
+L1:
+       and.z (1) null mv2<1,1,1>W 1W {align1};       
+       (f0) jmpi L4;
+       include(`read_field_x0y1_uv.g4i')
+       jmpi L5;
+L4:
+       include(`read_field_x0y0_uv.g4i')
+L5:
+
diff --git a/src/xvmc/shader/vld/motion_frame_uv.g4i b/src/xvmc/shader/vld/motion_frame_uv.g4i
index 3d39313..00a5f2b 100644
--- a/src/xvmc/shader/vld/motion_frame_uv.g4i
+++ b/src/xvmc/shader/vld/motion_frame_uv.g4i
@@ -1,5 +1,5 @@
 /*
- * Copyright © 2009 Intel Corporation
+ * Copyright © 2008 Intel Corporation
  *
  * Permission is hereby granted, free of charge, to any person obtaining a
  * copy of this software and associated documentation files (the "Software"),
@@ -26,4 +26,20 @@
  *    Xing Dong sheng <dongsheng.xing at intel.com>
  */  
 
+	and.z (1) null mv1<1,1,1>UW 2UD {align1};	
+	(f0) jmpi LL1;
+	and.z (1) null mv2<1,1,1>UW 2UD {align1};	
+	(f0) jmpi LL2;
+	include(`read_frame_x1y1_uv.g4i')
+	jmpi LL5;
+LL2:
+	include(`read_frame_x1y0_uv.g4i')
+	jmpi LL5;
+LL1:
+	and.z (1) null mv2<1,1,1>UW 2UD {align1};	
+	(f0) jmpi LL4;
+	include(`read_frame_x0y1_uv.g4i')
+	jmpi LL5;
+LL4:
 	include(`read_frame_x0y0_uv.g4i')
+LL5:
diff --git a/src/xvmc/shader/vld/read_field_x0y1_uv.g4i b/src/xvmc/shader/vld/read_field_x0y1_uv.g4i
new file mode 100644
index 0000000..ac8030b
--- /dev/null
+++ b/src/xvmc/shader/vld/read_field_x0y1_uv.g4i
@@ -0,0 +1,28 @@
+/* GRF allocation:
+   g1~g30: constant buffer
+           g1~g2:intra IQ matrix
+           g3~g4:non intra IQ matrix
+           g5~g20:IDCT table
+   g31:    thread payload 
+   g58~g81:reference data
+   g82:    thread payload backup
+   g83~g106:IDCT data
+   g115:   message descriptor for reading reference data   */
+
+mov (1) g115.8<1>UD 0x07000FUD {align1}; // 8*16/32=4
+send (16) 0 g40.0<1>UW g115<8,8,1>UW read(surface_u, 2, 0, 2) mlen 1 rlen 4 {align1};//U
+send (16) 0 g45.0<1>UW g115<8,8,1>UW read(surface_v, 2, 0, 2) mlen 1 rlen 4 {align1};//V
+mov (1) g115.8<1>UD 0xFUD {align1};
+add (1) g115.4<1>UD g115.4<1,1,1>UD 8UD {align1};
+send (16) 0 g44.0<1>UW g115<8,8,1>UW read(surface_u, 2, 0, 2) mlen 1 rlen 1 {align1};//U
+send (16) 0 g49.0<1>UW g115<8,8,1>UW read(surface_v, 2, 0, 2) mlen 1 rlen 1 {align1};//V
+
+avg (16) g32.0<1>UW g40.0<16,8,1>UB g41.0<16,8,1>UB {align1};
+avg (16) g33.0<1>UW g41.0<16,8,1>UB g42.0<16,8,1>UB {align1};
+avg (16) g34.0<1>UW g42.0<16,8,1>UB g43.0<16,8,1>UB {align1};
+avg (16) g35.0<1>UW g43.0<16,8,1>UB g44.0<16,8,1>UB {align1};
+
+avg (16) g36.0<1>UW g45.0<16,8,1>UB g46.0<16,8,1>UB {align1};
+avg (16) g37.0<1>UW g46.0<16,8,1>UB g47.0<16,8,1>UB {align1};
+avg (16) g38.0<1>UW g47.0<16,8,1>UB g48.0<16,8,1>UB {align1};
+avg (16) g39.0<1>UW g48.0<16,8,1>UB g49.0<16,8,1>UB {align1};
diff --git a/src/xvmc/shader/vld/read_field_x1y0_uv.g4i b/src/xvmc/shader/vld/read_field_x1y0_uv.g4i
new file mode 100644
index 0000000..4c36438
--- /dev/null
+++ b/src/xvmc/shader/vld/read_field_x1y0_uv.g4i
@@ -0,0 +1,24 @@
+/* GRF allocation:
+   g1~g30: constant buffer
+           g1~g2:intra IQ matrix
+           g3~g4:non intra IQ matrix
+           g5~g20:IDCT table
+   g31:    thread payload 
+   g58~g81:reference data
+   g82:    thread payload backup
+   g83~g106:IDCT data
+   g115:   message descriptor for reading reference data   */
+
+mov (1) g115.8<1>UD 0x07000FUD {align1}; // 8*16/32=4
+send (16) 0 g40.0<1>UW g115<8,8,1>UW read(surface_u, 2, 0, 2) mlen 1 rlen 4 {align1};//U
+send (16) 0 g44.0<1>UW g115<8,8,1>UW read(surface_v, 2, 0, 2) mlen 1 rlen 4 {align1};//V
+
+avg (16) g32.0<1>UW g40.0<16,8,1>UB g40.1<16,8,1>UB {align1};
+avg (16) g33.0<1>UW g41.0<16,8,1>UB g41.1<16,8,1>UB {align1};
+avg (16) g34.0<1>UW g42.0<16,8,1>UB g42.1<16,8,1>UB {align1};
+avg (16) g35.0<1>UW g43.0<16,8,1>UB g43.1<16,8,1>UB {align1};
+
+avg (16) g36.0<1>UW g44.0<16,8,1>UB g44.1<16,8,1>UB {align1};
+avg (16) g37.0<1>UW g45.0<16,8,1>UB g45.1<16,8,1>UB {align1};
+avg (16) g38.0<1>UW g46.0<16,8,1>UB g46.1<16,8,1>UB {align1};
+avg (16) g39.0<1>UW g47.0<16,8,1>UB g47.1<16,8,1>UB {align1};
diff --git a/src/xvmc/shader/vld/read_field_x1y1_uv.g4i b/src/xvmc/shader/vld/read_field_x1y1_uv.g4i
new file mode 100644
index 0000000..816dd72
--- /dev/null
+++ b/src/xvmc/shader/vld/read_field_x1y1_uv.g4i
@@ -0,0 +1,53 @@
+/* GRF allocation:
+   g1~g30: constant buffer
+           g1~g2:intra IQ matrix
+           g3~g4:non intra IQ matrix
+           g5~g20:IDCT table
+   g31:    thread payload 
+   g58~g81:reference data
+   g82:    thread payload backup
+   g83~g106:IDCT data
+   g115:   message descriptor for reading reference data   */
+mov (1) g115.8<1>UD 0x07000FUD {align1};
+send (16) 0 g40.0<1>UW g115<8,8,1>UW read(surface_u, 2, 0, 2) mlen 1 rlen 4 {align1};//U
+send (16) 0 g45.0<1>UW g115<8,8,1>UW read(surface_v, 2, 0, 2) mlen 1 rlen 4 {align1};//V
+mov (1) g115.8<1>UD 0x01000FUD {align1};
+add (1) g115.4<1>UD g115.4<1,1,1>UD 8UD {align1};
+send (16) 0 g44.0<1>UW g115<8,8,1>UW read(surface_u, 2, 0, 2) mlen 1 rlen 1 {align1};//U
+send (16) 0 g49.0<1>UW g115<8,8,1>UW read(surface_v, 2, 0, 2) mlen 1 rlen 1 {align1};//V
+//U
+add (16) g32.0<1>UW g40.0<16,8,1>UB g41.0<16,8,1>UB {align1};
+add (16) g33.0<1>UW g41.0<16,8,1>UB g42.0<16,8,1>UB {align1};
+add (16) g34.0<1>UW g42.0<16,8,1>UB g43.0<16,8,1>UB {align1};
+add (16) g35.0<1>UW g43.0<16,8,1>UB g44.0<16,8,1>UB {align1};
+
+add (16) g32.0<1>UW g32.0<16,8,1>UW g40.1<16,8,1>UB {align1};
+add (16) g33.0<1>UW g33.0<16,8,1>UW g41.1<16,8,1>UB {align1};
+add (16) g34.0<1>UW g34.0<16,8,1>UW g42.1<16,8,1>UB {align1};
+add (16) g35.0<1>UW g35.0<16,8,1>UW g43.1<16,8,1>UB {align1};
+
+add (16) g32.0<1>UW g32.0<16,8,1>UW g41.1<16,8,1>UB {align1};
+add (16) g33.0<1>UW g33.0<16,8,1>UW g42.1<16,8,1>UB {align1};
+add (16) g34.0<1>UW g34.0<16,8,1>UW g43.1<16,8,1>UB {align1};
+add (16) g35.0<1>UW g35.0<16,8,1>UW g44.1<16,8,1>UB {align1};
+//V
+add (16) g36.0<1>UW g45.0<16,8,1>UB g46.0<16,8,1>UB {align1};
+add (16) g37.0<1>UW g46.0<16,8,1>UB g47.0<16,8,1>UB {align1};
+add (16) g38.0<1>UW g47.0<16,8,1>UB g48.0<16,8,1>UB {align1};
+add (16) g39.0<1>UW g48.0<16,8,1>UB g49.0<16,8,1>UB {align1};
+
+add (16) g36.0<1>UW g36.0<16,8,1>UW g45.1<16,8,1>UB {align1};
+add (16) g37.0<1>UW g37.0<16,8,1>UW g46.1<16,8,1>UB {align1};
+add (16) g38.0<1>UW g38.0<16,8,1>UW g47.1<16,8,1>UB {align1};
+add (16) g39.0<1>UW g39.0<16,8,1>UW g48.1<16,8,1>UB {align1};
+
+add (16) g36.0<1>UW g36.0<16,8,1>UW g46.1<16,8,1>UB {align1};
+add (16) g37.0<1>UW g37.0<16,8,1>UW g47.1<16,8,1>UB {align1};
+add (16) g38.0<1>UW g38.0<16,8,1>UW g48.1<16,8,1>UB {align1};
+add (16) g39.0<1>UW g39.0<16,8,1>UW g49.1<16,8,1>UB {align1};
+
+shr (32) g32.0<1>UW g32.0<16,16,1>UW 2UW {align1 compr};
+shr (32) g34.0<1>UW g34.0<16,16,1>UW 2UW {align1 compr};
+shr (32) g36.0<1>UW g36.0<16,16,1>UW 2UW {align1 compr};
+shr (32) g38.0<1>UW g38.0<16,16,1>UW 2UW {align1 compr};
+
diff --git a/src/xvmc/shader/vld/read_frame_x0y1_uv.g4i b/src/xvmc/shader/vld/read_frame_x0y1_uv.g4i
new file mode 100644
index 0000000..6351ec5
--- /dev/null
+++ b/src/xvmc/shader/vld/read_frame_x0y1_uv.g4i
@@ -0,0 +1,56 @@
+/*
+ * Copyright © 2008 Intel Corporation
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice (including the next
+ * paragraph) shall be included in all copies or substantial portions of the
+ * Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDINg BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINgEMENT.  IN NO EVENT SHALL
+ * THE AUTHORS OR COPYRIgHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAgES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISINg FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINgS IN THE
+ * SOFTWARE.
+ *
+ * Author:
+ *    Zou Nan hai <nanhai.zou at intel.com>
+ *    Zhang Hua jun <huajun.zhang at intel.com>
+ *    Xing Dong sheng <dongsheng.xing at intel.com>
+ *
+ */
+mov (1) g32.8<1>UD 0x007001FUD {align1};
+send (16) 0 g34.0<1>UW g32<8,8,1>UW read(input_surface1, 2, 0, 2) mlen 1 rlen 8 {align1}; //U
+send (16) 0 g44.0<1>UW g32<8,8,1>UW read(input_surface2, 2, 0, 2) mlen 1 rlen 8 {align1}; //V
+add (1) g32.4<1>UD g32.4<1,1,1>UD 8UD {align1};
+mov (1) g32.8<1>UD 0x1FUD {align1};
+send (16) 0 g42.0<1>UW g32<8,8,1>UW read(input_surface1, 2, 0, 2) mlen 1 rlen 1 {align1}; //U
+send (16) 0 g52.0<1>UW g32<8,8,1>UW read(input_surface2, 2, 0, 2) mlen 1 rlen 1 {align1}; //V
+
+//U
+avg (8) g74.0<1>UW  g34.0<8,8,1>UB g35.0<8,8,1>UB {align1};
+avg (8) g74.16<1>UW g35.0<8,8,1>UB g36.0<8,8,1>UB {align1};
+avg (8) g75.0<1>UW  g36.0<8,8,1>UB g37.0<8,8,1>UB {align1};
+avg (8) g75.16<1>UW g37.0<8,8,1>UB g38.0<8,8,1>UB {align1};
+avg (8) g76.0<1>UW  g38.0<8,8,1>UB g39.0<8,8,1>UB {align1};
+avg (8) g76.16<1>UW g39.0<8,8,1>UB g40.0<8,8,1>UB {align1};
+avg (8) g77.0<1>UW  g40.0<8,8,1>UB g41.0<8,8,1>UB {align1};
+avg (8) g77.16<1>UW g41.0<8,8,1>UB g42.0<8,8,1>UB {align1};
+
+//V
+avg (8) g78.0<1>UW  g44.0<8,8,1>UB g45.0<8,8,1>UB {align1};
+avg (8) g78.16<1>UW g45.0<8,8,1>UB g46.0<8,8,1>UB {align1};
+avg (8) g79.0<1>UW  g46.0<8,8,1>UB g47.0<8,8,1>UB {align1};
+avg (8) g79.16<1>UW g47.0<8,8,1>UB g48.0<8,8,1>UB {align1};
+avg (8) g80.0<1>UW  g48.0<8,8,1>UB g49.0<8,8,1>UB {align1};
+avg (8) g80.16<1>UW g49.0<8,8,1>UB g50.0<8,8,1>UB {align1};
+avg (8) g81.0<1>UW  g50.0<8,8,1>UB g51.0<8,8,1>UB {align1};
+avg (8) g81.16<1>UW g51.0<8,8,1>UB g52.0<8,8,1>UB {align1};
+
diff --git a/src/xvmc/shader/vld/read_frame_x1y0_uv.g4i b/src/xvmc/shader/vld/read_frame_x1y0_uv.g4i
new file mode 100644
index 0000000..05736f0
--- /dev/null
+++ b/src/xvmc/shader/vld/read_frame_x1y0_uv.g4i
@@ -0,0 +1,42 @@
+/*
+ * Copyright © 2008 Intel Corporation
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice (including the next
+ * paragraph) shall be included in all copies or substantial portions of the
+ * Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
+ * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+ * SOFTWARE.
+ *
+ * Author:
+ *    Zou Nan hai <nanhai.zou at intel.com>
+ *    Zhang Hua jun <huajun.zhang at intel.com>
+ *    Xing Dong sheng <dongsheng.xing at intel.com>
+ *
+ */
+
+mov (1) g32.8<1>UD 0x007000fUD  {align1};
+send (16) 0 g34.0<1>UW g32<8,8,1>UW read(input_surface1, 2, 0, 2) mlen 1 rlen 4 {align1};
+send (16) 0 g44.0<1>UW g32<8,8,1>UW read(input_surface2, 2, 0, 2) mlen 1 rlen 4 {align1};
+
+avg (16) g74.0<1>UW g34.0<16,8,1>UB g34.1<16,8,1>UB{align1};
+avg (16) g75.0<1>UW g35.0<16,8,1>UB g35.1<16,8,1>UB{align1};
+avg (16) g76.0<1>UW g36.0<16,8,1>UB g36.1<16,8,1>UB{align1};
+avg (16) g77.0<1>UW g37.0<16,8,1>UB g37.1<16,8,1>UB{align1};
+
+avg (16) g78.0<1>UW g44.0<16,8,1>UB g44.1<16,8,1>UB{align1};
+avg (16) g79.0<1>UW g45.0<16,8,1>UB g45.1<16,8,1>UB{align1};
+avg (16) g80.0<1>UW g46.0<16,8,1>UB g46.1<16,8,1>UB{align1};
+avg (16) g81.0<1>UW g47.0<16,8,1>UB g47.1<16,8,1>UB{align1};
diff --git a/src/xvmc/shader/vld/read_frame_x1y1_uv.g4i b/src/xvmc/shader/vld/read_frame_x1y1_uv.g4i
new file mode 100644
index 0000000..2f741fa
--- /dev/null
+++ b/src/xvmc/shader/vld/read_frame_x1y1_uv.g4i
@@ -0,0 +1,74 @@
+/*
+ */
+mov (1) g32.8<1>UD 0x007001FUD {align1};
+send (16) 0 g34.0<1>UW g32<8,8,1>UW read(input_surface1, 2, 0, 2) mlen 1 rlen 8 {align1}; //U
+send (16) 0 g44.0<1>UW g32<8,8,1>UW read(input_surface2, 2, 0, 2) mlen 1 rlen 8 {align1}; //V
+add (1) g32.4<1>UD g32.4<1,1,1>UD 8UD {align1};
+mov (1) g32.8<1>UD 0x1FUD {align1};
+send (16) 0 g42.0<1>UW g32<8,8,1>UW read(input_surface1, 2, 0, 2) mlen 1 rlen 1 {align1}; //U
+send (16) 0 g52.0<1>UW g32<8,8,1>UW read(input_surface2, 2, 0, 2) mlen 1 rlen 1 {align1}; //V
+
+//U
+add (8) g74.0<1>UW  g34.0<8,8,1>UB g34.1<8,8,1>UB {align1};
+add (8) g74.16<1>UW g35.0<8,8,1>UB g35.1<8,8,1>UB {align1};
+add (8) g75.0<1>UW  g36.0<8,8,1>UB g36.1<8,8,1>UB {align1};
+add (8) g75.16<1>UW g37.0<8,8,1>UB g37.1<8,8,1>UB {align1};
+add (8) g76.0<1>UW  g38.0<8,8,1>UB g38.1<8,8,1>UB {align1};
+add (8) g76.16<1>UW g39.0<8,8,1>UB g39.1<8,8,1>UB {align1};
+add (8) g77.0<1>UW  g40.0<8,8,1>UB g40.1<8,8,1>UB {align1};
+add (8) g77.16<1>UW g41.0<8,8,1>UB g41.1<8,8,1>UB {align1};
+
+add (8) g74.0<1>UW  g74.0<8,8,1>UW  g35.0<8,8,1>UB {align1};
+add (8) g74.16<1>UW g74.16<8,8,1>UW g36.0<8,8,1>UB {align1};
+add (8) g75.0<1>UW  g75.0<8,8,1>UW  g37.0<8,8,1>UB {align1};
+add (8) g75.16<1>UW g75.16<8,8,1>UW g38.0<8,8,1>UB {align1};
+add (8) g76.0<1>UW  g76.0<8,8,1>UW  g39.0<8,8,1>UB {align1};
+add (8) g76.16<1>UW g76.16<8,8,1>UW g40.0<8,8,1>UB {align1};
+add (8) g77.0<1>UW  g77.0<8,8,1>UW  g41.0<8,8,1>UB {align1};
+add (8) g77.16<1>UW g77.16<8,8,1>UW g42.0<8,8,1>UB {align1};
+
+add (8) g74.0<1>UW  g74.0<8,8,1>UW  g35.1<8,8,1>UB {align1};
+add (8) g74.16<1>UW g74.16<8,8,1>UW g36.1<8,8,1>UB {align1};
+add (8) g75.0<1>UW  g75.0<8,8,1>UW  g37.1<8,8,1>UB {align1};
+add (8) g75.16<1>UW g75.16<8,8,1>UW g38.1<8,8,1>UB {align1};
+add (8) g76.0<1>UW  g76.0<8,8,1>UW  g39.1<8,8,1>UB {align1};
+add (8) g76.16<1>UW g76.16<8,8,1>UW g40.1<8,8,1>UB {align1};
+add (8) g77.0<1>UW  g77.0<8,8,1>UW  g41.1<8,8,1>UB {align1};
+add (8) g77.16<1>UW g77.16<8,8,1>UW g42.1<8,8,1>UB {align1};
+
+//V
+add (8) g78.0<1>UW  g44.0<8,8,1>UB g44.1<8,8,1>UB {align1};
+add (8) g78.16<1>UW g45.0<8,8,1>UB g45.1<8,8,1>UB {align1};
+add (8) g79.0<1>UW  g46.0<8,8,1>UB g46.1<8,8,1>UB {align1};
+add (8) g79.16<1>UW g47.0<8,8,1>UB g47.1<8,8,1>UB {align1};
+add (8) g80.0<1>UW  g48.0<8,8,1>UB g48.1<8,8,1>UB {align1};
+add (8) g80.16<1>UW g49.0<8,8,1>UB g49.1<8,8,1>UB {align1};
+add (8) g81.0<1>UW  g50.0<8,8,1>UB g50.1<8,8,1>UB {align1};
+add (8) g81.16<1>UW g51.0<8,8,1>UB g51.1<8,8,1>UB {align1};
+
+add (8) g78.0<1>UW  g78.0<8,8,1>UW  g45.0<8,8,1>UB {align1};
+add (8) g78.16<1>UW g78.16<8,8,1>UW g46.0<8,8,1>UB {align1};
+add (8) g79.0<1>UW  g79.0<8,8,1>UW  g47.0<8,8,1>UB {align1};
+add (8) g79.16<1>UW g79.16<8,8,1>UW g48.0<8,8,1>UB {align1};
+add (8) g80.0<1>UW  g80.0<8,8,1>UW  g49.0<8,8,1>UB {align1};
+add (8) g80.16<1>UW g80.16<8,8,1>UW g50.0<8,8,1>UB {align1};
+add (8) g81.0<1>UW  g81.0<8,8,1>UW  g51.0<8,8,1>UB {align1};
+add (8) g81.16<1>UW g81.16<8,8,1>UW g52.0<8,8,1>UB {align1};
+
+add (8) g78.0<1>UW  g78.0<8,8,1>UW  g45.1<8,8,1>UB {align1};
+add (8) g78.16<1>UW g78.16<8,8,1>UW g46.1<8,8,1>UB {align1};
+add (8) g79.0<1>UW  g79.0<8,8,1>UW  g47.1<8,8,1>UB {align1};
+add (8) g79.16<1>UW g79.16<8,8,1>UW g48.1<8,8,1>UB {align1};
+add (8) g80.0<1>UW  g80.0<8,8,1>UW  g49.1<8,8,1>UB {align1};
+add (8) g80.16<1>UW g80.16<8,8,1>UW g50.1<8,8,1>UB {align1};
+add (8) g81.0<1>UW  g81.0<8,8,1>UW  g51.1<8,8,1>UB {align1};
+add (8) g81.16<1>UW g81.16<8,8,1>UW g52.1<8,8,1>UB {align1};
+
+shr (16) g74.0<1>UW g74.0<16,16,1>UW 2UW {align1};
+shr (16) g75.0<1>UW g75.0<16,16,1>UW 2UW {align1};
+shr (16) g76.0<1>UW g76.0<16,16,1>UW 2UW {align1};
+shr (16) g77.0<1>UW g77.0<16,16,1>UW 2UW {align1};
+shr (16) g78.0<1>UW g78.0<16,16,1>UW 2UW {align1};
+shr (16) g79.0<1>UW g79.0<16,16,1>UW 2UW {align1};
+shr (16) g80.0<1>UW g80.0<16,16,1>UW 2UW {align1};
+shr (16) g81.0<1>UW g81.0<16,16,1>UW 2UW {align1};
diff --git a/src/xvmc/xvmc_vld.c b/src/xvmc/xvmc_vld.c
index d563e0e..4f95842 100644
--- a/src/xvmc/xvmc_vld.c
+++ b/src/xvmc/xvmc_vld.c
@@ -190,8 +190,7 @@ static void calc_state_layout()
 
 static void *offset_to_ptr(unsigned long offset)
 {
-	return media_state.state_ptr + 
-	    (offset - media_state.state_base);
+    return media_state.state_ptr + (offset - media_state.state_base);
 }
 
 static void vfe_state()
@@ -532,7 +531,6 @@ static void vld_send_media_object(unsigned long slice_offset,
     OUT_BATCH(q_scale_code<<24);
     ADVANCE_BATCH();
 }
-
 static Status put_slice2(Display *display, XvMCContext *context, 
 	unsigned char *slice, int nbytes, int sliceCode)
 {
@@ -557,7 +555,8 @@ static Status put_slice2(Display *display, XvMCContext *context,
     urb_layout();	
     cs_urb_layout();
     cs_buffer();
-    vld_send_media_object(i965_ctx->slice.offset, nbytes, 
+    vld_send_media_object(i965_ctx->slice.offset, 
+	    nbytes, 
 	    0, mb_row, 6, 127, q_scale_code);
     intelFlushBatch(TRUE);
     UNLOCK_HARDWARE(intel_ctx->hw_context);
commit fe96e517699e37cc990a14dfb48b9611a02254ed
Author: Zhenyu Wang <zhenyu.z.wang at intel.com>
Date:   Thu Mar 26 10:54:02 2009 +0800

    xvmc: add missed vld g4i sources in Makefile and fix distcheck
    
    Don't miss the vld shader programs for dist.

diff --git a/src/xvmc/shader/vld/Makefile.am b/src/xvmc/shader/vld/Makefile.am
index 49e2043..74b06d2 100644
--- a/src/xvmc/shader/vld/Makefile.am
+++ b/src/xvmc/shader/vld/Makefile.am
@@ -1,3 +1,25 @@
+
+INTEL_G4I = addidct.g4i               \
+	    do_iq_intra.g4i           \
+	    do_iq_non_intra.g4i       \
+	    idct.g4i                  \
+	    iq_intra.g4i              \
+	    iq_non_intra.g4i          \
+	    motion_field_uv.g4i       \
+	    motion_field_y.g4i        \
+	    motion_frame_uv.g4i       \
+	    motion_frame_y.g4i        \
+	    read_field_x0y0_uv.g4i    \
+	    read_field_x0y0_y.g4i     \
+	    read_field_x0y1_y.g4i     \
+	    read_field_x1y0_y.g4i     \
+	    read_field_x1y1_y.g4i     \
+	    read_frame_x0y0_uv.g4i    \
+	    read_frame_x0y0_y.g4i     \
+	    read_frame_x0y1_y.g4i     \
+	    read_frame_x1y0_y.g4i     \
+	    read_frame_x1y1_y.g4i
+
 INTEL_G4A = ipicture.g4a 	\
 	    lib.g4a		\
 	    frame_forward.g4a	\
@@ -16,6 +38,10 @@ INTEL_G4B = ipicture.g4b	\
 	    field_backward.g4b  \
 	    field_f_b.g4b
 
+EXTRA_DIST = $(INTEL_G4I)	\
+	     $(INTEL_G4A)       \
+	     $(INTEL_G4B)    
+
 if HAVE_GEN4ASM
 
 SUFFIXES = .g4a .g4b
commit 91886f82a1155ca24eb895f77678ea1edfccf9fe
Author: Zhenyu Wang <zhenyu.z.wang at intel.com>
Date:   Thu Mar 26 10:51:05 2009 +0800

    xvmc: move 965 mc media programs to shader/mc directory
    
    Also include some missed g4i files in Makefile.am, fix shader build.

diff --git a/configure.ac b/configure.ac
index dc9de8c..2414a07 100644
--- a/configure.ac
+++ b/configure.ac
@@ -272,6 +272,7 @@ AC_OUTPUT([
 	src/Makefile
 	src/xvmc/Makefile
 	src/xvmc/shader/Makefile
+	src/xvmc/shader/mc/Makefile
 	src/xvmc/shader/vld/Makefile
 	src/bios_reader/Makefile
 	src/ch7017/Makefile
diff --git a/src/xvmc/Makefile.am b/src/xvmc/Makefile.am
index d8c539e..f4587d1 100644
--- a/src/xvmc/Makefile.am
+++ b/src/xvmc/Makefile.am
@@ -3,6 +3,7 @@ lib_LTLIBRARIES=libI810XvMC.la libIntelXvMC.la
 endif
 
 SUBDIRS = shader
+
 libI810XvMC_la_SOURCES = I810XvMC.c \
 			 I810XvMC.h
 
@@ -32,98 +33,3 @@ libIntelXvMC_la_CFLAGS = @XORG_CFLAGS@ @DRM_CFLAGS@ @DRI_CFLAGS@ \
 	@XVMCLIB_CFLAGS@ -I$(top_srcdir)/src -DTRUE=1 -DFALSE=0
 libIntelXvMC_la_LDFLAGS = -version-number 1:0:0
 libIntelXvMC_la_LIBADD = @DRI_LIBS@ @DRM_LIBS@ @XVMCLIB_LIBS@ @XEXT_LIBS@ -lpthread
-
-INTEL_G4A =                         \
-        dual_prime_igd.g4a              \
-        field_backward_igd.g4a          \
-        field_f_b_igd.g4a               \
-        field_forward_igd.g4a           \
-        frame_backward_igd.g4a          \
-        frame_f_b_igd.g4a               \
-        frame_forward_igd.g4a           \
-        dual_prime.g4a              \
-        field_backward.g4a          \
-        field_f_b.g4a               \
-        field_forward.g4a           \
-        frame_backward.g4a          \
-        frame_f_b.g4a               \
-        frame_forward.g4a           \
-        ipicture.g4a                \
-        null.g4a
-
-INTEL_G4I =                                      \
-        addidct.g4i                              \
-        block_clear.g4i                          \
-        read_frame_x0y0_y.g4i                    \
-        read_frame_x0y1_y.g4i                    \
-        read_frame_x1y0_y.g4i                    \
-        read_frame_x1y1_y.g4i                    \
-        read_frame_x0y0_uv.g4i                   \
-        read_frame_x0y1_uv.g4i                   \
-        read_frame_x1y0_uv.g4i                   \
-        read_frame_x1y1_uv.g4i                   \
-        read_frame_x0y0_y_igd.g4i                    \
-        read_frame_x0y1_y_igd.g4i                    \
-        read_frame_x1y0_y_igd.g4i                    \
-        read_frame_x1y1_y_igd.g4i                    \
-        read_frame_x0y0_uv_igd.g4i                   \
-        read_frame_x0y1_uv_igd.g4i                   \
-        read_frame_x1y0_uv_igd.g4i                   \
-        read_frame_x1y1_uv_igd.g4i                   \
-        motion_frame_y.g4i                       \
-        motion_frame_uv.g4i                      \
-        read_field_x0y0_y.g4i                    \
-        read_field_x0y1_y.g4i                    \
-        read_field_x1y0_y.g4i                    \
-        read_field_x1y1_y.g4i                    \
-        read_field_x0y0_uv.g4i                   \
-        read_field_x0y1_uv.g4i                   \
-        read_field_x1y0_uv.g4i                   \
-        read_field_x1y1_uv.g4i                   \
-        read_field_x0y0_y_igd.g4i                    \
-        read_field_x0y1_y_igd.g4i                    \
-        read_field_x1y0_y_igd.g4i                    \
-        read_field_x1y1_y_igd.g4i                    \
-        read_field_x0y0_uv_igd.g4i                   \
-        read_field_x0y1_uv_igd.g4i                   \
-        read_field_x1y0_uv_igd.g4i                   \
-        read_field_x1y1_uv_igd.g4i                   \
-        motion_field_y.g4i                       \
-        motion_field_uv.g4i
-
-INTEL_G4B =                         \
-        dual_prime.g4b              \
-        field_backward.g4b          \
-        field_f_b.g4b               \
-        field_forward.g4b           \
-        frame_backward.g4b          \
-        frame_f_b.g4b               \
-        frame_forward.g4b           \
-        dual_prime_igd.g4b              \
-        field_backward_igd.g4b          \
-        field_f_b_igd.g4b               \
-        field_forward_igd.g4b           \
-        frame_backward_igd.g4b          \
-        frame_f_b_igd.g4b               \
-        frame_forward_igd.g4b           \
-        ipicture.g4b                \
-        null.g4b
-
-EXTRA_DIST =            \
-        $(INTEL_G4A)    \
-        $(INTEL_G4I)    \
-        $(INTEL_G4B)    
-
-if HAVE_GEN4ASM
-
-SUFFIXES = .g4a .g4b
-.g4a.g4b:
-	m4 $*.g4a > $*.g4m && intel-gen4asm -o $@ $*.g4m && rm $*.g4m
-
-$(INTEL_G4B): $(INTEL_G4I)
-
-BUILT_SOURCES= $(INTEL_G4B)
-
-clean-local:
-	-rm -f $(INTEL_G4B)
-endif
diff --git a/src/xvmc/addidct.g4i b/src/xvmc/addidct.g4i
deleted file mode 100644
index bd3d5fe..0000000
--- a/src/xvmc/addidct.g4i
+++ /dev/null
@@ -1,152 +0,0 @@
-/*
- * Copyright © 2008 Intel Corporation
- *
- * Permission is hereby granted, free of charge, to any person obtaining a
- * copy of this software and associated documentation files (the "Software"),
- * to deal in the Software without restriction, including without limitation
- * the rights to use, copy, modify, merge, publish, distribute, sublicense,
- * and/or sell copies of the Software, and to permit persons to whom the
- * Software is furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice (including the next
- * paragraph) shall be included in all copies or substantial portions of the
- * Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
- * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
- * SOFTWARE.
- *
- * Author:
- *    Zou Nan hai <nanhai.zou at intel.com>
- *    Zhang Hua jun <huajun.zhang at intel.com>
- *    Xing Dong sheng <dongsheng.xing at intel.com>
- *
- */
-mov (8) g1.0<1>UD g76.0<8,8,1>UD{align1};
-//mov (8) g2.0<1>UD g77.0<8,8,1>UD{align1};
-
-mov (16) g44.1<2>UB 0W {align1};
-mov (16) g45.1<2>UB 0W {align1};
-mov (16) g46.1<2>UB 0W {align1};
-mov (16) g47.1<2>UB 0W {align1};
-mov (16) g48.1<2>UB 0W {align1};
-mov (16) g49.1<2>UB 0W {align1};
-mov (16) g50.1<2>UB 0W {align1};
-mov (16) g51.1<2>UB 0W {align1};
-
-and.nz (1) null g1.30<1,1,1>UB 1UW {align1};       //dct_type
-(f0) jmpi field_dct;
-//jmpi field_dct;
-add (16) g28.0<1>W g3.0<16,16,1>W g28.0<16,16,2>UB {align1};
-add (16) g29.0<1>W g4.0<16,16,1>W g29.0<16,16,2>UB {align1};
-add (16) g30.0<1>W g5.0<16,16,1>W g30.0<16,16,2>UB {align1};
-add (16) g31.0<1>W g6.0<16,16,1>W g31.0<16,16,2>UB {align1};
-add (16) g32.0<1>W g7.0<16,16,1>W g32.0<16,16,2>UB {align1};
-add (16) g33.0<1>W g8.0<16,16,1>W g33.0<16,16,2>UB {align1};
-add (16) g34.0<1>W g9.0<16,16,1>W g34.0<16,16,2>UB {align1};
-add (16) g35.0<1>W g10.0<16,16,1>W g35.0<16,16,2>UB {align1};
-add (16) g36.0<1>W g11.0<16,16,1>W g36.0<16,16,2>UB {align1};
-add (16) g37.0<1>W g12.0<16,16,1>W g37.0<16,16,2>UB {align1};
-add (16) g38.0<1>W g13.0<16,16,1>W g38.0<16,16,2>UB {align1};
-add (16) g39.0<1>W g14.0<16,16,1>W g39.0<16,16,2>UB {align1};
-add (16) g40.0<1>W g15.0<16,16,1>W g40.0<16,16,2>UB {align1};
-add (16) g41.0<1>W g16.0<16,16,1>W g41.0<16,16,2>UB {align1};
-add (16) g42.0<1>W g17.0<16,16,1>W g42.0<16,16,2>UB {align1};
-add (16) g43.0<1>W g18.0<16,16,1>W g43.0<16,16,2>UB {align1};
-jmpi write_back;
-
-field_dct:
-add (16) g28.0<1>W g3.0<16,16,1>W g28.0<16,16,2>UB {align1};
-add (16) g29.0<1>W g11.0<16,16,1>W g29.0<16,16,2>UB {align1};
-add (16) g30.0<1>W g4.0<16,16,1>W g30.0<16,16,2>UB {align1};
-add (16) g31.0<1>W g12.0<16,16,1>W g31.0<16,16,2>UB {align1};
-add (16) g32.0<1>W g5.0<16,16,1>W g32.0<16,16,2>UB {align1};
-add (16) g33.0<1>W g13.0<16,16,1>W g33.0<16,16,2>UB {align1};
-add (16) g34.0<1>W g6.0<16,16,1>W g34.0<16,16,2>UB {align1};
-add (16) g35.0<1>W g14.0<16,16,1>W g35.0<16,16,2>UB {align1};
-add (16) g36.0<1>W g7.0<16,16,1>W g36.0<16,16,2>UB {align1};
-add (16) g37.0<1>W g15.0<16,16,1>W g37.0<16,16,2>UB {align1};
-add (16) g38.0<1>W g8.0<16,16,1>W g38.0<16,16,2>UB {align1};
-add (16) g39.0<1>W g16.0<16,16,1>W g39.0<16,16,2>UB {align1};
-add (16) g40.0<1>W g9.0<16,16,1>W g40.0<16,16,2>UB {align1};
-add (16) g41.0<1>W g17.0<16,16,1>W g41.0<16,16,2>UB {align1};
-add (16) g42.0<1>W g10.0<16,16,1>W g42.0<16,16,2>UB {align1};
-add (16) g43.0<1>W g18.0<16,16,1>W g43.0<16,16,2>UB {align1};
-
-write_back:
-mov (1) g1.8<1>UD 0x00F000FUD {align1};
-mov.sat (16) g28.0<2>UB g28.0<16,16,1>W {align1};
-mov.sat (16) g29.0<2>UB g29.0<16,16,1>W {align1};
-mov.sat (16) g30.0<2>UB g30.0<16,16,1>W {align1};
-mov.sat (16) g31.0<2>UB g31.0<16,16,1>W {align1};
-mov.sat (16) g32.0<2>UB g32.0<16,16,1>W {align1};
-mov.sat (16) g33.0<2>UB g33.0<16,16,1>W {align1};
-mov.sat (16) g34.0<2>UB g34.0<16,16,1>W {align1};
-mov.sat (16) g35.0<2>UB g35.0<16,16,1>W {align1};
-mov.sat (16) g36.0<2>UB g36.0<16,16,1>W {align1};
-mov.sat (16) g37.0<2>UB g37.0<16,16,1>W {align1};
-mov.sat (16) g38.0<2>UB g38.0<16,16,1>W {align1};
-mov.sat (16) g39.0<2>UB g39.0<16,16,1>W {align1};
-mov.sat (16) g40.0<2>UB g40.0<16,16,1>W {align1};
-mov.sat (16) g41.0<2>UB g41.0<16,16,1>W {align1};
-mov.sat (16) g42.0<2>UB g42.0<16,16,1>W {align1};
-mov.sat (16) g43.0<2>UB g43.0<16,16,1>W {align1};
-
-mov (16) m1.0<1>UB g28.0<16,16,2>UB {align1};
-mov (16) m1.16<1>UB g29.0<16,16,2>UB {align1};
-mov (16) m2.0<1>UB g30.0<16,16,2>UB {align1};
-mov (16) m2.16<1>UB g31.0<16,16,2>UB {align1};
-mov (16) m3.0<1>UB g32.0<16,16,2>UB {align1};
-mov (16) m3.16<1>UB g33.0<16,16,2>UB {align1};
-mov (16) m4.0<1>UB g34.0<16,16,2>UB {align1};
-mov (16) m4.16<1>UB g35.0<16,16,2>UB {align1};
-mov (16) m5.0<1>UB g36.0<16,16,2>UB {align1};
-mov (16) m5.16<1>UB g37.0<16,16,2>UB {align1};
-mov (16) m6.0<1>UB g38.0<16,16,2>UB {align1};
-mov (16) m6.16<1>UB g39.0<16,16,2>UB {align1};
-mov (16) m7.0<1>UB g40.0<16,16,2>UB {align1};
-mov (16) m7.16<1>UB g41.0<16,16,2>UB {align1};
-mov (16) m8.0<1>UB g42.0<16,16,2>UB {align1};
-mov (16) m8.16<1>UB g43.0<16,16,2>UB {align1};
-send (16) 0 acc0<1>UW g1<8,8,1>UW write(0,0,2,0) mlen 9 rlen 0 {align1};
-
-//U
-mov (1) g1.8<1>UD 0x0070007UD  { align1 };
-shr (2) g1.0<1>UD g1.0<2,2,1>UD 1D {align1};
-add (16) g44.0<1>UW g19.0<16,16,1>W g44.0<16,16,1>UW {align1};
-add (16) g45.0<1>UW g20.0<16,16,1>W g45.0<16,16,1>UW {align1};
-add (16) g46.0<1>UW g21.0<16,16,1>W g46.0<16,16,1>UW {align1};
-add (16) g47.0<1>UW g22.0<16,16,1>W g47.0<16,16,1>UW {align1};
-mov.sat (16) g44.0<2>UB g44.0<16,16,1>UW {align1};
-mov.sat (16) g45.0<2>UB g45.0<16,16,1>UW {align1};
-mov.sat (16) g46.0<2>UB g46.0<16,16,1>UW {align1};
-mov.sat (16) g47.0<2>UB g47.0<16,16,1>UW {align1};
-
-mov (16) m1.0<1>UB g44.0<16,16,2>UB {align1};
-mov (16) m1.16<1>UB g45.0<16,16,2>UB {align1};
-mov (16) m2.0<1>UB g46.0<16,16,2>UB {align1};
-mov (16) m2.16<1>UB g47.0<16,16,2>UB {align1};
-send (16) 0 acc0<1>UW g1<8,8,1>UW write(1, 0, 2, 0) mlen 3 rlen 0 { align1 };
-
-//V
-add (16) g48.0<1>UW g23.0<16,16,1>W g48.0<16,16,1>UW {align1};
-add (16) g49.0<1>UW g24.0<16,16,1>W g49.0<16,16,1>UW {align1};
-add (16) g50.0<1>UW g25.0<16,16,1>W g50.0<16,16,1>UW {align1};
-add (16) g51.0<1>UW g26.0<16,16,1>W g51.0<16,16,1>UW {align1};
-mov.sat (16) g48.0<2>UB g48.0<16,16,1>UW {align1};
-mov.sat (16) g49.0<2>UB g49.0<16,16,1>UW {align1};
-mov.sat (16) g50.0<2>UB g50.0<16,16,1>UW {align1};
-mov.sat (16) g51.0<2>UB g51.0<16,16,1>UW {align1};
-
-mov (16) m1.0<1>UB g48.0<16,16,2>UB {align1};
-mov (16) m1.16<1>UB g49.0<16,16,2>UB {align1};
-mov (16) m2.0<1>UB g50.0<16,16,2>UB {align1};
-mov (16) m2.16<1>UB g51.0<16,16,2>UB {align1};
-send (16) 0 acc0<1>UW g1<8,8,1>UW write(2, 0, 2, 0) mlen 3 rlen 0 { align1 };
-
-send (16) 0 acc0<1>UW g0<8,8,1>UW
-        thread_spawner(0, 0, 0) mlen 1 rlen 0 { align1 EOT};
diff --git a/src/xvmc/block_clear.g4i b/src/xvmc/block_clear.g4i
deleted file mode 100644
index ce12f3b..0000000
--- a/src/xvmc/block_clear.g4i
+++ /dev/null
@@ -1,140 +0,0 @@
-/*
- * Copyright © 2008 Intel Corporation
- *
- * Permission is hereby granted, free of charge, to any person obtaining a
- * copy of this software and associated documentation files (the "Software"),
- * to deal in the Software without restriction, including without limitation
- * the rights to use, copy, modify, merge, publish, distribute, sublicense,
- * and/or sell copies of the Software, and to permit persons to whom the
- * Software is furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice (including the next
- * paragraph) shall be included in all copies or substantial portions of the
- * Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
- * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
- * SOFTWARE.
- *
- * Author:
- *    Zou Nan hai <nanhai.zou at intel.com>
- *
- */
-
-and.nz (1) null g2.0<1,1,1>UD 0x1UD{align1};
-(f0) jmpi direct_idct;
-add (1) g2.8<1>UD g76.8<1,1,1>UD 0UD{align1};
-send (16) 0 g3.0<1>UD g2<16,16,1>UD read(3, 0, 2, 0) mlen 1 rlen 1 { align1 };
-add (1) g2.8<1>UD g2.8<1,1,1>UD 32UD {align1};
-send (16) 0 g4.0<1>UD g2<16,16,1>UD read(3, 0, 2, 0) mlen 1 rlen 1 { align1 };
-add (1) g2.8<1>UD g2.8<1,1,1>UD 32UD {align1};
-send (16) 0 g5.0<1>UD g2<16,16,1>UD read(3, 0, 2, 0) mlen 1 rlen 1 { align1 };
-add (1) g2.8<1>UD g2.8<1,1,1>UD 32UD {align1};
-send (16) 0 g6.0<1>UD g2<16,16,1>UD read(3, 0, 2, 0) mlen 1 rlen 1 { align1 };
-add (1) g2.8<1>UD g2.8<1,1,1>UD 32UD {align1};
-send (16) 0 g7.0<1>UD g2<16,16,1>UD read(3, 0, 2, 0) mlen 1 rlen 1 { align1 };
-add (1) g2.8<1>UD g2.8<1,1,1>UD 32UD {align1};
-send (16) 0 g8.0<1>UD g2<16,16,1>UD read(3, 0, 2, 0) mlen 1 rlen 1 { align1 };
-add (1) g2.8<1>UD g2.8<1,1,1>UD 32UD {align1};
-send (16) 0 g9.0<1>UD g2<16,16,1>UD read(3, 0, 2, 0) mlen 1 rlen 1 { align1 };
-add (1) g2.8<1>UD g2.8<1,1,1>UD 32UD {align1};
-send (16) 0 g10.0<1>UD g2<16,16,1>UD read(3, 0, 2, 0) mlen 1 rlen 1 { align1 };
-add (1) g2.8<1>UD g2.8<1,1,1>UD 32UD {align1};
-send (16) 0 g11.0<1>UD g2<16,16,1>UD read(3, 0, 2, 0) mlen 1 rlen 1 { align1 };
-add (1) g2.8<1>UD g2.8<1,1,1>UD 32UD {align1};
-send (16) 0 g12.0<1>UD g2<16,16,1>UD read(3, 0, 2, 0) mlen 1 rlen 1 { align1 };
-add (1) g2.8<1>UD g2.8<1,1,1>UD 32UD {align1};
-send (16) 0 g13.0<1>UD g2<16,16,1>UD read(3, 0, 2, 0) mlen 1 rlen 1 { align1 };
-add (1) g2.8<1>UD g2.8<1,1,1>UD 32UD {align1};
-send (16) 0 g14.0<1>UD g2<16,16,1>UD read(3, 0, 2, 0) mlen 1 rlen 1 { align1 };
-add (1) g2.8<1>UD g2.8<1,1,1>UD 32UD {align1};
-send (16) 0 g15.0<1>UD g2<16,16,1>UD read(3, 0, 2, 0) mlen 1 rlen 1 { align1 };
-add (1) g2.8<1>UD g2.8<1,1,1>UD 32UD {align1};
-send (16) 0 g16.0<1>UD g2<16,16,1>UD read(3, 0, 2, 0) mlen 1 rlen 1 { align1 };
-add (1) g2.8<1>UD g2.8<1,1,1>UD 32UD {align1};
-send (16) 0 g17.0<1>UD g2<16,16,1>UD read(3, 0, 2, 0) mlen 1 rlen 1 { align1 };
-add (1) g2.8<1>UD g2.8<1,1,1>UD 32UD {align1};
-send (16) 0 g18.0<1>UD g2<16,16,1>UD read(3, 0, 2, 0) mlen 1 rlen 1 { align1 };
-add (1) g2.8<1>UD g2.8<1,1,1>UD 32UD {align1};
-send (16) 0 g19.0<1>UD g2<16,16,1>UD read(3, 0, 2, 0) mlen 1 rlen 1 { align1 };
-add (1) g2.8<1>UD g2.8<1,1,1>UD 32UD {align1};
-send (16) 0 g20.0<1>UD g2<16,16,1>UD read(3, 0, 2, 0) mlen 1 rlen 1 { align1 };
-add (1) g2.8<1>UD g2.8<1,1,1>UD 32UD {align1};
-send (16) 0 g21.0<1>UD g2<16,16,1>UD read(3, 0, 2, 0) mlen 1 rlen 1 { align1 };
-add (1) g2.8<1>UD g2.8<1,1,1>UD 32UD {align1};
-send (16) 0 g22.0<1>UD g2<16,16,1>UD read(3, 0, 2, 0) mlen 1 rlen 1 { align1 };
-add (1) g2.8<1>UD g2.8<1,1,1>UD 32UD {align1};
-send (16) 0 g23<1>UD g2<16,16,1>UD read(3, 0, 2, 0) mlen 1 rlen 1 { align1 };
-add (1) g2.8<1>UD g2.8<1,1,1>UD 32UD {align1};
-send (16) 0 g24.0<1>UD g2<16,16,1>UD read(3, 0, 2, 0) mlen 1 rlen 1 { align1 };
-add (1) g2.8<1>UD g2.8<1,1,1>UD 32UD {align1};
-send (16) 0 g25.0<1>UD g2<16,16,1>UD read(3, 0, 2, 0) mlen 1 rlen 1 { align1 };
-add (1) g2.8<1>UD g2.8<1,1,1>UD 32UD {align1};
-send (16) 0 g26.0<1>UD g2<16,16,1>UD read(3, 0, 2, 0) mlen 1 rlen 1 { align1 };
-direct_idct:
-
-and.nz (1) null g76.12<1,1,1>UW 0x20UW {align1};
-(f0) jmpi next_block;
-mov (8) g3.0<1>UW 0UW {align1}; 
-mov (8) g4.0<1>UW 0UW {align1}; 
-mov (8) g5.0<1>UW 0UW {align1}; 
-mov (8) g6.0<1>UW 0UW {align1}; 
-mov (8) g7.0<1>UW 0UW {align1}; 
-mov (8) g8.0<1>UW 0UW {align1}; 
-mov (8) g9.0<1>UW 0UW {align1}; 
-mov (8) g10.0<1>UW 0UW {align1}; 
-next_block:
-
-and.nz (1) null g1.12<1,1,1>UW 0x10UW {align1};
-(f0) jmpi next_field;
-mov (8) g3.16<1>UW 0UW {align1}; 
-mov (8) g4.16<1>UW 0UW {align1}; 
-mov (8) g5.16<1>UW 0UW {align1}; 
-mov (8) g6.16<1>UW 0UW {align1}; 
-mov (8) g7.16<1>UW 0UW {align1}; 
-mov (8) g8.16<1>UW 0UW {align1}; 
-mov (8) g9.16<1>UW 0UW {align1}; 
-mov (8) g10.16<1>UW 0UW {align1}; 
-next_field:
-and.nz (1) null g1.12<1,1,1>UW 0x8UW {align1};
-(f0) jmpi next_field;
-mov (8) g11.0<1>UW 0UW {align1}; 
-mov (8) g12.0<1>UW 0UW {align1}; 
-mov (8) g13.0<1>UW 0UW {align1}; 
-mov (8) g14.0<1>UW 0UW {align1}; 
-mov (8) g15.0<1>UW 0UW {align1}; 
-mov (8) g16.0<1>UW 0UW {align1}; 
-mov (8) g17.0<1>UW 0UW {align1}; 
-mov (8) g18.0<1>UW 0UW {align1}; 
-next_field:
-and.nz (1) null g1.12<1,1,1>UW 0x4UW {align1};
-(f0) jmpi next_field;
-mov (8) g11.16<1>UW 0UW {align1}; 
-mov (8) g12.16<1>UW 0UW {align1}; 
-mov (8) g13.16<1>UW 0UW {align1}; 
-mov (8) g14.16<1>UW 0UW {align1}; 
-mov (8) g15.16<1>UW 0UW {align1}; 
-mov (8) g16.16<1>UW 0UW {align1}; 
-mov (8) g17.16<1>UW 0UW {align1}; 
-mov (8) g18.16<1>UW 0UW {align1}; 
-next_field:
-
-and.nz (1) null g1.12<1,1,1>UW 0x2UW {align1};
-(f0) jmpi next_field;
-mov (16) g19.0<1>UW 0UW {align1}; 
-mov (16) g20.0<1>UW 0UW {align1}; 
-mov (16) g21.0<1>UW 0UW {align1}; 
-mov (16) g22.0<1>UW 0UW {align1}; 
-next_field:
-
-and.nz (1) null g1.12<1,1,1>UW 0x1UW {align1};
-(f0) jmpi next_field;
-mov (16) g23.0<1>UW 0UW {align1}; 
-mov (16) g24.0<1>UW 0UW {align1}; 
-mov (16) g25.0<1>UW 0UW {align1}; 
-mov (16) g26.0<1>UW 0UW {align1}; 
-next_field:
diff --git a/src/xvmc/dual_prime.g4a b/src/xvmc/dual_prime.g4a
deleted file mode 100644
index 7066a75..0000000
--- a/src/xvmc/dual_prime.g4a
+++ /dev/null
@@ -1,223 +0,0 @@
-/*
- * Copyright © 2008 Intel Corporation
- *
- * Permission is hereby granted, free of charge, to any person obtaining a
- * copy of this software and associated documentation files (the "Software"),
- * to deal in the Software without restriction, including without limitation
- * the rights to use, copy, modify, merge, publish, distribute, sublicense,
- * and/or sell copies of the Software, and to permit persons to whom the
- * Software is furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice (including the next
- * paragraph) shall be included in all copies or substantial portions of the
- * Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
- * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
- * SOFTWARE.
- *
- * Author:
- *    Zou Nan hai <nanhai.zou at intel.com>
- *    Zhang Hua jun <huajun.zhang at intel.com>
- *    Xing Dong sheng <dongsheng.xing at intel.com>
- *
- */
-mov (8) g76.0<1>UD g1.0<8,8,1>UD {align1};
-//mov (8) g77.0<1>UD g2.0<8,8,1>UD {align1};
-
-include(`block_clear.g4i')
-mov (8) g115.0<1>UD g1.0<8,8,1>UD {align1};
-mov (8) g116.0<1>UD g1.0<8,8,1>UD {align1};
-
-/* forward---Y---first vector*/
-mov(1) g115.8<1>UD 0x007001fUD  { align1 };
-asr (2) g115.14<1>W g1.14<2,2,1>W 1W {align1};
-add (2) g115.0<1>D g116.0<2,2,1>D g115.14<2,2,1>W {align1};
-and (1) g115.4<1>UD g115.4<1,1,1>UD 0xFFFFFFFEUD {align1};
-mov(1) g115.8<1>UD 0x1fUD  { align1 }; //read 1 line, 32 columns.
-and.nz (1) null g1.31<1,1,1>UB 0x1UW {align1};
-(f0) add (1) g115.4<1>D g115.4<1,1,1>D 1D {align1};
-define(`surface',`4')
-define(`mv1',`g1.14')
-define(`mv2',`g1.16')
-include(`motion_field_y.g4i')
-mov (8) g52.0<1>UD g96.0<8,8,1>UD {align1};
-mov (8) g54.0<1>UD g97.0<8,8,1>UD {align1};
-mov (8) g56.0<1>UD g98.0<8,8,1>UD {align1};
-mov (8) g58.0<1>UD g99.0<8,8,1>UD {align1};
-mov (8) g60.0<1>UD g100.0<8,8,1>UD {align1};
-mov (8) g62.0<1>UD g101.0<8,8,1>UD {align1};
-mov (8) g64.0<1>UD g102.0<8,8,1>UD {align1};
-mov (8) g66.0<1>UD g103.0<8,8,1>UD {align1};
-
-/*forward---Y---second vector*/
-asr (2) g115.14<1>W g1.22<2,2,1>W 1W {align1};
-add (2) g115.0<1>D g116.0<2,2,1>D g115.14<2,2,1>W {align1};
-and (1) g115.4<1>UD g115.4<1,1,1>UD 0xFFFFFFFEUD {align1};
-mov(1) g115.8<1>UD 0x1fUD { align1 }; //read 1 line, 32 columns.
-and.nz (1) null g1.31<1,1,1>UB 0x4UD {align1};
-(f0) add (1) g115.4<1>D g115.4<1,1,1>D 1D {align1};
-define(`surface',`4')
-define(`mv1',`g1.22')
-define(`mv2',`g1.24')
-include(`motion_field_y.g4i')
-mov (8) g53.0<1>UD g96.0<8,8,1>UD {align1};
-mov (8) g55.0<1>UD g97.0<8,8,1>UD {align1};
-mov (8) g57.0<1>UD g98.0<8,8,1>UD {align1};
-mov (8) g59.0<1>UD g99.0<8,8,1>UD {align1};
-mov (8) g61.0<1>UD g100.0<8,8,1>UD {align1};
-mov (8) g63.0<1>UD g101.0<8,8,1>UD {align1};
-mov (8) g65.0<1>UD g102.0<8,8,1>UD {align1};
-mov (8) g67.0<1>UD g103.0<8,8,1>UD {align1};
-
-/*forward---UV---first vector*/
-mov(1) g115.8<1>UD 0x007000fUD  { align1 };
-asr (2) g115.14<1>W g1.14<2,2,1>W 2W {align1};
-asr (2) g115.0<1>D g116.0<2,2,1>D 1D {align1};
-add (2) g115.0<1>D g115.0<2,2,1>D g115.14<2,2,1>W {align1};
-and (1) g115.4<1>UD g115.4<1,1,1>UD 0xFFFFFFFEUD {align1};
-and.nz (1) null g1.31<1,1,1>UB 0x1UW {align1};
-(f0) add (1) g115.4<1>UD g115.4<1,1,1>UD 1UD {align1};
-define(`surface_u',`5')
-define(`surface_v',`6')
-define(`mv1',`g1.14')
-define(`mv2',`g1.16')
-include(`motion_field_uv.g4i')
-mov (8) g68.0<1>UW g78.0<8,8,1>UW {align1};
-mov (8) g69.0<1>UW g79.0<8,8,1>UW {align1};
-mov (8) g70.0<1>UW g80.0<8,8,1>UW {align1};
-mov (8) g71.0<1>UW g81.0<8,8,1>UW {align1};
-mov (8) g72.0<1>UW g82.0<8,8,1>UW {align1};
-mov (8) g73.0<1>UW g83.0<8,8,1>UW {align1};
-mov (8) g74.0<1>UW g84.0<8,8,1>UW {align1};
-mov (8) g75.0<1>UW g85.0<8,8,1>UW {align1};
-
-/*forward---UV---second vector */
-asr (2) g115.14<1>W g1.22<2,2,1>W 2W {align1};
-asr (2) g115.0<1>D g116.0<2,2,1>D 1D {align1};
-add (2) g115.0<1>D g115.0<2,2,1>D g115.14<2,2,1>W {align1};
-and (1) g115.4<1>UD g115.4<1,1,1>UD 0xFFFFFFFEUD {align1};
-and.nz (1) null g1.31<1,1,1>UB 0x4UW {align1};
-(f0) add (1) g115.4<1>UD g115.4<1,1,1>UD 1UD {align1};
-define(`mv1',`g1.24')
-define(`mv2',`g1.26')
-include(`motion_field_uv.g4i')
-mov (8) g68.16<1>UW g78.0<8,8,1>UW {align1};
-mov (8) g69.16<1>UW g79.0<8,8,1>UW {align1};
-mov (8) g70.16<1>UW g80.0<8,8,1>UW {align1};
-mov (8) g71.16<1>UW g81.0<8,8,1>UW {align1};
-mov (8) g72.16<1>UW g82.0<8,8,1>UW {align1};
-mov (8) g73.16<1>UW g83.0<8,8,1>UW {align1};
-mov (8) g74.16<1>UW g84.0<8,8,1>UW {align1};
-mov (8) g75.16<1>UW g85.0<8,8,1>UW {align1};
-
-/*backward---Y---first vector */
-mov(8) g1.0<1>UD g116.0<8,8,1>UD {align1};
-mov(1) g115.8<1>UD 0x007001fUD  { align1 };
-mov(1) g1.8<1>UD 0x007000fUD  { align1 };
-asr (2) g115.14<1>W g1.18<2,2,1>W 1W {align1};
-add (2) g115.0<1>D g116.0<2,2,1>D g115.14<2,2,1>W {align1};
-and (1) g115.4<1>UD g115.4<1,1,1>UD 0xFFFFFFFEUD {align1};
-mov(1) g115.8<1>UD 0x1fUD  { align1 }; //read 1 line, 32 columns.
-and.nz (1) null g1.31<1,1,1>UB 0x2UW {align1};
-(f0) add (1) g115.4<1>D g115.4<1,1,1>D 1D {align1};
-define(`surface',`7')
-define(`mv1',`g1.18')
-define(`mv2',`g1.20')
-include(`motion_field_y.g4i')
-mov (8) g28.0<1>UD g96.0<8,8,1>UD {align1};
-mov (8) g30.0<1>UD g97.0<8,8,1>UD {align1};
-mov (8) g32.0<1>UD g98.0<8,8,1>UD {align1};
-mov (8) g34.0<1>UD g99.0<8,8,1>UD {align1};
-mov (8) g36.0<1>UD g100.0<8,8,1>UD {align1};
-mov (8) g38.0<1>UD g101.0<8,8,1>UD {align1};
-mov (8) g40.0<1>UD g102.0<8,8,1>UD {align1};
-mov (8) g42.0<1>UD g103.0<8,8,1>UD {align1};
-
-/*backward---Y---second vector */
-asr (2) g115.14<1>W g1.26<2,2,1>W 1W {align1};
-add (2) g115.0<1>D g116.0<2,2,1>D g115.14<2,2,1>W {align1};
-and (1) g115.4<1>UD g115.4<1,1,1>UD 0xFFFFFFFEUD {align1};
-mov(1) g115.8<1>UD 0x1fUD  { align1 }; //read 1 line, 32 columns.
-and.nz (1) null g2.20<1,1,1>UD 0x8UD {align1};
-(f0) add (1) g115.4<1>D g115.4<1,1,1>D 1D {align1};
-define(`surface',`7')
-define(`mv1',`g1.26')
-define(`mv2',`g1.28')
-include(`motion_field_y.g4i')
-
-avg.sat (16) g28.0<1>UW g52.0<16,16,1>UW g28.0<16,16,1>UW {align1};
-avg.sat (16) g29.0<1>UW g53.0<16,16,1>UW g96.0<16,16,1>UW {align1};
-avg.sat (16) g30.0<1>UW g54.0<16,16,1>UW g30.0<16,16,1>UW {align1};
-avg.sat (16) g31.0<1>UW g55.0<16,16,1>UW g97.0<16,16,1>UW {align1};
-avg.sat (16) g32.0<1>UW g56.0<16,16,1>UW g32.0<16,16,1>UW {align1};
-avg.sat (16) g33.0<1>UW g57.0<16,16,1>UW g98.0<16,16,1>UW {align1};
-avg.sat (16) g34.0<1>UW g58.0<16,16,1>UW g34.0<16,16,1>UW {align1};
-avg.sat (16) g35.0<1>UW g59.0<16,16,1>UW g99.0<16,16,1>UW {align1};
-avg.sat (16) g36.0<1>UW g60.0<16,16,1>UW g36.0<16,16,1>UW {align1};
-avg.sat (16) g37.0<1>UW g61.0<16,16,1>UW g100.0<16,16,1>UW {align1};
-avg.sat (16) g38.0<1>UW g62.0<16,16,1>UW g38.0<16,16,1>UW {align1};
-avg.sat (16) g39.0<1>UW g63.0<16,16,1>UW g101.0<16,16,1>UW {align1};
-avg.sat (16) g40.0<1>UW g64.0<16,16,1>UW g40.0<16,16,1>UW {align1};
-avg.sat (16) g41.0<1>UW g65.0<16,16,1>UW g102.0<16,16,1>UW {align1};
-avg.sat (16) g42.0<1>UW g66.0<16,16,1>UW g42.0<16,16,1>UW {align1};
-avg.sat (16) g43.0<1>UW g67.0<16,16,1>UW g103.0<16,16,1>UW {align1};
-
-/*backward---UV---first vector */
-mov(1) g115.8<1>UD 0x007000fUD  { align1 };
-asr (2) g115.14<1>W g1.18<2,2,1>W 2W {align1};
-asr (2) g115.0<1>D g116.0<2,2,1>D 1D {align1};
-add (2) g115.0<1>D g115.0<2,2,1>D g115.14<2,2,1>W {align1};
-and (1) g115.4<1>UD g115.4<1,1,1>UD 0xFFFFFFFEUD {align1};
-and.nz (1) null g1.31<1,1,1>UB 0x2UW {align1};
-(f0) add (1) g115.4<1>UD g115.4<1,1,1>UD 1UD {align1};
-define(`surface_u',`8')
-define(`surface_v',`9')
-define(`mv1',`g1.18')
-define(`mv2',`g1.20')
-include(`motion_field_uv.g4i')
-mov (8) g44.0<1>UW g78.0<8,8,1>UW {align1};
-mov (8) g45.0<1>UW g79.0<8,8,1>UW {align1};
-mov (8) g46.0<1>UW g80.0<8,8,1>UW {align1};
-mov (8) g47.0<1>UW g81.0<8,8,1>UW {align1};
-mov (8) g48.0<1>UW g82.0<8,8,1>UW {align1};
-mov (8) g49.0<1>UW g83.0<8,8,1>UW {align1};
-mov (8) g50.0<1>UW g84.0<8,8,1>UW {align1};
-mov (8) g51.0<1>UW g85.0<8,8,1>UW {align1};
-
-/*backward---UV---second vector */
-asr (2) g115.14<1>W g1.26<2,2,1>W 2W {align1};
-asr (2) g115.0<1>D g116.0<2,2,1>D 1D {align1};
-add (2) g115.0<1>D g115.0<2,2,1>D g115.14<2,2,1>W {align1};
-and (1) g115.4<1>UD g115.4<1,1,1>UD 0xFFFFFFFEUD {align1};
-and.nz (1) null g1.31<1,1,1>UB 0x8UW {align1};
-(f0) add (1) g115.4<1>UD g115.4<1,1,1>UD 1UD {align1};
-define(`mv1',`g1.26')
-define(`mv2',`g1.28')
-include(`motion_field_uv.g4i')
-mov (8) g44.16<1>UW g78.0<8,8,1>UW {align1};
-mov (8) g45.16<1>UW g79.0<8,8,1>UW {align1};
-mov (8) g46.16<1>UW g80.0<8,8,1>UW {align1};
-mov (8) g47.16<1>UW g81.0<8,8,1>UW {align1};
-mov (8) g48.16<1>UW g82.0<8,8,1>UW {align1};
-mov (8) g49.16<1>UW g83.0<8,8,1>UW {align1};
-mov (8) g50.16<1>UW g84.0<8,8,1>UW {align1};
-mov (8) g51.16<1>UW g85.0<8,8,1>UW {align1};
-
-avg.sat (16) g44.0<1>UW g68.0<16,16,1>UW g44.0<16,16,1>UW {align1};
-avg.sat (16) g45.0<1>UW g69.0<16,16,1>UW g45.0<16,16,1>UW {align1};
-avg.sat (16) g46.0<1>UW g70.0<16,16,1>UW g46.0<16,16,1>UW {align1};
-avg.sat (16) g47.0<1>UW g71.0<16,16,1>UW g47.0<16,16,1>UW {align1};
-avg.sat (16) g48.0<1>UW g72.0<16,16,1>UW g48.0<16,16,1>UW {align1};
-avg.sat (16) g49.0<1>UW g73.0<16,16,1>UW g49.0<16,16,1>UW {align1};
-avg.sat (16) g50.0<1>UW g74.0<16,16,1>UW g50.0<16,16,1>UW {align1};
-avg.sat (16) g51.0<1>UW g75.0<16,16,1>UW g51.0<16,16,1>UW {align1};
-
-include(`addidct.g4i')
-
-//send (16) 0 acc0<1>UW g0<8,8,1>UW 
-//	thread_spawner(0, 0, 0) mlen 1 rlen 0 { align1 EOT};
diff --git a/src/xvmc/dual_prime.g4b b/src/xvmc/dual_prime.g4b
deleted file mode 100644
index 4a1eb4b..0000000
--- a/src/xvmc/dual_prime.g4b
+++ /dev/null
@@ -1,2486 +0,0 @@
-   { 0x00600001, 0x29800021, 0x008d0020, 0x00000000 },
-   { 0x02000005, 0x20000c3c, 0x00210040, 0x00000001 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000030 },
-   { 0x00000040, 0x20480c21, 0x00210988, 0x00000000 },
-   { 0x00800031, 0x20601c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x20801c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x20a01c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x20c01c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x20e01c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x21001c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x21201c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x21401c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x21601c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x21801c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x21a01c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x21c01c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x21e01c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x22001c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x22201c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x22401c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x22601c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x22801c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x22a01c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x22c01c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x22e01c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x23001c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x23201c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x23401c21, 0x00b10040, 0x04110203 },
-   { 0x02000005, 0x20002d3c, 0x0021098c, 0x00200020 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000008 },
-   { 0x00600001, 0x20600169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x20800169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x20a00169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x20c00169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x20e00169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x21000169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x21200169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x21400169, 0x00000000, 0x00000000 },
-   { 0x02000005, 0x20002d3c, 0x0021002c, 0x00100010 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000008 },
-   { 0x00600001, 0x20700169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x20900169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x20b00169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x20d00169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x20f00169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x21100169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x21300169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x21500169, 0x00000000, 0x00000000 },
-   { 0x02000005, 0x20002d3c, 0x0021002c, 0x00080008 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000008 },
-   { 0x00600001, 0x21600169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x21800169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x21a00169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x21c00169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x21e00169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x22000169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x22200169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x22400169, 0x00000000, 0x00000000 },
-   { 0x02000005, 0x20002d3c, 0x0021002c, 0x00040004 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000008 },
-   { 0x00600001, 0x21700169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x21900169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x21b00169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x21d00169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x21f00169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x22100169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x22300169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x22500169, 0x00000000, 0x00000000 },
-   { 0x02000005, 0x20002d3c, 0x0021002c, 0x00020002 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000004 },
-   { 0x00800001, 0x22600169, 0x00000000, 0x00000000 },
-   { 0x00800001, 0x22800169, 0x00000000, 0x00000000 },
-   { 0x00800001, 0x22a00169, 0x00000000, 0x00000000 },
-   { 0x00800001, 0x22c00169, 0x00000000, 0x00000000 },
-   { 0x02000005, 0x20002d3c, 0x0021002c, 0x00010001 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000004 },
-   { 0x00800001, 0x22e00169, 0x00000000, 0x00000000 },
-   { 0x00800001, 0x23000169, 0x00000000, 0x00000000 },
-   { 0x00800001, 0x23200169, 0x00000000, 0x00000000 },
-   { 0x00800001, 0x23400169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x2e600021, 0x008d0020, 0x00000000 },
-   { 0x00600001, 0x2e800021, 0x008d0020, 0x00000000 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0007001f },
-   { 0x0020000c, 0x2e6e3dad, 0x0045002e, 0x00010001 },
-   { 0x00200040, 0x2e6034a5, 0x00450e80, 0x00450e6e },
-   { 0x00000005, 0x2e640c21, 0x00210e64, 0xfffffffe },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
-   { 0x02000005, 0x20002e3c, 0x0021003f, 0x00010001 },
-   { 0x00010040, 0x2e641ca5, 0x00210e64, 0x00000001 },
-   { 0x01000005, 0x20002d3c, 0x0021002e, 0x00010001 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x000000b1 },
-   { 0x01000005, 0x20002d3c, 0x00210030, 0x00010001 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x0000007d },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
-   { 0x00800031, 0x29c01d29, 0x008d0e60, 0x0411a004 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a001d29, 0x008d0e60, 0x0411a004 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a401d29, 0x008d0e60, 0x0411a004 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a801d29, 0x008d0e60, 0x0411a004 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0007001f },
-   { 0x00800031, 0x2ac01d29, 0x008d0e60, 0x0418a004 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
-   { 0x00800031, 0x2bc01d29, 0x008d0e60, 0x0411a004 },
-   { 0x00000005, 0x20580c21, 0x00210e60, 0x00000003 },
-   { 0x00000041, 0x20580c21, 0x00210058, 0x00000019 },
-   { 0x00000020, 0x34001400, 0x00001400, 0x00210058 },
-   { 0x00800040, 0x2c004629, 0x00b109c0, 0x00b10a00 },
-   { 0x00800040, 0x2c204629, 0x00b10a00, 0x00b10a40 },
-   { 0x00800040, 0x2c404629, 0x00b10a40, 0x00b10a80 },
-   { 0x00800040, 0x2c604629, 0x00b10a80, 0x00b10ac0 },
-   { 0x00800040, 0x2c804629, 0x00b10ac0, 0x00b10b00 },
-   { 0x00800040, 0x2ca04629, 0x00b10b00, 0x00b10b40 },
-   { 0x00800040, 0x2cc04629, 0x00b10b40, 0x00b10b80 },
-   { 0x00800040, 0x2ce04629, 0x00b10b80, 0x00b10bc0 },
-   { 0x00800040, 0x2c004529, 0x00b10c00, 0x00b109c1 },
-   { 0x00800040, 0x2c204529, 0x00b10c20, 0x00b10a01 },
-   { 0x00800040, 0x2c404529, 0x00b10c40, 0x00b10a41 },
-   { 0x00800040, 0x2c604529, 0x00b10c60, 0x00b10a81 },
-   { 0x00800040, 0x2c804529, 0x00b10c80, 0x00b10ac1 },
-   { 0x00800040, 0x2ca04529, 0x00b10ca0, 0x00b10b01 },
-   { 0x00800040, 0x2cc04529, 0x00b10cc0, 0x00b10b41 },
-   { 0x00800040, 0x2ce04529, 0x00b10ce0, 0x00b10b81 },
-   { 0x00800040, 0x2c004529, 0x00b10c00, 0x00b10a01 },
-   { 0x00800040, 0x2c204529, 0x00b10c20, 0x00b10a41 },
-   { 0x00800040, 0x2c404529, 0x00b10c40, 0x00b10a81 },
-   { 0x00800040, 0x2c604529, 0x00b10c60, 0x00b10ac1 },
-   { 0x00800040, 0x2c804529, 0x00b10c80, 0x00b10b01 },
-   { 0x00800040, 0x2ca04529, 0x00b10ca0, 0x00b10b41 },
-   { 0x00800040, 0x2cc04529, 0x00b10cc0, 0x00b10b81 },
-   { 0x00800040, 0x2ce04529, 0x00b10ce0, 0x00b10bc1 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x0000004a },
-   { 0x00800040, 0x2c004629, 0x00b109c1, 0x00b10a01 },
-   { 0x00800040, 0x2c204629, 0x00b10a01, 0x00b10a41 },
-   { 0x00800040, 0x2c404629, 0x00b10a41, 0x00b10a81 },
-   { 0x00800040, 0x2c604629, 0x00b10a81, 0x00b10ac1 },
-   { 0x00800040, 0x2c804629, 0x00b10ac1, 0x00b10b01 },
-   { 0x00800040, 0x2ca04629, 0x00b10b01, 0x00b10b41 },
-   { 0x00800040, 0x2cc04629, 0x00b10b41, 0x00b10b81 },
-   { 0x00800040, 0x2ce04629, 0x00b10b81, 0x00b10bc1 },
-   { 0x00800040, 0x2c004529, 0x00b10c00, 0x00b109c2 },
-   { 0x00800040, 0x2c204529, 0x00b10c20, 0x00b10a02 },
-   { 0x00800040, 0x2c404529, 0x00b10c40, 0x00b10a42 },
-   { 0x00800040, 0x2c604529, 0x00b10c60, 0x00b10a82 },
-   { 0x00800040, 0x2c804529, 0x00b10c80, 0x00b10ac2 },
-   { 0x00800040, 0x2ca04529, 0x00b10ca0, 0x00b10b02 },
-   { 0x00800040, 0x2cc04529, 0x00b10cc0, 0x00b10b42 },
-   { 0x00800040, 0x2ce04529, 0x00b10ce0, 0x00b10b82 },
-   { 0x00800040, 0x2c004529, 0x00b10c00, 0x00b10a02 },
-   { 0x00800040, 0x2c204529, 0x00b10c20, 0x00b10a42 },
-   { 0x00800040, 0x2c404529, 0x00b10c40, 0x00b10a82 },
-   { 0x00800040, 0x2c604529, 0x00b10c60, 0x00b10ac2 },
-   { 0x00800040, 0x2c804529, 0x00b10c80, 0x00b10b02 },
-   { 0x00800040, 0x2ca04529, 0x00b10ca0, 0x00b10b42 },
-   { 0x00800040, 0x2cc04529, 0x00b10cc0, 0x00b10b82 },
-   { 0x00800040, 0x2ce04529, 0x00b10ce0, 0x00b10bc2 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000031 },
-   { 0x00800040, 0x2c004629, 0x00b109c2, 0x00b10a02 },
-   { 0x00800040, 0x2c204629, 0x00b10a02, 0x00b10a42 },
-   { 0x00800040, 0x2c404629, 0x00b10a42, 0x00b10a82 },
-   { 0x00800040, 0x2c604629, 0x00b10a82, 0x00b10ac2 },
-   { 0x00800040, 0x2c804629, 0x00b10ac2, 0x00b10b02 },
-   { 0x00800040, 0x2ca04629, 0x00b10b02, 0x00b10b42 },
-   { 0x00800040, 0x2cc04629, 0x00b10b42, 0x00b10b82 },
-   { 0x00800040, 0x2ce04629, 0x00b10b82, 0x00b10bc2 },
-   { 0x00800040, 0x2c004529, 0x00b10c00, 0x00b109c3 },
-   { 0x00800040, 0x2c204529, 0x00b10c20, 0x00b10a03 },
-   { 0x00800040, 0x2c404529, 0x00b10c40, 0x00b10a43 },
-   { 0x00800040, 0x2c604529, 0x00b10c60, 0x00b10a83 },
-   { 0x00800040, 0x2c804529, 0x00b10c80, 0x00b10ac3 },
-   { 0x00800040, 0x2ca04529, 0x00b10ca0, 0x00b10b03 },
-   { 0x00800040, 0x2cc04529, 0x00b10cc0, 0x00b10b43 },
-   { 0x00800040, 0x2ce04529, 0x00b10ce0, 0x00b10b83 },
-   { 0x00800040, 0x2c004529, 0x00b10c00, 0x00b10a03 },
-   { 0x00800040, 0x2c204529, 0x00b10c20, 0x00b10a43 },
-   { 0x00800040, 0x2c404529, 0x00b10c40, 0x00b10a83 },
-   { 0x00800040, 0x2c604529, 0x00b10c60, 0x00b10ac3 },
-   { 0x00800040, 0x2c804529, 0x00b10c80, 0x00b10b03 },
-   { 0x00800040, 0x2ca04529, 0x00b10ca0, 0x00b10b43 },
-   { 0x00800040, 0x2cc04529, 0x00b10cc0, 0x00b10b83 },
-   { 0x00800040, 0x2ce04529, 0x00b10ce0, 0x00b10bc3 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000018 },
-   { 0x00800040, 0x2c004629, 0x00b109c3, 0x00b10a03 },
-   { 0x00800040, 0x2c204629, 0x00b10a03, 0x00b10a43 },
-   { 0x00800040, 0x2c404629, 0x00b10a43, 0x00b10a83 },
-   { 0x00800040, 0x2c604629, 0x00b10a83, 0x00b10ac3 },
-   { 0x00800040, 0x2c804629, 0x00b10ac3, 0x00b10b03 },
-   { 0x00800040, 0x2ca04629, 0x00b10b03, 0x00b10b43 },
-   { 0x00800040, 0x2cc04629, 0x00b10b43, 0x00b10b83 },
-   { 0x00800040, 0x2ce04629, 0x00b10b83, 0x00b10bc3 },
-   { 0x00800040, 0x2c004529, 0x00b10c00, 0x00b109c4 },
-   { 0x00800040, 0x2c204529, 0x00b10c20, 0x00b10a04 },
-   { 0x00800040, 0x2c404529, 0x00b10c40, 0x00b10a44 },
-   { 0x00800040, 0x2c604529, 0x00b10c60, 0x00b10a84 },
-   { 0x00800040, 0x2c804529, 0x00b10c80, 0x00b10ac4 },
-   { 0x00800040, 0x2ca04529, 0x00b10ca0, 0x00b10b04 },
-   { 0x00800040, 0x2cc04529, 0x00b10cc0, 0x00b10b44 },
-   { 0x00800040, 0x2ce04529, 0x00b10ce0, 0x00b10b84 },
-   { 0x00800040, 0x2c004529, 0x00b10c00, 0x00b10a04 },
-   { 0x00800040, 0x2c204529, 0x00b10c20, 0x00b10a44 },
-   { 0x00800040, 0x2c404529, 0x00b10c40, 0x00b10a84 },
-   { 0x00800040, 0x2c604529, 0x00b10c60, 0x00b10ac4 },
-   { 0x00800040, 0x2c804529, 0x00b10c80, 0x00b10b04 },
-   { 0x00800040, 0x2ca04529, 0x00b10ca0, 0x00b10b44 },
-   { 0x00800040, 0x2cc04529, 0x00b10cc0, 0x00b10b84 },
-   { 0x00800040, 0x2ce04529, 0x00b10ce0, 0x00b10bc4 },
-   { 0x00800008, 0x2c002d29, 0x00b10c00, 0x00020002 },
-   { 0x00800008, 0x2c202d29, 0x00b10c20, 0x00020002 },
-   { 0x00800008, 0x2c402d29, 0x00b10c40, 0x00020002 },
-   { 0x00800008, 0x2c602d29, 0x00b10c60, 0x00020002 },
-   { 0x00800008, 0x2c802d29, 0x00b10c80, 0x00020002 },
-   { 0x00800008, 0x2ca02d29, 0x00b10ca0, 0x00020002 },
-   { 0x00800008, 0x2cc02d29, 0x00b10cc0, 0x00020002 },
-   { 0x00800008, 0x2ce02d29, 0x00b10ce0, 0x00020002 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x0000009a },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
-   { 0x00800031, 0x29c01d29, 0x008d0e60, 0x0411a004 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a001d29, 0x008d0e60, 0x0411a004 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a401d29, 0x008d0e60, 0x0411a004 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a801d29, 0x008d0e60, 0x0411a004 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0007001f },
-   { 0x00800031, 0x2ac01d29, 0x008d0e60, 0x0418a004 },
-   { 0x00000005, 0x20580c21, 0x00210e60, 0x00000003 },
-   { 0x00000041, 0x20580c21, 0x00210058, 0x00000009 },
-   { 0x00000020, 0x34001400, 0x00001400, 0x00210058 },
-   { 0x80800042, 0x2c004629, 0x00b109c0, 0x00b109c1 },
-   { 0x80800042, 0x2c204629, 0x00b10a00, 0x00b10a01 },
-   { 0x80800042, 0x2c404629, 0x00b10a40, 0x00b10a41 },
-   { 0x80800042, 0x2c604629, 0x00b10a80, 0x00b10a81 },
-   { 0x80800042, 0x2c804629, 0x00b10ac0, 0x00b10ac1 },
-   { 0x80800042, 0x2ca04629, 0x00b10b00, 0x00b10b01 },
-   { 0x80800042, 0x2cc04629, 0x00b10b40, 0x00b10b41 },
-   { 0x80800042, 0x2ce04629, 0x00b10b80, 0x00b10b81 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x0000001a },
-   { 0x80800042, 0x2c004629, 0x00b109c1, 0x00b109c2 },
-   { 0x80800042, 0x2c204629, 0x00b10a01, 0x00b10a02 },
-   { 0x80800042, 0x2c404629, 0x00b10a41, 0x00b10a42 },
-   { 0x80800042, 0x2c604629, 0x00b10a81, 0x00b10a82 },
-   { 0x80800042, 0x2c804629, 0x00b10ac1, 0x00b10ac2 },
-   { 0x80800042, 0x2ca04629, 0x00b10b01, 0x00b10b02 },
-   { 0x80800042, 0x2cc04629, 0x00b10b41, 0x00b10b42 },
-   { 0x80800042, 0x2ce04629, 0x00b10b81, 0x00b10b82 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000011 },
-   { 0x80800042, 0x2c004629, 0x00b109c2, 0x00b109c3 },
-   { 0x80800042, 0x2c204629, 0x00b10a02, 0x00b10a03 },
-   { 0x80800042, 0x2c404629, 0x00b10a42, 0x00b10a43 },
-   { 0x80800042, 0x2c604629, 0x00b10a82, 0x00b10a83 },
-   { 0x80800042, 0x2c804629, 0x00b10ac2, 0x00b10ac3 },
-   { 0x80800042, 0x2ca04629, 0x00b10b02, 0x00b10b03 },
-   { 0x80800042, 0x2cc04629, 0x00b10b42, 0x00b10b43 },
-   { 0x80800042, 0x2ce04629, 0x00b10b82, 0x00b10b83 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000008 },
-   { 0x80800042, 0x2c004629, 0x00b109c3, 0x00b109c4 },
-   { 0x80800042, 0x2c204629, 0x00b10a03, 0x00b10a04 },
-   { 0x80800042, 0x2c404629, 0x00b10a43, 0x00b10a44 },
-   { 0x80800042, 0x2c604629, 0x00b10a83, 0x00b10a84 },
-   { 0x80800042, 0x2c804629, 0x00b10ac3, 0x00b10ac4 },
-   { 0x80800042, 0x2ca04629, 0x00b10b03, 0x00b10b04 },
-   { 0x80800042, 0x2cc04629, 0x00b10b43, 0x00b10b44 },
-   { 0x80800042, 0x2ce04629, 0x00b10b83, 0x00b10b84 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000068 },
-   { 0x01000005, 0x20002d3c, 0x00210030, 0x00010001 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000035 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
-   { 0x00800031, 0x29c01d29, 0x008d0e60, 0x0411a004 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a001d29, 0x008d0e60, 0x0411a004 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a401d29, 0x008d0e60, 0x0411a004 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a801d29, 0x008d0e60, 0x0411a004 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0007001f },
-   { 0x00800031, 0x2ac01d29, 0x008d0e60, 0x0418a004 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
-   { 0x00800031, 0x2bc01d29, 0x008d0e60, 0x0411a004 },
-   { 0x00000005, 0x20580c21, 0x00210e60, 0x00000003 },
-   { 0x00000041, 0x20580c21, 0x00210058, 0x00000009 },
-   { 0x00000020, 0x34001400, 0x00001400, 0x00210058 },
-   { 0x80800042, 0x2c004629, 0x00b109c0, 0x00b10a00 },
-   { 0x80800042, 0x2c204629, 0x00b10a00, 0x00b10a40 },
-   { 0x80800042, 0x2c404629, 0x00b10a40, 0x00b10a80 },
-   { 0x80800042, 0x2c604629, 0x00b10a80, 0x00b10ac0 },
-   { 0x80800042, 0x2c804629, 0x00b10ac0, 0x00b10b00 },
-   { 0x80800042, 0x2ca04629, 0x00b10b00, 0x00b10b40 },
-   { 0x80800042, 0x2cc04629, 0x00b10b40, 0x00b10b80 },
-   { 0x80800042, 0x2ce04629, 0x00b10b80, 0x00b10bc0 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x0000001a },
-   { 0x80800042, 0x2c004629, 0x00b109c1, 0x00b10a01 },
-   { 0x80800042, 0x2c204629, 0x00b10a01, 0x00b10a41 },
-   { 0x80800042, 0x2c404629, 0x00b10a41, 0x00b10a81 },
-   { 0x80800042, 0x2c604629, 0x00b10a81, 0x00b10ac1 },
-   { 0x80800042, 0x2c804629, 0x00b10ac1, 0x00b10b01 },
-   { 0x80800042, 0x2ca04629, 0x00b10b01, 0x00b10b41 },
-   { 0x80800042, 0x2cc04629, 0x00b10b41, 0x00b10b81 },
-   { 0x80800042, 0x2ce04629, 0x00b10b81, 0x00b10bc1 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000011 },
-   { 0x80800042, 0x2c004629, 0x00b109c2, 0x00b10a02 },
-   { 0x80800042, 0x2c204629, 0x00b10a02, 0x00b10a42 },
-   { 0x80800042, 0x2c404629, 0x00b10a42, 0x00b10a82 },
-   { 0x80800042, 0x2c604629, 0x00b10a82, 0x00b10ac2 },
-   { 0x80800042, 0x2c804629, 0x00b10ac2, 0x00b10b02 },
-   { 0x80800042, 0x2ca04629, 0x00b10b02, 0x00b10b42 },
-   { 0x80800042, 0x2cc04629, 0x00b10b42, 0x00b10b82 },
-   { 0x80800042, 0x2ce04629, 0x00b10b82, 0x00b10bc2 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000008 },
-   { 0x80800042, 0x2c004629, 0x00b109c3, 0x00b10a03 },
-   { 0x80800042, 0x2c204629, 0x00b10a03, 0x00b10a43 },
-   { 0x80800042, 0x2c404629, 0x00b10a43, 0x00b10a83 },
-   { 0x80800042, 0x2c604629, 0x00b10a83, 0x00b10ac3 },
-   { 0x80800042, 0x2c804629, 0x00b10ac3, 0x00b10b03 },
-   { 0x80800042, 0x2ca04629, 0x00b10b03, 0x00b10b43 },
-   { 0x80800042, 0x2cc04629, 0x00b10b43, 0x00b10b83 },
-   { 0x80800042, 0x2ce04629, 0x00b10b83, 0x00b10bc3 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000031 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
-   { 0x00800031, 0x29c01d29, 0x008d0e60, 0x0411a004 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a001d29, 0x008d0e60, 0x0411a004 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a401d29, 0x008d0e60, 0x0411a004 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a801d29, 0x008d0e60, 0x0411a004 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0007001f },
-   { 0x00800031, 0x2ac01d29, 0x008d0e60, 0x0418a004 },
-   { 0x00000005, 0x20580c21, 0x00210e60, 0x00000003 },
-   { 0x00000041, 0x20580c21, 0x00210058, 0x00000009 },
-   { 0x00000020, 0x34001400, 0x00001400, 0x00210058 },
-   { 0x00800001, 0x2c000229, 0x00b109c0, 0x00000000 },
-   { 0x00800001, 0x2c200229, 0x00b10a00, 0x00000000 },
-   { 0x00800001, 0x2c400229, 0x00b10a40, 0x00000000 },
-   { 0x00800001, 0x2c600229, 0x00b10a80, 0x00000000 },
-   { 0x00800001, 0x2c800229, 0x00b10ac0, 0x00000000 },
-   { 0x00800001, 0x2ca00229, 0x00b10b00, 0x00000000 },
-   { 0x00800001, 0x2cc00229, 0x00b10b40, 0x00000000 },
-   { 0x00800001, 0x2ce00229, 0x00b10b80, 0x00000000 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x0000001a },
-   { 0x00800001, 0x2c000229, 0x00b109c1, 0x00000000 },
-   { 0x00800001, 0x2c200229, 0x00b10a01, 0x00000000 },
-   { 0x00800001, 0x2c400229, 0x00b10a41, 0x00000000 },
-   { 0x00800001, 0x2c600229, 0x00b10a81, 0x00000000 },
-   { 0x00800001, 0x2c800229, 0x00b10ac1, 0x00000000 },
-   { 0x00800001, 0x2ca00229, 0x00b10b01, 0x00000000 },
-   { 0x00800001, 0x2cc00229, 0x00b10b41, 0x00000000 },
-   { 0x00800001, 0x2ce00229, 0x00b10b81, 0x00000000 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000011 },
-   { 0x00800001, 0x2c000229, 0x00b109c2, 0x00000000 },
-   { 0x00800001, 0x2c200229, 0x00b10a02, 0x00000000 },
-   { 0x00800001, 0x2c400229, 0x00b10a42, 0x00000000 },
-   { 0x00800001, 0x2c600229, 0x00b10a82, 0x00000000 },
-   { 0x00800001, 0x2c800229, 0x00b10ac2, 0x00000000 },
-   { 0x00800001, 0x2ca00229, 0x00b10b02, 0x00000000 },
-   { 0x00800001, 0x2cc00229, 0x00b10b42, 0x00000000 },
-   { 0x00800001, 0x2ce00229, 0x00b10b82, 0x00000000 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000008 },
-   { 0x00800001, 0x2c000229, 0x00b109c3, 0x00000000 },
-   { 0x00800001, 0x2c200229, 0x00b10a03, 0x00000000 },
-   { 0x00800001, 0x2c400229, 0x00b10a43, 0x00000000 },
-   { 0x00800001, 0x2c600229, 0x00b10a83, 0x00000000 },
-   { 0x00800001, 0x2c800229, 0x00b10ac3, 0x00000000 },
-   { 0x00800001, 0x2ca00229, 0x00b10b03, 0x00000000 },
-   { 0x00800001, 0x2cc00229, 0x00b10b43, 0x00000000 },
-   { 0x00800001, 0x2ce00229, 0x00b10b83, 0x00000000 },
-   { 0x00600001, 0x26800021, 0x008d0c00, 0x00000000 },
-   { 0x00600001, 0x26c00021, 0x008d0c20, 0x00000000 },
-   { 0x00600001, 0x27000021, 0x008d0c40, 0x00000000 },
-   { 0x00600001, 0x27400021, 0x008d0c60, 0x00000000 },
-   { 0x00600001, 0x27800021, 0x008d0c80, 0x00000000 },
-   { 0x00600001, 0x27c00021, 0x008d0ca0, 0x00000000 },
-   { 0x00600001, 0x28000021, 0x008d0cc0, 0x00000000 },
-   { 0x00600001, 0x28400021, 0x008d0ce0, 0x00000000 },
-   { 0x0020000c, 0x2e6e3dad, 0x00450036, 0x00010001 },
-   { 0x00200040, 0x2e6034a5, 0x00450e80, 0x00450e6e },
-   { 0x00000005, 0x2e640c21, 0x00210e64, 0xfffffffe },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
-   { 0x02000005, 0x20000e3c, 0x0021003f, 0x00000004 },
-   { 0x00010040, 0x2e641ca5, 0x00210e64, 0x00000001 },
-   { 0x01000005, 0x20002d3c, 0x00210036, 0x00010001 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x000000b1 },
-   { 0x01000005, 0x20002d3c, 0x00210038, 0x00010001 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x0000007d },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
-   { 0x00800031, 0x29c01d29, 0x008d0e60, 0x0411a004 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a001d29, 0x008d0e60, 0x0411a004 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a401d29, 0x008d0e60, 0x0411a004 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a801d29, 0x008d0e60, 0x0411a004 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0007001f },
-   { 0x00800031, 0x2ac01d29, 0x008d0e60, 0x0418a004 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
-   { 0x00800031, 0x2bc01d29, 0x008d0e60, 0x0411a004 },
-   { 0x00000005, 0x20580c21, 0x00210e60, 0x00000003 },
-   { 0x00000041, 0x20580c21, 0x00210058, 0x00000019 },
-   { 0x00000020, 0x34001400, 0x00001400, 0x00210058 },
-   { 0x00800040, 0x2c004629, 0x00b109c0, 0x00b10a00 },
-   { 0x00800040, 0x2c204629, 0x00b10a00, 0x00b10a40 },
-   { 0x00800040, 0x2c404629, 0x00b10a40, 0x00b10a80 },
-   { 0x00800040, 0x2c604629, 0x00b10a80, 0x00b10ac0 },
-   { 0x00800040, 0x2c804629, 0x00b10ac0, 0x00b10b00 },
-   { 0x00800040, 0x2ca04629, 0x00b10b00, 0x00b10b40 },
-   { 0x00800040, 0x2cc04629, 0x00b10b40, 0x00b10b80 },
-   { 0x00800040, 0x2ce04629, 0x00b10b80, 0x00b10bc0 },
-   { 0x00800040, 0x2c004529, 0x00b10c00, 0x00b109c1 },
-   { 0x00800040, 0x2c204529, 0x00b10c20, 0x00b10a01 },
-   { 0x00800040, 0x2c404529, 0x00b10c40, 0x00b10a41 },
-   { 0x00800040, 0x2c604529, 0x00b10c60, 0x00b10a81 },
-   { 0x00800040, 0x2c804529, 0x00b10c80, 0x00b10ac1 },
-   { 0x00800040, 0x2ca04529, 0x00b10ca0, 0x00b10b01 },
-   { 0x00800040, 0x2cc04529, 0x00b10cc0, 0x00b10b41 },
-   { 0x00800040, 0x2ce04529, 0x00b10ce0, 0x00b10b81 },
-   { 0x00800040, 0x2c004529, 0x00b10c00, 0x00b10a01 },
-   { 0x00800040, 0x2c204529, 0x00b10c20, 0x00b10a41 },
-   { 0x00800040, 0x2c404529, 0x00b10c40, 0x00b10a81 },
-   { 0x00800040, 0x2c604529, 0x00b10c60, 0x00b10ac1 },
-   { 0x00800040, 0x2c804529, 0x00b10c80, 0x00b10b01 },
-   { 0x00800040, 0x2ca04529, 0x00b10ca0, 0x00b10b41 },
-   { 0x00800040, 0x2cc04529, 0x00b10cc0, 0x00b10b81 },
-   { 0x00800040, 0x2ce04529, 0x00b10ce0, 0x00b10bc1 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x0000004a },
-   { 0x00800040, 0x2c004629, 0x00b109c1, 0x00b10a01 },
-   { 0x00800040, 0x2c204629, 0x00b10a01, 0x00b10a41 },
-   { 0x00800040, 0x2c404629, 0x00b10a41, 0x00b10a81 },
-   { 0x00800040, 0x2c604629, 0x00b10a81, 0x00b10ac1 },
-   { 0x00800040, 0x2c804629, 0x00b10ac1, 0x00b10b01 },
-   { 0x00800040, 0x2ca04629, 0x00b10b01, 0x00b10b41 },
-   { 0x00800040, 0x2cc04629, 0x00b10b41, 0x00b10b81 },
-   { 0x00800040, 0x2ce04629, 0x00b10b81, 0x00b10bc1 },
-   { 0x00800040, 0x2c004529, 0x00b10c00, 0x00b109c2 },
-   { 0x00800040, 0x2c204529, 0x00b10c20, 0x00b10a02 },
-   { 0x00800040, 0x2c404529, 0x00b10c40, 0x00b10a42 },
-   { 0x00800040, 0x2c604529, 0x00b10c60, 0x00b10a82 },
-   { 0x00800040, 0x2c804529, 0x00b10c80, 0x00b10ac2 },
-   { 0x00800040, 0x2ca04529, 0x00b10ca0, 0x00b10b02 },
-   { 0x00800040, 0x2cc04529, 0x00b10cc0, 0x00b10b42 },
-   { 0x00800040, 0x2ce04529, 0x00b10ce0, 0x00b10b82 },
-   { 0x00800040, 0x2c004529, 0x00b10c00, 0x00b10a02 },
-   { 0x00800040, 0x2c204529, 0x00b10c20, 0x00b10a42 },
-   { 0x00800040, 0x2c404529, 0x00b10c40, 0x00b10a82 },
-   { 0x00800040, 0x2c604529, 0x00b10c60, 0x00b10ac2 },
-   { 0x00800040, 0x2c804529, 0x00b10c80, 0x00b10b02 },
-   { 0x00800040, 0x2ca04529, 0x00b10ca0, 0x00b10b42 },
-   { 0x00800040, 0x2cc04529, 0x00b10cc0, 0x00b10b82 },
-   { 0x00800040, 0x2ce04529, 0x00b10ce0, 0x00b10bc2 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000031 },
-   { 0x00800040, 0x2c004629, 0x00b109c2, 0x00b10a02 },
-   { 0x00800040, 0x2c204629, 0x00b10a02, 0x00b10a42 },
-   { 0x00800040, 0x2c404629, 0x00b10a42, 0x00b10a82 },
-   { 0x00800040, 0x2c604629, 0x00b10a82, 0x00b10ac2 },
-   { 0x00800040, 0x2c804629, 0x00b10ac2, 0x00b10b02 },
-   { 0x00800040, 0x2ca04629, 0x00b10b02, 0x00b10b42 },
-   { 0x00800040, 0x2cc04629, 0x00b10b42, 0x00b10b82 },
-   { 0x00800040, 0x2ce04629, 0x00b10b82, 0x00b10bc2 },
-   { 0x00800040, 0x2c004529, 0x00b10c00, 0x00b109c3 },
-   { 0x00800040, 0x2c204529, 0x00b10c20, 0x00b10a03 },
-   { 0x00800040, 0x2c404529, 0x00b10c40, 0x00b10a43 },
-   { 0x00800040, 0x2c604529, 0x00b10c60, 0x00b10a83 },
-   { 0x00800040, 0x2c804529, 0x00b10c80, 0x00b10ac3 },
-   { 0x00800040, 0x2ca04529, 0x00b10ca0, 0x00b10b03 },
-   { 0x00800040, 0x2cc04529, 0x00b10cc0, 0x00b10b43 },
-   { 0x00800040, 0x2ce04529, 0x00b10ce0, 0x00b10b83 },
-   { 0x00800040, 0x2c004529, 0x00b10c00, 0x00b10a03 },
-   { 0x00800040, 0x2c204529, 0x00b10c20, 0x00b10a43 },
-   { 0x00800040, 0x2c404529, 0x00b10c40, 0x00b10a83 },
-   { 0x00800040, 0x2c604529, 0x00b10c60, 0x00b10ac3 },
-   { 0x00800040, 0x2c804529, 0x00b10c80, 0x00b10b03 },
-   { 0x00800040, 0x2ca04529, 0x00b10ca0, 0x00b10b43 },
-   { 0x00800040, 0x2cc04529, 0x00b10cc0, 0x00b10b83 },
-   { 0x00800040, 0x2ce04529, 0x00b10ce0, 0x00b10bc3 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000018 },
-   { 0x00800040, 0x2c004629, 0x00b109c3, 0x00b10a03 },
-   { 0x00800040, 0x2c204629, 0x00b10a03, 0x00b10a43 },
-   { 0x00800040, 0x2c404629, 0x00b10a43, 0x00b10a83 },
-   { 0x00800040, 0x2c604629, 0x00b10a83, 0x00b10ac3 },
-   { 0x00800040, 0x2c804629, 0x00b10ac3, 0x00b10b03 },
-   { 0x00800040, 0x2ca04629, 0x00b10b03, 0x00b10b43 },
-   { 0x00800040, 0x2cc04629, 0x00b10b43, 0x00b10b83 },
-   { 0x00800040, 0x2ce04629, 0x00b10b83, 0x00b10bc3 },
-   { 0x00800040, 0x2c004529, 0x00b10c00, 0x00b109c4 },
-   { 0x00800040, 0x2c204529, 0x00b10c20, 0x00b10a04 },
-   { 0x00800040, 0x2c404529, 0x00b10c40, 0x00b10a44 },
-   { 0x00800040, 0x2c604529, 0x00b10c60, 0x00b10a84 },
-   { 0x00800040, 0x2c804529, 0x00b10c80, 0x00b10ac4 },
-   { 0x00800040, 0x2ca04529, 0x00b10ca0, 0x00b10b04 },
-   { 0x00800040, 0x2cc04529, 0x00b10cc0, 0x00b10b44 },
-   { 0x00800040, 0x2ce04529, 0x00b10ce0, 0x00b10b84 },
-   { 0x00800040, 0x2c004529, 0x00b10c00, 0x00b10a04 },
-   { 0x00800040, 0x2c204529, 0x00b10c20, 0x00b10a44 },
-   { 0x00800040, 0x2c404529, 0x00b10c40, 0x00b10a84 },
-   { 0x00800040, 0x2c604529, 0x00b10c60, 0x00b10ac4 },
-   { 0x00800040, 0x2c804529, 0x00b10c80, 0x00b10b04 },
-   { 0x00800040, 0x2ca04529, 0x00b10ca0, 0x00b10b44 },
-   { 0x00800040, 0x2cc04529, 0x00b10cc0, 0x00b10b84 },
-   { 0x00800040, 0x2ce04529, 0x00b10ce0, 0x00b10bc4 },
-   { 0x00800008, 0x2c002d29, 0x00b10c00, 0x00020002 },
-   { 0x00800008, 0x2c202d29, 0x00b10c20, 0x00020002 },
-   { 0x00800008, 0x2c402d29, 0x00b10c40, 0x00020002 },
-   { 0x00800008, 0x2c602d29, 0x00b10c60, 0x00020002 },
-   { 0x00800008, 0x2c802d29, 0x00b10c80, 0x00020002 },
-   { 0x00800008, 0x2ca02d29, 0x00b10ca0, 0x00020002 },
-   { 0x00800008, 0x2cc02d29, 0x00b10cc0, 0x00020002 },
-   { 0x00800008, 0x2ce02d29, 0x00b10ce0, 0x00020002 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x0000009a },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
-   { 0x00800031, 0x29c01d29, 0x008d0e60, 0x0411a004 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a001d29, 0x008d0e60, 0x0411a004 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a401d29, 0x008d0e60, 0x0411a004 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a801d29, 0x008d0e60, 0x0411a004 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0007001f },
-   { 0x00800031, 0x2ac01d29, 0x008d0e60, 0x0418a004 },
-   { 0x00000005, 0x20580c21, 0x00210e60, 0x00000003 },
-   { 0x00000041, 0x20580c21, 0x00210058, 0x00000009 },
-   { 0x00000020, 0x34001400, 0x00001400, 0x00210058 },
-   { 0x80800042, 0x2c004629, 0x00b109c0, 0x00b109c1 },
-   { 0x80800042, 0x2c204629, 0x00b10a00, 0x00b10a01 },
-   { 0x80800042, 0x2c404629, 0x00b10a40, 0x00b10a41 },
-   { 0x80800042, 0x2c604629, 0x00b10a80, 0x00b10a81 },
-   { 0x80800042, 0x2c804629, 0x00b10ac0, 0x00b10ac1 },
-   { 0x80800042, 0x2ca04629, 0x00b10b00, 0x00b10b01 },
-   { 0x80800042, 0x2cc04629, 0x00b10b40, 0x00b10b41 },
-   { 0x80800042, 0x2ce04629, 0x00b10b80, 0x00b10b81 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x0000001a },
-   { 0x80800042, 0x2c004629, 0x00b109c1, 0x00b109c2 },
-   { 0x80800042, 0x2c204629, 0x00b10a01, 0x00b10a02 },
-   { 0x80800042, 0x2c404629, 0x00b10a41, 0x00b10a42 },
-   { 0x80800042, 0x2c604629, 0x00b10a81, 0x00b10a82 },
-   { 0x80800042, 0x2c804629, 0x00b10ac1, 0x00b10ac2 },
-   { 0x80800042, 0x2ca04629, 0x00b10b01, 0x00b10b02 },
-   { 0x80800042, 0x2cc04629, 0x00b10b41, 0x00b10b42 },
-   { 0x80800042, 0x2ce04629, 0x00b10b81, 0x00b10b82 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000011 },
-   { 0x80800042, 0x2c004629, 0x00b109c2, 0x00b109c3 },
-   { 0x80800042, 0x2c204629, 0x00b10a02, 0x00b10a03 },
-   { 0x80800042, 0x2c404629, 0x00b10a42, 0x00b10a43 },
-   { 0x80800042, 0x2c604629, 0x00b10a82, 0x00b10a83 },
-   { 0x80800042, 0x2c804629, 0x00b10ac2, 0x00b10ac3 },
-   { 0x80800042, 0x2ca04629, 0x00b10b02, 0x00b10b03 },
-   { 0x80800042, 0x2cc04629, 0x00b10b42, 0x00b10b43 },
-   { 0x80800042, 0x2ce04629, 0x00b10b82, 0x00b10b83 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000008 },
-   { 0x80800042, 0x2c004629, 0x00b109c3, 0x00b109c4 },
-   { 0x80800042, 0x2c204629, 0x00b10a03, 0x00b10a04 },
-   { 0x80800042, 0x2c404629, 0x00b10a43, 0x00b10a44 },
-   { 0x80800042, 0x2c604629, 0x00b10a83, 0x00b10a84 },
-   { 0x80800042, 0x2c804629, 0x00b10ac3, 0x00b10ac4 },
-   { 0x80800042, 0x2ca04629, 0x00b10b03, 0x00b10b04 },
-   { 0x80800042, 0x2cc04629, 0x00b10b43, 0x00b10b44 },
-   { 0x80800042, 0x2ce04629, 0x00b10b83, 0x00b10b84 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000068 },
-   { 0x01000005, 0x20002d3c, 0x00210038, 0x00010001 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000035 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
-   { 0x00800031, 0x29c01d29, 0x008d0e60, 0x0411a004 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a001d29, 0x008d0e60, 0x0411a004 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a401d29, 0x008d0e60, 0x0411a004 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a801d29, 0x008d0e60, 0x0411a004 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0007001f },
-   { 0x00800031, 0x2ac01d29, 0x008d0e60, 0x0418a004 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
-   { 0x00800031, 0x2bc01d29, 0x008d0e60, 0x0411a004 },
-   { 0x00000005, 0x20580c21, 0x00210e60, 0x00000003 },
-   { 0x00000041, 0x20580c21, 0x00210058, 0x00000009 },
-   { 0x00000020, 0x34001400, 0x00001400, 0x00210058 },
-   { 0x80800042, 0x2c004629, 0x00b109c0, 0x00b10a00 },
-   { 0x80800042, 0x2c204629, 0x00b10a00, 0x00b10a40 },
-   { 0x80800042, 0x2c404629, 0x00b10a40, 0x00b10a80 },
-   { 0x80800042, 0x2c604629, 0x00b10a80, 0x00b10ac0 },
-   { 0x80800042, 0x2c804629, 0x00b10ac0, 0x00b10b00 },
-   { 0x80800042, 0x2ca04629, 0x00b10b00, 0x00b10b40 },
-   { 0x80800042, 0x2cc04629, 0x00b10b40, 0x00b10b80 },
-   { 0x80800042, 0x2ce04629, 0x00b10b80, 0x00b10bc0 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x0000001a },
-   { 0x80800042, 0x2c004629, 0x00b109c1, 0x00b10a01 },
-   { 0x80800042, 0x2c204629, 0x00b10a01, 0x00b10a41 },
-   { 0x80800042, 0x2c404629, 0x00b10a41, 0x00b10a81 },
-   { 0x80800042, 0x2c604629, 0x00b10a81, 0x00b10ac1 },
-   { 0x80800042, 0x2c804629, 0x00b10ac1, 0x00b10b01 },
-   { 0x80800042, 0x2ca04629, 0x00b10b01, 0x00b10b41 },
-   { 0x80800042, 0x2cc04629, 0x00b10b41, 0x00b10b81 },
-   { 0x80800042, 0x2ce04629, 0x00b10b81, 0x00b10bc1 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000011 },
-   { 0x80800042, 0x2c004629, 0x00b109c2, 0x00b10a02 },
-   { 0x80800042, 0x2c204629, 0x00b10a02, 0x00b10a42 },
-   { 0x80800042, 0x2c404629, 0x00b10a42, 0x00b10a82 },
-   { 0x80800042, 0x2c604629, 0x00b10a82, 0x00b10ac2 },
-   { 0x80800042, 0x2c804629, 0x00b10ac2, 0x00b10b02 },
-   { 0x80800042, 0x2ca04629, 0x00b10b02, 0x00b10b42 },
-   { 0x80800042, 0x2cc04629, 0x00b10b42, 0x00b10b82 },
-   { 0x80800042, 0x2ce04629, 0x00b10b82, 0x00b10bc2 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000008 },
-   { 0x80800042, 0x2c004629, 0x00b109c3, 0x00b10a03 },
-   { 0x80800042, 0x2c204629, 0x00b10a03, 0x00b10a43 },
-   { 0x80800042, 0x2c404629, 0x00b10a43, 0x00b10a83 },
-   { 0x80800042, 0x2c604629, 0x00b10a83, 0x00b10ac3 },
-   { 0x80800042, 0x2c804629, 0x00b10ac3, 0x00b10b03 },
-   { 0x80800042, 0x2ca04629, 0x00b10b03, 0x00b10b43 },
-   { 0x80800042, 0x2cc04629, 0x00b10b43, 0x00b10b83 },
-   { 0x80800042, 0x2ce04629, 0x00b10b83, 0x00b10bc3 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000031 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
-   { 0x00800031, 0x29c01d29, 0x008d0e60, 0x0411a004 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a001d29, 0x008d0e60, 0x0411a004 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a401d29, 0x008d0e60, 0x0411a004 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a801d29, 0x008d0e60, 0x0411a004 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0007001f },
-   { 0x00800031, 0x2ac01d29, 0x008d0e60, 0x0418a004 },
-   { 0x00000005, 0x20580c21, 0x00210e60, 0x00000003 },
-   { 0x00000041, 0x20580c21, 0x00210058, 0x00000009 },
-   { 0x00000020, 0x34001400, 0x00001400, 0x00210058 },
-   { 0x00800001, 0x2c000229, 0x00b109c0, 0x00000000 },
-   { 0x00800001, 0x2c200229, 0x00b10a00, 0x00000000 },
-   { 0x00800001, 0x2c400229, 0x00b10a40, 0x00000000 },
-   { 0x00800001, 0x2c600229, 0x00b10a80, 0x00000000 },
-   { 0x00800001, 0x2c800229, 0x00b10ac0, 0x00000000 },
-   { 0x00800001, 0x2ca00229, 0x00b10b00, 0x00000000 },
-   { 0x00800001, 0x2cc00229, 0x00b10b40, 0x00000000 },
-   { 0x00800001, 0x2ce00229, 0x00b10b80, 0x00000000 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x0000001a },
-   { 0x00800001, 0x2c000229, 0x00b109c1, 0x00000000 },
-   { 0x00800001, 0x2c200229, 0x00b10a01, 0x00000000 },
-   { 0x00800001, 0x2c400229, 0x00b10a41, 0x00000000 },
-   { 0x00800001, 0x2c600229, 0x00b10a81, 0x00000000 },
-   { 0x00800001, 0x2c800229, 0x00b10ac1, 0x00000000 },
-   { 0x00800001, 0x2ca00229, 0x00b10b01, 0x00000000 },
-   { 0x00800001, 0x2cc00229, 0x00b10b41, 0x00000000 },
-   { 0x00800001, 0x2ce00229, 0x00b10b81, 0x00000000 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000011 },
-   { 0x00800001, 0x2c000229, 0x00b109c2, 0x00000000 },
-   { 0x00800001, 0x2c200229, 0x00b10a02, 0x00000000 },
-   { 0x00800001, 0x2c400229, 0x00b10a42, 0x00000000 },
-   { 0x00800001, 0x2c600229, 0x00b10a82, 0x00000000 },
-   { 0x00800001, 0x2c800229, 0x00b10ac2, 0x00000000 },
-   { 0x00800001, 0x2ca00229, 0x00b10b02, 0x00000000 },
-   { 0x00800001, 0x2cc00229, 0x00b10b42, 0x00000000 },
-   { 0x00800001, 0x2ce00229, 0x00b10b82, 0x00000000 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000008 },
-   { 0x00800001, 0x2c000229, 0x00b109c3, 0x00000000 },
-   { 0x00800001, 0x2c200229, 0x00b10a03, 0x00000000 },
-   { 0x00800001, 0x2c400229, 0x00b10a43, 0x00000000 },
-   { 0x00800001, 0x2c600229, 0x00b10a83, 0x00000000 },
-   { 0x00800001, 0x2c800229, 0x00b10ac3, 0x00000000 },
-   { 0x00800001, 0x2ca00229, 0x00b10b03, 0x00000000 },
-   { 0x00800001, 0x2cc00229, 0x00b10b43, 0x00000000 },
-   { 0x00800001, 0x2ce00229, 0x00b10b83, 0x00000000 },
-   { 0x00600001, 0x26a00021, 0x008d0c00, 0x00000000 },
-   { 0x00600001, 0x26e00021, 0x008d0c20, 0x00000000 },
-   { 0x00600001, 0x27200021, 0x008d0c40, 0x00000000 },
-   { 0x00600001, 0x27600021, 0x008d0c60, 0x00000000 },
-   { 0x00600001, 0x27a00021, 0x008d0c80, 0x00000000 },
-   { 0x00600001, 0x27e00021, 0x008d0ca0, 0x00000000 },
-   { 0x00600001, 0x28200021, 0x008d0cc0, 0x00000000 },
-   { 0x00600001, 0x28600021, 0x008d0ce0, 0x00000000 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0007000f },
-   { 0x0020000c, 0x2e6e3dad, 0x0045002e, 0x00020002 },
-   { 0x0020000c, 0x2e601ca5, 0x00450e80, 0x00000001 },
-   { 0x00200040, 0x2e6034a5, 0x00450e60, 0x00450e6e },
-   { 0x00000005, 0x2e640c21, 0x00210e64, 0xfffffffe },
-   { 0x02000005, 0x20002e3c, 0x0021003f, 0x00010001 },
-   { 0x00010040, 0x2e640c21, 0x00210e64, 0x00000001 },
-   { 0x01000005, 0x20002d3c, 0x0021002e, 0x00020002 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x000000a2 },
-   { 0x01000005, 0x20002d3c, 0x00210030, 0x00020002 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000076 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0007000f },
-   { 0x00800031, 0x2ac01d29, 0x00ad0e60, 0x0414a005 },
-   { 0x00800031, 0x2b601d29, 0x00ad0e60, 0x0414a006 },
-   { 0x00000005, 0x20580c21, 0x00210e60, 0x00000003 },
-   { 0x00000041, 0x20580c21, 0x00210058, 0x00000019 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0001000f },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 },
-   { 0x00800031, 0x2b401d29, 0x00ad0e60, 0x0411a005 },
-   { 0x00800031, 0x2be01d29, 0x00ad0e60, 0x0411a006 },
-   { 0x00000020, 0x34001400, 0x00001400, 0x00210058 },
-   { 0x00800040, 0x29c04629, 0x00ad0ac0, 0x00ad0ae0 },
-   { 0x00800040, 0x29e04629, 0x00ad0ae0, 0x00ad0b00 },
-   { 0x00800040, 0x2a004629, 0x00ad0b00, 0x00ad0b20 },
-   { 0x00800040, 0x2a204629, 0x00ad0b20, 0x00ad0b40 },
-   { 0x00800040, 0x29c04529, 0x00ad09c0, 0x00ad0ac1 },
-   { 0x00800040, 0x29e04529, 0x00ad09e0, 0x00ad0ae1 },
-   { 0x00800040, 0x2a004529, 0x00ad0a00, 0x00ad0b01 },
-   { 0x00800040, 0x2a204529, 0x00ad0a20, 0x00ad0b21 },
-   { 0x00800040, 0x29c04529, 0x00ad09c0, 0x00ad0ae1 },
-   { 0x00800040, 0x29e04529, 0x00ad09e0, 0x00ad0b01 },
-   { 0x00800040, 0x2a004529, 0x00ad0a00, 0x00ad0b21 },
-   { 0x00800040, 0x2a204529, 0x00ad0a20, 0x00ad0b41 },
-   { 0x00800040, 0x2a404629, 0x00ad0b60, 0x00ad0b80 },
-   { 0x00800040, 0x2a604629, 0x00ad0b80, 0x00ad0ba0 },
-   { 0x00800040, 0x2a804629, 0x00ad0ba0, 0x00ad0bc0 },
-   { 0x00800040, 0x2aa04629, 0x00ad0bc0, 0x00ad0be0 },
-   { 0x00800040, 0x2a404529, 0x00ad0a40, 0x00ad0b61 },
-   { 0x00800040, 0x2a604529, 0x00ad0a60, 0x00ad0b81 },
-   { 0x00800040, 0x2a804529, 0x00ad0a80, 0x00ad0ba1 },
-   { 0x00800040, 0x2aa04529, 0x00ad0aa0, 0x00ad0bc1 },
-   { 0x00800040, 0x2a404529, 0x00ad0a40, 0x00ad0b81 },
-   { 0x00800040, 0x2a604529, 0x00ad0a60, 0x00ad0ba1 },
-   { 0x00800040, 0x2a804529, 0x00ad0a80, 0x00ad0bc1 },
-   { 0x00800040, 0x2aa04529, 0x00ad0aa0, 0x00ad0be1 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x0000004a },
-   { 0x00800040, 0x29c04629, 0x00ad0ac1, 0x00ad0ae1 },
-   { 0x00800040, 0x29e04629, 0x00ad0ae1, 0x00ad0b01 },
-   { 0x00800040, 0x2a004629, 0x00ad0b01, 0x00ad0b21 },
-   { 0x00800040, 0x2a204629, 0x00ad0b21, 0x00ad0b41 },
-   { 0x00800040, 0x29c04529, 0x00ad09c0, 0x00ad0ac2 },
-   { 0x00800040, 0x29e04529, 0x00ad09e0, 0x00ad0ae2 },
-   { 0x00800040, 0x2a004529, 0x00ad0a00, 0x00ad0b02 },
-   { 0x00800040, 0x2a204529, 0x00ad0a20, 0x00ad0b22 },
-   { 0x00800040, 0x29c04529, 0x00ad09c0, 0x00ad0ae2 },
-   { 0x00800040, 0x29e04529, 0x00ad09e0, 0x00ad0b02 },
-   { 0x00800040, 0x2a004529, 0x00ad0a00, 0x00ad0b22 },
-   { 0x00800040, 0x2a204529, 0x00ad0a20, 0x00ad0b42 },
-   { 0x00800040, 0x2a404629, 0x00ad0b61, 0x00ad0b81 },
-   { 0x00800040, 0x2a604629, 0x00ad0b81, 0x00ad0ba1 },
-   { 0x00800040, 0x2a804629, 0x00ad0ba1, 0x00ad0bc1 },
-   { 0x00800040, 0x2aa04629, 0x00ad0bc1, 0x00ad0be1 },
-   { 0x00800040, 0x2a404529, 0x00ad0a40, 0x00ad0b62 },
-   { 0x00800040, 0x2a604529, 0x00ad0a60, 0x00ad0b82 },
-   { 0x00800040, 0x2a804529, 0x00ad0a80, 0x00ad0ba2 },
-   { 0x00800040, 0x2aa04529, 0x00ad0aa0, 0x00ad0bc2 },
-   { 0x00800040, 0x2a404529, 0x00ad0a40, 0x00ad0b82 },
-   { 0x00800040, 0x2a604529, 0x00ad0a60, 0x00ad0ba2 },
-   { 0x00800040, 0x2a804529, 0x00ad0a80, 0x00ad0bc2 },
-   { 0x00800040, 0x2aa04529, 0x00ad0aa0, 0x00ad0be2 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000031 },
-   { 0x00800040, 0x29c04629, 0x00ad0ac2, 0x00ad0ae2 },
-   { 0x00800040, 0x29e04629, 0x00ad0ae2, 0x00ad0b02 },
-   { 0x00800040, 0x2a004629, 0x00ad0b02, 0x00ad0b22 },
-   { 0x00800040, 0x2a204629, 0x00ad0b22, 0x00ad0b42 },
-   { 0x00800040, 0x29c04529, 0x00ad09c0, 0x00ad0ac3 },
-   { 0x00800040, 0x29e04529, 0x00ad09e0, 0x00ad0ae3 },
-   { 0x00800040, 0x2a004529, 0x00ad0a00, 0x00ad0b03 },
-   { 0x00800040, 0x2a204529, 0x00ad0a20, 0x00ad0b23 },
-   { 0x00800040, 0x29c04529, 0x00ad09c0, 0x00ad0ae3 },
-   { 0x00800040, 0x29e04529, 0x00ad09e0, 0x00ad0b03 },
-   { 0x00800040, 0x2a004529, 0x00ad0a00, 0x00ad0b23 },
-   { 0x00800040, 0x2a204529, 0x00ad0a20, 0x00ad0b43 },
-   { 0x00800040, 0x2a404629, 0x00ad0b62, 0x00ad0b82 },
-   { 0x00800040, 0x2a604629, 0x00ad0b82, 0x00ad0ba2 },
-   { 0x00800040, 0x2a804629, 0x00ad0ba2, 0x00ad0bc2 },
-   { 0x00800040, 0x2aa04629, 0x00ad0bc2, 0x00ad0be2 },
-   { 0x00800040, 0x2a404529, 0x00ad0a40, 0x00ad0b63 },
-   { 0x00800040, 0x2a604529, 0x00ad0a60, 0x00ad0b83 },
-   { 0x00800040, 0x2a804529, 0x00ad0a80, 0x00ad0ba3 },
-   { 0x00800040, 0x2aa04529, 0x00ad0aa0, 0x00ad0bc3 },
-   { 0x00800040, 0x2a404529, 0x00ad0a40, 0x00ad0b83 },
-   { 0x00800040, 0x2a604529, 0x00ad0a60, 0x00ad0ba3 },
-   { 0x00800040, 0x2a804529, 0x00ad0a80, 0x00ad0bc3 },
-   { 0x00800040, 0x2aa04529, 0x00ad0aa0, 0x00ad0be3 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000018 },
-   { 0x00800040, 0x29c04629, 0x00ad0ac3, 0x00ad0ae3 },
-   { 0x00800040, 0x29e04629, 0x00ad0ae3, 0x00ad0b03 },
-   { 0x00800040, 0x2a004629, 0x00ad0b03, 0x00ad0b23 },
-   { 0x00800040, 0x2a204629, 0x00ad0b23, 0x00ad0b43 },
-   { 0x00800040, 0x29c04529, 0x00ad09c0, 0x00ad0ac4 },
-   { 0x00800040, 0x29e04529, 0x00ad09e0, 0x00ad0ae4 },
-   { 0x00800040, 0x2a004529, 0x00ad0a00, 0x00ad0b04 },
-   { 0x00800040, 0x2a204529, 0x00ad0a20, 0x00ad0b24 },
-   { 0x00800040, 0x29c04529, 0x00ad09c0, 0x00ad0ae4 },
-   { 0x00800040, 0x29e04529, 0x00ad09e0, 0x00ad0b04 },
-   { 0x00800040, 0x2a004529, 0x00ad0a00, 0x00ad0b24 },
-   { 0x00800040, 0x2a204529, 0x00ad0a20, 0x00ad0b44 },
-   { 0x00800040, 0x2a404629, 0x00ad0b63, 0x00ad0b83 },
-   { 0x00800040, 0x2a604629, 0x00ad0b83, 0x00ad0ba3 },
-   { 0x00800040, 0x2a804629, 0x00ad0ba3, 0x00ad0bc3 },
-   { 0x00800040, 0x2aa04629, 0x00ad0bc3, 0x00ad0be3 },
-   { 0x00800040, 0x2a404529, 0x00ad0a40, 0x00ad0b64 },
-   { 0x00800040, 0x2a604529, 0x00ad0a60, 0x00ad0b84 },
-   { 0x00800040, 0x2a804529, 0x00ad0a80, 0x00ad0ba4 },
-   { 0x00800040, 0x2aa04529, 0x00ad0aa0, 0x00ad0bc4 },
-   { 0x00800040, 0x2a404529, 0x00ad0a40, 0x00ad0b84 },
-   { 0x00800040, 0x2a604529, 0x00ad0a60, 0x00ad0ba4 },
-   { 0x00800040, 0x2a804529, 0x00ad0a80, 0x00ad0bc4 },
-   { 0x00800040, 0x2aa04529, 0x00ad0aa0, 0x00ad0be4 },
-   { 0x80800008, 0x29c02d29, 0x00b109c0, 0x00020002 },
-   { 0x80800008, 0x29e02d29, 0x00b109e0, 0x00020002 },
-   { 0x80800008, 0x2a002d29, 0x00b10a00, 0x00020002 },
-   { 0x80800008, 0x2a202d29, 0x00b10a20, 0x00020002 },
-   { 0x80800008, 0x2a402d29, 0x00b10a40, 0x00020002 },
-   { 0x80800008, 0x2a602d29, 0x00b10a60, 0x00020002 },
-   { 0x80800008, 0x2a802d29, 0x00b10a80, 0x00020002 },
-   { 0x80800008, 0x2aa02d29, 0x00b10aa0, 0x00020002 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000082 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0007000f },
-   { 0x00800031, 0x2ac01d29, 0x00ad0e60, 0x0414a005 },
-   { 0x00800031, 0x2b601d29, 0x00ad0e60, 0x0414a006 },
-   { 0x00000005, 0x20580c21, 0x00210e60, 0x00000003 },
-   { 0x00000041, 0x20580c21, 0x00210058, 0x00000009 },
-   { 0x00000020, 0x34001400, 0x00001400, 0x00210058 },
-   { 0x80800042, 0x29c04629, 0x00ad0ac0, 0x00ad0ac1 },
-   { 0x80800042, 0x29e04629, 0x00ad0ae0, 0x00ad0ae1 },
-   { 0x80800042, 0x2a004629, 0x00ad0b00, 0x00ad0b01 },
-   { 0x80800042, 0x2a204629, 0x00ad0b20, 0x00ad0b21 },
-   { 0x80800042, 0x2a404629, 0x00ad0b60, 0x00ad0b61 },
-   { 0x80800042, 0x2a604629, 0x00ad0b80, 0x00ad0b81 },
-   { 0x80800042, 0x2a804629, 0x00ad0ba0, 0x00ad0ba1 },
-   { 0x80800042, 0x2aa04629, 0x00ad0bc0, 0x00ad0bc1 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x0000001a },
-   { 0x80800042, 0x29c04629, 0x00ad0ac1, 0x00ad0ac2 },
-   { 0x80800042, 0x29e04629, 0x00ad0ae1, 0x00ad0ae2 },
-   { 0x80800042, 0x2a004629, 0x00ad0b01, 0x00ad0b02 },
-   { 0x80800042, 0x2a204629, 0x00ad0b21, 0x00ad0b22 },
-   { 0x80800042, 0x2a404629, 0x00ad0b61, 0x00ad0b62 },
-   { 0x80800042, 0x2a604629, 0x00ad0b81, 0x00ad0b82 },
-   { 0x80800042, 0x2a804629, 0x00ad0ba1, 0x00ad0ba2 },
-   { 0x80800042, 0x2aa04629, 0x00ad0bc1, 0x00ad0bc2 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000011 },
-   { 0x80800042, 0x29c04629, 0x00ad0ac2, 0x00ad0ac3 },
-   { 0x80800042, 0x29e04629, 0x00ad0ae2, 0x00ad0ae3 },
-   { 0x80800042, 0x2a004629, 0x00ad0b02, 0x00ad0b03 },
-   { 0x80800042, 0x2a204629, 0x00ad0b22, 0x00ad0b23 },
-   { 0x80800042, 0x2a404629, 0x00ad0b62, 0x00ad0b63 },
-   { 0x80800042, 0x2a604629, 0x00ad0b82, 0x00ad0b83 },
-   { 0x80800042, 0x2a804629, 0x00ad0ba2, 0x00ad0ba3 },
-   { 0x80800042, 0x2aa04629, 0x00ad0bc2, 0x00ad0bc3 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000008 },
-   { 0x80800042, 0x29c04629, 0x00ad0ac3, 0x00ad0ac4 },
-   { 0x80800042, 0x29e04629, 0x00ad0ae3, 0x00ad0ae4 },
-   { 0x80800042, 0x2a004629, 0x00ad0b03, 0x00ad0b04 },
-   { 0x80800042, 0x2a204629, 0x00ad0b23, 0x00ad0b24 },
-   { 0x80800042, 0x2a404629, 0x00ad0b63, 0x00ad0b64 },
-   { 0x80800042, 0x2a604629, 0x00ad0b83, 0x00ad0b84 },
-   { 0x80800042, 0x2a804629, 0x00ad0ba3, 0x00ad0ba4 },
-   { 0x80800042, 0x2aa04629, 0x00ad0bc3, 0x00ad0bc4 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000058 },
-   { 0x01000005, 0x20002d3c, 0x00210030, 0x00020002 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x0000002d },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0007000f },
-   { 0x00800031, 0x2ac01d29, 0x00ad0e60, 0x0414a005 },
-   { 0x00800031, 0x2b601d29, 0x00ad0e60, 0x0414a006 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0000000f },
-   { 0x00800031, 0x2b401d29, 0x00ad0e60, 0x0411a005 },
-   { 0x00800031, 0x2be01d29, 0x00ad0e60, 0x0411a006 },
-   { 0x00000005, 0x20580c21, 0x00210e60, 0x00000003 },
-   { 0x00000041, 0x20580c21, 0x00210058, 0x00000009 },
-   { 0x00000020, 0x34001400, 0x00001400, 0x00210058 },
-   { 0x80800042, 0x29c04629, 0x00ad0ac0, 0x00ad0ae0 },
-   { 0x80800042, 0x29e04629, 0x00ad0ae0, 0x00ad0b00 },
-   { 0x80800042, 0x2a004629, 0x00ad0b00, 0x00ad0b20 },
-   { 0x80800042, 0x2a204629, 0x00ad0b20, 0x00ad0b40 },
-   { 0x80800042, 0x2a404629, 0x00ad0b60, 0x00ad0b80 },
-   { 0x80800042, 0x2a604629, 0x00ad0b80, 0x00ad0ba0 },
-   { 0x80800042, 0x2a804629, 0x00ad0ba0, 0x00ad0bc0 },
-   { 0x80800042, 0x2aa04629, 0x00ad0bc0, 0x00ad0be0 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x0000001a },
-   { 0x80800042, 0x29c04629, 0x00ad0ac1, 0x00ad0ae1 },
-   { 0x80800042, 0x29e04629, 0x00ad0ae1, 0x00ad0b01 },
-   { 0x80800042, 0x2a004629, 0x00ad0b01, 0x00ad0b21 },
-   { 0x80800042, 0x2a204629, 0x00ad0b21, 0x00ad0b41 },
-   { 0x80800042, 0x2a404629, 0x00ad0b61, 0x00ad0b81 },
-   { 0x80800042, 0x2a604629, 0x00ad0b81, 0x00ad0ba1 },
-   { 0x80800042, 0x2a804629, 0x00ad0ba1, 0x00ad0bc1 },
-   { 0x80800042, 0x2aa04629, 0x00ad0bc1, 0x00ad0be1 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000011 },
-   { 0x80800042, 0x29c04629, 0x00ad0ac2, 0x00ad0ae2 },
-   { 0x80800042, 0x29e04629, 0x00ad0ae2, 0x00ad0b02 },
-   { 0x80800042, 0x2a004629, 0x00ad0b02, 0x00ad0b22 },
-   { 0x80800042, 0x2a204629, 0x00ad0b22, 0x00ad0b42 },
-   { 0x80800042, 0x2a404629, 0x00ad0b62, 0x00ad0b82 },
-   { 0x80800042, 0x2a604629, 0x00ad0b82, 0x00ad0ba2 },
-   { 0x80800042, 0x2a804629, 0x00ad0ba2, 0x00ad0bc2 },
-   { 0x80800042, 0x2aa04629, 0x00ad0bc2, 0x00ad0be2 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000008 },
-   { 0x80800042, 0x29c04629, 0x00ad0ac3, 0x00ad0ac3 },
-   { 0x80800042, 0x29e04629, 0x00ad0ae3, 0x00ad0ae3 },
-   { 0x80800042, 0x2a004629, 0x00ad0b03, 0x00ad0b03 },
-   { 0x80800042, 0x2a204629, 0x00ad0b23, 0x00ad0b23 },
-   { 0x80800042, 0x2a404629, 0x00ad0b63, 0x00ad0b63 },
-   { 0x80800042, 0x2a604629, 0x00ad0b83, 0x00ad0b83 },
-   { 0x80800042, 0x2a804629, 0x00ad0ba3, 0x00ad0ba3 },
-   { 0x80800042, 0x2aa04629, 0x00ad0bc3, 0x00ad0bc3 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000029 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0007000f },
-   { 0x00800031, 0x2ac01d29, 0x00ad0e60, 0x0414a005 },
-   { 0x00800031, 0x2b601d29, 0x00ad0e60, 0x0414a006 },
-   { 0x00000005, 0x20580c21, 0x00210e60, 0x00000003 },
-   { 0x00000041, 0x20580c21, 0x00210058, 0x00000009 },
-   { 0x00000020, 0x34001400, 0x00001400, 0x00210058 },
-   { 0x00800001, 0x29c00229, 0x00ad0ac0, 0x00000000 },
-   { 0x00800001, 0x29e00229, 0x00ad0ae0, 0x00000000 },
-   { 0x00800001, 0x2a000229, 0x00ad0b00, 0x00000000 },
-   { 0x00800001, 0x2a200229, 0x00ad0b20, 0x00000000 },
-   { 0x00800001, 0x2a400229, 0x00ad0b60, 0x00000000 },
-   { 0x00800001, 0x2a600229, 0x00ad0b80, 0x00000000 },
-   { 0x00800001, 0x2a800229, 0x00ad0ba0, 0x00000000 },
-   { 0x00800001, 0x2aa00229, 0x00ad0bc0, 0x00000000 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x0000001a },
-   { 0x00800001, 0x29c00229, 0x00ad0ac1, 0x00000000 },
-   { 0x00800001, 0x29e00229, 0x00ad0ae1, 0x00000000 },
-   { 0x00800001, 0x2a000229, 0x00ad0b01, 0x00000000 },
-   { 0x00800001, 0x2a200229, 0x00ad0b21, 0x00000000 },
-   { 0x00800001, 0x2a400229, 0x00ad0b61, 0x00000000 },
-   { 0x00800001, 0x2a600229, 0x00ad0b81, 0x00000000 },
-   { 0x00800001, 0x2a800229, 0x00ad0ba1, 0x00000000 },
-   { 0x00800001, 0x2aa00229, 0x00ad0bc1, 0x00000000 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000011 },
-   { 0x00800001, 0x29c00229, 0x00ad0ac2, 0x00000000 },
-   { 0x00800001, 0x29e00229, 0x00ad0ae2, 0x00000000 },
-   { 0x00800001, 0x2a000229, 0x00ad0b02, 0x00000000 },
-   { 0x00800001, 0x2a200229, 0x00ad0b22, 0x00000000 },
-   { 0x00800001, 0x2a400229, 0x00ad0b62, 0x00000000 },
-   { 0x00800001, 0x2a600229, 0x00ad0b82, 0x00000000 },
-   { 0x00800001, 0x2a800229, 0x00ad0ba2, 0x00000000 },
-   { 0x00800001, 0x2aa00229, 0x00ad0bc2, 0x00000000 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000008 },
-   { 0x00800001, 0x29c00229, 0x00ad0ac3, 0x00000000 },
-   { 0x00800001, 0x29e00229, 0x00ad0ae3, 0x00000000 },
-   { 0x00800001, 0x2a000229, 0x00ad0b03, 0x00000000 },
-   { 0x00800001, 0x2a200229, 0x00ad0b23, 0x00000000 },
-   { 0x00800001, 0x2a400229, 0x00ad0b63, 0x00000000 },
-   { 0x00800001, 0x2a600229, 0x00ad0b83, 0x00000000 },
-   { 0x00800001, 0x2a800229, 0x00ad0ba3, 0x00000000 },
-   { 0x00800001, 0x2aa00229, 0x00ad0bc3, 0x00000000 },
-   { 0x00600001, 0x28800129, 0x008d09c0, 0x00000000 },
-   { 0x00600001, 0x28a00129, 0x008d09e0, 0x00000000 },
-   { 0x00600001, 0x28c00129, 0x008d0a00, 0x00000000 },
-   { 0x00600001, 0x28e00129, 0x008d0a20, 0x00000000 },
-   { 0x00600001, 0x29000129, 0x008d0a40, 0x00000000 },
-   { 0x00600001, 0x29200129, 0x008d0a60, 0x00000000 },
-   { 0x00600001, 0x29400129, 0x008d0a80, 0x00000000 },
-   { 0x00600001, 0x29600129, 0x008d0aa0, 0x00000000 },
-   { 0x0020000c, 0x2e6e3dad, 0x00450036, 0x00020002 },
-   { 0x0020000c, 0x2e601ca5, 0x00450e80, 0x00000001 },
-   { 0x00200040, 0x2e6034a5, 0x00450e60, 0x00450e6e },
-   { 0x00000005, 0x2e640c21, 0x00210e64, 0xfffffffe },
-   { 0x02000005, 0x20002e3c, 0x0021003f, 0x00040004 },
-   { 0x00010040, 0x2e640c21, 0x00210e64, 0x00000001 },
-   { 0x01000005, 0x20002d3c, 0x00210038, 0x00020002 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x000000a2 },
-   { 0x01000005, 0x20002d3c, 0x0021003a, 0x00020002 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000076 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0007000f },
-   { 0x00800031, 0x2ac01d29, 0x00ad0e60, 0x0414a005 },
-   { 0x00800031, 0x2b601d29, 0x00ad0e60, 0x0414a006 },
-   { 0x00000005, 0x20580c21, 0x00210e60, 0x00000003 },
-   { 0x00000041, 0x20580c21, 0x00210058, 0x00000019 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0001000f },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 },
-   { 0x00800031, 0x2b401d29, 0x00ad0e60, 0x0411a005 },
-   { 0x00800031, 0x2be01d29, 0x00ad0e60, 0x0411a006 },
-   { 0x00000020, 0x34001400, 0x00001400, 0x00210058 },
-   { 0x00800040, 0x29c04629, 0x00ad0ac0, 0x00ad0ae0 },
-   { 0x00800040, 0x29e04629, 0x00ad0ae0, 0x00ad0b00 },
-   { 0x00800040, 0x2a004629, 0x00ad0b00, 0x00ad0b20 },
-   { 0x00800040, 0x2a204629, 0x00ad0b20, 0x00ad0b40 },
-   { 0x00800040, 0x29c04529, 0x00ad09c0, 0x00ad0ac1 },
-   { 0x00800040, 0x29e04529, 0x00ad09e0, 0x00ad0ae1 },
-   { 0x00800040, 0x2a004529, 0x00ad0a00, 0x00ad0b01 },
-   { 0x00800040, 0x2a204529, 0x00ad0a20, 0x00ad0b21 },
-   { 0x00800040, 0x29c04529, 0x00ad09c0, 0x00ad0ae1 },
-   { 0x00800040, 0x29e04529, 0x00ad09e0, 0x00ad0b01 },
-   { 0x00800040, 0x2a004529, 0x00ad0a00, 0x00ad0b21 },
-   { 0x00800040, 0x2a204529, 0x00ad0a20, 0x00ad0b41 },
-   { 0x00800040, 0x2a404629, 0x00ad0b60, 0x00ad0b80 },
-   { 0x00800040, 0x2a604629, 0x00ad0b80, 0x00ad0ba0 },
-   { 0x00800040, 0x2a804629, 0x00ad0ba0, 0x00ad0bc0 },
-   { 0x00800040, 0x2aa04629, 0x00ad0bc0, 0x00ad0be0 },
-   { 0x00800040, 0x2a404529, 0x00ad0a40, 0x00ad0b61 },
-   { 0x00800040, 0x2a604529, 0x00ad0a60, 0x00ad0b81 },
-   { 0x00800040, 0x2a804529, 0x00ad0a80, 0x00ad0ba1 },
-   { 0x00800040, 0x2aa04529, 0x00ad0aa0, 0x00ad0bc1 },
-   { 0x00800040, 0x2a404529, 0x00ad0a40, 0x00ad0b81 },
-   { 0x00800040, 0x2a604529, 0x00ad0a60, 0x00ad0ba1 },
-   { 0x00800040, 0x2a804529, 0x00ad0a80, 0x00ad0bc1 },
-   { 0x00800040, 0x2aa04529, 0x00ad0aa0, 0x00ad0be1 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x0000004a },
-   { 0x00800040, 0x29c04629, 0x00ad0ac1, 0x00ad0ae1 },
-   { 0x00800040, 0x29e04629, 0x00ad0ae1, 0x00ad0b01 },
-   { 0x00800040, 0x2a004629, 0x00ad0b01, 0x00ad0b21 },
-   { 0x00800040, 0x2a204629, 0x00ad0b21, 0x00ad0b41 },
-   { 0x00800040, 0x29c04529, 0x00ad09c0, 0x00ad0ac2 },
-   { 0x00800040, 0x29e04529, 0x00ad09e0, 0x00ad0ae2 },
-   { 0x00800040, 0x2a004529, 0x00ad0a00, 0x00ad0b02 },
-   { 0x00800040, 0x2a204529, 0x00ad0a20, 0x00ad0b22 },
-   { 0x00800040, 0x29c04529, 0x00ad09c0, 0x00ad0ae2 },
-   { 0x00800040, 0x29e04529, 0x00ad09e0, 0x00ad0b02 },
-   { 0x00800040, 0x2a004529, 0x00ad0a00, 0x00ad0b22 },
-   { 0x00800040, 0x2a204529, 0x00ad0a20, 0x00ad0b42 },
-   { 0x00800040, 0x2a404629, 0x00ad0b61, 0x00ad0b81 },
-   { 0x00800040, 0x2a604629, 0x00ad0b81, 0x00ad0ba1 },
-   { 0x00800040, 0x2a804629, 0x00ad0ba1, 0x00ad0bc1 },
-   { 0x00800040, 0x2aa04629, 0x00ad0bc1, 0x00ad0be1 },
-   { 0x00800040, 0x2a404529, 0x00ad0a40, 0x00ad0b62 },
-   { 0x00800040, 0x2a604529, 0x00ad0a60, 0x00ad0b82 },
-   { 0x00800040, 0x2a804529, 0x00ad0a80, 0x00ad0ba2 },
-   { 0x00800040, 0x2aa04529, 0x00ad0aa0, 0x00ad0bc2 },
-   { 0x00800040, 0x2a404529, 0x00ad0a40, 0x00ad0b82 },
-   { 0x00800040, 0x2a604529, 0x00ad0a60, 0x00ad0ba2 },
-   { 0x00800040, 0x2a804529, 0x00ad0a80, 0x00ad0bc2 },
-   { 0x00800040, 0x2aa04529, 0x00ad0aa0, 0x00ad0be2 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000031 },
-   { 0x00800040, 0x29c04629, 0x00ad0ac2, 0x00ad0ae2 },
-   { 0x00800040, 0x29e04629, 0x00ad0ae2, 0x00ad0b02 },
-   { 0x00800040, 0x2a004629, 0x00ad0b02, 0x00ad0b22 },
-   { 0x00800040, 0x2a204629, 0x00ad0b22, 0x00ad0b42 },
-   { 0x00800040, 0x29c04529, 0x00ad09c0, 0x00ad0ac3 },
-   { 0x00800040, 0x29e04529, 0x00ad09e0, 0x00ad0ae3 },
-   { 0x00800040, 0x2a004529, 0x00ad0a00, 0x00ad0b03 },
-   { 0x00800040, 0x2a204529, 0x00ad0a20, 0x00ad0b23 },
-   { 0x00800040, 0x29c04529, 0x00ad09c0, 0x00ad0ae3 },
-   { 0x00800040, 0x29e04529, 0x00ad09e0, 0x00ad0b03 },
-   { 0x00800040, 0x2a004529, 0x00ad0a00, 0x00ad0b23 },
-   { 0x00800040, 0x2a204529, 0x00ad0a20, 0x00ad0b43 },
-   { 0x00800040, 0x2a404629, 0x00ad0b62, 0x00ad0b82 },
-   { 0x00800040, 0x2a604629, 0x00ad0b82, 0x00ad0ba2 },
-   { 0x00800040, 0x2a804629, 0x00ad0ba2, 0x00ad0bc2 },
-   { 0x00800040, 0x2aa04629, 0x00ad0bc2, 0x00ad0be2 },
-   { 0x00800040, 0x2a404529, 0x00ad0a40, 0x00ad0b63 },
-   { 0x00800040, 0x2a604529, 0x00ad0a60, 0x00ad0b83 },
-   { 0x00800040, 0x2a804529, 0x00ad0a80, 0x00ad0ba3 },
-   { 0x00800040, 0x2aa04529, 0x00ad0aa0, 0x00ad0bc3 },
-   { 0x00800040, 0x2a404529, 0x00ad0a40, 0x00ad0b83 },
-   { 0x00800040, 0x2a604529, 0x00ad0a60, 0x00ad0ba3 },
-   { 0x00800040, 0x2a804529, 0x00ad0a80, 0x00ad0bc3 },
-   { 0x00800040, 0x2aa04529, 0x00ad0aa0, 0x00ad0be3 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000018 },
-   { 0x00800040, 0x29c04629, 0x00ad0ac3, 0x00ad0ae3 },
-   { 0x00800040, 0x29e04629, 0x00ad0ae3, 0x00ad0b03 },
-   { 0x00800040, 0x2a004629, 0x00ad0b03, 0x00ad0b23 },
-   { 0x00800040, 0x2a204629, 0x00ad0b23, 0x00ad0b43 },
-   { 0x00800040, 0x29c04529, 0x00ad09c0, 0x00ad0ac4 },
-   { 0x00800040, 0x29e04529, 0x00ad09e0, 0x00ad0ae4 },
-   { 0x00800040, 0x2a004529, 0x00ad0a00, 0x00ad0b04 },
-   { 0x00800040, 0x2a204529, 0x00ad0a20, 0x00ad0b24 },
-   { 0x00800040, 0x29c04529, 0x00ad09c0, 0x00ad0ae4 },
-   { 0x00800040, 0x29e04529, 0x00ad09e0, 0x00ad0b04 },
-   { 0x00800040, 0x2a004529, 0x00ad0a00, 0x00ad0b24 },
-   { 0x00800040, 0x2a204529, 0x00ad0a20, 0x00ad0b44 },
-   { 0x00800040, 0x2a404629, 0x00ad0b63, 0x00ad0b83 },
-   { 0x00800040, 0x2a604629, 0x00ad0b83, 0x00ad0ba3 },
-   { 0x00800040, 0x2a804629, 0x00ad0ba3, 0x00ad0bc3 },
-   { 0x00800040, 0x2aa04629, 0x00ad0bc3, 0x00ad0be3 },
-   { 0x00800040, 0x2a404529, 0x00ad0a40, 0x00ad0b64 },
-   { 0x00800040, 0x2a604529, 0x00ad0a60, 0x00ad0b84 },
-   { 0x00800040, 0x2a804529, 0x00ad0a80, 0x00ad0ba4 },
-   { 0x00800040, 0x2aa04529, 0x00ad0aa0, 0x00ad0bc4 },
-   { 0x00800040, 0x2a404529, 0x00ad0a40, 0x00ad0b84 },
-   { 0x00800040, 0x2a604529, 0x00ad0a60, 0x00ad0ba4 },
-   { 0x00800040, 0x2a804529, 0x00ad0a80, 0x00ad0bc4 },
-   { 0x00800040, 0x2aa04529, 0x00ad0aa0, 0x00ad0be4 },
-   { 0x80800008, 0x29c02d29, 0x00b109c0, 0x00020002 },
-   { 0x80800008, 0x29e02d29, 0x00b109e0, 0x00020002 },
-   { 0x80800008, 0x2a002d29, 0x00b10a00, 0x00020002 },
-   { 0x80800008, 0x2a202d29, 0x00b10a20, 0x00020002 },
-   { 0x80800008, 0x2a402d29, 0x00b10a40, 0x00020002 },
-   { 0x80800008, 0x2a602d29, 0x00b10a60, 0x00020002 },
-   { 0x80800008, 0x2a802d29, 0x00b10a80, 0x00020002 },
-   { 0x80800008, 0x2aa02d29, 0x00b10aa0, 0x00020002 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000082 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0007000f },
-   { 0x00800031, 0x2ac01d29, 0x00ad0e60, 0x0414a005 },
-   { 0x00800031, 0x2b601d29, 0x00ad0e60, 0x0414a006 },
-   { 0x00000005, 0x20580c21, 0x00210e60, 0x00000003 },
-   { 0x00000041, 0x20580c21, 0x00210058, 0x00000009 },
-   { 0x00000020, 0x34001400, 0x00001400, 0x00210058 },
-   { 0x80800042, 0x29c04629, 0x00ad0ac0, 0x00ad0ac1 },
-   { 0x80800042, 0x29e04629, 0x00ad0ae0, 0x00ad0ae1 },
-   { 0x80800042, 0x2a004629, 0x00ad0b00, 0x00ad0b01 },
-   { 0x80800042, 0x2a204629, 0x00ad0b20, 0x00ad0b21 },
-   { 0x80800042, 0x2a404629, 0x00ad0b60, 0x00ad0b61 },
-   { 0x80800042, 0x2a604629, 0x00ad0b80, 0x00ad0b81 },
-   { 0x80800042, 0x2a804629, 0x00ad0ba0, 0x00ad0ba1 },
-   { 0x80800042, 0x2aa04629, 0x00ad0bc0, 0x00ad0bc1 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x0000001a },
-   { 0x80800042, 0x29c04629, 0x00ad0ac1, 0x00ad0ac2 },
-   { 0x80800042, 0x29e04629, 0x00ad0ae1, 0x00ad0ae2 },
-   { 0x80800042, 0x2a004629, 0x00ad0b01, 0x00ad0b02 },
-   { 0x80800042, 0x2a204629, 0x00ad0b21, 0x00ad0b22 },
-   { 0x80800042, 0x2a404629, 0x00ad0b61, 0x00ad0b62 },
-   { 0x80800042, 0x2a604629, 0x00ad0b81, 0x00ad0b82 },
-   { 0x80800042, 0x2a804629, 0x00ad0ba1, 0x00ad0ba2 },
-   { 0x80800042, 0x2aa04629, 0x00ad0bc1, 0x00ad0bc2 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000011 },
-   { 0x80800042, 0x29c04629, 0x00ad0ac2, 0x00ad0ac3 },
-   { 0x80800042, 0x29e04629, 0x00ad0ae2, 0x00ad0ae3 },
-   { 0x80800042, 0x2a004629, 0x00ad0b02, 0x00ad0b03 },
-   { 0x80800042, 0x2a204629, 0x00ad0b22, 0x00ad0b23 },
-   { 0x80800042, 0x2a404629, 0x00ad0b62, 0x00ad0b63 },
-   { 0x80800042, 0x2a604629, 0x00ad0b82, 0x00ad0b83 },
-   { 0x80800042, 0x2a804629, 0x00ad0ba2, 0x00ad0ba3 },
-   { 0x80800042, 0x2aa04629, 0x00ad0bc2, 0x00ad0bc3 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000008 },
-   { 0x80800042, 0x29c04629, 0x00ad0ac3, 0x00ad0ac4 },
-   { 0x80800042, 0x29e04629, 0x00ad0ae3, 0x00ad0ae4 },
-   { 0x80800042, 0x2a004629, 0x00ad0b03, 0x00ad0b04 },
-   { 0x80800042, 0x2a204629, 0x00ad0b23, 0x00ad0b24 },
-   { 0x80800042, 0x2a404629, 0x00ad0b63, 0x00ad0b64 },
-   { 0x80800042, 0x2a604629, 0x00ad0b83, 0x00ad0b84 },
-   { 0x80800042, 0x2a804629, 0x00ad0ba3, 0x00ad0ba4 },
-   { 0x80800042, 0x2aa04629, 0x00ad0bc3, 0x00ad0bc4 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000058 },
-   { 0x01000005, 0x20002d3c, 0x0021003a, 0x00020002 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x0000002d },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0007000f },
-   { 0x00800031, 0x2ac01d29, 0x00ad0e60, 0x0414a005 },
-   { 0x00800031, 0x2b601d29, 0x00ad0e60, 0x0414a006 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0000000f },
-   { 0x00800031, 0x2b401d29, 0x00ad0e60, 0x0411a005 },
-   { 0x00800031, 0x2be01d29, 0x00ad0e60, 0x0411a006 },
-   { 0x00000005, 0x20580c21, 0x00210e60, 0x00000003 },
-   { 0x00000041, 0x20580c21, 0x00210058, 0x00000009 },
-   { 0x00000020, 0x34001400, 0x00001400, 0x00210058 },
-   { 0x80800042, 0x29c04629, 0x00ad0ac0, 0x00ad0ae0 },
-   { 0x80800042, 0x29e04629, 0x00ad0ae0, 0x00ad0b00 },
-   { 0x80800042, 0x2a004629, 0x00ad0b00, 0x00ad0b20 },
-   { 0x80800042, 0x2a204629, 0x00ad0b20, 0x00ad0b40 },
-   { 0x80800042, 0x2a404629, 0x00ad0b60, 0x00ad0b80 },
-   { 0x80800042, 0x2a604629, 0x00ad0b80, 0x00ad0ba0 },
-   { 0x80800042, 0x2a804629, 0x00ad0ba0, 0x00ad0bc0 },
-   { 0x80800042, 0x2aa04629, 0x00ad0bc0, 0x00ad0be0 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x0000001a },
-   { 0x80800042, 0x29c04629, 0x00ad0ac1, 0x00ad0ae1 },
-   { 0x80800042, 0x29e04629, 0x00ad0ae1, 0x00ad0b01 },
-   { 0x80800042, 0x2a004629, 0x00ad0b01, 0x00ad0b21 },
-   { 0x80800042, 0x2a204629, 0x00ad0b21, 0x00ad0b41 },
-   { 0x80800042, 0x2a404629, 0x00ad0b61, 0x00ad0b81 },
-   { 0x80800042, 0x2a604629, 0x00ad0b81, 0x00ad0ba1 },
-   { 0x80800042, 0x2a804629, 0x00ad0ba1, 0x00ad0bc1 },
-   { 0x80800042, 0x2aa04629, 0x00ad0bc1, 0x00ad0be1 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000011 },
-   { 0x80800042, 0x29c04629, 0x00ad0ac2, 0x00ad0ae2 },
-   { 0x80800042, 0x29e04629, 0x00ad0ae2, 0x00ad0b02 },
-   { 0x80800042, 0x2a004629, 0x00ad0b02, 0x00ad0b22 },
-   { 0x80800042, 0x2a204629, 0x00ad0b22, 0x00ad0b42 },
-   { 0x80800042, 0x2a404629, 0x00ad0b62, 0x00ad0b82 },
-   { 0x80800042, 0x2a604629, 0x00ad0b82, 0x00ad0ba2 },
-   { 0x80800042, 0x2a804629, 0x00ad0ba2, 0x00ad0bc2 },
-   { 0x80800042, 0x2aa04629, 0x00ad0bc2, 0x00ad0be2 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000008 },
-   { 0x80800042, 0x29c04629, 0x00ad0ac3, 0x00ad0ac3 },
-   { 0x80800042, 0x29e04629, 0x00ad0ae3, 0x00ad0ae3 },
-   { 0x80800042, 0x2a004629, 0x00ad0b03, 0x00ad0b03 },
-   { 0x80800042, 0x2a204629, 0x00ad0b23, 0x00ad0b23 },
-   { 0x80800042, 0x2a404629, 0x00ad0b63, 0x00ad0b63 },
-   { 0x80800042, 0x2a604629, 0x00ad0b83, 0x00ad0b83 },
-   { 0x80800042, 0x2a804629, 0x00ad0ba3, 0x00ad0ba3 },
-   { 0x80800042, 0x2aa04629, 0x00ad0bc3, 0x00ad0bc3 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000029 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0007000f },
-   { 0x00800031, 0x2ac01d29, 0x00ad0e60, 0x0414a005 },
-   { 0x00800031, 0x2b601d29, 0x00ad0e60, 0x0414a006 },
-   { 0x00000005, 0x20580c21, 0x00210e60, 0x00000003 },
-   { 0x00000041, 0x20580c21, 0x00210058, 0x00000009 },
-   { 0x00000020, 0x34001400, 0x00001400, 0x00210058 },
-   { 0x00800001, 0x29c00229, 0x00ad0ac0, 0x00000000 },
-   { 0x00800001, 0x29e00229, 0x00ad0ae0, 0x00000000 },
-   { 0x00800001, 0x2a000229, 0x00ad0b00, 0x00000000 },
-   { 0x00800001, 0x2a200229, 0x00ad0b20, 0x00000000 },
-   { 0x00800001, 0x2a400229, 0x00ad0b60, 0x00000000 },
-   { 0x00800001, 0x2a600229, 0x00ad0b80, 0x00000000 },
-   { 0x00800001, 0x2a800229, 0x00ad0ba0, 0x00000000 },
-   { 0x00800001, 0x2aa00229, 0x00ad0bc0, 0x00000000 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x0000001a },
-   { 0x00800001, 0x29c00229, 0x00ad0ac1, 0x00000000 },
-   { 0x00800001, 0x29e00229, 0x00ad0ae1, 0x00000000 },
-   { 0x00800001, 0x2a000229, 0x00ad0b01, 0x00000000 },
-   { 0x00800001, 0x2a200229, 0x00ad0b21, 0x00000000 },
-   { 0x00800001, 0x2a400229, 0x00ad0b61, 0x00000000 },
-   { 0x00800001, 0x2a600229, 0x00ad0b81, 0x00000000 },
-   { 0x00800001, 0x2a800229, 0x00ad0ba1, 0x00000000 },
-   { 0x00800001, 0x2aa00229, 0x00ad0bc1, 0x00000000 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000011 },
-   { 0x00800001, 0x29c00229, 0x00ad0ac2, 0x00000000 },
-   { 0x00800001, 0x29e00229, 0x00ad0ae2, 0x00000000 },
-   { 0x00800001, 0x2a000229, 0x00ad0b02, 0x00000000 },
-   { 0x00800001, 0x2a200229, 0x00ad0b22, 0x00000000 },
-   { 0x00800001, 0x2a400229, 0x00ad0b62, 0x00000000 },
-   { 0x00800001, 0x2a600229, 0x00ad0b82, 0x00000000 },
-   { 0x00800001, 0x2a800229, 0x00ad0ba2, 0x00000000 },
-   { 0x00800001, 0x2aa00229, 0x00ad0bc2, 0x00000000 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000008 },
-   { 0x00800001, 0x29c00229, 0x00ad0ac3, 0x00000000 },
-   { 0x00800001, 0x29e00229, 0x00ad0ae3, 0x00000000 },
-   { 0x00800001, 0x2a000229, 0x00ad0b03, 0x00000000 },
-   { 0x00800001, 0x2a200229, 0x00ad0b23, 0x00000000 },
-   { 0x00800001, 0x2a400229, 0x00ad0b63, 0x00000000 },
-   { 0x00800001, 0x2a600229, 0x00ad0b83, 0x00000000 },
-   { 0x00800001, 0x2a800229, 0x00ad0ba3, 0x00000000 },
-   { 0x00800001, 0x2aa00229, 0x00ad0bc3, 0x00000000 },
-   { 0x00600001, 0x28900129, 0x008d09c0, 0x00000000 },
-   { 0x00600001, 0x28b00129, 0x008d09e0, 0x00000000 },
-   { 0x00600001, 0x28d00129, 0x008d0a00, 0x00000000 },
-   { 0x00600001, 0x28f00129, 0x008d0a20, 0x00000000 },
-   { 0x00600001, 0x29100129, 0x008d0a40, 0x00000000 },
-   { 0x00600001, 0x29300129, 0x008d0a60, 0x00000000 },
-   { 0x00600001, 0x29500129, 0x008d0a80, 0x00000000 },
-   { 0x00600001, 0x29700129, 0x008d0aa0, 0x00000000 },
-   { 0x00600001, 0x20200021, 0x008d0e80, 0x00000000 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0007001f },
-   { 0x00000001, 0x20280061, 0x00000000, 0x0007000f },
-   { 0x0020000c, 0x2e6e3dad, 0x00450032, 0x00010001 },
-   { 0x00200040, 0x2e6034a5, 0x00450e80, 0x00450e6e },
-   { 0x00000005, 0x2e640c21, 0x00210e64, 0xfffffffe },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
-   { 0x02000005, 0x20002e3c, 0x0021003f, 0x00020002 },
-   { 0x00010040, 0x2e641ca5, 0x00210e64, 0x00000001 },
-   { 0x01000005, 0x20002d3c, 0x00210032, 0x00010001 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x000000b1 },
-   { 0x01000005, 0x20002d3c, 0x00210034, 0x00010001 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x0000007d },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
-   { 0x00800031, 0x29c01d29, 0x008d0e60, 0x0411a007 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a001d29, 0x008d0e60, 0x0411a007 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a401d29, 0x008d0e60, 0x0411a007 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a801d29, 0x008d0e60, 0x0411a007 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0007001f },
-   { 0x00800031, 0x2ac01d29, 0x008d0e60, 0x0418a007 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
-   { 0x00800031, 0x2bc01d29, 0x008d0e60, 0x0411a007 },
-   { 0x00000005, 0x20580c21, 0x00210e60, 0x00000003 },
-   { 0x00000041, 0x20580c21, 0x00210058, 0x00000019 },
-   { 0x00000020, 0x34001400, 0x00001400, 0x00210058 },
-   { 0x00800040, 0x2c004629, 0x00b109c0, 0x00b10a00 },
-   { 0x00800040, 0x2c204629, 0x00b10a00, 0x00b10a40 },
-   { 0x00800040, 0x2c404629, 0x00b10a40, 0x00b10a80 },
-   { 0x00800040, 0x2c604629, 0x00b10a80, 0x00b10ac0 },
-   { 0x00800040, 0x2c804629, 0x00b10ac0, 0x00b10b00 },
-   { 0x00800040, 0x2ca04629, 0x00b10b00, 0x00b10b40 },
-   { 0x00800040, 0x2cc04629, 0x00b10b40, 0x00b10b80 },
-   { 0x00800040, 0x2ce04629, 0x00b10b80, 0x00b10bc0 },
-   { 0x00800040, 0x2c004529, 0x00b10c00, 0x00b109c1 },
-   { 0x00800040, 0x2c204529, 0x00b10c20, 0x00b10a01 },
-   { 0x00800040, 0x2c404529, 0x00b10c40, 0x00b10a41 },
-   { 0x00800040, 0x2c604529, 0x00b10c60, 0x00b10a81 },
-   { 0x00800040, 0x2c804529, 0x00b10c80, 0x00b10ac1 },
-   { 0x00800040, 0x2ca04529, 0x00b10ca0, 0x00b10b01 },
-   { 0x00800040, 0x2cc04529, 0x00b10cc0, 0x00b10b41 },
-   { 0x00800040, 0x2ce04529, 0x00b10ce0, 0x00b10b81 },
-   { 0x00800040, 0x2c004529, 0x00b10c00, 0x00b10a01 },
-   { 0x00800040, 0x2c204529, 0x00b10c20, 0x00b10a41 },
-   { 0x00800040, 0x2c404529, 0x00b10c40, 0x00b10a81 },
-   { 0x00800040, 0x2c604529, 0x00b10c60, 0x00b10ac1 },
-   { 0x00800040, 0x2c804529, 0x00b10c80, 0x00b10b01 },
-   { 0x00800040, 0x2ca04529, 0x00b10ca0, 0x00b10b41 },
-   { 0x00800040, 0x2cc04529, 0x00b10cc0, 0x00b10b81 },
-   { 0x00800040, 0x2ce04529, 0x00b10ce0, 0x00b10bc1 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x0000004a },
-   { 0x00800040, 0x2c004629, 0x00b109c1, 0x00b10a01 },
-   { 0x00800040, 0x2c204629, 0x00b10a01, 0x00b10a41 },
-   { 0x00800040, 0x2c404629, 0x00b10a41, 0x00b10a81 },
-   { 0x00800040, 0x2c604629, 0x00b10a81, 0x00b10ac1 },
-   { 0x00800040, 0x2c804629, 0x00b10ac1, 0x00b10b01 },
-   { 0x00800040, 0x2ca04629, 0x00b10b01, 0x00b10b41 },
-   { 0x00800040, 0x2cc04629, 0x00b10b41, 0x00b10b81 },
-   { 0x00800040, 0x2ce04629, 0x00b10b81, 0x00b10bc1 },
-   { 0x00800040, 0x2c004529, 0x00b10c00, 0x00b109c2 },
-   { 0x00800040, 0x2c204529, 0x00b10c20, 0x00b10a02 },
-   { 0x00800040, 0x2c404529, 0x00b10c40, 0x00b10a42 },
-   { 0x00800040, 0x2c604529, 0x00b10c60, 0x00b10a82 },
-   { 0x00800040, 0x2c804529, 0x00b10c80, 0x00b10ac2 },
-   { 0x00800040, 0x2ca04529, 0x00b10ca0, 0x00b10b02 },
-   { 0x00800040, 0x2cc04529, 0x00b10cc0, 0x00b10b42 },
-   { 0x00800040, 0x2ce04529, 0x00b10ce0, 0x00b10b82 },
-   { 0x00800040, 0x2c004529, 0x00b10c00, 0x00b10a02 },
-   { 0x00800040, 0x2c204529, 0x00b10c20, 0x00b10a42 },
-   { 0x00800040, 0x2c404529, 0x00b10c40, 0x00b10a82 },
-   { 0x00800040, 0x2c604529, 0x00b10c60, 0x00b10ac2 },
-   { 0x00800040, 0x2c804529, 0x00b10c80, 0x00b10b02 },
-   { 0x00800040, 0x2ca04529, 0x00b10ca0, 0x00b10b42 },
-   { 0x00800040, 0x2cc04529, 0x00b10cc0, 0x00b10b82 },
-   { 0x00800040, 0x2ce04529, 0x00b10ce0, 0x00b10bc2 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000031 },
-   { 0x00800040, 0x2c004629, 0x00b109c2, 0x00b10a02 },
-   { 0x00800040, 0x2c204629, 0x00b10a02, 0x00b10a42 },
-   { 0x00800040, 0x2c404629, 0x00b10a42, 0x00b10a82 },
-   { 0x00800040, 0x2c604629, 0x00b10a82, 0x00b10ac2 },
-   { 0x00800040, 0x2c804629, 0x00b10ac2, 0x00b10b02 },
-   { 0x00800040, 0x2ca04629, 0x00b10b02, 0x00b10b42 },
-   { 0x00800040, 0x2cc04629, 0x00b10b42, 0x00b10b82 },
-   { 0x00800040, 0x2ce04629, 0x00b10b82, 0x00b10bc2 },
-   { 0x00800040, 0x2c004529, 0x00b10c00, 0x00b109c3 },
-   { 0x00800040, 0x2c204529, 0x00b10c20, 0x00b10a03 },
-   { 0x00800040, 0x2c404529, 0x00b10c40, 0x00b10a43 },
-   { 0x00800040, 0x2c604529, 0x00b10c60, 0x00b10a83 },
-   { 0x00800040, 0x2c804529, 0x00b10c80, 0x00b10ac3 },
-   { 0x00800040, 0x2ca04529, 0x00b10ca0, 0x00b10b03 },
-   { 0x00800040, 0x2cc04529, 0x00b10cc0, 0x00b10b43 },
-   { 0x00800040, 0x2ce04529, 0x00b10ce0, 0x00b10b83 },
-   { 0x00800040, 0x2c004529, 0x00b10c00, 0x00b10a03 },
-   { 0x00800040, 0x2c204529, 0x00b10c20, 0x00b10a43 },
-   { 0x00800040, 0x2c404529, 0x00b10c40, 0x00b10a83 },
-   { 0x00800040, 0x2c604529, 0x00b10c60, 0x00b10ac3 },
-   { 0x00800040, 0x2c804529, 0x00b10c80, 0x00b10b03 },
-   { 0x00800040, 0x2ca04529, 0x00b10ca0, 0x00b10b43 },
-   { 0x00800040, 0x2cc04529, 0x00b10cc0, 0x00b10b83 },
-   { 0x00800040, 0x2ce04529, 0x00b10ce0, 0x00b10bc3 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000018 },
-   { 0x00800040, 0x2c004629, 0x00b109c3, 0x00b10a03 },
-   { 0x00800040, 0x2c204629, 0x00b10a03, 0x00b10a43 },
-   { 0x00800040, 0x2c404629, 0x00b10a43, 0x00b10a83 },
-   { 0x00800040, 0x2c604629, 0x00b10a83, 0x00b10ac3 },
-   { 0x00800040, 0x2c804629, 0x00b10ac3, 0x00b10b03 },
-   { 0x00800040, 0x2ca04629, 0x00b10b03, 0x00b10b43 },
-   { 0x00800040, 0x2cc04629, 0x00b10b43, 0x00b10b83 },
-   { 0x00800040, 0x2ce04629, 0x00b10b83, 0x00b10bc3 },
-   { 0x00800040, 0x2c004529, 0x00b10c00, 0x00b109c4 },
-   { 0x00800040, 0x2c204529, 0x00b10c20, 0x00b10a04 },
-   { 0x00800040, 0x2c404529, 0x00b10c40, 0x00b10a44 },
-   { 0x00800040, 0x2c604529, 0x00b10c60, 0x00b10a84 },
-   { 0x00800040, 0x2c804529, 0x00b10c80, 0x00b10ac4 },
-   { 0x00800040, 0x2ca04529, 0x00b10ca0, 0x00b10b04 },
-   { 0x00800040, 0x2cc04529, 0x00b10cc0, 0x00b10b44 },
-   { 0x00800040, 0x2ce04529, 0x00b10ce0, 0x00b10b84 },
-   { 0x00800040, 0x2c004529, 0x00b10c00, 0x00b10a04 },
-   { 0x00800040, 0x2c204529, 0x00b10c20, 0x00b10a44 },
-   { 0x00800040, 0x2c404529, 0x00b10c40, 0x00b10a84 },
-   { 0x00800040, 0x2c604529, 0x00b10c60, 0x00b10ac4 },
-   { 0x00800040, 0x2c804529, 0x00b10c80, 0x00b10b04 },
-   { 0x00800040, 0x2ca04529, 0x00b10ca0, 0x00b10b44 },
-   { 0x00800040, 0x2cc04529, 0x00b10cc0, 0x00b10b84 },
-   { 0x00800040, 0x2ce04529, 0x00b10ce0, 0x00b10bc4 },
-   { 0x00800008, 0x2c002d29, 0x00b10c00, 0x00020002 },
-   { 0x00800008, 0x2c202d29, 0x00b10c20, 0x00020002 },
-   { 0x00800008, 0x2c402d29, 0x00b10c40, 0x00020002 },
-   { 0x00800008, 0x2c602d29, 0x00b10c60, 0x00020002 },
-   { 0x00800008, 0x2c802d29, 0x00b10c80, 0x00020002 },
-   { 0x00800008, 0x2ca02d29, 0x00b10ca0, 0x00020002 },
-   { 0x00800008, 0x2cc02d29, 0x00b10cc0, 0x00020002 },
-   { 0x00800008, 0x2ce02d29, 0x00b10ce0, 0x00020002 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x0000009a },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
-   { 0x00800031, 0x29c01d29, 0x008d0e60, 0x0411a007 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a001d29, 0x008d0e60, 0x0411a007 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a401d29, 0x008d0e60, 0x0411a007 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a801d29, 0x008d0e60, 0x0411a007 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0007001f },
-   { 0x00800031, 0x2ac01d29, 0x008d0e60, 0x0418a007 },
-   { 0x00000005, 0x20580c21, 0x00210e60, 0x00000003 },
-   { 0x00000041, 0x20580c21, 0x00210058, 0x00000009 },
-   { 0x00000020, 0x34001400, 0x00001400, 0x00210058 },
-   { 0x80800042, 0x2c004629, 0x00b109c0, 0x00b109c1 },
-   { 0x80800042, 0x2c204629, 0x00b10a00, 0x00b10a01 },
-   { 0x80800042, 0x2c404629, 0x00b10a40, 0x00b10a41 },
-   { 0x80800042, 0x2c604629, 0x00b10a80, 0x00b10a81 },
-   { 0x80800042, 0x2c804629, 0x00b10ac0, 0x00b10ac1 },
-   { 0x80800042, 0x2ca04629, 0x00b10b00, 0x00b10b01 },
-   { 0x80800042, 0x2cc04629, 0x00b10b40, 0x00b10b41 },
-   { 0x80800042, 0x2ce04629, 0x00b10b80, 0x00b10b81 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x0000001a },
-   { 0x80800042, 0x2c004629, 0x00b109c1, 0x00b109c2 },
-   { 0x80800042, 0x2c204629, 0x00b10a01, 0x00b10a02 },
-   { 0x80800042, 0x2c404629, 0x00b10a41, 0x00b10a42 },
-   { 0x80800042, 0x2c604629, 0x00b10a81, 0x00b10a82 },
-   { 0x80800042, 0x2c804629, 0x00b10ac1, 0x00b10ac2 },
-   { 0x80800042, 0x2ca04629, 0x00b10b01, 0x00b10b02 },
-   { 0x80800042, 0x2cc04629, 0x00b10b41, 0x00b10b42 },
-   { 0x80800042, 0x2ce04629, 0x00b10b81, 0x00b10b82 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000011 },
-   { 0x80800042, 0x2c004629, 0x00b109c2, 0x00b109c3 },
-   { 0x80800042, 0x2c204629, 0x00b10a02, 0x00b10a03 },
-   { 0x80800042, 0x2c404629, 0x00b10a42, 0x00b10a43 },
-   { 0x80800042, 0x2c604629, 0x00b10a82, 0x00b10a83 },
-   { 0x80800042, 0x2c804629, 0x00b10ac2, 0x00b10ac3 },
-   { 0x80800042, 0x2ca04629, 0x00b10b02, 0x00b10b03 },
-   { 0x80800042, 0x2cc04629, 0x00b10b42, 0x00b10b43 },
-   { 0x80800042, 0x2ce04629, 0x00b10b82, 0x00b10b83 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000008 },
-   { 0x80800042, 0x2c004629, 0x00b109c3, 0x00b109c4 },
-   { 0x80800042, 0x2c204629, 0x00b10a03, 0x00b10a04 },
-   { 0x80800042, 0x2c404629, 0x00b10a43, 0x00b10a44 },
-   { 0x80800042, 0x2c604629, 0x00b10a83, 0x00b10a84 },
-   { 0x80800042, 0x2c804629, 0x00b10ac3, 0x00b10ac4 },
-   { 0x80800042, 0x2ca04629, 0x00b10b03, 0x00b10b04 },
-   { 0x80800042, 0x2cc04629, 0x00b10b43, 0x00b10b44 },
-   { 0x80800042, 0x2ce04629, 0x00b10b83, 0x00b10b84 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000068 },
-   { 0x01000005, 0x20002d3c, 0x00210034, 0x00010001 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000035 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
-   { 0x00800031, 0x29c01d29, 0x008d0e60, 0x0411a007 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a001d29, 0x008d0e60, 0x0411a007 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a401d29, 0x008d0e60, 0x0411a007 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a801d29, 0x008d0e60, 0x0411a007 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0007001f },
-   { 0x00800031, 0x2ac01d29, 0x008d0e60, 0x0418a007 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
-   { 0x00800031, 0x2bc01d29, 0x008d0e60, 0x0411a007 },
-   { 0x00000005, 0x20580c21, 0x00210e60, 0x00000003 },
-   { 0x00000041, 0x20580c21, 0x00210058, 0x00000009 },
-   { 0x00000020, 0x34001400, 0x00001400, 0x00210058 },
-   { 0x80800042, 0x2c004629, 0x00b109c0, 0x00b10a00 },
-   { 0x80800042, 0x2c204629, 0x00b10a00, 0x00b10a40 },
-   { 0x80800042, 0x2c404629, 0x00b10a40, 0x00b10a80 },
-   { 0x80800042, 0x2c604629, 0x00b10a80, 0x00b10ac0 },
-   { 0x80800042, 0x2c804629, 0x00b10ac0, 0x00b10b00 },
-   { 0x80800042, 0x2ca04629, 0x00b10b00, 0x00b10b40 },
-   { 0x80800042, 0x2cc04629, 0x00b10b40, 0x00b10b80 },
-   { 0x80800042, 0x2ce04629, 0x00b10b80, 0x00b10bc0 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x0000001a },
-   { 0x80800042, 0x2c004629, 0x00b109c1, 0x00b10a01 },
-   { 0x80800042, 0x2c204629, 0x00b10a01, 0x00b10a41 },
-   { 0x80800042, 0x2c404629, 0x00b10a41, 0x00b10a81 },
-   { 0x80800042, 0x2c604629, 0x00b10a81, 0x00b10ac1 },
-   { 0x80800042, 0x2c804629, 0x00b10ac1, 0x00b10b01 },
-   { 0x80800042, 0x2ca04629, 0x00b10b01, 0x00b10b41 },
-   { 0x80800042, 0x2cc04629, 0x00b10b41, 0x00b10b81 },
-   { 0x80800042, 0x2ce04629, 0x00b10b81, 0x00b10bc1 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000011 },
-   { 0x80800042, 0x2c004629, 0x00b109c2, 0x00b10a02 },
-   { 0x80800042, 0x2c204629, 0x00b10a02, 0x00b10a42 },
-   { 0x80800042, 0x2c404629, 0x00b10a42, 0x00b10a82 },
-   { 0x80800042, 0x2c604629, 0x00b10a82, 0x00b10ac2 },
-   { 0x80800042, 0x2c804629, 0x00b10ac2, 0x00b10b02 },
-   { 0x80800042, 0x2ca04629, 0x00b10b02, 0x00b10b42 },
-   { 0x80800042, 0x2cc04629, 0x00b10b42, 0x00b10b82 },
-   { 0x80800042, 0x2ce04629, 0x00b10b82, 0x00b10bc2 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000008 },
-   { 0x80800042, 0x2c004629, 0x00b109c3, 0x00b10a03 },
-   { 0x80800042, 0x2c204629, 0x00b10a03, 0x00b10a43 },
-   { 0x80800042, 0x2c404629, 0x00b10a43, 0x00b10a83 },
-   { 0x80800042, 0x2c604629, 0x00b10a83, 0x00b10ac3 },
-   { 0x80800042, 0x2c804629, 0x00b10ac3, 0x00b10b03 },
-   { 0x80800042, 0x2ca04629, 0x00b10b03, 0x00b10b43 },
-   { 0x80800042, 0x2cc04629, 0x00b10b43, 0x00b10b83 },
-   { 0x80800042, 0x2ce04629, 0x00b10b83, 0x00b10bc3 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000031 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
-   { 0x00800031, 0x29c01d29, 0x008d0e60, 0x0411a007 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a001d29, 0x008d0e60, 0x0411a007 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a401d29, 0x008d0e60, 0x0411a007 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a801d29, 0x008d0e60, 0x0411a007 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0007001f },
-   { 0x00800031, 0x2ac01d29, 0x008d0e60, 0x0418a007 },
-   { 0x00000005, 0x20580c21, 0x00210e60, 0x00000003 },
-   { 0x00000041, 0x20580c21, 0x00210058, 0x00000009 },
-   { 0x00000020, 0x34001400, 0x00001400, 0x00210058 },
-   { 0x00800001, 0x2c000229, 0x00b109c0, 0x00000000 },
-   { 0x00800001, 0x2c200229, 0x00b10a00, 0x00000000 },
-   { 0x00800001, 0x2c400229, 0x00b10a40, 0x00000000 },
-   { 0x00800001, 0x2c600229, 0x00b10a80, 0x00000000 },
-   { 0x00800001, 0x2c800229, 0x00b10ac0, 0x00000000 },
-   { 0x00800001, 0x2ca00229, 0x00b10b00, 0x00000000 },
-   { 0x00800001, 0x2cc00229, 0x00b10b40, 0x00000000 },
-   { 0x00800001, 0x2ce00229, 0x00b10b80, 0x00000000 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x0000001a },
-   { 0x00800001, 0x2c000229, 0x00b109c1, 0x00000000 },
-   { 0x00800001, 0x2c200229, 0x00b10a01, 0x00000000 },
-   { 0x00800001, 0x2c400229, 0x00b10a41, 0x00000000 },
-   { 0x00800001, 0x2c600229, 0x00b10a81, 0x00000000 },
-   { 0x00800001, 0x2c800229, 0x00b10ac1, 0x00000000 },
-   { 0x00800001, 0x2ca00229, 0x00b10b01, 0x00000000 },
-   { 0x00800001, 0x2cc00229, 0x00b10b41, 0x00000000 },
-   { 0x00800001, 0x2ce00229, 0x00b10b81, 0x00000000 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000011 },
-   { 0x00800001, 0x2c000229, 0x00b109c2, 0x00000000 },
-   { 0x00800001, 0x2c200229, 0x00b10a02, 0x00000000 },
-   { 0x00800001, 0x2c400229, 0x00b10a42, 0x00000000 },
-   { 0x00800001, 0x2c600229, 0x00b10a82, 0x00000000 },
-   { 0x00800001, 0x2c800229, 0x00b10ac2, 0x00000000 },
-   { 0x00800001, 0x2ca00229, 0x00b10b02, 0x00000000 },
-   { 0x00800001, 0x2cc00229, 0x00b10b42, 0x00000000 },
-   { 0x00800001, 0x2ce00229, 0x00b10b82, 0x00000000 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000008 },
-   { 0x00800001, 0x2c000229, 0x00b109c3, 0x00000000 },
-   { 0x00800001, 0x2c200229, 0x00b10a03, 0x00000000 },
-   { 0x00800001, 0x2c400229, 0x00b10a43, 0x00000000 },
-   { 0x00800001, 0x2c600229, 0x00b10a83, 0x00000000 },
-   { 0x00800001, 0x2c800229, 0x00b10ac3, 0x00000000 },
-   { 0x00800001, 0x2ca00229, 0x00b10b03, 0x00000000 },
-   { 0x00800001, 0x2cc00229, 0x00b10b43, 0x00000000 },
-   { 0x00800001, 0x2ce00229, 0x00b10b83, 0x00000000 },
-   { 0x00600001, 0x23800021, 0x008d0c00, 0x00000000 },
-   { 0x00600001, 0x23c00021, 0x008d0c20, 0x00000000 },
-   { 0x00600001, 0x24000021, 0x008d0c40, 0x00000000 },
-   { 0x00600001, 0x24400021, 0x008d0c60, 0x00000000 },
-   { 0x00600001, 0x24800021, 0x008d0c80, 0x00000000 },
-   { 0x00600001, 0x24c00021, 0x008d0ca0, 0x00000000 },
-   { 0x00600001, 0x25000021, 0x008d0cc0, 0x00000000 },
-   { 0x00600001, 0x25400021, 0x008d0ce0, 0x00000000 },
-   { 0x0020000c, 0x2e6e3dad, 0x0045003a, 0x00010001 },
-   { 0x00200040, 0x2e6034a5, 0x00450e80, 0x00450e6e },
-   { 0x00000005, 0x2e640c21, 0x00210e64, 0xfffffffe },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
-   { 0x02000005, 0x20000c3c, 0x00210054, 0x00000008 },
-   { 0x00010040, 0x2e641ca5, 0x00210e64, 0x00000001 },
-   { 0x01000005, 0x20002d3c, 0x0021003a, 0x00010001 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x000000b1 },
-   { 0x01000005, 0x20002d3c, 0x0021003c, 0x00010001 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x0000007d },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
-   { 0x00800031, 0x29c01d29, 0x008d0e60, 0x0411a007 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a001d29, 0x008d0e60, 0x0411a007 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a401d29, 0x008d0e60, 0x0411a007 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a801d29, 0x008d0e60, 0x0411a007 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0007001f },
-   { 0x00800031, 0x2ac01d29, 0x008d0e60, 0x0418a007 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
-   { 0x00800031, 0x2bc01d29, 0x008d0e60, 0x0411a007 },
-   { 0x00000005, 0x20580c21, 0x00210e60, 0x00000003 },
-   { 0x00000041, 0x20580c21, 0x00210058, 0x00000019 },
-   { 0x00000020, 0x34001400, 0x00001400, 0x00210058 },
-   { 0x00800040, 0x2c004629, 0x00b109c0, 0x00b10a00 },
-   { 0x00800040, 0x2c204629, 0x00b10a00, 0x00b10a40 },
-   { 0x00800040, 0x2c404629, 0x00b10a40, 0x00b10a80 },
-   { 0x00800040, 0x2c604629, 0x00b10a80, 0x00b10ac0 },
-   { 0x00800040, 0x2c804629, 0x00b10ac0, 0x00b10b00 },
-   { 0x00800040, 0x2ca04629, 0x00b10b00, 0x00b10b40 },
-   { 0x00800040, 0x2cc04629, 0x00b10b40, 0x00b10b80 },
-   { 0x00800040, 0x2ce04629, 0x00b10b80, 0x00b10bc0 },
-   { 0x00800040, 0x2c004529, 0x00b10c00, 0x00b109c1 },
-   { 0x00800040, 0x2c204529, 0x00b10c20, 0x00b10a01 },
-   { 0x00800040, 0x2c404529, 0x00b10c40, 0x00b10a41 },
-   { 0x00800040, 0x2c604529, 0x00b10c60, 0x00b10a81 },
-   { 0x00800040, 0x2c804529, 0x00b10c80, 0x00b10ac1 },
-   { 0x00800040, 0x2ca04529, 0x00b10ca0, 0x00b10b01 },
-   { 0x00800040, 0x2cc04529, 0x00b10cc0, 0x00b10b41 },
-   { 0x00800040, 0x2ce04529, 0x00b10ce0, 0x00b10b81 },
-   { 0x00800040, 0x2c004529, 0x00b10c00, 0x00b10a01 },
-   { 0x00800040, 0x2c204529, 0x00b10c20, 0x00b10a41 },
-   { 0x00800040, 0x2c404529, 0x00b10c40, 0x00b10a81 },
-   { 0x00800040, 0x2c604529, 0x00b10c60, 0x00b10ac1 },
-   { 0x00800040, 0x2c804529, 0x00b10c80, 0x00b10b01 },
-   { 0x00800040, 0x2ca04529, 0x00b10ca0, 0x00b10b41 },
-   { 0x00800040, 0x2cc04529, 0x00b10cc0, 0x00b10b81 },
-   { 0x00800040, 0x2ce04529, 0x00b10ce0, 0x00b10bc1 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x0000004a },
-   { 0x00800040, 0x2c004629, 0x00b109c1, 0x00b10a01 },
-   { 0x00800040, 0x2c204629, 0x00b10a01, 0x00b10a41 },
-   { 0x00800040, 0x2c404629, 0x00b10a41, 0x00b10a81 },
-   { 0x00800040, 0x2c604629, 0x00b10a81, 0x00b10ac1 },
-   { 0x00800040, 0x2c804629, 0x00b10ac1, 0x00b10b01 },
-   { 0x00800040, 0x2ca04629, 0x00b10b01, 0x00b10b41 },
-   { 0x00800040, 0x2cc04629, 0x00b10b41, 0x00b10b81 },
-   { 0x00800040, 0x2ce04629, 0x00b10b81, 0x00b10bc1 },
-   { 0x00800040, 0x2c004529, 0x00b10c00, 0x00b109c2 },
-   { 0x00800040, 0x2c204529, 0x00b10c20, 0x00b10a02 },
-   { 0x00800040, 0x2c404529, 0x00b10c40, 0x00b10a42 },
-   { 0x00800040, 0x2c604529, 0x00b10c60, 0x00b10a82 },
-   { 0x00800040, 0x2c804529, 0x00b10c80, 0x00b10ac2 },
-   { 0x00800040, 0x2ca04529, 0x00b10ca0, 0x00b10b02 },
-   { 0x00800040, 0x2cc04529, 0x00b10cc0, 0x00b10b42 },
-   { 0x00800040, 0x2ce04529, 0x00b10ce0, 0x00b10b82 },
-   { 0x00800040, 0x2c004529, 0x00b10c00, 0x00b10a02 },
-   { 0x00800040, 0x2c204529, 0x00b10c20, 0x00b10a42 },
-   { 0x00800040, 0x2c404529, 0x00b10c40, 0x00b10a82 },
-   { 0x00800040, 0x2c604529, 0x00b10c60, 0x00b10ac2 },
-   { 0x00800040, 0x2c804529, 0x00b10c80, 0x00b10b02 },
-   { 0x00800040, 0x2ca04529, 0x00b10ca0, 0x00b10b42 },
-   { 0x00800040, 0x2cc04529, 0x00b10cc0, 0x00b10b82 },
-   { 0x00800040, 0x2ce04529, 0x00b10ce0, 0x00b10bc2 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000031 },
-   { 0x00800040, 0x2c004629, 0x00b109c2, 0x00b10a02 },
-   { 0x00800040, 0x2c204629, 0x00b10a02, 0x00b10a42 },
-   { 0x00800040, 0x2c404629, 0x00b10a42, 0x00b10a82 },
-   { 0x00800040, 0x2c604629, 0x00b10a82, 0x00b10ac2 },
-   { 0x00800040, 0x2c804629, 0x00b10ac2, 0x00b10b02 },
-   { 0x00800040, 0x2ca04629, 0x00b10b02, 0x00b10b42 },
-   { 0x00800040, 0x2cc04629, 0x00b10b42, 0x00b10b82 },
-   { 0x00800040, 0x2ce04629, 0x00b10b82, 0x00b10bc2 },
-   { 0x00800040, 0x2c004529, 0x00b10c00, 0x00b109c3 },
-   { 0x00800040, 0x2c204529, 0x00b10c20, 0x00b10a03 },
-   { 0x00800040, 0x2c404529, 0x00b10c40, 0x00b10a43 },
-   { 0x00800040, 0x2c604529, 0x00b10c60, 0x00b10a83 },
-   { 0x00800040, 0x2c804529, 0x00b10c80, 0x00b10ac3 },
-   { 0x00800040, 0x2ca04529, 0x00b10ca0, 0x00b10b03 },
-   { 0x00800040, 0x2cc04529, 0x00b10cc0, 0x00b10b43 },
-   { 0x00800040, 0x2ce04529, 0x00b10ce0, 0x00b10b83 },
-   { 0x00800040, 0x2c004529, 0x00b10c00, 0x00b10a03 },
-   { 0x00800040, 0x2c204529, 0x00b10c20, 0x00b10a43 },
-   { 0x00800040, 0x2c404529, 0x00b10c40, 0x00b10a83 },
-   { 0x00800040, 0x2c604529, 0x00b10c60, 0x00b10ac3 },
-   { 0x00800040, 0x2c804529, 0x00b10c80, 0x00b10b03 },
-   { 0x00800040, 0x2ca04529, 0x00b10ca0, 0x00b10b43 },
-   { 0x00800040, 0x2cc04529, 0x00b10cc0, 0x00b10b83 },
-   { 0x00800040, 0x2ce04529, 0x00b10ce0, 0x00b10bc3 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000018 },
-   { 0x00800040, 0x2c004629, 0x00b109c3, 0x00b10a03 },
-   { 0x00800040, 0x2c204629, 0x00b10a03, 0x00b10a43 },
-   { 0x00800040, 0x2c404629, 0x00b10a43, 0x00b10a83 },
-   { 0x00800040, 0x2c604629, 0x00b10a83, 0x00b10ac3 },
-   { 0x00800040, 0x2c804629, 0x00b10ac3, 0x00b10b03 },
-   { 0x00800040, 0x2ca04629, 0x00b10b03, 0x00b10b43 },
-   { 0x00800040, 0x2cc04629, 0x00b10b43, 0x00b10b83 },
-   { 0x00800040, 0x2ce04629, 0x00b10b83, 0x00b10bc3 },
-   { 0x00800040, 0x2c004529, 0x00b10c00, 0x00b109c4 },
-   { 0x00800040, 0x2c204529, 0x00b10c20, 0x00b10a04 },
-   { 0x00800040, 0x2c404529, 0x00b10c40, 0x00b10a44 },
-   { 0x00800040, 0x2c604529, 0x00b10c60, 0x00b10a84 },
-   { 0x00800040, 0x2c804529, 0x00b10c80, 0x00b10ac4 },
-   { 0x00800040, 0x2ca04529, 0x00b10ca0, 0x00b10b04 },
-   { 0x00800040, 0x2cc04529, 0x00b10cc0, 0x00b10b44 },
-   { 0x00800040, 0x2ce04529, 0x00b10ce0, 0x00b10b84 },
-   { 0x00800040, 0x2c004529, 0x00b10c00, 0x00b10a04 },
-   { 0x00800040, 0x2c204529, 0x00b10c20, 0x00b10a44 },
-   { 0x00800040, 0x2c404529, 0x00b10c40, 0x00b10a84 },
-   { 0x00800040, 0x2c604529, 0x00b10c60, 0x00b10ac4 },
-   { 0x00800040, 0x2c804529, 0x00b10c80, 0x00b10b04 },
-   { 0x00800040, 0x2ca04529, 0x00b10ca0, 0x00b10b44 },
-   { 0x00800040, 0x2cc04529, 0x00b10cc0, 0x00b10b84 },
-   { 0x00800040, 0x2ce04529, 0x00b10ce0, 0x00b10bc4 },
-   { 0x00800008, 0x2c002d29, 0x00b10c00, 0x00020002 },
-   { 0x00800008, 0x2c202d29, 0x00b10c20, 0x00020002 },
-   { 0x00800008, 0x2c402d29, 0x00b10c40, 0x00020002 },
-   { 0x00800008, 0x2c602d29, 0x00b10c60, 0x00020002 },
-   { 0x00800008, 0x2c802d29, 0x00b10c80, 0x00020002 },
-   { 0x00800008, 0x2ca02d29, 0x00b10ca0, 0x00020002 },
-   { 0x00800008, 0x2cc02d29, 0x00b10cc0, 0x00020002 },
-   { 0x00800008, 0x2ce02d29, 0x00b10ce0, 0x00020002 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x0000009a },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
-   { 0x00800031, 0x29c01d29, 0x008d0e60, 0x0411a007 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a001d29, 0x008d0e60, 0x0411a007 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a401d29, 0x008d0e60, 0x0411a007 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a801d29, 0x008d0e60, 0x0411a007 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0007001f },
-   { 0x00800031, 0x2ac01d29, 0x008d0e60, 0x0418a007 },
-   { 0x00000005, 0x20580c21, 0x00210e60, 0x00000003 },
-   { 0x00000041, 0x20580c21, 0x00210058, 0x00000009 },
-   { 0x00000020, 0x34001400, 0x00001400, 0x00210058 },
-   { 0x80800042, 0x2c004629, 0x00b109c0, 0x00b109c1 },
-   { 0x80800042, 0x2c204629, 0x00b10a00, 0x00b10a01 },
-   { 0x80800042, 0x2c404629, 0x00b10a40, 0x00b10a41 },
-   { 0x80800042, 0x2c604629, 0x00b10a80, 0x00b10a81 },
-   { 0x80800042, 0x2c804629, 0x00b10ac0, 0x00b10ac1 },
-   { 0x80800042, 0x2ca04629, 0x00b10b00, 0x00b10b01 },
-   { 0x80800042, 0x2cc04629, 0x00b10b40, 0x00b10b41 },
-   { 0x80800042, 0x2ce04629, 0x00b10b80, 0x00b10b81 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x0000001a },
-   { 0x80800042, 0x2c004629, 0x00b109c1, 0x00b109c2 },
-   { 0x80800042, 0x2c204629, 0x00b10a01, 0x00b10a02 },
-   { 0x80800042, 0x2c404629, 0x00b10a41, 0x00b10a42 },
-   { 0x80800042, 0x2c604629, 0x00b10a81, 0x00b10a82 },
-   { 0x80800042, 0x2c804629, 0x00b10ac1, 0x00b10ac2 },
-   { 0x80800042, 0x2ca04629, 0x00b10b01, 0x00b10b02 },
-   { 0x80800042, 0x2cc04629, 0x00b10b41, 0x00b10b42 },
-   { 0x80800042, 0x2ce04629, 0x00b10b81, 0x00b10b82 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000011 },
-   { 0x80800042, 0x2c004629, 0x00b109c2, 0x00b109c3 },
-   { 0x80800042, 0x2c204629, 0x00b10a02, 0x00b10a03 },
-   { 0x80800042, 0x2c404629, 0x00b10a42, 0x00b10a43 },
-   { 0x80800042, 0x2c604629, 0x00b10a82, 0x00b10a83 },
-   { 0x80800042, 0x2c804629, 0x00b10ac2, 0x00b10ac3 },
-   { 0x80800042, 0x2ca04629, 0x00b10b02, 0x00b10b03 },
-   { 0x80800042, 0x2cc04629, 0x00b10b42, 0x00b10b43 },
-   { 0x80800042, 0x2ce04629, 0x00b10b82, 0x00b10b83 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000008 },
-   { 0x80800042, 0x2c004629, 0x00b109c3, 0x00b109c4 },
-   { 0x80800042, 0x2c204629, 0x00b10a03, 0x00b10a04 },
-   { 0x80800042, 0x2c404629, 0x00b10a43, 0x00b10a44 },
-   { 0x80800042, 0x2c604629, 0x00b10a83, 0x00b10a84 },
-   { 0x80800042, 0x2c804629, 0x00b10ac3, 0x00b10ac4 },
-   { 0x80800042, 0x2ca04629, 0x00b10b03, 0x00b10b04 },
-   { 0x80800042, 0x2cc04629, 0x00b10b43, 0x00b10b44 },
-   { 0x80800042, 0x2ce04629, 0x00b10b83, 0x00b10b84 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000068 },
-   { 0x01000005, 0x20002d3c, 0x0021003c, 0x00010001 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000035 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
-   { 0x00800031, 0x29c01d29, 0x008d0e60, 0x0411a007 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a001d29, 0x008d0e60, 0x0411a007 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a401d29, 0x008d0e60, 0x0411a007 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a801d29, 0x008d0e60, 0x0411a007 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0007001f },
-   { 0x00800031, 0x2ac01d29, 0x008d0e60, 0x0418a007 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
-   { 0x00800031, 0x2bc01d29, 0x008d0e60, 0x0411a007 },
-   { 0x00000005, 0x20580c21, 0x00210e60, 0x00000003 },
-   { 0x00000041, 0x20580c21, 0x00210058, 0x00000009 },
-   { 0x00000020, 0x34001400, 0x00001400, 0x00210058 },
-   { 0x80800042, 0x2c004629, 0x00b109c0, 0x00b10a00 },
-   { 0x80800042, 0x2c204629, 0x00b10a00, 0x00b10a40 },
-   { 0x80800042, 0x2c404629, 0x00b10a40, 0x00b10a80 },
-   { 0x80800042, 0x2c604629, 0x00b10a80, 0x00b10ac0 },
-   { 0x80800042, 0x2c804629, 0x00b10ac0, 0x00b10b00 },
-   { 0x80800042, 0x2ca04629, 0x00b10b00, 0x00b10b40 },
-   { 0x80800042, 0x2cc04629, 0x00b10b40, 0x00b10b80 },
-   { 0x80800042, 0x2ce04629, 0x00b10b80, 0x00b10bc0 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x0000001a },
-   { 0x80800042, 0x2c004629, 0x00b109c1, 0x00b10a01 },
-   { 0x80800042, 0x2c204629, 0x00b10a01, 0x00b10a41 },
-   { 0x80800042, 0x2c404629, 0x00b10a41, 0x00b10a81 },
-   { 0x80800042, 0x2c604629, 0x00b10a81, 0x00b10ac1 },
-   { 0x80800042, 0x2c804629, 0x00b10ac1, 0x00b10b01 },
-   { 0x80800042, 0x2ca04629, 0x00b10b01, 0x00b10b41 },
-   { 0x80800042, 0x2cc04629, 0x00b10b41, 0x00b10b81 },
-   { 0x80800042, 0x2ce04629, 0x00b10b81, 0x00b10bc1 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000011 },
-   { 0x80800042, 0x2c004629, 0x00b109c2, 0x00b10a02 },
-   { 0x80800042, 0x2c204629, 0x00b10a02, 0x00b10a42 },
-   { 0x80800042, 0x2c404629, 0x00b10a42, 0x00b10a82 },
-   { 0x80800042, 0x2c604629, 0x00b10a82, 0x00b10ac2 },
-   { 0x80800042, 0x2c804629, 0x00b10ac2, 0x00b10b02 },
-   { 0x80800042, 0x2ca04629, 0x00b10b02, 0x00b10b42 },
-   { 0x80800042, 0x2cc04629, 0x00b10b42, 0x00b10b82 },
-   { 0x80800042, 0x2ce04629, 0x00b10b82, 0x00b10bc2 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000008 },
-   { 0x80800042, 0x2c004629, 0x00b109c3, 0x00b10a03 },
-   { 0x80800042, 0x2c204629, 0x00b10a03, 0x00b10a43 },
-   { 0x80800042, 0x2c404629, 0x00b10a43, 0x00b10a83 },
-   { 0x80800042, 0x2c604629, 0x00b10a83, 0x00b10ac3 },
-   { 0x80800042, 0x2c804629, 0x00b10ac3, 0x00b10b03 },
-   { 0x80800042, 0x2ca04629, 0x00b10b03, 0x00b10b43 },
-   { 0x80800042, 0x2cc04629, 0x00b10b43, 0x00b10b83 },
-   { 0x80800042, 0x2ce04629, 0x00b10b83, 0x00b10bc3 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000031 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
-   { 0x00800031, 0x29c01d29, 0x008d0e60, 0x0411a007 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a001d29, 0x008d0e60, 0x0411a007 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a401d29, 0x008d0e60, 0x0411a007 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a801d29, 0x008d0e60, 0x0411a007 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0007001f },
-   { 0x00800031, 0x2ac01d29, 0x008d0e60, 0x0418a007 },
-   { 0x00000005, 0x20580c21, 0x00210e60, 0x00000003 },
-   { 0x00000041, 0x20580c21, 0x00210058, 0x00000009 },
-   { 0x00000020, 0x34001400, 0x00001400, 0x00210058 },
-   { 0x00800001, 0x2c000229, 0x00b109c0, 0x00000000 },
-   { 0x00800001, 0x2c200229, 0x00b10a00, 0x00000000 },
-   { 0x00800001, 0x2c400229, 0x00b10a40, 0x00000000 },
-   { 0x00800001, 0x2c600229, 0x00b10a80, 0x00000000 },
-   { 0x00800001, 0x2c800229, 0x00b10ac0, 0x00000000 },
-   { 0x00800001, 0x2ca00229, 0x00b10b00, 0x00000000 },
-   { 0x00800001, 0x2cc00229, 0x00b10b40, 0x00000000 },
-   { 0x00800001, 0x2ce00229, 0x00b10b80, 0x00000000 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x0000001a },
-   { 0x00800001, 0x2c000229, 0x00b109c1, 0x00000000 },
-   { 0x00800001, 0x2c200229, 0x00b10a01, 0x00000000 },
-   { 0x00800001, 0x2c400229, 0x00b10a41, 0x00000000 },
-   { 0x00800001, 0x2c600229, 0x00b10a81, 0x00000000 },
-   { 0x00800001, 0x2c800229, 0x00b10ac1, 0x00000000 },
-   { 0x00800001, 0x2ca00229, 0x00b10b01, 0x00000000 },
-   { 0x00800001, 0x2cc00229, 0x00b10b41, 0x00000000 },
-   { 0x00800001, 0x2ce00229, 0x00b10b81, 0x00000000 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000011 },
-   { 0x00800001, 0x2c000229, 0x00b109c2, 0x00000000 },
-   { 0x00800001, 0x2c200229, 0x00b10a02, 0x00000000 },
-   { 0x00800001, 0x2c400229, 0x00b10a42, 0x00000000 },
-   { 0x00800001, 0x2c600229, 0x00b10a82, 0x00000000 },
-   { 0x00800001, 0x2c800229, 0x00b10ac2, 0x00000000 },
-   { 0x00800001, 0x2ca00229, 0x00b10b02, 0x00000000 },
-   { 0x00800001, 0x2cc00229, 0x00b10b42, 0x00000000 },
-   { 0x00800001, 0x2ce00229, 0x00b10b82, 0x00000000 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000008 },
-   { 0x00800001, 0x2c000229, 0x00b109c3, 0x00000000 },
-   { 0x00800001, 0x2c200229, 0x00b10a03, 0x00000000 },
-   { 0x00800001, 0x2c400229, 0x00b10a43, 0x00000000 },
-   { 0x00800001, 0x2c600229, 0x00b10a83, 0x00000000 },
-   { 0x00800001, 0x2c800229, 0x00b10ac3, 0x00000000 },
-   { 0x00800001, 0x2ca00229, 0x00b10b03, 0x00000000 },
-   { 0x00800001, 0x2cc00229, 0x00b10b43, 0x00000000 },
-   { 0x00800001, 0x2ce00229, 0x00b10b83, 0x00000000 },
-   { 0x80800042, 0x23802529, 0x00b10680, 0x00b10380 },
-   { 0x80800042, 0x23a02529, 0x00b106a0, 0x00b10c00 },
-   { 0x80800042, 0x23c02529, 0x00b106c0, 0x00b103c0 },
-   { 0x80800042, 0x23e02529, 0x00b106e0, 0x00b10c20 },
-   { 0x80800042, 0x24002529, 0x00b10700, 0x00b10400 },
-   { 0x80800042, 0x24202529, 0x00b10720, 0x00b10c40 },
-   { 0x80800042, 0x24402529, 0x00b10740, 0x00b10440 },
-   { 0x80800042, 0x24602529, 0x00b10760, 0x00b10c60 },
-   { 0x80800042, 0x24802529, 0x00b10780, 0x00b10480 },
-   { 0x80800042, 0x24a02529, 0x00b107a0, 0x00b10c80 },
-   { 0x80800042, 0x24c02529, 0x00b107c0, 0x00b104c0 },
-   { 0x80800042, 0x24e02529, 0x00b107e0, 0x00b10ca0 },
-   { 0x80800042, 0x25002529, 0x00b10800, 0x00b10500 },
-   { 0x80800042, 0x25202529, 0x00b10820, 0x00b10cc0 },
-   { 0x80800042, 0x25402529, 0x00b10840, 0x00b10540 },
-   { 0x80800042, 0x25602529, 0x00b10860, 0x00b10ce0 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0007000f },
-   { 0x0020000c, 0x2e6e3dad, 0x00450032, 0x00020002 },
-   { 0x0020000c, 0x2e601ca5, 0x00450e80, 0x00000001 },
-   { 0x00200040, 0x2e6034a5, 0x00450e60, 0x00450e6e },
-   { 0x00000005, 0x2e640c21, 0x00210e64, 0xfffffffe },
-   { 0x02000005, 0x20002e3c, 0x0021003f, 0x00020002 },
-   { 0x00010040, 0x2e640c21, 0x00210e64, 0x00000001 },
-   { 0x01000005, 0x20002d3c, 0x00210032, 0x00020002 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x000000a2 },
-   { 0x01000005, 0x20002d3c, 0x00210034, 0x00020002 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000076 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0007000f },
-   { 0x00800031, 0x2ac01d29, 0x00ad0e60, 0x0414a008 },
-   { 0x00800031, 0x2b601d29, 0x00ad0e60, 0x0414a009 },
-   { 0x00000005, 0x20580c21, 0x00210e60, 0x00000003 },
-   { 0x00000041, 0x20580c21, 0x00210058, 0x00000019 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0001000f },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 },
-   { 0x00800031, 0x2b401d29, 0x00ad0e60, 0x0411a008 },
-   { 0x00800031, 0x2be01d29, 0x00ad0e60, 0x0411a009 },
-   { 0x00000020, 0x34001400, 0x00001400, 0x00210058 },
-   { 0x00800040, 0x29c04629, 0x00ad0ac0, 0x00ad0ae0 },
-   { 0x00800040, 0x29e04629, 0x00ad0ae0, 0x00ad0b00 },
-   { 0x00800040, 0x2a004629, 0x00ad0b00, 0x00ad0b20 },
-   { 0x00800040, 0x2a204629, 0x00ad0b20, 0x00ad0b40 },
-   { 0x00800040, 0x29c04529, 0x00ad09c0, 0x00ad0ac1 },
-   { 0x00800040, 0x29e04529, 0x00ad09e0, 0x00ad0ae1 },
-   { 0x00800040, 0x2a004529, 0x00ad0a00, 0x00ad0b01 },
-   { 0x00800040, 0x2a204529, 0x00ad0a20, 0x00ad0b21 },
-   { 0x00800040, 0x29c04529, 0x00ad09c0, 0x00ad0ae1 },
-   { 0x00800040, 0x29e04529, 0x00ad09e0, 0x00ad0b01 },
-   { 0x00800040, 0x2a004529, 0x00ad0a00, 0x00ad0b21 },
-   { 0x00800040, 0x2a204529, 0x00ad0a20, 0x00ad0b41 },
-   { 0x00800040, 0x2a404629, 0x00ad0b60, 0x00ad0b80 },
-   { 0x00800040, 0x2a604629, 0x00ad0b80, 0x00ad0ba0 },
-   { 0x00800040, 0x2a804629, 0x00ad0ba0, 0x00ad0bc0 },
-   { 0x00800040, 0x2aa04629, 0x00ad0bc0, 0x00ad0be0 },
-   { 0x00800040, 0x2a404529, 0x00ad0a40, 0x00ad0b61 },
-   { 0x00800040, 0x2a604529, 0x00ad0a60, 0x00ad0b81 },
-   { 0x00800040, 0x2a804529, 0x00ad0a80, 0x00ad0ba1 },
-   { 0x00800040, 0x2aa04529, 0x00ad0aa0, 0x00ad0bc1 },
-   { 0x00800040, 0x2a404529, 0x00ad0a40, 0x00ad0b81 },
-   { 0x00800040, 0x2a604529, 0x00ad0a60, 0x00ad0ba1 },
-   { 0x00800040, 0x2a804529, 0x00ad0a80, 0x00ad0bc1 },
-   { 0x00800040, 0x2aa04529, 0x00ad0aa0, 0x00ad0be1 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x0000004a },
-   { 0x00800040, 0x29c04629, 0x00ad0ac1, 0x00ad0ae1 },
-   { 0x00800040, 0x29e04629, 0x00ad0ae1, 0x00ad0b01 },
-   { 0x00800040, 0x2a004629, 0x00ad0b01, 0x00ad0b21 },
-   { 0x00800040, 0x2a204629, 0x00ad0b21, 0x00ad0b41 },
-   { 0x00800040, 0x29c04529, 0x00ad09c0, 0x00ad0ac2 },
-   { 0x00800040, 0x29e04529, 0x00ad09e0, 0x00ad0ae2 },
-   { 0x00800040, 0x2a004529, 0x00ad0a00, 0x00ad0b02 },
-   { 0x00800040, 0x2a204529, 0x00ad0a20, 0x00ad0b22 },
-   { 0x00800040, 0x29c04529, 0x00ad09c0, 0x00ad0ae2 },
-   { 0x00800040, 0x29e04529, 0x00ad09e0, 0x00ad0b02 },
-   { 0x00800040, 0x2a004529, 0x00ad0a00, 0x00ad0b22 },
-   { 0x00800040, 0x2a204529, 0x00ad0a20, 0x00ad0b42 },
-   { 0x00800040, 0x2a404629, 0x00ad0b61, 0x00ad0b81 },
-   { 0x00800040, 0x2a604629, 0x00ad0b81, 0x00ad0ba1 },
-   { 0x00800040, 0x2a804629, 0x00ad0ba1, 0x00ad0bc1 },
-   { 0x00800040, 0x2aa04629, 0x00ad0bc1, 0x00ad0be1 },
-   { 0x00800040, 0x2a404529, 0x00ad0a40, 0x00ad0b62 },
-   { 0x00800040, 0x2a604529, 0x00ad0a60, 0x00ad0b82 },
-   { 0x00800040, 0x2a804529, 0x00ad0a80, 0x00ad0ba2 },
-   { 0x00800040, 0x2aa04529, 0x00ad0aa0, 0x00ad0bc2 },
-   { 0x00800040, 0x2a404529, 0x00ad0a40, 0x00ad0b82 },
-   { 0x00800040, 0x2a604529, 0x00ad0a60, 0x00ad0ba2 },
-   { 0x00800040, 0x2a804529, 0x00ad0a80, 0x00ad0bc2 },
-   { 0x00800040, 0x2aa04529, 0x00ad0aa0, 0x00ad0be2 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000031 },
-   { 0x00800040, 0x29c04629, 0x00ad0ac2, 0x00ad0ae2 },
-   { 0x00800040, 0x29e04629, 0x00ad0ae2, 0x00ad0b02 },
-   { 0x00800040, 0x2a004629, 0x00ad0b02, 0x00ad0b22 },
-   { 0x00800040, 0x2a204629, 0x00ad0b22, 0x00ad0b42 },
-   { 0x00800040, 0x29c04529, 0x00ad09c0, 0x00ad0ac3 },
-   { 0x00800040, 0x29e04529, 0x00ad09e0, 0x00ad0ae3 },
-   { 0x00800040, 0x2a004529, 0x00ad0a00, 0x00ad0b03 },
-   { 0x00800040, 0x2a204529, 0x00ad0a20, 0x00ad0b23 },
-   { 0x00800040, 0x29c04529, 0x00ad09c0, 0x00ad0ae3 },
-   { 0x00800040, 0x29e04529, 0x00ad09e0, 0x00ad0b03 },
-   { 0x00800040, 0x2a004529, 0x00ad0a00, 0x00ad0b23 },
-   { 0x00800040, 0x2a204529, 0x00ad0a20, 0x00ad0b43 },
-   { 0x00800040, 0x2a404629, 0x00ad0b62, 0x00ad0b82 },
-   { 0x00800040, 0x2a604629, 0x00ad0b82, 0x00ad0ba2 },
-   { 0x00800040, 0x2a804629, 0x00ad0ba2, 0x00ad0bc2 },
-   { 0x00800040, 0x2aa04629, 0x00ad0bc2, 0x00ad0be2 },
-   { 0x00800040, 0x2a404529, 0x00ad0a40, 0x00ad0b63 },
-   { 0x00800040, 0x2a604529, 0x00ad0a60, 0x00ad0b83 },
-   { 0x00800040, 0x2a804529, 0x00ad0a80, 0x00ad0ba3 },
-   { 0x00800040, 0x2aa04529, 0x00ad0aa0, 0x00ad0bc3 },
-   { 0x00800040, 0x2a404529, 0x00ad0a40, 0x00ad0b83 },
-   { 0x00800040, 0x2a604529, 0x00ad0a60, 0x00ad0ba3 },
-   { 0x00800040, 0x2a804529, 0x00ad0a80, 0x00ad0bc3 },
-   { 0x00800040, 0x2aa04529, 0x00ad0aa0, 0x00ad0be3 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000018 },
-   { 0x00800040, 0x29c04629, 0x00ad0ac3, 0x00ad0ae3 },
-   { 0x00800040, 0x29e04629, 0x00ad0ae3, 0x00ad0b03 },
-   { 0x00800040, 0x2a004629, 0x00ad0b03, 0x00ad0b23 },
-   { 0x00800040, 0x2a204629, 0x00ad0b23, 0x00ad0b43 },
-   { 0x00800040, 0x29c04529, 0x00ad09c0, 0x00ad0ac4 },
-   { 0x00800040, 0x29e04529, 0x00ad09e0, 0x00ad0ae4 },
-   { 0x00800040, 0x2a004529, 0x00ad0a00, 0x00ad0b04 },
-   { 0x00800040, 0x2a204529, 0x00ad0a20, 0x00ad0b24 },
-   { 0x00800040, 0x29c04529, 0x00ad09c0, 0x00ad0ae4 },
-   { 0x00800040, 0x29e04529, 0x00ad09e0, 0x00ad0b04 },
-   { 0x00800040, 0x2a004529, 0x00ad0a00, 0x00ad0b24 },
-   { 0x00800040, 0x2a204529, 0x00ad0a20, 0x00ad0b44 },
-   { 0x00800040, 0x2a404629, 0x00ad0b63, 0x00ad0b83 },
-   { 0x00800040, 0x2a604629, 0x00ad0b83, 0x00ad0ba3 },
-   { 0x00800040, 0x2a804629, 0x00ad0ba3, 0x00ad0bc3 },
-   { 0x00800040, 0x2aa04629, 0x00ad0bc3, 0x00ad0be3 },
-   { 0x00800040, 0x2a404529, 0x00ad0a40, 0x00ad0b64 },
-   { 0x00800040, 0x2a604529, 0x00ad0a60, 0x00ad0b84 },
-   { 0x00800040, 0x2a804529, 0x00ad0a80, 0x00ad0ba4 },
-   { 0x00800040, 0x2aa04529, 0x00ad0aa0, 0x00ad0bc4 },
-   { 0x00800040, 0x2a404529, 0x00ad0a40, 0x00ad0b84 },
-   { 0x00800040, 0x2a604529, 0x00ad0a60, 0x00ad0ba4 },
-   { 0x00800040, 0x2a804529, 0x00ad0a80, 0x00ad0bc4 },
-   { 0x00800040, 0x2aa04529, 0x00ad0aa0, 0x00ad0be4 },
-   { 0x80800008, 0x29c02d29, 0x00b109c0, 0x00020002 },
-   { 0x80800008, 0x29e02d29, 0x00b109e0, 0x00020002 },
-   { 0x80800008, 0x2a002d29, 0x00b10a00, 0x00020002 },
-   { 0x80800008, 0x2a202d29, 0x00b10a20, 0x00020002 },
-   { 0x80800008, 0x2a402d29, 0x00b10a40, 0x00020002 },
-   { 0x80800008, 0x2a602d29, 0x00b10a60, 0x00020002 },
-   { 0x80800008, 0x2a802d29, 0x00b10a80, 0x00020002 },
-   { 0x80800008, 0x2aa02d29, 0x00b10aa0, 0x00020002 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000082 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0007000f },
-   { 0x00800031, 0x2ac01d29, 0x00ad0e60, 0x0414a008 },
-   { 0x00800031, 0x2b601d29, 0x00ad0e60, 0x0414a009 },
-   { 0x00000005, 0x20580c21, 0x00210e60, 0x00000003 },
-   { 0x00000041, 0x20580c21, 0x00210058, 0x00000009 },
-   { 0x00000020, 0x34001400, 0x00001400, 0x00210058 },
-   { 0x80800042, 0x29c04629, 0x00ad0ac0, 0x00ad0ac1 },
-   { 0x80800042, 0x29e04629, 0x00ad0ae0, 0x00ad0ae1 },
-   { 0x80800042, 0x2a004629, 0x00ad0b00, 0x00ad0b01 },
-   { 0x80800042, 0x2a204629, 0x00ad0b20, 0x00ad0b21 },
-   { 0x80800042, 0x2a404629, 0x00ad0b60, 0x00ad0b61 },
-   { 0x80800042, 0x2a604629, 0x00ad0b80, 0x00ad0b81 },
-   { 0x80800042, 0x2a804629, 0x00ad0ba0, 0x00ad0ba1 },
-   { 0x80800042, 0x2aa04629, 0x00ad0bc0, 0x00ad0bc1 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x0000001a },
-   { 0x80800042, 0x29c04629, 0x00ad0ac1, 0x00ad0ac2 },
-   { 0x80800042, 0x29e04629, 0x00ad0ae1, 0x00ad0ae2 },
-   { 0x80800042, 0x2a004629, 0x00ad0b01, 0x00ad0b02 },
-   { 0x80800042, 0x2a204629, 0x00ad0b21, 0x00ad0b22 },
-   { 0x80800042, 0x2a404629, 0x00ad0b61, 0x00ad0b62 },
-   { 0x80800042, 0x2a604629, 0x00ad0b81, 0x00ad0b82 },
-   { 0x80800042, 0x2a804629, 0x00ad0ba1, 0x00ad0ba2 },
-   { 0x80800042, 0x2aa04629, 0x00ad0bc1, 0x00ad0bc2 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000011 },
-   { 0x80800042, 0x29c04629, 0x00ad0ac2, 0x00ad0ac3 },
-   { 0x80800042, 0x29e04629, 0x00ad0ae2, 0x00ad0ae3 },
-   { 0x80800042, 0x2a004629, 0x00ad0b02, 0x00ad0b03 },
-   { 0x80800042, 0x2a204629, 0x00ad0b22, 0x00ad0b23 },
-   { 0x80800042, 0x2a404629, 0x00ad0b62, 0x00ad0b63 },
-   { 0x80800042, 0x2a604629, 0x00ad0b82, 0x00ad0b83 },
-   { 0x80800042, 0x2a804629, 0x00ad0ba2, 0x00ad0ba3 },
-   { 0x80800042, 0x2aa04629, 0x00ad0bc2, 0x00ad0bc3 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000008 },
-   { 0x80800042, 0x29c04629, 0x00ad0ac3, 0x00ad0ac4 },
-   { 0x80800042, 0x29e04629, 0x00ad0ae3, 0x00ad0ae4 },
-   { 0x80800042, 0x2a004629, 0x00ad0b03, 0x00ad0b04 },
-   { 0x80800042, 0x2a204629, 0x00ad0b23, 0x00ad0b24 },
-   { 0x80800042, 0x2a404629, 0x00ad0b63, 0x00ad0b64 },
-   { 0x80800042, 0x2a604629, 0x00ad0b83, 0x00ad0b84 },
-   { 0x80800042, 0x2a804629, 0x00ad0ba3, 0x00ad0ba4 },
-   { 0x80800042, 0x2aa04629, 0x00ad0bc3, 0x00ad0bc4 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000058 },
-   { 0x01000005, 0x20002d3c, 0x00210034, 0x00020002 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x0000002d },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0007000f },
-   { 0x00800031, 0x2ac01d29, 0x00ad0e60, 0x0414a008 },
-   { 0x00800031, 0x2b601d29, 0x00ad0e60, 0x0414a009 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0000000f },
-   { 0x00800031, 0x2b401d29, 0x00ad0e60, 0x0411a008 },
-   { 0x00800031, 0x2be01d29, 0x00ad0e60, 0x0411a009 },
-   { 0x00000005, 0x20580c21, 0x00210e60, 0x00000003 },
-   { 0x00000041, 0x20580c21, 0x00210058, 0x00000009 },
-   { 0x00000020, 0x34001400, 0x00001400, 0x00210058 },
-   { 0x80800042, 0x29c04629, 0x00ad0ac0, 0x00ad0ae0 },
-   { 0x80800042, 0x29e04629, 0x00ad0ae0, 0x00ad0b00 },
-   { 0x80800042, 0x2a004629, 0x00ad0b00, 0x00ad0b20 },
-   { 0x80800042, 0x2a204629, 0x00ad0b20, 0x00ad0b40 },
-   { 0x80800042, 0x2a404629, 0x00ad0b60, 0x00ad0b80 },
-   { 0x80800042, 0x2a604629, 0x00ad0b80, 0x00ad0ba0 },
-   { 0x80800042, 0x2a804629, 0x00ad0ba0, 0x00ad0bc0 },
-   { 0x80800042, 0x2aa04629, 0x00ad0bc0, 0x00ad0be0 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x0000001a },
-   { 0x80800042, 0x29c04629, 0x00ad0ac1, 0x00ad0ae1 },
-   { 0x80800042, 0x29e04629, 0x00ad0ae1, 0x00ad0b01 },
-   { 0x80800042, 0x2a004629, 0x00ad0b01, 0x00ad0b21 },
-   { 0x80800042, 0x2a204629, 0x00ad0b21, 0x00ad0b41 },
-   { 0x80800042, 0x2a404629, 0x00ad0b61, 0x00ad0b81 },
-   { 0x80800042, 0x2a604629, 0x00ad0b81, 0x00ad0ba1 },
-   { 0x80800042, 0x2a804629, 0x00ad0ba1, 0x00ad0bc1 },
-   { 0x80800042, 0x2aa04629, 0x00ad0bc1, 0x00ad0be1 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000011 },
-   { 0x80800042, 0x29c04629, 0x00ad0ac2, 0x00ad0ae2 },
-   { 0x80800042, 0x29e04629, 0x00ad0ae2, 0x00ad0b02 },
-   { 0x80800042, 0x2a004629, 0x00ad0b02, 0x00ad0b22 },
-   { 0x80800042, 0x2a204629, 0x00ad0b22, 0x00ad0b42 },
-   { 0x80800042, 0x2a404629, 0x00ad0b62, 0x00ad0b82 },
-   { 0x80800042, 0x2a604629, 0x00ad0b82, 0x00ad0ba2 },
-   { 0x80800042, 0x2a804629, 0x00ad0ba2, 0x00ad0bc2 },
-   { 0x80800042, 0x2aa04629, 0x00ad0bc2, 0x00ad0be2 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000008 },
-   { 0x80800042, 0x29c04629, 0x00ad0ac3, 0x00ad0ac3 },
-   { 0x80800042, 0x29e04629, 0x00ad0ae3, 0x00ad0ae3 },
-   { 0x80800042, 0x2a004629, 0x00ad0b03, 0x00ad0b03 },
-   { 0x80800042, 0x2a204629, 0x00ad0b23, 0x00ad0b23 },
-   { 0x80800042, 0x2a404629, 0x00ad0b63, 0x00ad0b63 },
-   { 0x80800042, 0x2a604629, 0x00ad0b83, 0x00ad0b83 },
-   { 0x80800042, 0x2a804629, 0x00ad0ba3, 0x00ad0ba3 },
-   { 0x80800042, 0x2aa04629, 0x00ad0bc3, 0x00ad0bc3 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000029 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0007000f },
-   { 0x00800031, 0x2ac01d29, 0x00ad0e60, 0x0414a008 },
-   { 0x00800031, 0x2b601d29, 0x00ad0e60, 0x0414a009 },
-   { 0x00000005, 0x20580c21, 0x00210e60, 0x00000003 },
-   { 0x00000041, 0x20580c21, 0x00210058, 0x00000009 },
-   { 0x00000020, 0x34001400, 0x00001400, 0x00210058 },
-   { 0x00800001, 0x29c00229, 0x00ad0ac0, 0x00000000 },
-   { 0x00800001, 0x29e00229, 0x00ad0ae0, 0x00000000 },
-   { 0x00800001, 0x2a000229, 0x00ad0b00, 0x00000000 },
-   { 0x00800001, 0x2a200229, 0x00ad0b20, 0x00000000 },
-   { 0x00800001, 0x2a400229, 0x00ad0b60, 0x00000000 },
-   { 0x00800001, 0x2a600229, 0x00ad0b80, 0x00000000 },
-   { 0x00800001, 0x2a800229, 0x00ad0ba0, 0x00000000 },
-   { 0x00800001, 0x2aa00229, 0x00ad0bc0, 0x00000000 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x0000001a },
-   { 0x00800001, 0x29c00229, 0x00ad0ac1, 0x00000000 },
-   { 0x00800001, 0x29e00229, 0x00ad0ae1, 0x00000000 },
-   { 0x00800001, 0x2a000229, 0x00ad0b01, 0x00000000 },
-   { 0x00800001, 0x2a200229, 0x00ad0b21, 0x00000000 },
-   { 0x00800001, 0x2a400229, 0x00ad0b61, 0x00000000 },
-   { 0x00800001, 0x2a600229, 0x00ad0b81, 0x00000000 },
-   { 0x00800001, 0x2a800229, 0x00ad0ba1, 0x00000000 },
-   { 0x00800001, 0x2aa00229, 0x00ad0bc1, 0x00000000 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000011 },
-   { 0x00800001, 0x29c00229, 0x00ad0ac2, 0x00000000 },
-   { 0x00800001, 0x29e00229, 0x00ad0ae2, 0x00000000 },
-   { 0x00800001, 0x2a000229, 0x00ad0b02, 0x00000000 },
-   { 0x00800001, 0x2a200229, 0x00ad0b22, 0x00000000 },
-   { 0x00800001, 0x2a400229, 0x00ad0b62, 0x00000000 },
-   { 0x00800001, 0x2a600229, 0x00ad0b82, 0x00000000 },
-   { 0x00800001, 0x2a800229, 0x00ad0ba2, 0x00000000 },
-   { 0x00800001, 0x2aa00229, 0x00ad0bc2, 0x00000000 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000008 },
-   { 0x00800001, 0x29c00229, 0x00ad0ac3, 0x00000000 },
-   { 0x00800001, 0x29e00229, 0x00ad0ae3, 0x00000000 },
-   { 0x00800001, 0x2a000229, 0x00ad0b03, 0x00000000 },
-   { 0x00800001, 0x2a200229, 0x00ad0b23, 0x00000000 },
-   { 0x00800001, 0x2a400229, 0x00ad0b63, 0x00000000 },
-   { 0x00800001, 0x2a600229, 0x00ad0b83, 0x00000000 },
-   { 0x00800001, 0x2a800229, 0x00ad0ba3, 0x00000000 },
-   { 0x00800001, 0x2aa00229, 0x00ad0bc3, 0x00000000 },
-   { 0x00600001, 0x25800129, 0x008d09c0, 0x00000000 },
-   { 0x00600001, 0x25a00129, 0x008d09e0, 0x00000000 },
-   { 0x00600001, 0x25c00129, 0x008d0a00, 0x00000000 },
-   { 0x00600001, 0x25e00129, 0x008d0a20, 0x00000000 },
-   { 0x00600001, 0x26000129, 0x008d0a40, 0x00000000 },
-   { 0x00600001, 0x26200129, 0x008d0a60, 0x00000000 },
-   { 0x00600001, 0x26400129, 0x008d0a80, 0x00000000 },
-   { 0x00600001, 0x26600129, 0x008d0aa0, 0x00000000 },
-   { 0x0020000c, 0x2e6e3dad, 0x0045003a, 0x00020002 },
-   { 0x0020000c, 0x2e601ca5, 0x00450e80, 0x00000001 },
-   { 0x00200040, 0x2e6034a5, 0x00450e60, 0x00450e6e },
-   { 0x00000005, 0x2e640c21, 0x00210e64, 0xfffffffe },
-   { 0x02000005, 0x20002e3c, 0x0021003f, 0x00080008 },
-   { 0x00010040, 0x2e640c21, 0x00210e64, 0x00000001 },
-   { 0x01000005, 0x20002d3c, 0x0021003a, 0x00020002 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x000000a2 },
-   { 0x01000005, 0x20002d3c, 0x0021003c, 0x00020002 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000076 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0007000f },
-   { 0x00800031, 0x2ac01d29, 0x00ad0e60, 0x0414a008 },
-   { 0x00800031, 0x2b601d29, 0x00ad0e60, 0x0414a009 },
-   { 0x00000005, 0x20580c21, 0x00210e60, 0x00000003 },
-   { 0x00000041, 0x20580c21, 0x00210058, 0x00000019 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0001000f },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 },
-   { 0x00800031, 0x2b401d29, 0x00ad0e60, 0x0411a008 },
-   { 0x00800031, 0x2be01d29, 0x00ad0e60, 0x0411a009 },
-   { 0x00000020, 0x34001400, 0x00001400, 0x00210058 },
-   { 0x00800040, 0x29c04629, 0x00ad0ac0, 0x00ad0ae0 },
-   { 0x00800040, 0x29e04629, 0x00ad0ae0, 0x00ad0b00 },
-   { 0x00800040, 0x2a004629, 0x00ad0b00, 0x00ad0b20 },
-   { 0x00800040, 0x2a204629, 0x00ad0b20, 0x00ad0b40 },
-   { 0x00800040, 0x29c04529, 0x00ad09c0, 0x00ad0ac1 },
-   { 0x00800040, 0x29e04529, 0x00ad09e0, 0x00ad0ae1 },
-   { 0x00800040, 0x2a004529, 0x00ad0a00, 0x00ad0b01 },
-   { 0x00800040, 0x2a204529, 0x00ad0a20, 0x00ad0b21 },
-   { 0x00800040, 0x29c04529, 0x00ad09c0, 0x00ad0ae1 },
-   { 0x00800040, 0x29e04529, 0x00ad09e0, 0x00ad0b01 },
-   { 0x00800040, 0x2a004529, 0x00ad0a00, 0x00ad0b21 },
-   { 0x00800040, 0x2a204529, 0x00ad0a20, 0x00ad0b41 },
-   { 0x00800040, 0x2a404629, 0x00ad0b60, 0x00ad0b80 },
-   { 0x00800040, 0x2a604629, 0x00ad0b80, 0x00ad0ba0 },
-   { 0x00800040, 0x2a804629, 0x00ad0ba0, 0x00ad0bc0 },
-   { 0x00800040, 0x2aa04629, 0x00ad0bc0, 0x00ad0be0 },
-   { 0x00800040, 0x2a404529, 0x00ad0a40, 0x00ad0b61 },
-   { 0x00800040, 0x2a604529, 0x00ad0a60, 0x00ad0b81 },
-   { 0x00800040, 0x2a804529, 0x00ad0a80, 0x00ad0ba1 },
-   { 0x00800040, 0x2aa04529, 0x00ad0aa0, 0x00ad0bc1 },
-   { 0x00800040, 0x2a404529, 0x00ad0a40, 0x00ad0b81 },
-   { 0x00800040, 0x2a604529, 0x00ad0a60, 0x00ad0ba1 },
-   { 0x00800040, 0x2a804529, 0x00ad0a80, 0x00ad0bc1 },
-   { 0x00800040, 0x2aa04529, 0x00ad0aa0, 0x00ad0be1 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x0000004a },
-   { 0x00800040, 0x29c04629, 0x00ad0ac1, 0x00ad0ae1 },
-   { 0x00800040, 0x29e04629, 0x00ad0ae1, 0x00ad0b01 },
-   { 0x00800040, 0x2a004629, 0x00ad0b01, 0x00ad0b21 },
-   { 0x00800040, 0x2a204629, 0x00ad0b21, 0x00ad0b41 },
-   { 0x00800040, 0x29c04529, 0x00ad09c0, 0x00ad0ac2 },
-   { 0x00800040, 0x29e04529, 0x00ad09e0, 0x00ad0ae2 },
-   { 0x00800040, 0x2a004529, 0x00ad0a00, 0x00ad0b02 },
-   { 0x00800040, 0x2a204529, 0x00ad0a20, 0x00ad0b22 },
-   { 0x00800040, 0x29c04529, 0x00ad09c0, 0x00ad0ae2 },
-   { 0x00800040, 0x29e04529, 0x00ad09e0, 0x00ad0b02 },
-   { 0x00800040, 0x2a004529, 0x00ad0a00, 0x00ad0b22 },
-   { 0x00800040, 0x2a204529, 0x00ad0a20, 0x00ad0b42 },
-   { 0x00800040, 0x2a404629, 0x00ad0b61, 0x00ad0b81 },
-   { 0x00800040, 0x2a604629, 0x00ad0b81, 0x00ad0ba1 },
-   { 0x00800040, 0x2a804629, 0x00ad0ba1, 0x00ad0bc1 },
-   { 0x00800040, 0x2aa04629, 0x00ad0bc1, 0x00ad0be1 },
-   { 0x00800040, 0x2a404529, 0x00ad0a40, 0x00ad0b62 },
-   { 0x00800040, 0x2a604529, 0x00ad0a60, 0x00ad0b82 },
-   { 0x00800040, 0x2a804529, 0x00ad0a80, 0x00ad0ba2 },
-   { 0x00800040, 0x2aa04529, 0x00ad0aa0, 0x00ad0bc2 },
-   { 0x00800040, 0x2a404529, 0x00ad0a40, 0x00ad0b82 },
-   { 0x00800040, 0x2a604529, 0x00ad0a60, 0x00ad0ba2 },
-   { 0x00800040, 0x2a804529, 0x00ad0a80, 0x00ad0bc2 },
-   { 0x00800040, 0x2aa04529, 0x00ad0aa0, 0x00ad0be2 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000031 },
-   { 0x00800040, 0x29c04629, 0x00ad0ac2, 0x00ad0ae2 },
-   { 0x00800040, 0x29e04629, 0x00ad0ae2, 0x00ad0b02 },
-   { 0x00800040, 0x2a004629, 0x00ad0b02, 0x00ad0b22 },
-   { 0x00800040, 0x2a204629, 0x00ad0b22, 0x00ad0b42 },
-   { 0x00800040, 0x29c04529, 0x00ad09c0, 0x00ad0ac3 },
-   { 0x00800040, 0x29e04529, 0x00ad09e0, 0x00ad0ae3 },
-   { 0x00800040, 0x2a004529, 0x00ad0a00, 0x00ad0b03 },
-   { 0x00800040, 0x2a204529, 0x00ad0a20, 0x00ad0b23 },
-   { 0x00800040, 0x29c04529, 0x00ad09c0, 0x00ad0ae3 },
-   { 0x00800040, 0x29e04529, 0x00ad09e0, 0x00ad0b03 },
-   { 0x00800040, 0x2a004529, 0x00ad0a00, 0x00ad0b23 },
-   { 0x00800040, 0x2a204529, 0x00ad0a20, 0x00ad0b43 },
-   { 0x00800040, 0x2a404629, 0x00ad0b62, 0x00ad0b82 },
-   { 0x00800040, 0x2a604629, 0x00ad0b82, 0x00ad0ba2 },
-   { 0x00800040, 0x2a804629, 0x00ad0ba2, 0x00ad0bc2 },
-   { 0x00800040, 0x2aa04629, 0x00ad0bc2, 0x00ad0be2 },
-   { 0x00800040, 0x2a404529, 0x00ad0a40, 0x00ad0b63 },
-   { 0x00800040, 0x2a604529, 0x00ad0a60, 0x00ad0b83 },
-   { 0x00800040, 0x2a804529, 0x00ad0a80, 0x00ad0ba3 },
-   { 0x00800040, 0x2aa04529, 0x00ad0aa0, 0x00ad0bc3 },
-   { 0x00800040, 0x2a404529, 0x00ad0a40, 0x00ad0b83 },
-   { 0x00800040, 0x2a604529, 0x00ad0a60, 0x00ad0ba3 },
-   { 0x00800040, 0x2a804529, 0x00ad0a80, 0x00ad0bc3 },
-   { 0x00800040, 0x2aa04529, 0x00ad0aa0, 0x00ad0be3 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000018 },
-   { 0x00800040, 0x29c04629, 0x00ad0ac3, 0x00ad0ae3 },
-   { 0x00800040, 0x29e04629, 0x00ad0ae3, 0x00ad0b03 },
-   { 0x00800040, 0x2a004629, 0x00ad0b03, 0x00ad0b23 },
-   { 0x00800040, 0x2a204629, 0x00ad0b23, 0x00ad0b43 },
-   { 0x00800040, 0x29c04529, 0x00ad09c0, 0x00ad0ac4 },
-   { 0x00800040, 0x29e04529, 0x00ad09e0, 0x00ad0ae4 },
-   { 0x00800040, 0x2a004529, 0x00ad0a00, 0x00ad0b04 },
-   { 0x00800040, 0x2a204529, 0x00ad0a20, 0x00ad0b24 },
-   { 0x00800040, 0x29c04529, 0x00ad09c0, 0x00ad0ae4 },
-   { 0x00800040, 0x29e04529, 0x00ad09e0, 0x00ad0b04 },
-   { 0x00800040, 0x2a004529, 0x00ad0a00, 0x00ad0b24 },
-   { 0x00800040, 0x2a204529, 0x00ad0a20, 0x00ad0b44 },
-   { 0x00800040, 0x2a404629, 0x00ad0b63, 0x00ad0b83 },
-   { 0x00800040, 0x2a604629, 0x00ad0b83, 0x00ad0ba3 },
-   { 0x00800040, 0x2a804629, 0x00ad0ba3, 0x00ad0bc3 },
-   { 0x00800040, 0x2aa04629, 0x00ad0bc3, 0x00ad0be3 },
-   { 0x00800040, 0x2a404529, 0x00ad0a40, 0x00ad0b64 },
-   { 0x00800040, 0x2a604529, 0x00ad0a60, 0x00ad0b84 },
-   { 0x00800040, 0x2a804529, 0x00ad0a80, 0x00ad0ba4 },
-   { 0x00800040, 0x2aa04529, 0x00ad0aa0, 0x00ad0bc4 },
-   { 0x00800040, 0x2a404529, 0x00ad0a40, 0x00ad0b84 },
-   { 0x00800040, 0x2a604529, 0x00ad0a60, 0x00ad0ba4 },
-   { 0x00800040, 0x2a804529, 0x00ad0a80, 0x00ad0bc4 },
-   { 0x00800040, 0x2aa04529, 0x00ad0aa0, 0x00ad0be4 },
-   { 0x80800008, 0x29c02d29, 0x00b109c0, 0x00020002 },
-   { 0x80800008, 0x29e02d29, 0x00b109e0, 0x00020002 },
-   { 0x80800008, 0x2a002d29, 0x00b10a00, 0x00020002 },
-   { 0x80800008, 0x2a202d29, 0x00b10a20, 0x00020002 },
-   { 0x80800008, 0x2a402d29, 0x00b10a40, 0x00020002 },
-   { 0x80800008, 0x2a602d29, 0x00b10a60, 0x00020002 },
-   { 0x80800008, 0x2a802d29, 0x00b10a80, 0x00020002 },
-   { 0x80800008, 0x2aa02d29, 0x00b10aa0, 0x00020002 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000082 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0007000f },
-   { 0x00800031, 0x2ac01d29, 0x00ad0e60, 0x0414a008 },
-   { 0x00800031, 0x2b601d29, 0x00ad0e60, 0x0414a009 },
-   { 0x00000005, 0x20580c21, 0x00210e60, 0x00000003 },
-   { 0x00000041, 0x20580c21, 0x00210058, 0x00000009 },
-   { 0x00000020, 0x34001400, 0x00001400, 0x00210058 },
-   { 0x80800042, 0x29c04629, 0x00ad0ac0, 0x00ad0ac1 },
-   { 0x80800042, 0x29e04629, 0x00ad0ae0, 0x00ad0ae1 },
-   { 0x80800042, 0x2a004629, 0x00ad0b00, 0x00ad0b01 },
-   { 0x80800042, 0x2a204629, 0x00ad0b20, 0x00ad0b21 },
-   { 0x80800042, 0x2a404629, 0x00ad0b60, 0x00ad0b61 },
-   { 0x80800042, 0x2a604629, 0x00ad0b80, 0x00ad0b81 },
-   { 0x80800042, 0x2a804629, 0x00ad0ba0, 0x00ad0ba1 },
-   { 0x80800042, 0x2aa04629, 0x00ad0bc0, 0x00ad0bc1 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x0000001a },
-   { 0x80800042, 0x29c04629, 0x00ad0ac1, 0x00ad0ac2 },
-   { 0x80800042, 0x29e04629, 0x00ad0ae1, 0x00ad0ae2 },
-   { 0x80800042, 0x2a004629, 0x00ad0b01, 0x00ad0b02 },
-   { 0x80800042, 0x2a204629, 0x00ad0b21, 0x00ad0b22 },
-   { 0x80800042, 0x2a404629, 0x00ad0b61, 0x00ad0b62 },
-   { 0x80800042, 0x2a604629, 0x00ad0b81, 0x00ad0b82 },
-   { 0x80800042, 0x2a804629, 0x00ad0ba1, 0x00ad0ba2 },
-   { 0x80800042, 0x2aa04629, 0x00ad0bc1, 0x00ad0bc2 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000011 },
-   { 0x80800042, 0x29c04629, 0x00ad0ac2, 0x00ad0ac3 },
-   { 0x80800042, 0x29e04629, 0x00ad0ae2, 0x00ad0ae3 },
-   { 0x80800042, 0x2a004629, 0x00ad0b02, 0x00ad0b03 },
-   { 0x80800042, 0x2a204629, 0x00ad0b22, 0x00ad0b23 },
-   { 0x80800042, 0x2a404629, 0x00ad0b62, 0x00ad0b63 },
-   { 0x80800042, 0x2a604629, 0x00ad0b82, 0x00ad0b83 },
-   { 0x80800042, 0x2a804629, 0x00ad0ba2, 0x00ad0ba3 },
-   { 0x80800042, 0x2aa04629, 0x00ad0bc2, 0x00ad0bc3 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000008 },
-   { 0x80800042, 0x29c04629, 0x00ad0ac3, 0x00ad0ac4 },
-   { 0x80800042, 0x29e04629, 0x00ad0ae3, 0x00ad0ae4 },
-   { 0x80800042, 0x2a004629, 0x00ad0b03, 0x00ad0b04 },
-   { 0x80800042, 0x2a204629, 0x00ad0b23, 0x00ad0b24 },
-   { 0x80800042, 0x2a404629, 0x00ad0b63, 0x00ad0b64 },
-   { 0x80800042, 0x2a604629, 0x00ad0b83, 0x00ad0b84 },
-   { 0x80800042, 0x2a804629, 0x00ad0ba3, 0x00ad0ba4 },
-   { 0x80800042, 0x2aa04629, 0x00ad0bc3, 0x00ad0bc4 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000058 },
-   { 0x01000005, 0x20002d3c, 0x0021003c, 0x00020002 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x0000002d },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0007000f },
-   { 0x00800031, 0x2ac01d29, 0x00ad0e60, 0x0414a008 },
-   { 0x00800031, 0x2b601d29, 0x00ad0e60, 0x0414a009 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0000000f },
-   { 0x00800031, 0x2b401d29, 0x00ad0e60, 0x0411a008 },
-   { 0x00800031, 0x2be01d29, 0x00ad0e60, 0x0411a009 },
-   { 0x00000005, 0x20580c21, 0x00210e60, 0x00000003 },
-   { 0x00000041, 0x20580c21, 0x00210058, 0x00000009 },
-   { 0x00000020, 0x34001400, 0x00001400, 0x00210058 },
-   { 0x80800042, 0x29c04629, 0x00ad0ac0, 0x00ad0ae0 },
-   { 0x80800042, 0x29e04629, 0x00ad0ae0, 0x00ad0b00 },
-   { 0x80800042, 0x2a004629, 0x00ad0b00, 0x00ad0b20 },
-   { 0x80800042, 0x2a204629, 0x00ad0b20, 0x00ad0b40 },
-   { 0x80800042, 0x2a404629, 0x00ad0b60, 0x00ad0b80 },
-   { 0x80800042, 0x2a604629, 0x00ad0b80, 0x00ad0ba0 },
-   { 0x80800042, 0x2a804629, 0x00ad0ba0, 0x00ad0bc0 },
-   { 0x80800042, 0x2aa04629, 0x00ad0bc0, 0x00ad0be0 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x0000001a },
-   { 0x80800042, 0x29c04629, 0x00ad0ac1, 0x00ad0ae1 },
-   { 0x80800042, 0x29e04629, 0x00ad0ae1, 0x00ad0b01 },
-   { 0x80800042, 0x2a004629, 0x00ad0b01, 0x00ad0b21 },
-   { 0x80800042, 0x2a204629, 0x00ad0b21, 0x00ad0b41 },
-   { 0x80800042, 0x2a404629, 0x00ad0b61, 0x00ad0b81 },
-   { 0x80800042, 0x2a604629, 0x00ad0b81, 0x00ad0ba1 },
-   { 0x80800042, 0x2a804629, 0x00ad0ba1, 0x00ad0bc1 },
-   { 0x80800042, 0x2aa04629, 0x00ad0bc1, 0x00ad0be1 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000011 },
-   { 0x80800042, 0x29c04629, 0x00ad0ac2, 0x00ad0ae2 },
-   { 0x80800042, 0x29e04629, 0x00ad0ae2, 0x00ad0b02 },
-   { 0x80800042, 0x2a004629, 0x00ad0b02, 0x00ad0b22 },
-   { 0x80800042, 0x2a204629, 0x00ad0b22, 0x00ad0b42 },
-   { 0x80800042, 0x2a404629, 0x00ad0b62, 0x00ad0b82 },
-   { 0x80800042, 0x2a604629, 0x00ad0b82, 0x00ad0ba2 },
-   { 0x80800042, 0x2a804629, 0x00ad0ba2, 0x00ad0bc2 },
-   { 0x80800042, 0x2aa04629, 0x00ad0bc2, 0x00ad0be2 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000008 },
-   { 0x80800042, 0x29c04629, 0x00ad0ac3, 0x00ad0ac3 },
-   { 0x80800042, 0x29e04629, 0x00ad0ae3, 0x00ad0ae3 },
-   { 0x80800042, 0x2a004629, 0x00ad0b03, 0x00ad0b03 },
-   { 0x80800042, 0x2a204629, 0x00ad0b23, 0x00ad0b23 },
-   { 0x80800042, 0x2a404629, 0x00ad0b63, 0x00ad0b63 },
-   { 0x80800042, 0x2a604629, 0x00ad0b83, 0x00ad0b83 },
-   { 0x80800042, 0x2a804629, 0x00ad0ba3, 0x00ad0ba3 },
-   { 0x80800042, 0x2aa04629, 0x00ad0bc3, 0x00ad0bc3 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000029 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0007000f },
-   { 0x00800031, 0x2ac01d29, 0x00ad0e60, 0x0414a008 },
-   { 0x00800031, 0x2b601d29, 0x00ad0e60, 0x0414a009 },
-   { 0x00000005, 0x20580c21, 0x00210e60, 0x00000003 },
-   { 0x00000041, 0x20580c21, 0x00210058, 0x00000009 },
-   { 0x00000020, 0x34001400, 0x00001400, 0x00210058 },
-   { 0x00800001, 0x29c00229, 0x00ad0ac0, 0x00000000 },
-   { 0x00800001, 0x29e00229, 0x00ad0ae0, 0x00000000 },
-   { 0x00800001, 0x2a000229, 0x00ad0b00, 0x00000000 },
-   { 0x00800001, 0x2a200229, 0x00ad0b20, 0x00000000 },
-   { 0x00800001, 0x2a400229, 0x00ad0b60, 0x00000000 },
-   { 0x00800001, 0x2a600229, 0x00ad0b80, 0x00000000 },
-   { 0x00800001, 0x2a800229, 0x00ad0ba0, 0x00000000 },
-   { 0x00800001, 0x2aa00229, 0x00ad0bc0, 0x00000000 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x0000001a },
-   { 0x00800001, 0x29c00229, 0x00ad0ac1, 0x00000000 },
-   { 0x00800001, 0x29e00229, 0x00ad0ae1, 0x00000000 },
-   { 0x00800001, 0x2a000229, 0x00ad0b01, 0x00000000 },
-   { 0x00800001, 0x2a200229, 0x00ad0b21, 0x00000000 },
-   { 0x00800001, 0x2a400229, 0x00ad0b61, 0x00000000 },
-   { 0x00800001, 0x2a600229, 0x00ad0b81, 0x00000000 },
-   { 0x00800001, 0x2a800229, 0x00ad0ba1, 0x00000000 },
-   { 0x00800001, 0x2aa00229, 0x00ad0bc1, 0x00000000 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000011 },
-   { 0x00800001, 0x29c00229, 0x00ad0ac2, 0x00000000 },
-   { 0x00800001, 0x29e00229, 0x00ad0ae2, 0x00000000 },
-   { 0x00800001, 0x2a000229, 0x00ad0b02, 0x00000000 },
-   { 0x00800001, 0x2a200229, 0x00ad0b22, 0x00000000 },
-   { 0x00800001, 0x2a400229, 0x00ad0b62, 0x00000000 },
-   { 0x00800001, 0x2a600229, 0x00ad0b82, 0x00000000 },
-   { 0x00800001, 0x2a800229, 0x00ad0ba2, 0x00000000 },
-   { 0x00800001, 0x2aa00229, 0x00ad0bc2, 0x00000000 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000008 },
-   { 0x00800001, 0x29c00229, 0x00ad0ac3, 0x00000000 },
-   { 0x00800001, 0x29e00229, 0x00ad0ae3, 0x00000000 },
-   { 0x00800001, 0x2a000229, 0x00ad0b03, 0x00000000 },
-   { 0x00800001, 0x2a200229, 0x00ad0b23, 0x00000000 },
-   { 0x00800001, 0x2a400229, 0x00ad0b63, 0x00000000 },
-   { 0x00800001, 0x2a600229, 0x00ad0b83, 0x00000000 },
-   { 0x00800001, 0x2a800229, 0x00ad0ba3, 0x00000000 },
-   { 0x00800001, 0x2aa00229, 0x00ad0bc3, 0x00000000 },
-   { 0x00600001, 0x25900129, 0x008d09c0, 0x00000000 },
-   { 0x00600001, 0x25b00129, 0x008d09e0, 0x00000000 },
-   { 0x00600001, 0x25d00129, 0x008d0a00, 0x00000000 },
-   { 0x00600001, 0x25f00129, 0x008d0a20, 0x00000000 },
-   { 0x00600001, 0x26100129, 0x008d0a40, 0x00000000 },
-   { 0x00600001, 0x26300129, 0x008d0a60, 0x00000000 },
-   { 0x00600001, 0x26500129, 0x008d0a80, 0x00000000 },
-   { 0x00600001, 0x26700129, 0x008d0aa0, 0x00000000 },
-   { 0x80800042, 0x25802529, 0x00b10880, 0x00b10580 },
-   { 0x80800042, 0x25a02529, 0x00b108a0, 0x00b105a0 },
-   { 0x80800042, 0x25c02529, 0x00b108c0, 0x00b105c0 },
-   { 0x80800042, 0x25e02529, 0x00b108e0, 0x00b105e0 },
-   { 0x80800042, 0x26002529, 0x00b10900, 0x00b10600 },
-   { 0x80800042, 0x26202529, 0x00b10920, 0x00b10620 },
-   { 0x80800042, 0x26402529, 0x00b10940, 0x00b10640 },
-   { 0x80800042, 0x26602529, 0x00b10960, 0x00b10660 },
-   { 0x00600001, 0x20200021, 0x008d0980, 0x00000000 },
-   { 0x00800001, 0x458101f1, 0x00000000, 0x00000000 },
-   { 0x00800001, 0x45a101f1, 0x00000000, 0x00000000 },
-   { 0x00800001, 0x45c101f1, 0x00000000, 0x00000000 },
-   { 0x00800001, 0x45e101f1, 0x00000000, 0x00000000 },
-   { 0x00800001, 0x460101f1, 0x00000000, 0x00000000 },
-   { 0x00800001, 0x462101f1, 0x00000000, 0x00000000 },
-   { 0x00800001, 0x464101f1, 0x00000000, 0x00000000 },
-   { 0x00800001, 0x466101f1, 0x00000000, 0x00000000 },
-   { 0x02000005, 0x20002e3c, 0x0021003e, 0x00010001 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000011 },
-   { 0x00800040, 0x238045ad, 0x00b10060, 0x00b20380 },
-   { 0x00800040, 0x23a045ad, 0x00b10080, 0x00b203a0 },
-   { 0x00800040, 0x23c045ad, 0x00b100a0, 0x00b203c0 },
-   { 0x00800040, 0x23e045ad, 0x00b100c0, 0x00b203e0 },
-   { 0x00800040, 0x240045ad, 0x00b100e0, 0x00b20400 },
-   { 0x00800040, 0x242045ad, 0x00b10100, 0x00b20420 },
-   { 0x00800040, 0x244045ad, 0x00b10120, 0x00b20440 },
-   { 0x00800040, 0x246045ad, 0x00b10140, 0x00b20460 },
-   { 0x00800040, 0x248045ad, 0x00b10160, 0x00b20480 },
-   { 0x00800040, 0x24a045ad, 0x00b10180, 0x00b204a0 },
-   { 0x00800040, 0x24c045ad, 0x00b101a0, 0x00b204c0 },
-   { 0x00800040, 0x24e045ad, 0x00b101c0, 0x00b204e0 },
-   { 0x00800040, 0x250045ad, 0x00b101e0, 0x00b20500 },
-   { 0x00800040, 0x252045ad, 0x00b10200, 0x00b20520 },
-   { 0x00800040, 0x254045ad, 0x00b10220, 0x00b20540 },
-   { 0x00800040, 0x256045ad, 0x00b10240, 0x00b20560 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000010 },
-   { 0x00800040, 0x238045ad, 0x00b10060, 0x00b20380 },
-   { 0x00800040, 0x23a045ad, 0x00b10160, 0x00b203a0 },
-   { 0x00800040, 0x23c045ad, 0x00b10080, 0x00b203c0 },
-   { 0x00800040, 0x23e045ad, 0x00b10180, 0x00b203e0 },
-   { 0x00800040, 0x240045ad, 0x00b100a0, 0x00b20400 },
-   { 0x00800040, 0x242045ad, 0x00b101a0, 0x00b20420 },
-   { 0x00800040, 0x244045ad, 0x00b100c0, 0x00b20440 },
-   { 0x00800040, 0x246045ad, 0x00b101c0, 0x00b20460 },
-   { 0x00800040, 0x248045ad, 0x00b100e0, 0x00b20480 },
-   { 0x00800040, 0x24a045ad, 0x00b101e0, 0x00b204a0 },
-   { 0x00800040, 0x24c045ad, 0x00b10100, 0x00b204c0 },
-   { 0x00800040, 0x24e045ad, 0x00b10200, 0x00b204e0 },
-   { 0x00800040, 0x250045ad, 0x00b10120, 0x00b20500 },
-   { 0x00800040, 0x252045ad, 0x00b10220, 0x00b20520 },
-   { 0x00800040, 0x254045ad, 0x00b10140, 0x00b20540 },
-   { 0x00800040, 0x256045ad, 0x00b10240, 0x00b20560 },
-   { 0x00000001, 0x20280061, 0x00000000, 0x000f000f },
-   { 0x80800001, 0x438001b1, 0x00b10380, 0x00000000 },
-   { 0x80800001, 0x43a001b1, 0x00b103a0, 0x00000000 },
-   { 0x80800001, 0x43c001b1, 0x00b103c0, 0x00000000 },
-   { 0x80800001, 0x43e001b1, 0x00b103e0, 0x00000000 },
-   { 0x80800001, 0x440001b1, 0x00b10400, 0x00000000 },
-   { 0x80800001, 0x442001b1, 0x00b10420, 0x00000000 },
-   { 0x80800001, 0x444001b1, 0x00b10440, 0x00000000 },
-   { 0x80800001, 0x446001b1, 0x00b10460, 0x00000000 },
-   { 0x80800001, 0x448001b1, 0x00b10480, 0x00000000 },
-   { 0x80800001, 0x44a001b1, 0x00b104a0, 0x00000000 },
-   { 0x80800001, 0x44c001b1, 0x00b104c0, 0x00000000 },
-   { 0x80800001, 0x44e001b1, 0x00b104e0, 0x00000000 },
-   { 0x80800001, 0x450001b1, 0x00b10500, 0x00000000 },
-   { 0x80800001, 0x452001b1, 0x00b10520, 0x00000000 },
-   { 0x80800001, 0x454001b1, 0x00b10540, 0x00000000 },
-   { 0x80800001, 0x456001b1, 0x00b10560, 0x00000000 },
-   { 0x00800001, 0x20200232, 0x00b20380, 0x00000000 },
-   { 0x00800001, 0x20300232, 0x00b203a0, 0x00000000 },
-   { 0x00800001, 0x20400232, 0x00b203c0, 0x00000000 },
-   { 0x00800001, 0x20500232, 0x00b203e0, 0x00000000 },
-   { 0x00800001, 0x20600232, 0x00b20400, 0x00000000 },
-   { 0x00800001, 0x20700232, 0x00b20420, 0x00000000 },
-   { 0x00800001, 0x20800232, 0x00b20440, 0x00000000 },
-   { 0x00800001, 0x20900232, 0x00b20460, 0x00000000 },
-   { 0x00800001, 0x20a00232, 0x00b20480, 0x00000000 },
-   { 0x00800001, 0x20b00232, 0x00b204a0, 0x00000000 },
-   { 0x00800001, 0x20c00232, 0x00b204c0, 0x00000000 },
-   { 0x00800001, 0x20d00232, 0x00b204e0, 0x00000000 },
-   { 0x00800001, 0x20e00232, 0x00b20500, 0x00000000 },
-   { 0x00800001, 0x20f00232, 0x00b20520, 0x00000000 },
-   { 0x00800001, 0x21000232, 0x00b20540, 0x00000000 },
-   { 0x00800001, 0x21100232, 0x00b20560, 0x00000000 },
-   { 0x00800031, 0x24001d28, 0x008d0020, 0x05902000 },
-   { 0x00000001, 0x20280061, 0x00000000, 0x00070007 },
-   { 0x00200008, 0x20201c21, 0x00450020, 0x00000001 },
-   { 0x00800040, 0x258025a9, 0x00b10260, 0x00b10580 },
-   { 0x00800040, 0x25a025a9, 0x00b10280, 0x00b105a0 },
-   { 0x00800040, 0x25c025a9, 0x00b102a0, 0x00b105c0 },
-   { 0x00800040, 0x25e025a9, 0x00b102c0, 0x00b105e0 },
-   { 0x80800001, 0x45800131, 0x00b10580, 0x00000000 },
-   { 0x80800001, 0x45a00131, 0x00b105a0, 0x00000000 },
-   { 0x80800001, 0x45c00131, 0x00b105c0, 0x00000000 },
-   { 0x80800001, 0x45e00131, 0x00b105e0, 0x00000000 },
-   { 0x00800001, 0x20200232, 0x00b20580, 0x00000000 },
-   { 0x00800001, 0x20300232, 0x00b205a0, 0x00000000 },
-   { 0x00800001, 0x20400232, 0x00b205c0, 0x00000000 },
-   { 0x00800001, 0x20500232, 0x00b205e0, 0x00000000 },
-   { 0x00800031, 0x24001d28, 0x008d0020, 0x05302001 },
-   { 0x00800040, 0x260025a9, 0x00b102e0, 0x00b10600 },
-   { 0x00800040, 0x262025a9, 0x00b10300, 0x00b10620 },
-   { 0x00800040, 0x264025a9, 0x00b10320, 0x00b10640 },
-   { 0x00800040, 0x266025a9, 0x00b10340, 0x00b10660 },
-   { 0x80800001, 0x46000131, 0x00b10600, 0x00000000 },
-   { 0x80800001, 0x46200131, 0x00b10620, 0x00000000 },
-   { 0x80800001, 0x46400131, 0x00b10640, 0x00000000 },
-   { 0x80800001, 0x46600131, 0x00b10660, 0x00000000 },
-   { 0x00800001, 0x20200232, 0x00b20600, 0x00000000 },
-   { 0x00800001, 0x20300232, 0x00b20620, 0x00000000 },
-   { 0x00800001, 0x20400232, 0x00b20640, 0x00000000 },
-   { 0x00800001, 0x20500232, 0x00b20660, 0x00000000 },
-   { 0x00800031, 0x24001d28, 0x008d0020, 0x05302002 },
-   { 0x00800031, 0x24001d28, 0x008d0000, 0x87100000 },
diff --git a/src/xvmc/dual_prime_igd.g4a b/src/xvmc/dual_prime_igd.g4a
deleted file mode 100644
index e741244..0000000
--- a/src/xvmc/dual_prime_igd.g4a
+++ /dev/null
@@ -1,223 +0,0 @@
-/*
- * Copyright © 2008 Intel Corporation
- *
- * Permission is hereby granted, free of charge, to any person obtaining a
- * copy of this software and associated documentation files (the "Software"),
- * to deal in the Software without restriction, including without limitation
- * the rights to use, copy, modify, merge, publish, distribute, sublicense,
- * and/or sell copies of the Software, and to permit persons to whom the
- * Software is furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice (including the next
- * paragraph) shall be included in all copies or substantial portions of the
- * Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
- * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
- * SOFTWARE.
- *
- * Author:
- *    Zou Nan hai <nanhai.zou at intel.com>
- *    Zhang Hua jun <huajun.zhang at intel.com>
- *    Xing Dong sheng <dongsheng.xing at intel.com>
- *
- */
-mov (8) g76.0<1>UD g1.0<8,8,1>UD {align1};
-//mov (8) g77.0<1>UD g2.0<8,8,1>UD {align1};
-
-include(`block_clear.g4i')
-mov (8) g115.0<1>UD g1.0<8,8,1>UD {align1};
-mov (8) g116.0<1>UD g1.0<8,8,1>UD {align1};
-
-/* forward---Y---first vector*/
-mov(1) g115.8<1>UD 0x007001fUD  { align1 };
-asr (2) g115.14<1>W g1.14<2,2,1>W 1W {align1};
-add (2) g115.0<1>D g116.0<2,2,1>D g115.14<2,2,1>W {align1};
-and (1) g115.4<1>UD g115.4<1,1,1>UD 0xFFFFFFFEUD {align1};
-mov(1) g115.8<1>UD 0x1fUD  { align1 }; //read 1 line, 32 columns.
-and.nz (1) null g1.31<1,1,1>UB 0x1UW {align1};
-(f0) add (1) g115.4<1>D g115.4<1,1,1>D 1D {align1};
-define(`surface',`4')
-define(`mv1',`g1.14')
-define(`mv2',`g1.16')
-include(`motion_field_y_igd.g4i')
-mov (8) g52.0<1>UD g96.0<8,8,1>UD {align1};
-mov (8) g54.0<1>UD g97.0<8,8,1>UD {align1};
-mov (8) g56.0<1>UD g98.0<8,8,1>UD {align1};
-mov (8) g58.0<1>UD g99.0<8,8,1>UD {align1};
-mov (8) g60.0<1>UD g100.0<8,8,1>UD {align1};
-mov (8) g62.0<1>UD g101.0<8,8,1>UD {align1};
-mov (8) g64.0<1>UD g102.0<8,8,1>UD {align1};
-mov (8) g66.0<1>UD g103.0<8,8,1>UD {align1};
-
-/*forward---Y---second vector*/
-asr (2) g115.14<1>W g1.22<2,2,1>W 1W {align1};
-add (2) g115.0<1>D g116.0<2,2,1>D g115.14<2,2,1>W {align1};
-and (1) g115.4<1>UD g115.4<1,1,1>UD 0xFFFFFFFEUD {align1};
-mov(1) g115.8<1>UD 0x1fUD { align1 }; //read 1 line, 32 columns.
-and.nz (1) null g1.31<1,1,1>UB 0x4UD {align1};
-(f0) add (1) g115.4<1>D g115.4<1,1,1>D 1D {align1};
-define(`surface',`4')
-define(`mv1',`g1.22')
-define(`mv2',`g1.24')
-include(`motion_field_y_igd.g4i')
-mov (8) g53.0<1>UD g96.0<8,8,1>UD {align1};
-mov (8) g55.0<1>UD g97.0<8,8,1>UD {align1};
-mov (8) g57.0<1>UD g98.0<8,8,1>UD {align1};
-mov (8) g59.0<1>UD g99.0<8,8,1>UD {align1};
-mov (8) g61.0<1>UD g100.0<8,8,1>UD {align1};
-mov (8) g63.0<1>UD g101.0<8,8,1>UD {align1};
-mov (8) g65.0<1>UD g102.0<8,8,1>UD {align1};
-mov (8) g67.0<1>UD g103.0<8,8,1>UD {align1};
-
-/*forward---UV---first vector*/
-mov(1) g115.8<1>UD 0x007000fUD  { align1 };
-asr (2) g115.14<1>W g1.14<2,2,1>W 2W {align1};
-asr (2) g115.0<1>D g116.0<2,2,1>D 1D {align1};
-add (2) g115.0<1>D g115.0<2,2,1>D g115.14<2,2,1>W {align1};
-and (1) g115.4<1>UD g115.4<1,1,1>UD 0xFFFFFFFEUD {align1};
-and.nz (1) null g1.31<1,1,1>UB 0x1UW {align1};
-(f0) add (1) g115.4<1>UD g115.4<1,1,1>UD 1UD {align1};
-define(`surface_u',`5')
-define(`surface_v',`6')
-define(`mv1',`g1.14')
-define(`mv2',`g1.16')
-include(`motion_field_uv_igd.g4i')
-mov (8) g68.0<1>UW g78.0<8,8,1>UW {align1};
-mov (8) g69.0<1>UW g79.0<8,8,1>UW {align1};
-mov (8) g70.0<1>UW g80.0<8,8,1>UW {align1};
-mov (8) g71.0<1>UW g81.0<8,8,1>UW {align1};
-mov (8) g72.0<1>UW g82.0<8,8,1>UW {align1};
-mov (8) g73.0<1>UW g83.0<8,8,1>UW {align1};
-mov (8) g74.0<1>UW g84.0<8,8,1>UW {align1};
-mov (8) g75.0<1>UW g85.0<8,8,1>UW {align1};
-
-/*forward---UV---second vector */
-asr (2) g115.14<1>W g1.22<2,2,1>W 2W {align1};
-asr (2) g115.0<1>D g116.0<2,2,1>D 1D {align1};
-add (2) g115.0<1>D g115.0<2,2,1>D g115.14<2,2,1>W {align1};
-and (1) g115.4<1>UD g115.4<1,1,1>UD 0xFFFFFFFEUD {align1};
-and.nz (1) null g1.31<1,1,1>UB 0x4UW {align1};
-(f0) add (1) g115.4<1>UD g115.4<1,1,1>UD 1UD {align1};
-define(`mv1',`g1.24')
-define(`mv2',`g1.26')
-include(`motion_field_uv_igd.g4i')
-mov (8) g68.16<1>UW g78.0<8,8,1>UW {align1};
-mov (8) g69.16<1>UW g79.0<8,8,1>UW {align1};
-mov (8) g70.16<1>UW g80.0<8,8,1>UW {align1};
-mov (8) g71.16<1>UW g81.0<8,8,1>UW {align1};
-mov (8) g72.16<1>UW g82.0<8,8,1>UW {align1};
-mov (8) g73.16<1>UW g83.0<8,8,1>UW {align1};
-mov (8) g74.16<1>UW g84.0<8,8,1>UW {align1};
-mov (8) g75.16<1>UW g85.0<8,8,1>UW {align1};
-
-/*backward---Y---first vector */
-mov(8) g1.0<1>UD g116.0<8,8,1>UD {align1};
-mov(1) g115.8<1>UD 0x007001fUD  { align1 };
-mov(1) g1.8<1>UD 0x007000fUD  { align1 };
-asr (2) g115.14<1>W g1.18<2,2,1>W 1W {align1};
-add (2) g115.0<1>D g116.0<2,2,1>D g115.14<2,2,1>W {align1};
-and (1) g115.4<1>UD g115.4<1,1,1>UD 0xFFFFFFFEUD {align1};
-mov(1) g115.8<1>UD 0x1fUD  { align1 }; //read 1 line, 32 columns.
-and.nz (1) null g1.31<1,1,1>UB 0x2UW {align1};
-(f0) add (1) g115.4<1>D g115.4<1,1,1>D 1D {align1};
-define(`surface',`7')
-define(`mv1',`g1.18')
-define(`mv2',`g1.20')
-include(`motion_field_y_igd.g4i')
-mov (8) g28.0<1>UD g96.0<8,8,1>UD {align1};
-mov (8) g30.0<1>UD g97.0<8,8,1>UD {align1};
-mov (8) g32.0<1>UD g98.0<8,8,1>UD {align1};
-mov (8) g34.0<1>UD g99.0<8,8,1>UD {align1};
-mov (8) g36.0<1>UD g100.0<8,8,1>UD {align1};
-mov (8) g38.0<1>UD g101.0<8,8,1>UD {align1};
-mov (8) g40.0<1>UD g102.0<8,8,1>UD {align1};
-mov (8) g42.0<1>UD g103.0<8,8,1>UD {align1};
-
-/*backward---Y---second vector */
-asr (2) g115.14<1>W g1.26<2,2,1>W 1W {align1};
-add (2) g115.0<1>D g116.0<2,2,1>D g115.14<2,2,1>W {align1};
-and (1) g115.4<1>UD g115.4<1,1,1>UD 0xFFFFFFFEUD {align1};
-mov(1) g115.8<1>UD 0x1fUD  { align1 }; //read 1 line, 32 columns.
-and.nz (1) null g2.20<1,1,1>UD 0x8UD {align1};
-(f0) add (1) g115.4<1>D g115.4<1,1,1>D 1D {align1};
-define(`surface',`7')
-define(`mv1',`g1.26')
-define(`mv2',`g1.28')
-include(`motion_field_y_igd.g4i')
-
-avg.sat (16) g28.0<1>UW g52.0<16,16,1>UW g28.0<16,16,1>UW {align1};
-avg.sat (16) g29.0<1>UW g53.0<16,16,1>UW g96.0<16,16,1>UW {align1};
-avg.sat (16) g30.0<1>UW g54.0<16,16,1>UW g30.0<16,16,1>UW {align1};
-avg.sat (16) g31.0<1>UW g55.0<16,16,1>UW g97.0<16,16,1>UW {align1};
-avg.sat (16) g32.0<1>UW g56.0<16,16,1>UW g32.0<16,16,1>UW {align1};
-avg.sat (16) g33.0<1>UW g57.0<16,16,1>UW g98.0<16,16,1>UW {align1};
-avg.sat (16) g34.0<1>UW g58.0<16,16,1>UW g34.0<16,16,1>UW {align1};
-avg.sat (16) g35.0<1>UW g59.0<16,16,1>UW g99.0<16,16,1>UW {align1};
-avg.sat (16) g36.0<1>UW g60.0<16,16,1>UW g36.0<16,16,1>UW {align1};
-avg.sat (16) g37.0<1>UW g61.0<16,16,1>UW g100.0<16,16,1>UW {align1};
-avg.sat (16) g38.0<1>UW g62.0<16,16,1>UW g38.0<16,16,1>UW {align1};
-avg.sat (16) g39.0<1>UW g63.0<16,16,1>UW g101.0<16,16,1>UW {align1};
-avg.sat (16) g40.0<1>UW g64.0<16,16,1>UW g40.0<16,16,1>UW {align1};
-avg.sat (16) g41.0<1>UW g65.0<16,16,1>UW g102.0<16,16,1>UW {align1};
-avg.sat (16) g42.0<1>UW g66.0<16,16,1>UW g42.0<16,16,1>UW {align1};
-avg.sat (16) g43.0<1>UW g67.0<16,16,1>UW g103.0<16,16,1>UW {align1};
-
-/*backward---UV---first vector */
-mov(1) g115.8<1>UD 0x007000fUD  { align1 };
-asr (2) g115.14<1>W g1.18<2,2,1>W 2W {align1};
-asr (2) g115.0<1>D g116.0<2,2,1>D 1D {align1};
-add (2) g115.0<1>D g115.0<2,2,1>D g115.14<2,2,1>W {align1};
-and (1) g115.4<1>UD g115.4<1,1,1>UD 0xFFFFFFFEUD {align1};
-and.nz (1) null g1.31<1,1,1>UB 0x2UW {align1};
-(f0) add (1) g115.4<1>UD g115.4<1,1,1>UD 1UD {align1};
-define(`surface_u',`8')
-define(`surface_v',`9')
-define(`mv1',`g1.18')
-define(`mv2',`g1.20')
-include(`motion_field_uv_igd.g4i')
-mov (8) g44.0<1>UW g78.0<8,8,1>UW {align1};
-mov (8) g45.0<1>UW g79.0<8,8,1>UW {align1};
-mov (8) g46.0<1>UW g80.0<8,8,1>UW {align1};
-mov (8) g47.0<1>UW g81.0<8,8,1>UW {align1};
-mov (8) g48.0<1>UW g82.0<8,8,1>UW {align1};
-mov (8) g49.0<1>UW g83.0<8,8,1>UW {align1};
-mov (8) g50.0<1>UW g84.0<8,8,1>UW {align1};
-mov (8) g51.0<1>UW g85.0<8,8,1>UW {align1};
-
-/*backward---UV---second vector */
-asr (2) g115.14<1>W g1.26<2,2,1>W 2W {align1};
-asr (2) g115.0<1>D g116.0<2,2,1>D 1D {align1};
-add (2) g115.0<1>D g115.0<2,2,1>D g115.14<2,2,1>W {align1};
-and (1) g115.4<1>UD g115.4<1,1,1>UD 0xFFFFFFFEUD {align1};
-and.nz (1) null g1.31<1,1,1>UB 0x8UW {align1};
-(f0) add (1) g115.4<1>UD g115.4<1,1,1>UD 1UD {align1};
-define(`mv1',`g1.26')
-define(`mv2',`g1.28')
-include(`motion_field_uv_igd.g4i')
-mov (8) g44.16<1>UW g78.0<8,8,1>UW {align1};
-mov (8) g45.16<1>UW g79.0<8,8,1>UW {align1};
-mov (8) g46.16<1>UW g80.0<8,8,1>UW {align1};
-mov (8) g47.16<1>UW g81.0<8,8,1>UW {align1};
-mov (8) g48.16<1>UW g82.0<8,8,1>UW {align1};
-mov (8) g49.16<1>UW g83.0<8,8,1>UW {align1};
-mov (8) g50.16<1>UW g84.0<8,8,1>UW {align1};
-mov (8) g51.16<1>UW g85.0<8,8,1>UW {align1};
-
-avg.sat (16) g44.0<1>UW g68.0<16,16,1>UW g44.0<16,16,1>UW {align1};
-avg.sat (16) g45.0<1>UW g69.0<16,16,1>UW g45.0<16,16,1>UW {align1};
-avg.sat (16) g46.0<1>UW g70.0<16,16,1>UW g46.0<16,16,1>UW {align1};
-avg.sat (16) g47.0<1>UW g71.0<16,16,1>UW g47.0<16,16,1>UW {align1};
-avg.sat (16) g48.0<1>UW g72.0<16,16,1>UW g48.0<16,16,1>UW {align1};
-avg.sat (16) g49.0<1>UW g73.0<16,16,1>UW g49.0<16,16,1>UW {align1};
-avg.sat (16) g50.0<1>UW g74.0<16,16,1>UW g50.0<16,16,1>UW {align1};
-avg.sat (16) g51.0<1>UW g75.0<16,16,1>UW g51.0<16,16,1>UW {align1};
-
-include(`addidct.g4i')
-
-//send (16) 0 acc0<1>UW g0<8,8,1>UW 
-//	thread_spawner(0, 0, 0) mlen 1 rlen 0 { align1 EOT};
diff --git a/src/xvmc/dual_prime_igd.g4b b/src/xvmc/dual_prime_igd.g4b
deleted file mode 100644
index 6477d06..0000000
--- a/src/xvmc/dual_prime_igd.g4b
+++ /dev/null
@@ -1,1142 +0,0 @@
-   { 0x00600001, 0x29800021, 0x008d0020, 0x00000000 },
-   { 0x02000005, 0x20000c3c, 0x00210040, 0x00000001 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000030 },
-   { 0x00000040, 0x20480c21, 0x00210988, 0x00000000 },
-   { 0x00800031, 0x20601c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x20801c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x20a01c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x20c01c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x20e01c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x21001c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x21201c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x21401c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x21601c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x21801c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x21a01c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x21c01c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x21e01c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x22001c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x22201c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x22401c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x22601c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x22801c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x22a01c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x22c01c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x22e01c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x23001c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x23201c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x23401c21, 0x00b10040, 0x04110203 },
-   { 0x02000005, 0x20002d3c, 0x0021098c, 0x00200020 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000008 },
-   { 0x00600001, 0x20600169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x20800169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x20a00169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x20c00169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x20e00169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x21000169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x21200169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x21400169, 0x00000000, 0x00000000 },
-   { 0x02000005, 0x20002d3c, 0x0021002c, 0x00100010 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000008 },
-   { 0x00600001, 0x20700169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x20900169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x20b00169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x20d00169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x20f00169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x21100169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x21300169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x21500169, 0x00000000, 0x00000000 },
-   { 0x02000005, 0x20002d3c, 0x0021002c, 0x00080008 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000008 },
-   { 0x00600001, 0x21600169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x21800169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x21a00169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x21c00169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x21e00169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x22000169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x22200169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x22400169, 0x00000000, 0x00000000 },
-   { 0x02000005, 0x20002d3c, 0x0021002c, 0x00040004 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000008 },
-   { 0x00600001, 0x21700169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x21900169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x21b00169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x21d00169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x21f00169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x22100169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x22300169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x22500169, 0x00000000, 0x00000000 },
-   { 0x02000005, 0x20002d3c, 0x0021002c, 0x00020002 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000004 },
-   { 0x00800001, 0x22600169, 0x00000000, 0x00000000 },
-   { 0x00800001, 0x22800169, 0x00000000, 0x00000000 },
-   { 0x00800001, 0x22a00169, 0x00000000, 0x00000000 },
-   { 0x00800001, 0x22c00169, 0x00000000, 0x00000000 },
-   { 0x02000005, 0x20002d3c, 0x0021002c, 0x00010001 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000004 },
-   { 0x00800001, 0x22e00169, 0x00000000, 0x00000000 },
-   { 0x00800001, 0x23000169, 0x00000000, 0x00000000 },
-   { 0x00800001, 0x23200169, 0x00000000, 0x00000000 },
-   { 0x00800001, 0x23400169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x2e600021, 0x008d0020, 0x00000000 },
-   { 0x00600001, 0x2e800021, 0x008d0020, 0x00000000 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0007001f },
-   { 0x0020000c, 0x2e6e3dad, 0x0045002e, 0x00010001 },
-   { 0x00200040, 0x2e6034a5, 0x00450e80, 0x00450e6e },
-   { 0x00000005, 0x2e640c21, 0x00210e64, 0xfffffffe },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
-   { 0x02000005, 0x20002e3c, 0x0021003f, 0x00010001 },
-   { 0x00010040, 0x2e641ca5, 0x00210e64, 0x00000001 },
-   { 0x01000005, 0x20002d3c, 0x0021002e, 0x00010001 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000045 },
-   { 0x01000005, 0x20002d3c, 0x00210030, 0x00010001 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x0000002f },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
-   { 0x00800031, 0x29c01d29, 0x008d0e60, 0x0411a004 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a001d29, 0x008d0e60, 0x0411a004 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a401d29, 0x008d0e60, 0x0411a004 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a801d29, 0x008d0e60, 0x0411a004 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0007001f },
-   { 0x00800031, 0x2ac01d29, 0x008d0e60, 0x0418a004 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
-   { 0x00800031, 0x2bc01d29, 0x008d0e60, 0x0411a004 },
-   { 0x00800040, 0x2c004629, 0x00b109c0, 0x00b10a00 },
-   { 0x00800040, 0x2c204629, 0x00b10a00, 0x00b10a40 },
-   { 0x00800040, 0x2c404629, 0x00b10a40, 0x00b10a80 },
-   { 0x00800040, 0x2c604629, 0x00b10a80, 0x00b10ac0 },
-   { 0x00800040, 0x2c804629, 0x00b10ac0, 0x00b10b00 },
-   { 0x00800040, 0x2ca04629, 0x00b10b00, 0x00b10b40 },
-   { 0x00800040, 0x2cc04629, 0x00b10b40, 0x00b10b80 },
-   { 0x00800040, 0x2ce04629, 0x00b10b80, 0x00b10bc0 },
-   { 0x00800040, 0x2c004529, 0x00b10c00, 0x00b109c1 },
-   { 0x00800040, 0x2c204529, 0x00b10c20, 0x00b10a01 },
-   { 0x00800040, 0x2c404529, 0x00b10c40, 0x00b10a41 },
-   { 0x00800040, 0x2c604529, 0x00b10c60, 0x00b10a81 },
-   { 0x00800040, 0x2c804529, 0x00b10c80, 0x00b10ac1 },
-   { 0x00800040, 0x2ca04529, 0x00b10ca0, 0x00b10b01 },
-   { 0x00800040, 0x2cc04529, 0x00b10cc0, 0x00b10b41 },
-   { 0x00800040, 0x2ce04529, 0x00b10ce0, 0x00b10b81 },
-   { 0x00800040, 0x2c004529, 0x00b10c00, 0x00b10a01 },
-   { 0x00800040, 0x2c204529, 0x00b10c20, 0x00b10a41 },
-   { 0x00800040, 0x2c404529, 0x00b10c40, 0x00b10a81 },
-   { 0x00800040, 0x2c604529, 0x00b10c60, 0x00b10ac1 },
-   { 0x00800040, 0x2c804529, 0x00b10c80, 0x00b10b01 },
-   { 0x00800040, 0x2ca04529, 0x00b10ca0, 0x00b10b41 },
-   { 0x00800040, 0x2cc04529, 0x00b10cc0, 0x00b10b81 },
-   { 0x00800040, 0x2ce04529, 0x00b10ce0, 0x00b10bc1 },
-   { 0x00800008, 0x2c002d29, 0x00b10c00, 0x00020002 },
-   { 0x00800008, 0x2c202d29, 0x00b10c20, 0x00020002 },
-   { 0x00800008, 0x2c402d29, 0x00b10c40, 0x00020002 },
-   { 0x00800008, 0x2c602d29, 0x00b10c60, 0x00020002 },
-   { 0x00800008, 0x2c802d29, 0x00b10c80, 0x00020002 },
-   { 0x00800008, 0x2ca02d29, 0x00b10ca0, 0x00020002 },
-   { 0x00800008, 0x2cc02d29, 0x00b10cc0, 0x00020002 },
-   { 0x00800008, 0x2ce02d29, 0x00b10ce0, 0x00020002 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000040 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
-   { 0x00800031, 0x29c01d29, 0x008d0e60, 0x0411a004 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a001d29, 0x008d0e60, 0x0411a004 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a401d29, 0x008d0e60, 0x0411a004 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a801d29, 0x008d0e60, 0x0411a004 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0007001f },
-   { 0x00800031, 0x2ac01d29, 0x008d0e60, 0x0418a004 },
-   { 0x80800042, 0x2c004629, 0x00b109c0, 0x00b109c1 },
-   { 0x80800042, 0x2c204629, 0x00b10a00, 0x00b10a01 },
-   { 0x80800042, 0x2c404629, 0x00b10a40, 0x00b10a41 },
-   { 0x80800042, 0x2c604629, 0x00b10a80, 0x00b10a81 },
-   { 0x80800042, 0x2c804629, 0x00b10ac0, 0x00b10ac1 },
-   { 0x80800042, 0x2ca04629, 0x00b10b00, 0x00b10b01 },
-   { 0x80800042, 0x2cc04629, 0x00b10b40, 0x00b10b41 },
-   { 0x80800042, 0x2ce04629, 0x00b10b80, 0x00b10b81 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x0000002c },
-   { 0x01000005, 0x20002d3c, 0x00210030, 0x00010001 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000017 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
-   { 0x00800031, 0x29c01d29, 0x008d0e60, 0x0411a004 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a001d29, 0x008d0e60, 0x0411a004 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a401d29, 0x008d0e60, 0x0411a004 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a801d29, 0x008d0e60, 0x0411a004 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0007001f },
-   { 0x00800031, 0x2ac01d29, 0x008d0e60, 0x0418a004 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
-   { 0x00800031, 0x2bc01d29, 0x008d0e60, 0x0411a004 },
-   { 0x80800042, 0x2c004629, 0x00b109c0, 0x00b10a00 },
-   { 0x80800042, 0x2c204629, 0x00b10a00, 0x00b10a40 },
-   { 0x80800042, 0x2c404629, 0x00b10a40, 0x00b10a80 },
-   { 0x80800042, 0x2c604629, 0x00b10a80, 0x00b10ac0 },
-   { 0x80800042, 0x2c804629, 0x00b10ac0, 0x00b10b00 },
-   { 0x80800042, 0x2ca04629, 0x00b10b00, 0x00b10b40 },
-   { 0x80800042, 0x2cc04629, 0x00b10b40, 0x00b10b80 },
-   { 0x80800042, 0x2ce04629, 0x00b10b80, 0x00b10bc0 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000013 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
-   { 0x00800031, 0x29c01d29, 0x008d0e60, 0x0411a004 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a001d29, 0x008d0e60, 0x0411a004 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a401d29, 0x008d0e60, 0x0411a004 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a801d29, 0x008d0e60, 0x0411a004 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0007001f },
-   { 0x00800031, 0x2ac01d29, 0x008d0e60, 0x0418a004 },
-   { 0x00800001, 0x2c000229, 0x00b109c0, 0x00000000 },
-   { 0x00800001, 0x2c200229, 0x00b10a00, 0x00000000 },
-   { 0x00800001, 0x2c400229, 0x00b10a40, 0x00000000 },
-   { 0x00800001, 0x2c600229, 0x00b10a80, 0x00000000 },
-   { 0x00800001, 0x2c800229, 0x00b10ac0, 0x00000000 },
-   { 0x00800001, 0x2ca00229, 0x00b10b00, 0x00000000 },
-   { 0x00800001, 0x2cc00229, 0x00b10b40, 0x00000000 },
-   { 0x00800001, 0x2ce00229, 0x00b10b80, 0x00000000 },
-   { 0x00600001, 0x26800021, 0x008d0c00, 0x00000000 },
-   { 0x00600001, 0x26c00021, 0x008d0c20, 0x00000000 },
-   { 0x00600001, 0x27000021, 0x008d0c40, 0x00000000 },
-   { 0x00600001, 0x27400021, 0x008d0c60, 0x00000000 },
-   { 0x00600001, 0x27800021, 0x008d0c80, 0x00000000 },
-   { 0x00600001, 0x27c00021, 0x008d0ca0, 0x00000000 },
-   { 0x00600001, 0x28000021, 0x008d0cc0, 0x00000000 },
-   { 0x00600001, 0x28400021, 0x008d0ce0, 0x00000000 },
-   { 0x0020000c, 0x2e6e3dad, 0x00450036, 0x00010001 },
-   { 0x00200040, 0x2e6034a5, 0x00450e80, 0x00450e6e },
-   { 0x00000005, 0x2e640c21, 0x00210e64, 0xfffffffe },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
-   { 0x02000005, 0x20000e3c, 0x0021003f, 0x00000004 },
-   { 0x00010040, 0x2e641ca5, 0x00210e64, 0x00000001 },
-   { 0x01000005, 0x20002d3c, 0x00210036, 0x00010001 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000045 },
-   { 0x01000005, 0x20002d3c, 0x00210038, 0x00010001 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x0000002f },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
-   { 0x00800031, 0x29c01d29, 0x008d0e60, 0x0411a004 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a001d29, 0x008d0e60, 0x0411a004 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a401d29, 0x008d0e60, 0x0411a004 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a801d29, 0x008d0e60, 0x0411a004 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0007001f },
-   { 0x00800031, 0x2ac01d29, 0x008d0e60, 0x0418a004 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
-   { 0x00800031, 0x2bc01d29, 0x008d0e60, 0x0411a004 },
-   { 0x00800040, 0x2c004629, 0x00b109c0, 0x00b10a00 },
-   { 0x00800040, 0x2c204629, 0x00b10a00, 0x00b10a40 },
-   { 0x00800040, 0x2c404629, 0x00b10a40, 0x00b10a80 },
-   { 0x00800040, 0x2c604629, 0x00b10a80, 0x00b10ac0 },
-   { 0x00800040, 0x2c804629, 0x00b10ac0, 0x00b10b00 },
-   { 0x00800040, 0x2ca04629, 0x00b10b00, 0x00b10b40 },
-   { 0x00800040, 0x2cc04629, 0x00b10b40, 0x00b10b80 },
-   { 0x00800040, 0x2ce04629, 0x00b10b80, 0x00b10bc0 },
-   { 0x00800040, 0x2c004529, 0x00b10c00, 0x00b109c1 },
-   { 0x00800040, 0x2c204529, 0x00b10c20, 0x00b10a01 },
-   { 0x00800040, 0x2c404529, 0x00b10c40, 0x00b10a41 },
-   { 0x00800040, 0x2c604529, 0x00b10c60, 0x00b10a81 },
-   { 0x00800040, 0x2c804529, 0x00b10c80, 0x00b10ac1 },
-   { 0x00800040, 0x2ca04529, 0x00b10ca0, 0x00b10b01 },
-   { 0x00800040, 0x2cc04529, 0x00b10cc0, 0x00b10b41 },
-   { 0x00800040, 0x2ce04529, 0x00b10ce0, 0x00b10b81 },
-   { 0x00800040, 0x2c004529, 0x00b10c00, 0x00b10a01 },
-   { 0x00800040, 0x2c204529, 0x00b10c20, 0x00b10a41 },
-   { 0x00800040, 0x2c404529, 0x00b10c40, 0x00b10a81 },
-   { 0x00800040, 0x2c604529, 0x00b10c60, 0x00b10ac1 },
-   { 0x00800040, 0x2c804529, 0x00b10c80, 0x00b10b01 },
-   { 0x00800040, 0x2ca04529, 0x00b10ca0, 0x00b10b41 },
-   { 0x00800040, 0x2cc04529, 0x00b10cc0, 0x00b10b81 },
-   { 0x00800040, 0x2ce04529, 0x00b10ce0, 0x00b10bc1 },
-   { 0x00800008, 0x2c002d29, 0x00b10c00, 0x00020002 },
-   { 0x00800008, 0x2c202d29, 0x00b10c20, 0x00020002 },
-   { 0x00800008, 0x2c402d29, 0x00b10c40, 0x00020002 },
-   { 0x00800008, 0x2c602d29, 0x00b10c60, 0x00020002 },
-   { 0x00800008, 0x2c802d29, 0x00b10c80, 0x00020002 },
-   { 0x00800008, 0x2ca02d29, 0x00b10ca0, 0x00020002 },
-   { 0x00800008, 0x2cc02d29, 0x00b10cc0, 0x00020002 },
-   { 0x00800008, 0x2ce02d29, 0x00b10ce0, 0x00020002 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000040 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
-   { 0x00800031, 0x29c01d29, 0x008d0e60, 0x0411a004 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a001d29, 0x008d0e60, 0x0411a004 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a401d29, 0x008d0e60, 0x0411a004 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a801d29, 0x008d0e60, 0x0411a004 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0007001f },
-   { 0x00800031, 0x2ac01d29, 0x008d0e60, 0x0418a004 },
-   { 0x80800042, 0x2c004629, 0x00b109c0, 0x00b109c1 },
-   { 0x80800042, 0x2c204629, 0x00b10a00, 0x00b10a01 },
-   { 0x80800042, 0x2c404629, 0x00b10a40, 0x00b10a41 },
-   { 0x80800042, 0x2c604629, 0x00b10a80, 0x00b10a81 },
-   { 0x80800042, 0x2c804629, 0x00b10ac0, 0x00b10ac1 },
-   { 0x80800042, 0x2ca04629, 0x00b10b00, 0x00b10b01 },
-   { 0x80800042, 0x2cc04629, 0x00b10b40, 0x00b10b41 },
-   { 0x80800042, 0x2ce04629, 0x00b10b80, 0x00b10b81 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x0000002c },
-   { 0x01000005, 0x20002d3c, 0x00210038, 0x00010001 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000017 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
-   { 0x00800031, 0x29c01d29, 0x008d0e60, 0x0411a004 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a001d29, 0x008d0e60, 0x0411a004 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a401d29, 0x008d0e60, 0x0411a004 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a801d29, 0x008d0e60, 0x0411a004 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0007001f },
-   { 0x00800031, 0x2ac01d29, 0x008d0e60, 0x0418a004 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
-   { 0x00800031, 0x2bc01d29, 0x008d0e60, 0x0411a004 },
-   { 0x80800042, 0x2c004629, 0x00b109c0, 0x00b10a00 },
-   { 0x80800042, 0x2c204629, 0x00b10a00, 0x00b10a40 },
-   { 0x80800042, 0x2c404629, 0x00b10a40, 0x00b10a80 },
-   { 0x80800042, 0x2c604629, 0x00b10a80, 0x00b10ac0 },
-   { 0x80800042, 0x2c804629, 0x00b10ac0, 0x00b10b00 },
-   { 0x80800042, 0x2ca04629, 0x00b10b00, 0x00b10b40 },
-   { 0x80800042, 0x2cc04629, 0x00b10b40, 0x00b10b80 },
-   { 0x80800042, 0x2ce04629, 0x00b10b80, 0x00b10bc0 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000013 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
-   { 0x00800031, 0x29c01d29, 0x008d0e60, 0x0411a004 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a001d29, 0x008d0e60, 0x0411a004 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a401d29, 0x008d0e60, 0x0411a004 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a801d29, 0x008d0e60, 0x0411a004 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0007001f },
-   { 0x00800031, 0x2ac01d29, 0x008d0e60, 0x0418a004 },
-   { 0x00800001, 0x2c000229, 0x00b109c0, 0x00000000 },
-   { 0x00800001, 0x2c200229, 0x00b10a00, 0x00000000 },
-   { 0x00800001, 0x2c400229, 0x00b10a40, 0x00000000 },
-   { 0x00800001, 0x2c600229, 0x00b10a80, 0x00000000 },
-   { 0x00800001, 0x2c800229, 0x00b10ac0, 0x00000000 },
-   { 0x00800001, 0x2ca00229, 0x00b10b00, 0x00000000 },
-   { 0x00800001, 0x2cc00229, 0x00b10b40, 0x00000000 },
-   { 0x00800001, 0x2ce00229, 0x00b10b80, 0x00000000 },
-   { 0x00600001, 0x26a00021, 0x008d0c00, 0x00000000 },
-   { 0x00600001, 0x26e00021, 0x008d0c20, 0x00000000 },
-   { 0x00600001, 0x27200021, 0x008d0c40, 0x00000000 },
-   { 0x00600001, 0x27600021, 0x008d0c60, 0x00000000 },
-   { 0x00600001, 0x27a00021, 0x008d0c80, 0x00000000 },
-   { 0x00600001, 0x27e00021, 0x008d0ca0, 0x00000000 },
-   { 0x00600001, 0x28200021, 0x008d0cc0, 0x00000000 },
-   { 0x00600001, 0x28600021, 0x008d0ce0, 0x00000000 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0007000f },
-   { 0x0020000c, 0x2e6e3dad, 0x0045002e, 0x00020002 },
-   { 0x0020000c, 0x2e601ca5, 0x00450e80, 0x00000001 },
-   { 0x00200040, 0x2e6034a5, 0x00450e60, 0x00450e6e },
-   { 0x00000005, 0x2e640c21, 0x00210e64, 0xfffffffe },
-   { 0x02000005, 0x20002e3c, 0x0021003f, 0x00010001 },
-   { 0x00010040, 0x2e640c21, 0x00210e64, 0x00000001 },
-   { 0x01000005, 0x20002d3c, 0x0021002e, 0x00020002 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000036 },
-   { 0x01000005, 0x20002d3c, 0x00210030, 0x00020002 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000028 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0007000f },
-   { 0x00800031, 0x2ac01d29, 0x00ad0e60, 0x0414a005 },
-   { 0x00800031, 0x2b601d29, 0x00ad0e60, 0x0414a006 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0001000f },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 },
-   { 0x00800031, 0x2b401d29, 0x00ad0e60, 0x0411a005 },
-   { 0x00800031, 0x2be01d29, 0x00ad0e60, 0x0411a006 },
-   { 0x00800040, 0x29c04629, 0x00ad0ac0, 0x00ad0ae0 },
-   { 0x00800040, 0x29e04629, 0x00ad0ae0, 0x00ad0b00 },
-   { 0x00800040, 0x2a004629, 0x00ad0b00, 0x00ad0b20 },
-   { 0x00800040, 0x2a204629, 0x00ad0b20, 0x00ad0b40 },
-   { 0x00800040, 0x29c04529, 0x00ad09c0, 0x00ad0ac1 },
-   { 0x00800040, 0x29e04529, 0x00ad09e0, 0x00ad0ae1 },
-   { 0x00800040, 0x2a004529, 0x00ad0a00, 0x00ad0b01 },
-   { 0x00800040, 0x2a204529, 0x00ad0a20, 0x00ad0b21 },
-   { 0x00800040, 0x29c04529, 0x00ad09c0, 0x00ad0ae1 },
-   { 0x00800040, 0x29e04529, 0x00ad09e0, 0x00ad0b01 },
-   { 0x00800040, 0x2a004529, 0x00ad0a00, 0x00ad0b21 },
-   { 0x00800040, 0x2a204529, 0x00ad0a20, 0x00ad0b41 },
-   { 0x00800040, 0x2a404629, 0x00ad0b60, 0x00ad0b80 },
-   { 0x00800040, 0x2a604629, 0x00ad0b80, 0x00ad0ba0 },
-   { 0x00800040, 0x2a804629, 0x00ad0ba0, 0x00ad0bc0 },
-   { 0x00800040, 0x2aa04629, 0x00ad0bc0, 0x00ad0be0 },
-   { 0x00800040, 0x2a404529, 0x00ad0a40, 0x00ad0b61 },
-   { 0x00800040, 0x2a604529, 0x00ad0a60, 0x00ad0b81 },
-   { 0x00800040, 0x2a804529, 0x00ad0a80, 0x00ad0ba1 },
-   { 0x00800040, 0x2aa04529, 0x00ad0aa0, 0x00ad0bc1 },
-   { 0x00800040, 0x2a404529, 0x00ad0a40, 0x00ad0b81 },
-   { 0x00800040, 0x2a604529, 0x00ad0a60, 0x00ad0ba1 },
-   { 0x00800040, 0x2a804529, 0x00ad0a80, 0x00ad0bc1 },
-   { 0x00800040, 0x2aa04529, 0x00ad0aa0, 0x00ad0be1 },
-   { 0x80800008, 0x29c02d29, 0x00b109c0, 0x00020002 },
-   { 0x80800008, 0x29e02d29, 0x00b109e0, 0x00020002 },
-   { 0x80800008, 0x2a002d29, 0x00b10a00, 0x00020002 },
-   { 0x80800008, 0x2a202d29, 0x00b10a20, 0x00020002 },
-   { 0x80800008, 0x2a402d29, 0x00b10a40, 0x00020002 },
-   { 0x80800008, 0x2a602d29, 0x00b10a60, 0x00020002 },
-   { 0x80800008, 0x2a802d29, 0x00b10a80, 0x00020002 },
-   { 0x80800008, 0x2aa02d29, 0x00b10aa0, 0x00020002 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000028 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0007000f },
-   { 0x00800031, 0x2ac01d29, 0x00ad0e60, 0x0414a005 },
-   { 0x00800031, 0x2b601d29, 0x00ad0e60, 0x0414a006 },
-   { 0x80800042, 0x29c04629, 0x00ad0ac0, 0x00ad0ac1 },
-   { 0x80800042, 0x29e04629, 0x00ad0ae0, 0x00ad0ae1 },
-   { 0x80800042, 0x2a004629, 0x00ad0b00, 0x00ad0b01 },
-   { 0x80800042, 0x2a204629, 0x00ad0b20, 0x00ad0b21 },
-   { 0x80800042, 0x2a404629, 0x00ad0b60, 0x00ad0b61 },
-   { 0x80800042, 0x2a604629, 0x00ad0b80, 0x00ad0b81 },
-   { 0x80800042, 0x2a804629, 0x00ad0ba0, 0x00ad0ba1 },
-   { 0x80800042, 0x2aa04629, 0x00ad0bc0, 0x00ad0bc1 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x0000001c },
-   { 0x01000005, 0x20002d3c, 0x00210030, 0x00020002 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x0000000f },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0007000f },
-   { 0x00800031, 0x2ac01d29, 0x00ad0e60, 0x0414a005 },
-   { 0x00800031, 0x2b601d29, 0x00ad0e60, 0x0414a006 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0000000f },
-   { 0x00800031, 0x2b401d29, 0x00ad0e60, 0x0411a005 },
-   { 0x00800031, 0x2be01d29, 0x00ad0e60, 0x0411a006 },
-   { 0x80800042, 0x29c04629, 0x00ad0ac0, 0x00ad0ae0 },
-   { 0x80800042, 0x29e04629, 0x00ad0ae0, 0x00ad0b00 },
-   { 0x80800042, 0x2a004629, 0x00ad0b00, 0x00ad0b20 },
-   { 0x80800042, 0x2a204629, 0x00ad0b20, 0x00ad0b40 },
-   { 0x80800042, 0x2a404629, 0x00ad0b60, 0x00ad0b80 },
-   { 0x80800042, 0x2a604629, 0x00ad0b80, 0x00ad0ba0 },
-   { 0x80800042, 0x2a804629, 0x00ad0ba0, 0x00ad0bc0 },
-   { 0x80800042, 0x2aa04629, 0x00ad0bc0, 0x00ad0be0 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x0000000b },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0007000f },
-   { 0x00800031, 0x2ac01d29, 0x00ad0e60, 0x0414a005 },
-   { 0x00800031, 0x2b601d29, 0x00ad0e60, 0x0414a006 },
-   { 0x00800001, 0x29c00229, 0x00ad0ac0, 0x00000000 },
-   { 0x00800001, 0x29e00229, 0x00ad0ae0, 0x00000000 },
-   { 0x00800001, 0x2a000229, 0x00ad0b00, 0x00000000 },
-   { 0x00800001, 0x2a200229, 0x00ad0b20, 0x00000000 },
-   { 0x00800001, 0x2a400229, 0x00ad0b60, 0x00000000 },
-   { 0x00800001, 0x2a600229, 0x00ad0b80, 0x00000000 },
-   { 0x00800001, 0x2a800229, 0x00ad0ba0, 0x00000000 },
-   { 0x00800001, 0x2aa00229, 0x00ad0bc0, 0x00000000 },
-   { 0x00600001, 0x28800129, 0x008d09c0, 0x00000000 },
-   { 0x00600001, 0x28a00129, 0x008d09e0, 0x00000000 },
-   { 0x00600001, 0x28c00129, 0x008d0a00, 0x00000000 },
-   { 0x00600001, 0x28e00129, 0x008d0a20, 0x00000000 },
-   { 0x00600001, 0x29000129, 0x008d0a40, 0x00000000 },
-   { 0x00600001, 0x29200129, 0x008d0a60, 0x00000000 },
-   { 0x00600001, 0x29400129, 0x008d0a80, 0x00000000 },
-   { 0x00600001, 0x29600129, 0x008d0aa0, 0x00000000 },
-   { 0x0020000c, 0x2e6e3dad, 0x00450036, 0x00020002 },
-   { 0x0020000c, 0x2e601ca5, 0x00450e80, 0x00000001 },
-   { 0x00200040, 0x2e6034a5, 0x00450e60, 0x00450e6e },
-   { 0x00000005, 0x2e640c21, 0x00210e64, 0xfffffffe },
-   { 0x02000005, 0x20002e3c, 0x0021003f, 0x00040004 },
-   { 0x00010040, 0x2e640c21, 0x00210e64, 0x00000001 },
-   { 0x01000005, 0x20002d3c, 0x00210038, 0x00020002 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000036 },
-   { 0x01000005, 0x20002d3c, 0x0021003a, 0x00020002 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000028 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0007000f },
-   { 0x00800031, 0x2ac01d29, 0x00ad0e60, 0x0414a005 },
-   { 0x00800031, 0x2b601d29, 0x00ad0e60, 0x0414a006 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0001000f },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 },
-   { 0x00800031, 0x2b401d29, 0x00ad0e60, 0x0411a005 },
-   { 0x00800031, 0x2be01d29, 0x00ad0e60, 0x0411a006 },
-   { 0x00800040, 0x29c04629, 0x00ad0ac0, 0x00ad0ae0 },
-   { 0x00800040, 0x29e04629, 0x00ad0ae0, 0x00ad0b00 },
-   { 0x00800040, 0x2a004629, 0x00ad0b00, 0x00ad0b20 },
-   { 0x00800040, 0x2a204629, 0x00ad0b20, 0x00ad0b40 },
-   { 0x00800040, 0x29c04529, 0x00ad09c0, 0x00ad0ac1 },
-   { 0x00800040, 0x29e04529, 0x00ad09e0, 0x00ad0ae1 },
-   { 0x00800040, 0x2a004529, 0x00ad0a00, 0x00ad0b01 },
-   { 0x00800040, 0x2a204529, 0x00ad0a20, 0x00ad0b21 },
-   { 0x00800040, 0x29c04529, 0x00ad09c0, 0x00ad0ae1 },
-   { 0x00800040, 0x29e04529, 0x00ad09e0, 0x00ad0b01 },
-   { 0x00800040, 0x2a004529, 0x00ad0a00, 0x00ad0b21 },
-   { 0x00800040, 0x2a204529, 0x00ad0a20, 0x00ad0b41 },
-   { 0x00800040, 0x2a404629, 0x00ad0b60, 0x00ad0b80 },
-   { 0x00800040, 0x2a604629, 0x00ad0b80, 0x00ad0ba0 },
-   { 0x00800040, 0x2a804629, 0x00ad0ba0, 0x00ad0bc0 },
-   { 0x00800040, 0x2aa04629, 0x00ad0bc0, 0x00ad0be0 },
-   { 0x00800040, 0x2a404529, 0x00ad0a40, 0x00ad0b61 },
-   { 0x00800040, 0x2a604529, 0x00ad0a60, 0x00ad0b81 },
-   { 0x00800040, 0x2a804529, 0x00ad0a80, 0x00ad0ba1 },
-   { 0x00800040, 0x2aa04529, 0x00ad0aa0, 0x00ad0bc1 },
-   { 0x00800040, 0x2a404529, 0x00ad0a40, 0x00ad0b81 },
-   { 0x00800040, 0x2a604529, 0x00ad0a60, 0x00ad0ba1 },
-   { 0x00800040, 0x2a804529, 0x00ad0a80, 0x00ad0bc1 },
-   { 0x00800040, 0x2aa04529, 0x00ad0aa0, 0x00ad0be1 },
-   { 0x80800008, 0x29c02d29, 0x00b109c0, 0x00020002 },
-   { 0x80800008, 0x29e02d29, 0x00b109e0, 0x00020002 },
-   { 0x80800008, 0x2a002d29, 0x00b10a00, 0x00020002 },
-   { 0x80800008, 0x2a202d29, 0x00b10a20, 0x00020002 },
-   { 0x80800008, 0x2a402d29, 0x00b10a40, 0x00020002 },
-   { 0x80800008, 0x2a602d29, 0x00b10a60, 0x00020002 },
-   { 0x80800008, 0x2a802d29, 0x00b10a80, 0x00020002 },
-   { 0x80800008, 0x2aa02d29, 0x00b10aa0, 0x00020002 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000028 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0007000f },
-   { 0x00800031, 0x2ac01d29, 0x00ad0e60, 0x0414a005 },
-   { 0x00800031, 0x2b601d29, 0x00ad0e60, 0x0414a006 },
-   { 0x80800042, 0x29c04629, 0x00ad0ac0, 0x00ad0ac1 },
-   { 0x80800042, 0x29e04629, 0x00ad0ae0, 0x00ad0ae1 },
-   { 0x80800042, 0x2a004629, 0x00ad0b00, 0x00ad0b01 },
-   { 0x80800042, 0x2a204629, 0x00ad0b20, 0x00ad0b21 },
-   { 0x80800042, 0x2a404629, 0x00ad0b60, 0x00ad0b61 },
-   { 0x80800042, 0x2a604629, 0x00ad0b80, 0x00ad0b81 },
-   { 0x80800042, 0x2a804629, 0x00ad0ba0, 0x00ad0ba1 },
-   { 0x80800042, 0x2aa04629, 0x00ad0bc0, 0x00ad0bc1 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x0000001c },
-   { 0x01000005, 0x20002d3c, 0x0021003a, 0x00020002 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x0000000f },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0007000f },
-   { 0x00800031, 0x2ac01d29, 0x00ad0e60, 0x0414a005 },
-   { 0x00800031, 0x2b601d29, 0x00ad0e60, 0x0414a006 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0000000f },
-   { 0x00800031, 0x2b401d29, 0x00ad0e60, 0x0411a005 },
-   { 0x00800031, 0x2be01d29, 0x00ad0e60, 0x0411a006 },
-   { 0x80800042, 0x29c04629, 0x00ad0ac0, 0x00ad0ae0 },
-   { 0x80800042, 0x29e04629, 0x00ad0ae0, 0x00ad0b00 },
-   { 0x80800042, 0x2a004629, 0x00ad0b00, 0x00ad0b20 },
-   { 0x80800042, 0x2a204629, 0x00ad0b20, 0x00ad0b40 },
-   { 0x80800042, 0x2a404629, 0x00ad0b60, 0x00ad0b80 },
-   { 0x80800042, 0x2a604629, 0x00ad0b80, 0x00ad0ba0 },
-   { 0x80800042, 0x2a804629, 0x00ad0ba0, 0x00ad0bc0 },
-   { 0x80800042, 0x2aa04629, 0x00ad0bc0, 0x00ad0be0 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x0000000b },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0007000f },
-   { 0x00800031, 0x2ac01d29, 0x00ad0e60, 0x0414a005 },
-   { 0x00800031, 0x2b601d29, 0x00ad0e60, 0x0414a006 },
-   { 0x00800001, 0x29c00229, 0x00ad0ac0, 0x00000000 },
-   { 0x00800001, 0x29e00229, 0x00ad0ae0, 0x00000000 },
-   { 0x00800001, 0x2a000229, 0x00ad0b00, 0x00000000 },
-   { 0x00800001, 0x2a200229, 0x00ad0b20, 0x00000000 },
-   { 0x00800001, 0x2a400229, 0x00ad0b60, 0x00000000 },
-   { 0x00800001, 0x2a600229, 0x00ad0b80, 0x00000000 },
-   { 0x00800001, 0x2a800229, 0x00ad0ba0, 0x00000000 },
-   { 0x00800001, 0x2aa00229, 0x00ad0bc0, 0x00000000 },
-   { 0x00600001, 0x28900129, 0x008d09c0, 0x00000000 },
-   { 0x00600001, 0x28b00129, 0x008d09e0, 0x00000000 },
-   { 0x00600001, 0x28d00129, 0x008d0a00, 0x00000000 },
-   { 0x00600001, 0x28f00129, 0x008d0a20, 0x00000000 },
-   { 0x00600001, 0x29100129, 0x008d0a40, 0x00000000 },
-   { 0x00600001, 0x29300129, 0x008d0a60, 0x00000000 },
-   { 0x00600001, 0x29500129, 0x008d0a80, 0x00000000 },
-   { 0x00600001, 0x29700129, 0x008d0aa0, 0x00000000 },
-   { 0x00600001, 0x20200021, 0x008d0e80, 0x00000000 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0007001f },
-   { 0x00000001, 0x20280061, 0x00000000, 0x0007000f },
-   { 0x0020000c, 0x2e6e3dad, 0x00450032, 0x00010001 },
-   { 0x00200040, 0x2e6034a5, 0x00450e80, 0x00450e6e },
-   { 0x00000005, 0x2e640c21, 0x00210e64, 0xfffffffe },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
-   { 0x02000005, 0x20002e3c, 0x0021003f, 0x00020002 },
-   { 0x00010040, 0x2e641ca5, 0x00210e64, 0x00000001 },
-   { 0x01000005, 0x20002d3c, 0x00210032, 0x00010001 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000045 },
-   { 0x01000005, 0x20002d3c, 0x00210034, 0x00010001 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x0000002f },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
-   { 0x00800031, 0x29c01d29, 0x008d0e60, 0x0411a007 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a001d29, 0x008d0e60, 0x0411a007 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a401d29, 0x008d0e60, 0x0411a007 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a801d29, 0x008d0e60, 0x0411a007 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0007001f },
-   { 0x00800031, 0x2ac01d29, 0x008d0e60, 0x0418a007 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
-   { 0x00800031, 0x2bc01d29, 0x008d0e60, 0x0411a007 },
-   { 0x00800040, 0x2c004629, 0x00b109c0, 0x00b10a00 },
-   { 0x00800040, 0x2c204629, 0x00b10a00, 0x00b10a40 },
-   { 0x00800040, 0x2c404629, 0x00b10a40, 0x00b10a80 },
-   { 0x00800040, 0x2c604629, 0x00b10a80, 0x00b10ac0 },
-   { 0x00800040, 0x2c804629, 0x00b10ac0, 0x00b10b00 },
-   { 0x00800040, 0x2ca04629, 0x00b10b00, 0x00b10b40 },
-   { 0x00800040, 0x2cc04629, 0x00b10b40, 0x00b10b80 },
-   { 0x00800040, 0x2ce04629, 0x00b10b80, 0x00b10bc0 },
-   { 0x00800040, 0x2c004529, 0x00b10c00, 0x00b109c1 },
-   { 0x00800040, 0x2c204529, 0x00b10c20, 0x00b10a01 },
-   { 0x00800040, 0x2c404529, 0x00b10c40, 0x00b10a41 },
-   { 0x00800040, 0x2c604529, 0x00b10c60, 0x00b10a81 },
-   { 0x00800040, 0x2c804529, 0x00b10c80, 0x00b10ac1 },
-   { 0x00800040, 0x2ca04529, 0x00b10ca0, 0x00b10b01 },
-   { 0x00800040, 0x2cc04529, 0x00b10cc0, 0x00b10b41 },
-   { 0x00800040, 0x2ce04529, 0x00b10ce0, 0x00b10b81 },
-   { 0x00800040, 0x2c004529, 0x00b10c00, 0x00b10a01 },
-   { 0x00800040, 0x2c204529, 0x00b10c20, 0x00b10a41 },
-   { 0x00800040, 0x2c404529, 0x00b10c40, 0x00b10a81 },
-   { 0x00800040, 0x2c604529, 0x00b10c60, 0x00b10ac1 },
-   { 0x00800040, 0x2c804529, 0x00b10c80, 0x00b10b01 },
-   { 0x00800040, 0x2ca04529, 0x00b10ca0, 0x00b10b41 },
-   { 0x00800040, 0x2cc04529, 0x00b10cc0, 0x00b10b81 },
-   { 0x00800040, 0x2ce04529, 0x00b10ce0, 0x00b10bc1 },
-   { 0x00800008, 0x2c002d29, 0x00b10c00, 0x00020002 },
-   { 0x00800008, 0x2c202d29, 0x00b10c20, 0x00020002 },
-   { 0x00800008, 0x2c402d29, 0x00b10c40, 0x00020002 },
-   { 0x00800008, 0x2c602d29, 0x00b10c60, 0x00020002 },
-   { 0x00800008, 0x2c802d29, 0x00b10c80, 0x00020002 },
-   { 0x00800008, 0x2ca02d29, 0x00b10ca0, 0x00020002 },
-   { 0x00800008, 0x2cc02d29, 0x00b10cc0, 0x00020002 },
-   { 0x00800008, 0x2ce02d29, 0x00b10ce0, 0x00020002 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000040 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
-   { 0x00800031, 0x29c01d29, 0x008d0e60, 0x0411a007 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a001d29, 0x008d0e60, 0x0411a007 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a401d29, 0x008d0e60, 0x0411a007 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a801d29, 0x008d0e60, 0x0411a007 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0007001f },
-   { 0x00800031, 0x2ac01d29, 0x008d0e60, 0x0418a007 },
-   { 0x80800042, 0x2c004629, 0x00b109c0, 0x00b109c1 },
-   { 0x80800042, 0x2c204629, 0x00b10a00, 0x00b10a01 },
-   { 0x80800042, 0x2c404629, 0x00b10a40, 0x00b10a41 },
-   { 0x80800042, 0x2c604629, 0x00b10a80, 0x00b10a81 },
-   { 0x80800042, 0x2c804629, 0x00b10ac0, 0x00b10ac1 },
-   { 0x80800042, 0x2ca04629, 0x00b10b00, 0x00b10b01 },
-   { 0x80800042, 0x2cc04629, 0x00b10b40, 0x00b10b41 },
-   { 0x80800042, 0x2ce04629, 0x00b10b80, 0x00b10b81 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x0000002c },
-   { 0x01000005, 0x20002d3c, 0x00210034, 0x00010001 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000017 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
-   { 0x00800031, 0x29c01d29, 0x008d0e60, 0x0411a007 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a001d29, 0x008d0e60, 0x0411a007 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a401d29, 0x008d0e60, 0x0411a007 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a801d29, 0x008d0e60, 0x0411a007 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0007001f },
-   { 0x00800031, 0x2ac01d29, 0x008d0e60, 0x0418a007 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
-   { 0x00800031, 0x2bc01d29, 0x008d0e60, 0x0411a007 },
-   { 0x80800042, 0x2c004629, 0x00b109c0, 0x00b10a00 },
-   { 0x80800042, 0x2c204629, 0x00b10a00, 0x00b10a40 },
-   { 0x80800042, 0x2c404629, 0x00b10a40, 0x00b10a80 },
-   { 0x80800042, 0x2c604629, 0x00b10a80, 0x00b10ac0 },
-   { 0x80800042, 0x2c804629, 0x00b10ac0, 0x00b10b00 },
-   { 0x80800042, 0x2ca04629, 0x00b10b00, 0x00b10b40 },
-   { 0x80800042, 0x2cc04629, 0x00b10b40, 0x00b10b80 },
-   { 0x80800042, 0x2ce04629, 0x00b10b80, 0x00b10bc0 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000013 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
-   { 0x00800031, 0x29c01d29, 0x008d0e60, 0x0411a007 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a001d29, 0x008d0e60, 0x0411a007 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a401d29, 0x008d0e60, 0x0411a007 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a801d29, 0x008d0e60, 0x0411a007 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0007001f },
-   { 0x00800031, 0x2ac01d29, 0x008d0e60, 0x0418a007 },
-   { 0x00800001, 0x2c000229, 0x00b109c0, 0x00000000 },
-   { 0x00800001, 0x2c200229, 0x00b10a00, 0x00000000 },
-   { 0x00800001, 0x2c400229, 0x00b10a40, 0x00000000 },
-   { 0x00800001, 0x2c600229, 0x00b10a80, 0x00000000 },
-   { 0x00800001, 0x2c800229, 0x00b10ac0, 0x00000000 },
-   { 0x00800001, 0x2ca00229, 0x00b10b00, 0x00000000 },
-   { 0x00800001, 0x2cc00229, 0x00b10b40, 0x00000000 },
-   { 0x00800001, 0x2ce00229, 0x00b10b80, 0x00000000 },
-   { 0x00600001, 0x23800021, 0x008d0c00, 0x00000000 },
-   { 0x00600001, 0x23c00021, 0x008d0c20, 0x00000000 },
-   { 0x00600001, 0x24000021, 0x008d0c40, 0x00000000 },
-   { 0x00600001, 0x24400021, 0x008d0c60, 0x00000000 },
-   { 0x00600001, 0x24800021, 0x008d0c80, 0x00000000 },
-   { 0x00600001, 0x24c00021, 0x008d0ca0, 0x00000000 },
-   { 0x00600001, 0x25000021, 0x008d0cc0, 0x00000000 },
-   { 0x00600001, 0x25400021, 0x008d0ce0, 0x00000000 },
-   { 0x0020000c, 0x2e6e3dad, 0x0045003a, 0x00010001 },
-   { 0x00200040, 0x2e6034a5, 0x00450e80, 0x00450e6e },
-   { 0x00000005, 0x2e640c21, 0x00210e64, 0xfffffffe },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
-   { 0x02000005, 0x20000c3c, 0x00210054, 0x00000008 },
-   { 0x00010040, 0x2e641ca5, 0x00210e64, 0x00000001 },
-   { 0x01000005, 0x20002d3c, 0x0021003a, 0x00010001 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000045 },
-   { 0x01000005, 0x20002d3c, 0x0021003c, 0x00010001 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x0000002f },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
-   { 0x00800031, 0x29c01d29, 0x008d0e60, 0x0411a007 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a001d29, 0x008d0e60, 0x0411a007 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a401d29, 0x008d0e60, 0x0411a007 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a801d29, 0x008d0e60, 0x0411a007 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0007001f },
-   { 0x00800031, 0x2ac01d29, 0x008d0e60, 0x0418a007 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
-   { 0x00800031, 0x2bc01d29, 0x008d0e60, 0x0411a007 },
-   { 0x00800040, 0x2c004629, 0x00b109c0, 0x00b10a00 },
-   { 0x00800040, 0x2c204629, 0x00b10a00, 0x00b10a40 },
-   { 0x00800040, 0x2c404629, 0x00b10a40, 0x00b10a80 },
-   { 0x00800040, 0x2c604629, 0x00b10a80, 0x00b10ac0 },
-   { 0x00800040, 0x2c804629, 0x00b10ac0, 0x00b10b00 },
-   { 0x00800040, 0x2ca04629, 0x00b10b00, 0x00b10b40 },
-   { 0x00800040, 0x2cc04629, 0x00b10b40, 0x00b10b80 },
-   { 0x00800040, 0x2ce04629, 0x00b10b80, 0x00b10bc0 },
-   { 0x00800040, 0x2c004529, 0x00b10c00, 0x00b109c1 },
-   { 0x00800040, 0x2c204529, 0x00b10c20, 0x00b10a01 },
-   { 0x00800040, 0x2c404529, 0x00b10c40, 0x00b10a41 },
-   { 0x00800040, 0x2c604529, 0x00b10c60, 0x00b10a81 },
-   { 0x00800040, 0x2c804529, 0x00b10c80, 0x00b10ac1 },
-   { 0x00800040, 0x2ca04529, 0x00b10ca0, 0x00b10b01 },
-   { 0x00800040, 0x2cc04529, 0x00b10cc0, 0x00b10b41 },
-   { 0x00800040, 0x2ce04529, 0x00b10ce0, 0x00b10b81 },
-   { 0x00800040, 0x2c004529, 0x00b10c00, 0x00b10a01 },
-   { 0x00800040, 0x2c204529, 0x00b10c20, 0x00b10a41 },
-   { 0x00800040, 0x2c404529, 0x00b10c40, 0x00b10a81 },
-   { 0x00800040, 0x2c604529, 0x00b10c60, 0x00b10ac1 },
-   { 0x00800040, 0x2c804529, 0x00b10c80, 0x00b10b01 },
-   { 0x00800040, 0x2ca04529, 0x00b10ca0, 0x00b10b41 },
-   { 0x00800040, 0x2cc04529, 0x00b10cc0, 0x00b10b81 },
-   { 0x00800040, 0x2ce04529, 0x00b10ce0, 0x00b10bc1 },
-   { 0x00800008, 0x2c002d29, 0x00b10c00, 0x00020002 },
-   { 0x00800008, 0x2c202d29, 0x00b10c20, 0x00020002 },
-   { 0x00800008, 0x2c402d29, 0x00b10c40, 0x00020002 },
-   { 0x00800008, 0x2c602d29, 0x00b10c60, 0x00020002 },
-   { 0x00800008, 0x2c802d29, 0x00b10c80, 0x00020002 },
-   { 0x00800008, 0x2ca02d29, 0x00b10ca0, 0x00020002 },
-   { 0x00800008, 0x2cc02d29, 0x00b10cc0, 0x00020002 },
-   { 0x00800008, 0x2ce02d29, 0x00b10ce0, 0x00020002 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000040 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
-   { 0x00800031, 0x29c01d29, 0x008d0e60, 0x0411a007 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a001d29, 0x008d0e60, 0x0411a007 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a401d29, 0x008d0e60, 0x0411a007 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a801d29, 0x008d0e60, 0x0411a007 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0007001f },
-   { 0x00800031, 0x2ac01d29, 0x008d0e60, 0x0418a007 },
-   { 0x80800042, 0x2c004629, 0x00b109c0, 0x00b109c1 },
-   { 0x80800042, 0x2c204629, 0x00b10a00, 0x00b10a01 },
-   { 0x80800042, 0x2c404629, 0x00b10a40, 0x00b10a41 },
-   { 0x80800042, 0x2c604629, 0x00b10a80, 0x00b10a81 },
-   { 0x80800042, 0x2c804629, 0x00b10ac0, 0x00b10ac1 },
-   { 0x80800042, 0x2ca04629, 0x00b10b00, 0x00b10b01 },
-   { 0x80800042, 0x2cc04629, 0x00b10b40, 0x00b10b41 },
-   { 0x80800042, 0x2ce04629, 0x00b10b80, 0x00b10b81 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x0000002c },
-   { 0x01000005, 0x20002d3c, 0x0021003c, 0x00010001 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000017 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
-   { 0x00800031, 0x29c01d29, 0x008d0e60, 0x0411a007 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a001d29, 0x008d0e60, 0x0411a007 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a401d29, 0x008d0e60, 0x0411a007 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a801d29, 0x008d0e60, 0x0411a007 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0007001f },
-   { 0x00800031, 0x2ac01d29, 0x008d0e60, 0x0418a007 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
-   { 0x00800031, 0x2bc01d29, 0x008d0e60, 0x0411a007 },
-   { 0x80800042, 0x2c004629, 0x00b109c0, 0x00b10a00 },
-   { 0x80800042, 0x2c204629, 0x00b10a00, 0x00b10a40 },
-   { 0x80800042, 0x2c404629, 0x00b10a40, 0x00b10a80 },
-   { 0x80800042, 0x2c604629, 0x00b10a80, 0x00b10ac0 },
-   { 0x80800042, 0x2c804629, 0x00b10ac0, 0x00b10b00 },
-   { 0x80800042, 0x2ca04629, 0x00b10b00, 0x00b10b40 },
-   { 0x80800042, 0x2cc04629, 0x00b10b40, 0x00b10b80 },
-   { 0x80800042, 0x2ce04629, 0x00b10b80, 0x00b10bc0 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000013 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
-   { 0x00800031, 0x29c01d29, 0x008d0e60, 0x0411a007 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a001d29, 0x008d0e60, 0x0411a007 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a401d29, 0x008d0e60, 0x0411a007 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a801d29, 0x008d0e60, 0x0411a007 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0007001f },
-   { 0x00800031, 0x2ac01d29, 0x008d0e60, 0x0418a007 },
-   { 0x00800001, 0x2c000229, 0x00b109c0, 0x00000000 },
-   { 0x00800001, 0x2c200229, 0x00b10a00, 0x00000000 },
-   { 0x00800001, 0x2c400229, 0x00b10a40, 0x00000000 },
-   { 0x00800001, 0x2c600229, 0x00b10a80, 0x00000000 },
-   { 0x00800001, 0x2c800229, 0x00b10ac0, 0x00000000 },
-   { 0x00800001, 0x2ca00229, 0x00b10b00, 0x00000000 },
-   { 0x00800001, 0x2cc00229, 0x00b10b40, 0x00000000 },
-   { 0x00800001, 0x2ce00229, 0x00b10b80, 0x00000000 },
-   { 0x80800042, 0x23802529, 0x00b10680, 0x00b10380 },
-   { 0x80800042, 0x23a02529, 0x00b106a0, 0x00b10c00 },
-   { 0x80800042, 0x23c02529, 0x00b106c0, 0x00b103c0 },
-   { 0x80800042, 0x23e02529, 0x00b106e0, 0x00b10c20 },
-   { 0x80800042, 0x24002529, 0x00b10700, 0x00b10400 },
-   { 0x80800042, 0x24202529, 0x00b10720, 0x00b10c40 },
-   { 0x80800042, 0x24402529, 0x00b10740, 0x00b10440 },
-   { 0x80800042, 0x24602529, 0x00b10760, 0x00b10c60 },
-   { 0x80800042, 0x24802529, 0x00b10780, 0x00b10480 },
-   { 0x80800042, 0x24a02529, 0x00b107a0, 0x00b10c80 },
-   { 0x80800042, 0x24c02529, 0x00b107c0, 0x00b104c0 },
-   { 0x80800042, 0x24e02529, 0x00b107e0, 0x00b10ca0 },
-   { 0x80800042, 0x25002529, 0x00b10800, 0x00b10500 },
-   { 0x80800042, 0x25202529, 0x00b10820, 0x00b10cc0 },
-   { 0x80800042, 0x25402529, 0x00b10840, 0x00b10540 },
-   { 0x80800042, 0x25602529, 0x00b10860, 0x00b10ce0 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0007000f },
-   { 0x0020000c, 0x2e6e3dad, 0x00450032, 0x00020002 },
-   { 0x0020000c, 0x2e601ca5, 0x00450e80, 0x00000001 },
-   { 0x00200040, 0x2e6034a5, 0x00450e60, 0x00450e6e },
-   { 0x00000005, 0x2e640c21, 0x00210e64, 0xfffffffe },
-   { 0x02000005, 0x20002e3c, 0x0021003f, 0x00020002 },
-   { 0x00010040, 0x2e640c21, 0x00210e64, 0x00000001 },
-   { 0x01000005, 0x20002d3c, 0x00210032, 0x00020002 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000036 },
-   { 0x01000005, 0x20002d3c, 0x00210034, 0x00020002 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000028 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0007000f },
-   { 0x00800031, 0x2ac01d29, 0x00ad0e60, 0x0414a008 },
-   { 0x00800031, 0x2b601d29, 0x00ad0e60, 0x0414a009 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0001000f },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 },
-   { 0x00800031, 0x2b401d29, 0x00ad0e60, 0x0411a008 },
-   { 0x00800031, 0x2be01d29, 0x00ad0e60, 0x0411a009 },
-   { 0x00800040, 0x29c04629, 0x00ad0ac0, 0x00ad0ae0 },
-   { 0x00800040, 0x29e04629, 0x00ad0ae0, 0x00ad0b00 },
-   { 0x00800040, 0x2a004629, 0x00ad0b00, 0x00ad0b20 },
-   { 0x00800040, 0x2a204629, 0x00ad0b20, 0x00ad0b40 },
-   { 0x00800040, 0x29c04529, 0x00ad09c0, 0x00ad0ac1 },
-   { 0x00800040, 0x29e04529, 0x00ad09e0, 0x00ad0ae1 },
-   { 0x00800040, 0x2a004529, 0x00ad0a00, 0x00ad0b01 },
-   { 0x00800040, 0x2a204529, 0x00ad0a20, 0x00ad0b21 },
-   { 0x00800040, 0x29c04529, 0x00ad09c0, 0x00ad0ae1 },
-   { 0x00800040, 0x29e04529, 0x00ad09e0, 0x00ad0b01 },
-   { 0x00800040, 0x2a004529, 0x00ad0a00, 0x00ad0b21 },
-   { 0x00800040, 0x2a204529, 0x00ad0a20, 0x00ad0b41 },
-   { 0x00800040, 0x2a404629, 0x00ad0b60, 0x00ad0b80 },
-   { 0x00800040, 0x2a604629, 0x00ad0b80, 0x00ad0ba0 },
-   { 0x00800040, 0x2a804629, 0x00ad0ba0, 0x00ad0bc0 },
-   { 0x00800040, 0x2aa04629, 0x00ad0bc0, 0x00ad0be0 },
-   { 0x00800040, 0x2a404529, 0x00ad0a40, 0x00ad0b61 },
-   { 0x00800040, 0x2a604529, 0x00ad0a60, 0x00ad0b81 },
-   { 0x00800040, 0x2a804529, 0x00ad0a80, 0x00ad0ba1 },
-   { 0x00800040, 0x2aa04529, 0x00ad0aa0, 0x00ad0bc1 },
-   { 0x00800040, 0x2a404529, 0x00ad0a40, 0x00ad0b81 },
-   { 0x00800040, 0x2a604529, 0x00ad0a60, 0x00ad0ba1 },
-   { 0x00800040, 0x2a804529, 0x00ad0a80, 0x00ad0bc1 },
-   { 0x00800040, 0x2aa04529, 0x00ad0aa0, 0x00ad0be1 },
-   { 0x80800008, 0x29c02d29, 0x00b109c0, 0x00020002 },
-   { 0x80800008, 0x29e02d29, 0x00b109e0, 0x00020002 },
-   { 0x80800008, 0x2a002d29, 0x00b10a00, 0x00020002 },
-   { 0x80800008, 0x2a202d29, 0x00b10a20, 0x00020002 },
-   { 0x80800008, 0x2a402d29, 0x00b10a40, 0x00020002 },
-   { 0x80800008, 0x2a602d29, 0x00b10a60, 0x00020002 },
-   { 0x80800008, 0x2a802d29, 0x00b10a80, 0x00020002 },
-   { 0x80800008, 0x2aa02d29, 0x00b10aa0, 0x00020002 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000028 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0007000f },
-   { 0x00800031, 0x2ac01d29, 0x00ad0e60, 0x0414a008 },
-   { 0x00800031, 0x2b601d29, 0x00ad0e60, 0x0414a009 },
-   { 0x80800042, 0x29c04629, 0x00ad0ac0, 0x00ad0ac1 },
-   { 0x80800042, 0x29e04629, 0x00ad0ae0, 0x00ad0ae1 },
-   { 0x80800042, 0x2a004629, 0x00ad0b00, 0x00ad0b01 },
-   { 0x80800042, 0x2a204629, 0x00ad0b20, 0x00ad0b21 },
-   { 0x80800042, 0x2a404629, 0x00ad0b60, 0x00ad0b61 },
-   { 0x80800042, 0x2a604629, 0x00ad0b80, 0x00ad0b81 },
-   { 0x80800042, 0x2a804629, 0x00ad0ba0, 0x00ad0ba1 },
-   { 0x80800042, 0x2aa04629, 0x00ad0bc0, 0x00ad0bc1 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x0000001c },
-   { 0x01000005, 0x20002d3c, 0x00210034, 0x00020002 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x0000000f },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0007000f },
-   { 0x00800031, 0x2ac01d29, 0x00ad0e60, 0x0414a008 },
-   { 0x00800031, 0x2b601d29, 0x00ad0e60, 0x0414a009 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0000000f },
-   { 0x00800031, 0x2b401d29, 0x00ad0e60, 0x0411a008 },
-   { 0x00800031, 0x2be01d29, 0x00ad0e60, 0x0411a009 },
-   { 0x80800042, 0x29c04629, 0x00ad0ac0, 0x00ad0ae0 },
-   { 0x80800042, 0x29e04629, 0x00ad0ae0, 0x00ad0b00 },
-   { 0x80800042, 0x2a004629, 0x00ad0b00, 0x00ad0b20 },
-   { 0x80800042, 0x2a204629, 0x00ad0b20, 0x00ad0b40 },
-   { 0x80800042, 0x2a404629, 0x00ad0b60, 0x00ad0b80 },
-   { 0x80800042, 0x2a604629, 0x00ad0b80, 0x00ad0ba0 },
-   { 0x80800042, 0x2a804629, 0x00ad0ba0, 0x00ad0bc0 },
-   { 0x80800042, 0x2aa04629, 0x00ad0bc0, 0x00ad0be0 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x0000000b },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0007000f },
-   { 0x00800031, 0x2ac01d29, 0x00ad0e60, 0x0414a008 },
-   { 0x00800031, 0x2b601d29, 0x00ad0e60, 0x0414a009 },
-   { 0x00800001, 0x29c00229, 0x00ad0ac0, 0x00000000 },
-   { 0x00800001, 0x29e00229, 0x00ad0ae0, 0x00000000 },
-   { 0x00800001, 0x2a000229, 0x00ad0b00, 0x00000000 },
-   { 0x00800001, 0x2a200229, 0x00ad0b20, 0x00000000 },
-   { 0x00800001, 0x2a400229, 0x00ad0b60, 0x00000000 },
-   { 0x00800001, 0x2a600229, 0x00ad0b80, 0x00000000 },
-   { 0x00800001, 0x2a800229, 0x00ad0ba0, 0x00000000 },
-   { 0x00800001, 0x2aa00229, 0x00ad0bc0, 0x00000000 },
-   { 0x00600001, 0x25800129, 0x008d09c0, 0x00000000 },
-   { 0x00600001, 0x25a00129, 0x008d09e0, 0x00000000 },
-   { 0x00600001, 0x25c00129, 0x008d0a00, 0x00000000 },
-   { 0x00600001, 0x25e00129, 0x008d0a20, 0x00000000 },
-   { 0x00600001, 0x26000129, 0x008d0a40, 0x00000000 },
-   { 0x00600001, 0x26200129, 0x008d0a60, 0x00000000 },
-   { 0x00600001, 0x26400129, 0x008d0a80, 0x00000000 },
-   { 0x00600001, 0x26600129, 0x008d0aa0, 0x00000000 },
-   { 0x0020000c, 0x2e6e3dad, 0x0045003a, 0x00020002 },
-   { 0x0020000c, 0x2e601ca5, 0x00450e80, 0x00000001 },
-   { 0x00200040, 0x2e6034a5, 0x00450e60, 0x00450e6e },
-   { 0x00000005, 0x2e640c21, 0x00210e64, 0xfffffffe },
-   { 0x02000005, 0x20002e3c, 0x0021003f, 0x00080008 },
-   { 0x00010040, 0x2e640c21, 0x00210e64, 0x00000001 },
-   { 0x01000005, 0x20002d3c, 0x0021003a, 0x00020002 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000036 },
-   { 0x01000005, 0x20002d3c, 0x0021003c, 0x00020002 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000028 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0007000f },
-   { 0x00800031, 0x2ac01d29, 0x00ad0e60, 0x0414a008 },
-   { 0x00800031, 0x2b601d29, 0x00ad0e60, 0x0414a009 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0001000f },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 },
-   { 0x00800031, 0x2b401d29, 0x00ad0e60, 0x0411a008 },
-   { 0x00800031, 0x2be01d29, 0x00ad0e60, 0x0411a009 },
-   { 0x00800040, 0x29c04629, 0x00ad0ac0, 0x00ad0ae0 },
-   { 0x00800040, 0x29e04629, 0x00ad0ae0, 0x00ad0b00 },
-   { 0x00800040, 0x2a004629, 0x00ad0b00, 0x00ad0b20 },
-   { 0x00800040, 0x2a204629, 0x00ad0b20, 0x00ad0b40 },
-   { 0x00800040, 0x29c04529, 0x00ad09c0, 0x00ad0ac1 },
-   { 0x00800040, 0x29e04529, 0x00ad09e0, 0x00ad0ae1 },
-   { 0x00800040, 0x2a004529, 0x00ad0a00, 0x00ad0b01 },
-   { 0x00800040, 0x2a204529, 0x00ad0a20, 0x00ad0b21 },
-   { 0x00800040, 0x29c04529, 0x00ad09c0, 0x00ad0ae1 },
-   { 0x00800040, 0x29e04529, 0x00ad09e0, 0x00ad0b01 },
-   { 0x00800040, 0x2a004529, 0x00ad0a00, 0x00ad0b21 },
-   { 0x00800040, 0x2a204529, 0x00ad0a20, 0x00ad0b41 },
-   { 0x00800040, 0x2a404629, 0x00ad0b60, 0x00ad0b80 },
-   { 0x00800040, 0x2a604629, 0x00ad0b80, 0x00ad0ba0 },
-   { 0x00800040, 0x2a804629, 0x00ad0ba0, 0x00ad0bc0 },
-   { 0x00800040, 0x2aa04629, 0x00ad0bc0, 0x00ad0be0 },
-   { 0x00800040, 0x2a404529, 0x00ad0a40, 0x00ad0b61 },
-   { 0x00800040, 0x2a604529, 0x00ad0a60, 0x00ad0b81 },
-   { 0x00800040, 0x2a804529, 0x00ad0a80, 0x00ad0ba1 },
-   { 0x00800040, 0x2aa04529, 0x00ad0aa0, 0x00ad0bc1 },
-   { 0x00800040, 0x2a404529, 0x00ad0a40, 0x00ad0b81 },
-   { 0x00800040, 0x2a604529, 0x00ad0a60, 0x00ad0ba1 },
-   { 0x00800040, 0x2a804529, 0x00ad0a80, 0x00ad0bc1 },
-   { 0x00800040, 0x2aa04529, 0x00ad0aa0, 0x00ad0be1 },
-   { 0x80800008, 0x29c02d29, 0x00b109c0, 0x00020002 },
-   { 0x80800008, 0x29e02d29, 0x00b109e0, 0x00020002 },
-   { 0x80800008, 0x2a002d29, 0x00b10a00, 0x00020002 },
-   { 0x80800008, 0x2a202d29, 0x00b10a20, 0x00020002 },
-   { 0x80800008, 0x2a402d29, 0x00b10a40, 0x00020002 },
-   { 0x80800008, 0x2a602d29, 0x00b10a60, 0x00020002 },
-   { 0x80800008, 0x2a802d29, 0x00b10a80, 0x00020002 },
-   { 0x80800008, 0x2aa02d29, 0x00b10aa0, 0x00020002 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000028 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0007000f },
-   { 0x00800031, 0x2ac01d29, 0x00ad0e60, 0x0414a008 },
-   { 0x00800031, 0x2b601d29, 0x00ad0e60, 0x0414a009 },
-   { 0x80800042, 0x29c04629, 0x00ad0ac0, 0x00ad0ac1 },
-   { 0x80800042, 0x29e04629, 0x00ad0ae0, 0x00ad0ae1 },
-   { 0x80800042, 0x2a004629, 0x00ad0b00, 0x00ad0b01 },
-   { 0x80800042, 0x2a204629, 0x00ad0b20, 0x00ad0b21 },
-   { 0x80800042, 0x2a404629, 0x00ad0b60, 0x00ad0b61 },
-   { 0x80800042, 0x2a604629, 0x00ad0b80, 0x00ad0b81 },
-   { 0x80800042, 0x2a804629, 0x00ad0ba0, 0x00ad0ba1 },
-   { 0x80800042, 0x2aa04629, 0x00ad0bc0, 0x00ad0bc1 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x0000001c },
-   { 0x01000005, 0x20002d3c, 0x0021003c, 0x00020002 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x0000000f },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0007000f },
-   { 0x00800031, 0x2ac01d29, 0x00ad0e60, 0x0414a008 },
-   { 0x00800031, 0x2b601d29, 0x00ad0e60, 0x0414a009 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0000000f },
-   { 0x00800031, 0x2b401d29, 0x00ad0e60, 0x0411a008 },
-   { 0x00800031, 0x2be01d29, 0x00ad0e60, 0x0411a009 },
-   { 0x80800042, 0x29c04629, 0x00ad0ac0, 0x00ad0ae0 },
-   { 0x80800042, 0x29e04629, 0x00ad0ae0, 0x00ad0b00 },
-   { 0x80800042, 0x2a004629, 0x00ad0b00, 0x00ad0b20 },
-   { 0x80800042, 0x2a204629, 0x00ad0b20, 0x00ad0b40 },
-   { 0x80800042, 0x2a404629, 0x00ad0b60, 0x00ad0b80 },
-   { 0x80800042, 0x2a604629, 0x00ad0b80, 0x00ad0ba0 },
-   { 0x80800042, 0x2a804629, 0x00ad0ba0, 0x00ad0bc0 },
-   { 0x80800042, 0x2aa04629, 0x00ad0bc0, 0x00ad0be0 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x0000000b },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0007000f },
-   { 0x00800031, 0x2ac01d29, 0x00ad0e60, 0x0414a008 },
-   { 0x00800031, 0x2b601d29, 0x00ad0e60, 0x0414a009 },
-   { 0x00800001, 0x29c00229, 0x00ad0ac0, 0x00000000 },
-   { 0x00800001, 0x29e00229, 0x00ad0ae0, 0x00000000 },
-   { 0x00800001, 0x2a000229, 0x00ad0b00, 0x00000000 },
-   { 0x00800001, 0x2a200229, 0x00ad0b20, 0x00000000 },
-   { 0x00800001, 0x2a400229, 0x00ad0b60, 0x00000000 },
-   { 0x00800001, 0x2a600229, 0x00ad0b80, 0x00000000 },
-   { 0x00800001, 0x2a800229, 0x00ad0ba0, 0x00000000 },
-   { 0x00800001, 0x2aa00229, 0x00ad0bc0, 0x00000000 },
-   { 0x00600001, 0x25900129, 0x008d09c0, 0x00000000 },
-   { 0x00600001, 0x25b00129, 0x008d09e0, 0x00000000 },
-   { 0x00600001, 0x25d00129, 0x008d0a00, 0x00000000 },
-   { 0x00600001, 0x25f00129, 0x008d0a20, 0x00000000 },
-   { 0x00600001, 0x26100129, 0x008d0a40, 0x00000000 },
-   { 0x00600001, 0x26300129, 0x008d0a60, 0x00000000 },
-   { 0x00600001, 0x26500129, 0x008d0a80, 0x00000000 },
-   { 0x00600001, 0x26700129, 0x008d0aa0, 0x00000000 },
-   { 0x80800042, 0x25802529, 0x00b10880, 0x00b10580 },
-   { 0x80800042, 0x25a02529, 0x00b108a0, 0x00b105a0 },
-   { 0x80800042, 0x25c02529, 0x00b108c0, 0x00b105c0 },
-   { 0x80800042, 0x25e02529, 0x00b108e0, 0x00b105e0 },
-   { 0x80800042, 0x26002529, 0x00b10900, 0x00b10600 },
-   { 0x80800042, 0x26202529, 0x00b10920, 0x00b10620 },
-   { 0x80800042, 0x26402529, 0x00b10940, 0x00b10640 },
-   { 0x80800042, 0x26602529, 0x00b10960, 0x00b10660 },
-   { 0x00600001, 0x20200021, 0x008d0980, 0x00000000 },
-   { 0x00800001, 0x458101f1, 0x00000000, 0x00000000 },
-   { 0x00800001, 0x45a101f1, 0x00000000, 0x00000000 },
-   { 0x00800001, 0x45c101f1, 0x00000000, 0x00000000 },
-   { 0x00800001, 0x45e101f1, 0x00000000, 0x00000000 },
-   { 0x00800001, 0x460101f1, 0x00000000, 0x00000000 },
-   { 0x00800001, 0x462101f1, 0x00000000, 0x00000000 },
-   { 0x00800001, 0x464101f1, 0x00000000, 0x00000000 },
-   { 0x00800001, 0x466101f1, 0x00000000, 0x00000000 },
-   { 0x02000005, 0x20002e3c, 0x0021003e, 0x00010001 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000011 },
-   { 0x00800040, 0x238045ad, 0x00b10060, 0x00b20380 },
-   { 0x00800040, 0x23a045ad, 0x00b10080, 0x00b203a0 },
-   { 0x00800040, 0x23c045ad, 0x00b100a0, 0x00b203c0 },
-   { 0x00800040, 0x23e045ad, 0x00b100c0, 0x00b203e0 },
-   { 0x00800040, 0x240045ad, 0x00b100e0, 0x00b20400 },
-   { 0x00800040, 0x242045ad, 0x00b10100, 0x00b20420 },
-   { 0x00800040, 0x244045ad, 0x00b10120, 0x00b20440 },
-   { 0x00800040, 0x246045ad, 0x00b10140, 0x00b20460 },
-   { 0x00800040, 0x248045ad, 0x00b10160, 0x00b20480 },
-   { 0x00800040, 0x24a045ad, 0x00b10180, 0x00b204a0 },
-   { 0x00800040, 0x24c045ad, 0x00b101a0, 0x00b204c0 },
-   { 0x00800040, 0x24e045ad, 0x00b101c0, 0x00b204e0 },
-   { 0x00800040, 0x250045ad, 0x00b101e0, 0x00b20500 },
-   { 0x00800040, 0x252045ad, 0x00b10200, 0x00b20520 },
-   { 0x00800040, 0x254045ad, 0x00b10220, 0x00b20540 },
-   { 0x00800040, 0x256045ad, 0x00b10240, 0x00b20560 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000010 },
-   { 0x00800040, 0x238045ad, 0x00b10060, 0x00b20380 },
-   { 0x00800040, 0x23a045ad, 0x00b10160, 0x00b203a0 },
-   { 0x00800040, 0x23c045ad, 0x00b10080, 0x00b203c0 },
-   { 0x00800040, 0x23e045ad, 0x00b10180, 0x00b203e0 },
-   { 0x00800040, 0x240045ad, 0x00b100a0, 0x00b20400 },
-   { 0x00800040, 0x242045ad, 0x00b101a0, 0x00b20420 },
-   { 0x00800040, 0x244045ad, 0x00b100c0, 0x00b20440 },
-   { 0x00800040, 0x246045ad, 0x00b101c0, 0x00b20460 },
-   { 0x00800040, 0x248045ad, 0x00b100e0, 0x00b20480 },
-   { 0x00800040, 0x24a045ad, 0x00b101e0, 0x00b204a0 },
-   { 0x00800040, 0x24c045ad, 0x00b10100, 0x00b204c0 },
-   { 0x00800040, 0x24e045ad, 0x00b10200, 0x00b204e0 },
-   { 0x00800040, 0x250045ad, 0x00b10120, 0x00b20500 },
-   { 0x00800040, 0x252045ad, 0x00b10220, 0x00b20520 },
-   { 0x00800040, 0x254045ad, 0x00b10140, 0x00b20540 },
-   { 0x00800040, 0x256045ad, 0x00b10240, 0x00b20560 },
-   { 0x00000001, 0x20280061, 0x00000000, 0x000f000f },
-   { 0x80800001, 0x438001b1, 0x00b10380, 0x00000000 },
-   { 0x80800001, 0x43a001b1, 0x00b103a0, 0x00000000 },
-   { 0x80800001, 0x43c001b1, 0x00b103c0, 0x00000000 },
-   { 0x80800001, 0x43e001b1, 0x00b103e0, 0x00000000 },
-   { 0x80800001, 0x440001b1, 0x00b10400, 0x00000000 },
-   { 0x80800001, 0x442001b1, 0x00b10420, 0x00000000 },
-   { 0x80800001, 0x444001b1, 0x00b10440, 0x00000000 },
-   { 0x80800001, 0x446001b1, 0x00b10460, 0x00000000 },
-   { 0x80800001, 0x448001b1, 0x00b10480, 0x00000000 },
-   { 0x80800001, 0x44a001b1, 0x00b104a0, 0x00000000 },
-   { 0x80800001, 0x44c001b1, 0x00b104c0, 0x00000000 },
-   { 0x80800001, 0x44e001b1, 0x00b104e0, 0x00000000 },
-   { 0x80800001, 0x450001b1, 0x00b10500, 0x00000000 },
-   { 0x80800001, 0x452001b1, 0x00b10520, 0x00000000 },
-   { 0x80800001, 0x454001b1, 0x00b10540, 0x00000000 },
-   { 0x80800001, 0x456001b1, 0x00b10560, 0x00000000 },
-   { 0x00800001, 0x20200232, 0x00b20380, 0x00000000 },
-   { 0x00800001, 0x20300232, 0x00b203a0, 0x00000000 },
-   { 0x00800001, 0x20400232, 0x00b203c0, 0x00000000 },
-   { 0x00800001, 0x20500232, 0x00b203e0, 0x00000000 },
-   { 0x00800001, 0x20600232, 0x00b20400, 0x00000000 },
-   { 0x00800001, 0x20700232, 0x00b20420, 0x00000000 },
-   { 0x00800001, 0x20800232, 0x00b20440, 0x00000000 },
-   { 0x00800001, 0x20900232, 0x00b20460, 0x00000000 },
-   { 0x00800001, 0x20a00232, 0x00b20480, 0x00000000 },
-   { 0x00800001, 0x20b00232, 0x00b204a0, 0x00000000 },
-   { 0x00800001, 0x20c00232, 0x00b204c0, 0x00000000 },
-   { 0x00800001, 0x20d00232, 0x00b204e0, 0x00000000 },
-   { 0x00800001, 0x20e00232, 0x00b20500, 0x00000000 },
-   { 0x00800001, 0x20f00232, 0x00b20520, 0x00000000 },
-   { 0x00800001, 0x21000232, 0x00b20540, 0x00000000 },
-   { 0x00800001, 0x21100232, 0x00b20560, 0x00000000 },
-   { 0x00800031, 0x24001d28, 0x008d0020, 0x05902000 },
-   { 0x00000001, 0x20280061, 0x00000000, 0x00070007 },
-   { 0x00200008, 0x20201c21, 0x00450020, 0x00000001 },
-   { 0x00800040, 0x258025a9, 0x00b10260, 0x00b10580 },
-   { 0x00800040, 0x25a025a9, 0x00b10280, 0x00b105a0 },
-   { 0x00800040, 0x25c025a9, 0x00b102a0, 0x00b105c0 },
-   { 0x00800040, 0x25e025a9, 0x00b102c0, 0x00b105e0 },
-   { 0x80800001, 0x45800131, 0x00b10580, 0x00000000 },
-   { 0x80800001, 0x45a00131, 0x00b105a0, 0x00000000 },
-   { 0x80800001, 0x45c00131, 0x00b105c0, 0x00000000 },
-   { 0x80800001, 0x45e00131, 0x00b105e0, 0x00000000 },
-   { 0x00800001, 0x20200232, 0x00b20580, 0x00000000 },
-   { 0x00800001, 0x20300232, 0x00b205a0, 0x00000000 },
-   { 0x00800001, 0x20400232, 0x00b205c0, 0x00000000 },
-   { 0x00800001, 0x20500232, 0x00b205e0, 0x00000000 },
-   { 0x00800031, 0x24001d28, 0x008d0020, 0x05302001 },
-   { 0x00800040, 0x260025a9, 0x00b102e0, 0x00b10600 },
-   { 0x00800040, 0x262025a9, 0x00b10300, 0x00b10620 },
-   { 0x00800040, 0x264025a9, 0x00b10320, 0x00b10640 },
-   { 0x00800040, 0x266025a9, 0x00b10340, 0x00b10660 },
-   { 0x80800001, 0x46000131, 0x00b10600, 0x00000000 },
-   { 0x80800001, 0x46200131, 0x00b10620, 0x00000000 },
-   { 0x80800001, 0x46400131, 0x00b10640, 0x00000000 },
-   { 0x80800001, 0x46600131, 0x00b10660, 0x00000000 },
-   { 0x00800001, 0x20200232, 0x00b20600, 0x00000000 },
-   { 0x00800001, 0x20300232, 0x00b20620, 0x00000000 },
-   { 0x00800001, 0x20400232, 0x00b20640, 0x00000000 },
-   { 0x00800001, 0x20500232, 0x00b20660, 0x00000000 },
-   { 0x00800031, 0x24001d28, 0x008d0020, 0x05302002 },
-   { 0x00800031, 0x24001d28, 0x008d0000, 0x87100000 },
diff --git a/src/xvmc/field_backward.g4a b/src/xvmc/field_backward.g4a
deleted file mode 100644
index 8c721c6..0000000
--- a/src/xvmc/field_backward.g4a
+++ /dev/null
@@ -1,124 +0,0 @@
-/*
- * Copyright © 2008 Intel Corporation
- *
- * Permission is hereby granted, free of charge, to any person obtaining a
- * copy of this software and associated documentation files (the "Software"),
- * to deal in the Software without restriction, including without limitation
- * the rights to use, copy, modify, merge, publish, distribute, sublicense,
- * and/or sell copies of the Software, and to permit persons to whom the
- * Software is furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice (including the next
- * paragraph) shall be included in all copies or substantial portions of the
- * Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
- * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
- * SOFTWARE.
- *
- * Author:
- *    Zou Nan hai <nanhai.zou at intel.com>
- *    Zhang Hua jun <huajun.zhang at intel.com>
- *    Xing Dong sheng <dongsheng.xing at intel.com>
- *
- */
-mov (8) g76.0<1>UD g1.0<8,8,1>UD {align1};
-//mov (8) g77.0<1>UD g2.0<8,8,1>UD {align1};
-
-include(`block_clear.g4i')
-
-mov (8) g115.0<1>UD g1.0<8,8,1>UD {align1};
-mov (8) g116.0<1>UD g1.0<8,8,1>UD {align1};
-/*Y buffer*/
-mov(1) g115.8<1>UD 0x007001fUD  { align1 };
-mov(1) g1.8<1>UD 0x007000fUD  { align1 };
-/*first vector*/
-asr (2) g115.14<1>W g1.18<2,2,1>W 1W {align1};
-add (2) g115.0<1>D g116.0<2,2,1>D g115.14<2,2,1>W {align1};
-and (1) g115.4<1>UD g115.4<1,1,1>UD 0xFFFFFFFEUD {align1};
-mov(1) g115.8<1>UD 0x1fUD  { align1 }; //read 1 line, 32 columns.
-
-and.nz (1) null g1.31<1,1,1>UB 0x2UW {align1};
-(f0) add (1) g115.4<1>D g115.4<1,1,1>D 1D {align1};
-define(`surface',`7')
-define(`mv1',`g1.18')
-define(`mv2',`g1.20')
-include(`motion_field_y.g4i')
-mov (8) g28.0<1>UD g96.0<8,8,1>UD {align1};
-mov (8) g30.0<1>UD g97.0<8,8,1>UD {align1};
-mov (8) g32.0<1>UD g98.0<8,8,1>UD {align1};
-mov (8) g34.0<1>UD g99.0<8,8,1>UD {align1};
-mov (8) g36.0<1>UD g100.0<8,8,1>UD {align1};
-mov (8) g38.0<1>UD g101.0<8,8,1>UD {align1};
-mov (8) g40.0<1>UD g102.0<8,8,1>UD {align1};
-mov (8) g42.0<1>UD g103.0<8,8,1>UD {align1};
-/*second vector*/
-asr (2) g115.14<1>W g1.26<2,2,1>W 1W {align1};
-add (2) g115.0<1>D g116.0<2,2,1>D g115.14<2,2,1>W {align1};
-and (1) g115.4<1>UD g115.4<1,1,1>UD 0xFFFFFFFEUD {align1};
-mov(1) g115.8<1>UD 0x1fUD  { align1 }; //read 1 line, 32 columns.
-
-and.nz (1) null g1.31<1,1,1>UB 0x8UW {align1};
-(f0) add (1) g115.4<1>D g115.4<1,1,1>D 1D {align1};
-define(`surface',`7')
-define(`mv1',`g1.26')
-define(`mv2',`g1.28')
-include(`motion_field_y.g4i')
-mov (8) g29.0<1>UD g96.0<8,8,1>UD {align1};
-mov (8) g31.0<1>UD g97.0<8,8,1>UD {align1};
-mov (8) g33.0<1>UD g98.0<8,8,1>UD {align1};
-mov (8) g35.0<1>UD g99.0<8,8,1>UD {align1};
-mov (8) g37.0<1>UD g100.0<8,8,1>UD {align1};
-mov (8) g39.0<1>UD g101.0<8,8,1>UD {align1};
-mov (8) g41.0<1>UD g102.0<8,8,1>UD {align1};
-mov (8) g43.0<1>UD g103.0<8,8,1>UD {align1};
-/*U buffer, V buffer*/
-mov(1) g115.8<1>UD 0x007000fUD  { align1 };
-/*first vector*/
-asr (2) g115.14<1>W g1.18<2,2,1>W 2W {align1};
-asr (2) g115.0<1>D g116.0<2,2,1>D 1D {align1};
-add (2) g115.0<1>D g115.0<2,2,1>D g115.14<2,2,1>W {align1};
-and (1) g115.4<1>UD g115.4<1,1,1>UD 0xFFFFFFFEUD {align1};
-
-and.nz (1) null g1.31<1,1,1>UB 0x2UW {align1};
-(f0) add (1) g115.4<1>UD g115.4<1,1,1>UD 1UD {align1};
-define(`surface_u',`8')
-define(`surface_v',`9')
-define(`mv1',`g1.18')
-define(`mv2',`g1.20')
-include(`motion_field_uv.g4i')
-mov (8) g44.0<1>UW g78.0<8,8,1>UW {align1};
-mov (8) g45.0<1>UW g79.0<8,8,1>UW {align1};
-mov (8) g46.0<1>UW g80.0<8,8,1>UW {align1};
-mov (8) g47.0<1>UW g81.0<8,8,1>UW {align1};
-mov (8) g48.0<1>UW g82.0<8,8,1>UW {align1};
-mov (8) g49.0<1>UW g83.0<8,8,1>UW {align1};
-mov (8) g50.0<1>UW g84.0<8,8,1>UW {align1};
-mov (8) g51.0<1>UW g85.0<8,8,1>UW {align1};
-/*second vector*/
-asr (2) g115.14<1>W g1.26<2,2,1>W 2W {align1};
-asr (2) g115.0<1>D g116.0<2,2,1>D 1D {align1};
-add (2) g115.0<1>D g115.0<2,2,1>D g115.14<2,2,1>W {align1};
-and (1) g115.4<1>UD g115.4<1,1,1>UD 0xFFFFFFFEUD {align1};
-
-and.nz (1) null g1.31<1,1,1>UB 0x8UW {align1};
-(f0) add (1) g115.4<1>UD g115.4<1,1,1>UD 1UD {align1};
-define(`mv1',`g1.26')
-define(`mv2',`g1.28')
-include(`motion_field_uv.g4i')
-mov (8) g44.16<1>UW g78.0<8,8,1>UW {align1};
-mov (8) g45.16<1>UW g79.0<8,8,1>UW {align1};
-mov (8) g46.16<1>UW g80.0<8,8,1>UW {align1};
-mov (8) g47.16<1>UW g81.0<8,8,1>UW {align1};
-mov (8) g48.16<1>UW g82.0<8,8,1>UW {align1};
-mov (8) g49.16<1>UW g83.0<8,8,1>UW {align1};
-mov (8) g50.16<1>UW g84.0<8,8,1>UW {align1};
-mov (8) g51.16<1>UW g85.0<8,8,1>UW {align1};
-
-include(`addidct.g4i')
-//send (16) 0 acc0<1>UW g0<8,8,1>UW 
-//	thread_spawner(0, 0, 0) mlen 1 rlen 0 { align1 EOT};
diff --git a/src/xvmc/field_backward.g4b b/src/xvmc/field_backward.g4b
deleted file mode 100644
index cce7d45..0000000
--- a/src/xvmc/field_backward.g4b
+++ /dev/null
@@ -1,1341 +0,0 @@
-   { 0x00600001, 0x29800021, 0x008d0020, 0x00000000 },
-   { 0x02000005, 0x20000c3c, 0x00210040, 0x00000001 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000030 },
-   { 0x00000040, 0x20480c21, 0x00210988, 0x00000000 },
-   { 0x00800031, 0x20601c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x20801c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x20a01c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x20c01c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x20e01c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x21001c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x21201c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x21401c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x21601c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x21801c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x21a01c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x21c01c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x21e01c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x22001c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x22201c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x22401c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x22601c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x22801c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x22a01c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x22c01c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x22e01c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x23001c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x23201c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x23401c21, 0x00b10040, 0x04110203 },
-   { 0x02000005, 0x20002d3c, 0x0021098c, 0x00200020 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000008 },
-   { 0x00600001, 0x20600169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x20800169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x20a00169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x20c00169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x20e00169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x21000169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x21200169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x21400169, 0x00000000, 0x00000000 },
-   { 0x02000005, 0x20002d3c, 0x0021002c, 0x00100010 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000008 },
-   { 0x00600001, 0x20700169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x20900169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x20b00169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x20d00169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x20f00169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x21100169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x21300169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x21500169, 0x00000000, 0x00000000 },
-   { 0x02000005, 0x20002d3c, 0x0021002c, 0x00080008 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000008 },
-   { 0x00600001, 0x21600169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x21800169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x21a00169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x21c00169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x21e00169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x22000169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x22200169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x22400169, 0x00000000, 0x00000000 },
-   { 0x02000005, 0x20002d3c, 0x0021002c, 0x00040004 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000008 },
-   { 0x00600001, 0x21700169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x21900169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x21b00169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x21d00169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x21f00169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x22100169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x22300169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x22500169, 0x00000000, 0x00000000 },
-   { 0x02000005, 0x20002d3c, 0x0021002c, 0x00020002 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000004 },
-   { 0x00800001, 0x22600169, 0x00000000, 0x00000000 },
-   { 0x00800001, 0x22800169, 0x00000000, 0x00000000 },
-   { 0x00800001, 0x22a00169, 0x00000000, 0x00000000 },
-   { 0x00800001, 0x22c00169, 0x00000000, 0x00000000 },
-   { 0x02000005, 0x20002d3c, 0x0021002c, 0x00010001 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000004 },
-   { 0x00800001, 0x22e00169, 0x00000000, 0x00000000 },
-   { 0x00800001, 0x23000169, 0x00000000, 0x00000000 },
-   { 0x00800001, 0x23200169, 0x00000000, 0x00000000 },
-   { 0x00800001, 0x23400169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x2e600021, 0x008d0020, 0x00000000 },
-   { 0x00600001, 0x2e800021, 0x008d0020, 0x00000000 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0007001f },
-   { 0x00000001, 0x20280061, 0x00000000, 0x0007000f },
-   { 0x0020000c, 0x2e6e3dad, 0x00450032, 0x00010001 },
-   { 0x00200040, 0x2e6034a5, 0x00450e80, 0x00450e6e },
-   { 0x00000005, 0x2e640c21, 0x00210e64, 0xfffffffe },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
-   { 0x02000005, 0x20002e3c, 0x0021003f, 0x00020002 },
-   { 0x00010040, 0x2e641ca5, 0x00210e64, 0x00000001 },
-   { 0x01000005, 0x20002d3c, 0x00210032, 0x00010001 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x000000b1 },
-   { 0x01000005, 0x20002d3c, 0x00210034, 0x00010001 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x0000007d },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
-   { 0x00800031, 0x29c01d29, 0x008d0e60, 0x0411a007 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a001d29, 0x008d0e60, 0x0411a007 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a401d29, 0x008d0e60, 0x0411a007 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a801d29, 0x008d0e60, 0x0411a007 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0007001f },
-   { 0x00800031, 0x2ac01d29, 0x008d0e60, 0x0418a007 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
-   { 0x00800031, 0x2bc01d29, 0x008d0e60, 0x0411a007 },
-   { 0x00000005, 0x20580c21, 0x00210e60, 0x00000003 },
-   { 0x00000041, 0x20580c21, 0x00210058, 0x00000019 },
-   { 0x00000020, 0x34001400, 0x00001400, 0x00210058 },
-   { 0x00800040, 0x2c004629, 0x00b109c0, 0x00b10a00 },
-   { 0x00800040, 0x2c204629, 0x00b10a00, 0x00b10a40 },
-   { 0x00800040, 0x2c404629, 0x00b10a40, 0x00b10a80 },
-   { 0x00800040, 0x2c604629, 0x00b10a80, 0x00b10ac0 },
-   { 0x00800040, 0x2c804629, 0x00b10ac0, 0x00b10b00 },
-   { 0x00800040, 0x2ca04629, 0x00b10b00, 0x00b10b40 },
-   { 0x00800040, 0x2cc04629, 0x00b10b40, 0x00b10b80 },
-   { 0x00800040, 0x2ce04629, 0x00b10b80, 0x00b10bc0 },
-   { 0x00800040, 0x2c004529, 0x00b10c00, 0x00b109c1 },
-   { 0x00800040, 0x2c204529, 0x00b10c20, 0x00b10a01 },
-   { 0x00800040, 0x2c404529, 0x00b10c40, 0x00b10a41 },
-   { 0x00800040, 0x2c604529, 0x00b10c60, 0x00b10a81 },
-   { 0x00800040, 0x2c804529, 0x00b10c80, 0x00b10ac1 },
-   { 0x00800040, 0x2ca04529, 0x00b10ca0, 0x00b10b01 },
-   { 0x00800040, 0x2cc04529, 0x00b10cc0, 0x00b10b41 },
-   { 0x00800040, 0x2ce04529, 0x00b10ce0, 0x00b10b81 },
-   { 0x00800040, 0x2c004529, 0x00b10c00, 0x00b10a01 },
-   { 0x00800040, 0x2c204529, 0x00b10c20, 0x00b10a41 },
-   { 0x00800040, 0x2c404529, 0x00b10c40, 0x00b10a81 },
-   { 0x00800040, 0x2c604529, 0x00b10c60, 0x00b10ac1 },
-   { 0x00800040, 0x2c804529, 0x00b10c80, 0x00b10b01 },
-   { 0x00800040, 0x2ca04529, 0x00b10ca0, 0x00b10b41 },
-   { 0x00800040, 0x2cc04529, 0x00b10cc0, 0x00b10b81 },
-   { 0x00800040, 0x2ce04529, 0x00b10ce0, 0x00b10bc1 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x0000004a },
-   { 0x00800040, 0x2c004629, 0x00b109c1, 0x00b10a01 },
-   { 0x00800040, 0x2c204629, 0x00b10a01, 0x00b10a41 },
-   { 0x00800040, 0x2c404629, 0x00b10a41, 0x00b10a81 },
-   { 0x00800040, 0x2c604629, 0x00b10a81, 0x00b10ac1 },
-   { 0x00800040, 0x2c804629, 0x00b10ac1, 0x00b10b01 },
-   { 0x00800040, 0x2ca04629, 0x00b10b01, 0x00b10b41 },
-   { 0x00800040, 0x2cc04629, 0x00b10b41, 0x00b10b81 },
-   { 0x00800040, 0x2ce04629, 0x00b10b81, 0x00b10bc1 },
-   { 0x00800040, 0x2c004529, 0x00b10c00, 0x00b109c2 },
-   { 0x00800040, 0x2c204529, 0x00b10c20, 0x00b10a02 },
-   { 0x00800040, 0x2c404529, 0x00b10c40, 0x00b10a42 },
-   { 0x00800040, 0x2c604529, 0x00b10c60, 0x00b10a82 },
-   { 0x00800040, 0x2c804529, 0x00b10c80, 0x00b10ac2 },
-   { 0x00800040, 0x2ca04529, 0x00b10ca0, 0x00b10b02 },
-   { 0x00800040, 0x2cc04529, 0x00b10cc0, 0x00b10b42 },
-   { 0x00800040, 0x2ce04529, 0x00b10ce0, 0x00b10b82 },
-   { 0x00800040, 0x2c004529, 0x00b10c00, 0x00b10a02 },
-   { 0x00800040, 0x2c204529, 0x00b10c20, 0x00b10a42 },
-   { 0x00800040, 0x2c404529, 0x00b10c40, 0x00b10a82 },
-   { 0x00800040, 0x2c604529, 0x00b10c60, 0x00b10ac2 },
-   { 0x00800040, 0x2c804529, 0x00b10c80, 0x00b10b02 },
-   { 0x00800040, 0x2ca04529, 0x00b10ca0, 0x00b10b42 },
-   { 0x00800040, 0x2cc04529, 0x00b10cc0, 0x00b10b82 },
-   { 0x00800040, 0x2ce04529, 0x00b10ce0, 0x00b10bc2 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000031 },
-   { 0x00800040, 0x2c004629, 0x00b109c2, 0x00b10a02 },
-   { 0x00800040, 0x2c204629, 0x00b10a02, 0x00b10a42 },
-   { 0x00800040, 0x2c404629, 0x00b10a42, 0x00b10a82 },
-   { 0x00800040, 0x2c604629, 0x00b10a82, 0x00b10ac2 },
-   { 0x00800040, 0x2c804629, 0x00b10ac2, 0x00b10b02 },
-   { 0x00800040, 0x2ca04629, 0x00b10b02, 0x00b10b42 },
-   { 0x00800040, 0x2cc04629, 0x00b10b42, 0x00b10b82 },
-   { 0x00800040, 0x2ce04629, 0x00b10b82, 0x00b10bc2 },
-   { 0x00800040, 0x2c004529, 0x00b10c00, 0x00b109c3 },
-   { 0x00800040, 0x2c204529, 0x00b10c20, 0x00b10a03 },
-   { 0x00800040, 0x2c404529, 0x00b10c40, 0x00b10a43 },
-   { 0x00800040, 0x2c604529, 0x00b10c60, 0x00b10a83 },
-   { 0x00800040, 0x2c804529, 0x00b10c80, 0x00b10ac3 },
-   { 0x00800040, 0x2ca04529, 0x00b10ca0, 0x00b10b03 },
-   { 0x00800040, 0x2cc04529, 0x00b10cc0, 0x00b10b43 },
-   { 0x00800040, 0x2ce04529, 0x00b10ce0, 0x00b10b83 },
-   { 0x00800040, 0x2c004529, 0x00b10c00, 0x00b10a03 },
-   { 0x00800040, 0x2c204529, 0x00b10c20, 0x00b10a43 },
-   { 0x00800040, 0x2c404529, 0x00b10c40, 0x00b10a83 },
-   { 0x00800040, 0x2c604529, 0x00b10c60, 0x00b10ac3 },
-   { 0x00800040, 0x2c804529, 0x00b10c80, 0x00b10b03 },
-   { 0x00800040, 0x2ca04529, 0x00b10ca0, 0x00b10b43 },
-   { 0x00800040, 0x2cc04529, 0x00b10cc0, 0x00b10b83 },
-   { 0x00800040, 0x2ce04529, 0x00b10ce0, 0x00b10bc3 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000018 },
-   { 0x00800040, 0x2c004629, 0x00b109c3, 0x00b10a03 },
-   { 0x00800040, 0x2c204629, 0x00b10a03, 0x00b10a43 },
-   { 0x00800040, 0x2c404629, 0x00b10a43, 0x00b10a83 },
-   { 0x00800040, 0x2c604629, 0x00b10a83, 0x00b10ac3 },
-   { 0x00800040, 0x2c804629, 0x00b10ac3, 0x00b10b03 },
-   { 0x00800040, 0x2ca04629, 0x00b10b03, 0x00b10b43 },
-   { 0x00800040, 0x2cc04629, 0x00b10b43, 0x00b10b83 },
-   { 0x00800040, 0x2ce04629, 0x00b10b83, 0x00b10bc3 },
-   { 0x00800040, 0x2c004529, 0x00b10c00, 0x00b109c4 },
-   { 0x00800040, 0x2c204529, 0x00b10c20, 0x00b10a04 },
-   { 0x00800040, 0x2c404529, 0x00b10c40, 0x00b10a44 },
-   { 0x00800040, 0x2c604529, 0x00b10c60, 0x00b10a84 },
-   { 0x00800040, 0x2c804529, 0x00b10c80, 0x00b10ac4 },
-   { 0x00800040, 0x2ca04529, 0x00b10ca0, 0x00b10b04 },
-   { 0x00800040, 0x2cc04529, 0x00b10cc0, 0x00b10b44 },
-   { 0x00800040, 0x2ce04529, 0x00b10ce0, 0x00b10b84 },
-   { 0x00800040, 0x2c004529, 0x00b10c00, 0x00b10a04 },
-   { 0x00800040, 0x2c204529, 0x00b10c20, 0x00b10a44 },
-   { 0x00800040, 0x2c404529, 0x00b10c40, 0x00b10a84 },
-   { 0x00800040, 0x2c604529, 0x00b10c60, 0x00b10ac4 },
-   { 0x00800040, 0x2c804529, 0x00b10c80, 0x00b10b04 },
-   { 0x00800040, 0x2ca04529, 0x00b10ca0, 0x00b10b44 },
-   { 0x00800040, 0x2cc04529, 0x00b10cc0, 0x00b10b84 },
-   { 0x00800040, 0x2ce04529, 0x00b10ce0, 0x00b10bc4 },
-   { 0x00800008, 0x2c002d29, 0x00b10c00, 0x00020002 },
-   { 0x00800008, 0x2c202d29, 0x00b10c20, 0x00020002 },
-   { 0x00800008, 0x2c402d29, 0x00b10c40, 0x00020002 },
-   { 0x00800008, 0x2c602d29, 0x00b10c60, 0x00020002 },
-   { 0x00800008, 0x2c802d29, 0x00b10c80, 0x00020002 },
-   { 0x00800008, 0x2ca02d29, 0x00b10ca0, 0x00020002 },
-   { 0x00800008, 0x2cc02d29, 0x00b10cc0, 0x00020002 },
-   { 0x00800008, 0x2ce02d29, 0x00b10ce0, 0x00020002 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x0000009a },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
-   { 0x00800031, 0x29c01d29, 0x008d0e60, 0x0411a007 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a001d29, 0x008d0e60, 0x0411a007 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a401d29, 0x008d0e60, 0x0411a007 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a801d29, 0x008d0e60, 0x0411a007 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0007001f },
-   { 0x00800031, 0x2ac01d29, 0x008d0e60, 0x0418a007 },
-   { 0x00000005, 0x20580c21, 0x00210e60, 0x00000003 },
-   { 0x00000041, 0x20580c21, 0x00210058, 0x00000009 },
-   { 0x00000020, 0x34001400, 0x00001400, 0x00210058 },
-   { 0x80800042, 0x2c004629, 0x00b109c0, 0x00b109c1 },
-   { 0x80800042, 0x2c204629, 0x00b10a00, 0x00b10a01 },
-   { 0x80800042, 0x2c404629, 0x00b10a40, 0x00b10a41 },
-   { 0x80800042, 0x2c604629, 0x00b10a80, 0x00b10a81 },
-   { 0x80800042, 0x2c804629, 0x00b10ac0, 0x00b10ac1 },
-   { 0x80800042, 0x2ca04629, 0x00b10b00, 0x00b10b01 },
-   { 0x80800042, 0x2cc04629, 0x00b10b40, 0x00b10b41 },
-   { 0x80800042, 0x2ce04629, 0x00b10b80, 0x00b10b81 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x0000001a },
-   { 0x80800042, 0x2c004629, 0x00b109c1, 0x00b109c2 },
-   { 0x80800042, 0x2c204629, 0x00b10a01, 0x00b10a02 },
-   { 0x80800042, 0x2c404629, 0x00b10a41, 0x00b10a42 },
-   { 0x80800042, 0x2c604629, 0x00b10a81, 0x00b10a82 },
-   { 0x80800042, 0x2c804629, 0x00b10ac1, 0x00b10ac2 },
-   { 0x80800042, 0x2ca04629, 0x00b10b01, 0x00b10b02 },
-   { 0x80800042, 0x2cc04629, 0x00b10b41, 0x00b10b42 },
-   { 0x80800042, 0x2ce04629, 0x00b10b81, 0x00b10b82 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000011 },
-   { 0x80800042, 0x2c004629, 0x00b109c2, 0x00b109c3 },
-   { 0x80800042, 0x2c204629, 0x00b10a02, 0x00b10a03 },
-   { 0x80800042, 0x2c404629, 0x00b10a42, 0x00b10a43 },
-   { 0x80800042, 0x2c604629, 0x00b10a82, 0x00b10a83 },
-   { 0x80800042, 0x2c804629, 0x00b10ac2, 0x00b10ac3 },
-   { 0x80800042, 0x2ca04629, 0x00b10b02, 0x00b10b03 },
-   { 0x80800042, 0x2cc04629, 0x00b10b42, 0x00b10b43 },
-   { 0x80800042, 0x2ce04629, 0x00b10b82, 0x00b10b83 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000008 },
-   { 0x80800042, 0x2c004629, 0x00b109c3, 0x00b109c4 },
-   { 0x80800042, 0x2c204629, 0x00b10a03, 0x00b10a04 },
-   { 0x80800042, 0x2c404629, 0x00b10a43, 0x00b10a44 },
-   { 0x80800042, 0x2c604629, 0x00b10a83, 0x00b10a84 },
-   { 0x80800042, 0x2c804629, 0x00b10ac3, 0x00b10ac4 },
-   { 0x80800042, 0x2ca04629, 0x00b10b03, 0x00b10b04 },
-   { 0x80800042, 0x2cc04629, 0x00b10b43, 0x00b10b44 },
-   { 0x80800042, 0x2ce04629, 0x00b10b83, 0x00b10b84 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000068 },
-   { 0x01000005, 0x20002d3c, 0x00210034, 0x00010001 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000035 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
-   { 0x00800031, 0x29c01d29, 0x008d0e60, 0x0411a007 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a001d29, 0x008d0e60, 0x0411a007 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a401d29, 0x008d0e60, 0x0411a007 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a801d29, 0x008d0e60, 0x0411a007 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0007001f },
-   { 0x00800031, 0x2ac01d29, 0x008d0e60, 0x0418a007 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
-   { 0x00800031, 0x2bc01d29, 0x008d0e60, 0x0411a007 },
-   { 0x00000005, 0x20580c21, 0x00210e60, 0x00000003 },
-   { 0x00000041, 0x20580c21, 0x00210058, 0x00000009 },
-   { 0x00000020, 0x34001400, 0x00001400, 0x00210058 },
-   { 0x80800042, 0x2c004629, 0x00b109c0, 0x00b10a00 },
-   { 0x80800042, 0x2c204629, 0x00b10a00, 0x00b10a40 },
-   { 0x80800042, 0x2c404629, 0x00b10a40, 0x00b10a80 },
-   { 0x80800042, 0x2c604629, 0x00b10a80, 0x00b10ac0 },
-   { 0x80800042, 0x2c804629, 0x00b10ac0, 0x00b10b00 },
-   { 0x80800042, 0x2ca04629, 0x00b10b00, 0x00b10b40 },
-   { 0x80800042, 0x2cc04629, 0x00b10b40, 0x00b10b80 },
-   { 0x80800042, 0x2ce04629, 0x00b10b80, 0x00b10bc0 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x0000001a },
-   { 0x80800042, 0x2c004629, 0x00b109c1, 0x00b10a01 },
-   { 0x80800042, 0x2c204629, 0x00b10a01, 0x00b10a41 },
-   { 0x80800042, 0x2c404629, 0x00b10a41, 0x00b10a81 },
-   { 0x80800042, 0x2c604629, 0x00b10a81, 0x00b10ac1 },
-   { 0x80800042, 0x2c804629, 0x00b10ac1, 0x00b10b01 },
-   { 0x80800042, 0x2ca04629, 0x00b10b01, 0x00b10b41 },
-   { 0x80800042, 0x2cc04629, 0x00b10b41, 0x00b10b81 },
-   { 0x80800042, 0x2ce04629, 0x00b10b81, 0x00b10bc1 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000011 },
-   { 0x80800042, 0x2c004629, 0x00b109c2, 0x00b10a02 },
-   { 0x80800042, 0x2c204629, 0x00b10a02, 0x00b10a42 },
-   { 0x80800042, 0x2c404629, 0x00b10a42, 0x00b10a82 },
-   { 0x80800042, 0x2c604629, 0x00b10a82, 0x00b10ac2 },
-   { 0x80800042, 0x2c804629, 0x00b10ac2, 0x00b10b02 },
-   { 0x80800042, 0x2ca04629, 0x00b10b02, 0x00b10b42 },
-   { 0x80800042, 0x2cc04629, 0x00b10b42, 0x00b10b82 },
-   { 0x80800042, 0x2ce04629, 0x00b10b82, 0x00b10bc2 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000008 },
-   { 0x80800042, 0x2c004629, 0x00b109c3, 0x00b10a03 },
-   { 0x80800042, 0x2c204629, 0x00b10a03, 0x00b10a43 },
-   { 0x80800042, 0x2c404629, 0x00b10a43, 0x00b10a83 },
-   { 0x80800042, 0x2c604629, 0x00b10a83, 0x00b10ac3 },
-   { 0x80800042, 0x2c804629, 0x00b10ac3, 0x00b10b03 },
-   { 0x80800042, 0x2ca04629, 0x00b10b03, 0x00b10b43 },
-   { 0x80800042, 0x2cc04629, 0x00b10b43, 0x00b10b83 },
-   { 0x80800042, 0x2ce04629, 0x00b10b83, 0x00b10bc3 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000031 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
-   { 0x00800031, 0x29c01d29, 0x008d0e60, 0x0411a007 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a001d29, 0x008d0e60, 0x0411a007 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a401d29, 0x008d0e60, 0x0411a007 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a801d29, 0x008d0e60, 0x0411a007 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0007001f },
-   { 0x00800031, 0x2ac01d29, 0x008d0e60, 0x0418a007 },
-   { 0x00000005, 0x20580c21, 0x00210e60, 0x00000003 },
-   { 0x00000041, 0x20580c21, 0x00210058, 0x00000009 },
-   { 0x00000020, 0x34001400, 0x00001400, 0x00210058 },
-   { 0x00800001, 0x2c000229, 0x00b109c0, 0x00000000 },
-   { 0x00800001, 0x2c200229, 0x00b10a00, 0x00000000 },
-   { 0x00800001, 0x2c400229, 0x00b10a40, 0x00000000 },
-   { 0x00800001, 0x2c600229, 0x00b10a80, 0x00000000 },
-   { 0x00800001, 0x2c800229, 0x00b10ac0, 0x00000000 },
-   { 0x00800001, 0x2ca00229, 0x00b10b00, 0x00000000 },
-   { 0x00800001, 0x2cc00229, 0x00b10b40, 0x00000000 },
-   { 0x00800001, 0x2ce00229, 0x00b10b80, 0x00000000 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x0000001a },
-   { 0x00800001, 0x2c000229, 0x00b109c1, 0x00000000 },
-   { 0x00800001, 0x2c200229, 0x00b10a01, 0x00000000 },
-   { 0x00800001, 0x2c400229, 0x00b10a41, 0x00000000 },
-   { 0x00800001, 0x2c600229, 0x00b10a81, 0x00000000 },
-   { 0x00800001, 0x2c800229, 0x00b10ac1, 0x00000000 },
-   { 0x00800001, 0x2ca00229, 0x00b10b01, 0x00000000 },
-   { 0x00800001, 0x2cc00229, 0x00b10b41, 0x00000000 },
-   { 0x00800001, 0x2ce00229, 0x00b10b81, 0x00000000 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000011 },
-   { 0x00800001, 0x2c000229, 0x00b109c2, 0x00000000 },
-   { 0x00800001, 0x2c200229, 0x00b10a02, 0x00000000 },
-   { 0x00800001, 0x2c400229, 0x00b10a42, 0x00000000 },
-   { 0x00800001, 0x2c600229, 0x00b10a82, 0x00000000 },
-   { 0x00800001, 0x2c800229, 0x00b10ac2, 0x00000000 },
-   { 0x00800001, 0x2ca00229, 0x00b10b02, 0x00000000 },
-   { 0x00800001, 0x2cc00229, 0x00b10b42, 0x00000000 },
-   { 0x00800001, 0x2ce00229, 0x00b10b82, 0x00000000 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000008 },
-   { 0x00800001, 0x2c000229, 0x00b109c3, 0x00000000 },
-   { 0x00800001, 0x2c200229, 0x00b10a03, 0x00000000 },
-   { 0x00800001, 0x2c400229, 0x00b10a43, 0x00000000 },
-   { 0x00800001, 0x2c600229, 0x00b10a83, 0x00000000 },
-   { 0x00800001, 0x2c800229, 0x00b10ac3, 0x00000000 },
-   { 0x00800001, 0x2ca00229, 0x00b10b03, 0x00000000 },
-   { 0x00800001, 0x2cc00229, 0x00b10b43, 0x00000000 },
-   { 0x00800001, 0x2ce00229, 0x00b10b83, 0x00000000 },
-   { 0x00600001, 0x23800021, 0x008d0c00, 0x00000000 },
-   { 0x00600001, 0x23c00021, 0x008d0c20, 0x00000000 },
-   { 0x00600001, 0x24000021, 0x008d0c40, 0x00000000 },
-   { 0x00600001, 0x24400021, 0x008d0c60, 0x00000000 },
-   { 0x00600001, 0x24800021, 0x008d0c80, 0x00000000 },
-   { 0x00600001, 0x24c00021, 0x008d0ca0, 0x00000000 },
-   { 0x00600001, 0x25000021, 0x008d0cc0, 0x00000000 },
-   { 0x00600001, 0x25400021, 0x008d0ce0, 0x00000000 },
-   { 0x0020000c, 0x2e6e3dad, 0x0045003a, 0x00010001 },
-   { 0x00200040, 0x2e6034a5, 0x00450e80, 0x00450e6e },
-   { 0x00000005, 0x2e640c21, 0x00210e64, 0xfffffffe },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
-   { 0x02000005, 0x20002e3c, 0x0021003f, 0x00080008 },
-   { 0x00010040, 0x2e641ca5, 0x00210e64, 0x00000001 },
-   { 0x01000005, 0x20002d3c, 0x0021003a, 0x00010001 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x000000b1 },
-   { 0x01000005, 0x20002d3c, 0x0021003c, 0x00010001 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x0000007d },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
-   { 0x00800031, 0x29c01d29, 0x008d0e60, 0x0411a007 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a001d29, 0x008d0e60, 0x0411a007 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a401d29, 0x008d0e60, 0x0411a007 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a801d29, 0x008d0e60, 0x0411a007 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0007001f },
-   { 0x00800031, 0x2ac01d29, 0x008d0e60, 0x0418a007 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
-   { 0x00800031, 0x2bc01d29, 0x008d0e60, 0x0411a007 },
-   { 0x00000005, 0x20580c21, 0x00210e60, 0x00000003 },
-   { 0x00000041, 0x20580c21, 0x00210058, 0x00000019 },
-   { 0x00000020, 0x34001400, 0x00001400, 0x00210058 },
-   { 0x00800040, 0x2c004629, 0x00b109c0, 0x00b10a00 },
-   { 0x00800040, 0x2c204629, 0x00b10a00, 0x00b10a40 },
-   { 0x00800040, 0x2c404629, 0x00b10a40, 0x00b10a80 },
-   { 0x00800040, 0x2c604629, 0x00b10a80, 0x00b10ac0 },
-   { 0x00800040, 0x2c804629, 0x00b10ac0, 0x00b10b00 },
-   { 0x00800040, 0x2ca04629, 0x00b10b00, 0x00b10b40 },
-   { 0x00800040, 0x2cc04629, 0x00b10b40, 0x00b10b80 },
-   { 0x00800040, 0x2ce04629, 0x00b10b80, 0x00b10bc0 },
-   { 0x00800040, 0x2c004529, 0x00b10c00, 0x00b109c1 },
-   { 0x00800040, 0x2c204529, 0x00b10c20, 0x00b10a01 },
-   { 0x00800040, 0x2c404529, 0x00b10c40, 0x00b10a41 },
-   { 0x00800040, 0x2c604529, 0x00b10c60, 0x00b10a81 },
-   { 0x00800040, 0x2c804529, 0x00b10c80, 0x00b10ac1 },
-   { 0x00800040, 0x2ca04529, 0x00b10ca0, 0x00b10b01 },
-   { 0x00800040, 0x2cc04529, 0x00b10cc0, 0x00b10b41 },
-   { 0x00800040, 0x2ce04529, 0x00b10ce0, 0x00b10b81 },
-   { 0x00800040, 0x2c004529, 0x00b10c00, 0x00b10a01 },
-   { 0x00800040, 0x2c204529, 0x00b10c20, 0x00b10a41 },
-   { 0x00800040, 0x2c404529, 0x00b10c40, 0x00b10a81 },
-   { 0x00800040, 0x2c604529, 0x00b10c60, 0x00b10ac1 },
-   { 0x00800040, 0x2c804529, 0x00b10c80, 0x00b10b01 },
-   { 0x00800040, 0x2ca04529, 0x00b10ca0, 0x00b10b41 },
-   { 0x00800040, 0x2cc04529, 0x00b10cc0, 0x00b10b81 },
-   { 0x00800040, 0x2ce04529, 0x00b10ce0, 0x00b10bc1 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x0000004a },
-   { 0x00800040, 0x2c004629, 0x00b109c1, 0x00b10a01 },
-   { 0x00800040, 0x2c204629, 0x00b10a01, 0x00b10a41 },
-   { 0x00800040, 0x2c404629, 0x00b10a41, 0x00b10a81 },
-   { 0x00800040, 0x2c604629, 0x00b10a81, 0x00b10ac1 },
-   { 0x00800040, 0x2c804629, 0x00b10ac1, 0x00b10b01 },
-   { 0x00800040, 0x2ca04629, 0x00b10b01, 0x00b10b41 },
-   { 0x00800040, 0x2cc04629, 0x00b10b41, 0x00b10b81 },
-   { 0x00800040, 0x2ce04629, 0x00b10b81, 0x00b10bc1 },
-   { 0x00800040, 0x2c004529, 0x00b10c00, 0x00b109c2 },
-   { 0x00800040, 0x2c204529, 0x00b10c20, 0x00b10a02 },
-   { 0x00800040, 0x2c404529, 0x00b10c40, 0x00b10a42 },
-   { 0x00800040, 0x2c604529, 0x00b10c60, 0x00b10a82 },
-   { 0x00800040, 0x2c804529, 0x00b10c80, 0x00b10ac2 },
-   { 0x00800040, 0x2ca04529, 0x00b10ca0, 0x00b10b02 },
-   { 0x00800040, 0x2cc04529, 0x00b10cc0, 0x00b10b42 },
-   { 0x00800040, 0x2ce04529, 0x00b10ce0, 0x00b10b82 },
-   { 0x00800040, 0x2c004529, 0x00b10c00, 0x00b10a02 },
-   { 0x00800040, 0x2c204529, 0x00b10c20, 0x00b10a42 },
-   { 0x00800040, 0x2c404529, 0x00b10c40, 0x00b10a82 },
-   { 0x00800040, 0x2c604529, 0x00b10c60, 0x00b10ac2 },
-   { 0x00800040, 0x2c804529, 0x00b10c80, 0x00b10b02 },
-   { 0x00800040, 0x2ca04529, 0x00b10ca0, 0x00b10b42 },
-   { 0x00800040, 0x2cc04529, 0x00b10cc0, 0x00b10b82 },
-   { 0x00800040, 0x2ce04529, 0x00b10ce0, 0x00b10bc2 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000031 },
-   { 0x00800040, 0x2c004629, 0x00b109c2, 0x00b10a02 },
-   { 0x00800040, 0x2c204629, 0x00b10a02, 0x00b10a42 },
-   { 0x00800040, 0x2c404629, 0x00b10a42, 0x00b10a82 },
-   { 0x00800040, 0x2c604629, 0x00b10a82, 0x00b10ac2 },
-   { 0x00800040, 0x2c804629, 0x00b10ac2, 0x00b10b02 },
-   { 0x00800040, 0x2ca04629, 0x00b10b02, 0x00b10b42 },
-   { 0x00800040, 0x2cc04629, 0x00b10b42, 0x00b10b82 },
-   { 0x00800040, 0x2ce04629, 0x00b10b82, 0x00b10bc2 },
-   { 0x00800040, 0x2c004529, 0x00b10c00, 0x00b109c3 },
-   { 0x00800040, 0x2c204529, 0x00b10c20, 0x00b10a03 },
-   { 0x00800040, 0x2c404529, 0x00b10c40, 0x00b10a43 },
-   { 0x00800040, 0x2c604529, 0x00b10c60, 0x00b10a83 },
-   { 0x00800040, 0x2c804529, 0x00b10c80, 0x00b10ac3 },
-   { 0x00800040, 0x2ca04529, 0x00b10ca0, 0x00b10b03 },
-   { 0x00800040, 0x2cc04529, 0x00b10cc0, 0x00b10b43 },
-   { 0x00800040, 0x2ce04529, 0x00b10ce0, 0x00b10b83 },
-   { 0x00800040, 0x2c004529, 0x00b10c00, 0x00b10a03 },
-   { 0x00800040, 0x2c204529, 0x00b10c20, 0x00b10a43 },
-   { 0x00800040, 0x2c404529, 0x00b10c40, 0x00b10a83 },
-   { 0x00800040, 0x2c604529, 0x00b10c60, 0x00b10ac3 },
-   { 0x00800040, 0x2c804529, 0x00b10c80, 0x00b10b03 },
-   { 0x00800040, 0x2ca04529, 0x00b10ca0, 0x00b10b43 },
-   { 0x00800040, 0x2cc04529, 0x00b10cc0, 0x00b10b83 },
-   { 0x00800040, 0x2ce04529, 0x00b10ce0, 0x00b10bc3 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000018 },
-   { 0x00800040, 0x2c004629, 0x00b109c3, 0x00b10a03 },
-   { 0x00800040, 0x2c204629, 0x00b10a03, 0x00b10a43 },
-   { 0x00800040, 0x2c404629, 0x00b10a43, 0x00b10a83 },
-   { 0x00800040, 0x2c604629, 0x00b10a83, 0x00b10ac3 },
-   { 0x00800040, 0x2c804629, 0x00b10ac3, 0x00b10b03 },
-   { 0x00800040, 0x2ca04629, 0x00b10b03, 0x00b10b43 },
-   { 0x00800040, 0x2cc04629, 0x00b10b43, 0x00b10b83 },
-   { 0x00800040, 0x2ce04629, 0x00b10b83, 0x00b10bc3 },
-   { 0x00800040, 0x2c004529, 0x00b10c00, 0x00b109c4 },
-   { 0x00800040, 0x2c204529, 0x00b10c20, 0x00b10a04 },
-   { 0x00800040, 0x2c404529, 0x00b10c40, 0x00b10a44 },
-   { 0x00800040, 0x2c604529, 0x00b10c60, 0x00b10a84 },
-   { 0x00800040, 0x2c804529, 0x00b10c80, 0x00b10ac4 },
-   { 0x00800040, 0x2ca04529, 0x00b10ca0, 0x00b10b04 },
-   { 0x00800040, 0x2cc04529, 0x00b10cc0, 0x00b10b44 },
-   { 0x00800040, 0x2ce04529, 0x00b10ce0, 0x00b10b84 },
-   { 0x00800040, 0x2c004529, 0x00b10c00, 0x00b10a04 },
-   { 0x00800040, 0x2c204529, 0x00b10c20, 0x00b10a44 },
-   { 0x00800040, 0x2c404529, 0x00b10c40, 0x00b10a84 },
-   { 0x00800040, 0x2c604529, 0x00b10c60, 0x00b10ac4 },
-   { 0x00800040, 0x2c804529, 0x00b10c80, 0x00b10b04 },
-   { 0x00800040, 0x2ca04529, 0x00b10ca0, 0x00b10b44 },
-   { 0x00800040, 0x2cc04529, 0x00b10cc0, 0x00b10b84 },
-   { 0x00800040, 0x2ce04529, 0x00b10ce0, 0x00b10bc4 },
-   { 0x00800008, 0x2c002d29, 0x00b10c00, 0x00020002 },
-   { 0x00800008, 0x2c202d29, 0x00b10c20, 0x00020002 },
-   { 0x00800008, 0x2c402d29, 0x00b10c40, 0x00020002 },
-   { 0x00800008, 0x2c602d29, 0x00b10c60, 0x00020002 },
-   { 0x00800008, 0x2c802d29, 0x00b10c80, 0x00020002 },
-   { 0x00800008, 0x2ca02d29, 0x00b10ca0, 0x00020002 },
-   { 0x00800008, 0x2cc02d29, 0x00b10cc0, 0x00020002 },
-   { 0x00800008, 0x2ce02d29, 0x00b10ce0, 0x00020002 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x0000009a },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
-   { 0x00800031, 0x29c01d29, 0x008d0e60, 0x0411a007 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a001d29, 0x008d0e60, 0x0411a007 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a401d29, 0x008d0e60, 0x0411a007 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a801d29, 0x008d0e60, 0x0411a007 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0007001f },
-   { 0x00800031, 0x2ac01d29, 0x008d0e60, 0x0418a007 },
-   { 0x00000005, 0x20580c21, 0x00210e60, 0x00000003 },
-   { 0x00000041, 0x20580c21, 0x00210058, 0x00000009 },
-   { 0x00000020, 0x34001400, 0x00001400, 0x00210058 },
-   { 0x80800042, 0x2c004629, 0x00b109c0, 0x00b109c1 },
-   { 0x80800042, 0x2c204629, 0x00b10a00, 0x00b10a01 },
-   { 0x80800042, 0x2c404629, 0x00b10a40, 0x00b10a41 },
-   { 0x80800042, 0x2c604629, 0x00b10a80, 0x00b10a81 },
-   { 0x80800042, 0x2c804629, 0x00b10ac0, 0x00b10ac1 },
-   { 0x80800042, 0x2ca04629, 0x00b10b00, 0x00b10b01 },
-   { 0x80800042, 0x2cc04629, 0x00b10b40, 0x00b10b41 },
-   { 0x80800042, 0x2ce04629, 0x00b10b80, 0x00b10b81 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x0000001a },
-   { 0x80800042, 0x2c004629, 0x00b109c1, 0x00b109c2 },
-   { 0x80800042, 0x2c204629, 0x00b10a01, 0x00b10a02 },
-   { 0x80800042, 0x2c404629, 0x00b10a41, 0x00b10a42 },
-   { 0x80800042, 0x2c604629, 0x00b10a81, 0x00b10a82 },
-   { 0x80800042, 0x2c804629, 0x00b10ac1, 0x00b10ac2 },
-   { 0x80800042, 0x2ca04629, 0x00b10b01, 0x00b10b02 },
-   { 0x80800042, 0x2cc04629, 0x00b10b41, 0x00b10b42 },
-   { 0x80800042, 0x2ce04629, 0x00b10b81, 0x00b10b82 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000011 },
-   { 0x80800042, 0x2c004629, 0x00b109c2, 0x00b109c3 },
-   { 0x80800042, 0x2c204629, 0x00b10a02, 0x00b10a03 },
-   { 0x80800042, 0x2c404629, 0x00b10a42, 0x00b10a43 },
-   { 0x80800042, 0x2c604629, 0x00b10a82, 0x00b10a83 },
-   { 0x80800042, 0x2c804629, 0x00b10ac2, 0x00b10ac3 },
-   { 0x80800042, 0x2ca04629, 0x00b10b02, 0x00b10b03 },
-   { 0x80800042, 0x2cc04629, 0x00b10b42, 0x00b10b43 },
-   { 0x80800042, 0x2ce04629, 0x00b10b82, 0x00b10b83 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000008 },
-   { 0x80800042, 0x2c004629, 0x00b109c3, 0x00b109c4 },
-   { 0x80800042, 0x2c204629, 0x00b10a03, 0x00b10a04 },
-   { 0x80800042, 0x2c404629, 0x00b10a43, 0x00b10a44 },
-   { 0x80800042, 0x2c604629, 0x00b10a83, 0x00b10a84 },
-   { 0x80800042, 0x2c804629, 0x00b10ac3, 0x00b10ac4 },
-   { 0x80800042, 0x2ca04629, 0x00b10b03, 0x00b10b04 },
-   { 0x80800042, 0x2cc04629, 0x00b10b43, 0x00b10b44 },
-   { 0x80800042, 0x2ce04629, 0x00b10b83, 0x00b10b84 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000068 },
-   { 0x01000005, 0x20002d3c, 0x0021003c, 0x00010001 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000035 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
-   { 0x00800031, 0x29c01d29, 0x008d0e60, 0x0411a007 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a001d29, 0x008d0e60, 0x0411a007 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a401d29, 0x008d0e60, 0x0411a007 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a801d29, 0x008d0e60, 0x0411a007 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0007001f },
-   { 0x00800031, 0x2ac01d29, 0x008d0e60, 0x0418a007 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
-   { 0x00800031, 0x2bc01d29, 0x008d0e60, 0x0411a007 },
-   { 0x00000005, 0x20580c21, 0x00210e60, 0x00000003 },
-   { 0x00000041, 0x20580c21, 0x00210058, 0x00000009 },
-   { 0x00000020, 0x34001400, 0x00001400, 0x00210058 },
-   { 0x80800042, 0x2c004629, 0x00b109c0, 0x00b10a00 },
-   { 0x80800042, 0x2c204629, 0x00b10a00, 0x00b10a40 },
-   { 0x80800042, 0x2c404629, 0x00b10a40, 0x00b10a80 },
-   { 0x80800042, 0x2c604629, 0x00b10a80, 0x00b10ac0 },
-   { 0x80800042, 0x2c804629, 0x00b10ac0, 0x00b10b00 },
-   { 0x80800042, 0x2ca04629, 0x00b10b00, 0x00b10b40 },
-   { 0x80800042, 0x2cc04629, 0x00b10b40, 0x00b10b80 },
-   { 0x80800042, 0x2ce04629, 0x00b10b80, 0x00b10bc0 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x0000001a },
-   { 0x80800042, 0x2c004629, 0x00b109c1, 0x00b10a01 },
-   { 0x80800042, 0x2c204629, 0x00b10a01, 0x00b10a41 },
-   { 0x80800042, 0x2c404629, 0x00b10a41, 0x00b10a81 },
-   { 0x80800042, 0x2c604629, 0x00b10a81, 0x00b10ac1 },
-   { 0x80800042, 0x2c804629, 0x00b10ac1, 0x00b10b01 },
-   { 0x80800042, 0x2ca04629, 0x00b10b01, 0x00b10b41 },
-   { 0x80800042, 0x2cc04629, 0x00b10b41, 0x00b10b81 },
-   { 0x80800042, 0x2ce04629, 0x00b10b81, 0x00b10bc1 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000011 },
-   { 0x80800042, 0x2c004629, 0x00b109c2, 0x00b10a02 },
-   { 0x80800042, 0x2c204629, 0x00b10a02, 0x00b10a42 },
-   { 0x80800042, 0x2c404629, 0x00b10a42, 0x00b10a82 },
-   { 0x80800042, 0x2c604629, 0x00b10a82, 0x00b10ac2 },
-   { 0x80800042, 0x2c804629, 0x00b10ac2, 0x00b10b02 },
-   { 0x80800042, 0x2ca04629, 0x00b10b02, 0x00b10b42 },
-   { 0x80800042, 0x2cc04629, 0x00b10b42, 0x00b10b82 },
-   { 0x80800042, 0x2ce04629, 0x00b10b82, 0x00b10bc2 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000008 },
-   { 0x80800042, 0x2c004629, 0x00b109c3, 0x00b10a03 },
-   { 0x80800042, 0x2c204629, 0x00b10a03, 0x00b10a43 },
-   { 0x80800042, 0x2c404629, 0x00b10a43, 0x00b10a83 },
-   { 0x80800042, 0x2c604629, 0x00b10a83, 0x00b10ac3 },
-   { 0x80800042, 0x2c804629, 0x00b10ac3, 0x00b10b03 },
-   { 0x80800042, 0x2ca04629, 0x00b10b03, 0x00b10b43 },
-   { 0x80800042, 0x2cc04629, 0x00b10b43, 0x00b10b83 },
-   { 0x80800042, 0x2ce04629, 0x00b10b83, 0x00b10bc3 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000031 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
-   { 0x00800031, 0x29c01d29, 0x008d0e60, 0x0411a007 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a001d29, 0x008d0e60, 0x0411a007 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a401d29, 0x008d0e60, 0x0411a007 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a801d29, 0x008d0e60, 0x0411a007 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0007001f },
-   { 0x00800031, 0x2ac01d29, 0x008d0e60, 0x0418a007 },
-   { 0x00000005, 0x20580c21, 0x00210e60, 0x00000003 },
-   { 0x00000041, 0x20580c21, 0x00210058, 0x00000009 },
-   { 0x00000020, 0x34001400, 0x00001400, 0x00210058 },
-   { 0x00800001, 0x2c000229, 0x00b109c0, 0x00000000 },
-   { 0x00800001, 0x2c200229, 0x00b10a00, 0x00000000 },
-   { 0x00800001, 0x2c400229, 0x00b10a40, 0x00000000 },
-   { 0x00800001, 0x2c600229, 0x00b10a80, 0x00000000 },
-   { 0x00800001, 0x2c800229, 0x00b10ac0, 0x00000000 },
-   { 0x00800001, 0x2ca00229, 0x00b10b00, 0x00000000 },
-   { 0x00800001, 0x2cc00229, 0x00b10b40, 0x00000000 },
-   { 0x00800001, 0x2ce00229, 0x00b10b80, 0x00000000 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x0000001a },
-   { 0x00800001, 0x2c000229, 0x00b109c1, 0x00000000 },
-   { 0x00800001, 0x2c200229, 0x00b10a01, 0x00000000 },
-   { 0x00800001, 0x2c400229, 0x00b10a41, 0x00000000 },
-   { 0x00800001, 0x2c600229, 0x00b10a81, 0x00000000 },
-   { 0x00800001, 0x2c800229, 0x00b10ac1, 0x00000000 },
-   { 0x00800001, 0x2ca00229, 0x00b10b01, 0x00000000 },
-   { 0x00800001, 0x2cc00229, 0x00b10b41, 0x00000000 },
-   { 0x00800001, 0x2ce00229, 0x00b10b81, 0x00000000 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000011 },
-   { 0x00800001, 0x2c000229, 0x00b109c2, 0x00000000 },
-   { 0x00800001, 0x2c200229, 0x00b10a02, 0x00000000 },
-   { 0x00800001, 0x2c400229, 0x00b10a42, 0x00000000 },
-   { 0x00800001, 0x2c600229, 0x00b10a82, 0x00000000 },
-   { 0x00800001, 0x2c800229, 0x00b10ac2, 0x00000000 },
-   { 0x00800001, 0x2ca00229, 0x00b10b02, 0x00000000 },
-   { 0x00800001, 0x2cc00229, 0x00b10b42, 0x00000000 },
-   { 0x00800001, 0x2ce00229, 0x00b10b82, 0x00000000 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000008 },
-   { 0x00800001, 0x2c000229, 0x00b109c3, 0x00000000 },
-   { 0x00800001, 0x2c200229, 0x00b10a03, 0x00000000 },
-   { 0x00800001, 0x2c400229, 0x00b10a43, 0x00000000 },
-   { 0x00800001, 0x2c600229, 0x00b10a83, 0x00000000 },
-   { 0x00800001, 0x2c800229, 0x00b10ac3, 0x00000000 },
-   { 0x00800001, 0x2ca00229, 0x00b10b03, 0x00000000 },
-   { 0x00800001, 0x2cc00229, 0x00b10b43, 0x00000000 },
-   { 0x00800001, 0x2ce00229, 0x00b10b83, 0x00000000 },
-   { 0x00600001, 0x23a00021, 0x008d0c00, 0x00000000 },
-   { 0x00600001, 0x23e00021, 0x008d0c20, 0x00000000 },
-   { 0x00600001, 0x24200021, 0x008d0c40, 0x00000000 },
-   { 0x00600001, 0x24600021, 0x008d0c60, 0x00000000 },
-   { 0x00600001, 0x24a00021, 0x008d0c80, 0x00000000 },
-   { 0x00600001, 0x24e00021, 0x008d0ca0, 0x00000000 },
-   { 0x00600001, 0x25200021, 0x008d0cc0, 0x00000000 },
-   { 0x00600001, 0x25600021, 0x008d0ce0, 0x00000000 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0007000f },
-   { 0x0020000c, 0x2e6e3dad, 0x00450032, 0x00020002 },
-   { 0x0020000c, 0x2e601ca5, 0x00450e80, 0x00000001 },
-   { 0x00200040, 0x2e6034a5, 0x00450e60, 0x00450e6e },
-   { 0x00000005, 0x2e640c21, 0x00210e64, 0xfffffffe },
-   { 0x02000005, 0x20002e3c, 0x0021003f, 0x00020002 },
-   { 0x00010040, 0x2e640c21, 0x00210e64, 0x00000001 },
-   { 0x01000005, 0x20002d3c, 0x00210032, 0x00020002 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x000000a2 },
-   { 0x01000005, 0x20002d3c, 0x00210034, 0x00020002 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000076 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0007000f },
-   { 0x00800031, 0x2ac01d29, 0x00ad0e60, 0x0414a008 },
-   { 0x00800031, 0x2b601d29, 0x00ad0e60, 0x0414a009 },
-   { 0x00000005, 0x20580c21, 0x00210e60, 0x00000003 },
-   { 0x00000041, 0x20580c21, 0x00210058, 0x00000019 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0001000f },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 },
-   { 0x00800031, 0x2b401d29, 0x00ad0e60, 0x0411a008 },
-   { 0x00800031, 0x2be01d29, 0x00ad0e60, 0x0411a009 },
-   { 0x00000020, 0x34001400, 0x00001400, 0x00210058 },
-   { 0x00800040, 0x29c04629, 0x00ad0ac0, 0x00ad0ae0 },
-   { 0x00800040, 0x29e04629, 0x00ad0ae0, 0x00ad0b00 },
-   { 0x00800040, 0x2a004629, 0x00ad0b00, 0x00ad0b20 },
-   { 0x00800040, 0x2a204629, 0x00ad0b20, 0x00ad0b40 },
-   { 0x00800040, 0x29c04529, 0x00ad09c0, 0x00ad0ac1 },
-   { 0x00800040, 0x29e04529, 0x00ad09e0, 0x00ad0ae1 },
-   { 0x00800040, 0x2a004529, 0x00ad0a00, 0x00ad0b01 },
-   { 0x00800040, 0x2a204529, 0x00ad0a20, 0x00ad0b21 },
-   { 0x00800040, 0x29c04529, 0x00ad09c0, 0x00ad0ae1 },
-   { 0x00800040, 0x29e04529, 0x00ad09e0, 0x00ad0b01 },
-   { 0x00800040, 0x2a004529, 0x00ad0a00, 0x00ad0b21 },
-   { 0x00800040, 0x2a204529, 0x00ad0a20, 0x00ad0b41 },
-   { 0x00800040, 0x2a404629, 0x00ad0b60, 0x00ad0b80 },
-   { 0x00800040, 0x2a604629, 0x00ad0b80, 0x00ad0ba0 },
-   { 0x00800040, 0x2a804629, 0x00ad0ba0, 0x00ad0bc0 },
-   { 0x00800040, 0x2aa04629, 0x00ad0bc0, 0x00ad0be0 },
-   { 0x00800040, 0x2a404529, 0x00ad0a40, 0x00ad0b61 },
-   { 0x00800040, 0x2a604529, 0x00ad0a60, 0x00ad0b81 },
-   { 0x00800040, 0x2a804529, 0x00ad0a80, 0x00ad0ba1 },
-   { 0x00800040, 0x2aa04529, 0x00ad0aa0, 0x00ad0bc1 },
-   { 0x00800040, 0x2a404529, 0x00ad0a40, 0x00ad0b81 },
-   { 0x00800040, 0x2a604529, 0x00ad0a60, 0x00ad0ba1 },
-   { 0x00800040, 0x2a804529, 0x00ad0a80, 0x00ad0bc1 },
-   { 0x00800040, 0x2aa04529, 0x00ad0aa0, 0x00ad0be1 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x0000004a },
-   { 0x00800040, 0x29c04629, 0x00ad0ac1, 0x00ad0ae1 },
-   { 0x00800040, 0x29e04629, 0x00ad0ae1, 0x00ad0b01 },
-   { 0x00800040, 0x2a004629, 0x00ad0b01, 0x00ad0b21 },
-   { 0x00800040, 0x2a204629, 0x00ad0b21, 0x00ad0b41 },
-   { 0x00800040, 0x29c04529, 0x00ad09c0, 0x00ad0ac2 },
-   { 0x00800040, 0x29e04529, 0x00ad09e0, 0x00ad0ae2 },
-   { 0x00800040, 0x2a004529, 0x00ad0a00, 0x00ad0b02 },
-   { 0x00800040, 0x2a204529, 0x00ad0a20, 0x00ad0b22 },
-   { 0x00800040, 0x29c04529, 0x00ad09c0, 0x00ad0ae2 },
-   { 0x00800040, 0x29e04529, 0x00ad09e0, 0x00ad0b02 },
-   { 0x00800040, 0x2a004529, 0x00ad0a00, 0x00ad0b22 },
-   { 0x00800040, 0x2a204529, 0x00ad0a20, 0x00ad0b42 },
-   { 0x00800040, 0x2a404629, 0x00ad0b61, 0x00ad0b81 },
-   { 0x00800040, 0x2a604629, 0x00ad0b81, 0x00ad0ba1 },
-   { 0x00800040, 0x2a804629, 0x00ad0ba1, 0x00ad0bc1 },
-   { 0x00800040, 0x2aa04629, 0x00ad0bc1, 0x00ad0be1 },
-   { 0x00800040, 0x2a404529, 0x00ad0a40, 0x00ad0b62 },
-   { 0x00800040, 0x2a604529, 0x00ad0a60, 0x00ad0b82 },
-   { 0x00800040, 0x2a804529, 0x00ad0a80, 0x00ad0ba2 },
-   { 0x00800040, 0x2aa04529, 0x00ad0aa0, 0x00ad0bc2 },
-   { 0x00800040, 0x2a404529, 0x00ad0a40, 0x00ad0b82 },
-   { 0x00800040, 0x2a604529, 0x00ad0a60, 0x00ad0ba2 },
-   { 0x00800040, 0x2a804529, 0x00ad0a80, 0x00ad0bc2 },
-   { 0x00800040, 0x2aa04529, 0x00ad0aa0, 0x00ad0be2 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000031 },
-   { 0x00800040, 0x29c04629, 0x00ad0ac2, 0x00ad0ae2 },
-   { 0x00800040, 0x29e04629, 0x00ad0ae2, 0x00ad0b02 },
-   { 0x00800040, 0x2a004629, 0x00ad0b02, 0x00ad0b22 },
-   { 0x00800040, 0x2a204629, 0x00ad0b22, 0x00ad0b42 },
-   { 0x00800040, 0x29c04529, 0x00ad09c0, 0x00ad0ac3 },
-   { 0x00800040, 0x29e04529, 0x00ad09e0, 0x00ad0ae3 },
-   { 0x00800040, 0x2a004529, 0x00ad0a00, 0x00ad0b03 },
-   { 0x00800040, 0x2a204529, 0x00ad0a20, 0x00ad0b23 },
-   { 0x00800040, 0x29c04529, 0x00ad09c0, 0x00ad0ae3 },
-   { 0x00800040, 0x29e04529, 0x00ad09e0, 0x00ad0b03 },
-   { 0x00800040, 0x2a004529, 0x00ad0a00, 0x00ad0b23 },
-   { 0x00800040, 0x2a204529, 0x00ad0a20, 0x00ad0b43 },
-   { 0x00800040, 0x2a404629, 0x00ad0b62, 0x00ad0b82 },
-   { 0x00800040, 0x2a604629, 0x00ad0b82, 0x00ad0ba2 },
-   { 0x00800040, 0x2a804629, 0x00ad0ba2, 0x00ad0bc2 },
-   { 0x00800040, 0x2aa04629, 0x00ad0bc2, 0x00ad0be2 },
-   { 0x00800040, 0x2a404529, 0x00ad0a40, 0x00ad0b63 },
-   { 0x00800040, 0x2a604529, 0x00ad0a60, 0x00ad0b83 },
-   { 0x00800040, 0x2a804529, 0x00ad0a80, 0x00ad0ba3 },
-   { 0x00800040, 0x2aa04529, 0x00ad0aa0, 0x00ad0bc3 },
-   { 0x00800040, 0x2a404529, 0x00ad0a40, 0x00ad0b83 },
-   { 0x00800040, 0x2a604529, 0x00ad0a60, 0x00ad0ba3 },
-   { 0x00800040, 0x2a804529, 0x00ad0a80, 0x00ad0bc3 },
-   { 0x00800040, 0x2aa04529, 0x00ad0aa0, 0x00ad0be3 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000018 },
-   { 0x00800040, 0x29c04629, 0x00ad0ac3, 0x00ad0ae3 },
-   { 0x00800040, 0x29e04629, 0x00ad0ae3, 0x00ad0b03 },
-   { 0x00800040, 0x2a004629, 0x00ad0b03, 0x00ad0b23 },
-   { 0x00800040, 0x2a204629, 0x00ad0b23, 0x00ad0b43 },
-   { 0x00800040, 0x29c04529, 0x00ad09c0, 0x00ad0ac4 },
-   { 0x00800040, 0x29e04529, 0x00ad09e0, 0x00ad0ae4 },
-   { 0x00800040, 0x2a004529, 0x00ad0a00, 0x00ad0b04 },
-   { 0x00800040, 0x2a204529, 0x00ad0a20, 0x00ad0b24 },
-   { 0x00800040, 0x29c04529, 0x00ad09c0, 0x00ad0ae4 },
-   { 0x00800040, 0x29e04529, 0x00ad09e0, 0x00ad0b04 },
-   { 0x00800040, 0x2a004529, 0x00ad0a00, 0x00ad0b24 },
-   { 0x00800040, 0x2a204529, 0x00ad0a20, 0x00ad0b44 },
-   { 0x00800040, 0x2a404629, 0x00ad0b63, 0x00ad0b83 },
-   { 0x00800040, 0x2a604629, 0x00ad0b83, 0x00ad0ba3 },
-   { 0x00800040, 0x2a804629, 0x00ad0ba3, 0x00ad0bc3 },
-   { 0x00800040, 0x2aa04629, 0x00ad0bc3, 0x00ad0be3 },
-   { 0x00800040, 0x2a404529, 0x00ad0a40, 0x00ad0b64 },
-   { 0x00800040, 0x2a604529, 0x00ad0a60, 0x00ad0b84 },
-   { 0x00800040, 0x2a804529, 0x00ad0a80, 0x00ad0ba4 },
-   { 0x00800040, 0x2aa04529, 0x00ad0aa0, 0x00ad0bc4 },
-   { 0x00800040, 0x2a404529, 0x00ad0a40, 0x00ad0b84 },
-   { 0x00800040, 0x2a604529, 0x00ad0a60, 0x00ad0ba4 },
-   { 0x00800040, 0x2a804529, 0x00ad0a80, 0x00ad0bc4 },
-   { 0x00800040, 0x2aa04529, 0x00ad0aa0, 0x00ad0be4 },
-   { 0x80800008, 0x29c02d29, 0x00b109c0, 0x00020002 },
-   { 0x80800008, 0x29e02d29, 0x00b109e0, 0x00020002 },
-   { 0x80800008, 0x2a002d29, 0x00b10a00, 0x00020002 },
-   { 0x80800008, 0x2a202d29, 0x00b10a20, 0x00020002 },
-   { 0x80800008, 0x2a402d29, 0x00b10a40, 0x00020002 },
-   { 0x80800008, 0x2a602d29, 0x00b10a60, 0x00020002 },
-   { 0x80800008, 0x2a802d29, 0x00b10a80, 0x00020002 },
-   { 0x80800008, 0x2aa02d29, 0x00b10aa0, 0x00020002 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000082 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0007000f },
-   { 0x00800031, 0x2ac01d29, 0x00ad0e60, 0x0414a008 },
-   { 0x00800031, 0x2b601d29, 0x00ad0e60, 0x0414a009 },
-   { 0x00000005, 0x20580c21, 0x00210e60, 0x00000003 },
-   { 0x00000041, 0x20580c21, 0x00210058, 0x00000009 },
-   { 0x00000020, 0x34001400, 0x00001400, 0x00210058 },
-   { 0x80800042, 0x29c04629, 0x00ad0ac0, 0x00ad0ac1 },
-   { 0x80800042, 0x29e04629, 0x00ad0ae0, 0x00ad0ae1 },
-   { 0x80800042, 0x2a004629, 0x00ad0b00, 0x00ad0b01 },
-   { 0x80800042, 0x2a204629, 0x00ad0b20, 0x00ad0b21 },
-   { 0x80800042, 0x2a404629, 0x00ad0b60, 0x00ad0b61 },
-   { 0x80800042, 0x2a604629, 0x00ad0b80, 0x00ad0b81 },
-   { 0x80800042, 0x2a804629, 0x00ad0ba0, 0x00ad0ba1 },
-   { 0x80800042, 0x2aa04629, 0x00ad0bc0, 0x00ad0bc1 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x0000001a },
-   { 0x80800042, 0x29c04629, 0x00ad0ac1, 0x00ad0ac2 },
-   { 0x80800042, 0x29e04629, 0x00ad0ae1, 0x00ad0ae2 },
-   { 0x80800042, 0x2a004629, 0x00ad0b01, 0x00ad0b02 },
-   { 0x80800042, 0x2a204629, 0x00ad0b21, 0x00ad0b22 },
-   { 0x80800042, 0x2a404629, 0x00ad0b61, 0x00ad0b62 },
-   { 0x80800042, 0x2a604629, 0x00ad0b81, 0x00ad0b82 },
-   { 0x80800042, 0x2a804629, 0x00ad0ba1, 0x00ad0ba2 },
-   { 0x80800042, 0x2aa04629, 0x00ad0bc1, 0x00ad0bc2 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000011 },
-   { 0x80800042, 0x29c04629, 0x00ad0ac2, 0x00ad0ac3 },
-   { 0x80800042, 0x29e04629, 0x00ad0ae2, 0x00ad0ae3 },
-   { 0x80800042, 0x2a004629, 0x00ad0b02, 0x00ad0b03 },
-   { 0x80800042, 0x2a204629, 0x00ad0b22, 0x00ad0b23 },
-   { 0x80800042, 0x2a404629, 0x00ad0b62, 0x00ad0b63 },
-   { 0x80800042, 0x2a604629, 0x00ad0b82, 0x00ad0b83 },
-   { 0x80800042, 0x2a804629, 0x00ad0ba2, 0x00ad0ba3 },
-   { 0x80800042, 0x2aa04629, 0x00ad0bc2, 0x00ad0bc3 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000008 },
-   { 0x80800042, 0x29c04629, 0x00ad0ac3, 0x00ad0ac4 },
-   { 0x80800042, 0x29e04629, 0x00ad0ae3, 0x00ad0ae4 },
-   { 0x80800042, 0x2a004629, 0x00ad0b03, 0x00ad0b04 },
-   { 0x80800042, 0x2a204629, 0x00ad0b23, 0x00ad0b24 },
-   { 0x80800042, 0x2a404629, 0x00ad0b63, 0x00ad0b64 },
-   { 0x80800042, 0x2a604629, 0x00ad0b83, 0x00ad0b84 },
-   { 0x80800042, 0x2a804629, 0x00ad0ba3, 0x00ad0ba4 },
-   { 0x80800042, 0x2aa04629, 0x00ad0bc3, 0x00ad0bc4 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000058 },
-   { 0x01000005, 0x20002d3c, 0x00210034, 0x00020002 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x0000002d },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0007000f },
-   { 0x00800031, 0x2ac01d29, 0x00ad0e60, 0x0414a008 },
-   { 0x00800031, 0x2b601d29, 0x00ad0e60, 0x0414a009 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0000000f },
-   { 0x00800031, 0x2b401d29, 0x00ad0e60, 0x0411a008 },
-   { 0x00800031, 0x2be01d29, 0x00ad0e60, 0x0411a009 },
-   { 0x00000005, 0x20580c21, 0x00210e60, 0x00000003 },
-   { 0x00000041, 0x20580c21, 0x00210058, 0x00000009 },
-   { 0x00000020, 0x34001400, 0x00001400, 0x00210058 },
-   { 0x80800042, 0x29c04629, 0x00ad0ac0, 0x00ad0ae0 },
-   { 0x80800042, 0x29e04629, 0x00ad0ae0, 0x00ad0b00 },
-   { 0x80800042, 0x2a004629, 0x00ad0b00, 0x00ad0b20 },
-   { 0x80800042, 0x2a204629, 0x00ad0b20, 0x00ad0b40 },
-   { 0x80800042, 0x2a404629, 0x00ad0b60, 0x00ad0b80 },
-   { 0x80800042, 0x2a604629, 0x00ad0b80, 0x00ad0ba0 },
-   { 0x80800042, 0x2a804629, 0x00ad0ba0, 0x00ad0bc0 },
-   { 0x80800042, 0x2aa04629, 0x00ad0bc0, 0x00ad0be0 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x0000001a },
-   { 0x80800042, 0x29c04629, 0x00ad0ac1, 0x00ad0ae1 },
-   { 0x80800042, 0x29e04629, 0x00ad0ae1, 0x00ad0b01 },
-   { 0x80800042, 0x2a004629, 0x00ad0b01, 0x00ad0b21 },
-   { 0x80800042, 0x2a204629, 0x00ad0b21, 0x00ad0b41 },
-   { 0x80800042, 0x2a404629, 0x00ad0b61, 0x00ad0b81 },
-   { 0x80800042, 0x2a604629, 0x00ad0b81, 0x00ad0ba1 },
-   { 0x80800042, 0x2a804629, 0x00ad0ba1, 0x00ad0bc1 },
-   { 0x80800042, 0x2aa04629, 0x00ad0bc1, 0x00ad0be1 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000011 },
-   { 0x80800042, 0x29c04629, 0x00ad0ac2, 0x00ad0ae2 },
-   { 0x80800042, 0x29e04629, 0x00ad0ae2, 0x00ad0b02 },
-   { 0x80800042, 0x2a004629, 0x00ad0b02, 0x00ad0b22 },
-   { 0x80800042, 0x2a204629, 0x00ad0b22, 0x00ad0b42 },
-   { 0x80800042, 0x2a404629, 0x00ad0b62, 0x00ad0b82 },
-   { 0x80800042, 0x2a604629, 0x00ad0b82, 0x00ad0ba2 },
-   { 0x80800042, 0x2a804629, 0x00ad0ba2, 0x00ad0bc2 },
-   { 0x80800042, 0x2aa04629, 0x00ad0bc2, 0x00ad0be2 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000008 },
-   { 0x80800042, 0x29c04629, 0x00ad0ac3, 0x00ad0ac3 },
-   { 0x80800042, 0x29e04629, 0x00ad0ae3, 0x00ad0ae3 },
-   { 0x80800042, 0x2a004629, 0x00ad0b03, 0x00ad0b03 },
-   { 0x80800042, 0x2a204629, 0x00ad0b23, 0x00ad0b23 },
-   { 0x80800042, 0x2a404629, 0x00ad0b63, 0x00ad0b63 },
-   { 0x80800042, 0x2a604629, 0x00ad0b83, 0x00ad0b83 },
-   { 0x80800042, 0x2a804629, 0x00ad0ba3, 0x00ad0ba3 },
-   { 0x80800042, 0x2aa04629, 0x00ad0bc3, 0x00ad0bc3 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000029 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0007000f },
-   { 0x00800031, 0x2ac01d29, 0x00ad0e60, 0x0414a008 },
-   { 0x00800031, 0x2b601d29, 0x00ad0e60, 0x0414a009 },
-   { 0x00000005, 0x20580c21, 0x00210e60, 0x00000003 },
-   { 0x00000041, 0x20580c21, 0x00210058, 0x00000009 },
-   { 0x00000020, 0x34001400, 0x00001400, 0x00210058 },
-   { 0x00800001, 0x29c00229, 0x00ad0ac0, 0x00000000 },
-   { 0x00800001, 0x29e00229, 0x00ad0ae0, 0x00000000 },
-   { 0x00800001, 0x2a000229, 0x00ad0b00, 0x00000000 },
-   { 0x00800001, 0x2a200229, 0x00ad0b20, 0x00000000 },
-   { 0x00800001, 0x2a400229, 0x00ad0b60, 0x00000000 },
-   { 0x00800001, 0x2a600229, 0x00ad0b80, 0x00000000 },
-   { 0x00800001, 0x2a800229, 0x00ad0ba0, 0x00000000 },
-   { 0x00800001, 0x2aa00229, 0x00ad0bc0, 0x00000000 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x0000001a },
-   { 0x00800001, 0x29c00229, 0x00ad0ac1, 0x00000000 },
-   { 0x00800001, 0x29e00229, 0x00ad0ae1, 0x00000000 },
-   { 0x00800001, 0x2a000229, 0x00ad0b01, 0x00000000 },
-   { 0x00800001, 0x2a200229, 0x00ad0b21, 0x00000000 },
-   { 0x00800001, 0x2a400229, 0x00ad0b61, 0x00000000 },
-   { 0x00800001, 0x2a600229, 0x00ad0b81, 0x00000000 },
-   { 0x00800001, 0x2a800229, 0x00ad0ba1, 0x00000000 },
-   { 0x00800001, 0x2aa00229, 0x00ad0bc1, 0x00000000 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000011 },
-   { 0x00800001, 0x29c00229, 0x00ad0ac2, 0x00000000 },
-   { 0x00800001, 0x29e00229, 0x00ad0ae2, 0x00000000 },
-   { 0x00800001, 0x2a000229, 0x00ad0b02, 0x00000000 },
-   { 0x00800001, 0x2a200229, 0x00ad0b22, 0x00000000 },
-   { 0x00800001, 0x2a400229, 0x00ad0b62, 0x00000000 },
-   { 0x00800001, 0x2a600229, 0x00ad0b82, 0x00000000 },
-   { 0x00800001, 0x2a800229, 0x00ad0ba2, 0x00000000 },
-   { 0x00800001, 0x2aa00229, 0x00ad0bc2, 0x00000000 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000008 },
-   { 0x00800001, 0x29c00229, 0x00ad0ac3, 0x00000000 },
-   { 0x00800001, 0x29e00229, 0x00ad0ae3, 0x00000000 },
-   { 0x00800001, 0x2a000229, 0x00ad0b03, 0x00000000 },
-   { 0x00800001, 0x2a200229, 0x00ad0b23, 0x00000000 },
-   { 0x00800001, 0x2a400229, 0x00ad0b63, 0x00000000 },
-   { 0x00800001, 0x2a600229, 0x00ad0b83, 0x00000000 },
-   { 0x00800001, 0x2a800229, 0x00ad0ba3, 0x00000000 },
-   { 0x00800001, 0x2aa00229, 0x00ad0bc3, 0x00000000 },
-   { 0x00600001, 0x25800129, 0x008d09c0, 0x00000000 },
-   { 0x00600001, 0x25a00129, 0x008d09e0, 0x00000000 },
-   { 0x00600001, 0x25c00129, 0x008d0a00, 0x00000000 },
-   { 0x00600001, 0x25e00129, 0x008d0a20, 0x00000000 },
-   { 0x00600001, 0x26000129, 0x008d0a40, 0x00000000 },
-   { 0x00600001, 0x26200129, 0x008d0a60, 0x00000000 },
-   { 0x00600001, 0x26400129, 0x008d0a80, 0x00000000 },
-   { 0x00600001, 0x26600129, 0x008d0aa0, 0x00000000 },
-   { 0x0020000c, 0x2e6e3dad, 0x0045003a, 0x00020002 },
-   { 0x0020000c, 0x2e601ca5, 0x00450e80, 0x00000001 },
-   { 0x00200040, 0x2e6034a5, 0x00450e60, 0x00450e6e },
-   { 0x00000005, 0x2e640c21, 0x00210e64, 0xfffffffe },
-   { 0x02000005, 0x20002e3c, 0x0021003f, 0x00080008 },
-   { 0x00010040, 0x2e640c21, 0x00210e64, 0x00000001 },
-   { 0x01000005, 0x20002d3c, 0x0021003a, 0x00020002 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x000000a2 },
-   { 0x01000005, 0x20002d3c, 0x0021003c, 0x00020002 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000076 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0007000f },
-   { 0x00800031, 0x2ac01d29, 0x00ad0e60, 0x0414a008 },
-   { 0x00800031, 0x2b601d29, 0x00ad0e60, 0x0414a009 },
-   { 0x00000005, 0x20580c21, 0x00210e60, 0x00000003 },
-   { 0x00000041, 0x20580c21, 0x00210058, 0x00000019 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0001000f },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 },
-   { 0x00800031, 0x2b401d29, 0x00ad0e60, 0x0411a008 },
-   { 0x00800031, 0x2be01d29, 0x00ad0e60, 0x0411a009 },
-   { 0x00000020, 0x34001400, 0x00001400, 0x00210058 },
-   { 0x00800040, 0x29c04629, 0x00ad0ac0, 0x00ad0ae0 },
-   { 0x00800040, 0x29e04629, 0x00ad0ae0, 0x00ad0b00 },
-   { 0x00800040, 0x2a004629, 0x00ad0b00, 0x00ad0b20 },
-   { 0x00800040, 0x2a204629, 0x00ad0b20, 0x00ad0b40 },
-   { 0x00800040, 0x29c04529, 0x00ad09c0, 0x00ad0ac1 },
-   { 0x00800040, 0x29e04529, 0x00ad09e0, 0x00ad0ae1 },
-   { 0x00800040, 0x2a004529, 0x00ad0a00, 0x00ad0b01 },
-   { 0x00800040, 0x2a204529, 0x00ad0a20, 0x00ad0b21 },
-   { 0x00800040, 0x29c04529, 0x00ad09c0, 0x00ad0ae1 },
-   { 0x00800040, 0x29e04529, 0x00ad09e0, 0x00ad0b01 },
-   { 0x00800040, 0x2a004529, 0x00ad0a00, 0x00ad0b21 },
-   { 0x00800040, 0x2a204529, 0x00ad0a20, 0x00ad0b41 },
-   { 0x00800040, 0x2a404629, 0x00ad0b60, 0x00ad0b80 },
-   { 0x00800040, 0x2a604629, 0x00ad0b80, 0x00ad0ba0 },
-   { 0x00800040, 0x2a804629, 0x00ad0ba0, 0x00ad0bc0 },
-   { 0x00800040, 0x2aa04629, 0x00ad0bc0, 0x00ad0be0 },
-   { 0x00800040, 0x2a404529, 0x00ad0a40, 0x00ad0b61 },
-   { 0x00800040, 0x2a604529, 0x00ad0a60, 0x00ad0b81 },
-   { 0x00800040, 0x2a804529, 0x00ad0a80, 0x00ad0ba1 },
-   { 0x00800040, 0x2aa04529, 0x00ad0aa0, 0x00ad0bc1 },
-   { 0x00800040, 0x2a404529, 0x00ad0a40, 0x00ad0b81 },
-   { 0x00800040, 0x2a604529, 0x00ad0a60, 0x00ad0ba1 },
-   { 0x00800040, 0x2a804529, 0x00ad0a80, 0x00ad0bc1 },
-   { 0x00800040, 0x2aa04529, 0x00ad0aa0, 0x00ad0be1 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x0000004a },
-   { 0x00800040, 0x29c04629, 0x00ad0ac1, 0x00ad0ae1 },
-   { 0x00800040, 0x29e04629, 0x00ad0ae1, 0x00ad0b01 },
-   { 0x00800040, 0x2a004629, 0x00ad0b01, 0x00ad0b21 },
-   { 0x00800040, 0x2a204629, 0x00ad0b21, 0x00ad0b41 },
-   { 0x00800040, 0x29c04529, 0x00ad09c0, 0x00ad0ac2 },
-   { 0x00800040, 0x29e04529, 0x00ad09e0, 0x00ad0ae2 },
-   { 0x00800040, 0x2a004529, 0x00ad0a00, 0x00ad0b02 },
-   { 0x00800040, 0x2a204529, 0x00ad0a20, 0x00ad0b22 },
-   { 0x00800040, 0x29c04529, 0x00ad09c0, 0x00ad0ae2 },
-   { 0x00800040, 0x29e04529, 0x00ad09e0, 0x00ad0b02 },
-   { 0x00800040, 0x2a004529, 0x00ad0a00, 0x00ad0b22 },
-   { 0x00800040, 0x2a204529, 0x00ad0a20, 0x00ad0b42 },
-   { 0x00800040, 0x2a404629, 0x00ad0b61, 0x00ad0b81 },
-   { 0x00800040, 0x2a604629, 0x00ad0b81, 0x00ad0ba1 },
-   { 0x00800040, 0x2a804629, 0x00ad0ba1, 0x00ad0bc1 },
-   { 0x00800040, 0x2aa04629, 0x00ad0bc1, 0x00ad0be1 },
-   { 0x00800040, 0x2a404529, 0x00ad0a40, 0x00ad0b62 },
-   { 0x00800040, 0x2a604529, 0x00ad0a60, 0x00ad0b82 },
-   { 0x00800040, 0x2a804529, 0x00ad0a80, 0x00ad0ba2 },
-   { 0x00800040, 0x2aa04529, 0x00ad0aa0, 0x00ad0bc2 },
-   { 0x00800040, 0x2a404529, 0x00ad0a40, 0x00ad0b82 },
-   { 0x00800040, 0x2a604529, 0x00ad0a60, 0x00ad0ba2 },
-   { 0x00800040, 0x2a804529, 0x00ad0a80, 0x00ad0bc2 },
-   { 0x00800040, 0x2aa04529, 0x00ad0aa0, 0x00ad0be2 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000031 },
-   { 0x00800040, 0x29c04629, 0x00ad0ac2, 0x00ad0ae2 },
-   { 0x00800040, 0x29e04629, 0x00ad0ae2, 0x00ad0b02 },
-   { 0x00800040, 0x2a004629, 0x00ad0b02, 0x00ad0b22 },
-   { 0x00800040, 0x2a204629, 0x00ad0b22, 0x00ad0b42 },
-   { 0x00800040, 0x29c04529, 0x00ad09c0, 0x00ad0ac3 },
-   { 0x00800040, 0x29e04529, 0x00ad09e0, 0x00ad0ae3 },
-   { 0x00800040, 0x2a004529, 0x00ad0a00, 0x00ad0b03 },
-   { 0x00800040, 0x2a204529, 0x00ad0a20, 0x00ad0b23 },
-   { 0x00800040, 0x29c04529, 0x00ad09c0, 0x00ad0ae3 },
-   { 0x00800040, 0x29e04529, 0x00ad09e0, 0x00ad0b03 },
-   { 0x00800040, 0x2a004529, 0x00ad0a00, 0x00ad0b23 },
-   { 0x00800040, 0x2a204529, 0x00ad0a20, 0x00ad0b43 },
-   { 0x00800040, 0x2a404629, 0x00ad0b62, 0x00ad0b82 },
-   { 0x00800040, 0x2a604629, 0x00ad0b82, 0x00ad0ba2 },
-   { 0x00800040, 0x2a804629, 0x00ad0ba2, 0x00ad0bc2 },
-   { 0x00800040, 0x2aa04629, 0x00ad0bc2, 0x00ad0be2 },
-   { 0x00800040, 0x2a404529, 0x00ad0a40, 0x00ad0b63 },
-   { 0x00800040, 0x2a604529, 0x00ad0a60, 0x00ad0b83 },
-   { 0x00800040, 0x2a804529, 0x00ad0a80, 0x00ad0ba3 },
-   { 0x00800040, 0x2aa04529, 0x00ad0aa0, 0x00ad0bc3 },
-   { 0x00800040, 0x2a404529, 0x00ad0a40, 0x00ad0b83 },
-   { 0x00800040, 0x2a604529, 0x00ad0a60, 0x00ad0ba3 },
-   { 0x00800040, 0x2a804529, 0x00ad0a80, 0x00ad0bc3 },
-   { 0x00800040, 0x2aa04529, 0x00ad0aa0, 0x00ad0be3 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000018 },
-   { 0x00800040, 0x29c04629, 0x00ad0ac3, 0x00ad0ae3 },
-   { 0x00800040, 0x29e04629, 0x00ad0ae3, 0x00ad0b03 },
-   { 0x00800040, 0x2a004629, 0x00ad0b03, 0x00ad0b23 },
-   { 0x00800040, 0x2a204629, 0x00ad0b23, 0x00ad0b43 },
-   { 0x00800040, 0x29c04529, 0x00ad09c0, 0x00ad0ac4 },
-   { 0x00800040, 0x29e04529, 0x00ad09e0, 0x00ad0ae4 },
-   { 0x00800040, 0x2a004529, 0x00ad0a00, 0x00ad0b04 },
-   { 0x00800040, 0x2a204529, 0x00ad0a20, 0x00ad0b24 },
-   { 0x00800040, 0x29c04529, 0x00ad09c0, 0x00ad0ae4 },
-   { 0x00800040, 0x29e04529, 0x00ad09e0, 0x00ad0b04 },
-   { 0x00800040, 0x2a004529, 0x00ad0a00, 0x00ad0b24 },
-   { 0x00800040, 0x2a204529, 0x00ad0a20, 0x00ad0b44 },
-   { 0x00800040, 0x2a404629, 0x00ad0b63, 0x00ad0b83 },
-   { 0x00800040, 0x2a604629, 0x00ad0b83, 0x00ad0ba3 },
-   { 0x00800040, 0x2a804629, 0x00ad0ba3, 0x00ad0bc3 },
-   { 0x00800040, 0x2aa04629, 0x00ad0bc3, 0x00ad0be3 },
-   { 0x00800040, 0x2a404529, 0x00ad0a40, 0x00ad0b64 },
-   { 0x00800040, 0x2a604529, 0x00ad0a60, 0x00ad0b84 },
-   { 0x00800040, 0x2a804529, 0x00ad0a80, 0x00ad0ba4 },
-   { 0x00800040, 0x2aa04529, 0x00ad0aa0, 0x00ad0bc4 },
-   { 0x00800040, 0x2a404529, 0x00ad0a40, 0x00ad0b84 },
-   { 0x00800040, 0x2a604529, 0x00ad0a60, 0x00ad0ba4 },
-   { 0x00800040, 0x2a804529, 0x00ad0a80, 0x00ad0bc4 },
-   { 0x00800040, 0x2aa04529, 0x00ad0aa0, 0x00ad0be4 },
-   { 0x80800008, 0x29c02d29, 0x00b109c0, 0x00020002 },
-   { 0x80800008, 0x29e02d29, 0x00b109e0, 0x00020002 },
-   { 0x80800008, 0x2a002d29, 0x00b10a00, 0x00020002 },
-   { 0x80800008, 0x2a202d29, 0x00b10a20, 0x00020002 },
-   { 0x80800008, 0x2a402d29, 0x00b10a40, 0x00020002 },
-   { 0x80800008, 0x2a602d29, 0x00b10a60, 0x00020002 },
-   { 0x80800008, 0x2a802d29, 0x00b10a80, 0x00020002 },
-   { 0x80800008, 0x2aa02d29, 0x00b10aa0, 0x00020002 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000082 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0007000f },
-   { 0x00800031, 0x2ac01d29, 0x00ad0e60, 0x0414a008 },
-   { 0x00800031, 0x2b601d29, 0x00ad0e60, 0x0414a009 },
-   { 0x00000005, 0x20580c21, 0x00210e60, 0x00000003 },
-   { 0x00000041, 0x20580c21, 0x00210058, 0x00000009 },
-   { 0x00000020, 0x34001400, 0x00001400, 0x00210058 },
-   { 0x80800042, 0x29c04629, 0x00ad0ac0, 0x00ad0ac1 },
-   { 0x80800042, 0x29e04629, 0x00ad0ae0, 0x00ad0ae1 },
-   { 0x80800042, 0x2a004629, 0x00ad0b00, 0x00ad0b01 },
-   { 0x80800042, 0x2a204629, 0x00ad0b20, 0x00ad0b21 },
-   { 0x80800042, 0x2a404629, 0x00ad0b60, 0x00ad0b61 },
-   { 0x80800042, 0x2a604629, 0x00ad0b80, 0x00ad0b81 },
-   { 0x80800042, 0x2a804629, 0x00ad0ba0, 0x00ad0ba1 },
-   { 0x80800042, 0x2aa04629, 0x00ad0bc0, 0x00ad0bc1 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x0000001a },
-   { 0x80800042, 0x29c04629, 0x00ad0ac1, 0x00ad0ac2 },
-   { 0x80800042, 0x29e04629, 0x00ad0ae1, 0x00ad0ae2 },
-   { 0x80800042, 0x2a004629, 0x00ad0b01, 0x00ad0b02 },
-   { 0x80800042, 0x2a204629, 0x00ad0b21, 0x00ad0b22 },
-   { 0x80800042, 0x2a404629, 0x00ad0b61, 0x00ad0b62 },
-   { 0x80800042, 0x2a604629, 0x00ad0b81, 0x00ad0b82 },
-   { 0x80800042, 0x2a804629, 0x00ad0ba1, 0x00ad0ba2 },
-   { 0x80800042, 0x2aa04629, 0x00ad0bc1, 0x00ad0bc2 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000011 },
-   { 0x80800042, 0x29c04629, 0x00ad0ac2, 0x00ad0ac3 },
-   { 0x80800042, 0x29e04629, 0x00ad0ae2, 0x00ad0ae3 },
-   { 0x80800042, 0x2a004629, 0x00ad0b02, 0x00ad0b03 },
-   { 0x80800042, 0x2a204629, 0x00ad0b22, 0x00ad0b23 },
-   { 0x80800042, 0x2a404629, 0x00ad0b62, 0x00ad0b63 },
-   { 0x80800042, 0x2a604629, 0x00ad0b82, 0x00ad0b83 },
-   { 0x80800042, 0x2a804629, 0x00ad0ba2, 0x00ad0ba3 },
-   { 0x80800042, 0x2aa04629, 0x00ad0bc2, 0x00ad0bc3 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000008 },
-   { 0x80800042, 0x29c04629, 0x00ad0ac3, 0x00ad0ac4 },
-   { 0x80800042, 0x29e04629, 0x00ad0ae3, 0x00ad0ae4 },
-   { 0x80800042, 0x2a004629, 0x00ad0b03, 0x00ad0b04 },
-   { 0x80800042, 0x2a204629, 0x00ad0b23, 0x00ad0b24 },
-   { 0x80800042, 0x2a404629, 0x00ad0b63, 0x00ad0b64 },
-   { 0x80800042, 0x2a604629, 0x00ad0b83, 0x00ad0b84 },
-   { 0x80800042, 0x2a804629, 0x00ad0ba3, 0x00ad0ba4 },
-   { 0x80800042, 0x2aa04629, 0x00ad0bc3, 0x00ad0bc4 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000058 },
-   { 0x01000005, 0x20002d3c, 0x0021003c, 0x00020002 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x0000002d },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0007000f },
-   { 0x00800031, 0x2ac01d29, 0x00ad0e60, 0x0414a008 },
-   { 0x00800031, 0x2b601d29, 0x00ad0e60, 0x0414a009 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0000000f },
-   { 0x00800031, 0x2b401d29, 0x00ad0e60, 0x0411a008 },
-   { 0x00800031, 0x2be01d29, 0x00ad0e60, 0x0411a009 },
-   { 0x00000005, 0x20580c21, 0x00210e60, 0x00000003 },
-   { 0x00000041, 0x20580c21, 0x00210058, 0x00000009 },
-   { 0x00000020, 0x34001400, 0x00001400, 0x00210058 },
-   { 0x80800042, 0x29c04629, 0x00ad0ac0, 0x00ad0ae0 },
-   { 0x80800042, 0x29e04629, 0x00ad0ae0, 0x00ad0b00 },
-   { 0x80800042, 0x2a004629, 0x00ad0b00, 0x00ad0b20 },
-   { 0x80800042, 0x2a204629, 0x00ad0b20, 0x00ad0b40 },
-   { 0x80800042, 0x2a404629, 0x00ad0b60, 0x00ad0b80 },
-   { 0x80800042, 0x2a604629, 0x00ad0b80, 0x00ad0ba0 },
-   { 0x80800042, 0x2a804629, 0x00ad0ba0, 0x00ad0bc0 },
-   { 0x80800042, 0x2aa04629, 0x00ad0bc0, 0x00ad0be0 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x0000001a },
-   { 0x80800042, 0x29c04629, 0x00ad0ac1, 0x00ad0ae1 },
-   { 0x80800042, 0x29e04629, 0x00ad0ae1, 0x00ad0b01 },
-   { 0x80800042, 0x2a004629, 0x00ad0b01, 0x00ad0b21 },
-   { 0x80800042, 0x2a204629, 0x00ad0b21, 0x00ad0b41 },
-   { 0x80800042, 0x2a404629, 0x00ad0b61, 0x00ad0b81 },
-   { 0x80800042, 0x2a604629, 0x00ad0b81, 0x00ad0ba1 },
-   { 0x80800042, 0x2a804629, 0x00ad0ba1, 0x00ad0bc1 },
-   { 0x80800042, 0x2aa04629, 0x00ad0bc1, 0x00ad0be1 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000011 },
-   { 0x80800042, 0x29c04629, 0x00ad0ac2, 0x00ad0ae2 },
-   { 0x80800042, 0x29e04629, 0x00ad0ae2, 0x00ad0b02 },
-   { 0x80800042, 0x2a004629, 0x00ad0b02, 0x00ad0b22 },
-   { 0x80800042, 0x2a204629, 0x00ad0b22, 0x00ad0b42 },
-   { 0x80800042, 0x2a404629, 0x00ad0b62, 0x00ad0b82 },
-   { 0x80800042, 0x2a604629, 0x00ad0b82, 0x00ad0ba2 },
-   { 0x80800042, 0x2a804629, 0x00ad0ba2, 0x00ad0bc2 },
-   { 0x80800042, 0x2aa04629, 0x00ad0bc2, 0x00ad0be2 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000008 },
-   { 0x80800042, 0x29c04629, 0x00ad0ac3, 0x00ad0ac3 },
-   { 0x80800042, 0x29e04629, 0x00ad0ae3, 0x00ad0ae3 },
-   { 0x80800042, 0x2a004629, 0x00ad0b03, 0x00ad0b03 },
-   { 0x80800042, 0x2a204629, 0x00ad0b23, 0x00ad0b23 },
-   { 0x80800042, 0x2a404629, 0x00ad0b63, 0x00ad0b63 },
-   { 0x80800042, 0x2a604629, 0x00ad0b83, 0x00ad0b83 },
-   { 0x80800042, 0x2a804629, 0x00ad0ba3, 0x00ad0ba3 },
-   { 0x80800042, 0x2aa04629, 0x00ad0bc3, 0x00ad0bc3 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000029 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0007000f },
-   { 0x00800031, 0x2ac01d29, 0x00ad0e60, 0x0414a008 },
-   { 0x00800031, 0x2b601d29, 0x00ad0e60, 0x0414a009 },
-   { 0x00000005, 0x20580c21, 0x00210e60, 0x00000003 },
-   { 0x00000041, 0x20580c21, 0x00210058, 0x00000009 },
-   { 0x00000020, 0x34001400, 0x00001400, 0x00210058 },
-   { 0x00800001, 0x29c00229, 0x00ad0ac0, 0x00000000 },
-   { 0x00800001, 0x29e00229, 0x00ad0ae0, 0x00000000 },
-   { 0x00800001, 0x2a000229, 0x00ad0b00, 0x00000000 },
-   { 0x00800001, 0x2a200229, 0x00ad0b20, 0x00000000 },
-   { 0x00800001, 0x2a400229, 0x00ad0b60, 0x00000000 },
-   { 0x00800001, 0x2a600229, 0x00ad0b80, 0x00000000 },
-   { 0x00800001, 0x2a800229, 0x00ad0ba0, 0x00000000 },
-   { 0x00800001, 0x2aa00229, 0x00ad0bc0, 0x00000000 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x0000001a },
-   { 0x00800001, 0x29c00229, 0x00ad0ac1, 0x00000000 },
-   { 0x00800001, 0x29e00229, 0x00ad0ae1, 0x00000000 },
-   { 0x00800001, 0x2a000229, 0x00ad0b01, 0x00000000 },
-   { 0x00800001, 0x2a200229, 0x00ad0b21, 0x00000000 },
-   { 0x00800001, 0x2a400229, 0x00ad0b61, 0x00000000 },
-   { 0x00800001, 0x2a600229, 0x00ad0b81, 0x00000000 },
-   { 0x00800001, 0x2a800229, 0x00ad0ba1, 0x00000000 },
-   { 0x00800001, 0x2aa00229, 0x00ad0bc1, 0x00000000 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000011 },
-   { 0x00800001, 0x29c00229, 0x00ad0ac2, 0x00000000 },
-   { 0x00800001, 0x29e00229, 0x00ad0ae2, 0x00000000 },
-   { 0x00800001, 0x2a000229, 0x00ad0b02, 0x00000000 },
-   { 0x00800001, 0x2a200229, 0x00ad0b22, 0x00000000 },
-   { 0x00800001, 0x2a400229, 0x00ad0b62, 0x00000000 },
-   { 0x00800001, 0x2a600229, 0x00ad0b82, 0x00000000 },
-   { 0x00800001, 0x2a800229, 0x00ad0ba2, 0x00000000 },
-   { 0x00800001, 0x2aa00229, 0x00ad0bc2, 0x00000000 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000008 },
-   { 0x00800001, 0x29c00229, 0x00ad0ac3, 0x00000000 },
-   { 0x00800001, 0x29e00229, 0x00ad0ae3, 0x00000000 },
-   { 0x00800001, 0x2a000229, 0x00ad0b03, 0x00000000 },
-   { 0x00800001, 0x2a200229, 0x00ad0b23, 0x00000000 },
-   { 0x00800001, 0x2a400229, 0x00ad0b63, 0x00000000 },
-   { 0x00800001, 0x2a600229, 0x00ad0b83, 0x00000000 },
-   { 0x00800001, 0x2a800229, 0x00ad0ba3, 0x00000000 },
-   { 0x00800001, 0x2aa00229, 0x00ad0bc3, 0x00000000 },
-   { 0x00600001, 0x25900129, 0x008d09c0, 0x00000000 },
-   { 0x00600001, 0x25b00129, 0x008d09e0, 0x00000000 },
-   { 0x00600001, 0x25d00129, 0x008d0a00, 0x00000000 },
-   { 0x00600001, 0x25f00129, 0x008d0a20, 0x00000000 },
-   { 0x00600001, 0x26100129, 0x008d0a40, 0x00000000 },
-   { 0x00600001, 0x26300129, 0x008d0a60, 0x00000000 },
-   { 0x00600001, 0x26500129, 0x008d0a80, 0x00000000 },
-   { 0x00600001, 0x26700129, 0x008d0aa0, 0x00000000 },
-   { 0x00600001, 0x20200021, 0x008d0980, 0x00000000 },
-   { 0x00800001, 0x458101f1, 0x00000000, 0x00000000 },
-   { 0x00800001, 0x45a101f1, 0x00000000, 0x00000000 },
-   { 0x00800001, 0x45c101f1, 0x00000000, 0x00000000 },
-   { 0x00800001, 0x45e101f1, 0x00000000, 0x00000000 },
-   { 0x00800001, 0x460101f1, 0x00000000, 0x00000000 },
-   { 0x00800001, 0x462101f1, 0x00000000, 0x00000000 },
-   { 0x00800001, 0x464101f1, 0x00000000, 0x00000000 },
-   { 0x00800001, 0x466101f1, 0x00000000, 0x00000000 },
-   { 0x02000005, 0x20002e3c, 0x0021003e, 0x00010001 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000011 },
-   { 0x00800040, 0x238045ad, 0x00b10060, 0x00b20380 },
-   { 0x00800040, 0x23a045ad, 0x00b10080, 0x00b203a0 },
-   { 0x00800040, 0x23c045ad, 0x00b100a0, 0x00b203c0 },
-   { 0x00800040, 0x23e045ad, 0x00b100c0, 0x00b203e0 },
-   { 0x00800040, 0x240045ad, 0x00b100e0, 0x00b20400 },
-   { 0x00800040, 0x242045ad, 0x00b10100, 0x00b20420 },
-   { 0x00800040, 0x244045ad, 0x00b10120, 0x00b20440 },
-   { 0x00800040, 0x246045ad, 0x00b10140, 0x00b20460 },
-   { 0x00800040, 0x248045ad, 0x00b10160, 0x00b20480 },
-   { 0x00800040, 0x24a045ad, 0x00b10180, 0x00b204a0 },
-   { 0x00800040, 0x24c045ad, 0x00b101a0, 0x00b204c0 },
-   { 0x00800040, 0x24e045ad, 0x00b101c0, 0x00b204e0 },
-   { 0x00800040, 0x250045ad, 0x00b101e0, 0x00b20500 },
-   { 0x00800040, 0x252045ad, 0x00b10200, 0x00b20520 },
-   { 0x00800040, 0x254045ad, 0x00b10220, 0x00b20540 },
-   { 0x00800040, 0x256045ad, 0x00b10240, 0x00b20560 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000010 },
-   { 0x00800040, 0x238045ad, 0x00b10060, 0x00b20380 },
-   { 0x00800040, 0x23a045ad, 0x00b10160, 0x00b203a0 },
-   { 0x00800040, 0x23c045ad, 0x00b10080, 0x00b203c0 },
-   { 0x00800040, 0x23e045ad, 0x00b10180, 0x00b203e0 },
-   { 0x00800040, 0x240045ad, 0x00b100a0, 0x00b20400 },
-   { 0x00800040, 0x242045ad, 0x00b101a0, 0x00b20420 },
-   { 0x00800040, 0x244045ad, 0x00b100c0, 0x00b20440 },
-   { 0x00800040, 0x246045ad, 0x00b101c0, 0x00b20460 },
-   { 0x00800040, 0x248045ad, 0x00b100e0, 0x00b20480 },
-   { 0x00800040, 0x24a045ad, 0x00b101e0, 0x00b204a0 },
-   { 0x00800040, 0x24c045ad, 0x00b10100, 0x00b204c0 },
-   { 0x00800040, 0x24e045ad, 0x00b10200, 0x00b204e0 },
-   { 0x00800040, 0x250045ad, 0x00b10120, 0x00b20500 },
-   { 0x00800040, 0x252045ad, 0x00b10220, 0x00b20520 },
-   { 0x00800040, 0x254045ad, 0x00b10140, 0x00b20540 },
-   { 0x00800040, 0x256045ad, 0x00b10240, 0x00b20560 },
-   { 0x00000001, 0x20280061, 0x00000000, 0x000f000f },
-   { 0x80800001, 0x438001b1, 0x00b10380, 0x00000000 },
-   { 0x80800001, 0x43a001b1, 0x00b103a0, 0x00000000 },
-   { 0x80800001, 0x43c001b1, 0x00b103c0, 0x00000000 },
-   { 0x80800001, 0x43e001b1, 0x00b103e0, 0x00000000 },
-   { 0x80800001, 0x440001b1, 0x00b10400, 0x00000000 },
-   { 0x80800001, 0x442001b1, 0x00b10420, 0x00000000 },
-   { 0x80800001, 0x444001b1, 0x00b10440, 0x00000000 },
-   { 0x80800001, 0x446001b1, 0x00b10460, 0x00000000 },
-   { 0x80800001, 0x448001b1, 0x00b10480, 0x00000000 },
-   { 0x80800001, 0x44a001b1, 0x00b104a0, 0x00000000 },
-   { 0x80800001, 0x44c001b1, 0x00b104c0, 0x00000000 },
-   { 0x80800001, 0x44e001b1, 0x00b104e0, 0x00000000 },
-   { 0x80800001, 0x450001b1, 0x00b10500, 0x00000000 },
-   { 0x80800001, 0x452001b1, 0x00b10520, 0x00000000 },
-   { 0x80800001, 0x454001b1, 0x00b10540, 0x00000000 },
-   { 0x80800001, 0x456001b1, 0x00b10560, 0x00000000 },
-   { 0x00800001, 0x20200232, 0x00b20380, 0x00000000 },
-   { 0x00800001, 0x20300232, 0x00b203a0, 0x00000000 },
-   { 0x00800001, 0x20400232, 0x00b203c0, 0x00000000 },
-   { 0x00800001, 0x20500232, 0x00b203e0, 0x00000000 },
-   { 0x00800001, 0x20600232, 0x00b20400, 0x00000000 },
-   { 0x00800001, 0x20700232, 0x00b20420, 0x00000000 },
-   { 0x00800001, 0x20800232, 0x00b20440, 0x00000000 },
-   { 0x00800001, 0x20900232, 0x00b20460, 0x00000000 },
-   { 0x00800001, 0x20a00232, 0x00b20480, 0x00000000 },
-   { 0x00800001, 0x20b00232, 0x00b204a0, 0x00000000 },
-   { 0x00800001, 0x20c00232, 0x00b204c0, 0x00000000 },
-   { 0x00800001, 0x20d00232, 0x00b204e0, 0x00000000 },
-   { 0x00800001, 0x20e00232, 0x00b20500, 0x00000000 },
-   { 0x00800001, 0x20f00232, 0x00b20520, 0x00000000 },
-   { 0x00800001, 0x21000232, 0x00b20540, 0x00000000 },
-   { 0x00800001, 0x21100232, 0x00b20560, 0x00000000 },
-   { 0x00800031, 0x24001d28, 0x008d0020, 0x05902000 },
-   { 0x00000001, 0x20280061, 0x00000000, 0x00070007 },
-   { 0x00200008, 0x20201c21, 0x00450020, 0x00000001 },
-   { 0x00800040, 0x258025a9, 0x00b10260, 0x00b10580 },
-   { 0x00800040, 0x25a025a9, 0x00b10280, 0x00b105a0 },
-   { 0x00800040, 0x25c025a9, 0x00b102a0, 0x00b105c0 },
-   { 0x00800040, 0x25e025a9, 0x00b102c0, 0x00b105e0 },
-   { 0x80800001, 0x45800131, 0x00b10580, 0x00000000 },
-   { 0x80800001, 0x45a00131, 0x00b105a0, 0x00000000 },
-   { 0x80800001, 0x45c00131, 0x00b105c0, 0x00000000 },
-   { 0x80800001, 0x45e00131, 0x00b105e0, 0x00000000 },
-   { 0x00800001, 0x20200232, 0x00b20580, 0x00000000 },
-   { 0x00800001, 0x20300232, 0x00b205a0, 0x00000000 },
-   { 0x00800001, 0x20400232, 0x00b205c0, 0x00000000 },
-   { 0x00800001, 0x20500232, 0x00b205e0, 0x00000000 },
-   { 0x00800031, 0x24001d28, 0x008d0020, 0x05302001 },
-   { 0x00800040, 0x260025a9, 0x00b102e0, 0x00b10600 },
-   { 0x00800040, 0x262025a9, 0x00b10300, 0x00b10620 },
-   { 0x00800040, 0x264025a9, 0x00b10320, 0x00b10640 },
-   { 0x00800040, 0x266025a9, 0x00b10340, 0x00b10660 },
-   { 0x80800001, 0x46000131, 0x00b10600, 0x00000000 },
-   { 0x80800001, 0x46200131, 0x00b10620, 0x00000000 },
-   { 0x80800001, 0x46400131, 0x00b10640, 0x00000000 },
-   { 0x80800001, 0x46600131, 0x00b10660, 0x00000000 },
-   { 0x00800001, 0x20200232, 0x00b20600, 0x00000000 },
-   { 0x00800001, 0x20300232, 0x00b20620, 0x00000000 },
-   { 0x00800001, 0x20400232, 0x00b20640, 0x00000000 },
-   { 0x00800001, 0x20500232, 0x00b20660, 0x00000000 },
-   { 0x00800031, 0x24001d28, 0x008d0020, 0x05302002 },
-   { 0x00800031, 0x24001d28, 0x008d0000, 0x87100000 },
diff --git a/src/xvmc/field_backward_igd.g4a b/src/xvmc/field_backward_igd.g4a
deleted file mode 100644
index d01b8dc..0000000
--- a/src/xvmc/field_backward_igd.g4a
+++ /dev/null
@@ -1,124 +0,0 @@
-/*
- * Copyright © 2008 Intel Corporation
- *
- * Permission is hereby granted, free of charge, to any person obtaining a
- * copy of this software and associated documentation files (the "Software"),
- * to deal in the Software without restriction, including without limitation
- * the rights to use, copy, modify, merge, publish, distribute, sublicense,
- * and/or sell copies of the Software, and to permit persons to whom the
- * Software is furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice (including the next
- * paragraph) shall be included in all copies or substantial portions of the
- * Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
- * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
- * SOFTWARE.
- *
- * Author:
- *    Zou Nan hai <nanhai.zou at intel.com>
- *    Zhang Hua jun <huajun.zhang at intel.com>
- *    Xing Dong sheng <dongsheng.xing at intel.com>
- *
- */
-mov (8) g76.0<1>UD g1.0<8,8,1>UD {align1};
-//mov (8) g77.0<1>UD g2.0<8,8,1>UD {align1};
-
-include(`block_clear.g4i')
-
-mov (8) g115.0<1>UD g1.0<8,8,1>UD {align1};
-mov (8) g116.0<1>UD g1.0<8,8,1>UD {align1};
-/*Y buffer*/
-mov(1) g115.8<1>UD 0x007001fUD  { align1 };
-mov(1) g1.8<1>UD 0x007000fUD  { align1 };
-/*first vector*/
-asr (2) g115.14<1>W g1.18<2,2,1>W 1W {align1};
-add (2) g115.0<1>D g116.0<2,2,1>D g115.14<2,2,1>W {align1};
-and (1) g115.4<1>UD g115.4<1,1,1>UD 0xFFFFFFFEUD {align1};
-mov(1) g115.8<1>UD 0x1fUD  { align1 }; //read 1 line, 32 columns.
-
-and.nz (1) null g1.31<1,1,1>UB 0x2UW {align1};
-(f0) add (1) g115.4<1>D g115.4<1,1,1>D 1D {align1};
-define(`surface',`7')
-define(`mv1',`g1.18')
-define(`mv2',`g1.20')
-include(`motion_field_y_igd.g4i')
-mov (8) g28.0<1>UD g96.0<8,8,1>UD {align1};
-mov (8) g30.0<1>UD g97.0<8,8,1>UD {align1};
-mov (8) g32.0<1>UD g98.0<8,8,1>UD {align1};
-mov (8) g34.0<1>UD g99.0<8,8,1>UD {align1};
-mov (8) g36.0<1>UD g100.0<8,8,1>UD {align1};
-mov (8) g38.0<1>UD g101.0<8,8,1>UD {align1};
-mov (8) g40.0<1>UD g102.0<8,8,1>UD {align1};
-mov (8) g42.0<1>UD g103.0<8,8,1>UD {align1};
-/*second vector*/
-asr (2) g115.14<1>W g1.26<2,2,1>W 1W {align1};
-add (2) g115.0<1>D g116.0<2,2,1>D g115.14<2,2,1>W {align1};
-and (1) g115.4<1>UD g115.4<1,1,1>UD 0xFFFFFFFEUD {align1};
-mov(1) g115.8<1>UD 0x1fUD  { align1 }; //read 1 line, 32 columns.
-
-and.nz (1) null g1.31<1,1,1>UB 0x8UW {align1};
-(f0) add (1) g115.4<1>D g115.4<1,1,1>D 1D {align1};
-define(`surface',`7')
-define(`mv1',`g1.26')
-define(`mv2',`g1.28')
-include(`motion_field_y_igd.g4i')
-mov (8) g29.0<1>UD g96.0<8,8,1>UD {align1};
-mov (8) g31.0<1>UD g97.0<8,8,1>UD {align1};
-mov (8) g33.0<1>UD g98.0<8,8,1>UD {align1};
-mov (8) g35.0<1>UD g99.0<8,8,1>UD {align1};
-mov (8) g37.0<1>UD g100.0<8,8,1>UD {align1};
-mov (8) g39.0<1>UD g101.0<8,8,1>UD {align1};
-mov (8) g41.0<1>UD g102.0<8,8,1>UD {align1};
-mov (8) g43.0<1>UD g103.0<8,8,1>UD {align1};
-/*U buffer, V buffer*/
-mov(1) g115.8<1>UD 0x007000fUD  { align1 };
-/*first vector*/
-asr (2) g115.14<1>W g1.18<2,2,1>W 2W {align1};
-asr (2) g115.0<1>D g116.0<2,2,1>D 1D {align1};
-add (2) g115.0<1>D g115.0<2,2,1>D g115.14<2,2,1>W {align1};
-and (1) g115.4<1>UD g115.4<1,1,1>UD 0xFFFFFFFEUD {align1};
-
-and.nz (1) null g1.31<1,1,1>UB 0x2UW {align1};
-(f0) add (1) g115.4<1>UD g115.4<1,1,1>UD 1UD {align1};
-define(`surface_u',`8')
-define(`surface_v',`9')
-define(`mv1',`g1.18')
-define(`mv2',`g1.20')
-include(`motion_field_uv_igd.g4i')
-mov (8) g44.0<1>UW g78.0<8,8,1>UW {align1};
-mov (8) g45.0<1>UW g79.0<8,8,1>UW {align1};
-mov (8) g46.0<1>UW g80.0<8,8,1>UW {align1};
-mov (8) g47.0<1>UW g81.0<8,8,1>UW {align1};
-mov (8) g48.0<1>UW g82.0<8,8,1>UW {align1};
-mov (8) g49.0<1>UW g83.0<8,8,1>UW {align1};
-mov (8) g50.0<1>UW g84.0<8,8,1>UW {align1};
-mov (8) g51.0<1>UW g85.0<8,8,1>UW {align1};
-/*second vector*/
-asr (2) g115.14<1>W g1.26<2,2,1>W 2W {align1};
-asr (2) g115.0<1>D g116.0<2,2,1>D 1D {align1};
-add (2) g115.0<1>D g115.0<2,2,1>D g115.14<2,2,1>W {align1};
-and (1) g115.4<1>UD g115.4<1,1,1>UD 0xFFFFFFFEUD {align1};
-
-and.nz (1) null g1.31<1,1,1>UB 0x8UW {align1};
-(f0) add (1) g115.4<1>UD g115.4<1,1,1>UD 1UD {align1};
-define(`mv1',`g1.26')
-define(`mv2',`g1.28')
-include(`motion_field_uv_igd.g4i')
-mov (8) g44.16<1>UW g78.0<8,8,1>UW {align1};
-mov (8) g45.16<1>UW g79.0<8,8,1>UW {align1};
-mov (8) g46.16<1>UW g80.0<8,8,1>UW {align1};
-mov (8) g47.16<1>UW g81.0<8,8,1>UW {align1};
-mov (8) g48.16<1>UW g82.0<8,8,1>UW {align1};
-mov (8) g49.16<1>UW g83.0<8,8,1>UW {align1};
-mov (8) g50.16<1>UW g84.0<8,8,1>UW {align1};
-mov (8) g51.16<1>UW g85.0<8,8,1>UW {align1};
-
-include(`addidct.g4i')
-//send (16) 0 acc0<1>UW g0<8,8,1>UW 
-//	thread_spawner(0, 0, 0) mlen 1 rlen 0 { align1 EOT};
diff --git a/src/xvmc/field_backward_igd.g4b b/src/xvmc/field_backward_igd.g4b
deleted file mode 100644
index 7382a87..0000000
--- a/src/xvmc/field_backward_igd.g4b
+++ /dev/null
@@ -1,669 +0,0 @@
-   { 0x00600001, 0x29800021, 0x008d0020, 0x00000000 },
-   { 0x02000005, 0x20000c3c, 0x00210040, 0x00000001 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000030 },
-   { 0x00000040, 0x20480c21, 0x00210988, 0x00000000 },
-   { 0x00800031, 0x20601c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x20801c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x20a01c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x20c01c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x20e01c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x21001c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x21201c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x21401c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x21601c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x21801c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x21a01c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x21c01c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x21e01c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x22001c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x22201c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x22401c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x22601c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x22801c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x22a01c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x22c01c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x22e01c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x23001c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x23201c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x23401c21, 0x00b10040, 0x04110203 },
-   { 0x02000005, 0x20002d3c, 0x0021098c, 0x00200020 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000008 },
-   { 0x00600001, 0x20600169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x20800169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x20a00169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x20c00169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x20e00169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x21000169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x21200169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x21400169, 0x00000000, 0x00000000 },
-   { 0x02000005, 0x20002d3c, 0x0021002c, 0x00100010 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000008 },
-   { 0x00600001, 0x20700169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x20900169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x20b00169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x20d00169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x20f00169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x21100169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x21300169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x21500169, 0x00000000, 0x00000000 },
-   { 0x02000005, 0x20002d3c, 0x0021002c, 0x00080008 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000008 },
-   { 0x00600001, 0x21600169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x21800169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x21a00169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x21c00169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x21e00169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x22000169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x22200169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x22400169, 0x00000000, 0x00000000 },
-   { 0x02000005, 0x20002d3c, 0x0021002c, 0x00040004 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000008 },
-   { 0x00600001, 0x21700169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x21900169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x21b00169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x21d00169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x21f00169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x22100169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x22300169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x22500169, 0x00000000, 0x00000000 },
-   { 0x02000005, 0x20002d3c, 0x0021002c, 0x00020002 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000004 },
-   { 0x00800001, 0x22600169, 0x00000000, 0x00000000 },
-   { 0x00800001, 0x22800169, 0x00000000, 0x00000000 },
-   { 0x00800001, 0x22a00169, 0x00000000, 0x00000000 },
-   { 0x00800001, 0x22c00169, 0x00000000, 0x00000000 },
-   { 0x02000005, 0x20002d3c, 0x0021002c, 0x00010001 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000004 },
-   { 0x00800001, 0x22e00169, 0x00000000, 0x00000000 },
-   { 0x00800001, 0x23000169, 0x00000000, 0x00000000 },
-   { 0x00800001, 0x23200169, 0x00000000, 0x00000000 },
-   { 0x00800001, 0x23400169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x2e600021, 0x008d0020, 0x00000000 },
-   { 0x00600001, 0x2e800021, 0x008d0020, 0x00000000 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0007001f },
-   { 0x00000001, 0x20280061, 0x00000000, 0x0007000f },
-   { 0x0020000c, 0x2e6e3dad, 0x00450032, 0x00010001 },
-   { 0x00200040, 0x2e6034a5, 0x00450e80, 0x00450e6e },
-   { 0x00000005, 0x2e640c21, 0x00210e64, 0xfffffffe },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
-   { 0x02000005, 0x20002e3c, 0x0021003f, 0x00020002 },
-   { 0x00010040, 0x2e641ca5, 0x00210e64, 0x00000001 },
-   { 0x01000005, 0x20002d3c, 0x00210032, 0x00010001 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000045 },
-   { 0x01000005, 0x20002d3c, 0x00210034, 0x00010001 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x0000002f },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
-   { 0x00800031, 0x29c01d29, 0x008d0e60, 0x0411a007 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a001d29, 0x008d0e60, 0x0411a007 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a401d29, 0x008d0e60, 0x0411a007 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a801d29, 0x008d0e60, 0x0411a007 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0007001f },
-   { 0x00800031, 0x2ac01d29, 0x008d0e60, 0x0418a007 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
-   { 0x00800031, 0x2bc01d29, 0x008d0e60, 0x0411a007 },
-   { 0x00800040, 0x2c004629, 0x00b109c0, 0x00b10a00 },
-   { 0x00800040, 0x2c204629, 0x00b10a00, 0x00b10a40 },
-   { 0x00800040, 0x2c404629, 0x00b10a40, 0x00b10a80 },
-   { 0x00800040, 0x2c604629, 0x00b10a80, 0x00b10ac0 },
-   { 0x00800040, 0x2c804629, 0x00b10ac0, 0x00b10b00 },
-   { 0x00800040, 0x2ca04629, 0x00b10b00, 0x00b10b40 },
-   { 0x00800040, 0x2cc04629, 0x00b10b40, 0x00b10b80 },
-   { 0x00800040, 0x2ce04629, 0x00b10b80, 0x00b10bc0 },
-   { 0x00800040, 0x2c004529, 0x00b10c00, 0x00b109c1 },
-   { 0x00800040, 0x2c204529, 0x00b10c20, 0x00b10a01 },
-   { 0x00800040, 0x2c404529, 0x00b10c40, 0x00b10a41 },
-   { 0x00800040, 0x2c604529, 0x00b10c60, 0x00b10a81 },
-   { 0x00800040, 0x2c804529, 0x00b10c80, 0x00b10ac1 },
-   { 0x00800040, 0x2ca04529, 0x00b10ca0, 0x00b10b01 },
-   { 0x00800040, 0x2cc04529, 0x00b10cc0, 0x00b10b41 },
-   { 0x00800040, 0x2ce04529, 0x00b10ce0, 0x00b10b81 },
-   { 0x00800040, 0x2c004529, 0x00b10c00, 0x00b10a01 },
-   { 0x00800040, 0x2c204529, 0x00b10c20, 0x00b10a41 },
-   { 0x00800040, 0x2c404529, 0x00b10c40, 0x00b10a81 },
-   { 0x00800040, 0x2c604529, 0x00b10c60, 0x00b10ac1 },
-   { 0x00800040, 0x2c804529, 0x00b10c80, 0x00b10b01 },
-   { 0x00800040, 0x2ca04529, 0x00b10ca0, 0x00b10b41 },
-   { 0x00800040, 0x2cc04529, 0x00b10cc0, 0x00b10b81 },
-   { 0x00800040, 0x2ce04529, 0x00b10ce0, 0x00b10bc1 },
-   { 0x00800008, 0x2c002d29, 0x00b10c00, 0x00020002 },
-   { 0x00800008, 0x2c202d29, 0x00b10c20, 0x00020002 },
-   { 0x00800008, 0x2c402d29, 0x00b10c40, 0x00020002 },
-   { 0x00800008, 0x2c602d29, 0x00b10c60, 0x00020002 },
-   { 0x00800008, 0x2c802d29, 0x00b10c80, 0x00020002 },
-   { 0x00800008, 0x2ca02d29, 0x00b10ca0, 0x00020002 },
-   { 0x00800008, 0x2cc02d29, 0x00b10cc0, 0x00020002 },
-   { 0x00800008, 0x2ce02d29, 0x00b10ce0, 0x00020002 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000040 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
-   { 0x00800031, 0x29c01d29, 0x008d0e60, 0x0411a007 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a001d29, 0x008d0e60, 0x0411a007 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a401d29, 0x008d0e60, 0x0411a007 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a801d29, 0x008d0e60, 0x0411a007 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0007001f },
-   { 0x00800031, 0x2ac01d29, 0x008d0e60, 0x0418a007 },
-   { 0x80800042, 0x2c004629, 0x00b109c0, 0x00b109c1 },
-   { 0x80800042, 0x2c204629, 0x00b10a00, 0x00b10a01 },
-   { 0x80800042, 0x2c404629, 0x00b10a40, 0x00b10a41 },
-   { 0x80800042, 0x2c604629, 0x00b10a80, 0x00b10a81 },
-   { 0x80800042, 0x2c804629, 0x00b10ac0, 0x00b10ac1 },
-   { 0x80800042, 0x2ca04629, 0x00b10b00, 0x00b10b01 },
-   { 0x80800042, 0x2cc04629, 0x00b10b40, 0x00b10b41 },
-   { 0x80800042, 0x2ce04629, 0x00b10b80, 0x00b10b81 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x0000002c },
-   { 0x01000005, 0x20002d3c, 0x00210034, 0x00010001 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000017 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
-   { 0x00800031, 0x29c01d29, 0x008d0e60, 0x0411a007 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a001d29, 0x008d0e60, 0x0411a007 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a401d29, 0x008d0e60, 0x0411a007 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a801d29, 0x008d0e60, 0x0411a007 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0007001f },
-   { 0x00800031, 0x2ac01d29, 0x008d0e60, 0x0418a007 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
-   { 0x00800031, 0x2bc01d29, 0x008d0e60, 0x0411a007 },
-   { 0x80800042, 0x2c004629, 0x00b109c0, 0x00b10a00 },
-   { 0x80800042, 0x2c204629, 0x00b10a00, 0x00b10a40 },
-   { 0x80800042, 0x2c404629, 0x00b10a40, 0x00b10a80 },
-   { 0x80800042, 0x2c604629, 0x00b10a80, 0x00b10ac0 },
-   { 0x80800042, 0x2c804629, 0x00b10ac0, 0x00b10b00 },
-   { 0x80800042, 0x2ca04629, 0x00b10b00, 0x00b10b40 },
-   { 0x80800042, 0x2cc04629, 0x00b10b40, 0x00b10b80 },
-   { 0x80800042, 0x2ce04629, 0x00b10b80, 0x00b10bc0 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000013 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
-   { 0x00800031, 0x29c01d29, 0x008d0e60, 0x0411a007 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a001d29, 0x008d0e60, 0x0411a007 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a401d29, 0x008d0e60, 0x0411a007 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a801d29, 0x008d0e60, 0x0411a007 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0007001f },
-   { 0x00800031, 0x2ac01d29, 0x008d0e60, 0x0418a007 },
-   { 0x00800001, 0x2c000229, 0x00b109c0, 0x00000000 },
-   { 0x00800001, 0x2c200229, 0x00b10a00, 0x00000000 },
-   { 0x00800001, 0x2c400229, 0x00b10a40, 0x00000000 },
-   { 0x00800001, 0x2c600229, 0x00b10a80, 0x00000000 },
-   { 0x00800001, 0x2c800229, 0x00b10ac0, 0x00000000 },
-   { 0x00800001, 0x2ca00229, 0x00b10b00, 0x00000000 },
-   { 0x00800001, 0x2cc00229, 0x00b10b40, 0x00000000 },
-   { 0x00800001, 0x2ce00229, 0x00b10b80, 0x00000000 },
-   { 0x00600001, 0x23800021, 0x008d0c00, 0x00000000 },
-   { 0x00600001, 0x23c00021, 0x008d0c20, 0x00000000 },
-   { 0x00600001, 0x24000021, 0x008d0c40, 0x00000000 },
-   { 0x00600001, 0x24400021, 0x008d0c60, 0x00000000 },
-   { 0x00600001, 0x24800021, 0x008d0c80, 0x00000000 },
-   { 0x00600001, 0x24c00021, 0x008d0ca0, 0x00000000 },
-   { 0x00600001, 0x25000021, 0x008d0cc0, 0x00000000 },
-   { 0x00600001, 0x25400021, 0x008d0ce0, 0x00000000 },
-   { 0x0020000c, 0x2e6e3dad, 0x0045003a, 0x00010001 },
-   { 0x00200040, 0x2e6034a5, 0x00450e80, 0x00450e6e },
-   { 0x00000005, 0x2e640c21, 0x00210e64, 0xfffffffe },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
-   { 0x02000005, 0x20002e3c, 0x0021003f, 0x00080008 },
-   { 0x00010040, 0x2e641ca5, 0x00210e64, 0x00000001 },
-   { 0x01000005, 0x20002d3c, 0x0021003a, 0x00010001 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000045 },
-   { 0x01000005, 0x20002d3c, 0x0021003c, 0x00010001 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x0000002f },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
-   { 0x00800031, 0x29c01d29, 0x008d0e60, 0x0411a007 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a001d29, 0x008d0e60, 0x0411a007 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a401d29, 0x008d0e60, 0x0411a007 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a801d29, 0x008d0e60, 0x0411a007 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0007001f },
-   { 0x00800031, 0x2ac01d29, 0x008d0e60, 0x0418a007 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
-   { 0x00800031, 0x2bc01d29, 0x008d0e60, 0x0411a007 },
-   { 0x00800040, 0x2c004629, 0x00b109c0, 0x00b10a00 },
-   { 0x00800040, 0x2c204629, 0x00b10a00, 0x00b10a40 },
-   { 0x00800040, 0x2c404629, 0x00b10a40, 0x00b10a80 },
-   { 0x00800040, 0x2c604629, 0x00b10a80, 0x00b10ac0 },
-   { 0x00800040, 0x2c804629, 0x00b10ac0, 0x00b10b00 },
-   { 0x00800040, 0x2ca04629, 0x00b10b00, 0x00b10b40 },
-   { 0x00800040, 0x2cc04629, 0x00b10b40, 0x00b10b80 },
-   { 0x00800040, 0x2ce04629, 0x00b10b80, 0x00b10bc0 },
-   { 0x00800040, 0x2c004529, 0x00b10c00, 0x00b109c1 },
-   { 0x00800040, 0x2c204529, 0x00b10c20, 0x00b10a01 },
-   { 0x00800040, 0x2c404529, 0x00b10c40, 0x00b10a41 },
-   { 0x00800040, 0x2c604529, 0x00b10c60, 0x00b10a81 },
-   { 0x00800040, 0x2c804529, 0x00b10c80, 0x00b10ac1 },
-   { 0x00800040, 0x2ca04529, 0x00b10ca0, 0x00b10b01 },
-   { 0x00800040, 0x2cc04529, 0x00b10cc0, 0x00b10b41 },
-   { 0x00800040, 0x2ce04529, 0x00b10ce0, 0x00b10b81 },
-   { 0x00800040, 0x2c004529, 0x00b10c00, 0x00b10a01 },
-   { 0x00800040, 0x2c204529, 0x00b10c20, 0x00b10a41 },
-   { 0x00800040, 0x2c404529, 0x00b10c40, 0x00b10a81 },
-   { 0x00800040, 0x2c604529, 0x00b10c60, 0x00b10ac1 },
-   { 0x00800040, 0x2c804529, 0x00b10c80, 0x00b10b01 },
-   { 0x00800040, 0x2ca04529, 0x00b10ca0, 0x00b10b41 },
-   { 0x00800040, 0x2cc04529, 0x00b10cc0, 0x00b10b81 },
-   { 0x00800040, 0x2ce04529, 0x00b10ce0, 0x00b10bc1 },
-   { 0x00800008, 0x2c002d29, 0x00b10c00, 0x00020002 },
-   { 0x00800008, 0x2c202d29, 0x00b10c20, 0x00020002 },
-   { 0x00800008, 0x2c402d29, 0x00b10c40, 0x00020002 },
-   { 0x00800008, 0x2c602d29, 0x00b10c60, 0x00020002 },
-   { 0x00800008, 0x2c802d29, 0x00b10c80, 0x00020002 },
-   { 0x00800008, 0x2ca02d29, 0x00b10ca0, 0x00020002 },
-   { 0x00800008, 0x2cc02d29, 0x00b10cc0, 0x00020002 },
-   { 0x00800008, 0x2ce02d29, 0x00b10ce0, 0x00020002 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000040 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
-   { 0x00800031, 0x29c01d29, 0x008d0e60, 0x0411a007 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a001d29, 0x008d0e60, 0x0411a007 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a401d29, 0x008d0e60, 0x0411a007 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a801d29, 0x008d0e60, 0x0411a007 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0007001f },
-   { 0x00800031, 0x2ac01d29, 0x008d0e60, 0x0418a007 },
-   { 0x80800042, 0x2c004629, 0x00b109c0, 0x00b109c1 },
-   { 0x80800042, 0x2c204629, 0x00b10a00, 0x00b10a01 },
-   { 0x80800042, 0x2c404629, 0x00b10a40, 0x00b10a41 },
-   { 0x80800042, 0x2c604629, 0x00b10a80, 0x00b10a81 },
-   { 0x80800042, 0x2c804629, 0x00b10ac0, 0x00b10ac1 },
-   { 0x80800042, 0x2ca04629, 0x00b10b00, 0x00b10b01 },
-   { 0x80800042, 0x2cc04629, 0x00b10b40, 0x00b10b41 },
-   { 0x80800042, 0x2ce04629, 0x00b10b80, 0x00b10b81 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x0000002c },
-   { 0x01000005, 0x20002d3c, 0x0021003c, 0x00010001 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000017 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
-   { 0x00800031, 0x29c01d29, 0x008d0e60, 0x0411a007 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a001d29, 0x008d0e60, 0x0411a007 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a401d29, 0x008d0e60, 0x0411a007 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a801d29, 0x008d0e60, 0x0411a007 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0007001f },
-   { 0x00800031, 0x2ac01d29, 0x008d0e60, 0x0418a007 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
-   { 0x00800031, 0x2bc01d29, 0x008d0e60, 0x0411a007 },
-   { 0x80800042, 0x2c004629, 0x00b109c0, 0x00b10a00 },
-   { 0x80800042, 0x2c204629, 0x00b10a00, 0x00b10a40 },
-   { 0x80800042, 0x2c404629, 0x00b10a40, 0x00b10a80 },
-   { 0x80800042, 0x2c604629, 0x00b10a80, 0x00b10ac0 },
-   { 0x80800042, 0x2c804629, 0x00b10ac0, 0x00b10b00 },
-   { 0x80800042, 0x2ca04629, 0x00b10b00, 0x00b10b40 },
-   { 0x80800042, 0x2cc04629, 0x00b10b40, 0x00b10b80 },
-   { 0x80800042, 0x2ce04629, 0x00b10b80, 0x00b10bc0 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000013 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
-   { 0x00800031, 0x29c01d29, 0x008d0e60, 0x0411a007 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a001d29, 0x008d0e60, 0x0411a007 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a401d29, 0x008d0e60, 0x0411a007 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a801d29, 0x008d0e60, 0x0411a007 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0007001f },
-   { 0x00800031, 0x2ac01d29, 0x008d0e60, 0x0418a007 },
-   { 0x00800001, 0x2c000229, 0x00b109c0, 0x00000000 },
-   { 0x00800001, 0x2c200229, 0x00b10a00, 0x00000000 },
-   { 0x00800001, 0x2c400229, 0x00b10a40, 0x00000000 },
-   { 0x00800001, 0x2c600229, 0x00b10a80, 0x00000000 },
-   { 0x00800001, 0x2c800229, 0x00b10ac0, 0x00000000 },
-   { 0x00800001, 0x2ca00229, 0x00b10b00, 0x00000000 },
-   { 0x00800001, 0x2cc00229, 0x00b10b40, 0x00000000 },
-   { 0x00800001, 0x2ce00229, 0x00b10b80, 0x00000000 },
-   { 0x00600001, 0x23a00021, 0x008d0c00, 0x00000000 },
-   { 0x00600001, 0x23e00021, 0x008d0c20, 0x00000000 },
-   { 0x00600001, 0x24200021, 0x008d0c40, 0x00000000 },
-   { 0x00600001, 0x24600021, 0x008d0c60, 0x00000000 },
-   { 0x00600001, 0x24a00021, 0x008d0c80, 0x00000000 },
-   { 0x00600001, 0x24e00021, 0x008d0ca0, 0x00000000 },
-   { 0x00600001, 0x25200021, 0x008d0cc0, 0x00000000 },
-   { 0x00600001, 0x25600021, 0x008d0ce0, 0x00000000 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0007000f },
-   { 0x0020000c, 0x2e6e3dad, 0x00450032, 0x00020002 },
-   { 0x0020000c, 0x2e601ca5, 0x00450e80, 0x00000001 },
-   { 0x00200040, 0x2e6034a5, 0x00450e60, 0x00450e6e },
-   { 0x00000005, 0x2e640c21, 0x00210e64, 0xfffffffe },
-   { 0x02000005, 0x20002e3c, 0x0021003f, 0x00020002 },
-   { 0x00010040, 0x2e640c21, 0x00210e64, 0x00000001 },
-   { 0x01000005, 0x20002d3c, 0x00210032, 0x00020002 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000036 },
-   { 0x01000005, 0x20002d3c, 0x00210034, 0x00020002 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000028 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0007000f },
-   { 0x00800031, 0x2ac01d29, 0x00ad0e60, 0x0414a008 },
-   { 0x00800031, 0x2b601d29, 0x00ad0e60, 0x0414a009 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0001000f },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 },
-   { 0x00800031, 0x2b401d29, 0x00ad0e60, 0x0411a008 },
-   { 0x00800031, 0x2be01d29, 0x00ad0e60, 0x0411a009 },
-   { 0x00800040, 0x29c04629, 0x00ad0ac0, 0x00ad0ae0 },
-   { 0x00800040, 0x29e04629, 0x00ad0ae0, 0x00ad0b00 },
-   { 0x00800040, 0x2a004629, 0x00ad0b00, 0x00ad0b20 },
-   { 0x00800040, 0x2a204629, 0x00ad0b20, 0x00ad0b40 },
-   { 0x00800040, 0x29c04529, 0x00ad09c0, 0x00ad0ac1 },
-   { 0x00800040, 0x29e04529, 0x00ad09e0, 0x00ad0ae1 },
-   { 0x00800040, 0x2a004529, 0x00ad0a00, 0x00ad0b01 },
-   { 0x00800040, 0x2a204529, 0x00ad0a20, 0x00ad0b21 },
-   { 0x00800040, 0x29c04529, 0x00ad09c0, 0x00ad0ae1 },
-   { 0x00800040, 0x29e04529, 0x00ad09e0, 0x00ad0b01 },
-   { 0x00800040, 0x2a004529, 0x00ad0a00, 0x00ad0b21 },
-   { 0x00800040, 0x2a204529, 0x00ad0a20, 0x00ad0b41 },
-   { 0x00800040, 0x2a404629, 0x00ad0b60, 0x00ad0b80 },
-   { 0x00800040, 0x2a604629, 0x00ad0b80, 0x00ad0ba0 },
-   { 0x00800040, 0x2a804629, 0x00ad0ba0, 0x00ad0bc0 },
-   { 0x00800040, 0x2aa04629, 0x00ad0bc0, 0x00ad0be0 },
-   { 0x00800040, 0x2a404529, 0x00ad0a40, 0x00ad0b61 },
-   { 0x00800040, 0x2a604529, 0x00ad0a60, 0x00ad0b81 },
-   { 0x00800040, 0x2a804529, 0x00ad0a80, 0x00ad0ba1 },
-   { 0x00800040, 0x2aa04529, 0x00ad0aa0, 0x00ad0bc1 },
-   { 0x00800040, 0x2a404529, 0x00ad0a40, 0x00ad0b81 },
-   { 0x00800040, 0x2a604529, 0x00ad0a60, 0x00ad0ba1 },
-   { 0x00800040, 0x2a804529, 0x00ad0a80, 0x00ad0bc1 },
-   { 0x00800040, 0x2aa04529, 0x00ad0aa0, 0x00ad0be1 },
-   { 0x80800008, 0x29c02d29, 0x00b109c0, 0x00020002 },
-   { 0x80800008, 0x29e02d29, 0x00b109e0, 0x00020002 },
-   { 0x80800008, 0x2a002d29, 0x00b10a00, 0x00020002 },
-   { 0x80800008, 0x2a202d29, 0x00b10a20, 0x00020002 },
-   { 0x80800008, 0x2a402d29, 0x00b10a40, 0x00020002 },
-   { 0x80800008, 0x2a602d29, 0x00b10a60, 0x00020002 },
-   { 0x80800008, 0x2a802d29, 0x00b10a80, 0x00020002 },
-   { 0x80800008, 0x2aa02d29, 0x00b10aa0, 0x00020002 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000028 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0007000f },
-   { 0x00800031, 0x2ac01d29, 0x00ad0e60, 0x0414a008 },
-   { 0x00800031, 0x2b601d29, 0x00ad0e60, 0x0414a009 },
-   { 0x80800042, 0x29c04629, 0x00ad0ac0, 0x00ad0ac1 },
-   { 0x80800042, 0x29e04629, 0x00ad0ae0, 0x00ad0ae1 },
-   { 0x80800042, 0x2a004629, 0x00ad0b00, 0x00ad0b01 },
-   { 0x80800042, 0x2a204629, 0x00ad0b20, 0x00ad0b21 },
-   { 0x80800042, 0x2a404629, 0x00ad0b60, 0x00ad0b61 },
-   { 0x80800042, 0x2a604629, 0x00ad0b80, 0x00ad0b81 },
-   { 0x80800042, 0x2a804629, 0x00ad0ba0, 0x00ad0ba1 },
-   { 0x80800042, 0x2aa04629, 0x00ad0bc0, 0x00ad0bc1 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x0000001c },
-   { 0x01000005, 0x20002d3c, 0x00210034, 0x00020002 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x0000000f },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0007000f },
-   { 0x00800031, 0x2ac01d29, 0x00ad0e60, 0x0414a008 },
-   { 0x00800031, 0x2b601d29, 0x00ad0e60, 0x0414a009 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0000000f },
-   { 0x00800031, 0x2b401d29, 0x00ad0e60, 0x0411a008 },
-   { 0x00800031, 0x2be01d29, 0x00ad0e60, 0x0411a009 },
-   { 0x80800042, 0x29c04629, 0x00ad0ac0, 0x00ad0ae0 },
-   { 0x80800042, 0x29e04629, 0x00ad0ae0, 0x00ad0b00 },
-   { 0x80800042, 0x2a004629, 0x00ad0b00, 0x00ad0b20 },
-   { 0x80800042, 0x2a204629, 0x00ad0b20, 0x00ad0b40 },
-   { 0x80800042, 0x2a404629, 0x00ad0b60, 0x00ad0b80 },
-   { 0x80800042, 0x2a604629, 0x00ad0b80, 0x00ad0ba0 },
-   { 0x80800042, 0x2a804629, 0x00ad0ba0, 0x00ad0bc0 },
-   { 0x80800042, 0x2aa04629, 0x00ad0bc0, 0x00ad0be0 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x0000000b },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0007000f },
-   { 0x00800031, 0x2ac01d29, 0x00ad0e60, 0x0414a008 },
-   { 0x00800031, 0x2b601d29, 0x00ad0e60, 0x0414a009 },
-   { 0x00800001, 0x29c00229, 0x00ad0ac0, 0x00000000 },
-   { 0x00800001, 0x29e00229, 0x00ad0ae0, 0x00000000 },
-   { 0x00800001, 0x2a000229, 0x00ad0b00, 0x00000000 },
-   { 0x00800001, 0x2a200229, 0x00ad0b20, 0x00000000 },
-   { 0x00800001, 0x2a400229, 0x00ad0b60, 0x00000000 },
-   { 0x00800001, 0x2a600229, 0x00ad0b80, 0x00000000 },
-   { 0x00800001, 0x2a800229, 0x00ad0ba0, 0x00000000 },
-   { 0x00800001, 0x2aa00229, 0x00ad0bc0, 0x00000000 },
-   { 0x00600001, 0x25800129, 0x008d09c0, 0x00000000 },
-   { 0x00600001, 0x25a00129, 0x008d09e0, 0x00000000 },
-   { 0x00600001, 0x25c00129, 0x008d0a00, 0x00000000 },
-   { 0x00600001, 0x25e00129, 0x008d0a20, 0x00000000 },
-   { 0x00600001, 0x26000129, 0x008d0a40, 0x00000000 },
-   { 0x00600001, 0x26200129, 0x008d0a60, 0x00000000 },
-   { 0x00600001, 0x26400129, 0x008d0a80, 0x00000000 },
-   { 0x00600001, 0x26600129, 0x008d0aa0, 0x00000000 },
-   { 0x0020000c, 0x2e6e3dad, 0x0045003a, 0x00020002 },
-   { 0x0020000c, 0x2e601ca5, 0x00450e80, 0x00000001 },
-   { 0x00200040, 0x2e6034a5, 0x00450e60, 0x00450e6e },
-   { 0x00000005, 0x2e640c21, 0x00210e64, 0xfffffffe },
-   { 0x02000005, 0x20002e3c, 0x0021003f, 0x00080008 },
-   { 0x00010040, 0x2e640c21, 0x00210e64, 0x00000001 },
-   { 0x01000005, 0x20002d3c, 0x0021003a, 0x00020002 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000036 },
-   { 0x01000005, 0x20002d3c, 0x0021003c, 0x00020002 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000028 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0007000f },
-   { 0x00800031, 0x2ac01d29, 0x00ad0e60, 0x0414a008 },
-   { 0x00800031, 0x2b601d29, 0x00ad0e60, 0x0414a009 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0001000f },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 },
-   { 0x00800031, 0x2b401d29, 0x00ad0e60, 0x0411a008 },
-   { 0x00800031, 0x2be01d29, 0x00ad0e60, 0x0411a009 },
-   { 0x00800040, 0x29c04629, 0x00ad0ac0, 0x00ad0ae0 },
-   { 0x00800040, 0x29e04629, 0x00ad0ae0, 0x00ad0b00 },
-   { 0x00800040, 0x2a004629, 0x00ad0b00, 0x00ad0b20 },
-   { 0x00800040, 0x2a204629, 0x00ad0b20, 0x00ad0b40 },
-   { 0x00800040, 0x29c04529, 0x00ad09c0, 0x00ad0ac1 },
-   { 0x00800040, 0x29e04529, 0x00ad09e0, 0x00ad0ae1 },
-   { 0x00800040, 0x2a004529, 0x00ad0a00, 0x00ad0b01 },
-   { 0x00800040, 0x2a204529, 0x00ad0a20, 0x00ad0b21 },
-   { 0x00800040, 0x29c04529, 0x00ad09c0, 0x00ad0ae1 },
-   { 0x00800040, 0x29e04529, 0x00ad09e0, 0x00ad0b01 },
-   { 0x00800040, 0x2a004529, 0x00ad0a00, 0x00ad0b21 },
-   { 0x00800040, 0x2a204529, 0x00ad0a20, 0x00ad0b41 },
-   { 0x00800040, 0x2a404629, 0x00ad0b60, 0x00ad0b80 },
-   { 0x00800040, 0x2a604629, 0x00ad0b80, 0x00ad0ba0 },
-   { 0x00800040, 0x2a804629, 0x00ad0ba0, 0x00ad0bc0 },
-   { 0x00800040, 0x2aa04629, 0x00ad0bc0, 0x00ad0be0 },
-   { 0x00800040, 0x2a404529, 0x00ad0a40, 0x00ad0b61 },
-   { 0x00800040, 0x2a604529, 0x00ad0a60, 0x00ad0b81 },
-   { 0x00800040, 0x2a804529, 0x00ad0a80, 0x00ad0ba1 },
-   { 0x00800040, 0x2aa04529, 0x00ad0aa0, 0x00ad0bc1 },
-   { 0x00800040, 0x2a404529, 0x00ad0a40, 0x00ad0b81 },
-   { 0x00800040, 0x2a604529, 0x00ad0a60, 0x00ad0ba1 },
-   { 0x00800040, 0x2a804529, 0x00ad0a80, 0x00ad0bc1 },
-   { 0x00800040, 0x2aa04529, 0x00ad0aa0, 0x00ad0be1 },
-   { 0x80800008, 0x29c02d29, 0x00b109c0, 0x00020002 },
-   { 0x80800008, 0x29e02d29, 0x00b109e0, 0x00020002 },
-   { 0x80800008, 0x2a002d29, 0x00b10a00, 0x00020002 },
-   { 0x80800008, 0x2a202d29, 0x00b10a20, 0x00020002 },
-   { 0x80800008, 0x2a402d29, 0x00b10a40, 0x00020002 },
-   { 0x80800008, 0x2a602d29, 0x00b10a60, 0x00020002 },
-   { 0x80800008, 0x2a802d29, 0x00b10a80, 0x00020002 },
-   { 0x80800008, 0x2aa02d29, 0x00b10aa0, 0x00020002 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000028 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0007000f },
-   { 0x00800031, 0x2ac01d29, 0x00ad0e60, 0x0414a008 },
-   { 0x00800031, 0x2b601d29, 0x00ad0e60, 0x0414a009 },
-   { 0x80800042, 0x29c04629, 0x00ad0ac0, 0x00ad0ac1 },
-   { 0x80800042, 0x29e04629, 0x00ad0ae0, 0x00ad0ae1 },
-   { 0x80800042, 0x2a004629, 0x00ad0b00, 0x00ad0b01 },
-   { 0x80800042, 0x2a204629, 0x00ad0b20, 0x00ad0b21 },
-   { 0x80800042, 0x2a404629, 0x00ad0b60, 0x00ad0b61 },
-   { 0x80800042, 0x2a604629, 0x00ad0b80, 0x00ad0b81 },
-   { 0x80800042, 0x2a804629, 0x00ad0ba0, 0x00ad0ba1 },
-   { 0x80800042, 0x2aa04629, 0x00ad0bc0, 0x00ad0bc1 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x0000001c },
-   { 0x01000005, 0x20002d3c, 0x0021003c, 0x00020002 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x0000000f },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0007000f },
-   { 0x00800031, 0x2ac01d29, 0x00ad0e60, 0x0414a008 },
-   { 0x00800031, 0x2b601d29, 0x00ad0e60, 0x0414a009 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0000000f },
-   { 0x00800031, 0x2b401d29, 0x00ad0e60, 0x0411a008 },
-   { 0x00800031, 0x2be01d29, 0x00ad0e60, 0x0411a009 },
-   { 0x80800042, 0x29c04629, 0x00ad0ac0, 0x00ad0ae0 },
-   { 0x80800042, 0x29e04629, 0x00ad0ae0, 0x00ad0b00 },
-   { 0x80800042, 0x2a004629, 0x00ad0b00, 0x00ad0b20 },
-   { 0x80800042, 0x2a204629, 0x00ad0b20, 0x00ad0b40 },
-   { 0x80800042, 0x2a404629, 0x00ad0b60, 0x00ad0b80 },
-   { 0x80800042, 0x2a604629, 0x00ad0b80, 0x00ad0ba0 },
-   { 0x80800042, 0x2a804629, 0x00ad0ba0, 0x00ad0bc0 },
-   { 0x80800042, 0x2aa04629, 0x00ad0bc0, 0x00ad0be0 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x0000000b },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0007000f },
-   { 0x00800031, 0x2ac01d29, 0x00ad0e60, 0x0414a008 },
-   { 0x00800031, 0x2b601d29, 0x00ad0e60, 0x0414a009 },
-   { 0x00800001, 0x29c00229, 0x00ad0ac0, 0x00000000 },
-   { 0x00800001, 0x29e00229, 0x00ad0ae0, 0x00000000 },
-   { 0x00800001, 0x2a000229, 0x00ad0b00, 0x00000000 },
-   { 0x00800001, 0x2a200229, 0x00ad0b20, 0x00000000 },
-   { 0x00800001, 0x2a400229, 0x00ad0b60, 0x00000000 },
-   { 0x00800001, 0x2a600229, 0x00ad0b80, 0x00000000 },
-   { 0x00800001, 0x2a800229, 0x00ad0ba0, 0x00000000 },
-   { 0x00800001, 0x2aa00229, 0x00ad0bc0, 0x00000000 },
-   { 0x00600001, 0x25900129, 0x008d09c0, 0x00000000 },
-   { 0x00600001, 0x25b00129, 0x008d09e0, 0x00000000 },
-   { 0x00600001, 0x25d00129, 0x008d0a00, 0x00000000 },
-   { 0x00600001, 0x25f00129, 0x008d0a20, 0x00000000 },
-   { 0x00600001, 0x26100129, 0x008d0a40, 0x00000000 },
-   { 0x00600001, 0x26300129, 0x008d0a60, 0x00000000 },
-   { 0x00600001, 0x26500129, 0x008d0a80, 0x00000000 },
-   { 0x00600001, 0x26700129, 0x008d0aa0, 0x00000000 },
-   { 0x00600001, 0x20200021, 0x008d0980, 0x00000000 },
-   { 0x00800001, 0x458101f1, 0x00000000, 0x00000000 },
-   { 0x00800001, 0x45a101f1, 0x00000000, 0x00000000 },
-   { 0x00800001, 0x45c101f1, 0x00000000, 0x00000000 },
-   { 0x00800001, 0x45e101f1, 0x00000000, 0x00000000 },
-   { 0x00800001, 0x460101f1, 0x00000000, 0x00000000 },
-   { 0x00800001, 0x462101f1, 0x00000000, 0x00000000 },
-   { 0x00800001, 0x464101f1, 0x00000000, 0x00000000 },
-   { 0x00800001, 0x466101f1, 0x00000000, 0x00000000 },
-   { 0x02000005, 0x20002e3c, 0x0021003e, 0x00010001 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000011 },
-   { 0x00800040, 0x238045ad, 0x00b10060, 0x00b20380 },
-   { 0x00800040, 0x23a045ad, 0x00b10080, 0x00b203a0 },
-   { 0x00800040, 0x23c045ad, 0x00b100a0, 0x00b203c0 },
-   { 0x00800040, 0x23e045ad, 0x00b100c0, 0x00b203e0 },
-   { 0x00800040, 0x240045ad, 0x00b100e0, 0x00b20400 },
-   { 0x00800040, 0x242045ad, 0x00b10100, 0x00b20420 },
-   { 0x00800040, 0x244045ad, 0x00b10120, 0x00b20440 },
-   { 0x00800040, 0x246045ad, 0x00b10140, 0x00b20460 },
-   { 0x00800040, 0x248045ad, 0x00b10160, 0x00b20480 },
-   { 0x00800040, 0x24a045ad, 0x00b10180, 0x00b204a0 },
-   { 0x00800040, 0x24c045ad, 0x00b101a0, 0x00b204c0 },
-   { 0x00800040, 0x24e045ad, 0x00b101c0, 0x00b204e0 },
-   { 0x00800040, 0x250045ad, 0x00b101e0, 0x00b20500 },
-   { 0x00800040, 0x252045ad, 0x00b10200, 0x00b20520 },
-   { 0x00800040, 0x254045ad, 0x00b10220, 0x00b20540 },
-   { 0x00800040, 0x256045ad, 0x00b10240, 0x00b20560 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000010 },
-   { 0x00800040, 0x238045ad, 0x00b10060, 0x00b20380 },
-   { 0x00800040, 0x23a045ad, 0x00b10160, 0x00b203a0 },
-   { 0x00800040, 0x23c045ad, 0x00b10080, 0x00b203c0 },
-   { 0x00800040, 0x23e045ad, 0x00b10180, 0x00b203e0 },
-   { 0x00800040, 0x240045ad, 0x00b100a0, 0x00b20400 },
-   { 0x00800040, 0x242045ad, 0x00b101a0, 0x00b20420 },
-   { 0x00800040, 0x244045ad, 0x00b100c0, 0x00b20440 },
-   { 0x00800040, 0x246045ad, 0x00b101c0, 0x00b20460 },
-   { 0x00800040, 0x248045ad, 0x00b100e0, 0x00b20480 },
-   { 0x00800040, 0x24a045ad, 0x00b101e0, 0x00b204a0 },
-   { 0x00800040, 0x24c045ad, 0x00b10100, 0x00b204c0 },
-   { 0x00800040, 0x24e045ad, 0x00b10200, 0x00b204e0 },
-   { 0x00800040, 0x250045ad, 0x00b10120, 0x00b20500 },
-   { 0x00800040, 0x252045ad, 0x00b10220, 0x00b20520 },
-   { 0x00800040, 0x254045ad, 0x00b10140, 0x00b20540 },
-   { 0x00800040, 0x256045ad, 0x00b10240, 0x00b20560 },
-   { 0x00000001, 0x20280061, 0x00000000, 0x000f000f },
-   { 0x80800001, 0x438001b1, 0x00b10380, 0x00000000 },
-   { 0x80800001, 0x43a001b1, 0x00b103a0, 0x00000000 },
-   { 0x80800001, 0x43c001b1, 0x00b103c0, 0x00000000 },
-   { 0x80800001, 0x43e001b1, 0x00b103e0, 0x00000000 },
-   { 0x80800001, 0x440001b1, 0x00b10400, 0x00000000 },
-   { 0x80800001, 0x442001b1, 0x00b10420, 0x00000000 },
-   { 0x80800001, 0x444001b1, 0x00b10440, 0x00000000 },
-   { 0x80800001, 0x446001b1, 0x00b10460, 0x00000000 },
-   { 0x80800001, 0x448001b1, 0x00b10480, 0x00000000 },
-   { 0x80800001, 0x44a001b1, 0x00b104a0, 0x00000000 },
-   { 0x80800001, 0x44c001b1, 0x00b104c0, 0x00000000 },
-   { 0x80800001, 0x44e001b1, 0x00b104e0, 0x00000000 },
-   { 0x80800001, 0x450001b1, 0x00b10500, 0x00000000 },
-   { 0x80800001, 0x452001b1, 0x00b10520, 0x00000000 },
-   { 0x80800001, 0x454001b1, 0x00b10540, 0x00000000 },
-   { 0x80800001, 0x456001b1, 0x00b10560, 0x00000000 },
-   { 0x00800001, 0x20200232, 0x00b20380, 0x00000000 },
-   { 0x00800001, 0x20300232, 0x00b203a0, 0x00000000 },
-   { 0x00800001, 0x20400232, 0x00b203c0, 0x00000000 },
-   { 0x00800001, 0x20500232, 0x00b203e0, 0x00000000 },
-   { 0x00800001, 0x20600232, 0x00b20400, 0x00000000 },
-   { 0x00800001, 0x20700232, 0x00b20420, 0x00000000 },
-   { 0x00800001, 0x20800232, 0x00b20440, 0x00000000 },
-   { 0x00800001, 0x20900232, 0x00b20460, 0x00000000 },
-   { 0x00800001, 0x20a00232, 0x00b20480, 0x00000000 },
-   { 0x00800001, 0x20b00232, 0x00b204a0, 0x00000000 },
-   { 0x00800001, 0x20c00232, 0x00b204c0, 0x00000000 },
-   { 0x00800001, 0x20d00232, 0x00b204e0, 0x00000000 },
-   { 0x00800001, 0x20e00232, 0x00b20500, 0x00000000 },
-   { 0x00800001, 0x20f00232, 0x00b20520, 0x00000000 },
-   { 0x00800001, 0x21000232, 0x00b20540, 0x00000000 },
-   { 0x00800001, 0x21100232, 0x00b20560, 0x00000000 },
-   { 0x00800031, 0x24001d28, 0x008d0020, 0x05902000 },
-   { 0x00000001, 0x20280061, 0x00000000, 0x00070007 },
-   { 0x00200008, 0x20201c21, 0x00450020, 0x00000001 },
-   { 0x00800040, 0x258025a9, 0x00b10260, 0x00b10580 },
-   { 0x00800040, 0x25a025a9, 0x00b10280, 0x00b105a0 },
-   { 0x00800040, 0x25c025a9, 0x00b102a0, 0x00b105c0 },
-   { 0x00800040, 0x25e025a9, 0x00b102c0, 0x00b105e0 },
-   { 0x80800001, 0x45800131, 0x00b10580, 0x00000000 },
-   { 0x80800001, 0x45a00131, 0x00b105a0, 0x00000000 },
-   { 0x80800001, 0x45c00131, 0x00b105c0, 0x00000000 },
-   { 0x80800001, 0x45e00131, 0x00b105e0, 0x00000000 },
-   { 0x00800001, 0x20200232, 0x00b20580, 0x00000000 },
-   { 0x00800001, 0x20300232, 0x00b205a0, 0x00000000 },
-   { 0x00800001, 0x20400232, 0x00b205c0, 0x00000000 },
-   { 0x00800001, 0x20500232, 0x00b205e0, 0x00000000 },
-   { 0x00800031, 0x24001d28, 0x008d0020, 0x05302001 },
-   { 0x00800040, 0x260025a9, 0x00b102e0, 0x00b10600 },
-   { 0x00800040, 0x262025a9, 0x00b10300, 0x00b10620 },
-   { 0x00800040, 0x264025a9, 0x00b10320, 0x00b10640 },
-   { 0x00800040, 0x266025a9, 0x00b10340, 0x00b10660 },
-   { 0x80800001, 0x46000131, 0x00b10600, 0x00000000 },
-   { 0x80800001, 0x46200131, 0x00b10620, 0x00000000 },
-   { 0x80800001, 0x46400131, 0x00b10640, 0x00000000 },
-   { 0x80800001, 0x46600131, 0x00b10660, 0x00000000 },
-   { 0x00800001, 0x20200232, 0x00b20600, 0x00000000 },
-   { 0x00800001, 0x20300232, 0x00b20620, 0x00000000 },
-   { 0x00800001, 0x20400232, 0x00b20640, 0x00000000 },
-   { 0x00800001, 0x20500232, 0x00b20660, 0x00000000 },
-   { 0x00800031, 0x24001d28, 0x008d0020, 0x05302002 },
-   { 0x00800031, 0x24001d28, 0x008d0000, 0x87100000 },
diff --git a/src/xvmc/field_f_b.g4a b/src/xvmc/field_f_b.g4a
deleted file mode 100644
index 7066a75..0000000
--- a/src/xvmc/field_f_b.g4a
+++ /dev/null
@@ -1,223 +0,0 @@
-/*
- * Copyright © 2008 Intel Corporation
- *
- * Permission is hereby granted, free of charge, to any person obtaining a
- * copy of this software and associated documentation files (the "Software"),
- * to deal in the Software without restriction, including without limitation
- * the rights to use, copy, modify, merge, publish, distribute, sublicense,
- * and/or sell copies of the Software, and to permit persons to whom the
- * Software is furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice (including the next
- * paragraph) shall be included in all copies or substantial portions of the
- * Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
- * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
- * SOFTWARE.
- *
- * Author:
- *    Zou Nan hai <nanhai.zou at intel.com>
- *    Zhang Hua jun <huajun.zhang at intel.com>
- *    Xing Dong sheng <dongsheng.xing at intel.com>
- *
- */
-mov (8) g76.0<1>UD g1.0<8,8,1>UD {align1};
-//mov (8) g77.0<1>UD g2.0<8,8,1>UD {align1};
-
-include(`block_clear.g4i')
-mov (8) g115.0<1>UD g1.0<8,8,1>UD {align1};
-mov (8) g116.0<1>UD g1.0<8,8,1>UD {align1};
-
-/* forward---Y---first vector*/
-mov(1) g115.8<1>UD 0x007001fUD  { align1 };
-asr (2) g115.14<1>W g1.14<2,2,1>W 1W {align1};
-add (2) g115.0<1>D g116.0<2,2,1>D g115.14<2,2,1>W {align1};
-and (1) g115.4<1>UD g115.4<1,1,1>UD 0xFFFFFFFEUD {align1};
-mov(1) g115.8<1>UD 0x1fUD  { align1 }; //read 1 line, 32 columns.
-and.nz (1) null g1.31<1,1,1>UB 0x1UW {align1};
-(f0) add (1) g115.4<1>D g115.4<1,1,1>D 1D {align1};
-define(`surface',`4')
-define(`mv1',`g1.14')
-define(`mv2',`g1.16')
-include(`motion_field_y.g4i')
-mov (8) g52.0<1>UD g96.0<8,8,1>UD {align1};
-mov (8) g54.0<1>UD g97.0<8,8,1>UD {align1};
-mov (8) g56.0<1>UD g98.0<8,8,1>UD {align1};
-mov (8) g58.0<1>UD g99.0<8,8,1>UD {align1};
-mov (8) g60.0<1>UD g100.0<8,8,1>UD {align1};
-mov (8) g62.0<1>UD g101.0<8,8,1>UD {align1};
-mov (8) g64.0<1>UD g102.0<8,8,1>UD {align1};
-mov (8) g66.0<1>UD g103.0<8,8,1>UD {align1};
-
-/*forward---Y---second vector*/
-asr (2) g115.14<1>W g1.22<2,2,1>W 1W {align1};
-add (2) g115.0<1>D g116.0<2,2,1>D g115.14<2,2,1>W {align1};
-and (1) g115.4<1>UD g115.4<1,1,1>UD 0xFFFFFFFEUD {align1};
-mov(1) g115.8<1>UD 0x1fUD { align1 }; //read 1 line, 32 columns.
-and.nz (1) null g1.31<1,1,1>UB 0x4UD {align1};
-(f0) add (1) g115.4<1>D g115.4<1,1,1>D 1D {align1};
-define(`surface',`4')
-define(`mv1',`g1.22')
-define(`mv2',`g1.24')
-include(`motion_field_y.g4i')
-mov (8) g53.0<1>UD g96.0<8,8,1>UD {align1};
-mov (8) g55.0<1>UD g97.0<8,8,1>UD {align1};
-mov (8) g57.0<1>UD g98.0<8,8,1>UD {align1};
-mov (8) g59.0<1>UD g99.0<8,8,1>UD {align1};
-mov (8) g61.0<1>UD g100.0<8,8,1>UD {align1};
-mov (8) g63.0<1>UD g101.0<8,8,1>UD {align1};
-mov (8) g65.0<1>UD g102.0<8,8,1>UD {align1};
-mov (8) g67.0<1>UD g103.0<8,8,1>UD {align1};
-
-/*forward---UV---first vector*/
-mov(1) g115.8<1>UD 0x007000fUD  { align1 };
-asr (2) g115.14<1>W g1.14<2,2,1>W 2W {align1};
-asr (2) g115.0<1>D g116.0<2,2,1>D 1D {align1};
-add (2) g115.0<1>D g115.0<2,2,1>D g115.14<2,2,1>W {align1};
-and (1) g115.4<1>UD g115.4<1,1,1>UD 0xFFFFFFFEUD {align1};
-and.nz (1) null g1.31<1,1,1>UB 0x1UW {align1};
-(f0) add (1) g115.4<1>UD g115.4<1,1,1>UD 1UD {align1};
-define(`surface_u',`5')
-define(`surface_v',`6')
-define(`mv1',`g1.14')
-define(`mv2',`g1.16')
-include(`motion_field_uv.g4i')
-mov (8) g68.0<1>UW g78.0<8,8,1>UW {align1};
-mov (8) g69.0<1>UW g79.0<8,8,1>UW {align1};
-mov (8) g70.0<1>UW g80.0<8,8,1>UW {align1};
-mov (8) g71.0<1>UW g81.0<8,8,1>UW {align1};
-mov (8) g72.0<1>UW g82.0<8,8,1>UW {align1};
-mov (8) g73.0<1>UW g83.0<8,8,1>UW {align1};
-mov (8) g74.0<1>UW g84.0<8,8,1>UW {align1};
-mov (8) g75.0<1>UW g85.0<8,8,1>UW {align1};
-
-/*forward---UV---second vector */
-asr (2) g115.14<1>W g1.22<2,2,1>W 2W {align1};
-asr (2) g115.0<1>D g116.0<2,2,1>D 1D {align1};
-add (2) g115.0<1>D g115.0<2,2,1>D g115.14<2,2,1>W {align1};
-and (1) g115.4<1>UD g115.4<1,1,1>UD 0xFFFFFFFEUD {align1};
-and.nz (1) null g1.31<1,1,1>UB 0x4UW {align1};
-(f0) add (1) g115.4<1>UD g115.4<1,1,1>UD 1UD {align1};
-define(`mv1',`g1.24')
-define(`mv2',`g1.26')
-include(`motion_field_uv.g4i')
-mov (8) g68.16<1>UW g78.0<8,8,1>UW {align1};
-mov (8) g69.16<1>UW g79.0<8,8,1>UW {align1};
-mov (8) g70.16<1>UW g80.0<8,8,1>UW {align1};
-mov (8) g71.16<1>UW g81.0<8,8,1>UW {align1};
-mov (8) g72.16<1>UW g82.0<8,8,1>UW {align1};
-mov (8) g73.16<1>UW g83.0<8,8,1>UW {align1};
-mov (8) g74.16<1>UW g84.0<8,8,1>UW {align1};
-mov (8) g75.16<1>UW g85.0<8,8,1>UW {align1};
-
-/*backward---Y---first vector */
-mov(8) g1.0<1>UD g116.0<8,8,1>UD {align1};
-mov(1) g115.8<1>UD 0x007001fUD  { align1 };
-mov(1) g1.8<1>UD 0x007000fUD  { align1 };
-asr (2) g115.14<1>W g1.18<2,2,1>W 1W {align1};
-add (2) g115.0<1>D g116.0<2,2,1>D g115.14<2,2,1>W {align1};
-and (1) g115.4<1>UD g115.4<1,1,1>UD 0xFFFFFFFEUD {align1};
-mov(1) g115.8<1>UD 0x1fUD  { align1 }; //read 1 line, 32 columns.
-and.nz (1) null g1.31<1,1,1>UB 0x2UW {align1};
-(f0) add (1) g115.4<1>D g115.4<1,1,1>D 1D {align1};
-define(`surface',`7')
-define(`mv1',`g1.18')
-define(`mv2',`g1.20')
-include(`motion_field_y.g4i')
-mov (8) g28.0<1>UD g96.0<8,8,1>UD {align1};
-mov (8) g30.0<1>UD g97.0<8,8,1>UD {align1};
-mov (8) g32.0<1>UD g98.0<8,8,1>UD {align1};
-mov (8) g34.0<1>UD g99.0<8,8,1>UD {align1};
-mov (8) g36.0<1>UD g100.0<8,8,1>UD {align1};
-mov (8) g38.0<1>UD g101.0<8,8,1>UD {align1};
-mov (8) g40.0<1>UD g102.0<8,8,1>UD {align1};
-mov (8) g42.0<1>UD g103.0<8,8,1>UD {align1};
-
-/*backward---Y---second vector */
-asr (2) g115.14<1>W g1.26<2,2,1>W 1W {align1};
-add (2) g115.0<1>D g116.0<2,2,1>D g115.14<2,2,1>W {align1};
-and (1) g115.4<1>UD g115.4<1,1,1>UD 0xFFFFFFFEUD {align1};
-mov(1) g115.8<1>UD 0x1fUD  { align1 }; //read 1 line, 32 columns.
-and.nz (1) null g2.20<1,1,1>UD 0x8UD {align1};
-(f0) add (1) g115.4<1>D g115.4<1,1,1>D 1D {align1};
-define(`surface',`7')
-define(`mv1',`g1.26')
-define(`mv2',`g1.28')
-include(`motion_field_y.g4i')
-
-avg.sat (16) g28.0<1>UW g52.0<16,16,1>UW g28.0<16,16,1>UW {align1};
-avg.sat (16) g29.0<1>UW g53.0<16,16,1>UW g96.0<16,16,1>UW {align1};
-avg.sat (16) g30.0<1>UW g54.0<16,16,1>UW g30.0<16,16,1>UW {align1};
-avg.sat (16) g31.0<1>UW g55.0<16,16,1>UW g97.0<16,16,1>UW {align1};
-avg.sat (16) g32.0<1>UW g56.0<16,16,1>UW g32.0<16,16,1>UW {align1};
-avg.sat (16) g33.0<1>UW g57.0<16,16,1>UW g98.0<16,16,1>UW {align1};
-avg.sat (16) g34.0<1>UW g58.0<16,16,1>UW g34.0<16,16,1>UW {align1};
-avg.sat (16) g35.0<1>UW g59.0<16,16,1>UW g99.0<16,16,1>UW {align1};
-avg.sat (16) g36.0<1>UW g60.0<16,16,1>UW g36.0<16,16,1>UW {align1};
-avg.sat (16) g37.0<1>UW g61.0<16,16,1>UW g100.0<16,16,1>UW {align1};
-avg.sat (16) g38.0<1>UW g62.0<16,16,1>UW g38.0<16,16,1>UW {align1};
-avg.sat (16) g39.0<1>UW g63.0<16,16,1>UW g101.0<16,16,1>UW {align1};
-avg.sat (16) g40.0<1>UW g64.0<16,16,1>UW g40.0<16,16,1>UW {align1};
-avg.sat (16) g41.0<1>UW g65.0<16,16,1>UW g102.0<16,16,1>UW {align1};
-avg.sat (16) g42.0<1>UW g66.0<16,16,1>UW g42.0<16,16,1>UW {align1};
-avg.sat (16) g43.0<1>UW g67.0<16,16,1>UW g103.0<16,16,1>UW {align1};
-
-/*backward---UV---first vector */
-mov(1) g115.8<1>UD 0x007000fUD  { align1 };
-asr (2) g115.14<1>W g1.18<2,2,1>W 2W {align1};
-asr (2) g115.0<1>D g116.0<2,2,1>D 1D {align1};
-add (2) g115.0<1>D g115.0<2,2,1>D g115.14<2,2,1>W {align1};
-and (1) g115.4<1>UD g115.4<1,1,1>UD 0xFFFFFFFEUD {align1};
-and.nz (1) null g1.31<1,1,1>UB 0x2UW {align1};
-(f0) add (1) g115.4<1>UD g115.4<1,1,1>UD 1UD {align1};
-define(`surface_u',`8')
-define(`surface_v',`9')
-define(`mv1',`g1.18')
-define(`mv2',`g1.20')
-include(`motion_field_uv.g4i')
-mov (8) g44.0<1>UW g78.0<8,8,1>UW {align1};
-mov (8) g45.0<1>UW g79.0<8,8,1>UW {align1};
-mov (8) g46.0<1>UW g80.0<8,8,1>UW {align1};
-mov (8) g47.0<1>UW g81.0<8,8,1>UW {align1};
-mov (8) g48.0<1>UW g82.0<8,8,1>UW {align1};
-mov (8) g49.0<1>UW g83.0<8,8,1>UW {align1};
-mov (8) g50.0<1>UW g84.0<8,8,1>UW {align1};
-mov (8) g51.0<1>UW g85.0<8,8,1>UW {align1};
-
-/*backward---UV---second vector */
-asr (2) g115.14<1>W g1.26<2,2,1>W 2W {align1};
-asr (2) g115.0<1>D g116.0<2,2,1>D 1D {align1};
-add (2) g115.0<1>D g115.0<2,2,1>D g115.14<2,2,1>W {align1};
-and (1) g115.4<1>UD g115.4<1,1,1>UD 0xFFFFFFFEUD {align1};
-and.nz (1) null g1.31<1,1,1>UB 0x8UW {align1};
-(f0) add (1) g115.4<1>UD g115.4<1,1,1>UD 1UD {align1};
-define(`mv1',`g1.26')
-define(`mv2',`g1.28')
-include(`motion_field_uv.g4i')
-mov (8) g44.16<1>UW g78.0<8,8,1>UW {align1};
-mov (8) g45.16<1>UW g79.0<8,8,1>UW {align1};
-mov (8) g46.16<1>UW g80.0<8,8,1>UW {align1};
-mov (8) g47.16<1>UW g81.0<8,8,1>UW {align1};
-mov (8) g48.16<1>UW g82.0<8,8,1>UW {align1};
-mov (8) g49.16<1>UW g83.0<8,8,1>UW {align1};
-mov (8) g50.16<1>UW g84.0<8,8,1>UW {align1};
-mov (8) g51.16<1>UW g85.0<8,8,1>UW {align1};
-
-avg.sat (16) g44.0<1>UW g68.0<16,16,1>UW g44.0<16,16,1>UW {align1};
-avg.sat (16) g45.0<1>UW g69.0<16,16,1>UW g45.0<16,16,1>UW {align1};
-avg.sat (16) g46.0<1>UW g70.0<16,16,1>UW g46.0<16,16,1>UW {align1};
-avg.sat (16) g47.0<1>UW g71.0<16,16,1>UW g47.0<16,16,1>UW {align1};
-avg.sat (16) g48.0<1>UW g72.0<16,16,1>UW g48.0<16,16,1>UW {align1};
-avg.sat (16) g49.0<1>UW g73.0<16,16,1>UW g49.0<16,16,1>UW {align1};
-avg.sat (16) g50.0<1>UW g74.0<16,16,1>UW g50.0<16,16,1>UW {align1};
-avg.sat (16) g51.0<1>UW g75.0<16,16,1>UW g51.0<16,16,1>UW {align1};
-
-include(`addidct.g4i')
-
-//send (16) 0 acc0<1>UW g0<8,8,1>UW 
-//	thread_spawner(0, 0, 0) mlen 1 rlen 0 { align1 EOT};
diff --git a/src/xvmc/field_f_b.g4b b/src/xvmc/field_f_b.g4b
deleted file mode 100644
index 4a1eb4b..0000000
--- a/src/xvmc/field_f_b.g4b
+++ /dev/null
@@ -1,2486 +0,0 @@
-   { 0x00600001, 0x29800021, 0x008d0020, 0x00000000 },
-   { 0x02000005, 0x20000c3c, 0x00210040, 0x00000001 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000030 },
-   { 0x00000040, 0x20480c21, 0x00210988, 0x00000000 },
-   { 0x00800031, 0x20601c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x20801c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x20a01c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x20c01c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x20e01c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x21001c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x21201c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x21401c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x21601c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x21801c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x21a01c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x21c01c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x21e01c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x22001c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x22201c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x22401c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x22601c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x22801c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x22a01c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x22c01c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x22e01c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x23001c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x23201c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x23401c21, 0x00b10040, 0x04110203 },
-   { 0x02000005, 0x20002d3c, 0x0021098c, 0x00200020 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000008 },
-   { 0x00600001, 0x20600169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x20800169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x20a00169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x20c00169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x20e00169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x21000169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x21200169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x21400169, 0x00000000, 0x00000000 },
-   { 0x02000005, 0x20002d3c, 0x0021002c, 0x00100010 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000008 },
-   { 0x00600001, 0x20700169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x20900169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x20b00169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x20d00169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x20f00169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x21100169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x21300169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x21500169, 0x00000000, 0x00000000 },
-   { 0x02000005, 0x20002d3c, 0x0021002c, 0x00080008 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000008 },
-   { 0x00600001, 0x21600169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x21800169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x21a00169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x21c00169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x21e00169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x22000169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x22200169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x22400169, 0x00000000, 0x00000000 },
-   { 0x02000005, 0x20002d3c, 0x0021002c, 0x00040004 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000008 },
-   { 0x00600001, 0x21700169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x21900169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x21b00169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x21d00169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x21f00169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x22100169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x22300169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x22500169, 0x00000000, 0x00000000 },
-   { 0x02000005, 0x20002d3c, 0x0021002c, 0x00020002 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000004 },
-   { 0x00800001, 0x22600169, 0x00000000, 0x00000000 },
-   { 0x00800001, 0x22800169, 0x00000000, 0x00000000 },
-   { 0x00800001, 0x22a00169, 0x00000000, 0x00000000 },
-   { 0x00800001, 0x22c00169, 0x00000000, 0x00000000 },
-   { 0x02000005, 0x20002d3c, 0x0021002c, 0x00010001 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000004 },
-   { 0x00800001, 0x22e00169, 0x00000000, 0x00000000 },
-   { 0x00800001, 0x23000169, 0x00000000, 0x00000000 },
-   { 0x00800001, 0x23200169, 0x00000000, 0x00000000 },
-   { 0x00800001, 0x23400169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x2e600021, 0x008d0020, 0x00000000 },
-   { 0x00600001, 0x2e800021, 0x008d0020, 0x00000000 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0007001f },
-   { 0x0020000c, 0x2e6e3dad, 0x0045002e, 0x00010001 },
-   { 0x00200040, 0x2e6034a5, 0x00450e80, 0x00450e6e },
-   { 0x00000005, 0x2e640c21, 0x00210e64, 0xfffffffe },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
-   { 0x02000005, 0x20002e3c, 0x0021003f, 0x00010001 },
-   { 0x00010040, 0x2e641ca5, 0x00210e64, 0x00000001 },
-   { 0x01000005, 0x20002d3c, 0x0021002e, 0x00010001 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x000000b1 },
-   { 0x01000005, 0x20002d3c, 0x00210030, 0x00010001 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x0000007d },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
-   { 0x00800031, 0x29c01d29, 0x008d0e60, 0x0411a004 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a001d29, 0x008d0e60, 0x0411a004 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a401d29, 0x008d0e60, 0x0411a004 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a801d29, 0x008d0e60, 0x0411a004 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0007001f },
-   { 0x00800031, 0x2ac01d29, 0x008d0e60, 0x0418a004 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
-   { 0x00800031, 0x2bc01d29, 0x008d0e60, 0x0411a004 },
-   { 0x00000005, 0x20580c21, 0x00210e60, 0x00000003 },
-   { 0x00000041, 0x20580c21, 0x00210058, 0x00000019 },
-   { 0x00000020, 0x34001400, 0x00001400, 0x00210058 },
-   { 0x00800040, 0x2c004629, 0x00b109c0, 0x00b10a00 },
-   { 0x00800040, 0x2c204629, 0x00b10a00, 0x00b10a40 },
-   { 0x00800040, 0x2c404629, 0x00b10a40, 0x00b10a80 },
-   { 0x00800040, 0x2c604629, 0x00b10a80, 0x00b10ac0 },
-   { 0x00800040, 0x2c804629, 0x00b10ac0, 0x00b10b00 },
-   { 0x00800040, 0x2ca04629, 0x00b10b00, 0x00b10b40 },
-   { 0x00800040, 0x2cc04629, 0x00b10b40, 0x00b10b80 },
-   { 0x00800040, 0x2ce04629, 0x00b10b80, 0x00b10bc0 },
-   { 0x00800040, 0x2c004529, 0x00b10c00, 0x00b109c1 },
-   { 0x00800040, 0x2c204529, 0x00b10c20, 0x00b10a01 },
-   { 0x00800040, 0x2c404529, 0x00b10c40, 0x00b10a41 },
-   { 0x00800040, 0x2c604529, 0x00b10c60, 0x00b10a81 },
-   { 0x00800040, 0x2c804529, 0x00b10c80, 0x00b10ac1 },
-   { 0x00800040, 0x2ca04529, 0x00b10ca0, 0x00b10b01 },
-   { 0x00800040, 0x2cc04529, 0x00b10cc0, 0x00b10b41 },
-   { 0x00800040, 0x2ce04529, 0x00b10ce0, 0x00b10b81 },
-   { 0x00800040, 0x2c004529, 0x00b10c00, 0x00b10a01 },
-   { 0x00800040, 0x2c204529, 0x00b10c20, 0x00b10a41 },
-   { 0x00800040, 0x2c404529, 0x00b10c40, 0x00b10a81 },
-   { 0x00800040, 0x2c604529, 0x00b10c60, 0x00b10ac1 },
-   { 0x00800040, 0x2c804529, 0x00b10c80, 0x00b10b01 },
-   { 0x00800040, 0x2ca04529, 0x00b10ca0, 0x00b10b41 },
-   { 0x00800040, 0x2cc04529, 0x00b10cc0, 0x00b10b81 },
-   { 0x00800040, 0x2ce04529, 0x00b10ce0, 0x00b10bc1 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x0000004a },
-   { 0x00800040, 0x2c004629, 0x00b109c1, 0x00b10a01 },
-   { 0x00800040, 0x2c204629, 0x00b10a01, 0x00b10a41 },
-   { 0x00800040, 0x2c404629, 0x00b10a41, 0x00b10a81 },
-   { 0x00800040, 0x2c604629, 0x00b10a81, 0x00b10ac1 },
-   { 0x00800040, 0x2c804629, 0x00b10ac1, 0x00b10b01 },
-   { 0x00800040, 0x2ca04629, 0x00b10b01, 0x00b10b41 },
-   { 0x00800040, 0x2cc04629, 0x00b10b41, 0x00b10b81 },
-   { 0x00800040, 0x2ce04629, 0x00b10b81, 0x00b10bc1 },
-   { 0x00800040, 0x2c004529, 0x00b10c00, 0x00b109c2 },
-   { 0x00800040, 0x2c204529, 0x00b10c20, 0x00b10a02 },
-   { 0x00800040, 0x2c404529, 0x00b10c40, 0x00b10a42 },
-   { 0x00800040, 0x2c604529, 0x00b10c60, 0x00b10a82 },
-   { 0x00800040, 0x2c804529, 0x00b10c80, 0x00b10ac2 },
-   { 0x00800040, 0x2ca04529, 0x00b10ca0, 0x00b10b02 },
-   { 0x00800040, 0x2cc04529, 0x00b10cc0, 0x00b10b42 },
-   { 0x00800040, 0x2ce04529, 0x00b10ce0, 0x00b10b82 },
-   { 0x00800040, 0x2c004529, 0x00b10c00, 0x00b10a02 },
-   { 0x00800040, 0x2c204529, 0x00b10c20, 0x00b10a42 },
-   { 0x00800040, 0x2c404529, 0x00b10c40, 0x00b10a82 },
-   { 0x00800040, 0x2c604529, 0x00b10c60, 0x00b10ac2 },
-   { 0x00800040, 0x2c804529, 0x00b10c80, 0x00b10b02 },
-   { 0x00800040, 0x2ca04529, 0x00b10ca0, 0x00b10b42 },
-   { 0x00800040, 0x2cc04529, 0x00b10cc0, 0x00b10b82 },
-   { 0x00800040, 0x2ce04529, 0x00b10ce0, 0x00b10bc2 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000031 },
-   { 0x00800040, 0x2c004629, 0x00b109c2, 0x00b10a02 },
-   { 0x00800040, 0x2c204629, 0x00b10a02, 0x00b10a42 },
-   { 0x00800040, 0x2c404629, 0x00b10a42, 0x00b10a82 },
-   { 0x00800040, 0x2c604629, 0x00b10a82, 0x00b10ac2 },
-   { 0x00800040, 0x2c804629, 0x00b10ac2, 0x00b10b02 },
-   { 0x00800040, 0x2ca04629, 0x00b10b02, 0x00b10b42 },
-   { 0x00800040, 0x2cc04629, 0x00b10b42, 0x00b10b82 },
-   { 0x00800040, 0x2ce04629, 0x00b10b82, 0x00b10bc2 },
-   { 0x00800040, 0x2c004529, 0x00b10c00, 0x00b109c3 },
-   { 0x00800040, 0x2c204529, 0x00b10c20, 0x00b10a03 },
-   { 0x00800040, 0x2c404529, 0x00b10c40, 0x00b10a43 },
-   { 0x00800040, 0x2c604529, 0x00b10c60, 0x00b10a83 },
-   { 0x00800040, 0x2c804529, 0x00b10c80, 0x00b10ac3 },
-   { 0x00800040, 0x2ca04529, 0x00b10ca0, 0x00b10b03 },
-   { 0x00800040, 0x2cc04529, 0x00b10cc0, 0x00b10b43 },
-   { 0x00800040, 0x2ce04529, 0x00b10ce0, 0x00b10b83 },
-   { 0x00800040, 0x2c004529, 0x00b10c00, 0x00b10a03 },
-   { 0x00800040, 0x2c204529, 0x00b10c20, 0x00b10a43 },
-   { 0x00800040, 0x2c404529, 0x00b10c40, 0x00b10a83 },
-   { 0x00800040, 0x2c604529, 0x00b10c60, 0x00b10ac3 },
-   { 0x00800040, 0x2c804529, 0x00b10c80, 0x00b10b03 },
-   { 0x00800040, 0x2ca04529, 0x00b10ca0, 0x00b10b43 },
-   { 0x00800040, 0x2cc04529, 0x00b10cc0, 0x00b10b83 },
-   { 0x00800040, 0x2ce04529, 0x00b10ce0, 0x00b10bc3 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000018 },
-   { 0x00800040, 0x2c004629, 0x00b109c3, 0x00b10a03 },
-   { 0x00800040, 0x2c204629, 0x00b10a03, 0x00b10a43 },
-   { 0x00800040, 0x2c404629, 0x00b10a43, 0x00b10a83 },
-   { 0x00800040, 0x2c604629, 0x00b10a83, 0x00b10ac3 },
-   { 0x00800040, 0x2c804629, 0x00b10ac3, 0x00b10b03 },
-   { 0x00800040, 0x2ca04629, 0x00b10b03, 0x00b10b43 },
-   { 0x00800040, 0x2cc04629, 0x00b10b43, 0x00b10b83 },
-   { 0x00800040, 0x2ce04629, 0x00b10b83, 0x00b10bc3 },
-   { 0x00800040, 0x2c004529, 0x00b10c00, 0x00b109c4 },
-   { 0x00800040, 0x2c204529, 0x00b10c20, 0x00b10a04 },
-   { 0x00800040, 0x2c404529, 0x00b10c40, 0x00b10a44 },
-   { 0x00800040, 0x2c604529, 0x00b10c60, 0x00b10a84 },
-   { 0x00800040, 0x2c804529, 0x00b10c80, 0x00b10ac4 },
-   { 0x00800040, 0x2ca04529, 0x00b10ca0, 0x00b10b04 },
-   { 0x00800040, 0x2cc04529, 0x00b10cc0, 0x00b10b44 },
-   { 0x00800040, 0x2ce04529, 0x00b10ce0, 0x00b10b84 },
-   { 0x00800040, 0x2c004529, 0x00b10c00, 0x00b10a04 },
-   { 0x00800040, 0x2c204529, 0x00b10c20, 0x00b10a44 },
-   { 0x00800040, 0x2c404529, 0x00b10c40, 0x00b10a84 },
-   { 0x00800040, 0x2c604529, 0x00b10c60, 0x00b10ac4 },
-   { 0x00800040, 0x2c804529, 0x00b10c80, 0x00b10b04 },
-   { 0x00800040, 0x2ca04529, 0x00b10ca0, 0x00b10b44 },
-   { 0x00800040, 0x2cc04529, 0x00b10cc0, 0x00b10b84 },
-   { 0x00800040, 0x2ce04529, 0x00b10ce0, 0x00b10bc4 },
-   { 0x00800008, 0x2c002d29, 0x00b10c00, 0x00020002 },
-   { 0x00800008, 0x2c202d29, 0x00b10c20, 0x00020002 },
-   { 0x00800008, 0x2c402d29, 0x00b10c40, 0x00020002 },
-   { 0x00800008, 0x2c602d29, 0x00b10c60, 0x00020002 },
-   { 0x00800008, 0x2c802d29, 0x00b10c80, 0x00020002 },
-   { 0x00800008, 0x2ca02d29, 0x00b10ca0, 0x00020002 },
-   { 0x00800008, 0x2cc02d29, 0x00b10cc0, 0x00020002 },
-   { 0x00800008, 0x2ce02d29, 0x00b10ce0, 0x00020002 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x0000009a },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
-   { 0x00800031, 0x29c01d29, 0x008d0e60, 0x0411a004 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a001d29, 0x008d0e60, 0x0411a004 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a401d29, 0x008d0e60, 0x0411a004 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a801d29, 0x008d0e60, 0x0411a004 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0007001f },
-   { 0x00800031, 0x2ac01d29, 0x008d0e60, 0x0418a004 },
-   { 0x00000005, 0x20580c21, 0x00210e60, 0x00000003 },
-   { 0x00000041, 0x20580c21, 0x00210058, 0x00000009 },
-   { 0x00000020, 0x34001400, 0x00001400, 0x00210058 },
-   { 0x80800042, 0x2c004629, 0x00b109c0, 0x00b109c1 },
-   { 0x80800042, 0x2c204629, 0x00b10a00, 0x00b10a01 },
-   { 0x80800042, 0x2c404629, 0x00b10a40, 0x00b10a41 },
-   { 0x80800042, 0x2c604629, 0x00b10a80, 0x00b10a81 },
-   { 0x80800042, 0x2c804629, 0x00b10ac0, 0x00b10ac1 },
-   { 0x80800042, 0x2ca04629, 0x00b10b00, 0x00b10b01 },
-   { 0x80800042, 0x2cc04629, 0x00b10b40, 0x00b10b41 },
-   { 0x80800042, 0x2ce04629, 0x00b10b80, 0x00b10b81 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x0000001a },
-   { 0x80800042, 0x2c004629, 0x00b109c1, 0x00b109c2 },
-   { 0x80800042, 0x2c204629, 0x00b10a01, 0x00b10a02 },
-   { 0x80800042, 0x2c404629, 0x00b10a41, 0x00b10a42 },
-   { 0x80800042, 0x2c604629, 0x00b10a81, 0x00b10a82 },
-   { 0x80800042, 0x2c804629, 0x00b10ac1, 0x00b10ac2 },
-   { 0x80800042, 0x2ca04629, 0x00b10b01, 0x00b10b02 },
-   { 0x80800042, 0x2cc04629, 0x00b10b41, 0x00b10b42 },
-   { 0x80800042, 0x2ce04629, 0x00b10b81, 0x00b10b82 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000011 },
-   { 0x80800042, 0x2c004629, 0x00b109c2, 0x00b109c3 },
-   { 0x80800042, 0x2c204629, 0x00b10a02, 0x00b10a03 },
-   { 0x80800042, 0x2c404629, 0x00b10a42, 0x00b10a43 },
-   { 0x80800042, 0x2c604629, 0x00b10a82, 0x00b10a83 },
-   { 0x80800042, 0x2c804629, 0x00b10ac2, 0x00b10ac3 },
-   { 0x80800042, 0x2ca04629, 0x00b10b02, 0x00b10b03 },
-   { 0x80800042, 0x2cc04629, 0x00b10b42, 0x00b10b43 },
-   { 0x80800042, 0x2ce04629, 0x00b10b82, 0x00b10b83 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000008 },
-   { 0x80800042, 0x2c004629, 0x00b109c3, 0x00b109c4 },
-   { 0x80800042, 0x2c204629, 0x00b10a03, 0x00b10a04 },
-   { 0x80800042, 0x2c404629, 0x00b10a43, 0x00b10a44 },
-   { 0x80800042, 0x2c604629, 0x00b10a83, 0x00b10a84 },
-   { 0x80800042, 0x2c804629, 0x00b10ac3, 0x00b10ac4 },
-   { 0x80800042, 0x2ca04629, 0x00b10b03, 0x00b10b04 },
-   { 0x80800042, 0x2cc04629, 0x00b10b43, 0x00b10b44 },
-   { 0x80800042, 0x2ce04629, 0x00b10b83, 0x00b10b84 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000068 },
-   { 0x01000005, 0x20002d3c, 0x00210030, 0x00010001 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000035 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
-   { 0x00800031, 0x29c01d29, 0x008d0e60, 0x0411a004 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a001d29, 0x008d0e60, 0x0411a004 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a401d29, 0x008d0e60, 0x0411a004 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a801d29, 0x008d0e60, 0x0411a004 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0007001f },
-   { 0x00800031, 0x2ac01d29, 0x008d0e60, 0x0418a004 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
-   { 0x00800031, 0x2bc01d29, 0x008d0e60, 0x0411a004 },
-   { 0x00000005, 0x20580c21, 0x00210e60, 0x00000003 },
-   { 0x00000041, 0x20580c21, 0x00210058, 0x00000009 },
-   { 0x00000020, 0x34001400, 0x00001400, 0x00210058 },
-   { 0x80800042, 0x2c004629, 0x00b109c0, 0x00b10a00 },
-   { 0x80800042, 0x2c204629, 0x00b10a00, 0x00b10a40 },
-   { 0x80800042, 0x2c404629, 0x00b10a40, 0x00b10a80 },
-   { 0x80800042, 0x2c604629, 0x00b10a80, 0x00b10ac0 },
-   { 0x80800042, 0x2c804629, 0x00b10ac0, 0x00b10b00 },
-   { 0x80800042, 0x2ca04629, 0x00b10b00, 0x00b10b40 },
-   { 0x80800042, 0x2cc04629, 0x00b10b40, 0x00b10b80 },
-   { 0x80800042, 0x2ce04629, 0x00b10b80, 0x00b10bc0 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x0000001a },
-   { 0x80800042, 0x2c004629, 0x00b109c1, 0x00b10a01 },
-   { 0x80800042, 0x2c204629, 0x00b10a01, 0x00b10a41 },
-   { 0x80800042, 0x2c404629, 0x00b10a41, 0x00b10a81 },
-   { 0x80800042, 0x2c604629, 0x00b10a81, 0x00b10ac1 },
-   { 0x80800042, 0x2c804629, 0x00b10ac1, 0x00b10b01 },
-   { 0x80800042, 0x2ca04629, 0x00b10b01, 0x00b10b41 },
-   { 0x80800042, 0x2cc04629, 0x00b10b41, 0x00b10b81 },
-   { 0x80800042, 0x2ce04629, 0x00b10b81, 0x00b10bc1 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000011 },
-   { 0x80800042, 0x2c004629, 0x00b109c2, 0x00b10a02 },
-   { 0x80800042, 0x2c204629, 0x00b10a02, 0x00b10a42 },
-   { 0x80800042, 0x2c404629, 0x00b10a42, 0x00b10a82 },
-   { 0x80800042, 0x2c604629, 0x00b10a82, 0x00b10ac2 },
-   { 0x80800042, 0x2c804629, 0x00b10ac2, 0x00b10b02 },
-   { 0x80800042, 0x2ca04629, 0x00b10b02, 0x00b10b42 },
-   { 0x80800042, 0x2cc04629, 0x00b10b42, 0x00b10b82 },
-   { 0x80800042, 0x2ce04629, 0x00b10b82, 0x00b10bc2 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000008 },
-   { 0x80800042, 0x2c004629, 0x00b109c3, 0x00b10a03 },
-   { 0x80800042, 0x2c204629, 0x00b10a03, 0x00b10a43 },
-   { 0x80800042, 0x2c404629, 0x00b10a43, 0x00b10a83 },
-   { 0x80800042, 0x2c604629, 0x00b10a83, 0x00b10ac3 },
-   { 0x80800042, 0x2c804629, 0x00b10ac3, 0x00b10b03 },
-   { 0x80800042, 0x2ca04629, 0x00b10b03, 0x00b10b43 },
-   { 0x80800042, 0x2cc04629, 0x00b10b43, 0x00b10b83 },
-   { 0x80800042, 0x2ce04629, 0x00b10b83, 0x00b10bc3 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000031 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
-   { 0x00800031, 0x29c01d29, 0x008d0e60, 0x0411a004 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a001d29, 0x008d0e60, 0x0411a004 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a401d29, 0x008d0e60, 0x0411a004 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a801d29, 0x008d0e60, 0x0411a004 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0007001f },
-   { 0x00800031, 0x2ac01d29, 0x008d0e60, 0x0418a004 },
-   { 0x00000005, 0x20580c21, 0x00210e60, 0x00000003 },
-   { 0x00000041, 0x20580c21, 0x00210058, 0x00000009 },
-   { 0x00000020, 0x34001400, 0x00001400, 0x00210058 },
-   { 0x00800001, 0x2c000229, 0x00b109c0, 0x00000000 },
-   { 0x00800001, 0x2c200229, 0x00b10a00, 0x00000000 },
-   { 0x00800001, 0x2c400229, 0x00b10a40, 0x00000000 },
-   { 0x00800001, 0x2c600229, 0x00b10a80, 0x00000000 },
-   { 0x00800001, 0x2c800229, 0x00b10ac0, 0x00000000 },
-   { 0x00800001, 0x2ca00229, 0x00b10b00, 0x00000000 },
-   { 0x00800001, 0x2cc00229, 0x00b10b40, 0x00000000 },
-   { 0x00800001, 0x2ce00229, 0x00b10b80, 0x00000000 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x0000001a },
-   { 0x00800001, 0x2c000229, 0x00b109c1, 0x00000000 },
-   { 0x00800001, 0x2c200229, 0x00b10a01, 0x00000000 },
-   { 0x00800001, 0x2c400229, 0x00b10a41, 0x00000000 },
-   { 0x00800001, 0x2c600229, 0x00b10a81, 0x00000000 },
-   { 0x00800001, 0x2c800229, 0x00b10ac1, 0x00000000 },
-   { 0x00800001, 0x2ca00229, 0x00b10b01, 0x00000000 },
-   { 0x00800001, 0x2cc00229, 0x00b10b41, 0x00000000 },
-   { 0x00800001, 0x2ce00229, 0x00b10b81, 0x00000000 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000011 },
-   { 0x00800001, 0x2c000229, 0x00b109c2, 0x00000000 },
-   { 0x00800001, 0x2c200229, 0x00b10a02, 0x00000000 },
-   { 0x00800001, 0x2c400229, 0x00b10a42, 0x00000000 },
-   { 0x00800001, 0x2c600229, 0x00b10a82, 0x00000000 },
-   { 0x00800001, 0x2c800229, 0x00b10ac2, 0x00000000 },
-   { 0x00800001, 0x2ca00229, 0x00b10b02, 0x00000000 },
-   { 0x00800001, 0x2cc00229, 0x00b10b42, 0x00000000 },
-   { 0x00800001, 0x2ce00229, 0x00b10b82, 0x00000000 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000008 },
-   { 0x00800001, 0x2c000229, 0x00b109c3, 0x00000000 },
-   { 0x00800001, 0x2c200229, 0x00b10a03, 0x00000000 },
-   { 0x00800001, 0x2c400229, 0x00b10a43, 0x00000000 },
-   { 0x00800001, 0x2c600229, 0x00b10a83, 0x00000000 },
-   { 0x00800001, 0x2c800229, 0x00b10ac3, 0x00000000 },
-   { 0x00800001, 0x2ca00229, 0x00b10b03, 0x00000000 },
-   { 0x00800001, 0x2cc00229, 0x00b10b43, 0x00000000 },
-   { 0x00800001, 0x2ce00229, 0x00b10b83, 0x00000000 },
-   { 0x00600001, 0x26800021, 0x008d0c00, 0x00000000 },
-   { 0x00600001, 0x26c00021, 0x008d0c20, 0x00000000 },
-   { 0x00600001, 0x27000021, 0x008d0c40, 0x00000000 },
-   { 0x00600001, 0x27400021, 0x008d0c60, 0x00000000 },
-   { 0x00600001, 0x27800021, 0x008d0c80, 0x00000000 },
-   { 0x00600001, 0x27c00021, 0x008d0ca0, 0x00000000 },
-   { 0x00600001, 0x28000021, 0x008d0cc0, 0x00000000 },
-   { 0x00600001, 0x28400021, 0x008d0ce0, 0x00000000 },
-   { 0x0020000c, 0x2e6e3dad, 0x00450036, 0x00010001 },
-   { 0x00200040, 0x2e6034a5, 0x00450e80, 0x00450e6e },
-   { 0x00000005, 0x2e640c21, 0x00210e64, 0xfffffffe },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
-   { 0x02000005, 0x20000e3c, 0x0021003f, 0x00000004 },
-   { 0x00010040, 0x2e641ca5, 0x00210e64, 0x00000001 },
-   { 0x01000005, 0x20002d3c, 0x00210036, 0x00010001 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x000000b1 },
-   { 0x01000005, 0x20002d3c, 0x00210038, 0x00010001 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x0000007d },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
-   { 0x00800031, 0x29c01d29, 0x008d0e60, 0x0411a004 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a001d29, 0x008d0e60, 0x0411a004 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a401d29, 0x008d0e60, 0x0411a004 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a801d29, 0x008d0e60, 0x0411a004 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0007001f },
-   { 0x00800031, 0x2ac01d29, 0x008d0e60, 0x0418a004 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
-   { 0x00800031, 0x2bc01d29, 0x008d0e60, 0x0411a004 },
-   { 0x00000005, 0x20580c21, 0x00210e60, 0x00000003 },
-   { 0x00000041, 0x20580c21, 0x00210058, 0x00000019 },
-   { 0x00000020, 0x34001400, 0x00001400, 0x00210058 },
-   { 0x00800040, 0x2c004629, 0x00b109c0, 0x00b10a00 },
-   { 0x00800040, 0x2c204629, 0x00b10a00, 0x00b10a40 },
-   { 0x00800040, 0x2c404629, 0x00b10a40, 0x00b10a80 },
-   { 0x00800040, 0x2c604629, 0x00b10a80, 0x00b10ac0 },
-   { 0x00800040, 0x2c804629, 0x00b10ac0, 0x00b10b00 },
-   { 0x00800040, 0x2ca04629, 0x00b10b00, 0x00b10b40 },
-   { 0x00800040, 0x2cc04629, 0x00b10b40, 0x00b10b80 },
-   { 0x00800040, 0x2ce04629, 0x00b10b80, 0x00b10bc0 },
-   { 0x00800040, 0x2c004529, 0x00b10c00, 0x00b109c1 },
-   { 0x00800040, 0x2c204529, 0x00b10c20, 0x00b10a01 },
-   { 0x00800040, 0x2c404529, 0x00b10c40, 0x00b10a41 },
-   { 0x00800040, 0x2c604529, 0x00b10c60, 0x00b10a81 },
-   { 0x00800040, 0x2c804529, 0x00b10c80, 0x00b10ac1 },
-   { 0x00800040, 0x2ca04529, 0x00b10ca0, 0x00b10b01 },
-   { 0x00800040, 0x2cc04529, 0x00b10cc0, 0x00b10b41 },
-   { 0x00800040, 0x2ce04529, 0x00b10ce0, 0x00b10b81 },
-   { 0x00800040, 0x2c004529, 0x00b10c00, 0x00b10a01 },
-   { 0x00800040, 0x2c204529, 0x00b10c20, 0x00b10a41 },
-   { 0x00800040, 0x2c404529, 0x00b10c40, 0x00b10a81 },
-   { 0x00800040, 0x2c604529, 0x00b10c60, 0x00b10ac1 },
-   { 0x00800040, 0x2c804529, 0x00b10c80, 0x00b10b01 },
-   { 0x00800040, 0x2ca04529, 0x00b10ca0, 0x00b10b41 },
-   { 0x00800040, 0x2cc04529, 0x00b10cc0, 0x00b10b81 },
-   { 0x00800040, 0x2ce04529, 0x00b10ce0, 0x00b10bc1 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x0000004a },
-   { 0x00800040, 0x2c004629, 0x00b109c1, 0x00b10a01 },
-   { 0x00800040, 0x2c204629, 0x00b10a01, 0x00b10a41 },
-   { 0x00800040, 0x2c404629, 0x00b10a41, 0x00b10a81 },
-   { 0x00800040, 0x2c604629, 0x00b10a81, 0x00b10ac1 },
-   { 0x00800040, 0x2c804629, 0x00b10ac1, 0x00b10b01 },
-   { 0x00800040, 0x2ca04629, 0x00b10b01, 0x00b10b41 },
-   { 0x00800040, 0x2cc04629, 0x00b10b41, 0x00b10b81 },
-   { 0x00800040, 0x2ce04629, 0x00b10b81, 0x00b10bc1 },
-   { 0x00800040, 0x2c004529, 0x00b10c00, 0x00b109c2 },
-   { 0x00800040, 0x2c204529, 0x00b10c20, 0x00b10a02 },
-   { 0x00800040, 0x2c404529, 0x00b10c40, 0x00b10a42 },
-   { 0x00800040, 0x2c604529, 0x00b10c60, 0x00b10a82 },
-   { 0x00800040, 0x2c804529, 0x00b10c80, 0x00b10ac2 },
-   { 0x00800040, 0x2ca04529, 0x00b10ca0, 0x00b10b02 },
-   { 0x00800040, 0x2cc04529, 0x00b10cc0, 0x00b10b42 },
-   { 0x00800040, 0x2ce04529, 0x00b10ce0, 0x00b10b82 },
-   { 0x00800040, 0x2c004529, 0x00b10c00, 0x00b10a02 },
-   { 0x00800040, 0x2c204529, 0x00b10c20, 0x00b10a42 },
-   { 0x00800040, 0x2c404529, 0x00b10c40, 0x00b10a82 },
-   { 0x00800040, 0x2c604529, 0x00b10c60, 0x00b10ac2 },
-   { 0x00800040, 0x2c804529, 0x00b10c80, 0x00b10b02 },
-   { 0x00800040, 0x2ca04529, 0x00b10ca0, 0x00b10b42 },
-   { 0x00800040, 0x2cc04529, 0x00b10cc0, 0x00b10b82 },
-   { 0x00800040, 0x2ce04529, 0x00b10ce0, 0x00b10bc2 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000031 },
-   { 0x00800040, 0x2c004629, 0x00b109c2, 0x00b10a02 },
-   { 0x00800040, 0x2c204629, 0x00b10a02, 0x00b10a42 },
-   { 0x00800040, 0x2c404629, 0x00b10a42, 0x00b10a82 },
-   { 0x00800040, 0x2c604629, 0x00b10a82, 0x00b10ac2 },
-   { 0x00800040, 0x2c804629, 0x00b10ac2, 0x00b10b02 },
-   { 0x00800040, 0x2ca04629, 0x00b10b02, 0x00b10b42 },
-   { 0x00800040, 0x2cc04629, 0x00b10b42, 0x00b10b82 },
-   { 0x00800040, 0x2ce04629, 0x00b10b82, 0x00b10bc2 },
-   { 0x00800040, 0x2c004529, 0x00b10c00, 0x00b109c3 },
-   { 0x00800040, 0x2c204529, 0x00b10c20, 0x00b10a03 },
-   { 0x00800040, 0x2c404529, 0x00b10c40, 0x00b10a43 },
-   { 0x00800040, 0x2c604529, 0x00b10c60, 0x00b10a83 },
-   { 0x00800040, 0x2c804529, 0x00b10c80, 0x00b10ac3 },
-   { 0x00800040, 0x2ca04529, 0x00b10ca0, 0x00b10b03 },
-   { 0x00800040, 0x2cc04529, 0x00b10cc0, 0x00b10b43 },
-   { 0x00800040, 0x2ce04529, 0x00b10ce0, 0x00b10b83 },
-   { 0x00800040, 0x2c004529, 0x00b10c00, 0x00b10a03 },
-   { 0x00800040, 0x2c204529, 0x00b10c20, 0x00b10a43 },
-   { 0x00800040, 0x2c404529, 0x00b10c40, 0x00b10a83 },
-   { 0x00800040, 0x2c604529, 0x00b10c60, 0x00b10ac3 },
-   { 0x00800040, 0x2c804529, 0x00b10c80, 0x00b10b03 },
-   { 0x00800040, 0x2ca04529, 0x00b10ca0, 0x00b10b43 },
-   { 0x00800040, 0x2cc04529, 0x00b10cc0, 0x00b10b83 },
-   { 0x00800040, 0x2ce04529, 0x00b10ce0, 0x00b10bc3 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000018 },
-   { 0x00800040, 0x2c004629, 0x00b109c3, 0x00b10a03 },
-   { 0x00800040, 0x2c204629, 0x00b10a03, 0x00b10a43 },
-   { 0x00800040, 0x2c404629, 0x00b10a43, 0x00b10a83 },
-   { 0x00800040, 0x2c604629, 0x00b10a83, 0x00b10ac3 },
-   { 0x00800040, 0x2c804629, 0x00b10ac3, 0x00b10b03 },
-   { 0x00800040, 0x2ca04629, 0x00b10b03, 0x00b10b43 },
-   { 0x00800040, 0x2cc04629, 0x00b10b43, 0x00b10b83 },
-   { 0x00800040, 0x2ce04629, 0x00b10b83, 0x00b10bc3 },
-   { 0x00800040, 0x2c004529, 0x00b10c00, 0x00b109c4 },
-   { 0x00800040, 0x2c204529, 0x00b10c20, 0x00b10a04 },
-   { 0x00800040, 0x2c404529, 0x00b10c40, 0x00b10a44 },
-   { 0x00800040, 0x2c604529, 0x00b10c60, 0x00b10a84 },
-   { 0x00800040, 0x2c804529, 0x00b10c80, 0x00b10ac4 },
-   { 0x00800040, 0x2ca04529, 0x00b10ca0, 0x00b10b04 },
-   { 0x00800040, 0x2cc04529, 0x00b10cc0, 0x00b10b44 },
-   { 0x00800040, 0x2ce04529, 0x00b10ce0, 0x00b10b84 },
-   { 0x00800040, 0x2c004529, 0x00b10c00, 0x00b10a04 },
-   { 0x00800040, 0x2c204529, 0x00b10c20, 0x00b10a44 },
-   { 0x00800040, 0x2c404529, 0x00b10c40, 0x00b10a84 },
-   { 0x00800040, 0x2c604529, 0x00b10c60, 0x00b10ac4 },
-   { 0x00800040, 0x2c804529, 0x00b10c80, 0x00b10b04 },
-   { 0x00800040, 0x2ca04529, 0x00b10ca0, 0x00b10b44 },
-   { 0x00800040, 0x2cc04529, 0x00b10cc0, 0x00b10b84 },
-   { 0x00800040, 0x2ce04529, 0x00b10ce0, 0x00b10bc4 },
-   { 0x00800008, 0x2c002d29, 0x00b10c00, 0x00020002 },
-   { 0x00800008, 0x2c202d29, 0x00b10c20, 0x00020002 },
-   { 0x00800008, 0x2c402d29, 0x00b10c40, 0x00020002 },
-   { 0x00800008, 0x2c602d29, 0x00b10c60, 0x00020002 },
-   { 0x00800008, 0x2c802d29, 0x00b10c80, 0x00020002 },
-   { 0x00800008, 0x2ca02d29, 0x00b10ca0, 0x00020002 },
-   { 0x00800008, 0x2cc02d29, 0x00b10cc0, 0x00020002 },
-   { 0x00800008, 0x2ce02d29, 0x00b10ce0, 0x00020002 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x0000009a },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
-   { 0x00800031, 0x29c01d29, 0x008d0e60, 0x0411a004 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a001d29, 0x008d0e60, 0x0411a004 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a401d29, 0x008d0e60, 0x0411a004 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a801d29, 0x008d0e60, 0x0411a004 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0007001f },
-   { 0x00800031, 0x2ac01d29, 0x008d0e60, 0x0418a004 },
-   { 0x00000005, 0x20580c21, 0x00210e60, 0x00000003 },
-   { 0x00000041, 0x20580c21, 0x00210058, 0x00000009 },
-   { 0x00000020, 0x34001400, 0x00001400, 0x00210058 },
-   { 0x80800042, 0x2c004629, 0x00b109c0, 0x00b109c1 },
-   { 0x80800042, 0x2c204629, 0x00b10a00, 0x00b10a01 },
-   { 0x80800042, 0x2c404629, 0x00b10a40, 0x00b10a41 },
-   { 0x80800042, 0x2c604629, 0x00b10a80, 0x00b10a81 },
-   { 0x80800042, 0x2c804629, 0x00b10ac0, 0x00b10ac1 },
-   { 0x80800042, 0x2ca04629, 0x00b10b00, 0x00b10b01 },
-   { 0x80800042, 0x2cc04629, 0x00b10b40, 0x00b10b41 },
-   { 0x80800042, 0x2ce04629, 0x00b10b80, 0x00b10b81 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x0000001a },
-   { 0x80800042, 0x2c004629, 0x00b109c1, 0x00b109c2 },
-   { 0x80800042, 0x2c204629, 0x00b10a01, 0x00b10a02 },
-   { 0x80800042, 0x2c404629, 0x00b10a41, 0x00b10a42 },
-   { 0x80800042, 0x2c604629, 0x00b10a81, 0x00b10a82 },
-   { 0x80800042, 0x2c804629, 0x00b10ac1, 0x00b10ac2 },
-   { 0x80800042, 0x2ca04629, 0x00b10b01, 0x00b10b02 },
-   { 0x80800042, 0x2cc04629, 0x00b10b41, 0x00b10b42 },
-   { 0x80800042, 0x2ce04629, 0x00b10b81, 0x00b10b82 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000011 },
-   { 0x80800042, 0x2c004629, 0x00b109c2, 0x00b109c3 },
-   { 0x80800042, 0x2c204629, 0x00b10a02, 0x00b10a03 },
-   { 0x80800042, 0x2c404629, 0x00b10a42, 0x00b10a43 },
-   { 0x80800042, 0x2c604629, 0x00b10a82, 0x00b10a83 },
-   { 0x80800042, 0x2c804629, 0x00b10ac2, 0x00b10ac3 },
-   { 0x80800042, 0x2ca04629, 0x00b10b02, 0x00b10b03 },
-   { 0x80800042, 0x2cc04629, 0x00b10b42, 0x00b10b43 },
-   { 0x80800042, 0x2ce04629, 0x00b10b82, 0x00b10b83 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000008 },
-   { 0x80800042, 0x2c004629, 0x00b109c3, 0x00b109c4 },
-   { 0x80800042, 0x2c204629, 0x00b10a03, 0x00b10a04 },
-   { 0x80800042, 0x2c404629, 0x00b10a43, 0x00b10a44 },
-   { 0x80800042, 0x2c604629, 0x00b10a83, 0x00b10a84 },
-   { 0x80800042, 0x2c804629, 0x00b10ac3, 0x00b10ac4 },
-   { 0x80800042, 0x2ca04629, 0x00b10b03, 0x00b10b04 },
-   { 0x80800042, 0x2cc04629, 0x00b10b43, 0x00b10b44 },
-   { 0x80800042, 0x2ce04629, 0x00b10b83, 0x00b10b84 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000068 },
-   { 0x01000005, 0x20002d3c, 0x00210038, 0x00010001 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000035 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
-   { 0x00800031, 0x29c01d29, 0x008d0e60, 0x0411a004 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a001d29, 0x008d0e60, 0x0411a004 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a401d29, 0x008d0e60, 0x0411a004 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a801d29, 0x008d0e60, 0x0411a004 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0007001f },
-   { 0x00800031, 0x2ac01d29, 0x008d0e60, 0x0418a004 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
-   { 0x00800031, 0x2bc01d29, 0x008d0e60, 0x0411a004 },
-   { 0x00000005, 0x20580c21, 0x00210e60, 0x00000003 },
-   { 0x00000041, 0x20580c21, 0x00210058, 0x00000009 },
-   { 0x00000020, 0x34001400, 0x00001400, 0x00210058 },
-   { 0x80800042, 0x2c004629, 0x00b109c0, 0x00b10a00 },
-   { 0x80800042, 0x2c204629, 0x00b10a00, 0x00b10a40 },
-   { 0x80800042, 0x2c404629, 0x00b10a40, 0x00b10a80 },
-   { 0x80800042, 0x2c604629, 0x00b10a80, 0x00b10ac0 },
-   { 0x80800042, 0x2c804629, 0x00b10ac0, 0x00b10b00 },
-   { 0x80800042, 0x2ca04629, 0x00b10b00, 0x00b10b40 },
-   { 0x80800042, 0x2cc04629, 0x00b10b40, 0x00b10b80 },
-   { 0x80800042, 0x2ce04629, 0x00b10b80, 0x00b10bc0 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x0000001a },
-   { 0x80800042, 0x2c004629, 0x00b109c1, 0x00b10a01 },
-   { 0x80800042, 0x2c204629, 0x00b10a01, 0x00b10a41 },
-   { 0x80800042, 0x2c404629, 0x00b10a41, 0x00b10a81 },
-   { 0x80800042, 0x2c604629, 0x00b10a81, 0x00b10ac1 },
-   { 0x80800042, 0x2c804629, 0x00b10ac1, 0x00b10b01 },
-   { 0x80800042, 0x2ca04629, 0x00b10b01, 0x00b10b41 },
-   { 0x80800042, 0x2cc04629, 0x00b10b41, 0x00b10b81 },
-   { 0x80800042, 0x2ce04629, 0x00b10b81, 0x00b10bc1 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000011 },
-   { 0x80800042, 0x2c004629, 0x00b109c2, 0x00b10a02 },
-   { 0x80800042, 0x2c204629, 0x00b10a02, 0x00b10a42 },
-   { 0x80800042, 0x2c404629, 0x00b10a42, 0x00b10a82 },
-   { 0x80800042, 0x2c604629, 0x00b10a82, 0x00b10ac2 },
-   { 0x80800042, 0x2c804629, 0x00b10ac2, 0x00b10b02 },
-   { 0x80800042, 0x2ca04629, 0x00b10b02, 0x00b10b42 },
-   { 0x80800042, 0x2cc04629, 0x00b10b42, 0x00b10b82 },
-   { 0x80800042, 0x2ce04629, 0x00b10b82, 0x00b10bc2 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000008 },
-   { 0x80800042, 0x2c004629, 0x00b109c3, 0x00b10a03 },
-   { 0x80800042, 0x2c204629, 0x00b10a03, 0x00b10a43 },
-   { 0x80800042, 0x2c404629, 0x00b10a43, 0x00b10a83 },
-   { 0x80800042, 0x2c604629, 0x00b10a83, 0x00b10ac3 },
-   { 0x80800042, 0x2c804629, 0x00b10ac3, 0x00b10b03 },
-   { 0x80800042, 0x2ca04629, 0x00b10b03, 0x00b10b43 },
-   { 0x80800042, 0x2cc04629, 0x00b10b43, 0x00b10b83 },
-   { 0x80800042, 0x2ce04629, 0x00b10b83, 0x00b10bc3 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000031 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
-   { 0x00800031, 0x29c01d29, 0x008d0e60, 0x0411a004 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a001d29, 0x008d0e60, 0x0411a004 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a401d29, 0x008d0e60, 0x0411a004 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a801d29, 0x008d0e60, 0x0411a004 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0007001f },
-   { 0x00800031, 0x2ac01d29, 0x008d0e60, 0x0418a004 },
-   { 0x00000005, 0x20580c21, 0x00210e60, 0x00000003 },
-   { 0x00000041, 0x20580c21, 0x00210058, 0x00000009 },
-   { 0x00000020, 0x34001400, 0x00001400, 0x00210058 },
-   { 0x00800001, 0x2c000229, 0x00b109c0, 0x00000000 },
-   { 0x00800001, 0x2c200229, 0x00b10a00, 0x00000000 },
-   { 0x00800001, 0x2c400229, 0x00b10a40, 0x00000000 },
-   { 0x00800001, 0x2c600229, 0x00b10a80, 0x00000000 },
-   { 0x00800001, 0x2c800229, 0x00b10ac0, 0x00000000 },
-   { 0x00800001, 0x2ca00229, 0x00b10b00, 0x00000000 },
-   { 0x00800001, 0x2cc00229, 0x00b10b40, 0x00000000 },
-   { 0x00800001, 0x2ce00229, 0x00b10b80, 0x00000000 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x0000001a },
-   { 0x00800001, 0x2c000229, 0x00b109c1, 0x00000000 },
-   { 0x00800001, 0x2c200229, 0x00b10a01, 0x00000000 },
-   { 0x00800001, 0x2c400229, 0x00b10a41, 0x00000000 },
-   { 0x00800001, 0x2c600229, 0x00b10a81, 0x00000000 },
-   { 0x00800001, 0x2c800229, 0x00b10ac1, 0x00000000 },
-   { 0x00800001, 0x2ca00229, 0x00b10b01, 0x00000000 },
-   { 0x00800001, 0x2cc00229, 0x00b10b41, 0x00000000 },
-   { 0x00800001, 0x2ce00229, 0x00b10b81, 0x00000000 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000011 },
-   { 0x00800001, 0x2c000229, 0x00b109c2, 0x00000000 },
-   { 0x00800001, 0x2c200229, 0x00b10a02, 0x00000000 },
-   { 0x00800001, 0x2c400229, 0x00b10a42, 0x00000000 },
-   { 0x00800001, 0x2c600229, 0x00b10a82, 0x00000000 },
-   { 0x00800001, 0x2c800229, 0x00b10ac2, 0x00000000 },
-   { 0x00800001, 0x2ca00229, 0x00b10b02, 0x00000000 },
-   { 0x00800001, 0x2cc00229, 0x00b10b42, 0x00000000 },
-   { 0x00800001, 0x2ce00229, 0x00b10b82, 0x00000000 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000008 },
-   { 0x00800001, 0x2c000229, 0x00b109c3, 0x00000000 },
-   { 0x00800001, 0x2c200229, 0x00b10a03, 0x00000000 },
-   { 0x00800001, 0x2c400229, 0x00b10a43, 0x00000000 },
-   { 0x00800001, 0x2c600229, 0x00b10a83, 0x00000000 },
-   { 0x00800001, 0x2c800229, 0x00b10ac3, 0x00000000 },
-   { 0x00800001, 0x2ca00229, 0x00b10b03, 0x00000000 },
-   { 0x00800001, 0x2cc00229, 0x00b10b43, 0x00000000 },
-   { 0x00800001, 0x2ce00229, 0x00b10b83, 0x00000000 },
-   { 0x00600001, 0x26a00021, 0x008d0c00, 0x00000000 },
-   { 0x00600001, 0x26e00021, 0x008d0c20, 0x00000000 },
-   { 0x00600001, 0x27200021, 0x008d0c40, 0x00000000 },
-   { 0x00600001, 0x27600021, 0x008d0c60, 0x00000000 },
-   { 0x00600001, 0x27a00021, 0x008d0c80, 0x00000000 },
-   { 0x00600001, 0x27e00021, 0x008d0ca0, 0x00000000 },
-   { 0x00600001, 0x28200021, 0x008d0cc0, 0x00000000 },
-   { 0x00600001, 0x28600021, 0x008d0ce0, 0x00000000 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0007000f },
-   { 0x0020000c, 0x2e6e3dad, 0x0045002e, 0x00020002 },
-   { 0x0020000c, 0x2e601ca5, 0x00450e80, 0x00000001 },
-   { 0x00200040, 0x2e6034a5, 0x00450e60, 0x00450e6e },
-   { 0x00000005, 0x2e640c21, 0x00210e64, 0xfffffffe },
-   { 0x02000005, 0x20002e3c, 0x0021003f, 0x00010001 },
-   { 0x00010040, 0x2e640c21, 0x00210e64, 0x00000001 },
-   { 0x01000005, 0x20002d3c, 0x0021002e, 0x00020002 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x000000a2 },
-   { 0x01000005, 0x20002d3c, 0x00210030, 0x00020002 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000076 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0007000f },
-   { 0x00800031, 0x2ac01d29, 0x00ad0e60, 0x0414a005 },
-   { 0x00800031, 0x2b601d29, 0x00ad0e60, 0x0414a006 },
-   { 0x00000005, 0x20580c21, 0x00210e60, 0x00000003 },
-   { 0x00000041, 0x20580c21, 0x00210058, 0x00000019 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0001000f },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 },
-   { 0x00800031, 0x2b401d29, 0x00ad0e60, 0x0411a005 },
-   { 0x00800031, 0x2be01d29, 0x00ad0e60, 0x0411a006 },
-   { 0x00000020, 0x34001400, 0x00001400, 0x00210058 },
-   { 0x00800040, 0x29c04629, 0x00ad0ac0, 0x00ad0ae0 },
-   { 0x00800040, 0x29e04629, 0x00ad0ae0, 0x00ad0b00 },
-   { 0x00800040, 0x2a004629, 0x00ad0b00, 0x00ad0b20 },
-   { 0x00800040, 0x2a204629, 0x00ad0b20, 0x00ad0b40 },
-   { 0x00800040, 0x29c04529, 0x00ad09c0, 0x00ad0ac1 },
-   { 0x00800040, 0x29e04529, 0x00ad09e0, 0x00ad0ae1 },
-   { 0x00800040, 0x2a004529, 0x00ad0a00, 0x00ad0b01 },
-   { 0x00800040, 0x2a204529, 0x00ad0a20, 0x00ad0b21 },
-   { 0x00800040, 0x29c04529, 0x00ad09c0, 0x00ad0ae1 },
-   { 0x00800040, 0x29e04529, 0x00ad09e0, 0x00ad0b01 },
-   { 0x00800040, 0x2a004529, 0x00ad0a00, 0x00ad0b21 },
-   { 0x00800040, 0x2a204529, 0x00ad0a20, 0x00ad0b41 },
-   { 0x00800040, 0x2a404629, 0x00ad0b60, 0x00ad0b80 },
-   { 0x00800040, 0x2a604629, 0x00ad0b80, 0x00ad0ba0 },
-   { 0x00800040, 0x2a804629, 0x00ad0ba0, 0x00ad0bc0 },
-   { 0x00800040, 0x2aa04629, 0x00ad0bc0, 0x00ad0be0 },
-   { 0x00800040, 0x2a404529, 0x00ad0a40, 0x00ad0b61 },
-   { 0x00800040, 0x2a604529, 0x00ad0a60, 0x00ad0b81 },
-   { 0x00800040, 0x2a804529, 0x00ad0a80, 0x00ad0ba1 },
-   { 0x00800040, 0x2aa04529, 0x00ad0aa0, 0x00ad0bc1 },
-   { 0x00800040, 0x2a404529, 0x00ad0a40, 0x00ad0b81 },
-   { 0x00800040, 0x2a604529, 0x00ad0a60, 0x00ad0ba1 },
-   { 0x00800040, 0x2a804529, 0x00ad0a80, 0x00ad0bc1 },
-   { 0x00800040, 0x2aa04529, 0x00ad0aa0, 0x00ad0be1 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x0000004a },
-   { 0x00800040, 0x29c04629, 0x00ad0ac1, 0x00ad0ae1 },
-   { 0x00800040, 0x29e04629, 0x00ad0ae1, 0x00ad0b01 },
-   { 0x00800040, 0x2a004629, 0x00ad0b01, 0x00ad0b21 },
-   { 0x00800040, 0x2a204629, 0x00ad0b21, 0x00ad0b41 },
-   { 0x00800040, 0x29c04529, 0x00ad09c0, 0x00ad0ac2 },
-   { 0x00800040, 0x29e04529, 0x00ad09e0, 0x00ad0ae2 },
-   { 0x00800040, 0x2a004529, 0x00ad0a00, 0x00ad0b02 },
-   { 0x00800040, 0x2a204529, 0x00ad0a20, 0x00ad0b22 },
-   { 0x00800040, 0x29c04529, 0x00ad09c0, 0x00ad0ae2 },
-   { 0x00800040, 0x29e04529, 0x00ad09e0, 0x00ad0b02 },
-   { 0x00800040, 0x2a004529, 0x00ad0a00, 0x00ad0b22 },
-   { 0x00800040, 0x2a204529, 0x00ad0a20, 0x00ad0b42 },
-   { 0x00800040, 0x2a404629, 0x00ad0b61, 0x00ad0b81 },
-   { 0x00800040, 0x2a604629, 0x00ad0b81, 0x00ad0ba1 },
-   { 0x00800040, 0x2a804629, 0x00ad0ba1, 0x00ad0bc1 },
-   { 0x00800040, 0x2aa04629, 0x00ad0bc1, 0x00ad0be1 },
-   { 0x00800040, 0x2a404529, 0x00ad0a40, 0x00ad0b62 },
-   { 0x00800040, 0x2a604529, 0x00ad0a60, 0x00ad0b82 },
-   { 0x00800040, 0x2a804529, 0x00ad0a80, 0x00ad0ba2 },
-   { 0x00800040, 0x2aa04529, 0x00ad0aa0, 0x00ad0bc2 },
-   { 0x00800040, 0x2a404529, 0x00ad0a40, 0x00ad0b82 },
-   { 0x00800040, 0x2a604529, 0x00ad0a60, 0x00ad0ba2 },
-   { 0x00800040, 0x2a804529, 0x00ad0a80, 0x00ad0bc2 },
-   { 0x00800040, 0x2aa04529, 0x00ad0aa0, 0x00ad0be2 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000031 },
-   { 0x00800040, 0x29c04629, 0x00ad0ac2, 0x00ad0ae2 },
-   { 0x00800040, 0x29e04629, 0x00ad0ae2, 0x00ad0b02 },
-   { 0x00800040, 0x2a004629, 0x00ad0b02, 0x00ad0b22 },
-   { 0x00800040, 0x2a204629, 0x00ad0b22, 0x00ad0b42 },
-   { 0x00800040, 0x29c04529, 0x00ad09c0, 0x00ad0ac3 },
-   { 0x00800040, 0x29e04529, 0x00ad09e0, 0x00ad0ae3 },
-   { 0x00800040, 0x2a004529, 0x00ad0a00, 0x00ad0b03 },
-   { 0x00800040, 0x2a204529, 0x00ad0a20, 0x00ad0b23 },
-   { 0x00800040, 0x29c04529, 0x00ad09c0, 0x00ad0ae3 },
-   { 0x00800040, 0x29e04529, 0x00ad09e0, 0x00ad0b03 },
-   { 0x00800040, 0x2a004529, 0x00ad0a00, 0x00ad0b23 },
-   { 0x00800040, 0x2a204529, 0x00ad0a20, 0x00ad0b43 },
-   { 0x00800040, 0x2a404629, 0x00ad0b62, 0x00ad0b82 },
-   { 0x00800040, 0x2a604629, 0x00ad0b82, 0x00ad0ba2 },
-   { 0x00800040, 0x2a804629, 0x00ad0ba2, 0x00ad0bc2 },
-   { 0x00800040, 0x2aa04629, 0x00ad0bc2, 0x00ad0be2 },
-   { 0x00800040, 0x2a404529, 0x00ad0a40, 0x00ad0b63 },
-   { 0x00800040, 0x2a604529, 0x00ad0a60, 0x00ad0b83 },
-   { 0x00800040, 0x2a804529, 0x00ad0a80, 0x00ad0ba3 },
-   { 0x00800040, 0x2aa04529, 0x00ad0aa0, 0x00ad0bc3 },
-   { 0x00800040, 0x2a404529, 0x00ad0a40, 0x00ad0b83 },
-   { 0x00800040, 0x2a604529, 0x00ad0a60, 0x00ad0ba3 },
-   { 0x00800040, 0x2a804529, 0x00ad0a80, 0x00ad0bc3 },
-   { 0x00800040, 0x2aa04529, 0x00ad0aa0, 0x00ad0be3 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000018 },
-   { 0x00800040, 0x29c04629, 0x00ad0ac3, 0x00ad0ae3 },
-   { 0x00800040, 0x29e04629, 0x00ad0ae3, 0x00ad0b03 },
-   { 0x00800040, 0x2a004629, 0x00ad0b03, 0x00ad0b23 },
-   { 0x00800040, 0x2a204629, 0x00ad0b23, 0x00ad0b43 },
-   { 0x00800040, 0x29c04529, 0x00ad09c0, 0x00ad0ac4 },
-   { 0x00800040, 0x29e04529, 0x00ad09e0, 0x00ad0ae4 },
-   { 0x00800040, 0x2a004529, 0x00ad0a00, 0x00ad0b04 },
-   { 0x00800040, 0x2a204529, 0x00ad0a20, 0x00ad0b24 },
-   { 0x00800040, 0x29c04529, 0x00ad09c0, 0x00ad0ae4 },
-   { 0x00800040, 0x29e04529, 0x00ad09e0, 0x00ad0b04 },
-   { 0x00800040, 0x2a004529, 0x00ad0a00, 0x00ad0b24 },
-   { 0x00800040, 0x2a204529, 0x00ad0a20, 0x00ad0b44 },
-   { 0x00800040, 0x2a404629, 0x00ad0b63, 0x00ad0b83 },
-   { 0x00800040, 0x2a604629, 0x00ad0b83, 0x00ad0ba3 },
-   { 0x00800040, 0x2a804629, 0x00ad0ba3, 0x00ad0bc3 },
-   { 0x00800040, 0x2aa04629, 0x00ad0bc3, 0x00ad0be3 },
-   { 0x00800040, 0x2a404529, 0x00ad0a40, 0x00ad0b64 },
-   { 0x00800040, 0x2a604529, 0x00ad0a60, 0x00ad0b84 },
-   { 0x00800040, 0x2a804529, 0x00ad0a80, 0x00ad0ba4 },
-   { 0x00800040, 0x2aa04529, 0x00ad0aa0, 0x00ad0bc4 },
-   { 0x00800040, 0x2a404529, 0x00ad0a40, 0x00ad0b84 },
-   { 0x00800040, 0x2a604529, 0x00ad0a60, 0x00ad0ba4 },
-   { 0x00800040, 0x2a804529, 0x00ad0a80, 0x00ad0bc4 },
-   { 0x00800040, 0x2aa04529, 0x00ad0aa0, 0x00ad0be4 },
-   { 0x80800008, 0x29c02d29, 0x00b109c0, 0x00020002 },
-   { 0x80800008, 0x29e02d29, 0x00b109e0, 0x00020002 },
-   { 0x80800008, 0x2a002d29, 0x00b10a00, 0x00020002 },
-   { 0x80800008, 0x2a202d29, 0x00b10a20, 0x00020002 },
-   { 0x80800008, 0x2a402d29, 0x00b10a40, 0x00020002 },
-   { 0x80800008, 0x2a602d29, 0x00b10a60, 0x00020002 },
-   { 0x80800008, 0x2a802d29, 0x00b10a80, 0x00020002 },
-   { 0x80800008, 0x2aa02d29, 0x00b10aa0, 0x00020002 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000082 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0007000f },
-   { 0x00800031, 0x2ac01d29, 0x00ad0e60, 0x0414a005 },
-   { 0x00800031, 0x2b601d29, 0x00ad0e60, 0x0414a006 },
-   { 0x00000005, 0x20580c21, 0x00210e60, 0x00000003 },
-   { 0x00000041, 0x20580c21, 0x00210058, 0x00000009 },
-   { 0x00000020, 0x34001400, 0x00001400, 0x00210058 },
-   { 0x80800042, 0x29c04629, 0x00ad0ac0, 0x00ad0ac1 },
-   { 0x80800042, 0x29e04629, 0x00ad0ae0, 0x00ad0ae1 },
-   { 0x80800042, 0x2a004629, 0x00ad0b00, 0x00ad0b01 },
-   { 0x80800042, 0x2a204629, 0x00ad0b20, 0x00ad0b21 },
-   { 0x80800042, 0x2a404629, 0x00ad0b60, 0x00ad0b61 },
-   { 0x80800042, 0x2a604629, 0x00ad0b80, 0x00ad0b81 },
-   { 0x80800042, 0x2a804629, 0x00ad0ba0, 0x00ad0ba1 },
-   { 0x80800042, 0x2aa04629, 0x00ad0bc0, 0x00ad0bc1 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x0000001a },
-   { 0x80800042, 0x29c04629, 0x00ad0ac1, 0x00ad0ac2 },
-   { 0x80800042, 0x29e04629, 0x00ad0ae1, 0x00ad0ae2 },
-   { 0x80800042, 0x2a004629, 0x00ad0b01, 0x00ad0b02 },
-   { 0x80800042, 0x2a204629, 0x00ad0b21, 0x00ad0b22 },
-   { 0x80800042, 0x2a404629, 0x00ad0b61, 0x00ad0b62 },
-   { 0x80800042, 0x2a604629, 0x00ad0b81, 0x00ad0b82 },
-   { 0x80800042, 0x2a804629, 0x00ad0ba1, 0x00ad0ba2 },
-   { 0x80800042, 0x2aa04629, 0x00ad0bc1, 0x00ad0bc2 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000011 },
-   { 0x80800042, 0x29c04629, 0x00ad0ac2, 0x00ad0ac3 },
-   { 0x80800042, 0x29e04629, 0x00ad0ae2, 0x00ad0ae3 },
-   { 0x80800042, 0x2a004629, 0x00ad0b02, 0x00ad0b03 },
-   { 0x80800042, 0x2a204629, 0x00ad0b22, 0x00ad0b23 },
-   { 0x80800042, 0x2a404629, 0x00ad0b62, 0x00ad0b63 },
-   { 0x80800042, 0x2a604629, 0x00ad0b82, 0x00ad0b83 },
-   { 0x80800042, 0x2a804629, 0x00ad0ba2, 0x00ad0ba3 },
-   { 0x80800042, 0x2aa04629, 0x00ad0bc2, 0x00ad0bc3 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000008 },
-   { 0x80800042, 0x29c04629, 0x00ad0ac3, 0x00ad0ac4 },
-   { 0x80800042, 0x29e04629, 0x00ad0ae3, 0x00ad0ae4 },
-   { 0x80800042, 0x2a004629, 0x00ad0b03, 0x00ad0b04 },
-   { 0x80800042, 0x2a204629, 0x00ad0b23, 0x00ad0b24 },
-   { 0x80800042, 0x2a404629, 0x00ad0b63, 0x00ad0b64 },
-   { 0x80800042, 0x2a604629, 0x00ad0b83, 0x00ad0b84 },
-   { 0x80800042, 0x2a804629, 0x00ad0ba3, 0x00ad0ba4 },
-   { 0x80800042, 0x2aa04629, 0x00ad0bc3, 0x00ad0bc4 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000058 },
-   { 0x01000005, 0x20002d3c, 0x00210030, 0x00020002 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x0000002d },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0007000f },
-   { 0x00800031, 0x2ac01d29, 0x00ad0e60, 0x0414a005 },
-   { 0x00800031, 0x2b601d29, 0x00ad0e60, 0x0414a006 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0000000f },
-   { 0x00800031, 0x2b401d29, 0x00ad0e60, 0x0411a005 },
-   { 0x00800031, 0x2be01d29, 0x00ad0e60, 0x0411a006 },
-   { 0x00000005, 0x20580c21, 0x00210e60, 0x00000003 },
-   { 0x00000041, 0x20580c21, 0x00210058, 0x00000009 },
-   { 0x00000020, 0x34001400, 0x00001400, 0x00210058 },
-   { 0x80800042, 0x29c04629, 0x00ad0ac0, 0x00ad0ae0 },
-   { 0x80800042, 0x29e04629, 0x00ad0ae0, 0x00ad0b00 },
-   { 0x80800042, 0x2a004629, 0x00ad0b00, 0x00ad0b20 },
-   { 0x80800042, 0x2a204629, 0x00ad0b20, 0x00ad0b40 },
-   { 0x80800042, 0x2a404629, 0x00ad0b60, 0x00ad0b80 },
-   { 0x80800042, 0x2a604629, 0x00ad0b80, 0x00ad0ba0 },
-   { 0x80800042, 0x2a804629, 0x00ad0ba0, 0x00ad0bc0 },
-   { 0x80800042, 0x2aa04629, 0x00ad0bc0, 0x00ad0be0 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x0000001a },
-   { 0x80800042, 0x29c04629, 0x00ad0ac1, 0x00ad0ae1 },
-   { 0x80800042, 0x29e04629, 0x00ad0ae1, 0x00ad0b01 },
-   { 0x80800042, 0x2a004629, 0x00ad0b01, 0x00ad0b21 },
-   { 0x80800042, 0x2a204629, 0x00ad0b21, 0x00ad0b41 },
-   { 0x80800042, 0x2a404629, 0x00ad0b61, 0x00ad0b81 },
-   { 0x80800042, 0x2a604629, 0x00ad0b81, 0x00ad0ba1 },
-   { 0x80800042, 0x2a804629, 0x00ad0ba1, 0x00ad0bc1 },
-   { 0x80800042, 0x2aa04629, 0x00ad0bc1, 0x00ad0be1 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000011 },
-   { 0x80800042, 0x29c04629, 0x00ad0ac2, 0x00ad0ae2 },
-   { 0x80800042, 0x29e04629, 0x00ad0ae2, 0x00ad0b02 },
-   { 0x80800042, 0x2a004629, 0x00ad0b02, 0x00ad0b22 },
-   { 0x80800042, 0x2a204629, 0x00ad0b22, 0x00ad0b42 },
-   { 0x80800042, 0x2a404629, 0x00ad0b62, 0x00ad0b82 },
-   { 0x80800042, 0x2a604629, 0x00ad0b82, 0x00ad0ba2 },
-   { 0x80800042, 0x2a804629, 0x00ad0ba2, 0x00ad0bc2 },
-   { 0x80800042, 0x2aa04629, 0x00ad0bc2, 0x00ad0be2 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000008 },
-   { 0x80800042, 0x29c04629, 0x00ad0ac3, 0x00ad0ac3 },
-   { 0x80800042, 0x29e04629, 0x00ad0ae3, 0x00ad0ae3 },
-   { 0x80800042, 0x2a004629, 0x00ad0b03, 0x00ad0b03 },
-   { 0x80800042, 0x2a204629, 0x00ad0b23, 0x00ad0b23 },
-   { 0x80800042, 0x2a404629, 0x00ad0b63, 0x00ad0b63 },
-   { 0x80800042, 0x2a604629, 0x00ad0b83, 0x00ad0b83 },
-   { 0x80800042, 0x2a804629, 0x00ad0ba3, 0x00ad0ba3 },
-   { 0x80800042, 0x2aa04629, 0x00ad0bc3, 0x00ad0bc3 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000029 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0007000f },
-   { 0x00800031, 0x2ac01d29, 0x00ad0e60, 0x0414a005 },
-   { 0x00800031, 0x2b601d29, 0x00ad0e60, 0x0414a006 },
-   { 0x00000005, 0x20580c21, 0x00210e60, 0x00000003 },
-   { 0x00000041, 0x20580c21, 0x00210058, 0x00000009 },
-   { 0x00000020, 0x34001400, 0x00001400, 0x00210058 },
-   { 0x00800001, 0x29c00229, 0x00ad0ac0, 0x00000000 },
-   { 0x00800001, 0x29e00229, 0x00ad0ae0, 0x00000000 },
-   { 0x00800001, 0x2a000229, 0x00ad0b00, 0x00000000 },
-   { 0x00800001, 0x2a200229, 0x00ad0b20, 0x00000000 },
-   { 0x00800001, 0x2a400229, 0x00ad0b60, 0x00000000 },
-   { 0x00800001, 0x2a600229, 0x00ad0b80, 0x00000000 },
-   { 0x00800001, 0x2a800229, 0x00ad0ba0, 0x00000000 },
-   { 0x00800001, 0x2aa00229, 0x00ad0bc0, 0x00000000 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x0000001a },
-   { 0x00800001, 0x29c00229, 0x00ad0ac1, 0x00000000 },
-   { 0x00800001, 0x29e00229, 0x00ad0ae1, 0x00000000 },
-   { 0x00800001, 0x2a000229, 0x00ad0b01, 0x00000000 },
-   { 0x00800001, 0x2a200229, 0x00ad0b21, 0x00000000 },
-   { 0x00800001, 0x2a400229, 0x00ad0b61, 0x00000000 },
-   { 0x00800001, 0x2a600229, 0x00ad0b81, 0x00000000 },
-   { 0x00800001, 0x2a800229, 0x00ad0ba1, 0x00000000 },
-   { 0x00800001, 0x2aa00229, 0x00ad0bc1, 0x00000000 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000011 },
-   { 0x00800001, 0x29c00229, 0x00ad0ac2, 0x00000000 },
-   { 0x00800001, 0x29e00229, 0x00ad0ae2, 0x00000000 },
-   { 0x00800001, 0x2a000229, 0x00ad0b02, 0x00000000 },
-   { 0x00800001, 0x2a200229, 0x00ad0b22, 0x00000000 },
-   { 0x00800001, 0x2a400229, 0x00ad0b62, 0x00000000 },
-   { 0x00800001, 0x2a600229, 0x00ad0b82, 0x00000000 },
-   { 0x00800001, 0x2a800229, 0x00ad0ba2, 0x00000000 },
-   { 0x00800001, 0x2aa00229, 0x00ad0bc2, 0x00000000 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000008 },
-   { 0x00800001, 0x29c00229, 0x00ad0ac3, 0x00000000 },
-   { 0x00800001, 0x29e00229, 0x00ad0ae3, 0x00000000 },
-   { 0x00800001, 0x2a000229, 0x00ad0b03, 0x00000000 },
-   { 0x00800001, 0x2a200229, 0x00ad0b23, 0x00000000 },
-   { 0x00800001, 0x2a400229, 0x00ad0b63, 0x00000000 },
-   { 0x00800001, 0x2a600229, 0x00ad0b83, 0x00000000 },
-   { 0x00800001, 0x2a800229, 0x00ad0ba3, 0x00000000 },
-   { 0x00800001, 0x2aa00229, 0x00ad0bc3, 0x00000000 },
-   { 0x00600001, 0x28800129, 0x008d09c0, 0x00000000 },
-   { 0x00600001, 0x28a00129, 0x008d09e0, 0x00000000 },
-   { 0x00600001, 0x28c00129, 0x008d0a00, 0x00000000 },
-   { 0x00600001, 0x28e00129, 0x008d0a20, 0x00000000 },
-   { 0x00600001, 0x29000129, 0x008d0a40, 0x00000000 },
-   { 0x00600001, 0x29200129, 0x008d0a60, 0x00000000 },
-   { 0x00600001, 0x29400129, 0x008d0a80, 0x00000000 },
-   { 0x00600001, 0x29600129, 0x008d0aa0, 0x00000000 },
-   { 0x0020000c, 0x2e6e3dad, 0x00450036, 0x00020002 },
-   { 0x0020000c, 0x2e601ca5, 0x00450e80, 0x00000001 },
-   { 0x00200040, 0x2e6034a5, 0x00450e60, 0x00450e6e },
-   { 0x00000005, 0x2e640c21, 0x00210e64, 0xfffffffe },
-   { 0x02000005, 0x20002e3c, 0x0021003f, 0x00040004 },
-   { 0x00010040, 0x2e640c21, 0x00210e64, 0x00000001 },
-   { 0x01000005, 0x20002d3c, 0x00210038, 0x00020002 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x000000a2 },
-   { 0x01000005, 0x20002d3c, 0x0021003a, 0x00020002 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000076 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0007000f },
-   { 0x00800031, 0x2ac01d29, 0x00ad0e60, 0x0414a005 },
-   { 0x00800031, 0x2b601d29, 0x00ad0e60, 0x0414a006 },
-   { 0x00000005, 0x20580c21, 0x00210e60, 0x00000003 },
-   { 0x00000041, 0x20580c21, 0x00210058, 0x00000019 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0001000f },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 },
-   { 0x00800031, 0x2b401d29, 0x00ad0e60, 0x0411a005 },
-   { 0x00800031, 0x2be01d29, 0x00ad0e60, 0x0411a006 },
-   { 0x00000020, 0x34001400, 0x00001400, 0x00210058 },
-   { 0x00800040, 0x29c04629, 0x00ad0ac0, 0x00ad0ae0 },
-   { 0x00800040, 0x29e04629, 0x00ad0ae0, 0x00ad0b00 },
-   { 0x00800040, 0x2a004629, 0x00ad0b00, 0x00ad0b20 },
-   { 0x00800040, 0x2a204629, 0x00ad0b20, 0x00ad0b40 },
-   { 0x00800040, 0x29c04529, 0x00ad09c0, 0x00ad0ac1 },
-   { 0x00800040, 0x29e04529, 0x00ad09e0, 0x00ad0ae1 },
-   { 0x00800040, 0x2a004529, 0x00ad0a00, 0x00ad0b01 },
-   { 0x00800040, 0x2a204529, 0x00ad0a20, 0x00ad0b21 },
-   { 0x00800040, 0x29c04529, 0x00ad09c0, 0x00ad0ae1 },
-   { 0x00800040, 0x29e04529, 0x00ad09e0, 0x00ad0b01 },
-   { 0x00800040, 0x2a004529, 0x00ad0a00, 0x00ad0b21 },
-   { 0x00800040, 0x2a204529, 0x00ad0a20, 0x00ad0b41 },
-   { 0x00800040, 0x2a404629, 0x00ad0b60, 0x00ad0b80 },
-   { 0x00800040, 0x2a604629, 0x00ad0b80, 0x00ad0ba0 },
-   { 0x00800040, 0x2a804629, 0x00ad0ba0, 0x00ad0bc0 },
-   { 0x00800040, 0x2aa04629, 0x00ad0bc0, 0x00ad0be0 },
-   { 0x00800040, 0x2a404529, 0x00ad0a40, 0x00ad0b61 },
-   { 0x00800040, 0x2a604529, 0x00ad0a60, 0x00ad0b81 },
-   { 0x00800040, 0x2a804529, 0x00ad0a80, 0x00ad0ba1 },
-   { 0x00800040, 0x2aa04529, 0x00ad0aa0, 0x00ad0bc1 },
-   { 0x00800040, 0x2a404529, 0x00ad0a40, 0x00ad0b81 },
-   { 0x00800040, 0x2a604529, 0x00ad0a60, 0x00ad0ba1 },
-   { 0x00800040, 0x2a804529, 0x00ad0a80, 0x00ad0bc1 },
-   { 0x00800040, 0x2aa04529, 0x00ad0aa0, 0x00ad0be1 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x0000004a },
-   { 0x00800040, 0x29c04629, 0x00ad0ac1, 0x00ad0ae1 },
-   { 0x00800040, 0x29e04629, 0x00ad0ae1, 0x00ad0b01 },
-   { 0x00800040, 0x2a004629, 0x00ad0b01, 0x00ad0b21 },
-   { 0x00800040, 0x2a204629, 0x00ad0b21, 0x00ad0b41 },
-   { 0x00800040, 0x29c04529, 0x00ad09c0, 0x00ad0ac2 },
-   { 0x00800040, 0x29e04529, 0x00ad09e0, 0x00ad0ae2 },
-   { 0x00800040, 0x2a004529, 0x00ad0a00, 0x00ad0b02 },
-   { 0x00800040, 0x2a204529, 0x00ad0a20, 0x00ad0b22 },
-   { 0x00800040, 0x29c04529, 0x00ad09c0, 0x00ad0ae2 },
-   { 0x00800040, 0x29e04529, 0x00ad09e0, 0x00ad0b02 },
-   { 0x00800040, 0x2a004529, 0x00ad0a00, 0x00ad0b22 },
-   { 0x00800040, 0x2a204529, 0x00ad0a20, 0x00ad0b42 },
-   { 0x00800040, 0x2a404629, 0x00ad0b61, 0x00ad0b81 },
-   { 0x00800040, 0x2a604629, 0x00ad0b81, 0x00ad0ba1 },
-   { 0x00800040, 0x2a804629, 0x00ad0ba1, 0x00ad0bc1 },
-   { 0x00800040, 0x2aa04629, 0x00ad0bc1, 0x00ad0be1 },
-   { 0x00800040, 0x2a404529, 0x00ad0a40, 0x00ad0b62 },
-   { 0x00800040, 0x2a604529, 0x00ad0a60, 0x00ad0b82 },
-   { 0x00800040, 0x2a804529, 0x00ad0a80, 0x00ad0ba2 },
-   { 0x00800040, 0x2aa04529, 0x00ad0aa0, 0x00ad0bc2 },
-   { 0x00800040, 0x2a404529, 0x00ad0a40, 0x00ad0b82 },
-   { 0x00800040, 0x2a604529, 0x00ad0a60, 0x00ad0ba2 },
-   { 0x00800040, 0x2a804529, 0x00ad0a80, 0x00ad0bc2 },
-   { 0x00800040, 0x2aa04529, 0x00ad0aa0, 0x00ad0be2 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000031 },
-   { 0x00800040, 0x29c04629, 0x00ad0ac2, 0x00ad0ae2 },
-   { 0x00800040, 0x29e04629, 0x00ad0ae2, 0x00ad0b02 },
-   { 0x00800040, 0x2a004629, 0x00ad0b02, 0x00ad0b22 },
-   { 0x00800040, 0x2a204629, 0x00ad0b22, 0x00ad0b42 },
-   { 0x00800040, 0x29c04529, 0x00ad09c0, 0x00ad0ac3 },
-   { 0x00800040, 0x29e04529, 0x00ad09e0, 0x00ad0ae3 },
-   { 0x00800040, 0x2a004529, 0x00ad0a00, 0x00ad0b03 },
-   { 0x00800040, 0x2a204529, 0x00ad0a20, 0x00ad0b23 },
-   { 0x00800040, 0x29c04529, 0x00ad09c0, 0x00ad0ae3 },
-   { 0x00800040, 0x29e04529, 0x00ad09e0, 0x00ad0b03 },
-   { 0x00800040, 0x2a004529, 0x00ad0a00, 0x00ad0b23 },
-   { 0x00800040, 0x2a204529, 0x00ad0a20, 0x00ad0b43 },
-   { 0x00800040, 0x2a404629, 0x00ad0b62, 0x00ad0b82 },
-   { 0x00800040, 0x2a604629, 0x00ad0b82, 0x00ad0ba2 },
-   { 0x00800040, 0x2a804629, 0x00ad0ba2, 0x00ad0bc2 },
-   { 0x00800040, 0x2aa04629, 0x00ad0bc2, 0x00ad0be2 },
-   { 0x00800040, 0x2a404529, 0x00ad0a40, 0x00ad0b63 },
-   { 0x00800040, 0x2a604529, 0x00ad0a60, 0x00ad0b83 },
-   { 0x00800040, 0x2a804529, 0x00ad0a80, 0x00ad0ba3 },
-   { 0x00800040, 0x2aa04529, 0x00ad0aa0, 0x00ad0bc3 },
-   { 0x00800040, 0x2a404529, 0x00ad0a40, 0x00ad0b83 },
-   { 0x00800040, 0x2a604529, 0x00ad0a60, 0x00ad0ba3 },
-   { 0x00800040, 0x2a804529, 0x00ad0a80, 0x00ad0bc3 },
-   { 0x00800040, 0x2aa04529, 0x00ad0aa0, 0x00ad0be3 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000018 },
-   { 0x00800040, 0x29c04629, 0x00ad0ac3, 0x00ad0ae3 },
-   { 0x00800040, 0x29e04629, 0x00ad0ae3, 0x00ad0b03 },
-   { 0x00800040, 0x2a004629, 0x00ad0b03, 0x00ad0b23 },
-   { 0x00800040, 0x2a204629, 0x00ad0b23, 0x00ad0b43 },
-   { 0x00800040, 0x29c04529, 0x00ad09c0, 0x00ad0ac4 },
-   { 0x00800040, 0x29e04529, 0x00ad09e0, 0x00ad0ae4 },
-   { 0x00800040, 0x2a004529, 0x00ad0a00, 0x00ad0b04 },
-   { 0x00800040, 0x2a204529, 0x00ad0a20, 0x00ad0b24 },
-   { 0x00800040, 0x29c04529, 0x00ad09c0, 0x00ad0ae4 },
-   { 0x00800040, 0x29e04529, 0x00ad09e0, 0x00ad0b04 },
-   { 0x00800040, 0x2a004529, 0x00ad0a00, 0x00ad0b24 },
-   { 0x00800040, 0x2a204529, 0x00ad0a20, 0x00ad0b44 },
-   { 0x00800040, 0x2a404629, 0x00ad0b63, 0x00ad0b83 },
-   { 0x00800040, 0x2a604629, 0x00ad0b83, 0x00ad0ba3 },
-   { 0x00800040, 0x2a804629, 0x00ad0ba3, 0x00ad0bc3 },
-   { 0x00800040, 0x2aa04629, 0x00ad0bc3, 0x00ad0be3 },
-   { 0x00800040, 0x2a404529, 0x00ad0a40, 0x00ad0b64 },
-   { 0x00800040, 0x2a604529, 0x00ad0a60, 0x00ad0b84 },
-   { 0x00800040, 0x2a804529, 0x00ad0a80, 0x00ad0ba4 },
-   { 0x00800040, 0x2aa04529, 0x00ad0aa0, 0x00ad0bc4 },
-   { 0x00800040, 0x2a404529, 0x00ad0a40, 0x00ad0b84 },
-   { 0x00800040, 0x2a604529, 0x00ad0a60, 0x00ad0ba4 },
-   { 0x00800040, 0x2a804529, 0x00ad0a80, 0x00ad0bc4 },
-   { 0x00800040, 0x2aa04529, 0x00ad0aa0, 0x00ad0be4 },
-   { 0x80800008, 0x29c02d29, 0x00b109c0, 0x00020002 },
-   { 0x80800008, 0x29e02d29, 0x00b109e0, 0x00020002 },
-   { 0x80800008, 0x2a002d29, 0x00b10a00, 0x00020002 },
-   { 0x80800008, 0x2a202d29, 0x00b10a20, 0x00020002 },
-   { 0x80800008, 0x2a402d29, 0x00b10a40, 0x00020002 },
-   { 0x80800008, 0x2a602d29, 0x00b10a60, 0x00020002 },
-   { 0x80800008, 0x2a802d29, 0x00b10a80, 0x00020002 },
-   { 0x80800008, 0x2aa02d29, 0x00b10aa0, 0x00020002 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000082 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0007000f },
-   { 0x00800031, 0x2ac01d29, 0x00ad0e60, 0x0414a005 },
-   { 0x00800031, 0x2b601d29, 0x00ad0e60, 0x0414a006 },
-   { 0x00000005, 0x20580c21, 0x00210e60, 0x00000003 },
-   { 0x00000041, 0x20580c21, 0x00210058, 0x00000009 },
-   { 0x00000020, 0x34001400, 0x00001400, 0x00210058 },
-   { 0x80800042, 0x29c04629, 0x00ad0ac0, 0x00ad0ac1 },
-   { 0x80800042, 0x29e04629, 0x00ad0ae0, 0x00ad0ae1 },
-   { 0x80800042, 0x2a004629, 0x00ad0b00, 0x00ad0b01 },
-   { 0x80800042, 0x2a204629, 0x00ad0b20, 0x00ad0b21 },
-   { 0x80800042, 0x2a404629, 0x00ad0b60, 0x00ad0b61 },
-   { 0x80800042, 0x2a604629, 0x00ad0b80, 0x00ad0b81 },
-   { 0x80800042, 0x2a804629, 0x00ad0ba0, 0x00ad0ba1 },
-   { 0x80800042, 0x2aa04629, 0x00ad0bc0, 0x00ad0bc1 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x0000001a },
-   { 0x80800042, 0x29c04629, 0x00ad0ac1, 0x00ad0ac2 },
-   { 0x80800042, 0x29e04629, 0x00ad0ae1, 0x00ad0ae2 },
-   { 0x80800042, 0x2a004629, 0x00ad0b01, 0x00ad0b02 },
-   { 0x80800042, 0x2a204629, 0x00ad0b21, 0x00ad0b22 },
-   { 0x80800042, 0x2a404629, 0x00ad0b61, 0x00ad0b62 },
-   { 0x80800042, 0x2a604629, 0x00ad0b81, 0x00ad0b82 },
-   { 0x80800042, 0x2a804629, 0x00ad0ba1, 0x00ad0ba2 },
-   { 0x80800042, 0x2aa04629, 0x00ad0bc1, 0x00ad0bc2 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000011 },
-   { 0x80800042, 0x29c04629, 0x00ad0ac2, 0x00ad0ac3 },
-   { 0x80800042, 0x29e04629, 0x00ad0ae2, 0x00ad0ae3 },
-   { 0x80800042, 0x2a004629, 0x00ad0b02, 0x00ad0b03 },
-   { 0x80800042, 0x2a204629, 0x00ad0b22, 0x00ad0b23 },
-   { 0x80800042, 0x2a404629, 0x00ad0b62, 0x00ad0b63 },
-   { 0x80800042, 0x2a604629, 0x00ad0b82, 0x00ad0b83 },
-   { 0x80800042, 0x2a804629, 0x00ad0ba2, 0x00ad0ba3 },
-   { 0x80800042, 0x2aa04629, 0x00ad0bc2, 0x00ad0bc3 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000008 },
-   { 0x80800042, 0x29c04629, 0x00ad0ac3, 0x00ad0ac4 },
-   { 0x80800042, 0x29e04629, 0x00ad0ae3, 0x00ad0ae4 },
-   { 0x80800042, 0x2a004629, 0x00ad0b03, 0x00ad0b04 },
-   { 0x80800042, 0x2a204629, 0x00ad0b23, 0x00ad0b24 },
-   { 0x80800042, 0x2a404629, 0x00ad0b63, 0x00ad0b64 },
-   { 0x80800042, 0x2a604629, 0x00ad0b83, 0x00ad0b84 },
-   { 0x80800042, 0x2a804629, 0x00ad0ba3, 0x00ad0ba4 },
-   { 0x80800042, 0x2aa04629, 0x00ad0bc3, 0x00ad0bc4 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000058 },
-   { 0x01000005, 0x20002d3c, 0x0021003a, 0x00020002 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x0000002d },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0007000f },
-   { 0x00800031, 0x2ac01d29, 0x00ad0e60, 0x0414a005 },
-   { 0x00800031, 0x2b601d29, 0x00ad0e60, 0x0414a006 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0000000f },
-   { 0x00800031, 0x2b401d29, 0x00ad0e60, 0x0411a005 },
-   { 0x00800031, 0x2be01d29, 0x00ad0e60, 0x0411a006 },
-   { 0x00000005, 0x20580c21, 0x00210e60, 0x00000003 },
-   { 0x00000041, 0x20580c21, 0x00210058, 0x00000009 },
-   { 0x00000020, 0x34001400, 0x00001400, 0x00210058 },
-   { 0x80800042, 0x29c04629, 0x00ad0ac0, 0x00ad0ae0 },
-   { 0x80800042, 0x29e04629, 0x00ad0ae0, 0x00ad0b00 },
-   { 0x80800042, 0x2a004629, 0x00ad0b00, 0x00ad0b20 },
-   { 0x80800042, 0x2a204629, 0x00ad0b20, 0x00ad0b40 },
-   { 0x80800042, 0x2a404629, 0x00ad0b60, 0x00ad0b80 },
-   { 0x80800042, 0x2a604629, 0x00ad0b80, 0x00ad0ba0 },
-   { 0x80800042, 0x2a804629, 0x00ad0ba0, 0x00ad0bc0 },
-   { 0x80800042, 0x2aa04629, 0x00ad0bc0, 0x00ad0be0 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x0000001a },
-   { 0x80800042, 0x29c04629, 0x00ad0ac1, 0x00ad0ae1 },
-   { 0x80800042, 0x29e04629, 0x00ad0ae1, 0x00ad0b01 },
-   { 0x80800042, 0x2a004629, 0x00ad0b01, 0x00ad0b21 },
-   { 0x80800042, 0x2a204629, 0x00ad0b21, 0x00ad0b41 },
-   { 0x80800042, 0x2a404629, 0x00ad0b61, 0x00ad0b81 },
-   { 0x80800042, 0x2a604629, 0x00ad0b81, 0x00ad0ba1 },
-   { 0x80800042, 0x2a804629, 0x00ad0ba1, 0x00ad0bc1 },
-   { 0x80800042, 0x2aa04629, 0x00ad0bc1, 0x00ad0be1 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000011 },
-   { 0x80800042, 0x29c04629, 0x00ad0ac2, 0x00ad0ae2 },
-   { 0x80800042, 0x29e04629, 0x00ad0ae2, 0x00ad0b02 },
-   { 0x80800042, 0x2a004629, 0x00ad0b02, 0x00ad0b22 },
-   { 0x80800042, 0x2a204629, 0x00ad0b22, 0x00ad0b42 },
-   { 0x80800042, 0x2a404629, 0x00ad0b62, 0x00ad0b82 },
-   { 0x80800042, 0x2a604629, 0x00ad0b82, 0x00ad0ba2 },
-   { 0x80800042, 0x2a804629, 0x00ad0ba2, 0x00ad0bc2 },
-   { 0x80800042, 0x2aa04629, 0x00ad0bc2, 0x00ad0be2 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000008 },
-   { 0x80800042, 0x29c04629, 0x00ad0ac3, 0x00ad0ac3 },
-   { 0x80800042, 0x29e04629, 0x00ad0ae3, 0x00ad0ae3 },
-   { 0x80800042, 0x2a004629, 0x00ad0b03, 0x00ad0b03 },
-   { 0x80800042, 0x2a204629, 0x00ad0b23, 0x00ad0b23 },
-   { 0x80800042, 0x2a404629, 0x00ad0b63, 0x00ad0b63 },
-   { 0x80800042, 0x2a604629, 0x00ad0b83, 0x00ad0b83 },
-   { 0x80800042, 0x2a804629, 0x00ad0ba3, 0x00ad0ba3 },
-   { 0x80800042, 0x2aa04629, 0x00ad0bc3, 0x00ad0bc3 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000029 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0007000f },
-   { 0x00800031, 0x2ac01d29, 0x00ad0e60, 0x0414a005 },
-   { 0x00800031, 0x2b601d29, 0x00ad0e60, 0x0414a006 },
-   { 0x00000005, 0x20580c21, 0x00210e60, 0x00000003 },
-   { 0x00000041, 0x20580c21, 0x00210058, 0x00000009 },
-   { 0x00000020, 0x34001400, 0x00001400, 0x00210058 },
-   { 0x00800001, 0x29c00229, 0x00ad0ac0, 0x00000000 },
-   { 0x00800001, 0x29e00229, 0x00ad0ae0, 0x00000000 },
-   { 0x00800001, 0x2a000229, 0x00ad0b00, 0x00000000 },
-   { 0x00800001, 0x2a200229, 0x00ad0b20, 0x00000000 },
-   { 0x00800001, 0x2a400229, 0x00ad0b60, 0x00000000 },
-   { 0x00800001, 0x2a600229, 0x00ad0b80, 0x00000000 },
-   { 0x00800001, 0x2a800229, 0x00ad0ba0, 0x00000000 },
-   { 0x00800001, 0x2aa00229, 0x00ad0bc0, 0x00000000 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x0000001a },
-   { 0x00800001, 0x29c00229, 0x00ad0ac1, 0x00000000 },
-   { 0x00800001, 0x29e00229, 0x00ad0ae1, 0x00000000 },
-   { 0x00800001, 0x2a000229, 0x00ad0b01, 0x00000000 },
-   { 0x00800001, 0x2a200229, 0x00ad0b21, 0x00000000 },
-   { 0x00800001, 0x2a400229, 0x00ad0b61, 0x00000000 },
-   { 0x00800001, 0x2a600229, 0x00ad0b81, 0x00000000 },
-   { 0x00800001, 0x2a800229, 0x00ad0ba1, 0x00000000 },
-   { 0x00800001, 0x2aa00229, 0x00ad0bc1, 0x00000000 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000011 },
-   { 0x00800001, 0x29c00229, 0x00ad0ac2, 0x00000000 },
-   { 0x00800001, 0x29e00229, 0x00ad0ae2, 0x00000000 },
-   { 0x00800001, 0x2a000229, 0x00ad0b02, 0x00000000 },
-   { 0x00800001, 0x2a200229, 0x00ad0b22, 0x00000000 },
-   { 0x00800001, 0x2a400229, 0x00ad0b62, 0x00000000 },
-   { 0x00800001, 0x2a600229, 0x00ad0b82, 0x00000000 },
-   { 0x00800001, 0x2a800229, 0x00ad0ba2, 0x00000000 },
-   { 0x00800001, 0x2aa00229, 0x00ad0bc2, 0x00000000 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000008 },
-   { 0x00800001, 0x29c00229, 0x00ad0ac3, 0x00000000 },
-   { 0x00800001, 0x29e00229, 0x00ad0ae3, 0x00000000 },
-   { 0x00800001, 0x2a000229, 0x00ad0b03, 0x00000000 },
-   { 0x00800001, 0x2a200229, 0x00ad0b23, 0x00000000 },
-   { 0x00800001, 0x2a400229, 0x00ad0b63, 0x00000000 },
-   { 0x00800001, 0x2a600229, 0x00ad0b83, 0x00000000 },
-   { 0x00800001, 0x2a800229, 0x00ad0ba3, 0x00000000 },
-   { 0x00800001, 0x2aa00229, 0x00ad0bc3, 0x00000000 },
-   { 0x00600001, 0x28900129, 0x008d09c0, 0x00000000 },
-   { 0x00600001, 0x28b00129, 0x008d09e0, 0x00000000 },
-   { 0x00600001, 0x28d00129, 0x008d0a00, 0x00000000 },
-   { 0x00600001, 0x28f00129, 0x008d0a20, 0x00000000 },
-   { 0x00600001, 0x29100129, 0x008d0a40, 0x00000000 },
-   { 0x00600001, 0x29300129, 0x008d0a60, 0x00000000 },
-   { 0x00600001, 0x29500129, 0x008d0a80, 0x00000000 },
-   { 0x00600001, 0x29700129, 0x008d0aa0, 0x00000000 },
-   { 0x00600001, 0x20200021, 0x008d0e80, 0x00000000 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0007001f },
-   { 0x00000001, 0x20280061, 0x00000000, 0x0007000f },
-   { 0x0020000c, 0x2e6e3dad, 0x00450032, 0x00010001 },
-   { 0x00200040, 0x2e6034a5, 0x00450e80, 0x00450e6e },
-   { 0x00000005, 0x2e640c21, 0x00210e64, 0xfffffffe },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
-   { 0x02000005, 0x20002e3c, 0x0021003f, 0x00020002 },
-   { 0x00010040, 0x2e641ca5, 0x00210e64, 0x00000001 },
-   { 0x01000005, 0x20002d3c, 0x00210032, 0x00010001 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x000000b1 },
-   { 0x01000005, 0x20002d3c, 0x00210034, 0x00010001 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x0000007d },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
-   { 0x00800031, 0x29c01d29, 0x008d0e60, 0x0411a007 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a001d29, 0x008d0e60, 0x0411a007 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a401d29, 0x008d0e60, 0x0411a007 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a801d29, 0x008d0e60, 0x0411a007 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0007001f },
-   { 0x00800031, 0x2ac01d29, 0x008d0e60, 0x0418a007 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
-   { 0x00800031, 0x2bc01d29, 0x008d0e60, 0x0411a007 },
-   { 0x00000005, 0x20580c21, 0x00210e60, 0x00000003 },
-   { 0x00000041, 0x20580c21, 0x00210058, 0x00000019 },
-   { 0x00000020, 0x34001400, 0x00001400, 0x00210058 },
-   { 0x00800040, 0x2c004629, 0x00b109c0, 0x00b10a00 },
-   { 0x00800040, 0x2c204629, 0x00b10a00, 0x00b10a40 },
-   { 0x00800040, 0x2c404629, 0x00b10a40, 0x00b10a80 },
-   { 0x00800040, 0x2c604629, 0x00b10a80, 0x00b10ac0 },
-   { 0x00800040, 0x2c804629, 0x00b10ac0, 0x00b10b00 },
-   { 0x00800040, 0x2ca04629, 0x00b10b00, 0x00b10b40 },
-   { 0x00800040, 0x2cc04629, 0x00b10b40, 0x00b10b80 },
-   { 0x00800040, 0x2ce04629, 0x00b10b80, 0x00b10bc0 },
-   { 0x00800040, 0x2c004529, 0x00b10c00, 0x00b109c1 },
-   { 0x00800040, 0x2c204529, 0x00b10c20, 0x00b10a01 },
-   { 0x00800040, 0x2c404529, 0x00b10c40, 0x00b10a41 },
-   { 0x00800040, 0x2c604529, 0x00b10c60, 0x00b10a81 },
-   { 0x00800040, 0x2c804529, 0x00b10c80, 0x00b10ac1 },
-   { 0x00800040, 0x2ca04529, 0x00b10ca0, 0x00b10b01 },
-   { 0x00800040, 0x2cc04529, 0x00b10cc0, 0x00b10b41 },
-   { 0x00800040, 0x2ce04529, 0x00b10ce0, 0x00b10b81 },
-   { 0x00800040, 0x2c004529, 0x00b10c00, 0x00b10a01 },
-   { 0x00800040, 0x2c204529, 0x00b10c20, 0x00b10a41 },
-   { 0x00800040, 0x2c404529, 0x00b10c40, 0x00b10a81 },
-   { 0x00800040, 0x2c604529, 0x00b10c60, 0x00b10ac1 },
-   { 0x00800040, 0x2c804529, 0x00b10c80, 0x00b10b01 },
-   { 0x00800040, 0x2ca04529, 0x00b10ca0, 0x00b10b41 },
-   { 0x00800040, 0x2cc04529, 0x00b10cc0, 0x00b10b81 },
-   { 0x00800040, 0x2ce04529, 0x00b10ce0, 0x00b10bc1 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x0000004a },
-   { 0x00800040, 0x2c004629, 0x00b109c1, 0x00b10a01 },
-   { 0x00800040, 0x2c204629, 0x00b10a01, 0x00b10a41 },
-   { 0x00800040, 0x2c404629, 0x00b10a41, 0x00b10a81 },
-   { 0x00800040, 0x2c604629, 0x00b10a81, 0x00b10ac1 },
-   { 0x00800040, 0x2c804629, 0x00b10ac1, 0x00b10b01 },
-   { 0x00800040, 0x2ca04629, 0x00b10b01, 0x00b10b41 },
-   { 0x00800040, 0x2cc04629, 0x00b10b41, 0x00b10b81 },
-   { 0x00800040, 0x2ce04629, 0x00b10b81, 0x00b10bc1 },
-   { 0x00800040, 0x2c004529, 0x00b10c00, 0x00b109c2 },
-   { 0x00800040, 0x2c204529, 0x00b10c20, 0x00b10a02 },
-   { 0x00800040, 0x2c404529, 0x00b10c40, 0x00b10a42 },
-   { 0x00800040, 0x2c604529, 0x00b10c60, 0x00b10a82 },
-   { 0x00800040, 0x2c804529, 0x00b10c80, 0x00b10ac2 },
-   { 0x00800040, 0x2ca04529, 0x00b10ca0, 0x00b10b02 },
-   { 0x00800040, 0x2cc04529, 0x00b10cc0, 0x00b10b42 },
-   { 0x00800040, 0x2ce04529, 0x00b10ce0, 0x00b10b82 },
-   { 0x00800040, 0x2c004529, 0x00b10c00, 0x00b10a02 },
-   { 0x00800040, 0x2c204529, 0x00b10c20, 0x00b10a42 },
-   { 0x00800040, 0x2c404529, 0x00b10c40, 0x00b10a82 },
-   { 0x00800040, 0x2c604529, 0x00b10c60, 0x00b10ac2 },
-   { 0x00800040, 0x2c804529, 0x00b10c80, 0x00b10b02 },
-   { 0x00800040, 0x2ca04529, 0x00b10ca0, 0x00b10b42 },
-   { 0x00800040, 0x2cc04529, 0x00b10cc0, 0x00b10b82 },
-   { 0x00800040, 0x2ce04529, 0x00b10ce0, 0x00b10bc2 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000031 },
-   { 0x00800040, 0x2c004629, 0x00b109c2, 0x00b10a02 },
-   { 0x00800040, 0x2c204629, 0x00b10a02, 0x00b10a42 },
-   { 0x00800040, 0x2c404629, 0x00b10a42, 0x00b10a82 },
-   { 0x00800040, 0x2c604629, 0x00b10a82, 0x00b10ac2 },
-   { 0x00800040, 0x2c804629, 0x00b10ac2, 0x00b10b02 },
-   { 0x00800040, 0x2ca04629, 0x00b10b02, 0x00b10b42 },
-   { 0x00800040, 0x2cc04629, 0x00b10b42, 0x00b10b82 },
-   { 0x00800040, 0x2ce04629, 0x00b10b82, 0x00b10bc2 },
-   { 0x00800040, 0x2c004529, 0x00b10c00, 0x00b109c3 },
-   { 0x00800040, 0x2c204529, 0x00b10c20, 0x00b10a03 },
-   { 0x00800040, 0x2c404529, 0x00b10c40, 0x00b10a43 },
-   { 0x00800040, 0x2c604529, 0x00b10c60, 0x00b10a83 },
-   { 0x00800040, 0x2c804529, 0x00b10c80, 0x00b10ac3 },
-   { 0x00800040, 0x2ca04529, 0x00b10ca0, 0x00b10b03 },
-   { 0x00800040, 0x2cc04529, 0x00b10cc0, 0x00b10b43 },
-   { 0x00800040, 0x2ce04529, 0x00b10ce0, 0x00b10b83 },
-   { 0x00800040, 0x2c004529, 0x00b10c00, 0x00b10a03 },
-   { 0x00800040, 0x2c204529, 0x00b10c20, 0x00b10a43 },
-   { 0x00800040, 0x2c404529, 0x00b10c40, 0x00b10a83 },
-   { 0x00800040, 0x2c604529, 0x00b10c60, 0x00b10ac3 },
-   { 0x00800040, 0x2c804529, 0x00b10c80, 0x00b10b03 },
-   { 0x00800040, 0x2ca04529, 0x00b10ca0, 0x00b10b43 },
-   { 0x00800040, 0x2cc04529, 0x00b10cc0, 0x00b10b83 },
-   { 0x00800040, 0x2ce04529, 0x00b10ce0, 0x00b10bc3 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000018 },
-   { 0x00800040, 0x2c004629, 0x00b109c3, 0x00b10a03 },
-   { 0x00800040, 0x2c204629, 0x00b10a03, 0x00b10a43 },
-   { 0x00800040, 0x2c404629, 0x00b10a43, 0x00b10a83 },
-   { 0x00800040, 0x2c604629, 0x00b10a83, 0x00b10ac3 },
-   { 0x00800040, 0x2c804629, 0x00b10ac3, 0x00b10b03 },
-   { 0x00800040, 0x2ca04629, 0x00b10b03, 0x00b10b43 },
-   { 0x00800040, 0x2cc04629, 0x00b10b43, 0x00b10b83 },
-   { 0x00800040, 0x2ce04629, 0x00b10b83, 0x00b10bc3 },
-   { 0x00800040, 0x2c004529, 0x00b10c00, 0x00b109c4 },
-   { 0x00800040, 0x2c204529, 0x00b10c20, 0x00b10a04 },
-   { 0x00800040, 0x2c404529, 0x00b10c40, 0x00b10a44 },
-   { 0x00800040, 0x2c604529, 0x00b10c60, 0x00b10a84 },
-   { 0x00800040, 0x2c804529, 0x00b10c80, 0x00b10ac4 },
-   { 0x00800040, 0x2ca04529, 0x00b10ca0, 0x00b10b04 },
-   { 0x00800040, 0x2cc04529, 0x00b10cc0, 0x00b10b44 },
-   { 0x00800040, 0x2ce04529, 0x00b10ce0, 0x00b10b84 },
-   { 0x00800040, 0x2c004529, 0x00b10c00, 0x00b10a04 },
-   { 0x00800040, 0x2c204529, 0x00b10c20, 0x00b10a44 },
-   { 0x00800040, 0x2c404529, 0x00b10c40, 0x00b10a84 },
-   { 0x00800040, 0x2c604529, 0x00b10c60, 0x00b10ac4 },
-   { 0x00800040, 0x2c804529, 0x00b10c80, 0x00b10b04 },
-   { 0x00800040, 0x2ca04529, 0x00b10ca0, 0x00b10b44 },
-   { 0x00800040, 0x2cc04529, 0x00b10cc0, 0x00b10b84 },
-   { 0x00800040, 0x2ce04529, 0x00b10ce0, 0x00b10bc4 },
-   { 0x00800008, 0x2c002d29, 0x00b10c00, 0x00020002 },
-   { 0x00800008, 0x2c202d29, 0x00b10c20, 0x00020002 },
-   { 0x00800008, 0x2c402d29, 0x00b10c40, 0x00020002 },
-   { 0x00800008, 0x2c602d29, 0x00b10c60, 0x00020002 },
-   { 0x00800008, 0x2c802d29, 0x00b10c80, 0x00020002 },
-   { 0x00800008, 0x2ca02d29, 0x00b10ca0, 0x00020002 },
-   { 0x00800008, 0x2cc02d29, 0x00b10cc0, 0x00020002 },
-   { 0x00800008, 0x2ce02d29, 0x00b10ce0, 0x00020002 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x0000009a },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
-   { 0x00800031, 0x29c01d29, 0x008d0e60, 0x0411a007 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a001d29, 0x008d0e60, 0x0411a007 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a401d29, 0x008d0e60, 0x0411a007 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a801d29, 0x008d0e60, 0x0411a007 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0007001f },
-   { 0x00800031, 0x2ac01d29, 0x008d0e60, 0x0418a007 },
-   { 0x00000005, 0x20580c21, 0x00210e60, 0x00000003 },
-   { 0x00000041, 0x20580c21, 0x00210058, 0x00000009 },
-   { 0x00000020, 0x34001400, 0x00001400, 0x00210058 },
-   { 0x80800042, 0x2c004629, 0x00b109c0, 0x00b109c1 },
-   { 0x80800042, 0x2c204629, 0x00b10a00, 0x00b10a01 },
-   { 0x80800042, 0x2c404629, 0x00b10a40, 0x00b10a41 },
-   { 0x80800042, 0x2c604629, 0x00b10a80, 0x00b10a81 },
-   { 0x80800042, 0x2c804629, 0x00b10ac0, 0x00b10ac1 },
-   { 0x80800042, 0x2ca04629, 0x00b10b00, 0x00b10b01 },
-   { 0x80800042, 0x2cc04629, 0x00b10b40, 0x00b10b41 },
-   { 0x80800042, 0x2ce04629, 0x00b10b80, 0x00b10b81 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x0000001a },
-   { 0x80800042, 0x2c004629, 0x00b109c1, 0x00b109c2 },
-   { 0x80800042, 0x2c204629, 0x00b10a01, 0x00b10a02 },
-   { 0x80800042, 0x2c404629, 0x00b10a41, 0x00b10a42 },
-   { 0x80800042, 0x2c604629, 0x00b10a81, 0x00b10a82 },
-   { 0x80800042, 0x2c804629, 0x00b10ac1, 0x00b10ac2 },
-   { 0x80800042, 0x2ca04629, 0x00b10b01, 0x00b10b02 },
-   { 0x80800042, 0x2cc04629, 0x00b10b41, 0x00b10b42 },
-   { 0x80800042, 0x2ce04629, 0x00b10b81, 0x00b10b82 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000011 },
-   { 0x80800042, 0x2c004629, 0x00b109c2, 0x00b109c3 },
-   { 0x80800042, 0x2c204629, 0x00b10a02, 0x00b10a03 },
-   { 0x80800042, 0x2c404629, 0x00b10a42, 0x00b10a43 },
-   { 0x80800042, 0x2c604629, 0x00b10a82, 0x00b10a83 },
-   { 0x80800042, 0x2c804629, 0x00b10ac2, 0x00b10ac3 },
-   { 0x80800042, 0x2ca04629, 0x00b10b02, 0x00b10b03 },
-   { 0x80800042, 0x2cc04629, 0x00b10b42, 0x00b10b43 },
-   { 0x80800042, 0x2ce04629, 0x00b10b82, 0x00b10b83 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000008 },
-   { 0x80800042, 0x2c004629, 0x00b109c3, 0x00b109c4 },
-   { 0x80800042, 0x2c204629, 0x00b10a03, 0x00b10a04 },
-   { 0x80800042, 0x2c404629, 0x00b10a43, 0x00b10a44 },
-   { 0x80800042, 0x2c604629, 0x00b10a83, 0x00b10a84 },
-   { 0x80800042, 0x2c804629, 0x00b10ac3, 0x00b10ac4 },
-   { 0x80800042, 0x2ca04629, 0x00b10b03, 0x00b10b04 },
-   { 0x80800042, 0x2cc04629, 0x00b10b43, 0x00b10b44 },
-   { 0x80800042, 0x2ce04629, 0x00b10b83, 0x00b10b84 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000068 },
-   { 0x01000005, 0x20002d3c, 0x00210034, 0x00010001 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000035 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
-   { 0x00800031, 0x29c01d29, 0x008d0e60, 0x0411a007 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a001d29, 0x008d0e60, 0x0411a007 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a401d29, 0x008d0e60, 0x0411a007 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a801d29, 0x008d0e60, 0x0411a007 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0007001f },
-   { 0x00800031, 0x2ac01d29, 0x008d0e60, 0x0418a007 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
-   { 0x00800031, 0x2bc01d29, 0x008d0e60, 0x0411a007 },
-   { 0x00000005, 0x20580c21, 0x00210e60, 0x00000003 },
-   { 0x00000041, 0x20580c21, 0x00210058, 0x00000009 },
-   { 0x00000020, 0x34001400, 0x00001400, 0x00210058 },
-   { 0x80800042, 0x2c004629, 0x00b109c0, 0x00b10a00 },
-   { 0x80800042, 0x2c204629, 0x00b10a00, 0x00b10a40 },
-   { 0x80800042, 0x2c404629, 0x00b10a40, 0x00b10a80 },
-   { 0x80800042, 0x2c604629, 0x00b10a80, 0x00b10ac0 },
-   { 0x80800042, 0x2c804629, 0x00b10ac0, 0x00b10b00 },
-   { 0x80800042, 0x2ca04629, 0x00b10b00, 0x00b10b40 },
-   { 0x80800042, 0x2cc04629, 0x00b10b40, 0x00b10b80 },
-   { 0x80800042, 0x2ce04629, 0x00b10b80, 0x00b10bc0 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x0000001a },
-   { 0x80800042, 0x2c004629, 0x00b109c1, 0x00b10a01 },
-   { 0x80800042, 0x2c204629, 0x00b10a01, 0x00b10a41 },
-   { 0x80800042, 0x2c404629, 0x00b10a41, 0x00b10a81 },
-   { 0x80800042, 0x2c604629, 0x00b10a81, 0x00b10ac1 },
-   { 0x80800042, 0x2c804629, 0x00b10ac1, 0x00b10b01 },
-   { 0x80800042, 0x2ca04629, 0x00b10b01, 0x00b10b41 },
-   { 0x80800042, 0x2cc04629, 0x00b10b41, 0x00b10b81 },
-   { 0x80800042, 0x2ce04629, 0x00b10b81, 0x00b10bc1 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000011 },
-   { 0x80800042, 0x2c004629, 0x00b109c2, 0x00b10a02 },
-   { 0x80800042, 0x2c204629, 0x00b10a02, 0x00b10a42 },
-   { 0x80800042, 0x2c404629, 0x00b10a42, 0x00b10a82 },
-   { 0x80800042, 0x2c604629, 0x00b10a82, 0x00b10ac2 },
-   { 0x80800042, 0x2c804629, 0x00b10ac2, 0x00b10b02 },
-   { 0x80800042, 0x2ca04629, 0x00b10b02, 0x00b10b42 },
-   { 0x80800042, 0x2cc04629, 0x00b10b42, 0x00b10b82 },
-   { 0x80800042, 0x2ce04629, 0x00b10b82, 0x00b10bc2 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000008 },
-   { 0x80800042, 0x2c004629, 0x00b109c3, 0x00b10a03 },
-   { 0x80800042, 0x2c204629, 0x00b10a03, 0x00b10a43 },
-   { 0x80800042, 0x2c404629, 0x00b10a43, 0x00b10a83 },
-   { 0x80800042, 0x2c604629, 0x00b10a83, 0x00b10ac3 },
-   { 0x80800042, 0x2c804629, 0x00b10ac3, 0x00b10b03 },
-   { 0x80800042, 0x2ca04629, 0x00b10b03, 0x00b10b43 },
-   { 0x80800042, 0x2cc04629, 0x00b10b43, 0x00b10b83 },
-   { 0x80800042, 0x2ce04629, 0x00b10b83, 0x00b10bc3 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000031 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
-   { 0x00800031, 0x29c01d29, 0x008d0e60, 0x0411a007 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a001d29, 0x008d0e60, 0x0411a007 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a401d29, 0x008d0e60, 0x0411a007 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a801d29, 0x008d0e60, 0x0411a007 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0007001f },
-   { 0x00800031, 0x2ac01d29, 0x008d0e60, 0x0418a007 },
-   { 0x00000005, 0x20580c21, 0x00210e60, 0x00000003 },
-   { 0x00000041, 0x20580c21, 0x00210058, 0x00000009 },
-   { 0x00000020, 0x34001400, 0x00001400, 0x00210058 },
-   { 0x00800001, 0x2c000229, 0x00b109c0, 0x00000000 },
-   { 0x00800001, 0x2c200229, 0x00b10a00, 0x00000000 },
-   { 0x00800001, 0x2c400229, 0x00b10a40, 0x00000000 },
-   { 0x00800001, 0x2c600229, 0x00b10a80, 0x00000000 },
-   { 0x00800001, 0x2c800229, 0x00b10ac0, 0x00000000 },
-   { 0x00800001, 0x2ca00229, 0x00b10b00, 0x00000000 },
-   { 0x00800001, 0x2cc00229, 0x00b10b40, 0x00000000 },
-   { 0x00800001, 0x2ce00229, 0x00b10b80, 0x00000000 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x0000001a },
-   { 0x00800001, 0x2c000229, 0x00b109c1, 0x00000000 },
-   { 0x00800001, 0x2c200229, 0x00b10a01, 0x00000000 },
-   { 0x00800001, 0x2c400229, 0x00b10a41, 0x00000000 },
-   { 0x00800001, 0x2c600229, 0x00b10a81, 0x00000000 },
-   { 0x00800001, 0x2c800229, 0x00b10ac1, 0x00000000 },
-   { 0x00800001, 0x2ca00229, 0x00b10b01, 0x00000000 },
-   { 0x00800001, 0x2cc00229, 0x00b10b41, 0x00000000 },
-   { 0x00800001, 0x2ce00229, 0x00b10b81, 0x00000000 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000011 },
-   { 0x00800001, 0x2c000229, 0x00b109c2, 0x00000000 },
-   { 0x00800001, 0x2c200229, 0x00b10a02, 0x00000000 },
-   { 0x00800001, 0x2c400229, 0x00b10a42, 0x00000000 },
-   { 0x00800001, 0x2c600229, 0x00b10a82, 0x00000000 },
-   { 0x00800001, 0x2c800229, 0x00b10ac2, 0x00000000 },
-   { 0x00800001, 0x2ca00229, 0x00b10b02, 0x00000000 },
-   { 0x00800001, 0x2cc00229, 0x00b10b42, 0x00000000 },
-   { 0x00800001, 0x2ce00229, 0x00b10b82, 0x00000000 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000008 },
-   { 0x00800001, 0x2c000229, 0x00b109c3, 0x00000000 },
-   { 0x00800001, 0x2c200229, 0x00b10a03, 0x00000000 },
-   { 0x00800001, 0x2c400229, 0x00b10a43, 0x00000000 },
-   { 0x00800001, 0x2c600229, 0x00b10a83, 0x00000000 },
-   { 0x00800001, 0x2c800229, 0x00b10ac3, 0x00000000 },
-   { 0x00800001, 0x2ca00229, 0x00b10b03, 0x00000000 },
-   { 0x00800001, 0x2cc00229, 0x00b10b43, 0x00000000 },
-   { 0x00800001, 0x2ce00229, 0x00b10b83, 0x00000000 },
-   { 0x00600001, 0x23800021, 0x008d0c00, 0x00000000 },
-   { 0x00600001, 0x23c00021, 0x008d0c20, 0x00000000 },
-   { 0x00600001, 0x24000021, 0x008d0c40, 0x00000000 },
-   { 0x00600001, 0x24400021, 0x008d0c60, 0x00000000 },
-   { 0x00600001, 0x24800021, 0x008d0c80, 0x00000000 },
-   { 0x00600001, 0x24c00021, 0x008d0ca0, 0x00000000 },
-   { 0x00600001, 0x25000021, 0x008d0cc0, 0x00000000 },
-   { 0x00600001, 0x25400021, 0x008d0ce0, 0x00000000 },
-   { 0x0020000c, 0x2e6e3dad, 0x0045003a, 0x00010001 },
-   { 0x00200040, 0x2e6034a5, 0x00450e80, 0x00450e6e },
-   { 0x00000005, 0x2e640c21, 0x00210e64, 0xfffffffe },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
-   { 0x02000005, 0x20000c3c, 0x00210054, 0x00000008 },
-   { 0x00010040, 0x2e641ca5, 0x00210e64, 0x00000001 },
-   { 0x01000005, 0x20002d3c, 0x0021003a, 0x00010001 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x000000b1 },
-   { 0x01000005, 0x20002d3c, 0x0021003c, 0x00010001 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x0000007d },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
-   { 0x00800031, 0x29c01d29, 0x008d0e60, 0x0411a007 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a001d29, 0x008d0e60, 0x0411a007 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a401d29, 0x008d0e60, 0x0411a007 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a801d29, 0x008d0e60, 0x0411a007 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0007001f },
-   { 0x00800031, 0x2ac01d29, 0x008d0e60, 0x0418a007 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
-   { 0x00800031, 0x2bc01d29, 0x008d0e60, 0x0411a007 },
-   { 0x00000005, 0x20580c21, 0x00210e60, 0x00000003 },
-   { 0x00000041, 0x20580c21, 0x00210058, 0x00000019 },
-   { 0x00000020, 0x34001400, 0x00001400, 0x00210058 },
-   { 0x00800040, 0x2c004629, 0x00b109c0, 0x00b10a00 },
-   { 0x00800040, 0x2c204629, 0x00b10a00, 0x00b10a40 },
-   { 0x00800040, 0x2c404629, 0x00b10a40, 0x00b10a80 },
-   { 0x00800040, 0x2c604629, 0x00b10a80, 0x00b10ac0 },
-   { 0x00800040, 0x2c804629, 0x00b10ac0, 0x00b10b00 },
-   { 0x00800040, 0x2ca04629, 0x00b10b00, 0x00b10b40 },
-   { 0x00800040, 0x2cc04629, 0x00b10b40, 0x00b10b80 },
-   { 0x00800040, 0x2ce04629, 0x00b10b80, 0x00b10bc0 },
-   { 0x00800040, 0x2c004529, 0x00b10c00, 0x00b109c1 },
-   { 0x00800040, 0x2c204529, 0x00b10c20, 0x00b10a01 },
-   { 0x00800040, 0x2c404529, 0x00b10c40, 0x00b10a41 },
-   { 0x00800040, 0x2c604529, 0x00b10c60, 0x00b10a81 },
-   { 0x00800040, 0x2c804529, 0x00b10c80, 0x00b10ac1 },
-   { 0x00800040, 0x2ca04529, 0x00b10ca0, 0x00b10b01 },
-   { 0x00800040, 0x2cc04529, 0x00b10cc0, 0x00b10b41 },
-   { 0x00800040, 0x2ce04529, 0x00b10ce0, 0x00b10b81 },
-   { 0x00800040, 0x2c004529, 0x00b10c00, 0x00b10a01 },
-   { 0x00800040, 0x2c204529, 0x00b10c20, 0x00b10a41 },
-   { 0x00800040, 0x2c404529, 0x00b10c40, 0x00b10a81 },
-   { 0x00800040, 0x2c604529, 0x00b10c60, 0x00b10ac1 },
-   { 0x00800040, 0x2c804529, 0x00b10c80, 0x00b10b01 },
-   { 0x00800040, 0x2ca04529, 0x00b10ca0, 0x00b10b41 },
-   { 0x00800040, 0x2cc04529, 0x00b10cc0, 0x00b10b81 },
-   { 0x00800040, 0x2ce04529, 0x00b10ce0, 0x00b10bc1 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x0000004a },
-   { 0x00800040, 0x2c004629, 0x00b109c1, 0x00b10a01 },
-   { 0x00800040, 0x2c204629, 0x00b10a01, 0x00b10a41 },
-   { 0x00800040, 0x2c404629, 0x00b10a41, 0x00b10a81 },
-   { 0x00800040, 0x2c604629, 0x00b10a81, 0x00b10ac1 },
-   { 0x00800040, 0x2c804629, 0x00b10ac1, 0x00b10b01 },
-   { 0x00800040, 0x2ca04629, 0x00b10b01, 0x00b10b41 },
-   { 0x00800040, 0x2cc04629, 0x00b10b41, 0x00b10b81 },
-   { 0x00800040, 0x2ce04629, 0x00b10b81, 0x00b10bc1 },
-   { 0x00800040, 0x2c004529, 0x00b10c00, 0x00b109c2 },
-   { 0x00800040, 0x2c204529, 0x00b10c20, 0x00b10a02 },
-   { 0x00800040, 0x2c404529, 0x00b10c40, 0x00b10a42 },
-   { 0x00800040, 0x2c604529, 0x00b10c60, 0x00b10a82 },
-   { 0x00800040, 0x2c804529, 0x00b10c80, 0x00b10ac2 },
-   { 0x00800040, 0x2ca04529, 0x00b10ca0, 0x00b10b02 },
-   { 0x00800040, 0x2cc04529, 0x00b10cc0, 0x00b10b42 },
-   { 0x00800040, 0x2ce04529, 0x00b10ce0, 0x00b10b82 },
-   { 0x00800040, 0x2c004529, 0x00b10c00, 0x00b10a02 },
-   { 0x00800040, 0x2c204529, 0x00b10c20, 0x00b10a42 },
-   { 0x00800040, 0x2c404529, 0x00b10c40, 0x00b10a82 },
-   { 0x00800040, 0x2c604529, 0x00b10c60, 0x00b10ac2 },
-   { 0x00800040, 0x2c804529, 0x00b10c80, 0x00b10b02 },
-   { 0x00800040, 0x2ca04529, 0x00b10ca0, 0x00b10b42 },
-   { 0x00800040, 0x2cc04529, 0x00b10cc0, 0x00b10b82 },
-   { 0x00800040, 0x2ce04529, 0x00b10ce0, 0x00b10bc2 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000031 },
-   { 0x00800040, 0x2c004629, 0x00b109c2, 0x00b10a02 },
-   { 0x00800040, 0x2c204629, 0x00b10a02, 0x00b10a42 },
-   { 0x00800040, 0x2c404629, 0x00b10a42, 0x00b10a82 },
-   { 0x00800040, 0x2c604629, 0x00b10a82, 0x00b10ac2 },
-   { 0x00800040, 0x2c804629, 0x00b10ac2, 0x00b10b02 },
-   { 0x00800040, 0x2ca04629, 0x00b10b02, 0x00b10b42 },
-   { 0x00800040, 0x2cc04629, 0x00b10b42, 0x00b10b82 },
-   { 0x00800040, 0x2ce04629, 0x00b10b82, 0x00b10bc2 },
-   { 0x00800040, 0x2c004529, 0x00b10c00, 0x00b109c3 },
-   { 0x00800040, 0x2c204529, 0x00b10c20, 0x00b10a03 },
-   { 0x00800040, 0x2c404529, 0x00b10c40, 0x00b10a43 },
-   { 0x00800040, 0x2c604529, 0x00b10c60, 0x00b10a83 },
-   { 0x00800040, 0x2c804529, 0x00b10c80, 0x00b10ac3 },
-   { 0x00800040, 0x2ca04529, 0x00b10ca0, 0x00b10b03 },
-   { 0x00800040, 0x2cc04529, 0x00b10cc0, 0x00b10b43 },
-   { 0x00800040, 0x2ce04529, 0x00b10ce0, 0x00b10b83 },
-   { 0x00800040, 0x2c004529, 0x00b10c00, 0x00b10a03 },
-   { 0x00800040, 0x2c204529, 0x00b10c20, 0x00b10a43 },
-   { 0x00800040, 0x2c404529, 0x00b10c40, 0x00b10a83 },
-   { 0x00800040, 0x2c604529, 0x00b10c60, 0x00b10ac3 },
-   { 0x00800040, 0x2c804529, 0x00b10c80, 0x00b10b03 },
-   { 0x00800040, 0x2ca04529, 0x00b10ca0, 0x00b10b43 },
-   { 0x00800040, 0x2cc04529, 0x00b10cc0, 0x00b10b83 },
-   { 0x00800040, 0x2ce04529, 0x00b10ce0, 0x00b10bc3 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000018 },
-   { 0x00800040, 0x2c004629, 0x00b109c3, 0x00b10a03 },
-   { 0x00800040, 0x2c204629, 0x00b10a03, 0x00b10a43 },
-   { 0x00800040, 0x2c404629, 0x00b10a43, 0x00b10a83 },
-   { 0x00800040, 0x2c604629, 0x00b10a83, 0x00b10ac3 },
-   { 0x00800040, 0x2c804629, 0x00b10ac3, 0x00b10b03 },
-   { 0x00800040, 0x2ca04629, 0x00b10b03, 0x00b10b43 },
-   { 0x00800040, 0x2cc04629, 0x00b10b43, 0x00b10b83 },
-   { 0x00800040, 0x2ce04629, 0x00b10b83, 0x00b10bc3 },
-   { 0x00800040, 0x2c004529, 0x00b10c00, 0x00b109c4 },
-   { 0x00800040, 0x2c204529, 0x00b10c20, 0x00b10a04 },
-   { 0x00800040, 0x2c404529, 0x00b10c40, 0x00b10a44 },
-   { 0x00800040, 0x2c604529, 0x00b10c60, 0x00b10a84 },
-   { 0x00800040, 0x2c804529, 0x00b10c80, 0x00b10ac4 },
-   { 0x00800040, 0x2ca04529, 0x00b10ca0, 0x00b10b04 },
-   { 0x00800040, 0x2cc04529, 0x00b10cc0, 0x00b10b44 },
-   { 0x00800040, 0x2ce04529, 0x00b10ce0, 0x00b10b84 },
-   { 0x00800040, 0x2c004529, 0x00b10c00, 0x00b10a04 },
-   { 0x00800040, 0x2c204529, 0x00b10c20, 0x00b10a44 },
-   { 0x00800040, 0x2c404529, 0x00b10c40, 0x00b10a84 },
-   { 0x00800040, 0x2c604529, 0x00b10c60, 0x00b10ac4 },
-   { 0x00800040, 0x2c804529, 0x00b10c80, 0x00b10b04 },
-   { 0x00800040, 0x2ca04529, 0x00b10ca0, 0x00b10b44 },
-   { 0x00800040, 0x2cc04529, 0x00b10cc0, 0x00b10b84 },
-   { 0x00800040, 0x2ce04529, 0x00b10ce0, 0x00b10bc4 },
-   { 0x00800008, 0x2c002d29, 0x00b10c00, 0x00020002 },
-   { 0x00800008, 0x2c202d29, 0x00b10c20, 0x00020002 },
-   { 0x00800008, 0x2c402d29, 0x00b10c40, 0x00020002 },
-   { 0x00800008, 0x2c602d29, 0x00b10c60, 0x00020002 },
-   { 0x00800008, 0x2c802d29, 0x00b10c80, 0x00020002 },
-   { 0x00800008, 0x2ca02d29, 0x00b10ca0, 0x00020002 },
-   { 0x00800008, 0x2cc02d29, 0x00b10cc0, 0x00020002 },
-   { 0x00800008, 0x2ce02d29, 0x00b10ce0, 0x00020002 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x0000009a },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
-   { 0x00800031, 0x29c01d29, 0x008d0e60, 0x0411a007 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a001d29, 0x008d0e60, 0x0411a007 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a401d29, 0x008d0e60, 0x0411a007 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a801d29, 0x008d0e60, 0x0411a007 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0007001f },
-   { 0x00800031, 0x2ac01d29, 0x008d0e60, 0x0418a007 },
-   { 0x00000005, 0x20580c21, 0x00210e60, 0x00000003 },
-   { 0x00000041, 0x20580c21, 0x00210058, 0x00000009 },
-   { 0x00000020, 0x34001400, 0x00001400, 0x00210058 },
-   { 0x80800042, 0x2c004629, 0x00b109c0, 0x00b109c1 },
-   { 0x80800042, 0x2c204629, 0x00b10a00, 0x00b10a01 },
-   { 0x80800042, 0x2c404629, 0x00b10a40, 0x00b10a41 },
-   { 0x80800042, 0x2c604629, 0x00b10a80, 0x00b10a81 },
-   { 0x80800042, 0x2c804629, 0x00b10ac0, 0x00b10ac1 },
-   { 0x80800042, 0x2ca04629, 0x00b10b00, 0x00b10b01 },
-   { 0x80800042, 0x2cc04629, 0x00b10b40, 0x00b10b41 },
-   { 0x80800042, 0x2ce04629, 0x00b10b80, 0x00b10b81 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x0000001a },
-   { 0x80800042, 0x2c004629, 0x00b109c1, 0x00b109c2 },
-   { 0x80800042, 0x2c204629, 0x00b10a01, 0x00b10a02 },
-   { 0x80800042, 0x2c404629, 0x00b10a41, 0x00b10a42 },
-   { 0x80800042, 0x2c604629, 0x00b10a81, 0x00b10a82 },
-   { 0x80800042, 0x2c804629, 0x00b10ac1, 0x00b10ac2 },
-   { 0x80800042, 0x2ca04629, 0x00b10b01, 0x00b10b02 },
-   { 0x80800042, 0x2cc04629, 0x00b10b41, 0x00b10b42 },
-   { 0x80800042, 0x2ce04629, 0x00b10b81, 0x00b10b82 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000011 },
-   { 0x80800042, 0x2c004629, 0x00b109c2, 0x00b109c3 },
-   { 0x80800042, 0x2c204629, 0x00b10a02, 0x00b10a03 },
-   { 0x80800042, 0x2c404629, 0x00b10a42, 0x00b10a43 },
-   { 0x80800042, 0x2c604629, 0x00b10a82, 0x00b10a83 },
-   { 0x80800042, 0x2c804629, 0x00b10ac2, 0x00b10ac3 },
-   { 0x80800042, 0x2ca04629, 0x00b10b02, 0x00b10b03 },
-   { 0x80800042, 0x2cc04629, 0x00b10b42, 0x00b10b43 },
-   { 0x80800042, 0x2ce04629, 0x00b10b82, 0x00b10b83 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000008 },
-   { 0x80800042, 0x2c004629, 0x00b109c3, 0x00b109c4 },
-   { 0x80800042, 0x2c204629, 0x00b10a03, 0x00b10a04 },
-   { 0x80800042, 0x2c404629, 0x00b10a43, 0x00b10a44 },
-   { 0x80800042, 0x2c604629, 0x00b10a83, 0x00b10a84 },
-   { 0x80800042, 0x2c804629, 0x00b10ac3, 0x00b10ac4 },
-   { 0x80800042, 0x2ca04629, 0x00b10b03, 0x00b10b04 },
-   { 0x80800042, 0x2cc04629, 0x00b10b43, 0x00b10b44 },
-   { 0x80800042, 0x2ce04629, 0x00b10b83, 0x00b10b84 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000068 },
-   { 0x01000005, 0x20002d3c, 0x0021003c, 0x00010001 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000035 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
-   { 0x00800031, 0x29c01d29, 0x008d0e60, 0x0411a007 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a001d29, 0x008d0e60, 0x0411a007 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a401d29, 0x008d0e60, 0x0411a007 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a801d29, 0x008d0e60, 0x0411a007 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0007001f },
-   { 0x00800031, 0x2ac01d29, 0x008d0e60, 0x0418a007 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
-   { 0x00800031, 0x2bc01d29, 0x008d0e60, 0x0411a007 },
-   { 0x00000005, 0x20580c21, 0x00210e60, 0x00000003 },
-   { 0x00000041, 0x20580c21, 0x00210058, 0x00000009 },
-   { 0x00000020, 0x34001400, 0x00001400, 0x00210058 },
-   { 0x80800042, 0x2c004629, 0x00b109c0, 0x00b10a00 },
-   { 0x80800042, 0x2c204629, 0x00b10a00, 0x00b10a40 },
-   { 0x80800042, 0x2c404629, 0x00b10a40, 0x00b10a80 },
-   { 0x80800042, 0x2c604629, 0x00b10a80, 0x00b10ac0 },
-   { 0x80800042, 0x2c804629, 0x00b10ac0, 0x00b10b00 },
-   { 0x80800042, 0x2ca04629, 0x00b10b00, 0x00b10b40 },
-   { 0x80800042, 0x2cc04629, 0x00b10b40, 0x00b10b80 },
-   { 0x80800042, 0x2ce04629, 0x00b10b80, 0x00b10bc0 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x0000001a },
-   { 0x80800042, 0x2c004629, 0x00b109c1, 0x00b10a01 },
-   { 0x80800042, 0x2c204629, 0x00b10a01, 0x00b10a41 },
-   { 0x80800042, 0x2c404629, 0x00b10a41, 0x00b10a81 },
-   { 0x80800042, 0x2c604629, 0x00b10a81, 0x00b10ac1 },
-   { 0x80800042, 0x2c804629, 0x00b10ac1, 0x00b10b01 },
-   { 0x80800042, 0x2ca04629, 0x00b10b01, 0x00b10b41 },
-   { 0x80800042, 0x2cc04629, 0x00b10b41, 0x00b10b81 },
-   { 0x80800042, 0x2ce04629, 0x00b10b81, 0x00b10bc1 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000011 },
-   { 0x80800042, 0x2c004629, 0x00b109c2, 0x00b10a02 },
-   { 0x80800042, 0x2c204629, 0x00b10a02, 0x00b10a42 },
-   { 0x80800042, 0x2c404629, 0x00b10a42, 0x00b10a82 },
-   { 0x80800042, 0x2c604629, 0x00b10a82, 0x00b10ac2 },
-   { 0x80800042, 0x2c804629, 0x00b10ac2, 0x00b10b02 },
-   { 0x80800042, 0x2ca04629, 0x00b10b02, 0x00b10b42 },
-   { 0x80800042, 0x2cc04629, 0x00b10b42, 0x00b10b82 },
-   { 0x80800042, 0x2ce04629, 0x00b10b82, 0x00b10bc2 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000008 },
-   { 0x80800042, 0x2c004629, 0x00b109c3, 0x00b10a03 },
-   { 0x80800042, 0x2c204629, 0x00b10a03, 0x00b10a43 },
-   { 0x80800042, 0x2c404629, 0x00b10a43, 0x00b10a83 },
-   { 0x80800042, 0x2c604629, 0x00b10a83, 0x00b10ac3 },
-   { 0x80800042, 0x2c804629, 0x00b10ac3, 0x00b10b03 },
-   { 0x80800042, 0x2ca04629, 0x00b10b03, 0x00b10b43 },
-   { 0x80800042, 0x2cc04629, 0x00b10b43, 0x00b10b83 },
-   { 0x80800042, 0x2ce04629, 0x00b10b83, 0x00b10bc3 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000031 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
-   { 0x00800031, 0x29c01d29, 0x008d0e60, 0x0411a007 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a001d29, 0x008d0e60, 0x0411a007 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a401d29, 0x008d0e60, 0x0411a007 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a801d29, 0x008d0e60, 0x0411a007 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0007001f },
-   { 0x00800031, 0x2ac01d29, 0x008d0e60, 0x0418a007 },
-   { 0x00000005, 0x20580c21, 0x00210e60, 0x00000003 },
-   { 0x00000041, 0x20580c21, 0x00210058, 0x00000009 },
-   { 0x00000020, 0x34001400, 0x00001400, 0x00210058 },
-   { 0x00800001, 0x2c000229, 0x00b109c0, 0x00000000 },
-   { 0x00800001, 0x2c200229, 0x00b10a00, 0x00000000 },
-   { 0x00800001, 0x2c400229, 0x00b10a40, 0x00000000 },
-   { 0x00800001, 0x2c600229, 0x00b10a80, 0x00000000 },
-   { 0x00800001, 0x2c800229, 0x00b10ac0, 0x00000000 },
-   { 0x00800001, 0x2ca00229, 0x00b10b00, 0x00000000 },
-   { 0x00800001, 0x2cc00229, 0x00b10b40, 0x00000000 },
-   { 0x00800001, 0x2ce00229, 0x00b10b80, 0x00000000 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x0000001a },
-   { 0x00800001, 0x2c000229, 0x00b109c1, 0x00000000 },
-   { 0x00800001, 0x2c200229, 0x00b10a01, 0x00000000 },
-   { 0x00800001, 0x2c400229, 0x00b10a41, 0x00000000 },
-   { 0x00800001, 0x2c600229, 0x00b10a81, 0x00000000 },
-   { 0x00800001, 0x2c800229, 0x00b10ac1, 0x00000000 },
-   { 0x00800001, 0x2ca00229, 0x00b10b01, 0x00000000 },
-   { 0x00800001, 0x2cc00229, 0x00b10b41, 0x00000000 },
-   { 0x00800001, 0x2ce00229, 0x00b10b81, 0x00000000 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000011 },
-   { 0x00800001, 0x2c000229, 0x00b109c2, 0x00000000 },
-   { 0x00800001, 0x2c200229, 0x00b10a02, 0x00000000 },
-   { 0x00800001, 0x2c400229, 0x00b10a42, 0x00000000 },
-   { 0x00800001, 0x2c600229, 0x00b10a82, 0x00000000 },
-   { 0x00800001, 0x2c800229, 0x00b10ac2, 0x00000000 },
-   { 0x00800001, 0x2ca00229, 0x00b10b02, 0x00000000 },
-   { 0x00800001, 0x2cc00229, 0x00b10b42, 0x00000000 },
-   { 0x00800001, 0x2ce00229, 0x00b10b82, 0x00000000 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000008 },
-   { 0x00800001, 0x2c000229, 0x00b109c3, 0x00000000 },
-   { 0x00800001, 0x2c200229, 0x00b10a03, 0x00000000 },
-   { 0x00800001, 0x2c400229, 0x00b10a43, 0x00000000 },
-   { 0x00800001, 0x2c600229, 0x00b10a83, 0x00000000 },
-   { 0x00800001, 0x2c800229, 0x00b10ac3, 0x00000000 },
-   { 0x00800001, 0x2ca00229, 0x00b10b03, 0x00000000 },
-   { 0x00800001, 0x2cc00229, 0x00b10b43, 0x00000000 },
-   { 0x00800001, 0x2ce00229, 0x00b10b83, 0x00000000 },
-   { 0x80800042, 0x23802529, 0x00b10680, 0x00b10380 },
-   { 0x80800042, 0x23a02529, 0x00b106a0, 0x00b10c00 },
-   { 0x80800042, 0x23c02529, 0x00b106c0, 0x00b103c0 },
-   { 0x80800042, 0x23e02529, 0x00b106e0, 0x00b10c20 },
-   { 0x80800042, 0x24002529, 0x00b10700, 0x00b10400 },
-   { 0x80800042, 0x24202529, 0x00b10720, 0x00b10c40 },
-   { 0x80800042, 0x24402529, 0x00b10740, 0x00b10440 },
-   { 0x80800042, 0x24602529, 0x00b10760, 0x00b10c60 },
-   { 0x80800042, 0x24802529, 0x00b10780, 0x00b10480 },
-   { 0x80800042, 0x24a02529, 0x00b107a0, 0x00b10c80 },
-   { 0x80800042, 0x24c02529, 0x00b107c0, 0x00b104c0 },
-   { 0x80800042, 0x24e02529, 0x00b107e0, 0x00b10ca0 },
-   { 0x80800042, 0x25002529, 0x00b10800, 0x00b10500 },
-   { 0x80800042, 0x25202529, 0x00b10820, 0x00b10cc0 },
-   { 0x80800042, 0x25402529, 0x00b10840, 0x00b10540 },
-   { 0x80800042, 0x25602529, 0x00b10860, 0x00b10ce0 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0007000f },
-   { 0x0020000c, 0x2e6e3dad, 0x00450032, 0x00020002 },
-   { 0x0020000c, 0x2e601ca5, 0x00450e80, 0x00000001 },
-   { 0x00200040, 0x2e6034a5, 0x00450e60, 0x00450e6e },
-   { 0x00000005, 0x2e640c21, 0x00210e64, 0xfffffffe },
-   { 0x02000005, 0x20002e3c, 0x0021003f, 0x00020002 },
-   { 0x00010040, 0x2e640c21, 0x00210e64, 0x00000001 },
-   { 0x01000005, 0x20002d3c, 0x00210032, 0x00020002 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x000000a2 },
-   { 0x01000005, 0x20002d3c, 0x00210034, 0x00020002 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000076 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0007000f },
-   { 0x00800031, 0x2ac01d29, 0x00ad0e60, 0x0414a008 },
-   { 0x00800031, 0x2b601d29, 0x00ad0e60, 0x0414a009 },
-   { 0x00000005, 0x20580c21, 0x00210e60, 0x00000003 },
-   { 0x00000041, 0x20580c21, 0x00210058, 0x00000019 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0001000f },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 },
-   { 0x00800031, 0x2b401d29, 0x00ad0e60, 0x0411a008 },
-   { 0x00800031, 0x2be01d29, 0x00ad0e60, 0x0411a009 },
-   { 0x00000020, 0x34001400, 0x00001400, 0x00210058 },
-   { 0x00800040, 0x29c04629, 0x00ad0ac0, 0x00ad0ae0 },
-   { 0x00800040, 0x29e04629, 0x00ad0ae0, 0x00ad0b00 },
-   { 0x00800040, 0x2a004629, 0x00ad0b00, 0x00ad0b20 },
-   { 0x00800040, 0x2a204629, 0x00ad0b20, 0x00ad0b40 },
-   { 0x00800040, 0x29c04529, 0x00ad09c0, 0x00ad0ac1 },
-   { 0x00800040, 0x29e04529, 0x00ad09e0, 0x00ad0ae1 },
-   { 0x00800040, 0x2a004529, 0x00ad0a00, 0x00ad0b01 },
-   { 0x00800040, 0x2a204529, 0x00ad0a20, 0x00ad0b21 },
-   { 0x00800040, 0x29c04529, 0x00ad09c0, 0x00ad0ae1 },
-   { 0x00800040, 0x29e04529, 0x00ad09e0, 0x00ad0b01 },
-   { 0x00800040, 0x2a004529, 0x00ad0a00, 0x00ad0b21 },
-   { 0x00800040, 0x2a204529, 0x00ad0a20, 0x00ad0b41 },
-   { 0x00800040, 0x2a404629, 0x00ad0b60, 0x00ad0b80 },
-   { 0x00800040, 0x2a604629, 0x00ad0b80, 0x00ad0ba0 },
-   { 0x00800040, 0x2a804629, 0x00ad0ba0, 0x00ad0bc0 },
-   { 0x00800040, 0x2aa04629, 0x00ad0bc0, 0x00ad0be0 },
-   { 0x00800040, 0x2a404529, 0x00ad0a40, 0x00ad0b61 },
-   { 0x00800040, 0x2a604529, 0x00ad0a60, 0x00ad0b81 },
-   { 0x00800040, 0x2a804529, 0x00ad0a80, 0x00ad0ba1 },
-   { 0x00800040, 0x2aa04529, 0x00ad0aa0, 0x00ad0bc1 },
-   { 0x00800040, 0x2a404529, 0x00ad0a40, 0x00ad0b81 },
-   { 0x00800040, 0x2a604529, 0x00ad0a60, 0x00ad0ba1 },
-   { 0x00800040, 0x2a804529, 0x00ad0a80, 0x00ad0bc1 },
-   { 0x00800040, 0x2aa04529, 0x00ad0aa0, 0x00ad0be1 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x0000004a },
-   { 0x00800040, 0x29c04629, 0x00ad0ac1, 0x00ad0ae1 },
-   { 0x00800040, 0x29e04629, 0x00ad0ae1, 0x00ad0b01 },
-   { 0x00800040, 0x2a004629, 0x00ad0b01, 0x00ad0b21 },
-   { 0x00800040, 0x2a204629, 0x00ad0b21, 0x00ad0b41 },
-   { 0x00800040, 0x29c04529, 0x00ad09c0, 0x00ad0ac2 },
-   { 0x00800040, 0x29e04529, 0x00ad09e0, 0x00ad0ae2 },
-   { 0x00800040, 0x2a004529, 0x00ad0a00, 0x00ad0b02 },
-   { 0x00800040, 0x2a204529, 0x00ad0a20, 0x00ad0b22 },
-   { 0x00800040, 0x29c04529, 0x00ad09c0, 0x00ad0ae2 },
-   { 0x00800040, 0x29e04529, 0x00ad09e0, 0x00ad0b02 },
-   { 0x00800040, 0x2a004529, 0x00ad0a00, 0x00ad0b22 },
-   { 0x00800040, 0x2a204529, 0x00ad0a20, 0x00ad0b42 },
-   { 0x00800040, 0x2a404629, 0x00ad0b61, 0x00ad0b81 },
-   { 0x00800040, 0x2a604629, 0x00ad0b81, 0x00ad0ba1 },
-   { 0x00800040, 0x2a804629, 0x00ad0ba1, 0x00ad0bc1 },
-   { 0x00800040, 0x2aa04629, 0x00ad0bc1, 0x00ad0be1 },
-   { 0x00800040, 0x2a404529, 0x00ad0a40, 0x00ad0b62 },
-   { 0x00800040, 0x2a604529, 0x00ad0a60, 0x00ad0b82 },
-   { 0x00800040, 0x2a804529, 0x00ad0a80, 0x00ad0ba2 },
-   { 0x00800040, 0x2aa04529, 0x00ad0aa0, 0x00ad0bc2 },
-   { 0x00800040, 0x2a404529, 0x00ad0a40, 0x00ad0b82 },
-   { 0x00800040, 0x2a604529, 0x00ad0a60, 0x00ad0ba2 },
-   { 0x00800040, 0x2a804529, 0x00ad0a80, 0x00ad0bc2 },
-   { 0x00800040, 0x2aa04529, 0x00ad0aa0, 0x00ad0be2 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000031 },
-   { 0x00800040, 0x29c04629, 0x00ad0ac2, 0x00ad0ae2 },
-   { 0x00800040, 0x29e04629, 0x00ad0ae2, 0x00ad0b02 },
-   { 0x00800040, 0x2a004629, 0x00ad0b02, 0x00ad0b22 },
-   { 0x00800040, 0x2a204629, 0x00ad0b22, 0x00ad0b42 },
-   { 0x00800040, 0x29c04529, 0x00ad09c0, 0x00ad0ac3 },
-   { 0x00800040, 0x29e04529, 0x00ad09e0, 0x00ad0ae3 },
-   { 0x00800040, 0x2a004529, 0x00ad0a00, 0x00ad0b03 },
-   { 0x00800040, 0x2a204529, 0x00ad0a20, 0x00ad0b23 },
-   { 0x00800040, 0x29c04529, 0x00ad09c0, 0x00ad0ae3 },
-   { 0x00800040, 0x29e04529, 0x00ad09e0, 0x00ad0b03 },
-   { 0x00800040, 0x2a004529, 0x00ad0a00, 0x00ad0b23 },
-   { 0x00800040, 0x2a204529, 0x00ad0a20, 0x00ad0b43 },
-   { 0x00800040, 0x2a404629, 0x00ad0b62, 0x00ad0b82 },
-   { 0x00800040, 0x2a604629, 0x00ad0b82, 0x00ad0ba2 },
-   { 0x00800040, 0x2a804629, 0x00ad0ba2, 0x00ad0bc2 },
-   { 0x00800040, 0x2aa04629, 0x00ad0bc2, 0x00ad0be2 },
-   { 0x00800040, 0x2a404529, 0x00ad0a40, 0x00ad0b63 },
-   { 0x00800040, 0x2a604529, 0x00ad0a60, 0x00ad0b83 },
-   { 0x00800040, 0x2a804529, 0x00ad0a80, 0x00ad0ba3 },
-   { 0x00800040, 0x2aa04529, 0x00ad0aa0, 0x00ad0bc3 },
-   { 0x00800040, 0x2a404529, 0x00ad0a40, 0x00ad0b83 },
-   { 0x00800040, 0x2a604529, 0x00ad0a60, 0x00ad0ba3 },
-   { 0x00800040, 0x2a804529, 0x00ad0a80, 0x00ad0bc3 },
-   { 0x00800040, 0x2aa04529, 0x00ad0aa0, 0x00ad0be3 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000018 },
-   { 0x00800040, 0x29c04629, 0x00ad0ac3, 0x00ad0ae3 },
-   { 0x00800040, 0x29e04629, 0x00ad0ae3, 0x00ad0b03 },
-   { 0x00800040, 0x2a004629, 0x00ad0b03, 0x00ad0b23 },
-   { 0x00800040, 0x2a204629, 0x00ad0b23, 0x00ad0b43 },
-   { 0x00800040, 0x29c04529, 0x00ad09c0, 0x00ad0ac4 },
-   { 0x00800040, 0x29e04529, 0x00ad09e0, 0x00ad0ae4 },
-   { 0x00800040, 0x2a004529, 0x00ad0a00, 0x00ad0b04 },
-   { 0x00800040, 0x2a204529, 0x00ad0a20, 0x00ad0b24 },
-   { 0x00800040, 0x29c04529, 0x00ad09c0, 0x00ad0ae4 },
-   { 0x00800040, 0x29e04529, 0x00ad09e0, 0x00ad0b04 },
-   { 0x00800040, 0x2a004529, 0x00ad0a00, 0x00ad0b24 },
-   { 0x00800040, 0x2a204529, 0x00ad0a20, 0x00ad0b44 },
-   { 0x00800040, 0x2a404629, 0x00ad0b63, 0x00ad0b83 },
-   { 0x00800040, 0x2a604629, 0x00ad0b83, 0x00ad0ba3 },
-   { 0x00800040, 0x2a804629, 0x00ad0ba3, 0x00ad0bc3 },
-   { 0x00800040, 0x2aa04629, 0x00ad0bc3, 0x00ad0be3 },
-   { 0x00800040, 0x2a404529, 0x00ad0a40, 0x00ad0b64 },
-   { 0x00800040, 0x2a604529, 0x00ad0a60, 0x00ad0b84 },
-   { 0x00800040, 0x2a804529, 0x00ad0a80, 0x00ad0ba4 },
-   { 0x00800040, 0x2aa04529, 0x00ad0aa0, 0x00ad0bc4 },
-   { 0x00800040, 0x2a404529, 0x00ad0a40, 0x00ad0b84 },
-   { 0x00800040, 0x2a604529, 0x00ad0a60, 0x00ad0ba4 },
-   { 0x00800040, 0x2a804529, 0x00ad0a80, 0x00ad0bc4 },
-   { 0x00800040, 0x2aa04529, 0x00ad0aa0, 0x00ad0be4 },
-   { 0x80800008, 0x29c02d29, 0x00b109c0, 0x00020002 },
-   { 0x80800008, 0x29e02d29, 0x00b109e0, 0x00020002 },
-   { 0x80800008, 0x2a002d29, 0x00b10a00, 0x00020002 },
-   { 0x80800008, 0x2a202d29, 0x00b10a20, 0x00020002 },
-   { 0x80800008, 0x2a402d29, 0x00b10a40, 0x00020002 },
-   { 0x80800008, 0x2a602d29, 0x00b10a60, 0x00020002 },
-   { 0x80800008, 0x2a802d29, 0x00b10a80, 0x00020002 },
-   { 0x80800008, 0x2aa02d29, 0x00b10aa0, 0x00020002 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000082 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0007000f },
-   { 0x00800031, 0x2ac01d29, 0x00ad0e60, 0x0414a008 },
-   { 0x00800031, 0x2b601d29, 0x00ad0e60, 0x0414a009 },
-   { 0x00000005, 0x20580c21, 0x00210e60, 0x00000003 },
-   { 0x00000041, 0x20580c21, 0x00210058, 0x00000009 },
-   { 0x00000020, 0x34001400, 0x00001400, 0x00210058 },
-   { 0x80800042, 0x29c04629, 0x00ad0ac0, 0x00ad0ac1 },
-   { 0x80800042, 0x29e04629, 0x00ad0ae0, 0x00ad0ae1 },
-   { 0x80800042, 0x2a004629, 0x00ad0b00, 0x00ad0b01 },
-   { 0x80800042, 0x2a204629, 0x00ad0b20, 0x00ad0b21 },
-   { 0x80800042, 0x2a404629, 0x00ad0b60, 0x00ad0b61 },
-   { 0x80800042, 0x2a604629, 0x00ad0b80, 0x00ad0b81 },
-   { 0x80800042, 0x2a804629, 0x00ad0ba0, 0x00ad0ba1 },
-   { 0x80800042, 0x2aa04629, 0x00ad0bc0, 0x00ad0bc1 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x0000001a },
-   { 0x80800042, 0x29c04629, 0x00ad0ac1, 0x00ad0ac2 },
-   { 0x80800042, 0x29e04629, 0x00ad0ae1, 0x00ad0ae2 },
-   { 0x80800042, 0x2a004629, 0x00ad0b01, 0x00ad0b02 },
-   { 0x80800042, 0x2a204629, 0x00ad0b21, 0x00ad0b22 },
-   { 0x80800042, 0x2a404629, 0x00ad0b61, 0x00ad0b62 },
-   { 0x80800042, 0x2a604629, 0x00ad0b81, 0x00ad0b82 },
-   { 0x80800042, 0x2a804629, 0x00ad0ba1, 0x00ad0ba2 },
-   { 0x80800042, 0x2aa04629, 0x00ad0bc1, 0x00ad0bc2 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000011 },
-   { 0x80800042, 0x29c04629, 0x00ad0ac2, 0x00ad0ac3 },
-   { 0x80800042, 0x29e04629, 0x00ad0ae2, 0x00ad0ae3 },
-   { 0x80800042, 0x2a004629, 0x00ad0b02, 0x00ad0b03 },
-   { 0x80800042, 0x2a204629, 0x00ad0b22, 0x00ad0b23 },
-   { 0x80800042, 0x2a404629, 0x00ad0b62, 0x00ad0b63 },
-   { 0x80800042, 0x2a604629, 0x00ad0b82, 0x00ad0b83 },
-   { 0x80800042, 0x2a804629, 0x00ad0ba2, 0x00ad0ba3 },
-   { 0x80800042, 0x2aa04629, 0x00ad0bc2, 0x00ad0bc3 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000008 },
-   { 0x80800042, 0x29c04629, 0x00ad0ac3, 0x00ad0ac4 },
-   { 0x80800042, 0x29e04629, 0x00ad0ae3, 0x00ad0ae4 },
-   { 0x80800042, 0x2a004629, 0x00ad0b03, 0x00ad0b04 },
-   { 0x80800042, 0x2a204629, 0x00ad0b23, 0x00ad0b24 },
-   { 0x80800042, 0x2a404629, 0x00ad0b63, 0x00ad0b64 },
-   { 0x80800042, 0x2a604629, 0x00ad0b83, 0x00ad0b84 },
-   { 0x80800042, 0x2a804629, 0x00ad0ba3, 0x00ad0ba4 },
-   { 0x80800042, 0x2aa04629, 0x00ad0bc3, 0x00ad0bc4 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000058 },
-   { 0x01000005, 0x20002d3c, 0x00210034, 0x00020002 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x0000002d },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0007000f },
-   { 0x00800031, 0x2ac01d29, 0x00ad0e60, 0x0414a008 },
-   { 0x00800031, 0x2b601d29, 0x00ad0e60, 0x0414a009 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0000000f },
-   { 0x00800031, 0x2b401d29, 0x00ad0e60, 0x0411a008 },
-   { 0x00800031, 0x2be01d29, 0x00ad0e60, 0x0411a009 },
-   { 0x00000005, 0x20580c21, 0x00210e60, 0x00000003 },
-   { 0x00000041, 0x20580c21, 0x00210058, 0x00000009 },
-   { 0x00000020, 0x34001400, 0x00001400, 0x00210058 },
-   { 0x80800042, 0x29c04629, 0x00ad0ac0, 0x00ad0ae0 },
-   { 0x80800042, 0x29e04629, 0x00ad0ae0, 0x00ad0b00 },
-   { 0x80800042, 0x2a004629, 0x00ad0b00, 0x00ad0b20 },
-   { 0x80800042, 0x2a204629, 0x00ad0b20, 0x00ad0b40 },
-   { 0x80800042, 0x2a404629, 0x00ad0b60, 0x00ad0b80 },
-   { 0x80800042, 0x2a604629, 0x00ad0b80, 0x00ad0ba0 },
-   { 0x80800042, 0x2a804629, 0x00ad0ba0, 0x00ad0bc0 },
-   { 0x80800042, 0x2aa04629, 0x00ad0bc0, 0x00ad0be0 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x0000001a },
-   { 0x80800042, 0x29c04629, 0x00ad0ac1, 0x00ad0ae1 },
-   { 0x80800042, 0x29e04629, 0x00ad0ae1, 0x00ad0b01 },
-   { 0x80800042, 0x2a004629, 0x00ad0b01, 0x00ad0b21 },
-   { 0x80800042, 0x2a204629, 0x00ad0b21, 0x00ad0b41 },
-   { 0x80800042, 0x2a404629, 0x00ad0b61, 0x00ad0b81 },
-   { 0x80800042, 0x2a604629, 0x00ad0b81, 0x00ad0ba1 },
-   { 0x80800042, 0x2a804629, 0x00ad0ba1, 0x00ad0bc1 },
-   { 0x80800042, 0x2aa04629, 0x00ad0bc1, 0x00ad0be1 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000011 },
-   { 0x80800042, 0x29c04629, 0x00ad0ac2, 0x00ad0ae2 },
-   { 0x80800042, 0x29e04629, 0x00ad0ae2, 0x00ad0b02 },
-   { 0x80800042, 0x2a004629, 0x00ad0b02, 0x00ad0b22 },
-   { 0x80800042, 0x2a204629, 0x00ad0b22, 0x00ad0b42 },
-   { 0x80800042, 0x2a404629, 0x00ad0b62, 0x00ad0b82 },
-   { 0x80800042, 0x2a604629, 0x00ad0b82, 0x00ad0ba2 },
-   { 0x80800042, 0x2a804629, 0x00ad0ba2, 0x00ad0bc2 },
-   { 0x80800042, 0x2aa04629, 0x00ad0bc2, 0x00ad0be2 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000008 },
-   { 0x80800042, 0x29c04629, 0x00ad0ac3, 0x00ad0ac3 },
-   { 0x80800042, 0x29e04629, 0x00ad0ae3, 0x00ad0ae3 },
-   { 0x80800042, 0x2a004629, 0x00ad0b03, 0x00ad0b03 },
-   { 0x80800042, 0x2a204629, 0x00ad0b23, 0x00ad0b23 },
-   { 0x80800042, 0x2a404629, 0x00ad0b63, 0x00ad0b63 },
-   { 0x80800042, 0x2a604629, 0x00ad0b83, 0x00ad0b83 },
-   { 0x80800042, 0x2a804629, 0x00ad0ba3, 0x00ad0ba3 },
-   { 0x80800042, 0x2aa04629, 0x00ad0bc3, 0x00ad0bc3 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000029 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0007000f },
-   { 0x00800031, 0x2ac01d29, 0x00ad0e60, 0x0414a008 },
-   { 0x00800031, 0x2b601d29, 0x00ad0e60, 0x0414a009 },
-   { 0x00000005, 0x20580c21, 0x00210e60, 0x00000003 },
-   { 0x00000041, 0x20580c21, 0x00210058, 0x00000009 },
-   { 0x00000020, 0x34001400, 0x00001400, 0x00210058 },
-   { 0x00800001, 0x29c00229, 0x00ad0ac0, 0x00000000 },
-   { 0x00800001, 0x29e00229, 0x00ad0ae0, 0x00000000 },
-   { 0x00800001, 0x2a000229, 0x00ad0b00, 0x00000000 },
-   { 0x00800001, 0x2a200229, 0x00ad0b20, 0x00000000 },
-   { 0x00800001, 0x2a400229, 0x00ad0b60, 0x00000000 },
-   { 0x00800001, 0x2a600229, 0x00ad0b80, 0x00000000 },
-   { 0x00800001, 0x2a800229, 0x00ad0ba0, 0x00000000 },
-   { 0x00800001, 0x2aa00229, 0x00ad0bc0, 0x00000000 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x0000001a },
-   { 0x00800001, 0x29c00229, 0x00ad0ac1, 0x00000000 },
-   { 0x00800001, 0x29e00229, 0x00ad0ae1, 0x00000000 },
-   { 0x00800001, 0x2a000229, 0x00ad0b01, 0x00000000 },
-   { 0x00800001, 0x2a200229, 0x00ad0b21, 0x00000000 },
-   { 0x00800001, 0x2a400229, 0x00ad0b61, 0x00000000 },
-   { 0x00800001, 0x2a600229, 0x00ad0b81, 0x00000000 },
-   { 0x00800001, 0x2a800229, 0x00ad0ba1, 0x00000000 },
-   { 0x00800001, 0x2aa00229, 0x00ad0bc1, 0x00000000 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000011 },
-   { 0x00800001, 0x29c00229, 0x00ad0ac2, 0x00000000 },
-   { 0x00800001, 0x29e00229, 0x00ad0ae2, 0x00000000 },
-   { 0x00800001, 0x2a000229, 0x00ad0b02, 0x00000000 },
-   { 0x00800001, 0x2a200229, 0x00ad0b22, 0x00000000 },
-   { 0x00800001, 0x2a400229, 0x00ad0b62, 0x00000000 },
-   { 0x00800001, 0x2a600229, 0x00ad0b82, 0x00000000 },
-   { 0x00800001, 0x2a800229, 0x00ad0ba2, 0x00000000 },
-   { 0x00800001, 0x2aa00229, 0x00ad0bc2, 0x00000000 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000008 },
-   { 0x00800001, 0x29c00229, 0x00ad0ac3, 0x00000000 },
-   { 0x00800001, 0x29e00229, 0x00ad0ae3, 0x00000000 },
-   { 0x00800001, 0x2a000229, 0x00ad0b03, 0x00000000 },
-   { 0x00800001, 0x2a200229, 0x00ad0b23, 0x00000000 },
-   { 0x00800001, 0x2a400229, 0x00ad0b63, 0x00000000 },
-   { 0x00800001, 0x2a600229, 0x00ad0b83, 0x00000000 },
-   { 0x00800001, 0x2a800229, 0x00ad0ba3, 0x00000000 },
-   { 0x00800001, 0x2aa00229, 0x00ad0bc3, 0x00000000 },
-   { 0x00600001, 0x25800129, 0x008d09c0, 0x00000000 },
-   { 0x00600001, 0x25a00129, 0x008d09e0, 0x00000000 },
-   { 0x00600001, 0x25c00129, 0x008d0a00, 0x00000000 },
-   { 0x00600001, 0x25e00129, 0x008d0a20, 0x00000000 },
-   { 0x00600001, 0x26000129, 0x008d0a40, 0x00000000 },
-   { 0x00600001, 0x26200129, 0x008d0a60, 0x00000000 },
-   { 0x00600001, 0x26400129, 0x008d0a80, 0x00000000 },
-   { 0x00600001, 0x26600129, 0x008d0aa0, 0x00000000 },
-   { 0x0020000c, 0x2e6e3dad, 0x0045003a, 0x00020002 },
-   { 0x0020000c, 0x2e601ca5, 0x00450e80, 0x00000001 },
-   { 0x00200040, 0x2e6034a5, 0x00450e60, 0x00450e6e },
-   { 0x00000005, 0x2e640c21, 0x00210e64, 0xfffffffe },
-   { 0x02000005, 0x20002e3c, 0x0021003f, 0x00080008 },
-   { 0x00010040, 0x2e640c21, 0x00210e64, 0x00000001 },
-   { 0x01000005, 0x20002d3c, 0x0021003a, 0x00020002 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x000000a2 },
-   { 0x01000005, 0x20002d3c, 0x0021003c, 0x00020002 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000076 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0007000f },
-   { 0x00800031, 0x2ac01d29, 0x00ad0e60, 0x0414a008 },
-   { 0x00800031, 0x2b601d29, 0x00ad0e60, 0x0414a009 },
-   { 0x00000005, 0x20580c21, 0x00210e60, 0x00000003 },
-   { 0x00000041, 0x20580c21, 0x00210058, 0x00000019 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0001000f },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 },
-   { 0x00800031, 0x2b401d29, 0x00ad0e60, 0x0411a008 },
-   { 0x00800031, 0x2be01d29, 0x00ad0e60, 0x0411a009 },
-   { 0x00000020, 0x34001400, 0x00001400, 0x00210058 },
-   { 0x00800040, 0x29c04629, 0x00ad0ac0, 0x00ad0ae0 },
-   { 0x00800040, 0x29e04629, 0x00ad0ae0, 0x00ad0b00 },
-   { 0x00800040, 0x2a004629, 0x00ad0b00, 0x00ad0b20 },
-   { 0x00800040, 0x2a204629, 0x00ad0b20, 0x00ad0b40 },
-   { 0x00800040, 0x29c04529, 0x00ad09c0, 0x00ad0ac1 },
-   { 0x00800040, 0x29e04529, 0x00ad09e0, 0x00ad0ae1 },
-   { 0x00800040, 0x2a004529, 0x00ad0a00, 0x00ad0b01 },
-   { 0x00800040, 0x2a204529, 0x00ad0a20, 0x00ad0b21 },
-   { 0x00800040, 0x29c04529, 0x00ad09c0, 0x00ad0ae1 },
-   { 0x00800040, 0x29e04529, 0x00ad09e0, 0x00ad0b01 },
-   { 0x00800040, 0x2a004529, 0x00ad0a00, 0x00ad0b21 },
-   { 0x00800040, 0x2a204529, 0x00ad0a20, 0x00ad0b41 },
-   { 0x00800040, 0x2a404629, 0x00ad0b60, 0x00ad0b80 },
-   { 0x00800040, 0x2a604629, 0x00ad0b80, 0x00ad0ba0 },
-   { 0x00800040, 0x2a804629, 0x00ad0ba0, 0x00ad0bc0 },
-   { 0x00800040, 0x2aa04629, 0x00ad0bc0, 0x00ad0be0 },
-   { 0x00800040, 0x2a404529, 0x00ad0a40, 0x00ad0b61 },
-   { 0x00800040, 0x2a604529, 0x00ad0a60, 0x00ad0b81 },
-   { 0x00800040, 0x2a804529, 0x00ad0a80, 0x00ad0ba1 },
-   { 0x00800040, 0x2aa04529, 0x00ad0aa0, 0x00ad0bc1 },
-   { 0x00800040, 0x2a404529, 0x00ad0a40, 0x00ad0b81 },
-   { 0x00800040, 0x2a604529, 0x00ad0a60, 0x00ad0ba1 },
-   { 0x00800040, 0x2a804529, 0x00ad0a80, 0x00ad0bc1 },
-   { 0x00800040, 0x2aa04529, 0x00ad0aa0, 0x00ad0be1 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x0000004a },
-   { 0x00800040, 0x29c04629, 0x00ad0ac1, 0x00ad0ae1 },
-   { 0x00800040, 0x29e04629, 0x00ad0ae1, 0x00ad0b01 },
-   { 0x00800040, 0x2a004629, 0x00ad0b01, 0x00ad0b21 },
-   { 0x00800040, 0x2a204629, 0x00ad0b21, 0x00ad0b41 },
-   { 0x00800040, 0x29c04529, 0x00ad09c0, 0x00ad0ac2 },
-   { 0x00800040, 0x29e04529, 0x00ad09e0, 0x00ad0ae2 },
-   { 0x00800040, 0x2a004529, 0x00ad0a00, 0x00ad0b02 },
-   { 0x00800040, 0x2a204529, 0x00ad0a20, 0x00ad0b22 },
-   { 0x00800040, 0x29c04529, 0x00ad09c0, 0x00ad0ae2 },
-   { 0x00800040, 0x29e04529, 0x00ad09e0, 0x00ad0b02 },
-   { 0x00800040, 0x2a004529, 0x00ad0a00, 0x00ad0b22 },
-   { 0x00800040, 0x2a204529, 0x00ad0a20, 0x00ad0b42 },
-   { 0x00800040, 0x2a404629, 0x00ad0b61, 0x00ad0b81 },
-   { 0x00800040, 0x2a604629, 0x00ad0b81, 0x00ad0ba1 },
-   { 0x00800040, 0x2a804629, 0x00ad0ba1, 0x00ad0bc1 },
-   { 0x00800040, 0x2aa04629, 0x00ad0bc1, 0x00ad0be1 },
-   { 0x00800040, 0x2a404529, 0x00ad0a40, 0x00ad0b62 },
-   { 0x00800040, 0x2a604529, 0x00ad0a60, 0x00ad0b82 },
-   { 0x00800040, 0x2a804529, 0x00ad0a80, 0x00ad0ba2 },
-   { 0x00800040, 0x2aa04529, 0x00ad0aa0, 0x00ad0bc2 },
-   { 0x00800040, 0x2a404529, 0x00ad0a40, 0x00ad0b82 },
-   { 0x00800040, 0x2a604529, 0x00ad0a60, 0x00ad0ba2 },
-   { 0x00800040, 0x2a804529, 0x00ad0a80, 0x00ad0bc2 },
-   { 0x00800040, 0x2aa04529, 0x00ad0aa0, 0x00ad0be2 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000031 },
-   { 0x00800040, 0x29c04629, 0x00ad0ac2, 0x00ad0ae2 },
-   { 0x00800040, 0x29e04629, 0x00ad0ae2, 0x00ad0b02 },
-   { 0x00800040, 0x2a004629, 0x00ad0b02, 0x00ad0b22 },
-   { 0x00800040, 0x2a204629, 0x00ad0b22, 0x00ad0b42 },
-   { 0x00800040, 0x29c04529, 0x00ad09c0, 0x00ad0ac3 },
-   { 0x00800040, 0x29e04529, 0x00ad09e0, 0x00ad0ae3 },
-   { 0x00800040, 0x2a004529, 0x00ad0a00, 0x00ad0b03 },
-   { 0x00800040, 0x2a204529, 0x00ad0a20, 0x00ad0b23 },
-   { 0x00800040, 0x29c04529, 0x00ad09c0, 0x00ad0ae3 },
-   { 0x00800040, 0x29e04529, 0x00ad09e0, 0x00ad0b03 },
-   { 0x00800040, 0x2a004529, 0x00ad0a00, 0x00ad0b23 },
-   { 0x00800040, 0x2a204529, 0x00ad0a20, 0x00ad0b43 },
-   { 0x00800040, 0x2a404629, 0x00ad0b62, 0x00ad0b82 },
-   { 0x00800040, 0x2a604629, 0x00ad0b82, 0x00ad0ba2 },
-   { 0x00800040, 0x2a804629, 0x00ad0ba2, 0x00ad0bc2 },
-   { 0x00800040, 0x2aa04629, 0x00ad0bc2, 0x00ad0be2 },
-   { 0x00800040, 0x2a404529, 0x00ad0a40, 0x00ad0b63 },
-   { 0x00800040, 0x2a604529, 0x00ad0a60, 0x00ad0b83 },
-   { 0x00800040, 0x2a804529, 0x00ad0a80, 0x00ad0ba3 },
-   { 0x00800040, 0x2aa04529, 0x00ad0aa0, 0x00ad0bc3 },
-   { 0x00800040, 0x2a404529, 0x00ad0a40, 0x00ad0b83 },
-   { 0x00800040, 0x2a604529, 0x00ad0a60, 0x00ad0ba3 },
-   { 0x00800040, 0x2a804529, 0x00ad0a80, 0x00ad0bc3 },
-   { 0x00800040, 0x2aa04529, 0x00ad0aa0, 0x00ad0be3 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000018 },
-   { 0x00800040, 0x29c04629, 0x00ad0ac3, 0x00ad0ae3 },
-   { 0x00800040, 0x29e04629, 0x00ad0ae3, 0x00ad0b03 },
-   { 0x00800040, 0x2a004629, 0x00ad0b03, 0x00ad0b23 },
-   { 0x00800040, 0x2a204629, 0x00ad0b23, 0x00ad0b43 },
-   { 0x00800040, 0x29c04529, 0x00ad09c0, 0x00ad0ac4 },
-   { 0x00800040, 0x29e04529, 0x00ad09e0, 0x00ad0ae4 },
-   { 0x00800040, 0x2a004529, 0x00ad0a00, 0x00ad0b04 },
-   { 0x00800040, 0x2a204529, 0x00ad0a20, 0x00ad0b24 },
-   { 0x00800040, 0x29c04529, 0x00ad09c0, 0x00ad0ae4 },
-   { 0x00800040, 0x29e04529, 0x00ad09e0, 0x00ad0b04 },
-   { 0x00800040, 0x2a004529, 0x00ad0a00, 0x00ad0b24 },
-   { 0x00800040, 0x2a204529, 0x00ad0a20, 0x00ad0b44 },
-   { 0x00800040, 0x2a404629, 0x00ad0b63, 0x00ad0b83 },
-   { 0x00800040, 0x2a604629, 0x00ad0b83, 0x00ad0ba3 },
-   { 0x00800040, 0x2a804629, 0x00ad0ba3, 0x00ad0bc3 },
-   { 0x00800040, 0x2aa04629, 0x00ad0bc3, 0x00ad0be3 },
-   { 0x00800040, 0x2a404529, 0x00ad0a40, 0x00ad0b64 },
-   { 0x00800040, 0x2a604529, 0x00ad0a60, 0x00ad0b84 },
-   { 0x00800040, 0x2a804529, 0x00ad0a80, 0x00ad0ba4 },
-   { 0x00800040, 0x2aa04529, 0x00ad0aa0, 0x00ad0bc4 },
-   { 0x00800040, 0x2a404529, 0x00ad0a40, 0x00ad0b84 },
-   { 0x00800040, 0x2a604529, 0x00ad0a60, 0x00ad0ba4 },
-   { 0x00800040, 0x2a804529, 0x00ad0a80, 0x00ad0bc4 },
-   { 0x00800040, 0x2aa04529, 0x00ad0aa0, 0x00ad0be4 },
-   { 0x80800008, 0x29c02d29, 0x00b109c0, 0x00020002 },
-   { 0x80800008, 0x29e02d29, 0x00b109e0, 0x00020002 },
-   { 0x80800008, 0x2a002d29, 0x00b10a00, 0x00020002 },
-   { 0x80800008, 0x2a202d29, 0x00b10a20, 0x00020002 },
-   { 0x80800008, 0x2a402d29, 0x00b10a40, 0x00020002 },
-   { 0x80800008, 0x2a602d29, 0x00b10a60, 0x00020002 },
-   { 0x80800008, 0x2a802d29, 0x00b10a80, 0x00020002 },
-   { 0x80800008, 0x2aa02d29, 0x00b10aa0, 0x00020002 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000082 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0007000f },
-   { 0x00800031, 0x2ac01d29, 0x00ad0e60, 0x0414a008 },
-   { 0x00800031, 0x2b601d29, 0x00ad0e60, 0x0414a009 },
-   { 0x00000005, 0x20580c21, 0x00210e60, 0x00000003 },
-   { 0x00000041, 0x20580c21, 0x00210058, 0x00000009 },
-   { 0x00000020, 0x34001400, 0x00001400, 0x00210058 },
-   { 0x80800042, 0x29c04629, 0x00ad0ac0, 0x00ad0ac1 },
-   { 0x80800042, 0x29e04629, 0x00ad0ae0, 0x00ad0ae1 },
-   { 0x80800042, 0x2a004629, 0x00ad0b00, 0x00ad0b01 },
-   { 0x80800042, 0x2a204629, 0x00ad0b20, 0x00ad0b21 },
-   { 0x80800042, 0x2a404629, 0x00ad0b60, 0x00ad0b61 },
-   { 0x80800042, 0x2a604629, 0x00ad0b80, 0x00ad0b81 },
-   { 0x80800042, 0x2a804629, 0x00ad0ba0, 0x00ad0ba1 },
-   { 0x80800042, 0x2aa04629, 0x00ad0bc0, 0x00ad0bc1 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x0000001a },
-   { 0x80800042, 0x29c04629, 0x00ad0ac1, 0x00ad0ac2 },
-   { 0x80800042, 0x29e04629, 0x00ad0ae1, 0x00ad0ae2 },
-   { 0x80800042, 0x2a004629, 0x00ad0b01, 0x00ad0b02 },
-   { 0x80800042, 0x2a204629, 0x00ad0b21, 0x00ad0b22 },
-   { 0x80800042, 0x2a404629, 0x00ad0b61, 0x00ad0b62 },
-   { 0x80800042, 0x2a604629, 0x00ad0b81, 0x00ad0b82 },
-   { 0x80800042, 0x2a804629, 0x00ad0ba1, 0x00ad0ba2 },
-   { 0x80800042, 0x2aa04629, 0x00ad0bc1, 0x00ad0bc2 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000011 },
-   { 0x80800042, 0x29c04629, 0x00ad0ac2, 0x00ad0ac3 },
-   { 0x80800042, 0x29e04629, 0x00ad0ae2, 0x00ad0ae3 },
-   { 0x80800042, 0x2a004629, 0x00ad0b02, 0x00ad0b03 },
-   { 0x80800042, 0x2a204629, 0x00ad0b22, 0x00ad0b23 },
-   { 0x80800042, 0x2a404629, 0x00ad0b62, 0x00ad0b63 },
-   { 0x80800042, 0x2a604629, 0x00ad0b82, 0x00ad0b83 },
-   { 0x80800042, 0x2a804629, 0x00ad0ba2, 0x00ad0ba3 },
-   { 0x80800042, 0x2aa04629, 0x00ad0bc2, 0x00ad0bc3 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000008 },
-   { 0x80800042, 0x29c04629, 0x00ad0ac3, 0x00ad0ac4 },
-   { 0x80800042, 0x29e04629, 0x00ad0ae3, 0x00ad0ae4 },
-   { 0x80800042, 0x2a004629, 0x00ad0b03, 0x00ad0b04 },
-   { 0x80800042, 0x2a204629, 0x00ad0b23, 0x00ad0b24 },
-   { 0x80800042, 0x2a404629, 0x00ad0b63, 0x00ad0b64 },
-   { 0x80800042, 0x2a604629, 0x00ad0b83, 0x00ad0b84 },
-   { 0x80800042, 0x2a804629, 0x00ad0ba3, 0x00ad0ba4 },
-   { 0x80800042, 0x2aa04629, 0x00ad0bc3, 0x00ad0bc4 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000058 },
-   { 0x01000005, 0x20002d3c, 0x0021003c, 0x00020002 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x0000002d },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0007000f },
-   { 0x00800031, 0x2ac01d29, 0x00ad0e60, 0x0414a008 },
-   { 0x00800031, 0x2b601d29, 0x00ad0e60, 0x0414a009 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0000000f },
-   { 0x00800031, 0x2b401d29, 0x00ad0e60, 0x0411a008 },
-   { 0x00800031, 0x2be01d29, 0x00ad0e60, 0x0411a009 },
-   { 0x00000005, 0x20580c21, 0x00210e60, 0x00000003 },
-   { 0x00000041, 0x20580c21, 0x00210058, 0x00000009 },
-   { 0x00000020, 0x34001400, 0x00001400, 0x00210058 },
-   { 0x80800042, 0x29c04629, 0x00ad0ac0, 0x00ad0ae0 },
-   { 0x80800042, 0x29e04629, 0x00ad0ae0, 0x00ad0b00 },
-   { 0x80800042, 0x2a004629, 0x00ad0b00, 0x00ad0b20 },
-   { 0x80800042, 0x2a204629, 0x00ad0b20, 0x00ad0b40 },
-   { 0x80800042, 0x2a404629, 0x00ad0b60, 0x00ad0b80 },
-   { 0x80800042, 0x2a604629, 0x00ad0b80, 0x00ad0ba0 },
-   { 0x80800042, 0x2a804629, 0x00ad0ba0, 0x00ad0bc0 },
-   { 0x80800042, 0x2aa04629, 0x00ad0bc0, 0x00ad0be0 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x0000001a },
-   { 0x80800042, 0x29c04629, 0x00ad0ac1, 0x00ad0ae1 },
-   { 0x80800042, 0x29e04629, 0x00ad0ae1, 0x00ad0b01 },
-   { 0x80800042, 0x2a004629, 0x00ad0b01, 0x00ad0b21 },
-   { 0x80800042, 0x2a204629, 0x00ad0b21, 0x00ad0b41 },
-   { 0x80800042, 0x2a404629, 0x00ad0b61, 0x00ad0b81 },
-   { 0x80800042, 0x2a604629, 0x00ad0b81, 0x00ad0ba1 },
-   { 0x80800042, 0x2a804629, 0x00ad0ba1, 0x00ad0bc1 },
-   { 0x80800042, 0x2aa04629, 0x00ad0bc1, 0x00ad0be1 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000011 },
-   { 0x80800042, 0x29c04629, 0x00ad0ac2, 0x00ad0ae2 },
-   { 0x80800042, 0x29e04629, 0x00ad0ae2, 0x00ad0b02 },
-   { 0x80800042, 0x2a004629, 0x00ad0b02, 0x00ad0b22 },
-   { 0x80800042, 0x2a204629, 0x00ad0b22, 0x00ad0b42 },
-   { 0x80800042, 0x2a404629, 0x00ad0b62, 0x00ad0b82 },
-   { 0x80800042, 0x2a604629, 0x00ad0b82, 0x00ad0ba2 },
-   { 0x80800042, 0x2a804629, 0x00ad0ba2, 0x00ad0bc2 },
-   { 0x80800042, 0x2aa04629, 0x00ad0bc2, 0x00ad0be2 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000008 },
-   { 0x80800042, 0x29c04629, 0x00ad0ac3, 0x00ad0ac3 },
-   { 0x80800042, 0x29e04629, 0x00ad0ae3, 0x00ad0ae3 },
-   { 0x80800042, 0x2a004629, 0x00ad0b03, 0x00ad0b03 },
-   { 0x80800042, 0x2a204629, 0x00ad0b23, 0x00ad0b23 },
-   { 0x80800042, 0x2a404629, 0x00ad0b63, 0x00ad0b63 },
-   { 0x80800042, 0x2a604629, 0x00ad0b83, 0x00ad0b83 },
-   { 0x80800042, 0x2a804629, 0x00ad0ba3, 0x00ad0ba3 },
-   { 0x80800042, 0x2aa04629, 0x00ad0bc3, 0x00ad0bc3 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000029 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0007000f },
-   { 0x00800031, 0x2ac01d29, 0x00ad0e60, 0x0414a008 },
-   { 0x00800031, 0x2b601d29, 0x00ad0e60, 0x0414a009 },
-   { 0x00000005, 0x20580c21, 0x00210e60, 0x00000003 },
-   { 0x00000041, 0x20580c21, 0x00210058, 0x00000009 },
-   { 0x00000020, 0x34001400, 0x00001400, 0x00210058 },
-   { 0x00800001, 0x29c00229, 0x00ad0ac0, 0x00000000 },
-   { 0x00800001, 0x29e00229, 0x00ad0ae0, 0x00000000 },
-   { 0x00800001, 0x2a000229, 0x00ad0b00, 0x00000000 },
-   { 0x00800001, 0x2a200229, 0x00ad0b20, 0x00000000 },
-   { 0x00800001, 0x2a400229, 0x00ad0b60, 0x00000000 },
-   { 0x00800001, 0x2a600229, 0x00ad0b80, 0x00000000 },
-   { 0x00800001, 0x2a800229, 0x00ad0ba0, 0x00000000 },
-   { 0x00800001, 0x2aa00229, 0x00ad0bc0, 0x00000000 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x0000001a },
-   { 0x00800001, 0x29c00229, 0x00ad0ac1, 0x00000000 },
-   { 0x00800001, 0x29e00229, 0x00ad0ae1, 0x00000000 },
-   { 0x00800001, 0x2a000229, 0x00ad0b01, 0x00000000 },
-   { 0x00800001, 0x2a200229, 0x00ad0b21, 0x00000000 },
-   { 0x00800001, 0x2a400229, 0x00ad0b61, 0x00000000 },
-   { 0x00800001, 0x2a600229, 0x00ad0b81, 0x00000000 },
-   { 0x00800001, 0x2a800229, 0x00ad0ba1, 0x00000000 },
-   { 0x00800001, 0x2aa00229, 0x00ad0bc1, 0x00000000 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000011 },
-   { 0x00800001, 0x29c00229, 0x00ad0ac2, 0x00000000 },
-   { 0x00800001, 0x29e00229, 0x00ad0ae2, 0x00000000 },
-   { 0x00800001, 0x2a000229, 0x00ad0b02, 0x00000000 },
-   { 0x00800001, 0x2a200229, 0x00ad0b22, 0x00000000 },
-   { 0x00800001, 0x2a400229, 0x00ad0b62, 0x00000000 },
-   { 0x00800001, 0x2a600229, 0x00ad0b82, 0x00000000 },
-   { 0x00800001, 0x2a800229, 0x00ad0ba2, 0x00000000 },
-   { 0x00800001, 0x2aa00229, 0x00ad0bc2, 0x00000000 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000008 },
-   { 0x00800001, 0x29c00229, 0x00ad0ac3, 0x00000000 },
-   { 0x00800001, 0x29e00229, 0x00ad0ae3, 0x00000000 },
-   { 0x00800001, 0x2a000229, 0x00ad0b03, 0x00000000 },
-   { 0x00800001, 0x2a200229, 0x00ad0b23, 0x00000000 },
-   { 0x00800001, 0x2a400229, 0x00ad0b63, 0x00000000 },
-   { 0x00800001, 0x2a600229, 0x00ad0b83, 0x00000000 },
-   { 0x00800001, 0x2a800229, 0x00ad0ba3, 0x00000000 },
-   { 0x00800001, 0x2aa00229, 0x00ad0bc3, 0x00000000 },
-   { 0x00600001, 0x25900129, 0x008d09c0, 0x00000000 },
-   { 0x00600001, 0x25b00129, 0x008d09e0, 0x00000000 },
-   { 0x00600001, 0x25d00129, 0x008d0a00, 0x00000000 },
-   { 0x00600001, 0x25f00129, 0x008d0a20, 0x00000000 },
-   { 0x00600001, 0x26100129, 0x008d0a40, 0x00000000 },
-   { 0x00600001, 0x26300129, 0x008d0a60, 0x00000000 },
-   { 0x00600001, 0x26500129, 0x008d0a80, 0x00000000 },
-   { 0x00600001, 0x26700129, 0x008d0aa0, 0x00000000 },
-   { 0x80800042, 0x25802529, 0x00b10880, 0x00b10580 },
-   { 0x80800042, 0x25a02529, 0x00b108a0, 0x00b105a0 },
-   { 0x80800042, 0x25c02529, 0x00b108c0, 0x00b105c0 },
-   { 0x80800042, 0x25e02529, 0x00b108e0, 0x00b105e0 },
-   { 0x80800042, 0x26002529, 0x00b10900, 0x00b10600 },
-   { 0x80800042, 0x26202529, 0x00b10920, 0x00b10620 },
-   { 0x80800042, 0x26402529, 0x00b10940, 0x00b10640 },
-   { 0x80800042, 0x26602529, 0x00b10960, 0x00b10660 },
-   { 0x00600001, 0x20200021, 0x008d0980, 0x00000000 },
-   { 0x00800001, 0x458101f1, 0x00000000, 0x00000000 },
-   { 0x00800001, 0x45a101f1, 0x00000000, 0x00000000 },
-   { 0x00800001, 0x45c101f1, 0x00000000, 0x00000000 },
-   { 0x00800001, 0x45e101f1, 0x00000000, 0x00000000 },
-   { 0x00800001, 0x460101f1, 0x00000000, 0x00000000 },
-   { 0x00800001, 0x462101f1, 0x00000000, 0x00000000 },
-   { 0x00800001, 0x464101f1, 0x00000000, 0x00000000 },
-   { 0x00800001, 0x466101f1, 0x00000000, 0x00000000 },
-   { 0x02000005, 0x20002e3c, 0x0021003e, 0x00010001 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000011 },
-   { 0x00800040, 0x238045ad, 0x00b10060, 0x00b20380 },
-   { 0x00800040, 0x23a045ad, 0x00b10080, 0x00b203a0 },
-   { 0x00800040, 0x23c045ad, 0x00b100a0, 0x00b203c0 },
-   { 0x00800040, 0x23e045ad, 0x00b100c0, 0x00b203e0 },
-   { 0x00800040, 0x240045ad, 0x00b100e0, 0x00b20400 },
-   { 0x00800040, 0x242045ad, 0x00b10100, 0x00b20420 },
-   { 0x00800040, 0x244045ad, 0x00b10120, 0x00b20440 },
-   { 0x00800040, 0x246045ad, 0x00b10140, 0x00b20460 },
-   { 0x00800040, 0x248045ad, 0x00b10160, 0x00b20480 },
-   { 0x00800040, 0x24a045ad, 0x00b10180, 0x00b204a0 },
-   { 0x00800040, 0x24c045ad, 0x00b101a0, 0x00b204c0 },
-   { 0x00800040, 0x24e045ad, 0x00b101c0, 0x00b204e0 },
-   { 0x00800040, 0x250045ad, 0x00b101e0, 0x00b20500 },
-   { 0x00800040, 0x252045ad, 0x00b10200, 0x00b20520 },
-   { 0x00800040, 0x254045ad, 0x00b10220, 0x00b20540 },
-   { 0x00800040, 0x256045ad, 0x00b10240, 0x00b20560 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000010 },
-   { 0x00800040, 0x238045ad, 0x00b10060, 0x00b20380 },
-   { 0x00800040, 0x23a045ad, 0x00b10160, 0x00b203a0 },
-   { 0x00800040, 0x23c045ad, 0x00b10080, 0x00b203c0 },
-   { 0x00800040, 0x23e045ad, 0x00b10180, 0x00b203e0 },
-   { 0x00800040, 0x240045ad, 0x00b100a0, 0x00b20400 },
-   { 0x00800040, 0x242045ad, 0x00b101a0, 0x00b20420 },
-   { 0x00800040, 0x244045ad, 0x00b100c0, 0x00b20440 },
-   { 0x00800040, 0x246045ad, 0x00b101c0, 0x00b20460 },
-   { 0x00800040, 0x248045ad, 0x00b100e0, 0x00b20480 },
-   { 0x00800040, 0x24a045ad, 0x00b101e0, 0x00b204a0 },
-   { 0x00800040, 0x24c045ad, 0x00b10100, 0x00b204c0 },
-   { 0x00800040, 0x24e045ad, 0x00b10200, 0x00b204e0 },
-   { 0x00800040, 0x250045ad, 0x00b10120, 0x00b20500 },
-   { 0x00800040, 0x252045ad, 0x00b10220, 0x00b20520 },
-   { 0x00800040, 0x254045ad, 0x00b10140, 0x00b20540 },
-   { 0x00800040, 0x256045ad, 0x00b10240, 0x00b20560 },
-   { 0x00000001, 0x20280061, 0x00000000, 0x000f000f },
-   { 0x80800001, 0x438001b1, 0x00b10380, 0x00000000 },
-   { 0x80800001, 0x43a001b1, 0x00b103a0, 0x00000000 },
-   { 0x80800001, 0x43c001b1, 0x00b103c0, 0x00000000 },
-   { 0x80800001, 0x43e001b1, 0x00b103e0, 0x00000000 },
-   { 0x80800001, 0x440001b1, 0x00b10400, 0x00000000 },
-   { 0x80800001, 0x442001b1, 0x00b10420, 0x00000000 },
-   { 0x80800001, 0x444001b1, 0x00b10440, 0x00000000 },
-   { 0x80800001, 0x446001b1, 0x00b10460, 0x00000000 },
-   { 0x80800001, 0x448001b1, 0x00b10480, 0x00000000 },
-   { 0x80800001, 0x44a001b1, 0x00b104a0, 0x00000000 },
-   { 0x80800001, 0x44c001b1, 0x00b104c0, 0x00000000 },
-   { 0x80800001, 0x44e001b1, 0x00b104e0, 0x00000000 },
-   { 0x80800001, 0x450001b1, 0x00b10500, 0x00000000 },
-   { 0x80800001, 0x452001b1, 0x00b10520, 0x00000000 },
-   { 0x80800001, 0x454001b1, 0x00b10540, 0x00000000 },
-   { 0x80800001, 0x456001b1, 0x00b10560, 0x00000000 },
-   { 0x00800001, 0x20200232, 0x00b20380, 0x00000000 },
-   { 0x00800001, 0x20300232, 0x00b203a0, 0x00000000 },
-   { 0x00800001, 0x20400232, 0x00b203c0, 0x00000000 },
-   { 0x00800001, 0x20500232, 0x00b203e0, 0x00000000 },
-   { 0x00800001, 0x20600232, 0x00b20400, 0x00000000 },
-   { 0x00800001, 0x20700232, 0x00b20420, 0x00000000 },
-   { 0x00800001, 0x20800232, 0x00b20440, 0x00000000 },
-   { 0x00800001, 0x20900232, 0x00b20460, 0x00000000 },
-   { 0x00800001, 0x20a00232, 0x00b20480, 0x00000000 },
-   { 0x00800001, 0x20b00232, 0x00b204a0, 0x00000000 },
-   { 0x00800001, 0x20c00232, 0x00b204c0, 0x00000000 },
-   { 0x00800001, 0x20d00232, 0x00b204e0, 0x00000000 },
-   { 0x00800001, 0x20e00232, 0x00b20500, 0x00000000 },
-   { 0x00800001, 0x20f00232, 0x00b20520, 0x00000000 },
-   { 0x00800001, 0x21000232, 0x00b20540, 0x00000000 },
-   { 0x00800001, 0x21100232, 0x00b20560, 0x00000000 },
-   { 0x00800031, 0x24001d28, 0x008d0020, 0x05902000 },
-   { 0x00000001, 0x20280061, 0x00000000, 0x00070007 },
-   { 0x00200008, 0x20201c21, 0x00450020, 0x00000001 },
-   { 0x00800040, 0x258025a9, 0x00b10260, 0x00b10580 },
-   { 0x00800040, 0x25a025a9, 0x00b10280, 0x00b105a0 },
-   { 0x00800040, 0x25c025a9, 0x00b102a0, 0x00b105c0 },
-   { 0x00800040, 0x25e025a9, 0x00b102c0, 0x00b105e0 },
-   { 0x80800001, 0x45800131, 0x00b10580, 0x00000000 },
-   { 0x80800001, 0x45a00131, 0x00b105a0, 0x00000000 },
-   { 0x80800001, 0x45c00131, 0x00b105c0, 0x00000000 },
-   { 0x80800001, 0x45e00131, 0x00b105e0, 0x00000000 },
-   { 0x00800001, 0x20200232, 0x00b20580, 0x00000000 },
-   { 0x00800001, 0x20300232, 0x00b205a0, 0x00000000 },
-   { 0x00800001, 0x20400232, 0x00b205c0, 0x00000000 },
-   { 0x00800001, 0x20500232, 0x00b205e0, 0x00000000 },
-   { 0x00800031, 0x24001d28, 0x008d0020, 0x05302001 },
-   { 0x00800040, 0x260025a9, 0x00b102e0, 0x00b10600 },
-   { 0x00800040, 0x262025a9, 0x00b10300, 0x00b10620 },
-   { 0x00800040, 0x264025a9, 0x00b10320, 0x00b10640 },
-   { 0x00800040, 0x266025a9, 0x00b10340, 0x00b10660 },
-   { 0x80800001, 0x46000131, 0x00b10600, 0x00000000 },
-   { 0x80800001, 0x46200131, 0x00b10620, 0x00000000 },
-   { 0x80800001, 0x46400131, 0x00b10640, 0x00000000 },
-   { 0x80800001, 0x46600131, 0x00b10660, 0x00000000 },
-   { 0x00800001, 0x20200232, 0x00b20600, 0x00000000 },
-   { 0x00800001, 0x20300232, 0x00b20620, 0x00000000 },
-   { 0x00800001, 0x20400232, 0x00b20640, 0x00000000 },
-   { 0x00800001, 0x20500232, 0x00b20660, 0x00000000 },
-   { 0x00800031, 0x24001d28, 0x008d0020, 0x05302002 },
-   { 0x00800031, 0x24001d28, 0x008d0000, 0x87100000 },
diff --git a/src/xvmc/field_f_b_igd.g4a b/src/xvmc/field_f_b_igd.g4a
deleted file mode 100644
index e741244..0000000
--- a/src/xvmc/field_f_b_igd.g4a
+++ /dev/null
@@ -1,223 +0,0 @@
-/*
- * Copyright © 2008 Intel Corporation
- *
- * Permission is hereby granted, free of charge, to any person obtaining a
- * copy of this software and associated documentation files (the "Software"),
- * to deal in the Software without restriction, including without limitation
- * the rights to use, copy, modify, merge, publish, distribute, sublicense,
- * and/or sell copies of the Software, and to permit persons to whom the
- * Software is furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice (including the next
- * paragraph) shall be included in all copies or substantial portions of the
- * Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
- * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
- * SOFTWARE.
- *
- * Author:
- *    Zou Nan hai <nanhai.zou at intel.com>
- *    Zhang Hua jun <huajun.zhang at intel.com>
- *    Xing Dong sheng <dongsheng.xing at intel.com>
- *
- */
-mov (8) g76.0<1>UD g1.0<8,8,1>UD {align1};
-//mov (8) g77.0<1>UD g2.0<8,8,1>UD {align1};
-
-include(`block_clear.g4i')
-mov (8) g115.0<1>UD g1.0<8,8,1>UD {align1};
-mov (8) g116.0<1>UD g1.0<8,8,1>UD {align1};
-
-/* forward---Y---first vector*/
-mov(1) g115.8<1>UD 0x007001fUD  { align1 };
-asr (2) g115.14<1>W g1.14<2,2,1>W 1W {align1};
-add (2) g115.0<1>D g116.0<2,2,1>D g115.14<2,2,1>W {align1};
-and (1) g115.4<1>UD g115.4<1,1,1>UD 0xFFFFFFFEUD {align1};
-mov(1) g115.8<1>UD 0x1fUD  { align1 }; //read 1 line, 32 columns.
-and.nz (1) null g1.31<1,1,1>UB 0x1UW {align1};
-(f0) add (1) g115.4<1>D g115.4<1,1,1>D 1D {align1};
-define(`surface',`4')
-define(`mv1',`g1.14')
-define(`mv2',`g1.16')
-include(`motion_field_y_igd.g4i')
-mov (8) g52.0<1>UD g96.0<8,8,1>UD {align1};
-mov (8) g54.0<1>UD g97.0<8,8,1>UD {align1};
-mov (8) g56.0<1>UD g98.0<8,8,1>UD {align1};
-mov (8) g58.0<1>UD g99.0<8,8,1>UD {align1};
-mov (8) g60.0<1>UD g100.0<8,8,1>UD {align1};
-mov (8) g62.0<1>UD g101.0<8,8,1>UD {align1};
-mov (8) g64.0<1>UD g102.0<8,8,1>UD {align1};
-mov (8) g66.0<1>UD g103.0<8,8,1>UD {align1};
-
-/*forward---Y---second vector*/
-asr (2) g115.14<1>W g1.22<2,2,1>W 1W {align1};
-add (2) g115.0<1>D g116.0<2,2,1>D g115.14<2,2,1>W {align1};
-and (1) g115.4<1>UD g115.4<1,1,1>UD 0xFFFFFFFEUD {align1};
-mov(1) g115.8<1>UD 0x1fUD { align1 }; //read 1 line, 32 columns.
-and.nz (1) null g1.31<1,1,1>UB 0x4UD {align1};
-(f0) add (1) g115.4<1>D g115.4<1,1,1>D 1D {align1};
-define(`surface',`4')
-define(`mv1',`g1.22')
-define(`mv2',`g1.24')
-include(`motion_field_y_igd.g4i')
-mov (8) g53.0<1>UD g96.0<8,8,1>UD {align1};
-mov (8) g55.0<1>UD g97.0<8,8,1>UD {align1};
-mov (8) g57.0<1>UD g98.0<8,8,1>UD {align1};
-mov (8) g59.0<1>UD g99.0<8,8,1>UD {align1};
-mov (8) g61.0<1>UD g100.0<8,8,1>UD {align1};
-mov (8) g63.0<1>UD g101.0<8,8,1>UD {align1};
-mov (8) g65.0<1>UD g102.0<8,8,1>UD {align1};
-mov (8) g67.0<1>UD g103.0<8,8,1>UD {align1};
-
-/*forward---UV---first vector*/
-mov(1) g115.8<1>UD 0x007000fUD  { align1 };
-asr (2) g115.14<1>W g1.14<2,2,1>W 2W {align1};
-asr (2) g115.0<1>D g116.0<2,2,1>D 1D {align1};
-add (2) g115.0<1>D g115.0<2,2,1>D g115.14<2,2,1>W {align1};
-and (1) g115.4<1>UD g115.4<1,1,1>UD 0xFFFFFFFEUD {align1};
-and.nz (1) null g1.31<1,1,1>UB 0x1UW {align1};
-(f0) add (1) g115.4<1>UD g115.4<1,1,1>UD 1UD {align1};
-define(`surface_u',`5')
-define(`surface_v',`6')
-define(`mv1',`g1.14')
-define(`mv2',`g1.16')
-include(`motion_field_uv_igd.g4i')
-mov (8) g68.0<1>UW g78.0<8,8,1>UW {align1};
-mov (8) g69.0<1>UW g79.0<8,8,1>UW {align1};
-mov (8) g70.0<1>UW g80.0<8,8,1>UW {align1};
-mov (8) g71.0<1>UW g81.0<8,8,1>UW {align1};
-mov (8) g72.0<1>UW g82.0<8,8,1>UW {align1};
-mov (8) g73.0<1>UW g83.0<8,8,1>UW {align1};
-mov (8) g74.0<1>UW g84.0<8,8,1>UW {align1};
-mov (8) g75.0<1>UW g85.0<8,8,1>UW {align1};
-
-/*forward---UV---second vector */
-asr (2) g115.14<1>W g1.22<2,2,1>W 2W {align1};
-asr (2) g115.0<1>D g116.0<2,2,1>D 1D {align1};
-add (2) g115.0<1>D g115.0<2,2,1>D g115.14<2,2,1>W {align1};
-and (1) g115.4<1>UD g115.4<1,1,1>UD 0xFFFFFFFEUD {align1};
-and.nz (1) null g1.31<1,1,1>UB 0x4UW {align1};
-(f0) add (1) g115.4<1>UD g115.4<1,1,1>UD 1UD {align1};
-define(`mv1',`g1.24')
-define(`mv2',`g1.26')
-include(`motion_field_uv_igd.g4i')
-mov (8) g68.16<1>UW g78.0<8,8,1>UW {align1};
-mov (8) g69.16<1>UW g79.0<8,8,1>UW {align1};
-mov (8) g70.16<1>UW g80.0<8,8,1>UW {align1};
-mov (8) g71.16<1>UW g81.0<8,8,1>UW {align1};
-mov (8) g72.16<1>UW g82.0<8,8,1>UW {align1};
-mov (8) g73.16<1>UW g83.0<8,8,1>UW {align1};
-mov (8) g74.16<1>UW g84.0<8,8,1>UW {align1};
-mov (8) g75.16<1>UW g85.0<8,8,1>UW {align1};
-
-/*backward---Y---first vector */
-mov(8) g1.0<1>UD g116.0<8,8,1>UD {align1};
-mov(1) g115.8<1>UD 0x007001fUD  { align1 };
-mov(1) g1.8<1>UD 0x007000fUD  { align1 };
-asr (2) g115.14<1>W g1.18<2,2,1>W 1W {align1};
-add (2) g115.0<1>D g116.0<2,2,1>D g115.14<2,2,1>W {align1};
-and (1) g115.4<1>UD g115.4<1,1,1>UD 0xFFFFFFFEUD {align1};
-mov(1) g115.8<1>UD 0x1fUD  { align1 }; //read 1 line, 32 columns.
-and.nz (1) null g1.31<1,1,1>UB 0x2UW {align1};
-(f0) add (1) g115.4<1>D g115.4<1,1,1>D 1D {align1};
-define(`surface',`7')
-define(`mv1',`g1.18')
-define(`mv2',`g1.20')
-include(`motion_field_y_igd.g4i')
-mov (8) g28.0<1>UD g96.0<8,8,1>UD {align1};
-mov (8) g30.0<1>UD g97.0<8,8,1>UD {align1};
-mov (8) g32.0<1>UD g98.0<8,8,1>UD {align1};
-mov (8) g34.0<1>UD g99.0<8,8,1>UD {align1};
-mov (8) g36.0<1>UD g100.0<8,8,1>UD {align1};
-mov (8) g38.0<1>UD g101.0<8,8,1>UD {align1};
-mov (8) g40.0<1>UD g102.0<8,8,1>UD {align1};
-mov (8) g42.0<1>UD g103.0<8,8,1>UD {align1};
-
-/*backward---Y---second vector */
-asr (2) g115.14<1>W g1.26<2,2,1>W 1W {align1};
-add (2) g115.0<1>D g116.0<2,2,1>D g115.14<2,2,1>W {align1};
-and (1) g115.4<1>UD g115.4<1,1,1>UD 0xFFFFFFFEUD {align1};
-mov(1) g115.8<1>UD 0x1fUD  { align1 }; //read 1 line, 32 columns.
-and.nz (1) null g2.20<1,1,1>UD 0x8UD {align1};
-(f0) add (1) g115.4<1>D g115.4<1,1,1>D 1D {align1};
-define(`surface',`7')
-define(`mv1',`g1.26')
-define(`mv2',`g1.28')
-include(`motion_field_y_igd.g4i')
-
-avg.sat (16) g28.0<1>UW g52.0<16,16,1>UW g28.0<16,16,1>UW {align1};
-avg.sat (16) g29.0<1>UW g53.0<16,16,1>UW g96.0<16,16,1>UW {align1};
-avg.sat (16) g30.0<1>UW g54.0<16,16,1>UW g30.0<16,16,1>UW {align1};
-avg.sat (16) g31.0<1>UW g55.0<16,16,1>UW g97.0<16,16,1>UW {align1};
-avg.sat (16) g32.0<1>UW g56.0<16,16,1>UW g32.0<16,16,1>UW {align1};
-avg.sat (16) g33.0<1>UW g57.0<16,16,1>UW g98.0<16,16,1>UW {align1};
-avg.sat (16) g34.0<1>UW g58.0<16,16,1>UW g34.0<16,16,1>UW {align1};
-avg.sat (16) g35.0<1>UW g59.0<16,16,1>UW g99.0<16,16,1>UW {align1};
-avg.sat (16) g36.0<1>UW g60.0<16,16,1>UW g36.0<16,16,1>UW {align1};
-avg.sat (16) g37.0<1>UW g61.0<16,16,1>UW g100.0<16,16,1>UW {align1};
-avg.sat (16) g38.0<1>UW g62.0<16,16,1>UW g38.0<16,16,1>UW {align1};
-avg.sat (16) g39.0<1>UW g63.0<16,16,1>UW g101.0<16,16,1>UW {align1};
-avg.sat (16) g40.0<1>UW g64.0<16,16,1>UW g40.0<16,16,1>UW {align1};
-avg.sat (16) g41.0<1>UW g65.0<16,16,1>UW g102.0<16,16,1>UW {align1};
-avg.sat (16) g42.0<1>UW g66.0<16,16,1>UW g42.0<16,16,1>UW {align1};
-avg.sat (16) g43.0<1>UW g67.0<16,16,1>UW g103.0<16,16,1>UW {align1};
-
-/*backward---UV---first vector */
-mov(1) g115.8<1>UD 0x007000fUD  { align1 };
-asr (2) g115.14<1>W g1.18<2,2,1>W 2W {align1};
-asr (2) g115.0<1>D g116.0<2,2,1>D 1D {align1};
-add (2) g115.0<1>D g115.0<2,2,1>D g115.14<2,2,1>W {align1};
-and (1) g115.4<1>UD g115.4<1,1,1>UD 0xFFFFFFFEUD {align1};
-and.nz (1) null g1.31<1,1,1>UB 0x2UW {align1};
-(f0) add (1) g115.4<1>UD g115.4<1,1,1>UD 1UD {align1};
-define(`surface_u',`8')
-define(`surface_v',`9')
-define(`mv1',`g1.18')
-define(`mv2',`g1.20')
-include(`motion_field_uv_igd.g4i')
-mov (8) g44.0<1>UW g78.0<8,8,1>UW {align1};
-mov (8) g45.0<1>UW g79.0<8,8,1>UW {align1};
-mov (8) g46.0<1>UW g80.0<8,8,1>UW {align1};
-mov (8) g47.0<1>UW g81.0<8,8,1>UW {align1};
-mov (8) g48.0<1>UW g82.0<8,8,1>UW {align1};
-mov (8) g49.0<1>UW g83.0<8,8,1>UW {align1};
-mov (8) g50.0<1>UW g84.0<8,8,1>UW {align1};
-mov (8) g51.0<1>UW g85.0<8,8,1>UW {align1};
-
-/*backward---UV---second vector */
-asr (2) g115.14<1>W g1.26<2,2,1>W 2W {align1};
-asr (2) g115.0<1>D g116.0<2,2,1>D 1D {align1};
-add (2) g115.0<1>D g115.0<2,2,1>D g115.14<2,2,1>W {align1};
-and (1) g115.4<1>UD g115.4<1,1,1>UD 0xFFFFFFFEUD {align1};
-and.nz (1) null g1.31<1,1,1>UB 0x8UW {align1};
-(f0) add (1) g115.4<1>UD g115.4<1,1,1>UD 1UD {align1};
-define(`mv1',`g1.26')
-define(`mv2',`g1.28')
-include(`motion_field_uv_igd.g4i')
-mov (8) g44.16<1>UW g78.0<8,8,1>UW {align1};
-mov (8) g45.16<1>UW g79.0<8,8,1>UW {align1};
-mov (8) g46.16<1>UW g80.0<8,8,1>UW {align1};
-mov (8) g47.16<1>UW g81.0<8,8,1>UW {align1};
-mov (8) g48.16<1>UW g82.0<8,8,1>UW {align1};
-mov (8) g49.16<1>UW g83.0<8,8,1>UW {align1};
-mov (8) g50.16<1>UW g84.0<8,8,1>UW {align1};
-mov (8) g51.16<1>UW g85.0<8,8,1>UW {align1};
-
-avg.sat (16) g44.0<1>UW g68.0<16,16,1>UW g44.0<16,16,1>UW {align1};
-avg.sat (16) g45.0<1>UW g69.0<16,16,1>UW g45.0<16,16,1>UW {align1};
-avg.sat (16) g46.0<1>UW g70.0<16,16,1>UW g46.0<16,16,1>UW {align1};
-avg.sat (16) g47.0<1>UW g71.0<16,16,1>UW g47.0<16,16,1>UW {align1};
-avg.sat (16) g48.0<1>UW g72.0<16,16,1>UW g48.0<16,16,1>UW {align1};
-avg.sat (16) g49.0<1>UW g73.0<16,16,1>UW g49.0<16,16,1>UW {align1};
-avg.sat (16) g50.0<1>UW g74.0<16,16,1>UW g50.0<16,16,1>UW {align1};
-avg.sat (16) g51.0<1>UW g75.0<16,16,1>UW g51.0<16,16,1>UW {align1};
-
-include(`addidct.g4i')
-
-//send (16) 0 acc0<1>UW g0<8,8,1>UW 
-//	thread_spawner(0, 0, 0) mlen 1 rlen 0 { align1 EOT};
diff --git a/src/xvmc/field_f_b_igd.g4b b/src/xvmc/field_f_b_igd.g4b
deleted file mode 100644
index 6477d06..0000000
--- a/src/xvmc/field_f_b_igd.g4b
+++ /dev/null
@@ -1,1142 +0,0 @@
-   { 0x00600001, 0x29800021, 0x008d0020, 0x00000000 },
-   { 0x02000005, 0x20000c3c, 0x00210040, 0x00000001 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000030 },
-   { 0x00000040, 0x20480c21, 0x00210988, 0x00000000 },
-   { 0x00800031, 0x20601c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x20801c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x20a01c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x20c01c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x20e01c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x21001c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x21201c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x21401c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x21601c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x21801c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x21a01c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x21c01c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x21e01c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x22001c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x22201c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x22401c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x22601c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x22801c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x22a01c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x22c01c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x22e01c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x23001c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x23201c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x23401c21, 0x00b10040, 0x04110203 },
-   { 0x02000005, 0x20002d3c, 0x0021098c, 0x00200020 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000008 },
-   { 0x00600001, 0x20600169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x20800169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x20a00169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x20c00169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x20e00169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x21000169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x21200169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x21400169, 0x00000000, 0x00000000 },
-   { 0x02000005, 0x20002d3c, 0x0021002c, 0x00100010 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000008 },
-   { 0x00600001, 0x20700169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x20900169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x20b00169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x20d00169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x20f00169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x21100169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x21300169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x21500169, 0x00000000, 0x00000000 },
-   { 0x02000005, 0x20002d3c, 0x0021002c, 0x00080008 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000008 },
-   { 0x00600001, 0x21600169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x21800169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x21a00169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x21c00169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x21e00169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x22000169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x22200169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x22400169, 0x00000000, 0x00000000 },
-   { 0x02000005, 0x20002d3c, 0x0021002c, 0x00040004 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000008 },
-   { 0x00600001, 0x21700169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x21900169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x21b00169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x21d00169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x21f00169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x22100169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x22300169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x22500169, 0x00000000, 0x00000000 },
-   { 0x02000005, 0x20002d3c, 0x0021002c, 0x00020002 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000004 },
-   { 0x00800001, 0x22600169, 0x00000000, 0x00000000 },
-   { 0x00800001, 0x22800169, 0x00000000, 0x00000000 },
-   { 0x00800001, 0x22a00169, 0x00000000, 0x00000000 },
-   { 0x00800001, 0x22c00169, 0x00000000, 0x00000000 },
-   { 0x02000005, 0x20002d3c, 0x0021002c, 0x00010001 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000004 },
-   { 0x00800001, 0x22e00169, 0x00000000, 0x00000000 },
-   { 0x00800001, 0x23000169, 0x00000000, 0x00000000 },
-   { 0x00800001, 0x23200169, 0x00000000, 0x00000000 },
-   { 0x00800001, 0x23400169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x2e600021, 0x008d0020, 0x00000000 },
-   { 0x00600001, 0x2e800021, 0x008d0020, 0x00000000 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0007001f },
-   { 0x0020000c, 0x2e6e3dad, 0x0045002e, 0x00010001 },
-   { 0x00200040, 0x2e6034a5, 0x00450e80, 0x00450e6e },
-   { 0x00000005, 0x2e640c21, 0x00210e64, 0xfffffffe },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
-   { 0x02000005, 0x20002e3c, 0x0021003f, 0x00010001 },
-   { 0x00010040, 0x2e641ca5, 0x00210e64, 0x00000001 },
-   { 0x01000005, 0x20002d3c, 0x0021002e, 0x00010001 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000045 },
-   { 0x01000005, 0x20002d3c, 0x00210030, 0x00010001 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x0000002f },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
-   { 0x00800031, 0x29c01d29, 0x008d0e60, 0x0411a004 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a001d29, 0x008d0e60, 0x0411a004 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a401d29, 0x008d0e60, 0x0411a004 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a801d29, 0x008d0e60, 0x0411a004 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0007001f },
-   { 0x00800031, 0x2ac01d29, 0x008d0e60, 0x0418a004 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
-   { 0x00800031, 0x2bc01d29, 0x008d0e60, 0x0411a004 },
-   { 0x00800040, 0x2c004629, 0x00b109c0, 0x00b10a00 },
-   { 0x00800040, 0x2c204629, 0x00b10a00, 0x00b10a40 },
-   { 0x00800040, 0x2c404629, 0x00b10a40, 0x00b10a80 },
-   { 0x00800040, 0x2c604629, 0x00b10a80, 0x00b10ac0 },
-   { 0x00800040, 0x2c804629, 0x00b10ac0, 0x00b10b00 },
-   { 0x00800040, 0x2ca04629, 0x00b10b00, 0x00b10b40 },
-   { 0x00800040, 0x2cc04629, 0x00b10b40, 0x00b10b80 },
-   { 0x00800040, 0x2ce04629, 0x00b10b80, 0x00b10bc0 },
-   { 0x00800040, 0x2c004529, 0x00b10c00, 0x00b109c1 },
-   { 0x00800040, 0x2c204529, 0x00b10c20, 0x00b10a01 },
-   { 0x00800040, 0x2c404529, 0x00b10c40, 0x00b10a41 },
-   { 0x00800040, 0x2c604529, 0x00b10c60, 0x00b10a81 },
-   { 0x00800040, 0x2c804529, 0x00b10c80, 0x00b10ac1 },
-   { 0x00800040, 0x2ca04529, 0x00b10ca0, 0x00b10b01 },
-   { 0x00800040, 0x2cc04529, 0x00b10cc0, 0x00b10b41 },
-   { 0x00800040, 0x2ce04529, 0x00b10ce0, 0x00b10b81 },
-   { 0x00800040, 0x2c004529, 0x00b10c00, 0x00b10a01 },
-   { 0x00800040, 0x2c204529, 0x00b10c20, 0x00b10a41 },
-   { 0x00800040, 0x2c404529, 0x00b10c40, 0x00b10a81 },
-   { 0x00800040, 0x2c604529, 0x00b10c60, 0x00b10ac1 },
-   { 0x00800040, 0x2c804529, 0x00b10c80, 0x00b10b01 },
-   { 0x00800040, 0x2ca04529, 0x00b10ca0, 0x00b10b41 },
-   { 0x00800040, 0x2cc04529, 0x00b10cc0, 0x00b10b81 },
-   { 0x00800040, 0x2ce04529, 0x00b10ce0, 0x00b10bc1 },
-   { 0x00800008, 0x2c002d29, 0x00b10c00, 0x00020002 },
-   { 0x00800008, 0x2c202d29, 0x00b10c20, 0x00020002 },
-   { 0x00800008, 0x2c402d29, 0x00b10c40, 0x00020002 },
-   { 0x00800008, 0x2c602d29, 0x00b10c60, 0x00020002 },
-   { 0x00800008, 0x2c802d29, 0x00b10c80, 0x00020002 },
-   { 0x00800008, 0x2ca02d29, 0x00b10ca0, 0x00020002 },
-   { 0x00800008, 0x2cc02d29, 0x00b10cc0, 0x00020002 },
-   { 0x00800008, 0x2ce02d29, 0x00b10ce0, 0x00020002 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000040 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
-   { 0x00800031, 0x29c01d29, 0x008d0e60, 0x0411a004 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a001d29, 0x008d0e60, 0x0411a004 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a401d29, 0x008d0e60, 0x0411a004 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a801d29, 0x008d0e60, 0x0411a004 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0007001f },
-   { 0x00800031, 0x2ac01d29, 0x008d0e60, 0x0418a004 },
-   { 0x80800042, 0x2c004629, 0x00b109c0, 0x00b109c1 },
-   { 0x80800042, 0x2c204629, 0x00b10a00, 0x00b10a01 },
-   { 0x80800042, 0x2c404629, 0x00b10a40, 0x00b10a41 },
-   { 0x80800042, 0x2c604629, 0x00b10a80, 0x00b10a81 },
-   { 0x80800042, 0x2c804629, 0x00b10ac0, 0x00b10ac1 },
-   { 0x80800042, 0x2ca04629, 0x00b10b00, 0x00b10b01 },
-   { 0x80800042, 0x2cc04629, 0x00b10b40, 0x00b10b41 },
-   { 0x80800042, 0x2ce04629, 0x00b10b80, 0x00b10b81 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x0000002c },
-   { 0x01000005, 0x20002d3c, 0x00210030, 0x00010001 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000017 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
-   { 0x00800031, 0x29c01d29, 0x008d0e60, 0x0411a004 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a001d29, 0x008d0e60, 0x0411a004 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a401d29, 0x008d0e60, 0x0411a004 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a801d29, 0x008d0e60, 0x0411a004 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0007001f },
-   { 0x00800031, 0x2ac01d29, 0x008d0e60, 0x0418a004 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
-   { 0x00800031, 0x2bc01d29, 0x008d0e60, 0x0411a004 },
-   { 0x80800042, 0x2c004629, 0x00b109c0, 0x00b10a00 },
-   { 0x80800042, 0x2c204629, 0x00b10a00, 0x00b10a40 },
-   { 0x80800042, 0x2c404629, 0x00b10a40, 0x00b10a80 },
-   { 0x80800042, 0x2c604629, 0x00b10a80, 0x00b10ac0 },
-   { 0x80800042, 0x2c804629, 0x00b10ac0, 0x00b10b00 },
-   { 0x80800042, 0x2ca04629, 0x00b10b00, 0x00b10b40 },
-   { 0x80800042, 0x2cc04629, 0x00b10b40, 0x00b10b80 },
-   { 0x80800042, 0x2ce04629, 0x00b10b80, 0x00b10bc0 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000013 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
-   { 0x00800031, 0x29c01d29, 0x008d0e60, 0x0411a004 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a001d29, 0x008d0e60, 0x0411a004 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a401d29, 0x008d0e60, 0x0411a004 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a801d29, 0x008d0e60, 0x0411a004 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0007001f },
-   { 0x00800031, 0x2ac01d29, 0x008d0e60, 0x0418a004 },
-   { 0x00800001, 0x2c000229, 0x00b109c0, 0x00000000 },
-   { 0x00800001, 0x2c200229, 0x00b10a00, 0x00000000 },
-   { 0x00800001, 0x2c400229, 0x00b10a40, 0x00000000 },
-   { 0x00800001, 0x2c600229, 0x00b10a80, 0x00000000 },
-   { 0x00800001, 0x2c800229, 0x00b10ac0, 0x00000000 },
-   { 0x00800001, 0x2ca00229, 0x00b10b00, 0x00000000 },
-   { 0x00800001, 0x2cc00229, 0x00b10b40, 0x00000000 },
-   { 0x00800001, 0x2ce00229, 0x00b10b80, 0x00000000 },
-   { 0x00600001, 0x26800021, 0x008d0c00, 0x00000000 },
-   { 0x00600001, 0x26c00021, 0x008d0c20, 0x00000000 },
-   { 0x00600001, 0x27000021, 0x008d0c40, 0x00000000 },
-   { 0x00600001, 0x27400021, 0x008d0c60, 0x00000000 },
-   { 0x00600001, 0x27800021, 0x008d0c80, 0x00000000 },
-   { 0x00600001, 0x27c00021, 0x008d0ca0, 0x00000000 },
-   { 0x00600001, 0x28000021, 0x008d0cc0, 0x00000000 },
-   { 0x00600001, 0x28400021, 0x008d0ce0, 0x00000000 },
-   { 0x0020000c, 0x2e6e3dad, 0x00450036, 0x00010001 },
-   { 0x00200040, 0x2e6034a5, 0x00450e80, 0x00450e6e },
-   { 0x00000005, 0x2e640c21, 0x00210e64, 0xfffffffe },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
-   { 0x02000005, 0x20000e3c, 0x0021003f, 0x00000004 },
-   { 0x00010040, 0x2e641ca5, 0x00210e64, 0x00000001 },
-   { 0x01000005, 0x20002d3c, 0x00210036, 0x00010001 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000045 },
-   { 0x01000005, 0x20002d3c, 0x00210038, 0x00010001 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x0000002f },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
-   { 0x00800031, 0x29c01d29, 0x008d0e60, 0x0411a004 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a001d29, 0x008d0e60, 0x0411a004 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a401d29, 0x008d0e60, 0x0411a004 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a801d29, 0x008d0e60, 0x0411a004 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0007001f },
-   { 0x00800031, 0x2ac01d29, 0x008d0e60, 0x0418a004 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
-   { 0x00800031, 0x2bc01d29, 0x008d0e60, 0x0411a004 },
-   { 0x00800040, 0x2c004629, 0x00b109c0, 0x00b10a00 },
-   { 0x00800040, 0x2c204629, 0x00b10a00, 0x00b10a40 },
-   { 0x00800040, 0x2c404629, 0x00b10a40, 0x00b10a80 },
-   { 0x00800040, 0x2c604629, 0x00b10a80, 0x00b10ac0 },
-   { 0x00800040, 0x2c804629, 0x00b10ac0, 0x00b10b00 },
-   { 0x00800040, 0x2ca04629, 0x00b10b00, 0x00b10b40 },
-   { 0x00800040, 0x2cc04629, 0x00b10b40, 0x00b10b80 },
-   { 0x00800040, 0x2ce04629, 0x00b10b80, 0x00b10bc0 },
-   { 0x00800040, 0x2c004529, 0x00b10c00, 0x00b109c1 },
-   { 0x00800040, 0x2c204529, 0x00b10c20, 0x00b10a01 },
-   { 0x00800040, 0x2c404529, 0x00b10c40, 0x00b10a41 },
-   { 0x00800040, 0x2c604529, 0x00b10c60, 0x00b10a81 },
-   { 0x00800040, 0x2c804529, 0x00b10c80, 0x00b10ac1 },
-   { 0x00800040, 0x2ca04529, 0x00b10ca0, 0x00b10b01 },
-   { 0x00800040, 0x2cc04529, 0x00b10cc0, 0x00b10b41 },
-   { 0x00800040, 0x2ce04529, 0x00b10ce0, 0x00b10b81 },
-   { 0x00800040, 0x2c004529, 0x00b10c00, 0x00b10a01 },
-   { 0x00800040, 0x2c204529, 0x00b10c20, 0x00b10a41 },
-   { 0x00800040, 0x2c404529, 0x00b10c40, 0x00b10a81 },
-   { 0x00800040, 0x2c604529, 0x00b10c60, 0x00b10ac1 },
-   { 0x00800040, 0x2c804529, 0x00b10c80, 0x00b10b01 },
-   { 0x00800040, 0x2ca04529, 0x00b10ca0, 0x00b10b41 },
-   { 0x00800040, 0x2cc04529, 0x00b10cc0, 0x00b10b81 },
-   { 0x00800040, 0x2ce04529, 0x00b10ce0, 0x00b10bc1 },
-   { 0x00800008, 0x2c002d29, 0x00b10c00, 0x00020002 },
-   { 0x00800008, 0x2c202d29, 0x00b10c20, 0x00020002 },
-   { 0x00800008, 0x2c402d29, 0x00b10c40, 0x00020002 },
-   { 0x00800008, 0x2c602d29, 0x00b10c60, 0x00020002 },
-   { 0x00800008, 0x2c802d29, 0x00b10c80, 0x00020002 },
-   { 0x00800008, 0x2ca02d29, 0x00b10ca0, 0x00020002 },
-   { 0x00800008, 0x2cc02d29, 0x00b10cc0, 0x00020002 },
-   { 0x00800008, 0x2ce02d29, 0x00b10ce0, 0x00020002 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000040 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
-   { 0x00800031, 0x29c01d29, 0x008d0e60, 0x0411a004 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a001d29, 0x008d0e60, 0x0411a004 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a401d29, 0x008d0e60, 0x0411a004 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a801d29, 0x008d0e60, 0x0411a004 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0007001f },
-   { 0x00800031, 0x2ac01d29, 0x008d0e60, 0x0418a004 },
-   { 0x80800042, 0x2c004629, 0x00b109c0, 0x00b109c1 },
-   { 0x80800042, 0x2c204629, 0x00b10a00, 0x00b10a01 },
-   { 0x80800042, 0x2c404629, 0x00b10a40, 0x00b10a41 },
-   { 0x80800042, 0x2c604629, 0x00b10a80, 0x00b10a81 },
-   { 0x80800042, 0x2c804629, 0x00b10ac0, 0x00b10ac1 },
-   { 0x80800042, 0x2ca04629, 0x00b10b00, 0x00b10b01 },
-   { 0x80800042, 0x2cc04629, 0x00b10b40, 0x00b10b41 },
-   { 0x80800042, 0x2ce04629, 0x00b10b80, 0x00b10b81 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x0000002c },
-   { 0x01000005, 0x20002d3c, 0x00210038, 0x00010001 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000017 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
-   { 0x00800031, 0x29c01d29, 0x008d0e60, 0x0411a004 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a001d29, 0x008d0e60, 0x0411a004 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a401d29, 0x008d0e60, 0x0411a004 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a801d29, 0x008d0e60, 0x0411a004 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0007001f },
-   { 0x00800031, 0x2ac01d29, 0x008d0e60, 0x0418a004 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
-   { 0x00800031, 0x2bc01d29, 0x008d0e60, 0x0411a004 },
-   { 0x80800042, 0x2c004629, 0x00b109c0, 0x00b10a00 },
-   { 0x80800042, 0x2c204629, 0x00b10a00, 0x00b10a40 },
-   { 0x80800042, 0x2c404629, 0x00b10a40, 0x00b10a80 },
-   { 0x80800042, 0x2c604629, 0x00b10a80, 0x00b10ac0 },
-   { 0x80800042, 0x2c804629, 0x00b10ac0, 0x00b10b00 },
-   { 0x80800042, 0x2ca04629, 0x00b10b00, 0x00b10b40 },
-   { 0x80800042, 0x2cc04629, 0x00b10b40, 0x00b10b80 },
-   { 0x80800042, 0x2ce04629, 0x00b10b80, 0x00b10bc0 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000013 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
-   { 0x00800031, 0x29c01d29, 0x008d0e60, 0x0411a004 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a001d29, 0x008d0e60, 0x0411a004 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a401d29, 0x008d0e60, 0x0411a004 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a801d29, 0x008d0e60, 0x0411a004 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0007001f },
-   { 0x00800031, 0x2ac01d29, 0x008d0e60, 0x0418a004 },
-   { 0x00800001, 0x2c000229, 0x00b109c0, 0x00000000 },
-   { 0x00800001, 0x2c200229, 0x00b10a00, 0x00000000 },
-   { 0x00800001, 0x2c400229, 0x00b10a40, 0x00000000 },
-   { 0x00800001, 0x2c600229, 0x00b10a80, 0x00000000 },
-   { 0x00800001, 0x2c800229, 0x00b10ac0, 0x00000000 },
-   { 0x00800001, 0x2ca00229, 0x00b10b00, 0x00000000 },
-   { 0x00800001, 0x2cc00229, 0x00b10b40, 0x00000000 },
-   { 0x00800001, 0x2ce00229, 0x00b10b80, 0x00000000 },
-   { 0x00600001, 0x26a00021, 0x008d0c00, 0x00000000 },
-   { 0x00600001, 0x26e00021, 0x008d0c20, 0x00000000 },
-   { 0x00600001, 0x27200021, 0x008d0c40, 0x00000000 },
-   { 0x00600001, 0x27600021, 0x008d0c60, 0x00000000 },
-   { 0x00600001, 0x27a00021, 0x008d0c80, 0x00000000 },
-   { 0x00600001, 0x27e00021, 0x008d0ca0, 0x00000000 },
-   { 0x00600001, 0x28200021, 0x008d0cc0, 0x00000000 },
-   { 0x00600001, 0x28600021, 0x008d0ce0, 0x00000000 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0007000f },
-   { 0x0020000c, 0x2e6e3dad, 0x0045002e, 0x00020002 },
-   { 0x0020000c, 0x2e601ca5, 0x00450e80, 0x00000001 },
-   { 0x00200040, 0x2e6034a5, 0x00450e60, 0x00450e6e },
-   { 0x00000005, 0x2e640c21, 0x00210e64, 0xfffffffe },
-   { 0x02000005, 0x20002e3c, 0x0021003f, 0x00010001 },
-   { 0x00010040, 0x2e640c21, 0x00210e64, 0x00000001 },
-   { 0x01000005, 0x20002d3c, 0x0021002e, 0x00020002 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000036 },
-   { 0x01000005, 0x20002d3c, 0x00210030, 0x00020002 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000028 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0007000f },
-   { 0x00800031, 0x2ac01d29, 0x00ad0e60, 0x0414a005 },
-   { 0x00800031, 0x2b601d29, 0x00ad0e60, 0x0414a006 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0001000f },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 },
-   { 0x00800031, 0x2b401d29, 0x00ad0e60, 0x0411a005 },
-   { 0x00800031, 0x2be01d29, 0x00ad0e60, 0x0411a006 },
-   { 0x00800040, 0x29c04629, 0x00ad0ac0, 0x00ad0ae0 },
-   { 0x00800040, 0x29e04629, 0x00ad0ae0, 0x00ad0b00 },
-   { 0x00800040, 0x2a004629, 0x00ad0b00, 0x00ad0b20 },
-   { 0x00800040, 0x2a204629, 0x00ad0b20, 0x00ad0b40 },
-   { 0x00800040, 0x29c04529, 0x00ad09c0, 0x00ad0ac1 },
-   { 0x00800040, 0x29e04529, 0x00ad09e0, 0x00ad0ae1 },
-   { 0x00800040, 0x2a004529, 0x00ad0a00, 0x00ad0b01 },
-   { 0x00800040, 0x2a204529, 0x00ad0a20, 0x00ad0b21 },
-   { 0x00800040, 0x29c04529, 0x00ad09c0, 0x00ad0ae1 },
-   { 0x00800040, 0x29e04529, 0x00ad09e0, 0x00ad0b01 },
-   { 0x00800040, 0x2a004529, 0x00ad0a00, 0x00ad0b21 },
-   { 0x00800040, 0x2a204529, 0x00ad0a20, 0x00ad0b41 },
-   { 0x00800040, 0x2a404629, 0x00ad0b60, 0x00ad0b80 },
-   { 0x00800040, 0x2a604629, 0x00ad0b80, 0x00ad0ba0 },
-   { 0x00800040, 0x2a804629, 0x00ad0ba0, 0x00ad0bc0 },
-   { 0x00800040, 0x2aa04629, 0x00ad0bc0, 0x00ad0be0 },
-   { 0x00800040, 0x2a404529, 0x00ad0a40, 0x00ad0b61 },
-   { 0x00800040, 0x2a604529, 0x00ad0a60, 0x00ad0b81 },
-   { 0x00800040, 0x2a804529, 0x00ad0a80, 0x00ad0ba1 },
-   { 0x00800040, 0x2aa04529, 0x00ad0aa0, 0x00ad0bc1 },
-   { 0x00800040, 0x2a404529, 0x00ad0a40, 0x00ad0b81 },
-   { 0x00800040, 0x2a604529, 0x00ad0a60, 0x00ad0ba1 },
-   { 0x00800040, 0x2a804529, 0x00ad0a80, 0x00ad0bc1 },
-   { 0x00800040, 0x2aa04529, 0x00ad0aa0, 0x00ad0be1 },
-   { 0x80800008, 0x29c02d29, 0x00b109c0, 0x00020002 },
-   { 0x80800008, 0x29e02d29, 0x00b109e0, 0x00020002 },
-   { 0x80800008, 0x2a002d29, 0x00b10a00, 0x00020002 },
-   { 0x80800008, 0x2a202d29, 0x00b10a20, 0x00020002 },
-   { 0x80800008, 0x2a402d29, 0x00b10a40, 0x00020002 },
-   { 0x80800008, 0x2a602d29, 0x00b10a60, 0x00020002 },
-   { 0x80800008, 0x2a802d29, 0x00b10a80, 0x00020002 },
-   { 0x80800008, 0x2aa02d29, 0x00b10aa0, 0x00020002 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000028 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0007000f },
-   { 0x00800031, 0x2ac01d29, 0x00ad0e60, 0x0414a005 },
-   { 0x00800031, 0x2b601d29, 0x00ad0e60, 0x0414a006 },
-   { 0x80800042, 0x29c04629, 0x00ad0ac0, 0x00ad0ac1 },
-   { 0x80800042, 0x29e04629, 0x00ad0ae0, 0x00ad0ae1 },
-   { 0x80800042, 0x2a004629, 0x00ad0b00, 0x00ad0b01 },
-   { 0x80800042, 0x2a204629, 0x00ad0b20, 0x00ad0b21 },
-   { 0x80800042, 0x2a404629, 0x00ad0b60, 0x00ad0b61 },
-   { 0x80800042, 0x2a604629, 0x00ad0b80, 0x00ad0b81 },
-   { 0x80800042, 0x2a804629, 0x00ad0ba0, 0x00ad0ba1 },
-   { 0x80800042, 0x2aa04629, 0x00ad0bc0, 0x00ad0bc1 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x0000001c },
-   { 0x01000005, 0x20002d3c, 0x00210030, 0x00020002 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x0000000f },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0007000f },
-   { 0x00800031, 0x2ac01d29, 0x00ad0e60, 0x0414a005 },
-   { 0x00800031, 0x2b601d29, 0x00ad0e60, 0x0414a006 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0000000f },
-   { 0x00800031, 0x2b401d29, 0x00ad0e60, 0x0411a005 },
-   { 0x00800031, 0x2be01d29, 0x00ad0e60, 0x0411a006 },
-   { 0x80800042, 0x29c04629, 0x00ad0ac0, 0x00ad0ae0 },
-   { 0x80800042, 0x29e04629, 0x00ad0ae0, 0x00ad0b00 },
-   { 0x80800042, 0x2a004629, 0x00ad0b00, 0x00ad0b20 },
-   { 0x80800042, 0x2a204629, 0x00ad0b20, 0x00ad0b40 },
-   { 0x80800042, 0x2a404629, 0x00ad0b60, 0x00ad0b80 },
-   { 0x80800042, 0x2a604629, 0x00ad0b80, 0x00ad0ba0 },
-   { 0x80800042, 0x2a804629, 0x00ad0ba0, 0x00ad0bc0 },
-   { 0x80800042, 0x2aa04629, 0x00ad0bc0, 0x00ad0be0 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x0000000b },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0007000f },
-   { 0x00800031, 0x2ac01d29, 0x00ad0e60, 0x0414a005 },
-   { 0x00800031, 0x2b601d29, 0x00ad0e60, 0x0414a006 },
-   { 0x00800001, 0x29c00229, 0x00ad0ac0, 0x00000000 },
-   { 0x00800001, 0x29e00229, 0x00ad0ae0, 0x00000000 },
-   { 0x00800001, 0x2a000229, 0x00ad0b00, 0x00000000 },
-   { 0x00800001, 0x2a200229, 0x00ad0b20, 0x00000000 },
-   { 0x00800001, 0x2a400229, 0x00ad0b60, 0x00000000 },
-   { 0x00800001, 0x2a600229, 0x00ad0b80, 0x00000000 },
-   { 0x00800001, 0x2a800229, 0x00ad0ba0, 0x00000000 },
-   { 0x00800001, 0x2aa00229, 0x00ad0bc0, 0x00000000 },
-   { 0x00600001, 0x28800129, 0x008d09c0, 0x00000000 },
-   { 0x00600001, 0x28a00129, 0x008d09e0, 0x00000000 },
-   { 0x00600001, 0x28c00129, 0x008d0a00, 0x00000000 },
-   { 0x00600001, 0x28e00129, 0x008d0a20, 0x00000000 },
-   { 0x00600001, 0x29000129, 0x008d0a40, 0x00000000 },
-   { 0x00600001, 0x29200129, 0x008d0a60, 0x00000000 },
-   { 0x00600001, 0x29400129, 0x008d0a80, 0x00000000 },
-   { 0x00600001, 0x29600129, 0x008d0aa0, 0x00000000 },
-   { 0x0020000c, 0x2e6e3dad, 0x00450036, 0x00020002 },
-   { 0x0020000c, 0x2e601ca5, 0x00450e80, 0x00000001 },
-   { 0x00200040, 0x2e6034a5, 0x00450e60, 0x00450e6e },
-   { 0x00000005, 0x2e640c21, 0x00210e64, 0xfffffffe },
-   { 0x02000005, 0x20002e3c, 0x0021003f, 0x00040004 },
-   { 0x00010040, 0x2e640c21, 0x00210e64, 0x00000001 },
-   { 0x01000005, 0x20002d3c, 0x00210038, 0x00020002 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000036 },
-   { 0x01000005, 0x20002d3c, 0x0021003a, 0x00020002 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000028 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0007000f },
-   { 0x00800031, 0x2ac01d29, 0x00ad0e60, 0x0414a005 },
-   { 0x00800031, 0x2b601d29, 0x00ad0e60, 0x0414a006 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0001000f },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 },
-   { 0x00800031, 0x2b401d29, 0x00ad0e60, 0x0411a005 },
-   { 0x00800031, 0x2be01d29, 0x00ad0e60, 0x0411a006 },
-   { 0x00800040, 0x29c04629, 0x00ad0ac0, 0x00ad0ae0 },
-   { 0x00800040, 0x29e04629, 0x00ad0ae0, 0x00ad0b00 },
-   { 0x00800040, 0x2a004629, 0x00ad0b00, 0x00ad0b20 },
-   { 0x00800040, 0x2a204629, 0x00ad0b20, 0x00ad0b40 },
-   { 0x00800040, 0x29c04529, 0x00ad09c0, 0x00ad0ac1 },
-   { 0x00800040, 0x29e04529, 0x00ad09e0, 0x00ad0ae1 },
-   { 0x00800040, 0x2a004529, 0x00ad0a00, 0x00ad0b01 },
-   { 0x00800040, 0x2a204529, 0x00ad0a20, 0x00ad0b21 },
-   { 0x00800040, 0x29c04529, 0x00ad09c0, 0x00ad0ae1 },
-   { 0x00800040, 0x29e04529, 0x00ad09e0, 0x00ad0b01 },
-   { 0x00800040, 0x2a004529, 0x00ad0a00, 0x00ad0b21 },
-   { 0x00800040, 0x2a204529, 0x00ad0a20, 0x00ad0b41 },
-   { 0x00800040, 0x2a404629, 0x00ad0b60, 0x00ad0b80 },
-   { 0x00800040, 0x2a604629, 0x00ad0b80, 0x00ad0ba0 },
-   { 0x00800040, 0x2a804629, 0x00ad0ba0, 0x00ad0bc0 },
-   { 0x00800040, 0x2aa04629, 0x00ad0bc0, 0x00ad0be0 },
-   { 0x00800040, 0x2a404529, 0x00ad0a40, 0x00ad0b61 },
-   { 0x00800040, 0x2a604529, 0x00ad0a60, 0x00ad0b81 },
-   { 0x00800040, 0x2a804529, 0x00ad0a80, 0x00ad0ba1 },
-   { 0x00800040, 0x2aa04529, 0x00ad0aa0, 0x00ad0bc1 },
-   { 0x00800040, 0x2a404529, 0x00ad0a40, 0x00ad0b81 },
-   { 0x00800040, 0x2a604529, 0x00ad0a60, 0x00ad0ba1 },
-   { 0x00800040, 0x2a804529, 0x00ad0a80, 0x00ad0bc1 },
-   { 0x00800040, 0x2aa04529, 0x00ad0aa0, 0x00ad0be1 },
-   { 0x80800008, 0x29c02d29, 0x00b109c0, 0x00020002 },
-   { 0x80800008, 0x29e02d29, 0x00b109e0, 0x00020002 },
-   { 0x80800008, 0x2a002d29, 0x00b10a00, 0x00020002 },
-   { 0x80800008, 0x2a202d29, 0x00b10a20, 0x00020002 },
-   { 0x80800008, 0x2a402d29, 0x00b10a40, 0x00020002 },
-   { 0x80800008, 0x2a602d29, 0x00b10a60, 0x00020002 },
-   { 0x80800008, 0x2a802d29, 0x00b10a80, 0x00020002 },
-   { 0x80800008, 0x2aa02d29, 0x00b10aa0, 0x00020002 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000028 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0007000f },
-   { 0x00800031, 0x2ac01d29, 0x00ad0e60, 0x0414a005 },
-   { 0x00800031, 0x2b601d29, 0x00ad0e60, 0x0414a006 },
-   { 0x80800042, 0x29c04629, 0x00ad0ac0, 0x00ad0ac1 },
-   { 0x80800042, 0x29e04629, 0x00ad0ae0, 0x00ad0ae1 },
-   { 0x80800042, 0x2a004629, 0x00ad0b00, 0x00ad0b01 },
-   { 0x80800042, 0x2a204629, 0x00ad0b20, 0x00ad0b21 },
-   { 0x80800042, 0x2a404629, 0x00ad0b60, 0x00ad0b61 },
-   { 0x80800042, 0x2a604629, 0x00ad0b80, 0x00ad0b81 },
-   { 0x80800042, 0x2a804629, 0x00ad0ba0, 0x00ad0ba1 },
-   { 0x80800042, 0x2aa04629, 0x00ad0bc0, 0x00ad0bc1 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x0000001c },
-   { 0x01000005, 0x20002d3c, 0x0021003a, 0x00020002 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x0000000f },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0007000f },
-   { 0x00800031, 0x2ac01d29, 0x00ad0e60, 0x0414a005 },
-   { 0x00800031, 0x2b601d29, 0x00ad0e60, 0x0414a006 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0000000f },
-   { 0x00800031, 0x2b401d29, 0x00ad0e60, 0x0411a005 },
-   { 0x00800031, 0x2be01d29, 0x00ad0e60, 0x0411a006 },
-   { 0x80800042, 0x29c04629, 0x00ad0ac0, 0x00ad0ae0 },
-   { 0x80800042, 0x29e04629, 0x00ad0ae0, 0x00ad0b00 },
-   { 0x80800042, 0x2a004629, 0x00ad0b00, 0x00ad0b20 },
-   { 0x80800042, 0x2a204629, 0x00ad0b20, 0x00ad0b40 },
-   { 0x80800042, 0x2a404629, 0x00ad0b60, 0x00ad0b80 },
-   { 0x80800042, 0x2a604629, 0x00ad0b80, 0x00ad0ba0 },
-   { 0x80800042, 0x2a804629, 0x00ad0ba0, 0x00ad0bc0 },
-   { 0x80800042, 0x2aa04629, 0x00ad0bc0, 0x00ad0be0 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x0000000b },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0007000f },
-   { 0x00800031, 0x2ac01d29, 0x00ad0e60, 0x0414a005 },
-   { 0x00800031, 0x2b601d29, 0x00ad0e60, 0x0414a006 },
-   { 0x00800001, 0x29c00229, 0x00ad0ac0, 0x00000000 },
-   { 0x00800001, 0x29e00229, 0x00ad0ae0, 0x00000000 },
-   { 0x00800001, 0x2a000229, 0x00ad0b00, 0x00000000 },
-   { 0x00800001, 0x2a200229, 0x00ad0b20, 0x00000000 },
-   { 0x00800001, 0x2a400229, 0x00ad0b60, 0x00000000 },
-   { 0x00800001, 0x2a600229, 0x00ad0b80, 0x00000000 },
-   { 0x00800001, 0x2a800229, 0x00ad0ba0, 0x00000000 },
-   { 0x00800001, 0x2aa00229, 0x00ad0bc0, 0x00000000 },
-   { 0x00600001, 0x28900129, 0x008d09c0, 0x00000000 },
-   { 0x00600001, 0x28b00129, 0x008d09e0, 0x00000000 },
-   { 0x00600001, 0x28d00129, 0x008d0a00, 0x00000000 },
-   { 0x00600001, 0x28f00129, 0x008d0a20, 0x00000000 },
-   { 0x00600001, 0x29100129, 0x008d0a40, 0x00000000 },
-   { 0x00600001, 0x29300129, 0x008d0a60, 0x00000000 },
-   { 0x00600001, 0x29500129, 0x008d0a80, 0x00000000 },
-   { 0x00600001, 0x29700129, 0x008d0aa0, 0x00000000 },
-   { 0x00600001, 0x20200021, 0x008d0e80, 0x00000000 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0007001f },
-   { 0x00000001, 0x20280061, 0x00000000, 0x0007000f },
-   { 0x0020000c, 0x2e6e3dad, 0x00450032, 0x00010001 },
-   { 0x00200040, 0x2e6034a5, 0x00450e80, 0x00450e6e },
-   { 0x00000005, 0x2e640c21, 0x00210e64, 0xfffffffe },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
-   { 0x02000005, 0x20002e3c, 0x0021003f, 0x00020002 },
-   { 0x00010040, 0x2e641ca5, 0x00210e64, 0x00000001 },
-   { 0x01000005, 0x20002d3c, 0x00210032, 0x00010001 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000045 },
-   { 0x01000005, 0x20002d3c, 0x00210034, 0x00010001 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x0000002f },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
-   { 0x00800031, 0x29c01d29, 0x008d0e60, 0x0411a007 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a001d29, 0x008d0e60, 0x0411a007 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a401d29, 0x008d0e60, 0x0411a007 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a801d29, 0x008d0e60, 0x0411a007 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0007001f },
-   { 0x00800031, 0x2ac01d29, 0x008d0e60, 0x0418a007 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
-   { 0x00800031, 0x2bc01d29, 0x008d0e60, 0x0411a007 },
-   { 0x00800040, 0x2c004629, 0x00b109c0, 0x00b10a00 },
-   { 0x00800040, 0x2c204629, 0x00b10a00, 0x00b10a40 },
-   { 0x00800040, 0x2c404629, 0x00b10a40, 0x00b10a80 },
-   { 0x00800040, 0x2c604629, 0x00b10a80, 0x00b10ac0 },
-   { 0x00800040, 0x2c804629, 0x00b10ac0, 0x00b10b00 },
-   { 0x00800040, 0x2ca04629, 0x00b10b00, 0x00b10b40 },
-   { 0x00800040, 0x2cc04629, 0x00b10b40, 0x00b10b80 },
-   { 0x00800040, 0x2ce04629, 0x00b10b80, 0x00b10bc0 },
-   { 0x00800040, 0x2c004529, 0x00b10c00, 0x00b109c1 },
-   { 0x00800040, 0x2c204529, 0x00b10c20, 0x00b10a01 },
-   { 0x00800040, 0x2c404529, 0x00b10c40, 0x00b10a41 },
-   { 0x00800040, 0x2c604529, 0x00b10c60, 0x00b10a81 },
-   { 0x00800040, 0x2c804529, 0x00b10c80, 0x00b10ac1 },
-   { 0x00800040, 0x2ca04529, 0x00b10ca0, 0x00b10b01 },
-   { 0x00800040, 0x2cc04529, 0x00b10cc0, 0x00b10b41 },
-   { 0x00800040, 0x2ce04529, 0x00b10ce0, 0x00b10b81 },
-   { 0x00800040, 0x2c004529, 0x00b10c00, 0x00b10a01 },
-   { 0x00800040, 0x2c204529, 0x00b10c20, 0x00b10a41 },
-   { 0x00800040, 0x2c404529, 0x00b10c40, 0x00b10a81 },
-   { 0x00800040, 0x2c604529, 0x00b10c60, 0x00b10ac1 },
-   { 0x00800040, 0x2c804529, 0x00b10c80, 0x00b10b01 },
-   { 0x00800040, 0x2ca04529, 0x00b10ca0, 0x00b10b41 },
-   { 0x00800040, 0x2cc04529, 0x00b10cc0, 0x00b10b81 },
-   { 0x00800040, 0x2ce04529, 0x00b10ce0, 0x00b10bc1 },
-   { 0x00800008, 0x2c002d29, 0x00b10c00, 0x00020002 },
-   { 0x00800008, 0x2c202d29, 0x00b10c20, 0x00020002 },
-   { 0x00800008, 0x2c402d29, 0x00b10c40, 0x00020002 },
-   { 0x00800008, 0x2c602d29, 0x00b10c60, 0x00020002 },
-   { 0x00800008, 0x2c802d29, 0x00b10c80, 0x00020002 },
-   { 0x00800008, 0x2ca02d29, 0x00b10ca0, 0x00020002 },
-   { 0x00800008, 0x2cc02d29, 0x00b10cc0, 0x00020002 },
-   { 0x00800008, 0x2ce02d29, 0x00b10ce0, 0x00020002 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000040 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
-   { 0x00800031, 0x29c01d29, 0x008d0e60, 0x0411a007 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a001d29, 0x008d0e60, 0x0411a007 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a401d29, 0x008d0e60, 0x0411a007 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a801d29, 0x008d0e60, 0x0411a007 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0007001f },
-   { 0x00800031, 0x2ac01d29, 0x008d0e60, 0x0418a007 },
-   { 0x80800042, 0x2c004629, 0x00b109c0, 0x00b109c1 },
-   { 0x80800042, 0x2c204629, 0x00b10a00, 0x00b10a01 },
-   { 0x80800042, 0x2c404629, 0x00b10a40, 0x00b10a41 },
-   { 0x80800042, 0x2c604629, 0x00b10a80, 0x00b10a81 },
-   { 0x80800042, 0x2c804629, 0x00b10ac0, 0x00b10ac1 },
-   { 0x80800042, 0x2ca04629, 0x00b10b00, 0x00b10b01 },
-   { 0x80800042, 0x2cc04629, 0x00b10b40, 0x00b10b41 },
-   { 0x80800042, 0x2ce04629, 0x00b10b80, 0x00b10b81 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x0000002c },
-   { 0x01000005, 0x20002d3c, 0x00210034, 0x00010001 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000017 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
-   { 0x00800031, 0x29c01d29, 0x008d0e60, 0x0411a007 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a001d29, 0x008d0e60, 0x0411a007 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a401d29, 0x008d0e60, 0x0411a007 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a801d29, 0x008d0e60, 0x0411a007 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0007001f },
-   { 0x00800031, 0x2ac01d29, 0x008d0e60, 0x0418a007 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
-   { 0x00800031, 0x2bc01d29, 0x008d0e60, 0x0411a007 },
-   { 0x80800042, 0x2c004629, 0x00b109c0, 0x00b10a00 },
-   { 0x80800042, 0x2c204629, 0x00b10a00, 0x00b10a40 },
-   { 0x80800042, 0x2c404629, 0x00b10a40, 0x00b10a80 },
-   { 0x80800042, 0x2c604629, 0x00b10a80, 0x00b10ac0 },
-   { 0x80800042, 0x2c804629, 0x00b10ac0, 0x00b10b00 },
-   { 0x80800042, 0x2ca04629, 0x00b10b00, 0x00b10b40 },
-   { 0x80800042, 0x2cc04629, 0x00b10b40, 0x00b10b80 },
-   { 0x80800042, 0x2ce04629, 0x00b10b80, 0x00b10bc0 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000013 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
-   { 0x00800031, 0x29c01d29, 0x008d0e60, 0x0411a007 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a001d29, 0x008d0e60, 0x0411a007 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a401d29, 0x008d0e60, 0x0411a007 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a801d29, 0x008d0e60, 0x0411a007 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0007001f },
-   { 0x00800031, 0x2ac01d29, 0x008d0e60, 0x0418a007 },
-   { 0x00800001, 0x2c000229, 0x00b109c0, 0x00000000 },
-   { 0x00800001, 0x2c200229, 0x00b10a00, 0x00000000 },
-   { 0x00800001, 0x2c400229, 0x00b10a40, 0x00000000 },
-   { 0x00800001, 0x2c600229, 0x00b10a80, 0x00000000 },
-   { 0x00800001, 0x2c800229, 0x00b10ac0, 0x00000000 },
-   { 0x00800001, 0x2ca00229, 0x00b10b00, 0x00000000 },
-   { 0x00800001, 0x2cc00229, 0x00b10b40, 0x00000000 },
-   { 0x00800001, 0x2ce00229, 0x00b10b80, 0x00000000 },
-   { 0x00600001, 0x23800021, 0x008d0c00, 0x00000000 },
-   { 0x00600001, 0x23c00021, 0x008d0c20, 0x00000000 },
-   { 0x00600001, 0x24000021, 0x008d0c40, 0x00000000 },
-   { 0x00600001, 0x24400021, 0x008d0c60, 0x00000000 },
-   { 0x00600001, 0x24800021, 0x008d0c80, 0x00000000 },
-   { 0x00600001, 0x24c00021, 0x008d0ca0, 0x00000000 },
-   { 0x00600001, 0x25000021, 0x008d0cc0, 0x00000000 },
-   { 0x00600001, 0x25400021, 0x008d0ce0, 0x00000000 },
-   { 0x0020000c, 0x2e6e3dad, 0x0045003a, 0x00010001 },
-   { 0x00200040, 0x2e6034a5, 0x00450e80, 0x00450e6e },
-   { 0x00000005, 0x2e640c21, 0x00210e64, 0xfffffffe },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
-   { 0x02000005, 0x20000c3c, 0x00210054, 0x00000008 },
-   { 0x00010040, 0x2e641ca5, 0x00210e64, 0x00000001 },
-   { 0x01000005, 0x20002d3c, 0x0021003a, 0x00010001 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000045 },
-   { 0x01000005, 0x20002d3c, 0x0021003c, 0x00010001 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x0000002f },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
-   { 0x00800031, 0x29c01d29, 0x008d0e60, 0x0411a007 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a001d29, 0x008d0e60, 0x0411a007 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a401d29, 0x008d0e60, 0x0411a007 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a801d29, 0x008d0e60, 0x0411a007 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0007001f },
-   { 0x00800031, 0x2ac01d29, 0x008d0e60, 0x0418a007 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
-   { 0x00800031, 0x2bc01d29, 0x008d0e60, 0x0411a007 },
-   { 0x00800040, 0x2c004629, 0x00b109c0, 0x00b10a00 },
-   { 0x00800040, 0x2c204629, 0x00b10a00, 0x00b10a40 },
-   { 0x00800040, 0x2c404629, 0x00b10a40, 0x00b10a80 },
-   { 0x00800040, 0x2c604629, 0x00b10a80, 0x00b10ac0 },
-   { 0x00800040, 0x2c804629, 0x00b10ac0, 0x00b10b00 },
-   { 0x00800040, 0x2ca04629, 0x00b10b00, 0x00b10b40 },
-   { 0x00800040, 0x2cc04629, 0x00b10b40, 0x00b10b80 },
-   { 0x00800040, 0x2ce04629, 0x00b10b80, 0x00b10bc0 },
-   { 0x00800040, 0x2c004529, 0x00b10c00, 0x00b109c1 },
-   { 0x00800040, 0x2c204529, 0x00b10c20, 0x00b10a01 },
-   { 0x00800040, 0x2c404529, 0x00b10c40, 0x00b10a41 },
-   { 0x00800040, 0x2c604529, 0x00b10c60, 0x00b10a81 },
-   { 0x00800040, 0x2c804529, 0x00b10c80, 0x00b10ac1 },
-   { 0x00800040, 0x2ca04529, 0x00b10ca0, 0x00b10b01 },
-   { 0x00800040, 0x2cc04529, 0x00b10cc0, 0x00b10b41 },
-   { 0x00800040, 0x2ce04529, 0x00b10ce0, 0x00b10b81 },
-   { 0x00800040, 0x2c004529, 0x00b10c00, 0x00b10a01 },
-   { 0x00800040, 0x2c204529, 0x00b10c20, 0x00b10a41 },
-   { 0x00800040, 0x2c404529, 0x00b10c40, 0x00b10a81 },
-   { 0x00800040, 0x2c604529, 0x00b10c60, 0x00b10ac1 },
-   { 0x00800040, 0x2c804529, 0x00b10c80, 0x00b10b01 },
-   { 0x00800040, 0x2ca04529, 0x00b10ca0, 0x00b10b41 },
-   { 0x00800040, 0x2cc04529, 0x00b10cc0, 0x00b10b81 },
-   { 0x00800040, 0x2ce04529, 0x00b10ce0, 0x00b10bc1 },
-   { 0x00800008, 0x2c002d29, 0x00b10c00, 0x00020002 },
-   { 0x00800008, 0x2c202d29, 0x00b10c20, 0x00020002 },
-   { 0x00800008, 0x2c402d29, 0x00b10c40, 0x00020002 },
-   { 0x00800008, 0x2c602d29, 0x00b10c60, 0x00020002 },
-   { 0x00800008, 0x2c802d29, 0x00b10c80, 0x00020002 },
-   { 0x00800008, 0x2ca02d29, 0x00b10ca0, 0x00020002 },
-   { 0x00800008, 0x2cc02d29, 0x00b10cc0, 0x00020002 },
-   { 0x00800008, 0x2ce02d29, 0x00b10ce0, 0x00020002 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000040 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
-   { 0x00800031, 0x29c01d29, 0x008d0e60, 0x0411a007 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a001d29, 0x008d0e60, 0x0411a007 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a401d29, 0x008d0e60, 0x0411a007 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a801d29, 0x008d0e60, 0x0411a007 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0007001f },
-   { 0x00800031, 0x2ac01d29, 0x008d0e60, 0x0418a007 },
-   { 0x80800042, 0x2c004629, 0x00b109c0, 0x00b109c1 },
-   { 0x80800042, 0x2c204629, 0x00b10a00, 0x00b10a01 },
-   { 0x80800042, 0x2c404629, 0x00b10a40, 0x00b10a41 },
-   { 0x80800042, 0x2c604629, 0x00b10a80, 0x00b10a81 },
-   { 0x80800042, 0x2c804629, 0x00b10ac0, 0x00b10ac1 },
-   { 0x80800042, 0x2ca04629, 0x00b10b00, 0x00b10b01 },
-   { 0x80800042, 0x2cc04629, 0x00b10b40, 0x00b10b41 },
-   { 0x80800042, 0x2ce04629, 0x00b10b80, 0x00b10b81 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x0000002c },
-   { 0x01000005, 0x20002d3c, 0x0021003c, 0x00010001 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000017 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
-   { 0x00800031, 0x29c01d29, 0x008d0e60, 0x0411a007 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a001d29, 0x008d0e60, 0x0411a007 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a401d29, 0x008d0e60, 0x0411a007 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a801d29, 0x008d0e60, 0x0411a007 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0007001f },
-   { 0x00800031, 0x2ac01d29, 0x008d0e60, 0x0418a007 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
-   { 0x00800031, 0x2bc01d29, 0x008d0e60, 0x0411a007 },
-   { 0x80800042, 0x2c004629, 0x00b109c0, 0x00b10a00 },
-   { 0x80800042, 0x2c204629, 0x00b10a00, 0x00b10a40 },
-   { 0x80800042, 0x2c404629, 0x00b10a40, 0x00b10a80 },
-   { 0x80800042, 0x2c604629, 0x00b10a80, 0x00b10ac0 },
-   { 0x80800042, 0x2c804629, 0x00b10ac0, 0x00b10b00 },
-   { 0x80800042, 0x2ca04629, 0x00b10b00, 0x00b10b40 },
-   { 0x80800042, 0x2cc04629, 0x00b10b40, 0x00b10b80 },
-   { 0x80800042, 0x2ce04629, 0x00b10b80, 0x00b10bc0 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000013 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
-   { 0x00800031, 0x29c01d29, 0x008d0e60, 0x0411a007 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a001d29, 0x008d0e60, 0x0411a007 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a401d29, 0x008d0e60, 0x0411a007 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a801d29, 0x008d0e60, 0x0411a007 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0007001f },
-   { 0x00800031, 0x2ac01d29, 0x008d0e60, 0x0418a007 },
-   { 0x00800001, 0x2c000229, 0x00b109c0, 0x00000000 },
-   { 0x00800001, 0x2c200229, 0x00b10a00, 0x00000000 },
-   { 0x00800001, 0x2c400229, 0x00b10a40, 0x00000000 },
-   { 0x00800001, 0x2c600229, 0x00b10a80, 0x00000000 },
-   { 0x00800001, 0x2c800229, 0x00b10ac0, 0x00000000 },
-   { 0x00800001, 0x2ca00229, 0x00b10b00, 0x00000000 },
-   { 0x00800001, 0x2cc00229, 0x00b10b40, 0x00000000 },
-   { 0x00800001, 0x2ce00229, 0x00b10b80, 0x00000000 },
-   { 0x80800042, 0x23802529, 0x00b10680, 0x00b10380 },
-   { 0x80800042, 0x23a02529, 0x00b106a0, 0x00b10c00 },
-   { 0x80800042, 0x23c02529, 0x00b106c0, 0x00b103c0 },
-   { 0x80800042, 0x23e02529, 0x00b106e0, 0x00b10c20 },
-   { 0x80800042, 0x24002529, 0x00b10700, 0x00b10400 },
-   { 0x80800042, 0x24202529, 0x00b10720, 0x00b10c40 },
-   { 0x80800042, 0x24402529, 0x00b10740, 0x00b10440 },
-   { 0x80800042, 0x24602529, 0x00b10760, 0x00b10c60 },
-   { 0x80800042, 0x24802529, 0x00b10780, 0x00b10480 },
-   { 0x80800042, 0x24a02529, 0x00b107a0, 0x00b10c80 },
-   { 0x80800042, 0x24c02529, 0x00b107c0, 0x00b104c0 },
-   { 0x80800042, 0x24e02529, 0x00b107e0, 0x00b10ca0 },
-   { 0x80800042, 0x25002529, 0x00b10800, 0x00b10500 },
-   { 0x80800042, 0x25202529, 0x00b10820, 0x00b10cc0 },
-   { 0x80800042, 0x25402529, 0x00b10840, 0x00b10540 },
-   { 0x80800042, 0x25602529, 0x00b10860, 0x00b10ce0 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0007000f },
-   { 0x0020000c, 0x2e6e3dad, 0x00450032, 0x00020002 },
-   { 0x0020000c, 0x2e601ca5, 0x00450e80, 0x00000001 },
-   { 0x00200040, 0x2e6034a5, 0x00450e60, 0x00450e6e },
-   { 0x00000005, 0x2e640c21, 0x00210e64, 0xfffffffe },
-   { 0x02000005, 0x20002e3c, 0x0021003f, 0x00020002 },
-   { 0x00010040, 0x2e640c21, 0x00210e64, 0x00000001 },
-   { 0x01000005, 0x20002d3c, 0x00210032, 0x00020002 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000036 },
-   { 0x01000005, 0x20002d3c, 0x00210034, 0x00020002 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000028 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0007000f },
-   { 0x00800031, 0x2ac01d29, 0x00ad0e60, 0x0414a008 },
-   { 0x00800031, 0x2b601d29, 0x00ad0e60, 0x0414a009 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0001000f },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 },
-   { 0x00800031, 0x2b401d29, 0x00ad0e60, 0x0411a008 },
-   { 0x00800031, 0x2be01d29, 0x00ad0e60, 0x0411a009 },
-   { 0x00800040, 0x29c04629, 0x00ad0ac0, 0x00ad0ae0 },
-   { 0x00800040, 0x29e04629, 0x00ad0ae0, 0x00ad0b00 },
-   { 0x00800040, 0x2a004629, 0x00ad0b00, 0x00ad0b20 },
-   { 0x00800040, 0x2a204629, 0x00ad0b20, 0x00ad0b40 },
-   { 0x00800040, 0x29c04529, 0x00ad09c0, 0x00ad0ac1 },
-   { 0x00800040, 0x29e04529, 0x00ad09e0, 0x00ad0ae1 },
-   { 0x00800040, 0x2a004529, 0x00ad0a00, 0x00ad0b01 },
-   { 0x00800040, 0x2a204529, 0x00ad0a20, 0x00ad0b21 },
-   { 0x00800040, 0x29c04529, 0x00ad09c0, 0x00ad0ae1 },
-   { 0x00800040, 0x29e04529, 0x00ad09e0, 0x00ad0b01 },
-   { 0x00800040, 0x2a004529, 0x00ad0a00, 0x00ad0b21 },
-   { 0x00800040, 0x2a204529, 0x00ad0a20, 0x00ad0b41 },
-   { 0x00800040, 0x2a404629, 0x00ad0b60, 0x00ad0b80 },
-   { 0x00800040, 0x2a604629, 0x00ad0b80, 0x00ad0ba0 },
-   { 0x00800040, 0x2a804629, 0x00ad0ba0, 0x00ad0bc0 },
-   { 0x00800040, 0x2aa04629, 0x00ad0bc0, 0x00ad0be0 },
-   { 0x00800040, 0x2a404529, 0x00ad0a40, 0x00ad0b61 },
-   { 0x00800040, 0x2a604529, 0x00ad0a60, 0x00ad0b81 },
-   { 0x00800040, 0x2a804529, 0x00ad0a80, 0x00ad0ba1 },
-   { 0x00800040, 0x2aa04529, 0x00ad0aa0, 0x00ad0bc1 },
-   { 0x00800040, 0x2a404529, 0x00ad0a40, 0x00ad0b81 },
-   { 0x00800040, 0x2a604529, 0x00ad0a60, 0x00ad0ba1 },
-   { 0x00800040, 0x2a804529, 0x00ad0a80, 0x00ad0bc1 },
-   { 0x00800040, 0x2aa04529, 0x00ad0aa0, 0x00ad0be1 },
-   { 0x80800008, 0x29c02d29, 0x00b109c0, 0x00020002 },
-   { 0x80800008, 0x29e02d29, 0x00b109e0, 0x00020002 },
-   { 0x80800008, 0x2a002d29, 0x00b10a00, 0x00020002 },
-   { 0x80800008, 0x2a202d29, 0x00b10a20, 0x00020002 },
-   { 0x80800008, 0x2a402d29, 0x00b10a40, 0x00020002 },
-   { 0x80800008, 0x2a602d29, 0x00b10a60, 0x00020002 },
-   { 0x80800008, 0x2a802d29, 0x00b10a80, 0x00020002 },
-   { 0x80800008, 0x2aa02d29, 0x00b10aa0, 0x00020002 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000028 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0007000f },
-   { 0x00800031, 0x2ac01d29, 0x00ad0e60, 0x0414a008 },
-   { 0x00800031, 0x2b601d29, 0x00ad0e60, 0x0414a009 },
-   { 0x80800042, 0x29c04629, 0x00ad0ac0, 0x00ad0ac1 },
-   { 0x80800042, 0x29e04629, 0x00ad0ae0, 0x00ad0ae1 },
-   { 0x80800042, 0x2a004629, 0x00ad0b00, 0x00ad0b01 },
-   { 0x80800042, 0x2a204629, 0x00ad0b20, 0x00ad0b21 },
-   { 0x80800042, 0x2a404629, 0x00ad0b60, 0x00ad0b61 },
-   { 0x80800042, 0x2a604629, 0x00ad0b80, 0x00ad0b81 },
-   { 0x80800042, 0x2a804629, 0x00ad0ba0, 0x00ad0ba1 },
-   { 0x80800042, 0x2aa04629, 0x00ad0bc0, 0x00ad0bc1 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x0000001c },
-   { 0x01000005, 0x20002d3c, 0x00210034, 0x00020002 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x0000000f },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0007000f },
-   { 0x00800031, 0x2ac01d29, 0x00ad0e60, 0x0414a008 },
-   { 0x00800031, 0x2b601d29, 0x00ad0e60, 0x0414a009 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0000000f },
-   { 0x00800031, 0x2b401d29, 0x00ad0e60, 0x0411a008 },
-   { 0x00800031, 0x2be01d29, 0x00ad0e60, 0x0411a009 },
-   { 0x80800042, 0x29c04629, 0x00ad0ac0, 0x00ad0ae0 },
-   { 0x80800042, 0x29e04629, 0x00ad0ae0, 0x00ad0b00 },
-   { 0x80800042, 0x2a004629, 0x00ad0b00, 0x00ad0b20 },
-   { 0x80800042, 0x2a204629, 0x00ad0b20, 0x00ad0b40 },
-   { 0x80800042, 0x2a404629, 0x00ad0b60, 0x00ad0b80 },
-   { 0x80800042, 0x2a604629, 0x00ad0b80, 0x00ad0ba0 },
-   { 0x80800042, 0x2a804629, 0x00ad0ba0, 0x00ad0bc0 },
-   { 0x80800042, 0x2aa04629, 0x00ad0bc0, 0x00ad0be0 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x0000000b },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0007000f },
-   { 0x00800031, 0x2ac01d29, 0x00ad0e60, 0x0414a008 },
-   { 0x00800031, 0x2b601d29, 0x00ad0e60, 0x0414a009 },
-   { 0x00800001, 0x29c00229, 0x00ad0ac0, 0x00000000 },
-   { 0x00800001, 0x29e00229, 0x00ad0ae0, 0x00000000 },
-   { 0x00800001, 0x2a000229, 0x00ad0b00, 0x00000000 },
-   { 0x00800001, 0x2a200229, 0x00ad0b20, 0x00000000 },
-   { 0x00800001, 0x2a400229, 0x00ad0b60, 0x00000000 },
-   { 0x00800001, 0x2a600229, 0x00ad0b80, 0x00000000 },
-   { 0x00800001, 0x2a800229, 0x00ad0ba0, 0x00000000 },
-   { 0x00800001, 0x2aa00229, 0x00ad0bc0, 0x00000000 },
-   { 0x00600001, 0x25800129, 0x008d09c0, 0x00000000 },
-   { 0x00600001, 0x25a00129, 0x008d09e0, 0x00000000 },
-   { 0x00600001, 0x25c00129, 0x008d0a00, 0x00000000 },
-   { 0x00600001, 0x25e00129, 0x008d0a20, 0x00000000 },
-   { 0x00600001, 0x26000129, 0x008d0a40, 0x00000000 },
-   { 0x00600001, 0x26200129, 0x008d0a60, 0x00000000 },
-   { 0x00600001, 0x26400129, 0x008d0a80, 0x00000000 },
-   { 0x00600001, 0x26600129, 0x008d0aa0, 0x00000000 },
-   { 0x0020000c, 0x2e6e3dad, 0x0045003a, 0x00020002 },
-   { 0x0020000c, 0x2e601ca5, 0x00450e80, 0x00000001 },
-   { 0x00200040, 0x2e6034a5, 0x00450e60, 0x00450e6e },
-   { 0x00000005, 0x2e640c21, 0x00210e64, 0xfffffffe },
-   { 0x02000005, 0x20002e3c, 0x0021003f, 0x00080008 },
-   { 0x00010040, 0x2e640c21, 0x00210e64, 0x00000001 },
-   { 0x01000005, 0x20002d3c, 0x0021003a, 0x00020002 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000036 },
-   { 0x01000005, 0x20002d3c, 0x0021003c, 0x00020002 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000028 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0007000f },
-   { 0x00800031, 0x2ac01d29, 0x00ad0e60, 0x0414a008 },
-   { 0x00800031, 0x2b601d29, 0x00ad0e60, 0x0414a009 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0001000f },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 },
-   { 0x00800031, 0x2b401d29, 0x00ad0e60, 0x0411a008 },
-   { 0x00800031, 0x2be01d29, 0x00ad0e60, 0x0411a009 },
-   { 0x00800040, 0x29c04629, 0x00ad0ac0, 0x00ad0ae0 },
-   { 0x00800040, 0x29e04629, 0x00ad0ae0, 0x00ad0b00 },
-   { 0x00800040, 0x2a004629, 0x00ad0b00, 0x00ad0b20 },
-   { 0x00800040, 0x2a204629, 0x00ad0b20, 0x00ad0b40 },
-   { 0x00800040, 0x29c04529, 0x00ad09c0, 0x00ad0ac1 },
-   { 0x00800040, 0x29e04529, 0x00ad09e0, 0x00ad0ae1 },
-   { 0x00800040, 0x2a004529, 0x00ad0a00, 0x00ad0b01 },
-   { 0x00800040, 0x2a204529, 0x00ad0a20, 0x00ad0b21 },
-   { 0x00800040, 0x29c04529, 0x00ad09c0, 0x00ad0ae1 },
-   { 0x00800040, 0x29e04529, 0x00ad09e0, 0x00ad0b01 },
-   { 0x00800040, 0x2a004529, 0x00ad0a00, 0x00ad0b21 },
-   { 0x00800040, 0x2a204529, 0x00ad0a20, 0x00ad0b41 },
-   { 0x00800040, 0x2a404629, 0x00ad0b60, 0x00ad0b80 },
-   { 0x00800040, 0x2a604629, 0x00ad0b80, 0x00ad0ba0 },
-   { 0x00800040, 0x2a804629, 0x00ad0ba0, 0x00ad0bc0 },
-   { 0x00800040, 0x2aa04629, 0x00ad0bc0, 0x00ad0be0 },
-   { 0x00800040, 0x2a404529, 0x00ad0a40, 0x00ad0b61 },
-   { 0x00800040, 0x2a604529, 0x00ad0a60, 0x00ad0b81 },
-   { 0x00800040, 0x2a804529, 0x00ad0a80, 0x00ad0ba1 },
-   { 0x00800040, 0x2aa04529, 0x00ad0aa0, 0x00ad0bc1 },
-   { 0x00800040, 0x2a404529, 0x00ad0a40, 0x00ad0b81 },
-   { 0x00800040, 0x2a604529, 0x00ad0a60, 0x00ad0ba1 },
-   { 0x00800040, 0x2a804529, 0x00ad0a80, 0x00ad0bc1 },
-   { 0x00800040, 0x2aa04529, 0x00ad0aa0, 0x00ad0be1 },
-   { 0x80800008, 0x29c02d29, 0x00b109c0, 0x00020002 },
-   { 0x80800008, 0x29e02d29, 0x00b109e0, 0x00020002 },
-   { 0x80800008, 0x2a002d29, 0x00b10a00, 0x00020002 },
-   { 0x80800008, 0x2a202d29, 0x00b10a20, 0x00020002 },
-   { 0x80800008, 0x2a402d29, 0x00b10a40, 0x00020002 },
-   { 0x80800008, 0x2a602d29, 0x00b10a60, 0x00020002 },
-   { 0x80800008, 0x2a802d29, 0x00b10a80, 0x00020002 },
-   { 0x80800008, 0x2aa02d29, 0x00b10aa0, 0x00020002 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000028 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0007000f },
-   { 0x00800031, 0x2ac01d29, 0x00ad0e60, 0x0414a008 },
-   { 0x00800031, 0x2b601d29, 0x00ad0e60, 0x0414a009 },
-   { 0x80800042, 0x29c04629, 0x00ad0ac0, 0x00ad0ac1 },
-   { 0x80800042, 0x29e04629, 0x00ad0ae0, 0x00ad0ae1 },
-   { 0x80800042, 0x2a004629, 0x00ad0b00, 0x00ad0b01 },
-   { 0x80800042, 0x2a204629, 0x00ad0b20, 0x00ad0b21 },
-   { 0x80800042, 0x2a404629, 0x00ad0b60, 0x00ad0b61 },
-   { 0x80800042, 0x2a604629, 0x00ad0b80, 0x00ad0b81 },
-   { 0x80800042, 0x2a804629, 0x00ad0ba0, 0x00ad0ba1 },
-   { 0x80800042, 0x2aa04629, 0x00ad0bc0, 0x00ad0bc1 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x0000001c },
-   { 0x01000005, 0x20002d3c, 0x0021003c, 0x00020002 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x0000000f },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0007000f },
-   { 0x00800031, 0x2ac01d29, 0x00ad0e60, 0x0414a008 },
-   { 0x00800031, 0x2b601d29, 0x00ad0e60, 0x0414a009 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0000000f },
-   { 0x00800031, 0x2b401d29, 0x00ad0e60, 0x0411a008 },
-   { 0x00800031, 0x2be01d29, 0x00ad0e60, 0x0411a009 },
-   { 0x80800042, 0x29c04629, 0x00ad0ac0, 0x00ad0ae0 },
-   { 0x80800042, 0x29e04629, 0x00ad0ae0, 0x00ad0b00 },
-   { 0x80800042, 0x2a004629, 0x00ad0b00, 0x00ad0b20 },
-   { 0x80800042, 0x2a204629, 0x00ad0b20, 0x00ad0b40 },
-   { 0x80800042, 0x2a404629, 0x00ad0b60, 0x00ad0b80 },
-   { 0x80800042, 0x2a604629, 0x00ad0b80, 0x00ad0ba0 },
-   { 0x80800042, 0x2a804629, 0x00ad0ba0, 0x00ad0bc0 },
-   { 0x80800042, 0x2aa04629, 0x00ad0bc0, 0x00ad0be0 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x0000000b },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0007000f },
-   { 0x00800031, 0x2ac01d29, 0x00ad0e60, 0x0414a008 },
-   { 0x00800031, 0x2b601d29, 0x00ad0e60, 0x0414a009 },
-   { 0x00800001, 0x29c00229, 0x00ad0ac0, 0x00000000 },
-   { 0x00800001, 0x29e00229, 0x00ad0ae0, 0x00000000 },
-   { 0x00800001, 0x2a000229, 0x00ad0b00, 0x00000000 },
-   { 0x00800001, 0x2a200229, 0x00ad0b20, 0x00000000 },
-   { 0x00800001, 0x2a400229, 0x00ad0b60, 0x00000000 },
-   { 0x00800001, 0x2a600229, 0x00ad0b80, 0x00000000 },
-   { 0x00800001, 0x2a800229, 0x00ad0ba0, 0x00000000 },
-   { 0x00800001, 0x2aa00229, 0x00ad0bc0, 0x00000000 },
-   { 0x00600001, 0x25900129, 0x008d09c0, 0x00000000 },
-   { 0x00600001, 0x25b00129, 0x008d09e0, 0x00000000 },
-   { 0x00600001, 0x25d00129, 0x008d0a00, 0x00000000 },
-   { 0x00600001, 0x25f00129, 0x008d0a20, 0x00000000 },
-   { 0x00600001, 0x26100129, 0x008d0a40, 0x00000000 },
-   { 0x00600001, 0x26300129, 0x008d0a60, 0x00000000 },
-   { 0x00600001, 0x26500129, 0x008d0a80, 0x00000000 },
-   { 0x00600001, 0x26700129, 0x008d0aa0, 0x00000000 },
-   { 0x80800042, 0x25802529, 0x00b10880, 0x00b10580 },
-   { 0x80800042, 0x25a02529, 0x00b108a0, 0x00b105a0 },
-   { 0x80800042, 0x25c02529, 0x00b108c0, 0x00b105c0 },
-   { 0x80800042, 0x25e02529, 0x00b108e0, 0x00b105e0 },
-   { 0x80800042, 0x26002529, 0x00b10900, 0x00b10600 },
-   { 0x80800042, 0x26202529, 0x00b10920, 0x00b10620 },
-   { 0x80800042, 0x26402529, 0x00b10940, 0x00b10640 },
-   { 0x80800042, 0x26602529, 0x00b10960, 0x00b10660 },
-   { 0x00600001, 0x20200021, 0x008d0980, 0x00000000 },
-   { 0x00800001, 0x458101f1, 0x00000000, 0x00000000 },
-   { 0x00800001, 0x45a101f1, 0x00000000, 0x00000000 },
-   { 0x00800001, 0x45c101f1, 0x00000000, 0x00000000 },
-   { 0x00800001, 0x45e101f1, 0x00000000, 0x00000000 },
-   { 0x00800001, 0x460101f1, 0x00000000, 0x00000000 },
-   { 0x00800001, 0x462101f1, 0x00000000, 0x00000000 },
-   { 0x00800001, 0x464101f1, 0x00000000, 0x00000000 },
-   { 0x00800001, 0x466101f1, 0x00000000, 0x00000000 },
-   { 0x02000005, 0x20002e3c, 0x0021003e, 0x00010001 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000011 },
-   { 0x00800040, 0x238045ad, 0x00b10060, 0x00b20380 },
-   { 0x00800040, 0x23a045ad, 0x00b10080, 0x00b203a0 },
-   { 0x00800040, 0x23c045ad, 0x00b100a0, 0x00b203c0 },
-   { 0x00800040, 0x23e045ad, 0x00b100c0, 0x00b203e0 },
-   { 0x00800040, 0x240045ad, 0x00b100e0, 0x00b20400 },
-   { 0x00800040, 0x242045ad, 0x00b10100, 0x00b20420 },
-   { 0x00800040, 0x244045ad, 0x00b10120, 0x00b20440 },
-   { 0x00800040, 0x246045ad, 0x00b10140, 0x00b20460 },
-   { 0x00800040, 0x248045ad, 0x00b10160, 0x00b20480 },
-   { 0x00800040, 0x24a045ad, 0x00b10180, 0x00b204a0 },
-   { 0x00800040, 0x24c045ad, 0x00b101a0, 0x00b204c0 },
-   { 0x00800040, 0x24e045ad, 0x00b101c0, 0x00b204e0 },
-   { 0x00800040, 0x250045ad, 0x00b101e0, 0x00b20500 },
-   { 0x00800040, 0x252045ad, 0x00b10200, 0x00b20520 },
-   { 0x00800040, 0x254045ad, 0x00b10220, 0x00b20540 },
-   { 0x00800040, 0x256045ad, 0x00b10240, 0x00b20560 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000010 },
-   { 0x00800040, 0x238045ad, 0x00b10060, 0x00b20380 },
-   { 0x00800040, 0x23a045ad, 0x00b10160, 0x00b203a0 },
-   { 0x00800040, 0x23c045ad, 0x00b10080, 0x00b203c0 },
-   { 0x00800040, 0x23e045ad, 0x00b10180, 0x00b203e0 },
-   { 0x00800040, 0x240045ad, 0x00b100a0, 0x00b20400 },
-   { 0x00800040, 0x242045ad, 0x00b101a0, 0x00b20420 },
-   { 0x00800040, 0x244045ad, 0x00b100c0, 0x00b20440 },
-   { 0x00800040, 0x246045ad, 0x00b101c0, 0x00b20460 },
-   { 0x00800040, 0x248045ad, 0x00b100e0, 0x00b20480 },
-   { 0x00800040, 0x24a045ad, 0x00b101e0, 0x00b204a0 },
-   { 0x00800040, 0x24c045ad, 0x00b10100, 0x00b204c0 },
-   { 0x00800040, 0x24e045ad, 0x00b10200, 0x00b204e0 },
-   { 0x00800040, 0x250045ad, 0x00b10120, 0x00b20500 },
-   { 0x00800040, 0x252045ad, 0x00b10220, 0x00b20520 },
-   { 0x00800040, 0x254045ad, 0x00b10140, 0x00b20540 },
-   { 0x00800040, 0x256045ad, 0x00b10240, 0x00b20560 },
-   { 0x00000001, 0x20280061, 0x00000000, 0x000f000f },
-   { 0x80800001, 0x438001b1, 0x00b10380, 0x00000000 },
-   { 0x80800001, 0x43a001b1, 0x00b103a0, 0x00000000 },
-   { 0x80800001, 0x43c001b1, 0x00b103c0, 0x00000000 },
-   { 0x80800001, 0x43e001b1, 0x00b103e0, 0x00000000 },
-   { 0x80800001, 0x440001b1, 0x00b10400, 0x00000000 },
-   { 0x80800001, 0x442001b1, 0x00b10420, 0x00000000 },
-   { 0x80800001, 0x444001b1, 0x00b10440, 0x00000000 },
-   { 0x80800001, 0x446001b1, 0x00b10460, 0x00000000 },
-   { 0x80800001, 0x448001b1, 0x00b10480, 0x00000000 },
-   { 0x80800001, 0x44a001b1, 0x00b104a0, 0x00000000 },
-   { 0x80800001, 0x44c001b1, 0x00b104c0, 0x00000000 },
-   { 0x80800001, 0x44e001b1, 0x00b104e0, 0x00000000 },
-   { 0x80800001, 0x450001b1, 0x00b10500, 0x00000000 },
-   { 0x80800001, 0x452001b1, 0x00b10520, 0x00000000 },
-   { 0x80800001, 0x454001b1, 0x00b10540, 0x00000000 },
-   { 0x80800001, 0x456001b1, 0x00b10560, 0x00000000 },
-   { 0x00800001, 0x20200232, 0x00b20380, 0x00000000 },
-   { 0x00800001, 0x20300232, 0x00b203a0, 0x00000000 },
-   { 0x00800001, 0x20400232, 0x00b203c0, 0x00000000 },
-   { 0x00800001, 0x20500232, 0x00b203e0, 0x00000000 },
-   { 0x00800001, 0x20600232, 0x00b20400, 0x00000000 },
-   { 0x00800001, 0x20700232, 0x00b20420, 0x00000000 },
-   { 0x00800001, 0x20800232, 0x00b20440, 0x00000000 },
-   { 0x00800001, 0x20900232, 0x00b20460, 0x00000000 },
-   { 0x00800001, 0x20a00232, 0x00b20480, 0x00000000 },
-   { 0x00800001, 0x20b00232, 0x00b204a0, 0x00000000 },
-   { 0x00800001, 0x20c00232, 0x00b204c0, 0x00000000 },
-   { 0x00800001, 0x20d00232, 0x00b204e0, 0x00000000 },
-   { 0x00800001, 0x20e00232, 0x00b20500, 0x00000000 },
-   { 0x00800001, 0x20f00232, 0x00b20520, 0x00000000 },
-   { 0x00800001, 0x21000232, 0x00b20540, 0x00000000 },
-   { 0x00800001, 0x21100232, 0x00b20560, 0x00000000 },
-   { 0x00800031, 0x24001d28, 0x008d0020, 0x05902000 },
-   { 0x00000001, 0x20280061, 0x00000000, 0x00070007 },
-   { 0x00200008, 0x20201c21, 0x00450020, 0x00000001 },
-   { 0x00800040, 0x258025a9, 0x00b10260, 0x00b10580 },
-   { 0x00800040, 0x25a025a9, 0x00b10280, 0x00b105a0 },
-   { 0x00800040, 0x25c025a9, 0x00b102a0, 0x00b105c0 },
-   { 0x00800040, 0x25e025a9, 0x00b102c0, 0x00b105e0 },
-   { 0x80800001, 0x45800131, 0x00b10580, 0x00000000 },
-   { 0x80800001, 0x45a00131, 0x00b105a0, 0x00000000 },
-   { 0x80800001, 0x45c00131, 0x00b105c0, 0x00000000 },
-   { 0x80800001, 0x45e00131, 0x00b105e0, 0x00000000 },
-   { 0x00800001, 0x20200232, 0x00b20580, 0x00000000 },
-   { 0x00800001, 0x20300232, 0x00b205a0, 0x00000000 },
-   { 0x00800001, 0x20400232, 0x00b205c0, 0x00000000 },
-   { 0x00800001, 0x20500232, 0x00b205e0, 0x00000000 },
-   { 0x00800031, 0x24001d28, 0x008d0020, 0x05302001 },
-   { 0x00800040, 0x260025a9, 0x00b102e0, 0x00b10600 },
-   { 0x00800040, 0x262025a9, 0x00b10300, 0x00b10620 },
-   { 0x00800040, 0x264025a9, 0x00b10320, 0x00b10640 },
-   { 0x00800040, 0x266025a9, 0x00b10340, 0x00b10660 },
-   { 0x80800001, 0x46000131, 0x00b10600, 0x00000000 },
-   { 0x80800001, 0x46200131, 0x00b10620, 0x00000000 },
-   { 0x80800001, 0x46400131, 0x00b10640, 0x00000000 },
-   { 0x80800001, 0x46600131, 0x00b10660, 0x00000000 },
-   { 0x00800001, 0x20200232, 0x00b20600, 0x00000000 },
-   { 0x00800001, 0x20300232, 0x00b20620, 0x00000000 },
-   { 0x00800001, 0x20400232, 0x00b20640, 0x00000000 },
-   { 0x00800001, 0x20500232, 0x00b20660, 0x00000000 },
-   { 0x00800031, 0x24001d28, 0x008d0020, 0x05302002 },
-   { 0x00800031, 0x24001d28, 0x008d0000, 0x87100000 },
diff --git a/src/xvmc/field_forward.g4a b/src/xvmc/field_forward.g4a
deleted file mode 100644
index f5595ee..0000000
--- a/src/xvmc/field_forward.g4a
+++ /dev/null
@@ -1,121 +0,0 @@
-/*
- * Copyright © 2008 Intel Corporation
- *
- * Permission is hereby granted, free of charge, to any person obtaining a
- * copy of this software and associated documentation files (the "Software"),
- * to deal in the Software without restriction, including without limitation
- * the rights to use, copy, modify, merge, publish, distribute, sublicense,
- * and/or sell copies of the Software, and to permit persons to whom the
- * Software is furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice (including the next
- * paragraph) shall be included in all copies or substantial portions of the
- * Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
- * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
- * SOFTWARE.
- *
- * Author:
- *    Zou Nan hai <nanhai.zou at intel.com>
- *    Zhang Hua jun <huajun.zhang at intel.com>
- *    Xing Dong sheng <dongsheng.xing at intel.com>
- *
- */
-mov (8) g76.0<1>UD g1.0<8,8,1>UD {align1};
-//mov (8) g77.0<1>UD g2.0<8,8,1>UD {align1};
-
-include(`block_clear.g4i')
-mov (8) g115.0<1>UD g1.0<8,8,1>UD {align1};
-mov (8) g116.0<1>UD g1.0<8,8,1>UD {align1};
-/*Y buffer*/
-mov(1) g1.8<1>UD 0x007000fUD  { align1 };
-asr (2) g115.14<1>W g1.14<2,2,1>W 1UW {align1};
-add (2) g115.0<1>UD g116.0<2,2,1>UD g115.14<2,2,1>W {align1};
-and (1) g115.4<1>UD g115.4<1,1,1>UD 0xFFFFFFFEUD {align1};
-mov (1) g115.8<1>UD 0x1fUD  { align1 }; //read 1 line, 32 columns.
-/*first vector*/
-and.nz (1) null g1.31<1,1,1>UB 0x1UW {align1};
-(f0) add (1) g115.4<1>UD g115.4<1,1,1>UD 1UD {align1};
-define(`surface',`4')
-define(`mv1',`g1.14')
-define(`mv2',`g1.16')
-include(`motion_field_y.g4i')
-mov (8) g28.0<1>UD g96.0<8,8,1>UD {align1};
-mov (8) g30.0<1>UD g97.0<8,8,1>UD {align1};
-mov (8) g32.0<1>UD g98.0<8,8,1>UD {align1};
-mov (8) g34.0<1>UD g99.0<8,8,1>UD {align1};
-mov (8) g36.0<1>UD g100.0<8,8,1>UD {align1};
-mov (8) g38.0<1>UD g101.0<8,8,1>UD {align1};
-mov (8) g40.0<1>UD g102.0<8,8,1>UD {align1};
-mov (8) g42.0<1>UD g103.0<8,8,1>UD {align1};
-/*second vector*/
-asr (2) g115.14<1>W g1.22<2,2,1>W 1UW {align1};
-add (2) g115.0<1>UD g116.0<2,2,1>UD g115.14<2,2,1>W {align1};
-and (1) g115.4<1>UD g115.4<1,1,1>UD 0xFFFFFFFEUD {align1};
-mov (1) g115.8<1>UD 0x1fUD { align1 };              //read 1 line, 32 columns.
-
-and.nz (1) null g1.31<1,1,1>UB 0x4UW {align1};
-(f0) add (1) g115.4<1>UD g115.4<1,1,1>UD 1UD {align1};
-define(`surface',`4')
-define(`mv1',`g1.22')
-define(`mv2',`g1.24')
-include(`motion_field_y.g4i')
-mov (8) g29.0<1>UD g96.0<8,8,1>UD {align1};
-mov (8) g31.0<1>UD g97.0<8,8,1>UD {align1};
-mov (8) g33.0<1>UD g98.0<8,8,1>UD {align1};
-mov (8) g35.0<1>UD g99.0<8,8,1>UD {align1};
-mov (8) g37.0<1>UD g100.0<8,8,1>UD {align1};
-mov (8) g39.0<1>UD g101.0<8,8,1>UD {align1};
-mov (8) g41.0<1>UD g102.0<8,8,1>UD {align1};
-mov (8) g43.0<1>UD g103.0<8,8,1>UD {align1};
-/*U buffer,  V buffer*/
-/*first vector*/
-mov(1) g115.8<1>UD 0x007000fUD  { align1 };
-asr (2) g115.14<1>W g1.14<2,2,1>W 2UW {align1};
-asr (2) g115.0<1>D g116.0<2,2,1>D 1D {align1};
-add (2) g115.0<1>D g115.0<2,2,1>D g115.14<2,2,1>W {align1};
-and (1) g115.4<1>UD g115.4<1,1,1>UD 0xFFFFFFFEUD {align1};
-
-and.nz (1) null g1.31<1,1,1>UB 0x1UW {align1};
-(f0) add (1) g115.4<1>UD g115.4<1,1,1>UD 1UD {align1};
-define(`surface_u',`5')
-define(`surface_v',`6')
-define(`mv1',`g1.14')
-define(`mv2',`g1.16')
-include(`motion_field_uv.g4i')
-mov (8) g44.0<1>UW g78.0<8,8,1>UW {align1};
-mov (8) g45.0<1>UW g79.0<8,8,1>UW {align1};
-mov (8) g46.0<1>UW g80.0<8,8,1>UW {align1};
-mov (8) g47.0<1>UW g81.0<8,8,1>UW {align1};
-mov (8) g48.0<1>UW g82.0<8,8,1>UW {align1};
-mov (8) g49.0<1>UW g83.0<8,8,1>UW {align1};
-mov (8) g50.0<1>UW g84.0<8,8,1>UW {align1};
-mov (8) g51.0<1>UW g85.0<8,8,1>UW {align1};
-/*second vector*/
-asr (2) g115.14<1>W g1.22<2,2,1>W 2UW {align1};
-asr (2) g115.0<1>D g116.0<2,2,1>D 1D {align1};
-add (2) g115.0<1>D g115.0<2,2,1>D g115.14<2,2,1>W {align1};
-and (1) g115.4<1>UD g115.4<1,1,1>UD 0xFFFFFFFEUD {align1};
-
-and.nz (1) null g1.31<1,1,1>UB 0x4UW {align1};
-(f0) add (1) g115.4<1>UD g115.4<1,1,1>UD 1UD {align1};
-define(`mv1',`g1.22')
-define(`mv2',`g1.24')
-include(`motion_field_uv.g4i')
-mov (8) g44.16<1>UW g78.0<8,8,1>UW {align1};
-mov (8) g45.16<1>UW g79.0<8,8,1>UW {align1};
-mov (8) g46.16<1>UW g80.0<8,8,1>UW {align1};
-mov (8) g47.16<1>UW g81.0<8,8,1>UW {align1};
-mov (8) g48.16<1>UW g82.0<8,8,1>UW {align1};
-mov (8) g49.16<1>UW g83.0<8,8,1>UW {align1};
-mov (8) g50.16<1>UW g84.0<8,8,1>UW {align1};
-mov (8) g51.16<1>UW g85.0<8,8,1>UW {align1};
-
-include(`addidct.g4i')
-//send (16) 0 acc0<1>UW g0<8,8,1>UW 
-//	thread_spawner(0, 0, 0) mlen 1 rlen 0 { align1 EOT};
diff --git a/src/xvmc/field_forward.g4b b/src/xvmc/field_forward.g4b
deleted file mode 100644
index 3514c86..0000000
--- a/src/xvmc/field_forward.g4b
+++ /dev/null
@@ -1,1340 +0,0 @@
-   { 0x00600001, 0x29800021, 0x008d0020, 0x00000000 },
-   { 0x02000005, 0x20000c3c, 0x00210040, 0x00000001 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000030 },
-   { 0x00000040, 0x20480c21, 0x00210988, 0x00000000 },
-   { 0x00800031, 0x20601c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x20801c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x20a01c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x20c01c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x20e01c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x21001c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x21201c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x21401c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x21601c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x21801c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x21a01c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x21c01c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x21e01c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x22001c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x22201c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x22401c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x22601c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x22801c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x22a01c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x22c01c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x22e01c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x23001c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x23201c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x23401c21, 0x00b10040, 0x04110203 },
-   { 0x02000005, 0x20002d3c, 0x0021098c, 0x00200020 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000008 },
-   { 0x00600001, 0x20600169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x20800169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x20a00169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x20c00169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x20e00169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x21000169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x21200169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x21400169, 0x00000000, 0x00000000 },
-   { 0x02000005, 0x20002d3c, 0x0021002c, 0x00100010 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000008 },
-   { 0x00600001, 0x20700169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x20900169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x20b00169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x20d00169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x20f00169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x21100169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x21300169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x21500169, 0x00000000, 0x00000000 },
-   { 0x02000005, 0x20002d3c, 0x0021002c, 0x00080008 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000008 },
-   { 0x00600001, 0x21600169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x21800169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x21a00169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x21c00169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x21e00169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x22000169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x22200169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x22400169, 0x00000000, 0x00000000 },
-   { 0x02000005, 0x20002d3c, 0x0021002c, 0x00040004 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000008 },
-   { 0x00600001, 0x21700169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x21900169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x21b00169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x21d00169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x21f00169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x22100169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x22300169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x22500169, 0x00000000, 0x00000000 },
-   { 0x02000005, 0x20002d3c, 0x0021002c, 0x00020002 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000004 },
-   { 0x00800001, 0x22600169, 0x00000000, 0x00000000 },
-   { 0x00800001, 0x22800169, 0x00000000, 0x00000000 },
-   { 0x00800001, 0x22a00169, 0x00000000, 0x00000000 },
-   { 0x00800001, 0x22c00169, 0x00000000, 0x00000000 },
-   { 0x02000005, 0x20002d3c, 0x0021002c, 0x00010001 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000004 },
-   { 0x00800001, 0x22e00169, 0x00000000, 0x00000000 },
-   { 0x00800001, 0x23000169, 0x00000000, 0x00000000 },
-   { 0x00800001, 0x23200169, 0x00000000, 0x00000000 },
-   { 0x00800001, 0x23400169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x2e600021, 0x008d0020, 0x00000000 },
-   { 0x00600001, 0x2e800021, 0x008d0020, 0x00000000 },
-   { 0x00000001, 0x20280061, 0x00000000, 0x0007000f },
-   { 0x0020000c, 0x2e6e2dad, 0x0045002e, 0x00010001 },
-   { 0x00200040, 0x2e603421, 0x00450e80, 0x00450e6e },
-   { 0x00000005, 0x2e640c21, 0x00210e64, 0xfffffffe },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
-   { 0x02000005, 0x20002e3c, 0x0021003f, 0x00010001 },
-   { 0x00010040, 0x2e640c21, 0x00210e64, 0x00000001 },
-   { 0x01000005, 0x20002d3c, 0x0021002e, 0x00010001 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x000000b1 },
-   { 0x01000005, 0x20002d3c, 0x00210030, 0x00010001 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x0000007d },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
-   { 0x00800031, 0x29c01d29, 0x008d0e60, 0x0411a004 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a001d29, 0x008d0e60, 0x0411a004 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a401d29, 0x008d0e60, 0x0411a004 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a801d29, 0x008d0e60, 0x0411a004 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0007001f },
-   { 0x00800031, 0x2ac01d29, 0x008d0e60, 0x0418a004 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
-   { 0x00800031, 0x2bc01d29, 0x008d0e60, 0x0411a004 },
-   { 0x00000005, 0x20580c21, 0x00210e60, 0x00000003 },
-   { 0x00000041, 0x20580c21, 0x00210058, 0x00000019 },
-   { 0x00000020, 0x34001400, 0x00001400, 0x00210058 },
-   { 0x00800040, 0x2c004629, 0x00b109c0, 0x00b10a00 },
-   { 0x00800040, 0x2c204629, 0x00b10a00, 0x00b10a40 },
-   { 0x00800040, 0x2c404629, 0x00b10a40, 0x00b10a80 },
-   { 0x00800040, 0x2c604629, 0x00b10a80, 0x00b10ac0 },
-   { 0x00800040, 0x2c804629, 0x00b10ac0, 0x00b10b00 },
-   { 0x00800040, 0x2ca04629, 0x00b10b00, 0x00b10b40 },
-   { 0x00800040, 0x2cc04629, 0x00b10b40, 0x00b10b80 },
-   { 0x00800040, 0x2ce04629, 0x00b10b80, 0x00b10bc0 },
-   { 0x00800040, 0x2c004529, 0x00b10c00, 0x00b109c1 },
-   { 0x00800040, 0x2c204529, 0x00b10c20, 0x00b10a01 },
-   { 0x00800040, 0x2c404529, 0x00b10c40, 0x00b10a41 },
-   { 0x00800040, 0x2c604529, 0x00b10c60, 0x00b10a81 },
-   { 0x00800040, 0x2c804529, 0x00b10c80, 0x00b10ac1 },
-   { 0x00800040, 0x2ca04529, 0x00b10ca0, 0x00b10b01 },
-   { 0x00800040, 0x2cc04529, 0x00b10cc0, 0x00b10b41 },
-   { 0x00800040, 0x2ce04529, 0x00b10ce0, 0x00b10b81 },
-   { 0x00800040, 0x2c004529, 0x00b10c00, 0x00b10a01 },
-   { 0x00800040, 0x2c204529, 0x00b10c20, 0x00b10a41 },
-   { 0x00800040, 0x2c404529, 0x00b10c40, 0x00b10a81 },
-   { 0x00800040, 0x2c604529, 0x00b10c60, 0x00b10ac1 },
-   { 0x00800040, 0x2c804529, 0x00b10c80, 0x00b10b01 },
-   { 0x00800040, 0x2ca04529, 0x00b10ca0, 0x00b10b41 },
-   { 0x00800040, 0x2cc04529, 0x00b10cc0, 0x00b10b81 },
-   { 0x00800040, 0x2ce04529, 0x00b10ce0, 0x00b10bc1 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x0000004a },
-   { 0x00800040, 0x2c004629, 0x00b109c1, 0x00b10a01 },
-   { 0x00800040, 0x2c204629, 0x00b10a01, 0x00b10a41 },
-   { 0x00800040, 0x2c404629, 0x00b10a41, 0x00b10a81 },
-   { 0x00800040, 0x2c604629, 0x00b10a81, 0x00b10ac1 },
-   { 0x00800040, 0x2c804629, 0x00b10ac1, 0x00b10b01 },
-   { 0x00800040, 0x2ca04629, 0x00b10b01, 0x00b10b41 },
-   { 0x00800040, 0x2cc04629, 0x00b10b41, 0x00b10b81 },
-   { 0x00800040, 0x2ce04629, 0x00b10b81, 0x00b10bc1 },
-   { 0x00800040, 0x2c004529, 0x00b10c00, 0x00b109c2 },
-   { 0x00800040, 0x2c204529, 0x00b10c20, 0x00b10a02 },
-   { 0x00800040, 0x2c404529, 0x00b10c40, 0x00b10a42 },
-   { 0x00800040, 0x2c604529, 0x00b10c60, 0x00b10a82 },
-   { 0x00800040, 0x2c804529, 0x00b10c80, 0x00b10ac2 },
-   { 0x00800040, 0x2ca04529, 0x00b10ca0, 0x00b10b02 },
-   { 0x00800040, 0x2cc04529, 0x00b10cc0, 0x00b10b42 },
-   { 0x00800040, 0x2ce04529, 0x00b10ce0, 0x00b10b82 },
-   { 0x00800040, 0x2c004529, 0x00b10c00, 0x00b10a02 },
-   { 0x00800040, 0x2c204529, 0x00b10c20, 0x00b10a42 },
-   { 0x00800040, 0x2c404529, 0x00b10c40, 0x00b10a82 },
-   { 0x00800040, 0x2c604529, 0x00b10c60, 0x00b10ac2 },
-   { 0x00800040, 0x2c804529, 0x00b10c80, 0x00b10b02 },
-   { 0x00800040, 0x2ca04529, 0x00b10ca0, 0x00b10b42 },
-   { 0x00800040, 0x2cc04529, 0x00b10cc0, 0x00b10b82 },
-   { 0x00800040, 0x2ce04529, 0x00b10ce0, 0x00b10bc2 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000031 },
-   { 0x00800040, 0x2c004629, 0x00b109c2, 0x00b10a02 },
-   { 0x00800040, 0x2c204629, 0x00b10a02, 0x00b10a42 },
-   { 0x00800040, 0x2c404629, 0x00b10a42, 0x00b10a82 },
-   { 0x00800040, 0x2c604629, 0x00b10a82, 0x00b10ac2 },
-   { 0x00800040, 0x2c804629, 0x00b10ac2, 0x00b10b02 },
-   { 0x00800040, 0x2ca04629, 0x00b10b02, 0x00b10b42 },
-   { 0x00800040, 0x2cc04629, 0x00b10b42, 0x00b10b82 },
-   { 0x00800040, 0x2ce04629, 0x00b10b82, 0x00b10bc2 },
-   { 0x00800040, 0x2c004529, 0x00b10c00, 0x00b109c3 },
-   { 0x00800040, 0x2c204529, 0x00b10c20, 0x00b10a03 },
-   { 0x00800040, 0x2c404529, 0x00b10c40, 0x00b10a43 },
-   { 0x00800040, 0x2c604529, 0x00b10c60, 0x00b10a83 },
-   { 0x00800040, 0x2c804529, 0x00b10c80, 0x00b10ac3 },
-   { 0x00800040, 0x2ca04529, 0x00b10ca0, 0x00b10b03 },
-   { 0x00800040, 0x2cc04529, 0x00b10cc0, 0x00b10b43 },
-   { 0x00800040, 0x2ce04529, 0x00b10ce0, 0x00b10b83 },
-   { 0x00800040, 0x2c004529, 0x00b10c00, 0x00b10a03 },
-   { 0x00800040, 0x2c204529, 0x00b10c20, 0x00b10a43 },
-   { 0x00800040, 0x2c404529, 0x00b10c40, 0x00b10a83 },
-   { 0x00800040, 0x2c604529, 0x00b10c60, 0x00b10ac3 },
-   { 0x00800040, 0x2c804529, 0x00b10c80, 0x00b10b03 },
-   { 0x00800040, 0x2ca04529, 0x00b10ca0, 0x00b10b43 },
-   { 0x00800040, 0x2cc04529, 0x00b10cc0, 0x00b10b83 },
-   { 0x00800040, 0x2ce04529, 0x00b10ce0, 0x00b10bc3 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000018 },
-   { 0x00800040, 0x2c004629, 0x00b109c3, 0x00b10a03 },
-   { 0x00800040, 0x2c204629, 0x00b10a03, 0x00b10a43 },
-   { 0x00800040, 0x2c404629, 0x00b10a43, 0x00b10a83 },
-   { 0x00800040, 0x2c604629, 0x00b10a83, 0x00b10ac3 },
-   { 0x00800040, 0x2c804629, 0x00b10ac3, 0x00b10b03 },
-   { 0x00800040, 0x2ca04629, 0x00b10b03, 0x00b10b43 },
-   { 0x00800040, 0x2cc04629, 0x00b10b43, 0x00b10b83 },
-   { 0x00800040, 0x2ce04629, 0x00b10b83, 0x00b10bc3 },
-   { 0x00800040, 0x2c004529, 0x00b10c00, 0x00b109c4 },
-   { 0x00800040, 0x2c204529, 0x00b10c20, 0x00b10a04 },
-   { 0x00800040, 0x2c404529, 0x00b10c40, 0x00b10a44 },
-   { 0x00800040, 0x2c604529, 0x00b10c60, 0x00b10a84 },
-   { 0x00800040, 0x2c804529, 0x00b10c80, 0x00b10ac4 },
-   { 0x00800040, 0x2ca04529, 0x00b10ca0, 0x00b10b04 },
-   { 0x00800040, 0x2cc04529, 0x00b10cc0, 0x00b10b44 },
-   { 0x00800040, 0x2ce04529, 0x00b10ce0, 0x00b10b84 },
-   { 0x00800040, 0x2c004529, 0x00b10c00, 0x00b10a04 },
-   { 0x00800040, 0x2c204529, 0x00b10c20, 0x00b10a44 },
-   { 0x00800040, 0x2c404529, 0x00b10c40, 0x00b10a84 },
-   { 0x00800040, 0x2c604529, 0x00b10c60, 0x00b10ac4 },
-   { 0x00800040, 0x2c804529, 0x00b10c80, 0x00b10b04 },
-   { 0x00800040, 0x2ca04529, 0x00b10ca0, 0x00b10b44 },
-   { 0x00800040, 0x2cc04529, 0x00b10cc0, 0x00b10b84 },
-   { 0x00800040, 0x2ce04529, 0x00b10ce0, 0x00b10bc4 },
-   { 0x00800008, 0x2c002d29, 0x00b10c00, 0x00020002 },
-   { 0x00800008, 0x2c202d29, 0x00b10c20, 0x00020002 },
-   { 0x00800008, 0x2c402d29, 0x00b10c40, 0x00020002 },
-   { 0x00800008, 0x2c602d29, 0x00b10c60, 0x00020002 },
-   { 0x00800008, 0x2c802d29, 0x00b10c80, 0x00020002 },
-   { 0x00800008, 0x2ca02d29, 0x00b10ca0, 0x00020002 },
-   { 0x00800008, 0x2cc02d29, 0x00b10cc0, 0x00020002 },
-   { 0x00800008, 0x2ce02d29, 0x00b10ce0, 0x00020002 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x0000009a },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
-   { 0x00800031, 0x29c01d29, 0x008d0e60, 0x0411a004 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a001d29, 0x008d0e60, 0x0411a004 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a401d29, 0x008d0e60, 0x0411a004 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a801d29, 0x008d0e60, 0x0411a004 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0007001f },
-   { 0x00800031, 0x2ac01d29, 0x008d0e60, 0x0418a004 },
-   { 0x00000005, 0x20580c21, 0x00210e60, 0x00000003 },
-   { 0x00000041, 0x20580c21, 0x00210058, 0x00000009 },
-   { 0x00000020, 0x34001400, 0x00001400, 0x00210058 },
-   { 0x80800042, 0x2c004629, 0x00b109c0, 0x00b109c1 },
-   { 0x80800042, 0x2c204629, 0x00b10a00, 0x00b10a01 },
-   { 0x80800042, 0x2c404629, 0x00b10a40, 0x00b10a41 },
-   { 0x80800042, 0x2c604629, 0x00b10a80, 0x00b10a81 },
-   { 0x80800042, 0x2c804629, 0x00b10ac0, 0x00b10ac1 },
-   { 0x80800042, 0x2ca04629, 0x00b10b00, 0x00b10b01 },
-   { 0x80800042, 0x2cc04629, 0x00b10b40, 0x00b10b41 },
-   { 0x80800042, 0x2ce04629, 0x00b10b80, 0x00b10b81 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x0000001a },
-   { 0x80800042, 0x2c004629, 0x00b109c1, 0x00b109c2 },
-   { 0x80800042, 0x2c204629, 0x00b10a01, 0x00b10a02 },
-   { 0x80800042, 0x2c404629, 0x00b10a41, 0x00b10a42 },
-   { 0x80800042, 0x2c604629, 0x00b10a81, 0x00b10a82 },
-   { 0x80800042, 0x2c804629, 0x00b10ac1, 0x00b10ac2 },
-   { 0x80800042, 0x2ca04629, 0x00b10b01, 0x00b10b02 },
-   { 0x80800042, 0x2cc04629, 0x00b10b41, 0x00b10b42 },
-   { 0x80800042, 0x2ce04629, 0x00b10b81, 0x00b10b82 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000011 },
-   { 0x80800042, 0x2c004629, 0x00b109c2, 0x00b109c3 },
-   { 0x80800042, 0x2c204629, 0x00b10a02, 0x00b10a03 },
-   { 0x80800042, 0x2c404629, 0x00b10a42, 0x00b10a43 },
-   { 0x80800042, 0x2c604629, 0x00b10a82, 0x00b10a83 },
-   { 0x80800042, 0x2c804629, 0x00b10ac2, 0x00b10ac3 },
-   { 0x80800042, 0x2ca04629, 0x00b10b02, 0x00b10b03 },
-   { 0x80800042, 0x2cc04629, 0x00b10b42, 0x00b10b43 },
-   { 0x80800042, 0x2ce04629, 0x00b10b82, 0x00b10b83 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000008 },
-   { 0x80800042, 0x2c004629, 0x00b109c3, 0x00b109c4 },
-   { 0x80800042, 0x2c204629, 0x00b10a03, 0x00b10a04 },
-   { 0x80800042, 0x2c404629, 0x00b10a43, 0x00b10a44 },
-   { 0x80800042, 0x2c604629, 0x00b10a83, 0x00b10a84 },
-   { 0x80800042, 0x2c804629, 0x00b10ac3, 0x00b10ac4 },
-   { 0x80800042, 0x2ca04629, 0x00b10b03, 0x00b10b04 },
-   { 0x80800042, 0x2cc04629, 0x00b10b43, 0x00b10b44 },
-   { 0x80800042, 0x2ce04629, 0x00b10b83, 0x00b10b84 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000068 },
-   { 0x01000005, 0x20002d3c, 0x00210030, 0x00010001 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000035 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
-   { 0x00800031, 0x29c01d29, 0x008d0e60, 0x0411a004 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a001d29, 0x008d0e60, 0x0411a004 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a401d29, 0x008d0e60, 0x0411a004 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a801d29, 0x008d0e60, 0x0411a004 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0007001f },
-   { 0x00800031, 0x2ac01d29, 0x008d0e60, 0x0418a004 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
-   { 0x00800031, 0x2bc01d29, 0x008d0e60, 0x0411a004 },
-   { 0x00000005, 0x20580c21, 0x00210e60, 0x00000003 },
-   { 0x00000041, 0x20580c21, 0x00210058, 0x00000009 },
-   { 0x00000020, 0x34001400, 0x00001400, 0x00210058 },
-   { 0x80800042, 0x2c004629, 0x00b109c0, 0x00b10a00 },
-   { 0x80800042, 0x2c204629, 0x00b10a00, 0x00b10a40 },
-   { 0x80800042, 0x2c404629, 0x00b10a40, 0x00b10a80 },
-   { 0x80800042, 0x2c604629, 0x00b10a80, 0x00b10ac0 },
-   { 0x80800042, 0x2c804629, 0x00b10ac0, 0x00b10b00 },
-   { 0x80800042, 0x2ca04629, 0x00b10b00, 0x00b10b40 },
-   { 0x80800042, 0x2cc04629, 0x00b10b40, 0x00b10b80 },
-   { 0x80800042, 0x2ce04629, 0x00b10b80, 0x00b10bc0 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x0000001a },
-   { 0x80800042, 0x2c004629, 0x00b109c1, 0x00b10a01 },
-   { 0x80800042, 0x2c204629, 0x00b10a01, 0x00b10a41 },
-   { 0x80800042, 0x2c404629, 0x00b10a41, 0x00b10a81 },
-   { 0x80800042, 0x2c604629, 0x00b10a81, 0x00b10ac1 },
-   { 0x80800042, 0x2c804629, 0x00b10ac1, 0x00b10b01 },
-   { 0x80800042, 0x2ca04629, 0x00b10b01, 0x00b10b41 },
-   { 0x80800042, 0x2cc04629, 0x00b10b41, 0x00b10b81 },
-   { 0x80800042, 0x2ce04629, 0x00b10b81, 0x00b10bc1 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000011 },
-   { 0x80800042, 0x2c004629, 0x00b109c2, 0x00b10a02 },
-   { 0x80800042, 0x2c204629, 0x00b10a02, 0x00b10a42 },
-   { 0x80800042, 0x2c404629, 0x00b10a42, 0x00b10a82 },
-   { 0x80800042, 0x2c604629, 0x00b10a82, 0x00b10ac2 },
-   { 0x80800042, 0x2c804629, 0x00b10ac2, 0x00b10b02 },
-   { 0x80800042, 0x2ca04629, 0x00b10b02, 0x00b10b42 },
-   { 0x80800042, 0x2cc04629, 0x00b10b42, 0x00b10b82 },
-   { 0x80800042, 0x2ce04629, 0x00b10b82, 0x00b10bc2 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000008 },
-   { 0x80800042, 0x2c004629, 0x00b109c3, 0x00b10a03 },
-   { 0x80800042, 0x2c204629, 0x00b10a03, 0x00b10a43 },
-   { 0x80800042, 0x2c404629, 0x00b10a43, 0x00b10a83 },
-   { 0x80800042, 0x2c604629, 0x00b10a83, 0x00b10ac3 },
-   { 0x80800042, 0x2c804629, 0x00b10ac3, 0x00b10b03 },
-   { 0x80800042, 0x2ca04629, 0x00b10b03, 0x00b10b43 },
-   { 0x80800042, 0x2cc04629, 0x00b10b43, 0x00b10b83 },
-   { 0x80800042, 0x2ce04629, 0x00b10b83, 0x00b10bc3 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000031 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
-   { 0x00800031, 0x29c01d29, 0x008d0e60, 0x0411a004 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a001d29, 0x008d0e60, 0x0411a004 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a401d29, 0x008d0e60, 0x0411a004 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a801d29, 0x008d0e60, 0x0411a004 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0007001f },
-   { 0x00800031, 0x2ac01d29, 0x008d0e60, 0x0418a004 },
-   { 0x00000005, 0x20580c21, 0x00210e60, 0x00000003 },
-   { 0x00000041, 0x20580c21, 0x00210058, 0x00000009 },
-   { 0x00000020, 0x34001400, 0x00001400, 0x00210058 },
-   { 0x00800001, 0x2c000229, 0x00b109c0, 0x00000000 },
-   { 0x00800001, 0x2c200229, 0x00b10a00, 0x00000000 },
-   { 0x00800001, 0x2c400229, 0x00b10a40, 0x00000000 },
-   { 0x00800001, 0x2c600229, 0x00b10a80, 0x00000000 },
-   { 0x00800001, 0x2c800229, 0x00b10ac0, 0x00000000 },
-   { 0x00800001, 0x2ca00229, 0x00b10b00, 0x00000000 },
-   { 0x00800001, 0x2cc00229, 0x00b10b40, 0x00000000 },
-   { 0x00800001, 0x2ce00229, 0x00b10b80, 0x00000000 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x0000001a },
-   { 0x00800001, 0x2c000229, 0x00b109c1, 0x00000000 },
-   { 0x00800001, 0x2c200229, 0x00b10a01, 0x00000000 },
-   { 0x00800001, 0x2c400229, 0x00b10a41, 0x00000000 },
-   { 0x00800001, 0x2c600229, 0x00b10a81, 0x00000000 },
-   { 0x00800001, 0x2c800229, 0x00b10ac1, 0x00000000 },
-   { 0x00800001, 0x2ca00229, 0x00b10b01, 0x00000000 },
-   { 0x00800001, 0x2cc00229, 0x00b10b41, 0x00000000 },
-   { 0x00800001, 0x2ce00229, 0x00b10b81, 0x00000000 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000011 },
-   { 0x00800001, 0x2c000229, 0x00b109c2, 0x00000000 },
-   { 0x00800001, 0x2c200229, 0x00b10a02, 0x00000000 },
-   { 0x00800001, 0x2c400229, 0x00b10a42, 0x00000000 },
-   { 0x00800001, 0x2c600229, 0x00b10a82, 0x00000000 },
-   { 0x00800001, 0x2c800229, 0x00b10ac2, 0x00000000 },
-   { 0x00800001, 0x2ca00229, 0x00b10b02, 0x00000000 },
-   { 0x00800001, 0x2cc00229, 0x00b10b42, 0x00000000 },
-   { 0x00800001, 0x2ce00229, 0x00b10b82, 0x00000000 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000008 },
-   { 0x00800001, 0x2c000229, 0x00b109c3, 0x00000000 },
-   { 0x00800001, 0x2c200229, 0x00b10a03, 0x00000000 },
-   { 0x00800001, 0x2c400229, 0x00b10a43, 0x00000000 },
-   { 0x00800001, 0x2c600229, 0x00b10a83, 0x00000000 },
-   { 0x00800001, 0x2c800229, 0x00b10ac3, 0x00000000 },
-   { 0x00800001, 0x2ca00229, 0x00b10b03, 0x00000000 },
-   { 0x00800001, 0x2cc00229, 0x00b10b43, 0x00000000 },
-   { 0x00800001, 0x2ce00229, 0x00b10b83, 0x00000000 },
-   { 0x00600001, 0x23800021, 0x008d0c00, 0x00000000 },
-   { 0x00600001, 0x23c00021, 0x008d0c20, 0x00000000 },
-   { 0x00600001, 0x24000021, 0x008d0c40, 0x00000000 },
-   { 0x00600001, 0x24400021, 0x008d0c60, 0x00000000 },
-   { 0x00600001, 0x24800021, 0x008d0c80, 0x00000000 },
-   { 0x00600001, 0x24c00021, 0x008d0ca0, 0x00000000 },
-   { 0x00600001, 0x25000021, 0x008d0cc0, 0x00000000 },
-   { 0x00600001, 0x25400021, 0x008d0ce0, 0x00000000 },
-   { 0x0020000c, 0x2e6e2dad, 0x00450036, 0x00010001 },
-   { 0x00200040, 0x2e603421, 0x00450e80, 0x00450e6e },
-   { 0x00000005, 0x2e640c21, 0x00210e64, 0xfffffffe },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
-   { 0x02000005, 0x20002e3c, 0x0021003f, 0x00040004 },
-   { 0x00010040, 0x2e640c21, 0x00210e64, 0x00000001 },
-   { 0x01000005, 0x20002d3c, 0x00210036, 0x00010001 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x000000b1 },
-   { 0x01000005, 0x20002d3c, 0x00210038, 0x00010001 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x0000007d },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
-   { 0x00800031, 0x29c01d29, 0x008d0e60, 0x0411a004 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a001d29, 0x008d0e60, 0x0411a004 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a401d29, 0x008d0e60, 0x0411a004 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a801d29, 0x008d0e60, 0x0411a004 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0007001f },
-   { 0x00800031, 0x2ac01d29, 0x008d0e60, 0x0418a004 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
-   { 0x00800031, 0x2bc01d29, 0x008d0e60, 0x0411a004 },
-   { 0x00000005, 0x20580c21, 0x00210e60, 0x00000003 },
-   { 0x00000041, 0x20580c21, 0x00210058, 0x00000019 },
-   { 0x00000020, 0x34001400, 0x00001400, 0x00210058 },
-   { 0x00800040, 0x2c004629, 0x00b109c0, 0x00b10a00 },
-   { 0x00800040, 0x2c204629, 0x00b10a00, 0x00b10a40 },
-   { 0x00800040, 0x2c404629, 0x00b10a40, 0x00b10a80 },
-   { 0x00800040, 0x2c604629, 0x00b10a80, 0x00b10ac0 },
-   { 0x00800040, 0x2c804629, 0x00b10ac0, 0x00b10b00 },
-   { 0x00800040, 0x2ca04629, 0x00b10b00, 0x00b10b40 },
-   { 0x00800040, 0x2cc04629, 0x00b10b40, 0x00b10b80 },
-   { 0x00800040, 0x2ce04629, 0x00b10b80, 0x00b10bc0 },
-   { 0x00800040, 0x2c004529, 0x00b10c00, 0x00b109c1 },
-   { 0x00800040, 0x2c204529, 0x00b10c20, 0x00b10a01 },
-   { 0x00800040, 0x2c404529, 0x00b10c40, 0x00b10a41 },
-   { 0x00800040, 0x2c604529, 0x00b10c60, 0x00b10a81 },
-   { 0x00800040, 0x2c804529, 0x00b10c80, 0x00b10ac1 },
-   { 0x00800040, 0x2ca04529, 0x00b10ca0, 0x00b10b01 },
-   { 0x00800040, 0x2cc04529, 0x00b10cc0, 0x00b10b41 },
-   { 0x00800040, 0x2ce04529, 0x00b10ce0, 0x00b10b81 },
-   { 0x00800040, 0x2c004529, 0x00b10c00, 0x00b10a01 },
-   { 0x00800040, 0x2c204529, 0x00b10c20, 0x00b10a41 },
-   { 0x00800040, 0x2c404529, 0x00b10c40, 0x00b10a81 },
-   { 0x00800040, 0x2c604529, 0x00b10c60, 0x00b10ac1 },
-   { 0x00800040, 0x2c804529, 0x00b10c80, 0x00b10b01 },
-   { 0x00800040, 0x2ca04529, 0x00b10ca0, 0x00b10b41 },
-   { 0x00800040, 0x2cc04529, 0x00b10cc0, 0x00b10b81 },
-   { 0x00800040, 0x2ce04529, 0x00b10ce0, 0x00b10bc1 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x0000004a },
-   { 0x00800040, 0x2c004629, 0x00b109c1, 0x00b10a01 },
-   { 0x00800040, 0x2c204629, 0x00b10a01, 0x00b10a41 },
-   { 0x00800040, 0x2c404629, 0x00b10a41, 0x00b10a81 },
-   { 0x00800040, 0x2c604629, 0x00b10a81, 0x00b10ac1 },
-   { 0x00800040, 0x2c804629, 0x00b10ac1, 0x00b10b01 },
-   { 0x00800040, 0x2ca04629, 0x00b10b01, 0x00b10b41 },
-   { 0x00800040, 0x2cc04629, 0x00b10b41, 0x00b10b81 },
-   { 0x00800040, 0x2ce04629, 0x00b10b81, 0x00b10bc1 },
-   { 0x00800040, 0x2c004529, 0x00b10c00, 0x00b109c2 },
-   { 0x00800040, 0x2c204529, 0x00b10c20, 0x00b10a02 },
-   { 0x00800040, 0x2c404529, 0x00b10c40, 0x00b10a42 },
-   { 0x00800040, 0x2c604529, 0x00b10c60, 0x00b10a82 },
-   { 0x00800040, 0x2c804529, 0x00b10c80, 0x00b10ac2 },
-   { 0x00800040, 0x2ca04529, 0x00b10ca0, 0x00b10b02 },
-   { 0x00800040, 0x2cc04529, 0x00b10cc0, 0x00b10b42 },
-   { 0x00800040, 0x2ce04529, 0x00b10ce0, 0x00b10b82 },
-   { 0x00800040, 0x2c004529, 0x00b10c00, 0x00b10a02 },
-   { 0x00800040, 0x2c204529, 0x00b10c20, 0x00b10a42 },
-   { 0x00800040, 0x2c404529, 0x00b10c40, 0x00b10a82 },
-   { 0x00800040, 0x2c604529, 0x00b10c60, 0x00b10ac2 },
-   { 0x00800040, 0x2c804529, 0x00b10c80, 0x00b10b02 },
-   { 0x00800040, 0x2ca04529, 0x00b10ca0, 0x00b10b42 },
-   { 0x00800040, 0x2cc04529, 0x00b10cc0, 0x00b10b82 },
-   { 0x00800040, 0x2ce04529, 0x00b10ce0, 0x00b10bc2 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000031 },
-   { 0x00800040, 0x2c004629, 0x00b109c2, 0x00b10a02 },
-   { 0x00800040, 0x2c204629, 0x00b10a02, 0x00b10a42 },
-   { 0x00800040, 0x2c404629, 0x00b10a42, 0x00b10a82 },
-   { 0x00800040, 0x2c604629, 0x00b10a82, 0x00b10ac2 },
-   { 0x00800040, 0x2c804629, 0x00b10ac2, 0x00b10b02 },
-   { 0x00800040, 0x2ca04629, 0x00b10b02, 0x00b10b42 },
-   { 0x00800040, 0x2cc04629, 0x00b10b42, 0x00b10b82 },
-   { 0x00800040, 0x2ce04629, 0x00b10b82, 0x00b10bc2 },
-   { 0x00800040, 0x2c004529, 0x00b10c00, 0x00b109c3 },
-   { 0x00800040, 0x2c204529, 0x00b10c20, 0x00b10a03 },
-   { 0x00800040, 0x2c404529, 0x00b10c40, 0x00b10a43 },
-   { 0x00800040, 0x2c604529, 0x00b10c60, 0x00b10a83 },
-   { 0x00800040, 0x2c804529, 0x00b10c80, 0x00b10ac3 },
-   { 0x00800040, 0x2ca04529, 0x00b10ca0, 0x00b10b03 },
-   { 0x00800040, 0x2cc04529, 0x00b10cc0, 0x00b10b43 },
-   { 0x00800040, 0x2ce04529, 0x00b10ce0, 0x00b10b83 },
-   { 0x00800040, 0x2c004529, 0x00b10c00, 0x00b10a03 },
-   { 0x00800040, 0x2c204529, 0x00b10c20, 0x00b10a43 },
-   { 0x00800040, 0x2c404529, 0x00b10c40, 0x00b10a83 },
-   { 0x00800040, 0x2c604529, 0x00b10c60, 0x00b10ac3 },
-   { 0x00800040, 0x2c804529, 0x00b10c80, 0x00b10b03 },
-   { 0x00800040, 0x2ca04529, 0x00b10ca0, 0x00b10b43 },
-   { 0x00800040, 0x2cc04529, 0x00b10cc0, 0x00b10b83 },
-   { 0x00800040, 0x2ce04529, 0x00b10ce0, 0x00b10bc3 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000018 },
-   { 0x00800040, 0x2c004629, 0x00b109c3, 0x00b10a03 },
-   { 0x00800040, 0x2c204629, 0x00b10a03, 0x00b10a43 },
-   { 0x00800040, 0x2c404629, 0x00b10a43, 0x00b10a83 },
-   { 0x00800040, 0x2c604629, 0x00b10a83, 0x00b10ac3 },
-   { 0x00800040, 0x2c804629, 0x00b10ac3, 0x00b10b03 },
-   { 0x00800040, 0x2ca04629, 0x00b10b03, 0x00b10b43 },
-   { 0x00800040, 0x2cc04629, 0x00b10b43, 0x00b10b83 },
-   { 0x00800040, 0x2ce04629, 0x00b10b83, 0x00b10bc3 },
-   { 0x00800040, 0x2c004529, 0x00b10c00, 0x00b109c4 },
-   { 0x00800040, 0x2c204529, 0x00b10c20, 0x00b10a04 },
-   { 0x00800040, 0x2c404529, 0x00b10c40, 0x00b10a44 },
-   { 0x00800040, 0x2c604529, 0x00b10c60, 0x00b10a84 },
-   { 0x00800040, 0x2c804529, 0x00b10c80, 0x00b10ac4 },
-   { 0x00800040, 0x2ca04529, 0x00b10ca0, 0x00b10b04 },
-   { 0x00800040, 0x2cc04529, 0x00b10cc0, 0x00b10b44 },
-   { 0x00800040, 0x2ce04529, 0x00b10ce0, 0x00b10b84 },
-   { 0x00800040, 0x2c004529, 0x00b10c00, 0x00b10a04 },
-   { 0x00800040, 0x2c204529, 0x00b10c20, 0x00b10a44 },
-   { 0x00800040, 0x2c404529, 0x00b10c40, 0x00b10a84 },
-   { 0x00800040, 0x2c604529, 0x00b10c60, 0x00b10ac4 },
-   { 0x00800040, 0x2c804529, 0x00b10c80, 0x00b10b04 },
-   { 0x00800040, 0x2ca04529, 0x00b10ca0, 0x00b10b44 },
-   { 0x00800040, 0x2cc04529, 0x00b10cc0, 0x00b10b84 },
-   { 0x00800040, 0x2ce04529, 0x00b10ce0, 0x00b10bc4 },
-   { 0x00800008, 0x2c002d29, 0x00b10c00, 0x00020002 },
-   { 0x00800008, 0x2c202d29, 0x00b10c20, 0x00020002 },
-   { 0x00800008, 0x2c402d29, 0x00b10c40, 0x00020002 },
-   { 0x00800008, 0x2c602d29, 0x00b10c60, 0x00020002 },
-   { 0x00800008, 0x2c802d29, 0x00b10c80, 0x00020002 },
-   { 0x00800008, 0x2ca02d29, 0x00b10ca0, 0x00020002 },
-   { 0x00800008, 0x2cc02d29, 0x00b10cc0, 0x00020002 },
-   { 0x00800008, 0x2ce02d29, 0x00b10ce0, 0x00020002 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x0000009a },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
-   { 0x00800031, 0x29c01d29, 0x008d0e60, 0x0411a004 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a001d29, 0x008d0e60, 0x0411a004 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a401d29, 0x008d0e60, 0x0411a004 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a801d29, 0x008d0e60, 0x0411a004 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0007001f },
-   { 0x00800031, 0x2ac01d29, 0x008d0e60, 0x0418a004 },
-   { 0x00000005, 0x20580c21, 0x00210e60, 0x00000003 },
-   { 0x00000041, 0x20580c21, 0x00210058, 0x00000009 },
-   { 0x00000020, 0x34001400, 0x00001400, 0x00210058 },
-   { 0x80800042, 0x2c004629, 0x00b109c0, 0x00b109c1 },
-   { 0x80800042, 0x2c204629, 0x00b10a00, 0x00b10a01 },
-   { 0x80800042, 0x2c404629, 0x00b10a40, 0x00b10a41 },
-   { 0x80800042, 0x2c604629, 0x00b10a80, 0x00b10a81 },
-   { 0x80800042, 0x2c804629, 0x00b10ac0, 0x00b10ac1 },
-   { 0x80800042, 0x2ca04629, 0x00b10b00, 0x00b10b01 },
-   { 0x80800042, 0x2cc04629, 0x00b10b40, 0x00b10b41 },
-   { 0x80800042, 0x2ce04629, 0x00b10b80, 0x00b10b81 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x0000001a },
-   { 0x80800042, 0x2c004629, 0x00b109c1, 0x00b109c2 },
-   { 0x80800042, 0x2c204629, 0x00b10a01, 0x00b10a02 },
-   { 0x80800042, 0x2c404629, 0x00b10a41, 0x00b10a42 },
-   { 0x80800042, 0x2c604629, 0x00b10a81, 0x00b10a82 },
-   { 0x80800042, 0x2c804629, 0x00b10ac1, 0x00b10ac2 },
-   { 0x80800042, 0x2ca04629, 0x00b10b01, 0x00b10b02 },
-   { 0x80800042, 0x2cc04629, 0x00b10b41, 0x00b10b42 },
-   { 0x80800042, 0x2ce04629, 0x00b10b81, 0x00b10b82 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000011 },
-   { 0x80800042, 0x2c004629, 0x00b109c2, 0x00b109c3 },
-   { 0x80800042, 0x2c204629, 0x00b10a02, 0x00b10a03 },
-   { 0x80800042, 0x2c404629, 0x00b10a42, 0x00b10a43 },
-   { 0x80800042, 0x2c604629, 0x00b10a82, 0x00b10a83 },
-   { 0x80800042, 0x2c804629, 0x00b10ac2, 0x00b10ac3 },
-   { 0x80800042, 0x2ca04629, 0x00b10b02, 0x00b10b03 },
-   { 0x80800042, 0x2cc04629, 0x00b10b42, 0x00b10b43 },
-   { 0x80800042, 0x2ce04629, 0x00b10b82, 0x00b10b83 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000008 },
-   { 0x80800042, 0x2c004629, 0x00b109c3, 0x00b109c4 },
-   { 0x80800042, 0x2c204629, 0x00b10a03, 0x00b10a04 },
-   { 0x80800042, 0x2c404629, 0x00b10a43, 0x00b10a44 },
-   { 0x80800042, 0x2c604629, 0x00b10a83, 0x00b10a84 },
-   { 0x80800042, 0x2c804629, 0x00b10ac3, 0x00b10ac4 },
-   { 0x80800042, 0x2ca04629, 0x00b10b03, 0x00b10b04 },
-   { 0x80800042, 0x2cc04629, 0x00b10b43, 0x00b10b44 },
-   { 0x80800042, 0x2ce04629, 0x00b10b83, 0x00b10b84 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000068 },
-   { 0x01000005, 0x20002d3c, 0x00210038, 0x00010001 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000035 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
-   { 0x00800031, 0x29c01d29, 0x008d0e60, 0x0411a004 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a001d29, 0x008d0e60, 0x0411a004 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a401d29, 0x008d0e60, 0x0411a004 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a801d29, 0x008d0e60, 0x0411a004 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0007001f },
-   { 0x00800031, 0x2ac01d29, 0x008d0e60, 0x0418a004 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
-   { 0x00800031, 0x2bc01d29, 0x008d0e60, 0x0411a004 },
-   { 0x00000005, 0x20580c21, 0x00210e60, 0x00000003 },
-   { 0x00000041, 0x20580c21, 0x00210058, 0x00000009 },
-   { 0x00000020, 0x34001400, 0x00001400, 0x00210058 },
-   { 0x80800042, 0x2c004629, 0x00b109c0, 0x00b10a00 },
-   { 0x80800042, 0x2c204629, 0x00b10a00, 0x00b10a40 },
-   { 0x80800042, 0x2c404629, 0x00b10a40, 0x00b10a80 },
-   { 0x80800042, 0x2c604629, 0x00b10a80, 0x00b10ac0 },
-   { 0x80800042, 0x2c804629, 0x00b10ac0, 0x00b10b00 },
-   { 0x80800042, 0x2ca04629, 0x00b10b00, 0x00b10b40 },
-   { 0x80800042, 0x2cc04629, 0x00b10b40, 0x00b10b80 },
-   { 0x80800042, 0x2ce04629, 0x00b10b80, 0x00b10bc0 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x0000001a },
-   { 0x80800042, 0x2c004629, 0x00b109c1, 0x00b10a01 },
-   { 0x80800042, 0x2c204629, 0x00b10a01, 0x00b10a41 },
-   { 0x80800042, 0x2c404629, 0x00b10a41, 0x00b10a81 },
-   { 0x80800042, 0x2c604629, 0x00b10a81, 0x00b10ac1 },
-   { 0x80800042, 0x2c804629, 0x00b10ac1, 0x00b10b01 },
-   { 0x80800042, 0x2ca04629, 0x00b10b01, 0x00b10b41 },
-   { 0x80800042, 0x2cc04629, 0x00b10b41, 0x00b10b81 },
-   { 0x80800042, 0x2ce04629, 0x00b10b81, 0x00b10bc1 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000011 },
-   { 0x80800042, 0x2c004629, 0x00b109c2, 0x00b10a02 },
-   { 0x80800042, 0x2c204629, 0x00b10a02, 0x00b10a42 },
-   { 0x80800042, 0x2c404629, 0x00b10a42, 0x00b10a82 },
-   { 0x80800042, 0x2c604629, 0x00b10a82, 0x00b10ac2 },
-   { 0x80800042, 0x2c804629, 0x00b10ac2, 0x00b10b02 },
-   { 0x80800042, 0x2ca04629, 0x00b10b02, 0x00b10b42 },
-   { 0x80800042, 0x2cc04629, 0x00b10b42, 0x00b10b82 },
-   { 0x80800042, 0x2ce04629, 0x00b10b82, 0x00b10bc2 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000008 },
-   { 0x80800042, 0x2c004629, 0x00b109c3, 0x00b10a03 },
-   { 0x80800042, 0x2c204629, 0x00b10a03, 0x00b10a43 },
-   { 0x80800042, 0x2c404629, 0x00b10a43, 0x00b10a83 },
-   { 0x80800042, 0x2c604629, 0x00b10a83, 0x00b10ac3 },
-   { 0x80800042, 0x2c804629, 0x00b10ac3, 0x00b10b03 },
-   { 0x80800042, 0x2ca04629, 0x00b10b03, 0x00b10b43 },
-   { 0x80800042, 0x2cc04629, 0x00b10b43, 0x00b10b83 },
-   { 0x80800042, 0x2ce04629, 0x00b10b83, 0x00b10bc3 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000031 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
-   { 0x00800031, 0x29c01d29, 0x008d0e60, 0x0411a004 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a001d29, 0x008d0e60, 0x0411a004 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a401d29, 0x008d0e60, 0x0411a004 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a801d29, 0x008d0e60, 0x0411a004 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0007001f },
-   { 0x00800031, 0x2ac01d29, 0x008d0e60, 0x0418a004 },
-   { 0x00000005, 0x20580c21, 0x00210e60, 0x00000003 },
-   { 0x00000041, 0x20580c21, 0x00210058, 0x00000009 },
-   { 0x00000020, 0x34001400, 0x00001400, 0x00210058 },
-   { 0x00800001, 0x2c000229, 0x00b109c0, 0x00000000 },
-   { 0x00800001, 0x2c200229, 0x00b10a00, 0x00000000 },
-   { 0x00800001, 0x2c400229, 0x00b10a40, 0x00000000 },
-   { 0x00800001, 0x2c600229, 0x00b10a80, 0x00000000 },
-   { 0x00800001, 0x2c800229, 0x00b10ac0, 0x00000000 },
-   { 0x00800001, 0x2ca00229, 0x00b10b00, 0x00000000 },
-   { 0x00800001, 0x2cc00229, 0x00b10b40, 0x00000000 },
-   { 0x00800001, 0x2ce00229, 0x00b10b80, 0x00000000 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x0000001a },
-   { 0x00800001, 0x2c000229, 0x00b109c1, 0x00000000 },
-   { 0x00800001, 0x2c200229, 0x00b10a01, 0x00000000 },
-   { 0x00800001, 0x2c400229, 0x00b10a41, 0x00000000 },
-   { 0x00800001, 0x2c600229, 0x00b10a81, 0x00000000 },
-   { 0x00800001, 0x2c800229, 0x00b10ac1, 0x00000000 },
-   { 0x00800001, 0x2ca00229, 0x00b10b01, 0x00000000 },
-   { 0x00800001, 0x2cc00229, 0x00b10b41, 0x00000000 },
-   { 0x00800001, 0x2ce00229, 0x00b10b81, 0x00000000 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000011 },
-   { 0x00800001, 0x2c000229, 0x00b109c2, 0x00000000 },
-   { 0x00800001, 0x2c200229, 0x00b10a02, 0x00000000 },
-   { 0x00800001, 0x2c400229, 0x00b10a42, 0x00000000 },
-   { 0x00800001, 0x2c600229, 0x00b10a82, 0x00000000 },
-   { 0x00800001, 0x2c800229, 0x00b10ac2, 0x00000000 },
-   { 0x00800001, 0x2ca00229, 0x00b10b02, 0x00000000 },
-   { 0x00800001, 0x2cc00229, 0x00b10b42, 0x00000000 },
-   { 0x00800001, 0x2ce00229, 0x00b10b82, 0x00000000 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000008 },
-   { 0x00800001, 0x2c000229, 0x00b109c3, 0x00000000 },
-   { 0x00800001, 0x2c200229, 0x00b10a03, 0x00000000 },
-   { 0x00800001, 0x2c400229, 0x00b10a43, 0x00000000 },
-   { 0x00800001, 0x2c600229, 0x00b10a83, 0x00000000 },
-   { 0x00800001, 0x2c800229, 0x00b10ac3, 0x00000000 },
-   { 0x00800001, 0x2ca00229, 0x00b10b03, 0x00000000 },
-   { 0x00800001, 0x2cc00229, 0x00b10b43, 0x00000000 },
-   { 0x00800001, 0x2ce00229, 0x00b10b83, 0x00000000 },
-   { 0x00600001, 0x23a00021, 0x008d0c00, 0x00000000 },
-   { 0x00600001, 0x23e00021, 0x008d0c20, 0x00000000 },
-   { 0x00600001, 0x24200021, 0x008d0c40, 0x00000000 },
-   { 0x00600001, 0x24600021, 0x008d0c60, 0x00000000 },
-   { 0x00600001, 0x24a00021, 0x008d0c80, 0x00000000 },
-   { 0x00600001, 0x24e00021, 0x008d0ca0, 0x00000000 },
-   { 0x00600001, 0x25200021, 0x008d0cc0, 0x00000000 },
-   { 0x00600001, 0x25600021, 0x008d0ce0, 0x00000000 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0007000f },
-   { 0x0020000c, 0x2e6e2dad, 0x0045002e, 0x00020002 },
-   { 0x0020000c, 0x2e601ca5, 0x00450e80, 0x00000001 },
-   { 0x00200040, 0x2e6034a5, 0x00450e60, 0x00450e6e },
-   { 0x00000005, 0x2e640c21, 0x00210e64, 0xfffffffe },
-   { 0x02000005, 0x20002e3c, 0x0021003f, 0x00010001 },
-   { 0x00010040, 0x2e640c21, 0x00210e64, 0x00000001 },
-   { 0x01000005, 0x20002d3c, 0x0021002e, 0x00020002 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x000000a2 },
-   { 0x01000005, 0x20002d3c, 0x00210030, 0x00020002 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000076 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0007000f },
-   { 0x00800031, 0x2ac01d29, 0x00ad0e60, 0x0414a005 },
-   { 0x00800031, 0x2b601d29, 0x00ad0e60, 0x0414a006 },
-   { 0x00000005, 0x20580c21, 0x00210e60, 0x00000003 },
-   { 0x00000041, 0x20580c21, 0x00210058, 0x00000019 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0001000f },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 },
-   { 0x00800031, 0x2b401d29, 0x00ad0e60, 0x0411a005 },
-   { 0x00800031, 0x2be01d29, 0x00ad0e60, 0x0411a006 },
-   { 0x00000020, 0x34001400, 0x00001400, 0x00210058 },
-   { 0x00800040, 0x29c04629, 0x00ad0ac0, 0x00ad0ae0 },
-   { 0x00800040, 0x29e04629, 0x00ad0ae0, 0x00ad0b00 },
-   { 0x00800040, 0x2a004629, 0x00ad0b00, 0x00ad0b20 },
-   { 0x00800040, 0x2a204629, 0x00ad0b20, 0x00ad0b40 },
-   { 0x00800040, 0x29c04529, 0x00ad09c0, 0x00ad0ac1 },
-   { 0x00800040, 0x29e04529, 0x00ad09e0, 0x00ad0ae1 },
-   { 0x00800040, 0x2a004529, 0x00ad0a00, 0x00ad0b01 },
-   { 0x00800040, 0x2a204529, 0x00ad0a20, 0x00ad0b21 },
-   { 0x00800040, 0x29c04529, 0x00ad09c0, 0x00ad0ae1 },
-   { 0x00800040, 0x29e04529, 0x00ad09e0, 0x00ad0b01 },
-   { 0x00800040, 0x2a004529, 0x00ad0a00, 0x00ad0b21 },
-   { 0x00800040, 0x2a204529, 0x00ad0a20, 0x00ad0b41 },
-   { 0x00800040, 0x2a404629, 0x00ad0b60, 0x00ad0b80 },
-   { 0x00800040, 0x2a604629, 0x00ad0b80, 0x00ad0ba0 },
-   { 0x00800040, 0x2a804629, 0x00ad0ba0, 0x00ad0bc0 },
-   { 0x00800040, 0x2aa04629, 0x00ad0bc0, 0x00ad0be0 },
-   { 0x00800040, 0x2a404529, 0x00ad0a40, 0x00ad0b61 },
-   { 0x00800040, 0x2a604529, 0x00ad0a60, 0x00ad0b81 },
-   { 0x00800040, 0x2a804529, 0x00ad0a80, 0x00ad0ba1 },
-   { 0x00800040, 0x2aa04529, 0x00ad0aa0, 0x00ad0bc1 },
-   { 0x00800040, 0x2a404529, 0x00ad0a40, 0x00ad0b81 },
-   { 0x00800040, 0x2a604529, 0x00ad0a60, 0x00ad0ba1 },
-   { 0x00800040, 0x2a804529, 0x00ad0a80, 0x00ad0bc1 },
-   { 0x00800040, 0x2aa04529, 0x00ad0aa0, 0x00ad0be1 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x0000004a },
-   { 0x00800040, 0x29c04629, 0x00ad0ac1, 0x00ad0ae1 },
-   { 0x00800040, 0x29e04629, 0x00ad0ae1, 0x00ad0b01 },
-   { 0x00800040, 0x2a004629, 0x00ad0b01, 0x00ad0b21 },
-   { 0x00800040, 0x2a204629, 0x00ad0b21, 0x00ad0b41 },
-   { 0x00800040, 0x29c04529, 0x00ad09c0, 0x00ad0ac2 },
-   { 0x00800040, 0x29e04529, 0x00ad09e0, 0x00ad0ae2 },
-   { 0x00800040, 0x2a004529, 0x00ad0a00, 0x00ad0b02 },
-   { 0x00800040, 0x2a204529, 0x00ad0a20, 0x00ad0b22 },
-   { 0x00800040, 0x29c04529, 0x00ad09c0, 0x00ad0ae2 },
-   { 0x00800040, 0x29e04529, 0x00ad09e0, 0x00ad0b02 },
-   { 0x00800040, 0x2a004529, 0x00ad0a00, 0x00ad0b22 },
-   { 0x00800040, 0x2a204529, 0x00ad0a20, 0x00ad0b42 },
-   { 0x00800040, 0x2a404629, 0x00ad0b61, 0x00ad0b81 },
-   { 0x00800040, 0x2a604629, 0x00ad0b81, 0x00ad0ba1 },
-   { 0x00800040, 0x2a804629, 0x00ad0ba1, 0x00ad0bc1 },
-   { 0x00800040, 0x2aa04629, 0x00ad0bc1, 0x00ad0be1 },
-   { 0x00800040, 0x2a404529, 0x00ad0a40, 0x00ad0b62 },
-   { 0x00800040, 0x2a604529, 0x00ad0a60, 0x00ad0b82 },
-   { 0x00800040, 0x2a804529, 0x00ad0a80, 0x00ad0ba2 },
-   { 0x00800040, 0x2aa04529, 0x00ad0aa0, 0x00ad0bc2 },
-   { 0x00800040, 0x2a404529, 0x00ad0a40, 0x00ad0b82 },
-   { 0x00800040, 0x2a604529, 0x00ad0a60, 0x00ad0ba2 },
-   { 0x00800040, 0x2a804529, 0x00ad0a80, 0x00ad0bc2 },
-   { 0x00800040, 0x2aa04529, 0x00ad0aa0, 0x00ad0be2 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000031 },
-   { 0x00800040, 0x29c04629, 0x00ad0ac2, 0x00ad0ae2 },
-   { 0x00800040, 0x29e04629, 0x00ad0ae2, 0x00ad0b02 },
-   { 0x00800040, 0x2a004629, 0x00ad0b02, 0x00ad0b22 },
-   { 0x00800040, 0x2a204629, 0x00ad0b22, 0x00ad0b42 },
-   { 0x00800040, 0x29c04529, 0x00ad09c0, 0x00ad0ac3 },
-   { 0x00800040, 0x29e04529, 0x00ad09e0, 0x00ad0ae3 },
-   { 0x00800040, 0x2a004529, 0x00ad0a00, 0x00ad0b03 },
-   { 0x00800040, 0x2a204529, 0x00ad0a20, 0x00ad0b23 },
-   { 0x00800040, 0x29c04529, 0x00ad09c0, 0x00ad0ae3 },
-   { 0x00800040, 0x29e04529, 0x00ad09e0, 0x00ad0b03 },
-   { 0x00800040, 0x2a004529, 0x00ad0a00, 0x00ad0b23 },
-   { 0x00800040, 0x2a204529, 0x00ad0a20, 0x00ad0b43 },
-   { 0x00800040, 0x2a404629, 0x00ad0b62, 0x00ad0b82 },
-   { 0x00800040, 0x2a604629, 0x00ad0b82, 0x00ad0ba2 },
-   { 0x00800040, 0x2a804629, 0x00ad0ba2, 0x00ad0bc2 },
-   { 0x00800040, 0x2aa04629, 0x00ad0bc2, 0x00ad0be2 },
-   { 0x00800040, 0x2a404529, 0x00ad0a40, 0x00ad0b63 },
-   { 0x00800040, 0x2a604529, 0x00ad0a60, 0x00ad0b83 },
-   { 0x00800040, 0x2a804529, 0x00ad0a80, 0x00ad0ba3 },
-   { 0x00800040, 0x2aa04529, 0x00ad0aa0, 0x00ad0bc3 },
-   { 0x00800040, 0x2a404529, 0x00ad0a40, 0x00ad0b83 },
-   { 0x00800040, 0x2a604529, 0x00ad0a60, 0x00ad0ba3 },
-   { 0x00800040, 0x2a804529, 0x00ad0a80, 0x00ad0bc3 },
-   { 0x00800040, 0x2aa04529, 0x00ad0aa0, 0x00ad0be3 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000018 },
-   { 0x00800040, 0x29c04629, 0x00ad0ac3, 0x00ad0ae3 },
-   { 0x00800040, 0x29e04629, 0x00ad0ae3, 0x00ad0b03 },
-   { 0x00800040, 0x2a004629, 0x00ad0b03, 0x00ad0b23 },
-   { 0x00800040, 0x2a204629, 0x00ad0b23, 0x00ad0b43 },
-   { 0x00800040, 0x29c04529, 0x00ad09c0, 0x00ad0ac4 },
-   { 0x00800040, 0x29e04529, 0x00ad09e0, 0x00ad0ae4 },
-   { 0x00800040, 0x2a004529, 0x00ad0a00, 0x00ad0b04 },
-   { 0x00800040, 0x2a204529, 0x00ad0a20, 0x00ad0b24 },
-   { 0x00800040, 0x29c04529, 0x00ad09c0, 0x00ad0ae4 },
-   { 0x00800040, 0x29e04529, 0x00ad09e0, 0x00ad0b04 },
-   { 0x00800040, 0x2a004529, 0x00ad0a00, 0x00ad0b24 },
-   { 0x00800040, 0x2a204529, 0x00ad0a20, 0x00ad0b44 },
-   { 0x00800040, 0x2a404629, 0x00ad0b63, 0x00ad0b83 },
-   { 0x00800040, 0x2a604629, 0x00ad0b83, 0x00ad0ba3 },
-   { 0x00800040, 0x2a804629, 0x00ad0ba3, 0x00ad0bc3 },
-   { 0x00800040, 0x2aa04629, 0x00ad0bc3, 0x00ad0be3 },
-   { 0x00800040, 0x2a404529, 0x00ad0a40, 0x00ad0b64 },
-   { 0x00800040, 0x2a604529, 0x00ad0a60, 0x00ad0b84 },
-   { 0x00800040, 0x2a804529, 0x00ad0a80, 0x00ad0ba4 },
-   { 0x00800040, 0x2aa04529, 0x00ad0aa0, 0x00ad0bc4 },
-   { 0x00800040, 0x2a404529, 0x00ad0a40, 0x00ad0b84 },
-   { 0x00800040, 0x2a604529, 0x00ad0a60, 0x00ad0ba4 },
-   { 0x00800040, 0x2a804529, 0x00ad0a80, 0x00ad0bc4 },
-   { 0x00800040, 0x2aa04529, 0x00ad0aa0, 0x00ad0be4 },
-   { 0x80800008, 0x29c02d29, 0x00b109c0, 0x00020002 },
-   { 0x80800008, 0x29e02d29, 0x00b109e0, 0x00020002 },
-   { 0x80800008, 0x2a002d29, 0x00b10a00, 0x00020002 },
-   { 0x80800008, 0x2a202d29, 0x00b10a20, 0x00020002 },
-   { 0x80800008, 0x2a402d29, 0x00b10a40, 0x00020002 },
-   { 0x80800008, 0x2a602d29, 0x00b10a60, 0x00020002 },
-   { 0x80800008, 0x2a802d29, 0x00b10a80, 0x00020002 },
-   { 0x80800008, 0x2aa02d29, 0x00b10aa0, 0x00020002 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000082 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0007000f },
-   { 0x00800031, 0x2ac01d29, 0x00ad0e60, 0x0414a005 },
-   { 0x00800031, 0x2b601d29, 0x00ad0e60, 0x0414a006 },
-   { 0x00000005, 0x20580c21, 0x00210e60, 0x00000003 },
-   { 0x00000041, 0x20580c21, 0x00210058, 0x00000009 },
-   { 0x00000020, 0x34001400, 0x00001400, 0x00210058 },
-   { 0x80800042, 0x29c04629, 0x00ad0ac0, 0x00ad0ac1 },
-   { 0x80800042, 0x29e04629, 0x00ad0ae0, 0x00ad0ae1 },
-   { 0x80800042, 0x2a004629, 0x00ad0b00, 0x00ad0b01 },
-   { 0x80800042, 0x2a204629, 0x00ad0b20, 0x00ad0b21 },
-   { 0x80800042, 0x2a404629, 0x00ad0b60, 0x00ad0b61 },
-   { 0x80800042, 0x2a604629, 0x00ad0b80, 0x00ad0b81 },
-   { 0x80800042, 0x2a804629, 0x00ad0ba0, 0x00ad0ba1 },
-   { 0x80800042, 0x2aa04629, 0x00ad0bc0, 0x00ad0bc1 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x0000001a },
-   { 0x80800042, 0x29c04629, 0x00ad0ac1, 0x00ad0ac2 },
-   { 0x80800042, 0x29e04629, 0x00ad0ae1, 0x00ad0ae2 },
-   { 0x80800042, 0x2a004629, 0x00ad0b01, 0x00ad0b02 },
-   { 0x80800042, 0x2a204629, 0x00ad0b21, 0x00ad0b22 },
-   { 0x80800042, 0x2a404629, 0x00ad0b61, 0x00ad0b62 },
-   { 0x80800042, 0x2a604629, 0x00ad0b81, 0x00ad0b82 },
-   { 0x80800042, 0x2a804629, 0x00ad0ba1, 0x00ad0ba2 },
-   { 0x80800042, 0x2aa04629, 0x00ad0bc1, 0x00ad0bc2 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000011 },
-   { 0x80800042, 0x29c04629, 0x00ad0ac2, 0x00ad0ac3 },
-   { 0x80800042, 0x29e04629, 0x00ad0ae2, 0x00ad0ae3 },
-   { 0x80800042, 0x2a004629, 0x00ad0b02, 0x00ad0b03 },
-   { 0x80800042, 0x2a204629, 0x00ad0b22, 0x00ad0b23 },
-   { 0x80800042, 0x2a404629, 0x00ad0b62, 0x00ad0b63 },
-   { 0x80800042, 0x2a604629, 0x00ad0b82, 0x00ad0b83 },
-   { 0x80800042, 0x2a804629, 0x00ad0ba2, 0x00ad0ba3 },
-   { 0x80800042, 0x2aa04629, 0x00ad0bc2, 0x00ad0bc3 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000008 },
-   { 0x80800042, 0x29c04629, 0x00ad0ac3, 0x00ad0ac4 },
-   { 0x80800042, 0x29e04629, 0x00ad0ae3, 0x00ad0ae4 },
-   { 0x80800042, 0x2a004629, 0x00ad0b03, 0x00ad0b04 },
-   { 0x80800042, 0x2a204629, 0x00ad0b23, 0x00ad0b24 },
-   { 0x80800042, 0x2a404629, 0x00ad0b63, 0x00ad0b64 },
-   { 0x80800042, 0x2a604629, 0x00ad0b83, 0x00ad0b84 },
-   { 0x80800042, 0x2a804629, 0x00ad0ba3, 0x00ad0ba4 },
-   { 0x80800042, 0x2aa04629, 0x00ad0bc3, 0x00ad0bc4 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000058 },
-   { 0x01000005, 0x20002d3c, 0x00210030, 0x00020002 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x0000002d },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0007000f },
-   { 0x00800031, 0x2ac01d29, 0x00ad0e60, 0x0414a005 },
-   { 0x00800031, 0x2b601d29, 0x00ad0e60, 0x0414a006 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0000000f },
-   { 0x00800031, 0x2b401d29, 0x00ad0e60, 0x0411a005 },
-   { 0x00800031, 0x2be01d29, 0x00ad0e60, 0x0411a006 },
-   { 0x00000005, 0x20580c21, 0x00210e60, 0x00000003 },
-   { 0x00000041, 0x20580c21, 0x00210058, 0x00000009 },
-   { 0x00000020, 0x34001400, 0x00001400, 0x00210058 },
-   { 0x80800042, 0x29c04629, 0x00ad0ac0, 0x00ad0ae0 },
-   { 0x80800042, 0x29e04629, 0x00ad0ae0, 0x00ad0b00 },
-   { 0x80800042, 0x2a004629, 0x00ad0b00, 0x00ad0b20 },
-   { 0x80800042, 0x2a204629, 0x00ad0b20, 0x00ad0b40 },
-   { 0x80800042, 0x2a404629, 0x00ad0b60, 0x00ad0b80 },
-   { 0x80800042, 0x2a604629, 0x00ad0b80, 0x00ad0ba0 },
-   { 0x80800042, 0x2a804629, 0x00ad0ba0, 0x00ad0bc0 },
-   { 0x80800042, 0x2aa04629, 0x00ad0bc0, 0x00ad0be0 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x0000001a },
-   { 0x80800042, 0x29c04629, 0x00ad0ac1, 0x00ad0ae1 },
-   { 0x80800042, 0x29e04629, 0x00ad0ae1, 0x00ad0b01 },
-   { 0x80800042, 0x2a004629, 0x00ad0b01, 0x00ad0b21 },
-   { 0x80800042, 0x2a204629, 0x00ad0b21, 0x00ad0b41 },
-   { 0x80800042, 0x2a404629, 0x00ad0b61, 0x00ad0b81 },
-   { 0x80800042, 0x2a604629, 0x00ad0b81, 0x00ad0ba1 },
-   { 0x80800042, 0x2a804629, 0x00ad0ba1, 0x00ad0bc1 },
-   { 0x80800042, 0x2aa04629, 0x00ad0bc1, 0x00ad0be1 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000011 },
-   { 0x80800042, 0x29c04629, 0x00ad0ac2, 0x00ad0ae2 },
-   { 0x80800042, 0x29e04629, 0x00ad0ae2, 0x00ad0b02 },
-   { 0x80800042, 0x2a004629, 0x00ad0b02, 0x00ad0b22 },
-   { 0x80800042, 0x2a204629, 0x00ad0b22, 0x00ad0b42 },
-   { 0x80800042, 0x2a404629, 0x00ad0b62, 0x00ad0b82 },
-   { 0x80800042, 0x2a604629, 0x00ad0b82, 0x00ad0ba2 },
-   { 0x80800042, 0x2a804629, 0x00ad0ba2, 0x00ad0bc2 },
-   { 0x80800042, 0x2aa04629, 0x00ad0bc2, 0x00ad0be2 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000008 },
-   { 0x80800042, 0x29c04629, 0x00ad0ac3, 0x00ad0ac3 },
-   { 0x80800042, 0x29e04629, 0x00ad0ae3, 0x00ad0ae3 },
-   { 0x80800042, 0x2a004629, 0x00ad0b03, 0x00ad0b03 },
-   { 0x80800042, 0x2a204629, 0x00ad0b23, 0x00ad0b23 },
-   { 0x80800042, 0x2a404629, 0x00ad0b63, 0x00ad0b63 },
-   { 0x80800042, 0x2a604629, 0x00ad0b83, 0x00ad0b83 },
-   { 0x80800042, 0x2a804629, 0x00ad0ba3, 0x00ad0ba3 },
-   { 0x80800042, 0x2aa04629, 0x00ad0bc3, 0x00ad0bc3 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000029 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0007000f },
-   { 0x00800031, 0x2ac01d29, 0x00ad0e60, 0x0414a005 },
-   { 0x00800031, 0x2b601d29, 0x00ad0e60, 0x0414a006 },
-   { 0x00000005, 0x20580c21, 0x00210e60, 0x00000003 },
-   { 0x00000041, 0x20580c21, 0x00210058, 0x00000009 },
-   { 0x00000020, 0x34001400, 0x00001400, 0x00210058 },
-   { 0x00800001, 0x29c00229, 0x00ad0ac0, 0x00000000 },
-   { 0x00800001, 0x29e00229, 0x00ad0ae0, 0x00000000 },
-   { 0x00800001, 0x2a000229, 0x00ad0b00, 0x00000000 },
-   { 0x00800001, 0x2a200229, 0x00ad0b20, 0x00000000 },
-   { 0x00800001, 0x2a400229, 0x00ad0b60, 0x00000000 },
-   { 0x00800001, 0x2a600229, 0x00ad0b80, 0x00000000 },
-   { 0x00800001, 0x2a800229, 0x00ad0ba0, 0x00000000 },
-   { 0x00800001, 0x2aa00229, 0x00ad0bc0, 0x00000000 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x0000001a },
-   { 0x00800001, 0x29c00229, 0x00ad0ac1, 0x00000000 },
-   { 0x00800001, 0x29e00229, 0x00ad0ae1, 0x00000000 },
-   { 0x00800001, 0x2a000229, 0x00ad0b01, 0x00000000 },
-   { 0x00800001, 0x2a200229, 0x00ad0b21, 0x00000000 },
-   { 0x00800001, 0x2a400229, 0x00ad0b61, 0x00000000 },
-   { 0x00800001, 0x2a600229, 0x00ad0b81, 0x00000000 },
-   { 0x00800001, 0x2a800229, 0x00ad0ba1, 0x00000000 },
-   { 0x00800001, 0x2aa00229, 0x00ad0bc1, 0x00000000 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000011 },
-   { 0x00800001, 0x29c00229, 0x00ad0ac2, 0x00000000 },
-   { 0x00800001, 0x29e00229, 0x00ad0ae2, 0x00000000 },
-   { 0x00800001, 0x2a000229, 0x00ad0b02, 0x00000000 },
-   { 0x00800001, 0x2a200229, 0x00ad0b22, 0x00000000 },
-   { 0x00800001, 0x2a400229, 0x00ad0b62, 0x00000000 },
-   { 0x00800001, 0x2a600229, 0x00ad0b82, 0x00000000 },
-   { 0x00800001, 0x2a800229, 0x00ad0ba2, 0x00000000 },
-   { 0x00800001, 0x2aa00229, 0x00ad0bc2, 0x00000000 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000008 },
-   { 0x00800001, 0x29c00229, 0x00ad0ac3, 0x00000000 },
-   { 0x00800001, 0x29e00229, 0x00ad0ae3, 0x00000000 },
-   { 0x00800001, 0x2a000229, 0x00ad0b03, 0x00000000 },
-   { 0x00800001, 0x2a200229, 0x00ad0b23, 0x00000000 },
-   { 0x00800001, 0x2a400229, 0x00ad0b63, 0x00000000 },
-   { 0x00800001, 0x2a600229, 0x00ad0b83, 0x00000000 },
-   { 0x00800001, 0x2a800229, 0x00ad0ba3, 0x00000000 },
-   { 0x00800001, 0x2aa00229, 0x00ad0bc3, 0x00000000 },
-   { 0x00600001, 0x25800129, 0x008d09c0, 0x00000000 },
-   { 0x00600001, 0x25a00129, 0x008d09e0, 0x00000000 },
-   { 0x00600001, 0x25c00129, 0x008d0a00, 0x00000000 },
-   { 0x00600001, 0x25e00129, 0x008d0a20, 0x00000000 },
-   { 0x00600001, 0x26000129, 0x008d0a40, 0x00000000 },
-   { 0x00600001, 0x26200129, 0x008d0a60, 0x00000000 },
-   { 0x00600001, 0x26400129, 0x008d0a80, 0x00000000 },
-   { 0x00600001, 0x26600129, 0x008d0aa0, 0x00000000 },
-   { 0x0020000c, 0x2e6e2dad, 0x00450036, 0x00020002 },
-   { 0x0020000c, 0x2e601ca5, 0x00450e80, 0x00000001 },
-   { 0x00200040, 0x2e6034a5, 0x00450e60, 0x00450e6e },
-   { 0x00000005, 0x2e640c21, 0x00210e64, 0xfffffffe },
-   { 0x02000005, 0x20002e3c, 0x0021003f, 0x00040004 },
-   { 0x00010040, 0x2e640c21, 0x00210e64, 0x00000001 },
-   { 0x01000005, 0x20002d3c, 0x00210036, 0x00020002 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x000000a2 },
-   { 0x01000005, 0x20002d3c, 0x00210038, 0x00020002 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000076 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0007000f },
-   { 0x00800031, 0x2ac01d29, 0x00ad0e60, 0x0414a005 },
-   { 0x00800031, 0x2b601d29, 0x00ad0e60, 0x0414a006 },
-   { 0x00000005, 0x20580c21, 0x00210e60, 0x00000003 },
-   { 0x00000041, 0x20580c21, 0x00210058, 0x00000019 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0001000f },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 },
-   { 0x00800031, 0x2b401d29, 0x00ad0e60, 0x0411a005 },
-   { 0x00800031, 0x2be01d29, 0x00ad0e60, 0x0411a006 },
-   { 0x00000020, 0x34001400, 0x00001400, 0x00210058 },
-   { 0x00800040, 0x29c04629, 0x00ad0ac0, 0x00ad0ae0 },
-   { 0x00800040, 0x29e04629, 0x00ad0ae0, 0x00ad0b00 },
-   { 0x00800040, 0x2a004629, 0x00ad0b00, 0x00ad0b20 },
-   { 0x00800040, 0x2a204629, 0x00ad0b20, 0x00ad0b40 },
-   { 0x00800040, 0x29c04529, 0x00ad09c0, 0x00ad0ac1 },
-   { 0x00800040, 0x29e04529, 0x00ad09e0, 0x00ad0ae1 },
-   { 0x00800040, 0x2a004529, 0x00ad0a00, 0x00ad0b01 },
-   { 0x00800040, 0x2a204529, 0x00ad0a20, 0x00ad0b21 },
-   { 0x00800040, 0x29c04529, 0x00ad09c0, 0x00ad0ae1 },
-   { 0x00800040, 0x29e04529, 0x00ad09e0, 0x00ad0b01 },
-   { 0x00800040, 0x2a004529, 0x00ad0a00, 0x00ad0b21 },
-   { 0x00800040, 0x2a204529, 0x00ad0a20, 0x00ad0b41 },
-   { 0x00800040, 0x2a404629, 0x00ad0b60, 0x00ad0b80 },
-   { 0x00800040, 0x2a604629, 0x00ad0b80, 0x00ad0ba0 },
-   { 0x00800040, 0x2a804629, 0x00ad0ba0, 0x00ad0bc0 },
-   { 0x00800040, 0x2aa04629, 0x00ad0bc0, 0x00ad0be0 },
-   { 0x00800040, 0x2a404529, 0x00ad0a40, 0x00ad0b61 },
-   { 0x00800040, 0x2a604529, 0x00ad0a60, 0x00ad0b81 },
-   { 0x00800040, 0x2a804529, 0x00ad0a80, 0x00ad0ba1 },
-   { 0x00800040, 0x2aa04529, 0x00ad0aa0, 0x00ad0bc1 },
-   { 0x00800040, 0x2a404529, 0x00ad0a40, 0x00ad0b81 },
-   { 0x00800040, 0x2a604529, 0x00ad0a60, 0x00ad0ba1 },
-   { 0x00800040, 0x2a804529, 0x00ad0a80, 0x00ad0bc1 },
-   { 0x00800040, 0x2aa04529, 0x00ad0aa0, 0x00ad0be1 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x0000004a },
-   { 0x00800040, 0x29c04629, 0x00ad0ac1, 0x00ad0ae1 },
-   { 0x00800040, 0x29e04629, 0x00ad0ae1, 0x00ad0b01 },
-   { 0x00800040, 0x2a004629, 0x00ad0b01, 0x00ad0b21 },
-   { 0x00800040, 0x2a204629, 0x00ad0b21, 0x00ad0b41 },
-   { 0x00800040, 0x29c04529, 0x00ad09c0, 0x00ad0ac2 },
-   { 0x00800040, 0x29e04529, 0x00ad09e0, 0x00ad0ae2 },
-   { 0x00800040, 0x2a004529, 0x00ad0a00, 0x00ad0b02 },
-   { 0x00800040, 0x2a204529, 0x00ad0a20, 0x00ad0b22 },
-   { 0x00800040, 0x29c04529, 0x00ad09c0, 0x00ad0ae2 },
-   { 0x00800040, 0x29e04529, 0x00ad09e0, 0x00ad0b02 },
-   { 0x00800040, 0x2a004529, 0x00ad0a00, 0x00ad0b22 },
-   { 0x00800040, 0x2a204529, 0x00ad0a20, 0x00ad0b42 },
-   { 0x00800040, 0x2a404629, 0x00ad0b61, 0x00ad0b81 },
-   { 0x00800040, 0x2a604629, 0x00ad0b81, 0x00ad0ba1 },
-   { 0x00800040, 0x2a804629, 0x00ad0ba1, 0x00ad0bc1 },
-   { 0x00800040, 0x2aa04629, 0x00ad0bc1, 0x00ad0be1 },
-   { 0x00800040, 0x2a404529, 0x00ad0a40, 0x00ad0b62 },
-   { 0x00800040, 0x2a604529, 0x00ad0a60, 0x00ad0b82 },
-   { 0x00800040, 0x2a804529, 0x00ad0a80, 0x00ad0ba2 },
-   { 0x00800040, 0x2aa04529, 0x00ad0aa0, 0x00ad0bc2 },
-   { 0x00800040, 0x2a404529, 0x00ad0a40, 0x00ad0b82 },
-   { 0x00800040, 0x2a604529, 0x00ad0a60, 0x00ad0ba2 },
-   { 0x00800040, 0x2a804529, 0x00ad0a80, 0x00ad0bc2 },
-   { 0x00800040, 0x2aa04529, 0x00ad0aa0, 0x00ad0be2 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000031 },
-   { 0x00800040, 0x29c04629, 0x00ad0ac2, 0x00ad0ae2 },
-   { 0x00800040, 0x29e04629, 0x00ad0ae2, 0x00ad0b02 },
-   { 0x00800040, 0x2a004629, 0x00ad0b02, 0x00ad0b22 },
-   { 0x00800040, 0x2a204629, 0x00ad0b22, 0x00ad0b42 },
-   { 0x00800040, 0x29c04529, 0x00ad09c0, 0x00ad0ac3 },
-   { 0x00800040, 0x29e04529, 0x00ad09e0, 0x00ad0ae3 },
-   { 0x00800040, 0x2a004529, 0x00ad0a00, 0x00ad0b03 },
-   { 0x00800040, 0x2a204529, 0x00ad0a20, 0x00ad0b23 },
-   { 0x00800040, 0x29c04529, 0x00ad09c0, 0x00ad0ae3 },
-   { 0x00800040, 0x29e04529, 0x00ad09e0, 0x00ad0b03 },
-   { 0x00800040, 0x2a004529, 0x00ad0a00, 0x00ad0b23 },
-   { 0x00800040, 0x2a204529, 0x00ad0a20, 0x00ad0b43 },
-   { 0x00800040, 0x2a404629, 0x00ad0b62, 0x00ad0b82 },
-   { 0x00800040, 0x2a604629, 0x00ad0b82, 0x00ad0ba2 },
-   { 0x00800040, 0x2a804629, 0x00ad0ba2, 0x00ad0bc2 },
-   { 0x00800040, 0x2aa04629, 0x00ad0bc2, 0x00ad0be2 },
-   { 0x00800040, 0x2a404529, 0x00ad0a40, 0x00ad0b63 },
-   { 0x00800040, 0x2a604529, 0x00ad0a60, 0x00ad0b83 },
-   { 0x00800040, 0x2a804529, 0x00ad0a80, 0x00ad0ba3 },
-   { 0x00800040, 0x2aa04529, 0x00ad0aa0, 0x00ad0bc3 },
-   { 0x00800040, 0x2a404529, 0x00ad0a40, 0x00ad0b83 },
-   { 0x00800040, 0x2a604529, 0x00ad0a60, 0x00ad0ba3 },
-   { 0x00800040, 0x2a804529, 0x00ad0a80, 0x00ad0bc3 },
-   { 0x00800040, 0x2aa04529, 0x00ad0aa0, 0x00ad0be3 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000018 },
-   { 0x00800040, 0x29c04629, 0x00ad0ac3, 0x00ad0ae3 },
-   { 0x00800040, 0x29e04629, 0x00ad0ae3, 0x00ad0b03 },
-   { 0x00800040, 0x2a004629, 0x00ad0b03, 0x00ad0b23 },
-   { 0x00800040, 0x2a204629, 0x00ad0b23, 0x00ad0b43 },
-   { 0x00800040, 0x29c04529, 0x00ad09c0, 0x00ad0ac4 },
-   { 0x00800040, 0x29e04529, 0x00ad09e0, 0x00ad0ae4 },
-   { 0x00800040, 0x2a004529, 0x00ad0a00, 0x00ad0b04 },
-   { 0x00800040, 0x2a204529, 0x00ad0a20, 0x00ad0b24 },
-   { 0x00800040, 0x29c04529, 0x00ad09c0, 0x00ad0ae4 },
-   { 0x00800040, 0x29e04529, 0x00ad09e0, 0x00ad0b04 },
-   { 0x00800040, 0x2a004529, 0x00ad0a00, 0x00ad0b24 },
-   { 0x00800040, 0x2a204529, 0x00ad0a20, 0x00ad0b44 },
-   { 0x00800040, 0x2a404629, 0x00ad0b63, 0x00ad0b83 },
-   { 0x00800040, 0x2a604629, 0x00ad0b83, 0x00ad0ba3 },
-   { 0x00800040, 0x2a804629, 0x00ad0ba3, 0x00ad0bc3 },
-   { 0x00800040, 0x2aa04629, 0x00ad0bc3, 0x00ad0be3 },
-   { 0x00800040, 0x2a404529, 0x00ad0a40, 0x00ad0b64 },
-   { 0x00800040, 0x2a604529, 0x00ad0a60, 0x00ad0b84 },
-   { 0x00800040, 0x2a804529, 0x00ad0a80, 0x00ad0ba4 },
-   { 0x00800040, 0x2aa04529, 0x00ad0aa0, 0x00ad0bc4 },
-   { 0x00800040, 0x2a404529, 0x00ad0a40, 0x00ad0b84 },
-   { 0x00800040, 0x2a604529, 0x00ad0a60, 0x00ad0ba4 },
-   { 0x00800040, 0x2a804529, 0x00ad0a80, 0x00ad0bc4 },
-   { 0x00800040, 0x2aa04529, 0x00ad0aa0, 0x00ad0be4 },
-   { 0x80800008, 0x29c02d29, 0x00b109c0, 0x00020002 },
-   { 0x80800008, 0x29e02d29, 0x00b109e0, 0x00020002 },
-   { 0x80800008, 0x2a002d29, 0x00b10a00, 0x00020002 },
-   { 0x80800008, 0x2a202d29, 0x00b10a20, 0x00020002 },
-   { 0x80800008, 0x2a402d29, 0x00b10a40, 0x00020002 },
-   { 0x80800008, 0x2a602d29, 0x00b10a60, 0x00020002 },
-   { 0x80800008, 0x2a802d29, 0x00b10a80, 0x00020002 },
-   { 0x80800008, 0x2aa02d29, 0x00b10aa0, 0x00020002 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000082 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0007000f },
-   { 0x00800031, 0x2ac01d29, 0x00ad0e60, 0x0414a005 },
-   { 0x00800031, 0x2b601d29, 0x00ad0e60, 0x0414a006 },
-   { 0x00000005, 0x20580c21, 0x00210e60, 0x00000003 },
-   { 0x00000041, 0x20580c21, 0x00210058, 0x00000009 },
-   { 0x00000020, 0x34001400, 0x00001400, 0x00210058 },
-   { 0x80800042, 0x29c04629, 0x00ad0ac0, 0x00ad0ac1 },
-   { 0x80800042, 0x29e04629, 0x00ad0ae0, 0x00ad0ae1 },
-   { 0x80800042, 0x2a004629, 0x00ad0b00, 0x00ad0b01 },
-   { 0x80800042, 0x2a204629, 0x00ad0b20, 0x00ad0b21 },
-   { 0x80800042, 0x2a404629, 0x00ad0b60, 0x00ad0b61 },
-   { 0x80800042, 0x2a604629, 0x00ad0b80, 0x00ad0b81 },
-   { 0x80800042, 0x2a804629, 0x00ad0ba0, 0x00ad0ba1 },
-   { 0x80800042, 0x2aa04629, 0x00ad0bc0, 0x00ad0bc1 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x0000001a },
-   { 0x80800042, 0x29c04629, 0x00ad0ac1, 0x00ad0ac2 },
-   { 0x80800042, 0x29e04629, 0x00ad0ae1, 0x00ad0ae2 },
-   { 0x80800042, 0x2a004629, 0x00ad0b01, 0x00ad0b02 },
-   { 0x80800042, 0x2a204629, 0x00ad0b21, 0x00ad0b22 },
-   { 0x80800042, 0x2a404629, 0x00ad0b61, 0x00ad0b62 },
-   { 0x80800042, 0x2a604629, 0x00ad0b81, 0x00ad0b82 },
-   { 0x80800042, 0x2a804629, 0x00ad0ba1, 0x00ad0ba2 },
-   { 0x80800042, 0x2aa04629, 0x00ad0bc1, 0x00ad0bc2 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000011 },
-   { 0x80800042, 0x29c04629, 0x00ad0ac2, 0x00ad0ac3 },
-   { 0x80800042, 0x29e04629, 0x00ad0ae2, 0x00ad0ae3 },
-   { 0x80800042, 0x2a004629, 0x00ad0b02, 0x00ad0b03 },
-   { 0x80800042, 0x2a204629, 0x00ad0b22, 0x00ad0b23 },
-   { 0x80800042, 0x2a404629, 0x00ad0b62, 0x00ad0b63 },
-   { 0x80800042, 0x2a604629, 0x00ad0b82, 0x00ad0b83 },
-   { 0x80800042, 0x2a804629, 0x00ad0ba2, 0x00ad0ba3 },
-   { 0x80800042, 0x2aa04629, 0x00ad0bc2, 0x00ad0bc3 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000008 },
-   { 0x80800042, 0x29c04629, 0x00ad0ac3, 0x00ad0ac4 },
-   { 0x80800042, 0x29e04629, 0x00ad0ae3, 0x00ad0ae4 },
-   { 0x80800042, 0x2a004629, 0x00ad0b03, 0x00ad0b04 },
-   { 0x80800042, 0x2a204629, 0x00ad0b23, 0x00ad0b24 },
-   { 0x80800042, 0x2a404629, 0x00ad0b63, 0x00ad0b64 },
-   { 0x80800042, 0x2a604629, 0x00ad0b83, 0x00ad0b84 },
-   { 0x80800042, 0x2a804629, 0x00ad0ba3, 0x00ad0ba4 },
-   { 0x80800042, 0x2aa04629, 0x00ad0bc3, 0x00ad0bc4 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000058 },
-   { 0x01000005, 0x20002d3c, 0x00210038, 0x00020002 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x0000002d },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0007000f },
-   { 0x00800031, 0x2ac01d29, 0x00ad0e60, 0x0414a005 },
-   { 0x00800031, 0x2b601d29, 0x00ad0e60, 0x0414a006 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0000000f },
-   { 0x00800031, 0x2b401d29, 0x00ad0e60, 0x0411a005 },
-   { 0x00800031, 0x2be01d29, 0x00ad0e60, 0x0411a006 },
-   { 0x00000005, 0x20580c21, 0x00210e60, 0x00000003 },
-   { 0x00000041, 0x20580c21, 0x00210058, 0x00000009 },
-   { 0x00000020, 0x34001400, 0x00001400, 0x00210058 },
-   { 0x80800042, 0x29c04629, 0x00ad0ac0, 0x00ad0ae0 },
-   { 0x80800042, 0x29e04629, 0x00ad0ae0, 0x00ad0b00 },
-   { 0x80800042, 0x2a004629, 0x00ad0b00, 0x00ad0b20 },
-   { 0x80800042, 0x2a204629, 0x00ad0b20, 0x00ad0b40 },
-   { 0x80800042, 0x2a404629, 0x00ad0b60, 0x00ad0b80 },
-   { 0x80800042, 0x2a604629, 0x00ad0b80, 0x00ad0ba0 },
-   { 0x80800042, 0x2a804629, 0x00ad0ba0, 0x00ad0bc0 },
-   { 0x80800042, 0x2aa04629, 0x00ad0bc0, 0x00ad0be0 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x0000001a },
-   { 0x80800042, 0x29c04629, 0x00ad0ac1, 0x00ad0ae1 },
-   { 0x80800042, 0x29e04629, 0x00ad0ae1, 0x00ad0b01 },
-   { 0x80800042, 0x2a004629, 0x00ad0b01, 0x00ad0b21 },
-   { 0x80800042, 0x2a204629, 0x00ad0b21, 0x00ad0b41 },
-   { 0x80800042, 0x2a404629, 0x00ad0b61, 0x00ad0b81 },
-   { 0x80800042, 0x2a604629, 0x00ad0b81, 0x00ad0ba1 },
-   { 0x80800042, 0x2a804629, 0x00ad0ba1, 0x00ad0bc1 },
-   { 0x80800042, 0x2aa04629, 0x00ad0bc1, 0x00ad0be1 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000011 },
-   { 0x80800042, 0x29c04629, 0x00ad0ac2, 0x00ad0ae2 },
-   { 0x80800042, 0x29e04629, 0x00ad0ae2, 0x00ad0b02 },
-   { 0x80800042, 0x2a004629, 0x00ad0b02, 0x00ad0b22 },
-   { 0x80800042, 0x2a204629, 0x00ad0b22, 0x00ad0b42 },
-   { 0x80800042, 0x2a404629, 0x00ad0b62, 0x00ad0b82 },
-   { 0x80800042, 0x2a604629, 0x00ad0b82, 0x00ad0ba2 },
-   { 0x80800042, 0x2a804629, 0x00ad0ba2, 0x00ad0bc2 },
-   { 0x80800042, 0x2aa04629, 0x00ad0bc2, 0x00ad0be2 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000008 },
-   { 0x80800042, 0x29c04629, 0x00ad0ac3, 0x00ad0ac3 },
-   { 0x80800042, 0x29e04629, 0x00ad0ae3, 0x00ad0ae3 },
-   { 0x80800042, 0x2a004629, 0x00ad0b03, 0x00ad0b03 },
-   { 0x80800042, 0x2a204629, 0x00ad0b23, 0x00ad0b23 },
-   { 0x80800042, 0x2a404629, 0x00ad0b63, 0x00ad0b63 },
-   { 0x80800042, 0x2a604629, 0x00ad0b83, 0x00ad0b83 },
-   { 0x80800042, 0x2a804629, 0x00ad0ba3, 0x00ad0ba3 },
-   { 0x80800042, 0x2aa04629, 0x00ad0bc3, 0x00ad0bc3 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000029 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0007000f },
-   { 0x00800031, 0x2ac01d29, 0x00ad0e60, 0x0414a005 },
-   { 0x00800031, 0x2b601d29, 0x00ad0e60, 0x0414a006 },
-   { 0x00000005, 0x20580c21, 0x00210e60, 0x00000003 },
-   { 0x00000041, 0x20580c21, 0x00210058, 0x00000009 },
-   { 0x00000020, 0x34001400, 0x00001400, 0x00210058 },
-   { 0x00800001, 0x29c00229, 0x00ad0ac0, 0x00000000 },
-   { 0x00800001, 0x29e00229, 0x00ad0ae0, 0x00000000 },
-   { 0x00800001, 0x2a000229, 0x00ad0b00, 0x00000000 },
-   { 0x00800001, 0x2a200229, 0x00ad0b20, 0x00000000 },
-   { 0x00800001, 0x2a400229, 0x00ad0b60, 0x00000000 },
-   { 0x00800001, 0x2a600229, 0x00ad0b80, 0x00000000 },
-   { 0x00800001, 0x2a800229, 0x00ad0ba0, 0x00000000 },
-   { 0x00800001, 0x2aa00229, 0x00ad0bc0, 0x00000000 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x0000001a },
-   { 0x00800001, 0x29c00229, 0x00ad0ac1, 0x00000000 },
-   { 0x00800001, 0x29e00229, 0x00ad0ae1, 0x00000000 },
-   { 0x00800001, 0x2a000229, 0x00ad0b01, 0x00000000 },
-   { 0x00800001, 0x2a200229, 0x00ad0b21, 0x00000000 },
-   { 0x00800001, 0x2a400229, 0x00ad0b61, 0x00000000 },
-   { 0x00800001, 0x2a600229, 0x00ad0b81, 0x00000000 },
-   { 0x00800001, 0x2a800229, 0x00ad0ba1, 0x00000000 },
-   { 0x00800001, 0x2aa00229, 0x00ad0bc1, 0x00000000 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000011 },
-   { 0x00800001, 0x29c00229, 0x00ad0ac2, 0x00000000 },
-   { 0x00800001, 0x29e00229, 0x00ad0ae2, 0x00000000 },
-   { 0x00800001, 0x2a000229, 0x00ad0b02, 0x00000000 },
-   { 0x00800001, 0x2a200229, 0x00ad0b22, 0x00000000 },
-   { 0x00800001, 0x2a400229, 0x00ad0b62, 0x00000000 },
-   { 0x00800001, 0x2a600229, 0x00ad0b82, 0x00000000 },
-   { 0x00800001, 0x2a800229, 0x00ad0ba2, 0x00000000 },
-   { 0x00800001, 0x2aa00229, 0x00ad0bc2, 0x00000000 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000008 },
-   { 0x00800001, 0x29c00229, 0x00ad0ac3, 0x00000000 },
-   { 0x00800001, 0x29e00229, 0x00ad0ae3, 0x00000000 },
-   { 0x00800001, 0x2a000229, 0x00ad0b03, 0x00000000 },
-   { 0x00800001, 0x2a200229, 0x00ad0b23, 0x00000000 },
-   { 0x00800001, 0x2a400229, 0x00ad0b63, 0x00000000 },
-   { 0x00800001, 0x2a600229, 0x00ad0b83, 0x00000000 },
-   { 0x00800001, 0x2a800229, 0x00ad0ba3, 0x00000000 },
-   { 0x00800001, 0x2aa00229, 0x00ad0bc3, 0x00000000 },
-   { 0x00600001, 0x25900129, 0x008d09c0, 0x00000000 },
-   { 0x00600001, 0x25b00129, 0x008d09e0, 0x00000000 },
-   { 0x00600001, 0x25d00129, 0x008d0a00, 0x00000000 },
-   { 0x00600001, 0x25f00129, 0x008d0a20, 0x00000000 },
-   { 0x00600001, 0x26100129, 0x008d0a40, 0x00000000 },
-   { 0x00600001, 0x26300129, 0x008d0a60, 0x00000000 },
-   { 0x00600001, 0x26500129, 0x008d0a80, 0x00000000 },
-   { 0x00600001, 0x26700129, 0x008d0aa0, 0x00000000 },
-   { 0x00600001, 0x20200021, 0x008d0980, 0x00000000 },
-   { 0x00800001, 0x458101f1, 0x00000000, 0x00000000 },
-   { 0x00800001, 0x45a101f1, 0x00000000, 0x00000000 },
-   { 0x00800001, 0x45c101f1, 0x00000000, 0x00000000 },
-   { 0x00800001, 0x45e101f1, 0x00000000, 0x00000000 },
-   { 0x00800001, 0x460101f1, 0x00000000, 0x00000000 },
-   { 0x00800001, 0x462101f1, 0x00000000, 0x00000000 },
-   { 0x00800001, 0x464101f1, 0x00000000, 0x00000000 },
-   { 0x00800001, 0x466101f1, 0x00000000, 0x00000000 },
-   { 0x02000005, 0x20002e3c, 0x0021003e, 0x00010001 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000011 },
-   { 0x00800040, 0x238045ad, 0x00b10060, 0x00b20380 },
-   { 0x00800040, 0x23a045ad, 0x00b10080, 0x00b203a0 },
-   { 0x00800040, 0x23c045ad, 0x00b100a0, 0x00b203c0 },
-   { 0x00800040, 0x23e045ad, 0x00b100c0, 0x00b203e0 },
-   { 0x00800040, 0x240045ad, 0x00b100e0, 0x00b20400 },
-   { 0x00800040, 0x242045ad, 0x00b10100, 0x00b20420 },
-   { 0x00800040, 0x244045ad, 0x00b10120, 0x00b20440 },
-   { 0x00800040, 0x246045ad, 0x00b10140, 0x00b20460 },
-   { 0x00800040, 0x248045ad, 0x00b10160, 0x00b20480 },
-   { 0x00800040, 0x24a045ad, 0x00b10180, 0x00b204a0 },
-   { 0x00800040, 0x24c045ad, 0x00b101a0, 0x00b204c0 },
-   { 0x00800040, 0x24e045ad, 0x00b101c0, 0x00b204e0 },
-   { 0x00800040, 0x250045ad, 0x00b101e0, 0x00b20500 },
-   { 0x00800040, 0x252045ad, 0x00b10200, 0x00b20520 },
-   { 0x00800040, 0x254045ad, 0x00b10220, 0x00b20540 },
-   { 0x00800040, 0x256045ad, 0x00b10240, 0x00b20560 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000010 },
-   { 0x00800040, 0x238045ad, 0x00b10060, 0x00b20380 },
-   { 0x00800040, 0x23a045ad, 0x00b10160, 0x00b203a0 },
-   { 0x00800040, 0x23c045ad, 0x00b10080, 0x00b203c0 },
-   { 0x00800040, 0x23e045ad, 0x00b10180, 0x00b203e0 },
-   { 0x00800040, 0x240045ad, 0x00b100a0, 0x00b20400 },
-   { 0x00800040, 0x242045ad, 0x00b101a0, 0x00b20420 },
-   { 0x00800040, 0x244045ad, 0x00b100c0, 0x00b20440 },
-   { 0x00800040, 0x246045ad, 0x00b101c0, 0x00b20460 },
-   { 0x00800040, 0x248045ad, 0x00b100e0, 0x00b20480 },
-   { 0x00800040, 0x24a045ad, 0x00b101e0, 0x00b204a0 },
-   { 0x00800040, 0x24c045ad, 0x00b10100, 0x00b204c0 },
-   { 0x00800040, 0x24e045ad, 0x00b10200, 0x00b204e0 },
-   { 0x00800040, 0x250045ad, 0x00b10120, 0x00b20500 },
-   { 0x00800040, 0x252045ad, 0x00b10220, 0x00b20520 },
-   { 0x00800040, 0x254045ad, 0x00b10140, 0x00b20540 },
-   { 0x00800040, 0x256045ad, 0x00b10240, 0x00b20560 },
-   { 0x00000001, 0x20280061, 0x00000000, 0x000f000f },
-   { 0x80800001, 0x438001b1, 0x00b10380, 0x00000000 },
-   { 0x80800001, 0x43a001b1, 0x00b103a0, 0x00000000 },
-   { 0x80800001, 0x43c001b1, 0x00b103c0, 0x00000000 },
-   { 0x80800001, 0x43e001b1, 0x00b103e0, 0x00000000 },
-   { 0x80800001, 0x440001b1, 0x00b10400, 0x00000000 },
-   { 0x80800001, 0x442001b1, 0x00b10420, 0x00000000 },
-   { 0x80800001, 0x444001b1, 0x00b10440, 0x00000000 },
-   { 0x80800001, 0x446001b1, 0x00b10460, 0x00000000 },
-   { 0x80800001, 0x448001b1, 0x00b10480, 0x00000000 },
-   { 0x80800001, 0x44a001b1, 0x00b104a0, 0x00000000 },
-   { 0x80800001, 0x44c001b1, 0x00b104c0, 0x00000000 },
-   { 0x80800001, 0x44e001b1, 0x00b104e0, 0x00000000 },
-   { 0x80800001, 0x450001b1, 0x00b10500, 0x00000000 },
-   { 0x80800001, 0x452001b1, 0x00b10520, 0x00000000 },
-   { 0x80800001, 0x454001b1, 0x00b10540, 0x00000000 },
-   { 0x80800001, 0x456001b1, 0x00b10560, 0x00000000 },
-   { 0x00800001, 0x20200232, 0x00b20380, 0x00000000 },
-   { 0x00800001, 0x20300232, 0x00b203a0, 0x00000000 },
-   { 0x00800001, 0x20400232, 0x00b203c0, 0x00000000 },
-   { 0x00800001, 0x20500232, 0x00b203e0, 0x00000000 },
-   { 0x00800001, 0x20600232, 0x00b20400, 0x00000000 },
-   { 0x00800001, 0x20700232, 0x00b20420, 0x00000000 },
-   { 0x00800001, 0x20800232, 0x00b20440, 0x00000000 },
-   { 0x00800001, 0x20900232, 0x00b20460, 0x00000000 },
-   { 0x00800001, 0x20a00232, 0x00b20480, 0x00000000 },
-   { 0x00800001, 0x20b00232, 0x00b204a0, 0x00000000 },
-   { 0x00800001, 0x20c00232, 0x00b204c0, 0x00000000 },
-   { 0x00800001, 0x20d00232, 0x00b204e0, 0x00000000 },
-   { 0x00800001, 0x20e00232, 0x00b20500, 0x00000000 },
-   { 0x00800001, 0x20f00232, 0x00b20520, 0x00000000 },
-   { 0x00800001, 0x21000232, 0x00b20540, 0x00000000 },
-   { 0x00800001, 0x21100232, 0x00b20560, 0x00000000 },
-   { 0x00800031, 0x24001d28, 0x008d0020, 0x05902000 },
-   { 0x00000001, 0x20280061, 0x00000000, 0x00070007 },
-   { 0x00200008, 0x20201c21, 0x00450020, 0x00000001 },
-   { 0x00800040, 0x258025a9, 0x00b10260, 0x00b10580 },
-   { 0x00800040, 0x25a025a9, 0x00b10280, 0x00b105a0 },
-   { 0x00800040, 0x25c025a9, 0x00b102a0, 0x00b105c0 },
-   { 0x00800040, 0x25e025a9, 0x00b102c0, 0x00b105e0 },
-   { 0x80800001, 0x45800131, 0x00b10580, 0x00000000 },
-   { 0x80800001, 0x45a00131, 0x00b105a0, 0x00000000 },
-   { 0x80800001, 0x45c00131, 0x00b105c0, 0x00000000 },
-   { 0x80800001, 0x45e00131, 0x00b105e0, 0x00000000 },
-   { 0x00800001, 0x20200232, 0x00b20580, 0x00000000 },
-   { 0x00800001, 0x20300232, 0x00b205a0, 0x00000000 },
-   { 0x00800001, 0x20400232, 0x00b205c0, 0x00000000 },
-   { 0x00800001, 0x20500232, 0x00b205e0, 0x00000000 },
-   { 0x00800031, 0x24001d28, 0x008d0020, 0x05302001 },
-   { 0x00800040, 0x260025a9, 0x00b102e0, 0x00b10600 },
-   { 0x00800040, 0x262025a9, 0x00b10300, 0x00b10620 },
-   { 0x00800040, 0x264025a9, 0x00b10320, 0x00b10640 },
-   { 0x00800040, 0x266025a9, 0x00b10340, 0x00b10660 },
-   { 0x80800001, 0x46000131, 0x00b10600, 0x00000000 },
-   { 0x80800001, 0x46200131, 0x00b10620, 0x00000000 },
-   { 0x80800001, 0x46400131, 0x00b10640, 0x00000000 },
-   { 0x80800001, 0x46600131, 0x00b10660, 0x00000000 },
-   { 0x00800001, 0x20200232, 0x00b20600, 0x00000000 },
-   { 0x00800001, 0x20300232, 0x00b20620, 0x00000000 },
-   { 0x00800001, 0x20400232, 0x00b20640, 0x00000000 },
-   { 0x00800001, 0x20500232, 0x00b20660, 0x00000000 },
-   { 0x00800031, 0x24001d28, 0x008d0020, 0x05302002 },
-   { 0x00800031, 0x24001d28, 0x008d0000, 0x87100000 },
diff --git a/src/xvmc/field_forward_igd.g4a b/src/xvmc/field_forward_igd.g4a
deleted file mode 100644
index fdd4925..0000000
--- a/src/xvmc/field_forward_igd.g4a
+++ /dev/null
@@ -1,121 +0,0 @@
-/*
- * Copyright © 2008 Intel Corporation
- *
- * Permission is hereby granted, free of charge, to any person obtaining a
- * copy of this software and associated documentation files (the "Software"),
- * to deal in the Software without restriction, including without limitation
- * the rights to use, copy, modify, merge, publish, distribute, sublicense,
- * and/or sell copies of the Software, and to permit persons to whom the
- * Software is furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice (including the next
- * paragraph) shall be included in all copies or substantial portions of the
- * Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
- * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
- * SOFTWARE.
- *
- * Author:
- *    Zou Nan hai <nanhai.zou at intel.com>
- *    Zhang Hua jun <huajun.zhang at intel.com>
- *    Xing Dong sheng <dongsheng.xing at intel.com>
- *
- */
-mov (8) g76.0<1>UD g1.0<8,8,1>UD {align1};
-//mov (8) g77.0<1>UD g2.0<8,8,1>UD {align1};
-
-include(`block_clear.g4i')
-mov (8) g115.0<1>UD g1.0<8,8,1>UD {align1};
-mov (8) g116.0<1>UD g1.0<8,8,1>UD {align1};
-/*Y buffer*/
-mov(1) g1.8<1>UD 0x007000fUD  { align1 };
-asr (2) g115.14<1>W g1.14<2,2,1>W 1UW {align1};
-add (2) g115.0<1>UD g116.0<2,2,1>UD g115.14<2,2,1>W {align1};
-and (1) g115.4<1>UD g115.4<1,1,1>UD 0xFFFFFFFEUD {align1};
-mov (1) g115.8<1>UD 0x1fUD  { align1 }; //read 1 line, 32 columns.
-/*first vector*/
-and.nz (1) null g1.31<1,1,1>UB 0x1UW {align1};
-(f0) add (1) g115.4<1>UD g115.4<1,1,1>UD 1UD {align1};
-define(`surface',`4')
-define(`mv1',`g1.14')
-define(`mv2',`g1.16')
-include(`motion_field_y_igd.g4i')
-mov (8) g28.0<1>UD g96.0<8,8,1>UD {align1};
-mov (8) g30.0<1>UD g97.0<8,8,1>UD {align1};
-mov (8) g32.0<1>UD g98.0<8,8,1>UD {align1};
-mov (8) g34.0<1>UD g99.0<8,8,1>UD {align1};
-mov (8) g36.0<1>UD g100.0<8,8,1>UD {align1};
-mov (8) g38.0<1>UD g101.0<8,8,1>UD {align1};
-mov (8) g40.0<1>UD g102.0<8,8,1>UD {align1};
-mov (8) g42.0<1>UD g103.0<8,8,1>UD {align1};
-/*second vector*/
-asr (2) g115.14<1>W g1.22<2,2,1>W 1UW {align1};
-add (2) g115.0<1>UD g116.0<2,2,1>UD g115.14<2,2,1>W {align1};
-and (1) g115.4<1>UD g115.4<1,1,1>UD 0xFFFFFFFEUD {align1};
-mov (1) g115.8<1>UD 0x1fUD { align1 };              //read 1 line, 32 columns.
-
-and.nz (1) null g1.31<1,1,1>UB 0x4UW {align1};
-(f0) add (1) g115.4<1>UD g115.4<1,1,1>UD 1UD {align1};
-define(`surface',`4')
-define(`mv1',`g1.22')
-define(`mv2',`g1.24')
-include(`motion_field_y_igd.g4i')
-mov (8) g29.0<1>UD g96.0<8,8,1>UD {align1};
-mov (8) g31.0<1>UD g97.0<8,8,1>UD {align1};
-mov (8) g33.0<1>UD g98.0<8,8,1>UD {align1};
-mov (8) g35.0<1>UD g99.0<8,8,1>UD {align1};
-mov (8) g37.0<1>UD g100.0<8,8,1>UD {align1};
-mov (8) g39.0<1>UD g101.0<8,8,1>UD {align1};
-mov (8) g41.0<1>UD g102.0<8,8,1>UD {align1};
-mov (8) g43.0<1>UD g103.0<8,8,1>UD {align1};
-/*U buffer,  V buffer*/
-/*first vector*/
-mov(1) g115.8<1>UD 0x007000fUD  { align1 };
-asr (2) g115.14<1>W g1.14<2,2,1>W 2UW {align1};
-asr (2) g115.0<1>D g116.0<2,2,1>D 1D {align1};
-add (2) g115.0<1>D g115.0<2,2,1>D g115.14<2,2,1>W {align1};
-and (1) g115.4<1>UD g115.4<1,1,1>UD 0xFFFFFFFEUD {align1};
-
-and.nz (1) null g1.31<1,1,1>UB 0x1UW {align1};
-(f0) add (1) g115.4<1>UD g115.4<1,1,1>UD 1UD {align1};
-define(`surface_u',`5')
-define(`surface_v',`6')
-define(`mv1',`g1.14')
-define(`mv2',`g1.16')
-include(`motion_field_uv_igd.g4i')
-mov (8) g44.0<1>UW g78.0<8,8,1>UW {align1};
-mov (8) g45.0<1>UW g79.0<8,8,1>UW {align1};
-mov (8) g46.0<1>UW g80.0<8,8,1>UW {align1};
-mov (8) g47.0<1>UW g81.0<8,8,1>UW {align1};
-mov (8) g48.0<1>UW g82.0<8,8,1>UW {align1};
-mov (8) g49.0<1>UW g83.0<8,8,1>UW {align1};
-mov (8) g50.0<1>UW g84.0<8,8,1>UW {align1};
-mov (8) g51.0<1>UW g85.0<8,8,1>UW {align1};
-/*second vector*/
-asr (2) g115.14<1>W g1.22<2,2,1>W 2UW {align1};
-asr (2) g115.0<1>D g116.0<2,2,1>D 1D {align1};
-add (2) g115.0<1>D g115.0<2,2,1>D g115.14<2,2,1>W {align1};
-and (1) g115.4<1>UD g115.4<1,1,1>UD 0xFFFFFFFEUD {align1};
-
-and.nz (1) null g1.31<1,1,1>UB 0x4UW {align1};
-(f0) add (1) g115.4<1>UD g115.4<1,1,1>UD 1UD {align1};
-define(`mv1',`g1.22')
-define(`mv2',`g1.24')
-include(`motion_field_uv_igd.g4i')
-mov (8) g44.16<1>UW g78.0<8,8,1>UW {align1};
-mov (8) g45.16<1>UW g79.0<8,8,1>UW {align1};
-mov (8) g46.16<1>UW g80.0<8,8,1>UW {align1};
-mov (8) g47.16<1>UW g81.0<8,8,1>UW {align1};
-mov (8) g48.16<1>UW g82.0<8,8,1>UW {align1};
-mov (8) g49.16<1>UW g83.0<8,8,1>UW {align1};
-mov (8) g50.16<1>UW g84.0<8,8,1>UW {align1};
-mov (8) g51.16<1>UW g85.0<8,8,1>UW {align1};
-
-include(`addidct.g4i')
-//send (16) 0 acc0<1>UW g0<8,8,1>UW 
-//	thread_spawner(0, 0, 0) mlen 1 rlen 0 { align1 EOT};
diff --git a/src/xvmc/field_forward_igd.g4b b/src/xvmc/field_forward_igd.g4b
deleted file mode 100644
index 6d1dee5..0000000
--- a/src/xvmc/field_forward_igd.g4b
+++ /dev/null
@@ -1,668 +0,0 @@
-   { 0x00600001, 0x29800021, 0x008d0020, 0x00000000 },
-   { 0x02000005, 0x20000c3c, 0x00210040, 0x00000001 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000030 },
-   { 0x00000040, 0x20480c21, 0x00210988, 0x00000000 },
-   { 0x00800031, 0x20601c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x20801c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x20a01c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x20c01c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x20e01c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x21001c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x21201c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x21401c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x21601c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x21801c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x21a01c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x21c01c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x21e01c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x22001c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x22201c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x22401c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x22601c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x22801c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x22a01c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x22c01c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x22e01c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x23001c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x23201c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x23401c21, 0x00b10040, 0x04110203 },
-   { 0x02000005, 0x20002d3c, 0x0021098c, 0x00200020 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000008 },
-   { 0x00600001, 0x20600169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x20800169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x20a00169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x20c00169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x20e00169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x21000169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x21200169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x21400169, 0x00000000, 0x00000000 },
-   { 0x02000005, 0x20002d3c, 0x0021002c, 0x00100010 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000008 },
-   { 0x00600001, 0x20700169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x20900169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x20b00169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x20d00169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x20f00169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x21100169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x21300169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x21500169, 0x00000000, 0x00000000 },
-   { 0x02000005, 0x20002d3c, 0x0021002c, 0x00080008 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000008 },
-   { 0x00600001, 0x21600169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x21800169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x21a00169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x21c00169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x21e00169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x22000169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x22200169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x22400169, 0x00000000, 0x00000000 },
-   { 0x02000005, 0x20002d3c, 0x0021002c, 0x00040004 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000008 },
-   { 0x00600001, 0x21700169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x21900169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x21b00169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x21d00169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x21f00169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x22100169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x22300169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x22500169, 0x00000000, 0x00000000 },
-   { 0x02000005, 0x20002d3c, 0x0021002c, 0x00020002 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000004 },
-   { 0x00800001, 0x22600169, 0x00000000, 0x00000000 },
-   { 0x00800001, 0x22800169, 0x00000000, 0x00000000 },
-   { 0x00800001, 0x22a00169, 0x00000000, 0x00000000 },
-   { 0x00800001, 0x22c00169, 0x00000000, 0x00000000 },
-   { 0x02000005, 0x20002d3c, 0x0021002c, 0x00010001 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000004 },
-   { 0x00800001, 0x22e00169, 0x00000000, 0x00000000 },
-   { 0x00800001, 0x23000169, 0x00000000, 0x00000000 },
-   { 0x00800001, 0x23200169, 0x00000000, 0x00000000 },
-   { 0x00800001, 0x23400169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x2e600021, 0x008d0020, 0x00000000 },
-   { 0x00600001, 0x2e800021, 0x008d0020, 0x00000000 },
-   { 0x00000001, 0x20280061, 0x00000000, 0x0007000f },
-   { 0x0020000c, 0x2e6e2dad, 0x0045002e, 0x00010001 },
-   { 0x00200040, 0x2e603421, 0x00450e80, 0x00450e6e },
-   { 0x00000005, 0x2e640c21, 0x00210e64, 0xfffffffe },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
-   { 0x02000005, 0x20002e3c, 0x0021003f, 0x00010001 },
-   { 0x00010040, 0x2e640c21, 0x00210e64, 0x00000001 },
-   { 0x01000005, 0x20002d3c, 0x0021002e, 0x00010001 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000045 },
-   { 0x01000005, 0x20002d3c, 0x00210030, 0x00010001 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x0000002f },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
-   { 0x00800031, 0x29c01d29, 0x008d0e60, 0x0411a004 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a001d29, 0x008d0e60, 0x0411a004 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a401d29, 0x008d0e60, 0x0411a004 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a801d29, 0x008d0e60, 0x0411a004 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0007001f },
-   { 0x00800031, 0x2ac01d29, 0x008d0e60, 0x0418a004 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
-   { 0x00800031, 0x2bc01d29, 0x008d0e60, 0x0411a004 },
-   { 0x00800040, 0x2c004629, 0x00b109c0, 0x00b10a00 },
-   { 0x00800040, 0x2c204629, 0x00b10a00, 0x00b10a40 },
-   { 0x00800040, 0x2c404629, 0x00b10a40, 0x00b10a80 },
-   { 0x00800040, 0x2c604629, 0x00b10a80, 0x00b10ac0 },
-   { 0x00800040, 0x2c804629, 0x00b10ac0, 0x00b10b00 },
-   { 0x00800040, 0x2ca04629, 0x00b10b00, 0x00b10b40 },
-   { 0x00800040, 0x2cc04629, 0x00b10b40, 0x00b10b80 },
-   { 0x00800040, 0x2ce04629, 0x00b10b80, 0x00b10bc0 },
-   { 0x00800040, 0x2c004529, 0x00b10c00, 0x00b109c1 },
-   { 0x00800040, 0x2c204529, 0x00b10c20, 0x00b10a01 },
-   { 0x00800040, 0x2c404529, 0x00b10c40, 0x00b10a41 },
-   { 0x00800040, 0x2c604529, 0x00b10c60, 0x00b10a81 },
-   { 0x00800040, 0x2c804529, 0x00b10c80, 0x00b10ac1 },
-   { 0x00800040, 0x2ca04529, 0x00b10ca0, 0x00b10b01 },
-   { 0x00800040, 0x2cc04529, 0x00b10cc0, 0x00b10b41 },
-   { 0x00800040, 0x2ce04529, 0x00b10ce0, 0x00b10b81 },
-   { 0x00800040, 0x2c004529, 0x00b10c00, 0x00b10a01 },
-   { 0x00800040, 0x2c204529, 0x00b10c20, 0x00b10a41 },
-   { 0x00800040, 0x2c404529, 0x00b10c40, 0x00b10a81 },
-   { 0x00800040, 0x2c604529, 0x00b10c60, 0x00b10ac1 },
-   { 0x00800040, 0x2c804529, 0x00b10c80, 0x00b10b01 },
-   { 0x00800040, 0x2ca04529, 0x00b10ca0, 0x00b10b41 },
-   { 0x00800040, 0x2cc04529, 0x00b10cc0, 0x00b10b81 },
-   { 0x00800040, 0x2ce04529, 0x00b10ce0, 0x00b10bc1 },
-   { 0x00800008, 0x2c002d29, 0x00b10c00, 0x00020002 },
-   { 0x00800008, 0x2c202d29, 0x00b10c20, 0x00020002 },
-   { 0x00800008, 0x2c402d29, 0x00b10c40, 0x00020002 },
-   { 0x00800008, 0x2c602d29, 0x00b10c60, 0x00020002 },
-   { 0x00800008, 0x2c802d29, 0x00b10c80, 0x00020002 },
-   { 0x00800008, 0x2ca02d29, 0x00b10ca0, 0x00020002 },
-   { 0x00800008, 0x2cc02d29, 0x00b10cc0, 0x00020002 },
-   { 0x00800008, 0x2ce02d29, 0x00b10ce0, 0x00020002 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000040 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
-   { 0x00800031, 0x29c01d29, 0x008d0e60, 0x0411a004 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a001d29, 0x008d0e60, 0x0411a004 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a401d29, 0x008d0e60, 0x0411a004 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a801d29, 0x008d0e60, 0x0411a004 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0007001f },
-   { 0x00800031, 0x2ac01d29, 0x008d0e60, 0x0418a004 },
-   { 0x80800042, 0x2c004629, 0x00b109c0, 0x00b109c1 },
-   { 0x80800042, 0x2c204629, 0x00b10a00, 0x00b10a01 },
-   { 0x80800042, 0x2c404629, 0x00b10a40, 0x00b10a41 },
-   { 0x80800042, 0x2c604629, 0x00b10a80, 0x00b10a81 },
-   { 0x80800042, 0x2c804629, 0x00b10ac0, 0x00b10ac1 },
-   { 0x80800042, 0x2ca04629, 0x00b10b00, 0x00b10b01 },
-   { 0x80800042, 0x2cc04629, 0x00b10b40, 0x00b10b41 },
-   { 0x80800042, 0x2ce04629, 0x00b10b80, 0x00b10b81 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x0000002c },
-   { 0x01000005, 0x20002d3c, 0x00210030, 0x00010001 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000017 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
-   { 0x00800031, 0x29c01d29, 0x008d0e60, 0x0411a004 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a001d29, 0x008d0e60, 0x0411a004 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a401d29, 0x008d0e60, 0x0411a004 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a801d29, 0x008d0e60, 0x0411a004 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0007001f },
-   { 0x00800031, 0x2ac01d29, 0x008d0e60, 0x0418a004 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
-   { 0x00800031, 0x2bc01d29, 0x008d0e60, 0x0411a004 },
-   { 0x80800042, 0x2c004629, 0x00b109c0, 0x00b10a00 },
-   { 0x80800042, 0x2c204629, 0x00b10a00, 0x00b10a40 },
-   { 0x80800042, 0x2c404629, 0x00b10a40, 0x00b10a80 },
-   { 0x80800042, 0x2c604629, 0x00b10a80, 0x00b10ac0 },
-   { 0x80800042, 0x2c804629, 0x00b10ac0, 0x00b10b00 },
-   { 0x80800042, 0x2ca04629, 0x00b10b00, 0x00b10b40 },
-   { 0x80800042, 0x2cc04629, 0x00b10b40, 0x00b10b80 },
-   { 0x80800042, 0x2ce04629, 0x00b10b80, 0x00b10bc0 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000013 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
-   { 0x00800031, 0x29c01d29, 0x008d0e60, 0x0411a004 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a001d29, 0x008d0e60, 0x0411a004 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a401d29, 0x008d0e60, 0x0411a004 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a801d29, 0x008d0e60, 0x0411a004 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0007001f },
-   { 0x00800031, 0x2ac01d29, 0x008d0e60, 0x0418a004 },
-   { 0x00800001, 0x2c000229, 0x00b109c0, 0x00000000 },
-   { 0x00800001, 0x2c200229, 0x00b10a00, 0x00000000 },
-   { 0x00800001, 0x2c400229, 0x00b10a40, 0x00000000 },
-   { 0x00800001, 0x2c600229, 0x00b10a80, 0x00000000 },
-   { 0x00800001, 0x2c800229, 0x00b10ac0, 0x00000000 },
-   { 0x00800001, 0x2ca00229, 0x00b10b00, 0x00000000 },
-   { 0x00800001, 0x2cc00229, 0x00b10b40, 0x00000000 },
-   { 0x00800001, 0x2ce00229, 0x00b10b80, 0x00000000 },
-   { 0x00600001, 0x23800021, 0x008d0c00, 0x00000000 },
-   { 0x00600001, 0x23c00021, 0x008d0c20, 0x00000000 },
-   { 0x00600001, 0x24000021, 0x008d0c40, 0x00000000 },
-   { 0x00600001, 0x24400021, 0x008d0c60, 0x00000000 },
-   { 0x00600001, 0x24800021, 0x008d0c80, 0x00000000 },
-   { 0x00600001, 0x24c00021, 0x008d0ca0, 0x00000000 },
-   { 0x00600001, 0x25000021, 0x008d0cc0, 0x00000000 },
-   { 0x00600001, 0x25400021, 0x008d0ce0, 0x00000000 },
-   { 0x0020000c, 0x2e6e2dad, 0x00450036, 0x00010001 },
-   { 0x00200040, 0x2e603421, 0x00450e80, 0x00450e6e },
-   { 0x00000005, 0x2e640c21, 0x00210e64, 0xfffffffe },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
-   { 0x02000005, 0x20002e3c, 0x0021003f, 0x00040004 },
-   { 0x00010040, 0x2e640c21, 0x00210e64, 0x00000001 },
-   { 0x01000005, 0x20002d3c, 0x00210036, 0x00010001 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000045 },
-   { 0x01000005, 0x20002d3c, 0x00210038, 0x00010001 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x0000002f },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
-   { 0x00800031, 0x29c01d29, 0x008d0e60, 0x0411a004 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a001d29, 0x008d0e60, 0x0411a004 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a401d29, 0x008d0e60, 0x0411a004 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a801d29, 0x008d0e60, 0x0411a004 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0007001f },
-   { 0x00800031, 0x2ac01d29, 0x008d0e60, 0x0418a004 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
-   { 0x00800031, 0x2bc01d29, 0x008d0e60, 0x0411a004 },
-   { 0x00800040, 0x2c004629, 0x00b109c0, 0x00b10a00 },
-   { 0x00800040, 0x2c204629, 0x00b10a00, 0x00b10a40 },
-   { 0x00800040, 0x2c404629, 0x00b10a40, 0x00b10a80 },
-   { 0x00800040, 0x2c604629, 0x00b10a80, 0x00b10ac0 },
-   { 0x00800040, 0x2c804629, 0x00b10ac0, 0x00b10b00 },
-   { 0x00800040, 0x2ca04629, 0x00b10b00, 0x00b10b40 },
-   { 0x00800040, 0x2cc04629, 0x00b10b40, 0x00b10b80 },
-   { 0x00800040, 0x2ce04629, 0x00b10b80, 0x00b10bc0 },
-   { 0x00800040, 0x2c004529, 0x00b10c00, 0x00b109c1 },
-   { 0x00800040, 0x2c204529, 0x00b10c20, 0x00b10a01 },
-   { 0x00800040, 0x2c404529, 0x00b10c40, 0x00b10a41 },
-   { 0x00800040, 0x2c604529, 0x00b10c60, 0x00b10a81 },
-   { 0x00800040, 0x2c804529, 0x00b10c80, 0x00b10ac1 },
-   { 0x00800040, 0x2ca04529, 0x00b10ca0, 0x00b10b01 },
-   { 0x00800040, 0x2cc04529, 0x00b10cc0, 0x00b10b41 },
-   { 0x00800040, 0x2ce04529, 0x00b10ce0, 0x00b10b81 },
-   { 0x00800040, 0x2c004529, 0x00b10c00, 0x00b10a01 },
-   { 0x00800040, 0x2c204529, 0x00b10c20, 0x00b10a41 },
-   { 0x00800040, 0x2c404529, 0x00b10c40, 0x00b10a81 },
-   { 0x00800040, 0x2c604529, 0x00b10c60, 0x00b10ac1 },
-   { 0x00800040, 0x2c804529, 0x00b10c80, 0x00b10b01 },
-   { 0x00800040, 0x2ca04529, 0x00b10ca0, 0x00b10b41 },
-   { 0x00800040, 0x2cc04529, 0x00b10cc0, 0x00b10b81 },
-   { 0x00800040, 0x2ce04529, 0x00b10ce0, 0x00b10bc1 },
-   { 0x00800008, 0x2c002d29, 0x00b10c00, 0x00020002 },
-   { 0x00800008, 0x2c202d29, 0x00b10c20, 0x00020002 },
-   { 0x00800008, 0x2c402d29, 0x00b10c40, 0x00020002 },
-   { 0x00800008, 0x2c602d29, 0x00b10c60, 0x00020002 },
-   { 0x00800008, 0x2c802d29, 0x00b10c80, 0x00020002 },
-   { 0x00800008, 0x2ca02d29, 0x00b10ca0, 0x00020002 },
-   { 0x00800008, 0x2cc02d29, 0x00b10cc0, 0x00020002 },
-   { 0x00800008, 0x2ce02d29, 0x00b10ce0, 0x00020002 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000040 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
-   { 0x00800031, 0x29c01d29, 0x008d0e60, 0x0411a004 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a001d29, 0x008d0e60, 0x0411a004 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a401d29, 0x008d0e60, 0x0411a004 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a801d29, 0x008d0e60, 0x0411a004 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0007001f },
-   { 0x00800031, 0x2ac01d29, 0x008d0e60, 0x0418a004 },
-   { 0x80800042, 0x2c004629, 0x00b109c0, 0x00b109c1 },
-   { 0x80800042, 0x2c204629, 0x00b10a00, 0x00b10a01 },
-   { 0x80800042, 0x2c404629, 0x00b10a40, 0x00b10a41 },
-   { 0x80800042, 0x2c604629, 0x00b10a80, 0x00b10a81 },
-   { 0x80800042, 0x2c804629, 0x00b10ac0, 0x00b10ac1 },
-   { 0x80800042, 0x2ca04629, 0x00b10b00, 0x00b10b01 },
-   { 0x80800042, 0x2cc04629, 0x00b10b40, 0x00b10b41 },
-   { 0x80800042, 0x2ce04629, 0x00b10b80, 0x00b10b81 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x0000002c },
-   { 0x01000005, 0x20002d3c, 0x00210038, 0x00010001 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000017 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
-   { 0x00800031, 0x29c01d29, 0x008d0e60, 0x0411a004 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a001d29, 0x008d0e60, 0x0411a004 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a401d29, 0x008d0e60, 0x0411a004 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a801d29, 0x008d0e60, 0x0411a004 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0007001f },
-   { 0x00800031, 0x2ac01d29, 0x008d0e60, 0x0418a004 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
-   { 0x00800031, 0x2bc01d29, 0x008d0e60, 0x0411a004 },
-   { 0x80800042, 0x2c004629, 0x00b109c0, 0x00b10a00 },
-   { 0x80800042, 0x2c204629, 0x00b10a00, 0x00b10a40 },
-   { 0x80800042, 0x2c404629, 0x00b10a40, 0x00b10a80 },
-   { 0x80800042, 0x2c604629, 0x00b10a80, 0x00b10ac0 },
-   { 0x80800042, 0x2c804629, 0x00b10ac0, 0x00b10b00 },
-   { 0x80800042, 0x2ca04629, 0x00b10b00, 0x00b10b40 },
-   { 0x80800042, 0x2cc04629, 0x00b10b40, 0x00b10b80 },
-   { 0x80800042, 0x2ce04629, 0x00b10b80, 0x00b10bc0 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000013 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
-   { 0x00800031, 0x29c01d29, 0x008d0e60, 0x0411a004 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a001d29, 0x008d0e60, 0x0411a004 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a401d29, 0x008d0e60, 0x0411a004 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a801d29, 0x008d0e60, 0x0411a004 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0007001f },
-   { 0x00800031, 0x2ac01d29, 0x008d0e60, 0x0418a004 },
-   { 0x00800001, 0x2c000229, 0x00b109c0, 0x00000000 },
-   { 0x00800001, 0x2c200229, 0x00b10a00, 0x00000000 },
-   { 0x00800001, 0x2c400229, 0x00b10a40, 0x00000000 },
-   { 0x00800001, 0x2c600229, 0x00b10a80, 0x00000000 },
-   { 0x00800001, 0x2c800229, 0x00b10ac0, 0x00000000 },
-   { 0x00800001, 0x2ca00229, 0x00b10b00, 0x00000000 },
-   { 0x00800001, 0x2cc00229, 0x00b10b40, 0x00000000 },
-   { 0x00800001, 0x2ce00229, 0x00b10b80, 0x00000000 },
-   { 0x00600001, 0x23a00021, 0x008d0c00, 0x00000000 },
-   { 0x00600001, 0x23e00021, 0x008d0c20, 0x00000000 },
-   { 0x00600001, 0x24200021, 0x008d0c40, 0x00000000 },
-   { 0x00600001, 0x24600021, 0x008d0c60, 0x00000000 },
-   { 0x00600001, 0x24a00021, 0x008d0c80, 0x00000000 },
-   { 0x00600001, 0x24e00021, 0x008d0ca0, 0x00000000 },
-   { 0x00600001, 0x25200021, 0x008d0cc0, 0x00000000 },
-   { 0x00600001, 0x25600021, 0x008d0ce0, 0x00000000 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0007000f },
-   { 0x0020000c, 0x2e6e2dad, 0x0045002e, 0x00020002 },
-   { 0x0020000c, 0x2e601ca5, 0x00450e80, 0x00000001 },
-   { 0x00200040, 0x2e6034a5, 0x00450e60, 0x00450e6e },
-   { 0x00000005, 0x2e640c21, 0x00210e64, 0xfffffffe },
-   { 0x02000005, 0x20002e3c, 0x0021003f, 0x00010001 },
-   { 0x00010040, 0x2e640c21, 0x00210e64, 0x00000001 },
-   { 0x01000005, 0x20002d3c, 0x0021002e, 0x00020002 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000036 },
-   { 0x01000005, 0x20002d3c, 0x00210030, 0x00020002 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000028 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0007000f },
-   { 0x00800031, 0x2ac01d29, 0x00ad0e60, 0x0414a005 },
-   { 0x00800031, 0x2b601d29, 0x00ad0e60, 0x0414a006 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0001000f },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 },
-   { 0x00800031, 0x2b401d29, 0x00ad0e60, 0x0411a005 },
-   { 0x00800031, 0x2be01d29, 0x00ad0e60, 0x0411a006 },
-   { 0x00800040, 0x29c04629, 0x00ad0ac0, 0x00ad0ae0 },
-   { 0x00800040, 0x29e04629, 0x00ad0ae0, 0x00ad0b00 },
-   { 0x00800040, 0x2a004629, 0x00ad0b00, 0x00ad0b20 },
-   { 0x00800040, 0x2a204629, 0x00ad0b20, 0x00ad0b40 },
-   { 0x00800040, 0x29c04529, 0x00ad09c0, 0x00ad0ac1 },
-   { 0x00800040, 0x29e04529, 0x00ad09e0, 0x00ad0ae1 },
-   { 0x00800040, 0x2a004529, 0x00ad0a00, 0x00ad0b01 },
-   { 0x00800040, 0x2a204529, 0x00ad0a20, 0x00ad0b21 },
-   { 0x00800040, 0x29c04529, 0x00ad09c0, 0x00ad0ae1 },
-   { 0x00800040, 0x29e04529, 0x00ad09e0, 0x00ad0b01 },
-   { 0x00800040, 0x2a004529, 0x00ad0a00, 0x00ad0b21 },
-   { 0x00800040, 0x2a204529, 0x00ad0a20, 0x00ad0b41 },
-   { 0x00800040, 0x2a404629, 0x00ad0b60, 0x00ad0b80 },
-   { 0x00800040, 0x2a604629, 0x00ad0b80, 0x00ad0ba0 },
-   { 0x00800040, 0x2a804629, 0x00ad0ba0, 0x00ad0bc0 },
-   { 0x00800040, 0x2aa04629, 0x00ad0bc0, 0x00ad0be0 },
-   { 0x00800040, 0x2a404529, 0x00ad0a40, 0x00ad0b61 },
-   { 0x00800040, 0x2a604529, 0x00ad0a60, 0x00ad0b81 },
-   { 0x00800040, 0x2a804529, 0x00ad0a80, 0x00ad0ba1 },
-   { 0x00800040, 0x2aa04529, 0x00ad0aa0, 0x00ad0bc1 },
-   { 0x00800040, 0x2a404529, 0x00ad0a40, 0x00ad0b81 },
-   { 0x00800040, 0x2a604529, 0x00ad0a60, 0x00ad0ba1 },
-   { 0x00800040, 0x2a804529, 0x00ad0a80, 0x00ad0bc1 },
-   { 0x00800040, 0x2aa04529, 0x00ad0aa0, 0x00ad0be1 },
-   { 0x80800008, 0x29c02d29, 0x00b109c0, 0x00020002 },
-   { 0x80800008, 0x29e02d29, 0x00b109e0, 0x00020002 },
-   { 0x80800008, 0x2a002d29, 0x00b10a00, 0x00020002 },
-   { 0x80800008, 0x2a202d29, 0x00b10a20, 0x00020002 },
-   { 0x80800008, 0x2a402d29, 0x00b10a40, 0x00020002 },
-   { 0x80800008, 0x2a602d29, 0x00b10a60, 0x00020002 },
-   { 0x80800008, 0x2a802d29, 0x00b10a80, 0x00020002 },
-   { 0x80800008, 0x2aa02d29, 0x00b10aa0, 0x00020002 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000028 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0007000f },
-   { 0x00800031, 0x2ac01d29, 0x00ad0e60, 0x0414a005 },
-   { 0x00800031, 0x2b601d29, 0x00ad0e60, 0x0414a006 },
-   { 0x80800042, 0x29c04629, 0x00ad0ac0, 0x00ad0ac1 },
-   { 0x80800042, 0x29e04629, 0x00ad0ae0, 0x00ad0ae1 },
-   { 0x80800042, 0x2a004629, 0x00ad0b00, 0x00ad0b01 },
-   { 0x80800042, 0x2a204629, 0x00ad0b20, 0x00ad0b21 },
-   { 0x80800042, 0x2a404629, 0x00ad0b60, 0x00ad0b61 },
-   { 0x80800042, 0x2a604629, 0x00ad0b80, 0x00ad0b81 },
-   { 0x80800042, 0x2a804629, 0x00ad0ba0, 0x00ad0ba1 },
-   { 0x80800042, 0x2aa04629, 0x00ad0bc0, 0x00ad0bc1 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x0000001c },
-   { 0x01000005, 0x20002d3c, 0x00210030, 0x00020002 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x0000000f },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0007000f },
-   { 0x00800031, 0x2ac01d29, 0x00ad0e60, 0x0414a005 },
-   { 0x00800031, 0x2b601d29, 0x00ad0e60, 0x0414a006 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0000000f },
-   { 0x00800031, 0x2b401d29, 0x00ad0e60, 0x0411a005 },
-   { 0x00800031, 0x2be01d29, 0x00ad0e60, 0x0411a006 },
-   { 0x80800042, 0x29c04629, 0x00ad0ac0, 0x00ad0ae0 },
-   { 0x80800042, 0x29e04629, 0x00ad0ae0, 0x00ad0b00 },
-   { 0x80800042, 0x2a004629, 0x00ad0b00, 0x00ad0b20 },
-   { 0x80800042, 0x2a204629, 0x00ad0b20, 0x00ad0b40 },
-   { 0x80800042, 0x2a404629, 0x00ad0b60, 0x00ad0b80 },
-   { 0x80800042, 0x2a604629, 0x00ad0b80, 0x00ad0ba0 },
-   { 0x80800042, 0x2a804629, 0x00ad0ba0, 0x00ad0bc0 },
-   { 0x80800042, 0x2aa04629, 0x00ad0bc0, 0x00ad0be0 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x0000000b },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0007000f },
-   { 0x00800031, 0x2ac01d29, 0x00ad0e60, 0x0414a005 },
-   { 0x00800031, 0x2b601d29, 0x00ad0e60, 0x0414a006 },
-   { 0x00800001, 0x29c00229, 0x00ad0ac0, 0x00000000 },
-   { 0x00800001, 0x29e00229, 0x00ad0ae0, 0x00000000 },
-   { 0x00800001, 0x2a000229, 0x00ad0b00, 0x00000000 },
-   { 0x00800001, 0x2a200229, 0x00ad0b20, 0x00000000 },
-   { 0x00800001, 0x2a400229, 0x00ad0b60, 0x00000000 },
-   { 0x00800001, 0x2a600229, 0x00ad0b80, 0x00000000 },
-   { 0x00800001, 0x2a800229, 0x00ad0ba0, 0x00000000 },
-   { 0x00800001, 0x2aa00229, 0x00ad0bc0, 0x00000000 },
-   { 0x00600001, 0x25800129, 0x008d09c0, 0x00000000 },
-   { 0x00600001, 0x25a00129, 0x008d09e0, 0x00000000 },
-   { 0x00600001, 0x25c00129, 0x008d0a00, 0x00000000 },
-   { 0x00600001, 0x25e00129, 0x008d0a20, 0x00000000 },
-   { 0x00600001, 0x26000129, 0x008d0a40, 0x00000000 },
-   { 0x00600001, 0x26200129, 0x008d0a60, 0x00000000 },
-   { 0x00600001, 0x26400129, 0x008d0a80, 0x00000000 },
-   { 0x00600001, 0x26600129, 0x008d0aa0, 0x00000000 },
-   { 0x0020000c, 0x2e6e2dad, 0x00450036, 0x00020002 },
-   { 0x0020000c, 0x2e601ca5, 0x00450e80, 0x00000001 },
-   { 0x00200040, 0x2e6034a5, 0x00450e60, 0x00450e6e },
-   { 0x00000005, 0x2e640c21, 0x00210e64, 0xfffffffe },
-   { 0x02000005, 0x20002e3c, 0x0021003f, 0x00040004 },
-   { 0x00010040, 0x2e640c21, 0x00210e64, 0x00000001 },
-   { 0x01000005, 0x20002d3c, 0x00210036, 0x00020002 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000036 },
-   { 0x01000005, 0x20002d3c, 0x00210038, 0x00020002 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000028 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0007000f },
-   { 0x00800031, 0x2ac01d29, 0x00ad0e60, 0x0414a005 },
-   { 0x00800031, 0x2b601d29, 0x00ad0e60, 0x0414a006 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0001000f },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 },
-   { 0x00800031, 0x2b401d29, 0x00ad0e60, 0x0411a005 },
-   { 0x00800031, 0x2be01d29, 0x00ad0e60, 0x0411a006 },
-   { 0x00800040, 0x29c04629, 0x00ad0ac0, 0x00ad0ae0 },
-   { 0x00800040, 0x29e04629, 0x00ad0ae0, 0x00ad0b00 },
-   { 0x00800040, 0x2a004629, 0x00ad0b00, 0x00ad0b20 },
-   { 0x00800040, 0x2a204629, 0x00ad0b20, 0x00ad0b40 },
-   { 0x00800040, 0x29c04529, 0x00ad09c0, 0x00ad0ac1 },
-   { 0x00800040, 0x29e04529, 0x00ad09e0, 0x00ad0ae1 },
-   { 0x00800040, 0x2a004529, 0x00ad0a00, 0x00ad0b01 },
-   { 0x00800040, 0x2a204529, 0x00ad0a20, 0x00ad0b21 },
-   { 0x00800040, 0x29c04529, 0x00ad09c0, 0x00ad0ae1 },
-   { 0x00800040, 0x29e04529, 0x00ad09e0, 0x00ad0b01 },
-   { 0x00800040, 0x2a004529, 0x00ad0a00, 0x00ad0b21 },
-   { 0x00800040, 0x2a204529, 0x00ad0a20, 0x00ad0b41 },
-   { 0x00800040, 0x2a404629, 0x00ad0b60, 0x00ad0b80 },
-   { 0x00800040, 0x2a604629, 0x00ad0b80, 0x00ad0ba0 },
-   { 0x00800040, 0x2a804629, 0x00ad0ba0, 0x00ad0bc0 },
-   { 0x00800040, 0x2aa04629, 0x00ad0bc0, 0x00ad0be0 },
-   { 0x00800040, 0x2a404529, 0x00ad0a40, 0x00ad0b61 },
-   { 0x00800040, 0x2a604529, 0x00ad0a60, 0x00ad0b81 },
-   { 0x00800040, 0x2a804529, 0x00ad0a80, 0x00ad0ba1 },
-   { 0x00800040, 0x2aa04529, 0x00ad0aa0, 0x00ad0bc1 },
-   { 0x00800040, 0x2a404529, 0x00ad0a40, 0x00ad0b81 },
-   { 0x00800040, 0x2a604529, 0x00ad0a60, 0x00ad0ba1 },
-   { 0x00800040, 0x2a804529, 0x00ad0a80, 0x00ad0bc1 },
-   { 0x00800040, 0x2aa04529, 0x00ad0aa0, 0x00ad0be1 },
-   { 0x80800008, 0x29c02d29, 0x00b109c0, 0x00020002 },
-   { 0x80800008, 0x29e02d29, 0x00b109e0, 0x00020002 },
-   { 0x80800008, 0x2a002d29, 0x00b10a00, 0x00020002 },
-   { 0x80800008, 0x2a202d29, 0x00b10a20, 0x00020002 },
-   { 0x80800008, 0x2a402d29, 0x00b10a40, 0x00020002 },
-   { 0x80800008, 0x2a602d29, 0x00b10a60, 0x00020002 },
-   { 0x80800008, 0x2a802d29, 0x00b10a80, 0x00020002 },
-   { 0x80800008, 0x2aa02d29, 0x00b10aa0, 0x00020002 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000028 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0007000f },
-   { 0x00800031, 0x2ac01d29, 0x00ad0e60, 0x0414a005 },
-   { 0x00800031, 0x2b601d29, 0x00ad0e60, 0x0414a006 },
-   { 0x80800042, 0x29c04629, 0x00ad0ac0, 0x00ad0ac1 },
-   { 0x80800042, 0x29e04629, 0x00ad0ae0, 0x00ad0ae1 },
-   { 0x80800042, 0x2a004629, 0x00ad0b00, 0x00ad0b01 },
-   { 0x80800042, 0x2a204629, 0x00ad0b20, 0x00ad0b21 },
-   { 0x80800042, 0x2a404629, 0x00ad0b60, 0x00ad0b61 },
-   { 0x80800042, 0x2a604629, 0x00ad0b80, 0x00ad0b81 },
-   { 0x80800042, 0x2a804629, 0x00ad0ba0, 0x00ad0ba1 },
-   { 0x80800042, 0x2aa04629, 0x00ad0bc0, 0x00ad0bc1 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x0000001c },
-   { 0x01000005, 0x20002d3c, 0x00210038, 0x00020002 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x0000000f },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0007000f },
-   { 0x00800031, 0x2ac01d29, 0x00ad0e60, 0x0414a005 },
-   { 0x00800031, 0x2b601d29, 0x00ad0e60, 0x0414a006 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0000000f },
-   { 0x00800031, 0x2b401d29, 0x00ad0e60, 0x0411a005 },
-   { 0x00800031, 0x2be01d29, 0x00ad0e60, 0x0411a006 },
-   { 0x80800042, 0x29c04629, 0x00ad0ac0, 0x00ad0ae0 },
-   { 0x80800042, 0x29e04629, 0x00ad0ae0, 0x00ad0b00 },
-   { 0x80800042, 0x2a004629, 0x00ad0b00, 0x00ad0b20 },
-   { 0x80800042, 0x2a204629, 0x00ad0b20, 0x00ad0b40 },
-   { 0x80800042, 0x2a404629, 0x00ad0b60, 0x00ad0b80 },
-   { 0x80800042, 0x2a604629, 0x00ad0b80, 0x00ad0ba0 },
-   { 0x80800042, 0x2a804629, 0x00ad0ba0, 0x00ad0bc0 },
-   { 0x80800042, 0x2aa04629, 0x00ad0bc0, 0x00ad0be0 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x0000000b },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0007000f },
-   { 0x00800031, 0x2ac01d29, 0x00ad0e60, 0x0414a005 },
-   { 0x00800031, 0x2b601d29, 0x00ad0e60, 0x0414a006 },
-   { 0x00800001, 0x29c00229, 0x00ad0ac0, 0x00000000 },
-   { 0x00800001, 0x29e00229, 0x00ad0ae0, 0x00000000 },
-   { 0x00800001, 0x2a000229, 0x00ad0b00, 0x00000000 },
-   { 0x00800001, 0x2a200229, 0x00ad0b20, 0x00000000 },
-   { 0x00800001, 0x2a400229, 0x00ad0b60, 0x00000000 },
-   { 0x00800001, 0x2a600229, 0x00ad0b80, 0x00000000 },
-   { 0x00800001, 0x2a800229, 0x00ad0ba0, 0x00000000 },
-   { 0x00800001, 0x2aa00229, 0x00ad0bc0, 0x00000000 },
-   { 0x00600001, 0x25900129, 0x008d09c0, 0x00000000 },
-   { 0x00600001, 0x25b00129, 0x008d09e0, 0x00000000 },
-   { 0x00600001, 0x25d00129, 0x008d0a00, 0x00000000 },
-   { 0x00600001, 0x25f00129, 0x008d0a20, 0x00000000 },
-   { 0x00600001, 0x26100129, 0x008d0a40, 0x00000000 },
-   { 0x00600001, 0x26300129, 0x008d0a60, 0x00000000 },
-   { 0x00600001, 0x26500129, 0x008d0a80, 0x00000000 },
-   { 0x00600001, 0x26700129, 0x008d0aa0, 0x00000000 },
-   { 0x00600001, 0x20200021, 0x008d0980, 0x00000000 },
-   { 0x00800001, 0x458101f1, 0x00000000, 0x00000000 },
-   { 0x00800001, 0x45a101f1, 0x00000000, 0x00000000 },
-   { 0x00800001, 0x45c101f1, 0x00000000, 0x00000000 },
-   { 0x00800001, 0x45e101f1, 0x00000000, 0x00000000 },
-   { 0x00800001, 0x460101f1, 0x00000000, 0x00000000 },
-   { 0x00800001, 0x462101f1, 0x00000000, 0x00000000 },
-   { 0x00800001, 0x464101f1, 0x00000000, 0x00000000 },
-   { 0x00800001, 0x466101f1, 0x00000000, 0x00000000 },
-   { 0x02000005, 0x20002e3c, 0x0021003e, 0x00010001 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000011 },
-   { 0x00800040, 0x238045ad, 0x00b10060, 0x00b20380 },
-   { 0x00800040, 0x23a045ad, 0x00b10080, 0x00b203a0 },
-   { 0x00800040, 0x23c045ad, 0x00b100a0, 0x00b203c0 },
-   { 0x00800040, 0x23e045ad, 0x00b100c0, 0x00b203e0 },
-   { 0x00800040, 0x240045ad, 0x00b100e0, 0x00b20400 },
-   { 0x00800040, 0x242045ad, 0x00b10100, 0x00b20420 },
-   { 0x00800040, 0x244045ad, 0x00b10120, 0x00b20440 },
-   { 0x00800040, 0x246045ad, 0x00b10140, 0x00b20460 },
-   { 0x00800040, 0x248045ad, 0x00b10160, 0x00b20480 },
-   { 0x00800040, 0x24a045ad, 0x00b10180, 0x00b204a0 },
-   { 0x00800040, 0x24c045ad, 0x00b101a0, 0x00b204c0 },
-   { 0x00800040, 0x24e045ad, 0x00b101c0, 0x00b204e0 },
-   { 0x00800040, 0x250045ad, 0x00b101e0, 0x00b20500 },
-   { 0x00800040, 0x252045ad, 0x00b10200, 0x00b20520 },
-   { 0x00800040, 0x254045ad, 0x00b10220, 0x00b20540 },
-   { 0x00800040, 0x256045ad, 0x00b10240, 0x00b20560 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000010 },
-   { 0x00800040, 0x238045ad, 0x00b10060, 0x00b20380 },
-   { 0x00800040, 0x23a045ad, 0x00b10160, 0x00b203a0 },
-   { 0x00800040, 0x23c045ad, 0x00b10080, 0x00b203c0 },
-   { 0x00800040, 0x23e045ad, 0x00b10180, 0x00b203e0 },
-   { 0x00800040, 0x240045ad, 0x00b100a0, 0x00b20400 },
-   { 0x00800040, 0x242045ad, 0x00b101a0, 0x00b20420 },
-   { 0x00800040, 0x244045ad, 0x00b100c0, 0x00b20440 },
-   { 0x00800040, 0x246045ad, 0x00b101c0, 0x00b20460 },
-   { 0x00800040, 0x248045ad, 0x00b100e0, 0x00b20480 },
-   { 0x00800040, 0x24a045ad, 0x00b101e0, 0x00b204a0 },
-   { 0x00800040, 0x24c045ad, 0x00b10100, 0x00b204c0 },
-   { 0x00800040, 0x24e045ad, 0x00b10200, 0x00b204e0 },
-   { 0x00800040, 0x250045ad, 0x00b10120, 0x00b20500 },
-   { 0x00800040, 0x252045ad, 0x00b10220, 0x00b20520 },
-   { 0x00800040, 0x254045ad, 0x00b10140, 0x00b20540 },
-   { 0x00800040, 0x256045ad, 0x00b10240, 0x00b20560 },
-   { 0x00000001, 0x20280061, 0x00000000, 0x000f000f },
-   { 0x80800001, 0x438001b1, 0x00b10380, 0x00000000 },
-   { 0x80800001, 0x43a001b1, 0x00b103a0, 0x00000000 },
-   { 0x80800001, 0x43c001b1, 0x00b103c0, 0x00000000 },
-   { 0x80800001, 0x43e001b1, 0x00b103e0, 0x00000000 },
-   { 0x80800001, 0x440001b1, 0x00b10400, 0x00000000 },
-   { 0x80800001, 0x442001b1, 0x00b10420, 0x00000000 },
-   { 0x80800001, 0x444001b1, 0x00b10440, 0x00000000 },
-   { 0x80800001, 0x446001b1, 0x00b10460, 0x00000000 },
-   { 0x80800001, 0x448001b1, 0x00b10480, 0x00000000 },
-   { 0x80800001, 0x44a001b1, 0x00b104a0, 0x00000000 },
-   { 0x80800001, 0x44c001b1, 0x00b104c0, 0x00000000 },
-   { 0x80800001, 0x44e001b1, 0x00b104e0, 0x00000000 },
-   { 0x80800001, 0x450001b1, 0x00b10500, 0x00000000 },
-   { 0x80800001, 0x452001b1, 0x00b10520, 0x00000000 },
-   { 0x80800001, 0x454001b1, 0x00b10540, 0x00000000 },
-   { 0x80800001, 0x456001b1, 0x00b10560, 0x00000000 },
-   { 0x00800001, 0x20200232, 0x00b20380, 0x00000000 },
-   { 0x00800001, 0x20300232, 0x00b203a0, 0x00000000 },
-   { 0x00800001, 0x20400232, 0x00b203c0, 0x00000000 },
-   { 0x00800001, 0x20500232, 0x00b203e0, 0x00000000 },
-   { 0x00800001, 0x20600232, 0x00b20400, 0x00000000 },
-   { 0x00800001, 0x20700232, 0x00b20420, 0x00000000 },
-   { 0x00800001, 0x20800232, 0x00b20440, 0x00000000 },
-   { 0x00800001, 0x20900232, 0x00b20460, 0x00000000 },
-   { 0x00800001, 0x20a00232, 0x00b20480, 0x00000000 },
-   { 0x00800001, 0x20b00232, 0x00b204a0, 0x00000000 },
-   { 0x00800001, 0x20c00232, 0x00b204c0, 0x00000000 },
-   { 0x00800001, 0x20d00232, 0x00b204e0, 0x00000000 },
-   { 0x00800001, 0x20e00232, 0x00b20500, 0x00000000 },
-   { 0x00800001, 0x20f00232, 0x00b20520, 0x00000000 },
-   { 0x00800001, 0x21000232, 0x00b20540, 0x00000000 },
-   { 0x00800001, 0x21100232, 0x00b20560, 0x00000000 },
-   { 0x00800031, 0x24001d28, 0x008d0020, 0x05902000 },
-   { 0x00000001, 0x20280061, 0x00000000, 0x00070007 },
-   { 0x00200008, 0x20201c21, 0x00450020, 0x00000001 },
-   { 0x00800040, 0x258025a9, 0x00b10260, 0x00b10580 },
-   { 0x00800040, 0x25a025a9, 0x00b10280, 0x00b105a0 },
-   { 0x00800040, 0x25c025a9, 0x00b102a0, 0x00b105c0 },
-   { 0x00800040, 0x25e025a9, 0x00b102c0, 0x00b105e0 },
-   { 0x80800001, 0x45800131, 0x00b10580, 0x00000000 },
-   { 0x80800001, 0x45a00131, 0x00b105a0, 0x00000000 },
-   { 0x80800001, 0x45c00131, 0x00b105c0, 0x00000000 },
-   { 0x80800001, 0x45e00131, 0x00b105e0, 0x00000000 },
-   { 0x00800001, 0x20200232, 0x00b20580, 0x00000000 },
-   { 0x00800001, 0x20300232, 0x00b205a0, 0x00000000 },
-   { 0x00800001, 0x20400232, 0x00b205c0, 0x00000000 },
-   { 0x00800001, 0x20500232, 0x00b205e0, 0x00000000 },
-   { 0x00800031, 0x24001d28, 0x008d0020, 0x05302001 },
-   { 0x00800040, 0x260025a9, 0x00b102e0, 0x00b10600 },
-   { 0x00800040, 0x262025a9, 0x00b10300, 0x00b10620 },
-   { 0x00800040, 0x264025a9, 0x00b10320, 0x00b10640 },
-   { 0x00800040, 0x266025a9, 0x00b10340, 0x00b10660 },
-   { 0x80800001, 0x46000131, 0x00b10600, 0x00000000 },
-   { 0x80800001, 0x46200131, 0x00b10620, 0x00000000 },
-   { 0x80800001, 0x46400131, 0x00b10640, 0x00000000 },
-   { 0x80800001, 0x46600131, 0x00b10660, 0x00000000 },
-   { 0x00800001, 0x20200232, 0x00b20600, 0x00000000 },
-   { 0x00800001, 0x20300232, 0x00b20620, 0x00000000 },
-   { 0x00800001, 0x20400232, 0x00b20640, 0x00000000 },
-   { 0x00800001, 0x20500232, 0x00b20660, 0x00000000 },
-   { 0x00800031, 0x24001d28, 0x008d0020, 0x05302002 },
-   { 0x00800031, 0x24001d28, 0x008d0000, 0x87100000 },
diff --git a/src/xvmc/frame_backward.g4a b/src/xvmc/frame_backward.g4a
deleted file mode 100644
index f669dac..0000000
--- a/src/xvmc/frame_backward.g4a
+++ /dev/null
@@ -1,69 +0,0 @@
-/*
- * Copyright © 2008 Intel Corporation
- *
- * Permission is hereby granted, free of charge, to any person obtaining a
- * copy of this software and associated documentation files (the "Software"),
- * to deal in the Software without restriction, including without limitation
- * the rights to use, copy, modify, merge, publish, distribute, sublicense,
- * and/or sell copies of the Software, and to permit persons to whom the
- * Software is furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice (including the next
- * paragraph) shall be included in all copies or substantial portions of the
- * Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
- * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
- * SOFTWARE.
- *
- * Author:
- *    Zou Nan hai <nanhai.zou at intel.com>
- *    Zhang Hua jun <huajun.zhang at intel.com>
- *    Xing Dong sheng <dongsheng.xing at intel.com>
- *
- */
-
-/* shader for backward predict mc
-*/
-mov (8) g76.0<1>UD g1.0<8,8,1>UD {align1};
-//mov (8) g77.0<1>UD g2.0<8,8,1>UD {align1};
-
-include(`block_clear.g4i')
-
-mov (2) g1.14<1>UW g1.18<2,2,1>UW {align1};
-/* save payload */
-mov (8) g115.0<1>UD g1.0<8,8,1>UD {align1}; 
-/* 8x8 media read/write payload */
-mov (1) g1.8<1>UD 0x0070007UD {align1};  
-/* save payload, again */
-define(`dest', `g118')
-define(`input_surface',	`7')
-define(`mv1',	`g115.14')
-define(`mv2',	`g115.16')
-/* Y */
-/* (x', y') = (x, y) + (motion_vector.x >> 1, motion_vector.y >> 1) */
-asr (2) g1.14<1>W g115.14<2,2,1>W 1W {align1};
-add (2) g2.0<1>UD g115.0<2,2,1>UD g1.14<2,2,1>W {align1};
-include(`motion_frame_y.g4i')
-/* motion_vector = motion_vector >> 1 */
-/* (x', y') = (x, y) + (motion_vector.x >> 1, motion_vector.y >> 1) */
-shr (2) g1.0<1>UD g115.0<2,2,1>UD 1UD {align1};
-asr (2) g115.14<1>W g115.14<2,2,1>W 1W {align1};
-asr (2) g1.14<1>W g115.14<2,2,1>W 1W {align1};
-add (2) g2.0<1>UD g1.0<2,2,1>UD g1.14<2,2,1>W {align1};
-/* U */
-define(`input_surface1',	`8')
-define(`input_surface2',	`9')
-mov (1) g2.8<1>UD 0x007000fUD  {align1};
-include(`motion_frame_uv.g4i')
-
-/* V */
-/* (x', y') = (x, y) + (motion_vector.x >> 1, motion_vector.y >> 1) */
-include(`addidct.g4i')
-
-send (16) 0 acc0<1>UW g0<8,8,1>UW 
-	thread_spawner(0, 0, 0) mlen 1 rlen 0 { align1 EOT};
diff --git a/src/xvmc/frame_backward.g4b b/src/xvmc/frame_backward.g4b
deleted file mode 100644
index 980ad62..0000000
--- a/src/xvmc/frame_backward.g4b
+++ /dev/null
@@ -1,716 +0,0 @@
-   { 0x00600001, 0x29800021, 0x008d0020, 0x00000000 },
-   { 0x02000005, 0x20000c3c, 0x00210040, 0x00000001 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000030 },
-   { 0x00000040, 0x20480c21, 0x00210988, 0x00000000 },
-   { 0x00800031, 0x20601c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x20801c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x20a01c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x20c01c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x20e01c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x21001c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x21201c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x21401c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x21601c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x21801c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x21a01c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x21c01c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x21e01c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x22001c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x22201c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x22401c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x22601c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x22801c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x22a01c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x22c01c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x22e01c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x23001c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x23201c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x23401c21, 0x00b10040, 0x04110203 },
-   { 0x02000005, 0x20002d3c, 0x0021098c, 0x00200020 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000008 },
-   { 0x00600001, 0x20600169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x20800169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x20a00169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x20c00169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x20e00169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x21000169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x21200169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x21400169, 0x00000000, 0x00000000 },
-   { 0x02000005, 0x20002d3c, 0x0021002c, 0x00100010 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000008 },
-   { 0x00600001, 0x20700169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x20900169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x20b00169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x20d00169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x20f00169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x21100169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x21300169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x21500169, 0x00000000, 0x00000000 },
-   { 0x02000005, 0x20002d3c, 0x0021002c, 0x00080008 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000008 },
-   { 0x00600001, 0x21600169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x21800169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x21a00169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x21c00169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x21e00169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x22000169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x22200169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x22400169, 0x00000000, 0x00000000 },
-   { 0x02000005, 0x20002d3c, 0x0021002c, 0x00040004 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000008 },
-   { 0x00600001, 0x21700169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x21900169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x21b00169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x21d00169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x21f00169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x22100169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x22300169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x22500169, 0x00000000, 0x00000000 },
-   { 0x02000005, 0x20002d3c, 0x0021002c, 0x00020002 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000004 },
-   { 0x00800001, 0x22600169, 0x00000000, 0x00000000 },
-   { 0x00800001, 0x22800169, 0x00000000, 0x00000000 },
-   { 0x00800001, 0x22a00169, 0x00000000, 0x00000000 },
-   { 0x00800001, 0x22c00169, 0x00000000, 0x00000000 },
-   { 0x02000005, 0x20002d3c, 0x0021002c, 0x00010001 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000004 },
-   { 0x00800001, 0x22e00169, 0x00000000, 0x00000000 },
-   { 0x00800001, 0x23000169, 0x00000000, 0x00000000 },
-   { 0x00800001, 0x23200169, 0x00000000, 0x00000000 },
-   { 0x00800001, 0x23400169, 0x00000000, 0x00000000 },
-   { 0x00200001, 0x202e0129, 0x00450032, 0x00000000 },
-   { 0x00600001, 0x2e600021, 0x008d0020, 0x00000000 },
-   { 0x00000001, 0x20280061, 0x00000000, 0x00070007 },
-   { 0x0020000c, 0x202e3dad, 0x00450e6e, 0x00010001 },
-   { 0x00200040, 0x20403421, 0x00450e60, 0x0045002e },
-   { 0x01000005, 0x20000d3c, 0x00210e6e, 0x00000001 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x0000012b },
-   { 0x01000005, 0x20000d3c, 0x00210e70, 0x00000001 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x000000de },
-   { 0x00000001, 0x20480061, 0x00000000, 0x0007001f },
-   { 0x00800031, 0x2c401d29, 0x008d0040, 0x0418a007 },
-   { 0x00000005, 0x20580c21, 0x00210040, 0x00000003 },
-   { 0x00000041, 0x20580c21, 0x00210058, 0x00000031 },
-   { 0x00000040, 0x20440c21, 0x00210044, 0x00000008 },
-   { 0x00800031, 0x2d401d29, 0x008d0040, 0x0418a007 },
-   { 0x00000040, 0x20440c21, 0x00210044, 0x00000008 },
-   { 0x00000001, 0x20480061, 0x00000000, 0x0000001f },
-   { 0x00800031, 0x2f001d29, 0x008d0040, 0x0411a007 },
-   { 0x00000020, 0x34001400, 0x00001400, 0x00210058 },
-   { 0x00800040, 0x23804629, 0x00b10c40, 0x00b10c41 },
-   { 0x00800040, 0x23a04629, 0x00b10c60, 0x00b10c61 },
-   { 0x00800040, 0x23c04629, 0x00b10c80, 0x00b10c81 },
-   { 0x00800040, 0x23e04629, 0x00b10ca0, 0x00b10ca1 },
-   { 0x00800040, 0x24004629, 0x00b10cc0, 0x00b10cc1 },
-   { 0x00800040, 0x24204629, 0x00b10ce0, 0x00b10ce1 },
-   { 0x00800040, 0x24404629, 0x00b10d00, 0x00b10d01 },
-   { 0x00800040, 0x24604629, 0x00b10d20, 0x00b10d21 },
-   { 0x00800040, 0x24804629, 0x00b10d40, 0x00b10d41 },
-   { 0x00800040, 0x24a04629, 0x00b10d60, 0x00b10d61 },
-   { 0x00800040, 0x24c04629, 0x00b10d80, 0x00b10d81 },
-   { 0x00800040, 0x24e04629, 0x00b10da0, 0x00b10da1 },
-   { 0x00800040, 0x25004629, 0x00b10dc0, 0x00b10dc1 },
-   { 0x00800040, 0x25204629, 0x00b10de0, 0x00b10de1 },
-   { 0x00800040, 0x25404629, 0x00b10e00, 0x00b10e01 },
-   { 0x00800040, 0x25604629, 0x00b10e20, 0x00b10e21 },
-   { 0x00800040, 0x23804529, 0x00b10380, 0x00b10c60 },
-   { 0x00800040, 0x23a04529, 0x00b103a0, 0x00b10c80 },
-   { 0x00800040, 0x23c04529, 0x00b103c0, 0x00b10ca0 },
-   { 0x00800040, 0x23e04529, 0x00b103e0, 0x00b10cc0 },
-   { 0x00800040, 0x24004529, 0x00b10400, 0x00b10ce0 },
-   { 0x00800040, 0x24204529, 0x00b10420, 0x00b10d00 },
-   { 0x00800040, 0x24404529, 0x00b10440, 0x00b10d20 },
-   { 0x00800040, 0x24604529, 0x00b10460, 0x00b10d40 },
-   { 0x00800040, 0x24804529, 0x00b10480, 0x00b10d60 },
-   { 0x00800040, 0x24a04529, 0x00b104a0, 0x00b10d80 },
-   { 0x00800040, 0x24c04529, 0x00b104c0, 0x00b10da0 },
-   { 0x00800040, 0x24e04529, 0x00b104e0, 0x00b10dc0 },
-   { 0x00800040, 0x25004529, 0x00b10500, 0x00b10de0 },
-   { 0x00800040, 0x25204529, 0x00b10520, 0x00b10e00 },
-   { 0x00800040, 0x25404529, 0x00b10540, 0x00b10e20 },
-   { 0x00800040, 0x25604529, 0x00b10560, 0x00b10f00 },
-   { 0x00800040, 0x23804529, 0x00b10380, 0x00b10c61 },
-   { 0x00800040, 0x23a04529, 0x00b103a0, 0x00b10c81 },
-   { 0x00800040, 0x23c04529, 0x00b103c0, 0x00b10ca1 },
-   { 0x00800040, 0x23e04529, 0x00b103e0, 0x00b10cc1 },
-   { 0x00800040, 0x24004529, 0x00b10400, 0x00b10ce1 },
-   { 0x00800040, 0x24204529, 0x00b10420, 0x00b10d01 },
-   { 0x00800040, 0x24404529, 0x00b10440, 0x00b10d21 },
-   { 0x00800040, 0x24604529, 0x00b10460, 0x00b10d41 },
-   { 0x00800040, 0x24804529, 0x00b10480, 0x00b10d61 },
-   { 0x00800040, 0x24a04529, 0x00b104a0, 0x00b10d81 },
-   { 0x00800040, 0x24c04529, 0x00b104c0, 0x00b10da1 },
-   { 0x00800040, 0x24e04529, 0x00b104e0, 0x00b10dc1 },
-   { 0x00800040, 0x25004529, 0x00b10500, 0x00b10de1 },
-   { 0x00800040, 0x25204529, 0x00b10520, 0x00b10e01 },
-   { 0x00800040, 0x25404529, 0x00b10540, 0x00b10e21 },
-   { 0x00800040, 0x25604529, 0x00b10560, 0x00b10f01 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000092 },
-   { 0x00800040, 0x23804629, 0x00b10c41, 0x00b10c42 },
-   { 0x00800040, 0x23a04629, 0x00b10c61, 0x00b10c62 },
-   { 0x00800040, 0x23c04629, 0x00b10c81, 0x00b10c82 },
-   { 0x00800040, 0x23e04629, 0x00b10ca1, 0x00b10ca2 },
-   { 0x00800040, 0x24004629, 0x00b10cc1, 0x00b10cc2 },
-   { 0x00800040, 0x24204629, 0x00b10ce1, 0x00b10ce2 },
-   { 0x00800040, 0x24404629, 0x00b10d01, 0x00b10d02 },
-   { 0x00800040, 0x24604629, 0x00b10d21, 0x00b10d22 },
-   { 0x00800040, 0x24804629, 0x00b10d41, 0x00b10d42 },
-   { 0x00800040, 0x24a04629, 0x00b10d61, 0x00b10d62 },
-   { 0x00800040, 0x24c04629, 0x00b10d81, 0x00b10d82 },
-   { 0x00800040, 0x24e04629, 0x00b10da1, 0x00b10da2 },
-   { 0x00800040, 0x25004629, 0x00b10dc1, 0x00b10dc2 },
-   { 0x00800040, 0x25204629, 0x00b10de1, 0x00b10de2 },
-   { 0x00800040, 0x25404629, 0x00b10e01, 0x00b10e02 },
-   { 0x00800040, 0x25604629, 0x00b10e21, 0x00b10e22 },
-   { 0x00800040, 0x23804529, 0x00b10380, 0x00b10c61 },
-   { 0x00800040, 0x23a04529, 0x00b103a0, 0x00b10c81 },
-   { 0x00800040, 0x23c04529, 0x00b103c0, 0x00b10ca1 },
-   { 0x00800040, 0x23e04529, 0x00b103e0, 0x00b10cc1 },
-   { 0x00800040, 0x24004529, 0x00b10400, 0x00b10ce1 },
-   { 0x00800040, 0x24204529, 0x00b10420, 0x00b10d01 },
-   { 0x00800040, 0x24404529, 0x00b10440, 0x00b10d21 },
-   { 0x00800040, 0x24604529, 0x00b10460, 0x00b10d41 },
-   { 0x00800040, 0x24804529, 0x00b10480, 0x00b10d61 },
-   { 0x00800040, 0x24a04529, 0x00b104a0, 0x00b10d81 },
-   { 0x00800040, 0x24c04529, 0x00b104c0, 0x00b10da1 },
-   { 0x00800040, 0x24e04529, 0x00b104e0, 0x00b10dc1 },
-   { 0x00800040, 0x25004529, 0x00b10500, 0x00b10de1 },
-   { 0x00800040, 0x25204529, 0x00b10520, 0x00b10e01 },
-   { 0x00800040, 0x25404529, 0x00b10540, 0x00b10e21 },
-   { 0x00800040, 0x25604529, 0x00b10560, 0x00b10f01 },
-   { 0x00800040, 0x23804529, 0x00b10380, 0x00b10c62 },
-   { 0x00800040, 0x23a04529, 0x00b103a0, 0x00b10c82 },
-   { 0x00800040, 0x23c04529, 0x00b103c0, 0x00b10ca2 },
-   { 0x00800040, 0x23e04529, 0x00b103e0, 0x00b10cc2 },
-   { 0x00800040, 0x24004529, 0x00b10400, 0x00b10ce2 },
-   { 0x00800040, 0x24204529, 0x00b10420, 0x00b10d02 },
-   { 0x00800040, 0x24404529, 0x00b10440, 0x00b10d22 },
-   { 0x00800040, 0x24604529, 0x00b10460, 0x00b10d42 },
-   { 0x00800040, 0x24804529, 0x00b10480, 0x00b10d62 },
-   { 0x00800040, 0x24a04529, 0x00b104a0, 0x00b10d82 },
-   { 0x00800040, 0x24c04529, 0x00b104c0, 0x00b10da2 },
-   { 0x00800040, 0x24e04529, 0x00b104e0, 0x00b10dc2 },
-   { 0x00800040, 0x25004529, 0x00b10500, 0x00b10de2 },
-   { 0x00800040, 0x25204529, 0x00b10520, 0x00b10e02 },
-   { 0x00800040, 0x25404529, 0x00b10540, 0x00b10e22 },
-   { 0x00800040, 0x25604529, 0x00b10560, 0x00b10f02 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000061 },
-   { 0x00800040, 0x23804629, 0x00b10c42, 0x00b10c43 },
-   { 0x00800040, 0x23a04629, 0x00b10c62, 0x00b10c63 },
-   { 0x00800040, 0x23c04629, 0x00b10c82, 0x00b10c83 },
-   { 0x00800040, 0x23e04629, 0x00b10ca2, 0x00b10ca3 },
-   { 0x00800040, 0x24004629, 0x00b10cc2, 0x00b10cc3 },
-   { 0x00800040, 0x24204629, 0x00b10ce2, 0x00b10ce3 },
-   { 0x00800040, 0x24404629, 0x00b10d02, 0x00b10d03 },
-   { 0x00800040, 0x24604629, 0x00b10d22, 0x00b10d23 },
-   { 0x00800040, 0x24804629, 0x00b10d42, 0x00b10d43 },
-   { 0x00800040, 0x24a04629, 0x00b10d62, 0x00b10d63 },
-   { 0x00800040, 0x24c04629, 0x00b10d82, 0x00b10d83 },
-   { 0x00800040, 0x24e04629, 0x00b10da2, 0x00b10da3 },
-   { 0x00800040, 0x25004629, 0x00b10dc2, 0x00b10dc3 },
-   { 0x00800040, 0x25204629, 0x00b10de2, 0x00b10de3 },
-   { 0x00800040, 0x25404629, 0x00b10e02, 0x00b10e03 },
-   { 0x00800040, 0x25604629, 0x00b10e22, 0x00b10e23 },
-   { 0x00800040, 0x23804529, 0x00b10380, 0x00b10c62 },
-   { 0x00800040, 0x23a04529, 0x00b103a0, 0x00b10c82 },
-   { 0x00800040, 0x23c04529, 0x00b103c0, 0x00b10ca2 },
-   { 0x00800040, 0x23e04529, 0x00b103e0, 0x00b10cc2 },
-   { 0x00800040, 0x24004529, 0x00b10400, 0x00b10ce2 },
-   { 0x00800040, 0x24204529, 0x00b10420, 0x00b10d02 },
-   { 0x00800040, 0x24404529, 0x00b10440, 0x00b10d22 },
-   { 0x00800040, 0x24604529, 0x00b10460, 0x00b10d42 },
-   { 0x00800040, 0x24804529, 0x00b10480, 0x00b10d62 },
-   { 0x00800040, 0x24a04529, 0x00b104a0, 0x00b10d82 },
-   { 0x00800040, 0x24c04529, 0x00b104c0, 0x00b10da2 },
-   { 0x00800040, 0x24e04529, 0x00b104e0, 0x00b10dc2 },
-   { 0x00800040, 0x25004529, 0x00b10500, 0x00b10de2 },
-   { 0x00800040, 0x25204529, 0x00b10520, 0x00b10e02 },
-   { 0x00800040, 0x25404529, 0x00b10540, 0x00b10e22 },
-   { 0x00800040, 0x25604529, 0x00b10560, 0x00b10f02 },
-   { 0x00800040, 0x23804529, 0x00b10380, 0x00b10c63 },
-   { 0x00800040, 0x23a04529, 0x00b103a0, 0x00b10c83 },
-   { 0x00800040, 0x23c04529, 0x00b103c0, 0x00b10ca3 },
-   { 0x00800040, 0x23e04529, 0x00b103e0, 0x00b10cc3 },
-   { 0x00800040, 0x24004529, 0x00b10400, 0x00b10ce3 },
-   { 0x00800040, 0x24204529, 0x00b10420, 0x00b10d03 },
-   { 0x00800040, 0x24404529, 0x00b10440, 0x00b10d23 },
-   { 0x00800040, 0x24604529, 0x00b10460, 0x00b10d43 },
-   { 0x00800040, 0x24804529, 0x00b10480, 0x00b10d63 },
-   { 0x00800040, 0x24a04529, 0x00b104a0, 0x00b10d83 },
-   { 0x00800040, 0x24c04529, 0x00b104c0, 0x00b10da3 },
-   { 0x00800040, 0x24e04529, 0x00b104e0, 0x00b10dc3 },
-   { 0x00800040, 0x25004529, 0x00b10500, 0x00b10de3 },
-   { 0x00800040, 0x25204529, 0x00b10520, 0x00b10e03 },
-   { 0x00800040, 0x25404529, 0x00b10540, 0x00b10e23 },
-   { 0x00800040, 0x25604529, 0x00b10560, 0x00b10f03 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000030 },
-   { 0x00800040, 0x23804629, 0x00b10c43, 0x00b10c44 },
-   { 0x00800040, 0x23a04629, 0x00b10c63, 0x00b10c64 },
-   { 0x00800040, 0x23c04629, 0x00b10c83, 0x00b10c84 },
-   { 0x00800040, 0x23e04629, 0x00b10ca3, 0x00b10ca4 },
-   { 0x00800040, 0x24004629, 0x00b10cc3, 0x00b10cc4 },
-   { 0x00800040, 0x24204629, 0x00b10ce3, 0x00b10ce4 },
-   { 0x00800040, 0x24404629, 0x00b10d03, 0x00b10d04 },
-   { 0x00800040, 0x24604629, 0x00b10d23, 0x00b10d24 },
-   { 0x00800040, 0x24804629, 0x00b10d43, 0x00b10d44 },
-   { 0x00800040, 0x24a04629, 0x00b10d63, 0x00b10d64 },
-   { 0x00800040, 0x24c04629, 0x00b10d83, 0x00b10d84 },
-   { 0x00800040, 0x24e04629, 0x00b10da3, 0x00b10da4 },
-   { 0x00800040, 0x25004629, 0x00b10dc3, 0x00b10dc4 },
-   { 0x00800040, 0x25204629, 0x00b10de3, 0x00b10de4 },
-   { 0x00800040, 0x25404629, 0x00b10e03, 0x00b10e04 },
-   { 0x00800040, 0x25604629, 0x00b10e23, 0x00b10e24 },
-   { 0x00800040, 0x23804529, 0x00b10380, 0x00b10c63 },
-   { 0x00800040, 0x23a04529, 0x00b103a0, 0x00b10c83 },
-   { 0x00800040, 0x23c04529, 0x00b103c0, 0x00b10ca3 },
-   { 0x00800040, 0x23e04529, 0x00b103e0, 0x00b10cc3 },
-   { 0x00800040, 0x24004529, 0x00b10400, 0x00b10ce3 },
-   { 0x00800040, 0x24204529, 0x00b10420, 0x00b10d03 },
-   { 0x00800040, 0x24404529, 0x00b10440, 0x00b10d23 },
-   { 0x00800040, 0x24604529, 0x00b10460, 0x00b10d43 },
-   { 0x00800040, 0x24804529, 0x00b10480, 0x00b10d63 },
-   { 0x00800040, 0x24a04529, 0x00b104a0, 0x00b10d83 },
-   { 0x00800040, 0x24c04529, 0x00b104c0, 0x00b10da3 },
-   { 0x00800040, 0x24e04529, 0x00b104e0, 0x00b10dc3 },
-   { 0x00800040, 0x25004529, 0x00b10500, 0x00b10de3 },
-   { 0x00800040, 0x25204529, 0x00b10520, 0x00b10e03 },
-   { 0x00800040, 0x25404529, 0x00b10540, 0x00b10e23 },
-   { 0x00800040, 0x25604529, 0x00b10560, 0x00b10f03 },
-   { 0x00800040, 0x23804529, 0x00b10380, 0x00b10c64 },
-   { 0x00800040, 0x23a04529, 0x00b103a0, 0x00b10c84 },
-   { 0x00800040, 0x23c04529, 0x00b103c0, 0x00b10ca4 },
-   { 0x00800040, 0x23e04529, 0x00b103e0, 0x00b10cc4 },
-   { 0x00800040, 0x24004529, 0x00b10400, 0x00b10ce4 },
-   { 0x00800040, 0x24204529, 0x00b10420, 0x00b10d04 },
-   { 0x00800040, 0x24404529, 0x00b10440, 0x00b10d24 },
-   { 0x00800040, 0x24604529, 0x00b10460, 0x00b10d44 },
-   { 0x00800040, 0x24804529, 0x00b10480, 0x00b10d64 },
-   { 0x00800040, 0x24a04529, 0x00b104a0, 0x00b10d84 },
-   { 0x00800040, 0x24c04529, 0x00b104c0, 0x00b10da4 },
-   { 0x00800040, 0x24e04529, 0x00b104e0, 0x00b10dc4 },
-   { 0x00800040, 0x25004529, 0x00b10500, 0x00b10de4 },
-   { 0x00800040, 0x25204529, 0x00b10520, 0x00b10e04 },
-   { 0x00800040, 0x25404529, 0x00b10540, 0x00b10e24 },
-   { 0x00800040, 0x25604529, 0x00b10560, 0x00b10f04 },
-   { 0x80800008, 0x23802d29, 0x00b10380, 0x00020002 },
-   { 0x80800008, 0x23a02d29, 0x00b103a0, 0x00020002 },
-   { 0x80800008, 0x23c02d29, 0x00b103c0, 0x00020002 },
-   { 0x80800008, 0x23e02d29, 0x00b103e0, 0x00020002 },
-   { 0x80800008, 0x24002d29, 0x00b10400, 0x00020002 },
-   { 0x80800008, 0x24202d29, 0x00b10420, 0x00020002 },
-   { 0x80800008, 0x24402d29, 0x00b10440, 0x00020002 },
-   { 0x80800008, 0x24602d29, 0x00b10460, 0x00020002 },
-   { 0x80800008, 0x24802d29, 0x00b10480, 0x00020002 },
-   { 0x80800008, 0x24a02d29, 0x00b104a0, 0x00020002 },
-   { 0x80800008, 0x24c02d29, 0x00b104c0, 0x00020002 },
-   { 0x80800008, 0x24e02d29, 0x00b104e0, 0x00020002 },
-   { 0x80800008, 0x25002d29, 0x00b10500, 0x00020002 },
-   { 0x80800008, 0x25202d29, 0x00b10520, 0x00020002 },
-   { 0x80800008, 0x25402d29, 0x00b10540, 0x00020002 },
-   { 0x80800008, 0x25602d29, 0x00b10560, 0x00020002 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x000000e5 },
-   { 0x00000001, 0x20480061, 0x00000000, 0x0007001f },
-   { 0x00800031, 0x2c401d29, 0x008d0040, 0x0418a007 },
-   { 0x00000005, 0x20580c21, 0x00210040, 0x00000003 },
-   { 0x00000041, 0x20581c21, 0x00210058, 0x00000011 },
-   { 0x00000040, 0x20440c21, 0x00210044, 0x00000008 },
-   { 0x00800031, 0x2d401d29, 0x008d0040, 0x0418a007 },
-   { 0x00000020, 0x34001400, 0x00001400, 0x00210058 },
-   { 0x80800042, 0x23804629, 0x00b10c40, 0x00b10c41 },
-   { 0x80800042, 0x23a04629, 0x00b10c60, 0x00b10c61 },
-   { 0x80800042, 0x23c04629, 0x00b10c80, 0x00b10c81 },
-   { 0x80800042, 0x23e04629, 0x00b10ca0, 0x00b10ca1 },
-   { 0x80800042, 0x24004629, 0x00b10cc0, 0x00b10cc1 },
-   { 0x80800042, 0x24204629, 0x00b10ce0, 0x00b10ce1 },
-   { 0x80800042, 0x24404629, 0x00b10d00, 0x00b10d01 },
-   { 0x80800042, 0x24604629, 0x00b10d20, 0x00b10d21 },
-   { 0x80800042, 0x24804629, 0x00b10d40, 0x00b10d41 },
-   { 0x80800042, 0x24a04629, 0x00b10d60, 0x00b10d61 },
-   { 0x80800042, 0x24c04629, 0x00b10d80, 0x00b10d81 },
-   { 0x80800042, 0x24e04629, 0x00b10da0, 0x00b10da1 },
-   { 0x80800042, 0x25004629, 0x00b10dc0, 0x00b10dc1 },
-   { 0x80800042, 0x25204629, 0x00b10de0, 0x00b10de1 },
-   { 0x80800042, 0x25404629, 0x00b10e00, 0x00b10e01 },
-   { 0x80800042, 0x25604629, 0x00b10e20, 0x00b10e21 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000032 },
-   { 0x80800042, 0x23804629, 0x00b10c41, 0x00b10c42 },
-   { 0x80800042, 0x23a04629, 0x00b10c61, 0x00b10c62 },
-   { 0x80800042, 0x23c04629, 0x00b10c81, 0x00b10c82 },
-   { 0x80800042, 0x23e04629, 0x00b10ca1, 0x00b10ca2 },
-   { 0x80800042, 0x24004629, 0x00b10cc1, 0x00b10cc2 },
-   { 0x80800042, 0x24204629, 0x00b10ce1, 0x00b10ce2 },
-   { 0x80800042, 0x24404629, 0x00b10d01, 0x00b10d02 },
-   { 0x80800042, 0x24604629, 0x00b10d21, 0x00b10d22 },
-   { 0x80800042, 0x24804629, 0x00b10d41, 0x00b10d42 },
-   { 0x80800042, 0x24a04629, 0x00b10d61, 0x00b10d62 },
-   { 0x80800042, 0x24c04629, 0x00b10d81, 0x00b10d82 },
-   { 0x80800042, 0x24e04629, 0x00b10da1, 0x00b10da2 },
-   { 0x80800042, 0x25004629, 0x00b10dc1, 0x00b10dc2 },
-   { 0x80800042, 0x25204629, 0x00b10de1, 0x00b10de2 },
-   { 0x80800042, 0x25404629, 0x00b10e01, 0x00b10e02 },
-   { 0x80800042, 0x25604629, 0x00b10e21, 0x00b10e22 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000021 },
-   { 0x80800042, 0x23804629, 0x00b10c42, 0x00b10c43 },
-   { 0x80800042, 0x23a04629, 0x00b10c62, 0x00b10c63 },
-   { 0x80800042, 0x23c04629, 0x00b10c82, 0x00b10c83 },
-   { 0x80800042, 0x23e04629, 0x00b10ca2, 0x00b10ca3 },
-   { 0x80800042, 0x24004629, 0x00b10cc2, 0x00b10cc3 },
-   { 0x80800042, 0x24204629, 0x00b10ce2, 0x00b10ce3 },
-   { 0x80800042, 0x24404629, 0x00b10d02, 0x00b10d03 },
-   { 0x80800042, 0x24604629, 0x00b10d22, 0x00b10d23 },
-   { 0x80800042, 0x24804629, 0x00b10d42, 0x00b10d43 },
-   { 0x80800042, 0x24a04629, 0x00b10d62, 0x00b10d63 },
-   { 0x80800042, 0x24c04629, 0x00b10d82, 0x00b10d83 },
-   { 0x80800042, 0x24e04629, 0x00b10da2, 0x00b10da3 },
-   { 0x80800042, 0x25004629, 0x00b10dc2, 0x00b10dc3 },
-   { 0x80800042, 0x25204629, 0x00b10de2, 0x00b10de3 },
-   { 0x80800042, 0x25404629, 0x00b10e02, 0x00b10e03 },
-   { 0x80800042, 0x25604629, 0x00b10e22, 0x00b10e23 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000010 },
-   { 0x80800042, 0x23804629, 0x00b10c43, 0x00b10c44 },
-   { 0x80800042, 0x23a04629, 0x00b10c63, 0x00b10c64 },
-   { 0x80800042, 0x23c04629, 0x00b10c83, 0x00b10c84 },
-   { 0x80800042, 0x23e04629, 0x00b10ca3, 0x00b10ca4 },
-   { 0x80800042, 0x24004629, 0x00b10cc3, 0x00b10cc4 },
-   { 0x80800042, 0x24204629, 0x00b10ce3, 0x00b10ce4 },
-   { 0x80800042, 0x24404629, 0x00b10d03, 0x00b10d04 },
-   { 0x80800042, 0x24604629, 0x00b10d23, 0x00b10d24 },
-   { 0x80800042, 0x24804629, 0x00b10d43, 0x00b10d44 },
-   { 0x80800042, 0x24a04629, 0x00b10d63, 0x00b10d64 },
-   { 0x80800042, 0x24c04629, 0x00b10d83, 0x00b10d84 },
-   { 0x80800042, 0x24e04629, 0x00b10da3, 0x00b10da4 },
-   { 0x80800042, 0x25004629, 0x00b10dc3, 0x00b10dc4 },
-   { 0x80800042, 0x25204629, 0x00b10de3, 0x00b10de4 },
-   { 0x80800042, 0x25404629, 0x00b10e03, 0x00b10e04 },
-   { 0x80800042, 0x25604629, 0x00b10e23, 0x00b10e24 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x0000009a },
-   { 0x01000005, 0x20000d3c, 0x00210e70, 0x00000001 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x0000004e },
-   { 0x00000001, 0x20480061, 0x00000000, 0x0007001f },
-   { 0x00800031, 0x2c401d29, 0x008d0040, 0x0418a007 },
-   { 0x00000005, 0x20580c21, 0x00210040, 0x00000003 },
-   { 0x00000041, 0x20580c21, 0x00210058, 0x00000011 },
-   { 0x00000040, 0x20440c21, 0x00210044, 0x00000008 },
-   { 0x00800031, 0x2d401d29, 0x008d0040, 0x0418a007 },
-   { 0x00000040, 0x20440c21, 0x00210044, 0x00000008 },
-   { 0x00000001, 0x20480061, 0x00000000, 0x0000001f },
-   { 0x00800031, 0x2f001d29, 0x008d0040, 0x0411a007 },
-   { 0x00000020, 0x34001400, 0x00001400, 0x00210058 },
-   { 0x80800042, 0x23804629, 0x00b10c40, 0x00b10c60 },
-   { 0x80800042, 0x23a04629, 0x00b10c60, 0x00b10c80 },
-   { 0x80800042, 0x23c04629, 0x00b10c80, 0x00b10ca0 },
-   { 0x80800042, 0x23e04629, 0x00b10ca0, 0x00b10cc0 },
-   { 0x80800042, 0x24004629, 0x00b10cc0, 0x00b10ce0 },
-   { 0x80800042, 0x24204629, 0x00b10ce0, 0x00b10d00 },
-   { 0x80800042, 0x24404629, 0x00b10d00, 0x00b10d20 },
-   { 0x80800042, 0x24604629, 0x00b10d20, 0x00b10d40 },
-   { 0x80800042, 0x24804629, 0x00b10d40, 0x00b10d60 },
-   { 0x80800042, 0x24a04629, 0x00b10d60, 0x00b10d80 },
-   { 0x80800042, 0x24c04629, 0x00b10d80, 0x00b10da0 },
-   { 0x80800042, 0x24e04629, 0x00b10da0, 0x00b10dc0 },
-   { 0x80800042, 0x25004629, 0x00b10dc0, 0x00b10de0 },
-   { 0x80800042, 0x25204629, 0x00b10de0, 0x00b10e00 },
-   { 0x80800042, 0x25404629, 0x00b10e00, 0x00b10e20 },
-   { 0x80800042, 0x25604629, 0x00b10e20, 0x00b10f00 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000032 },
-   { 0x80800042, 0x23804629, 0x00b10c41, 0x00b10c61 },
-   { 0x80800042, 0x23a04629, 0x00b10c61, 0x00b10c81 },
-   { 0x80800042, 0x23c04629, 0x00b10c81, 0x00b10ca1 },
-   { 0x80800042, 0x23e04629, 0x00b10ca1, 0x00b10cc1 },
-   { 0x80800042, 0x24004629, 0x00b10cc1, 0x00b10ce1 },
-   { 0x80800042, 0x24204629, 0x00b10ce1, 0x00b10d01 },
-   { 0x80800042, 0x24404629, 0x00b10d01, 0x00b10d21 },
-   { 0x80800042, 0x24604629, 0x00b10d21, 0x00b10d41 },
-   { 0x80800042, 0x24804629, 0x00b10d41, 0x00b10d61 },
-   { 0x80800042, 0x24a04629, 0x00b10d61, 0x00b10d81 },
-   { 0x80800042, 0x24c04629, 0x00b10d81, 0x00b10da1 },
-   { 0x80800042, 0x24e04629, 0x00b10da1, 0x00b10dc1 },
-   { 0x80800042, 0x25004629, 0x00b10dc1, 0x00b10de1 },
-   { 0x80800042, 0x25204629, 0x00b10de1, 0x00b10e01 },
-   { 0x80800042, 0x25404629, 0x00b10e01, 0x00b10e21 },
-   { 0x80800042, 0x25604629, 0x00b10e21, 0x00b10f01 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000021 },
-   { 0x80800042, 0x23804629, 0x00b10c42, 0x00b10c62 },
-   { 0x80800042, 0x23a04629, 0x00b10c62, 0x00b10c82 },
-   { 0x80800042, 0x23c04629, 0x00b10c82, 0x00b10ca2 },
-   { 0x80800042, 0x23e04629, 0x00b10ca2, 0x00b10cc2 },
-   { 0x80800042, 0x24004629, 0x00b10cc2, 0x00b10ce2 },
-   { 0x80800042, 0x24204629, 0x00b10ce2, 0x00b10d02 },
-   { 0x80800042, 0x24404629, 0x00b10d02, 0x00b10d22 },
-   { 0x80800042, 0x24604629, 0x00b10d22, 0x00b10d42 },
-   { 0x80800042, 0x24804629, 0x00b10d42, 0x00b10d62 },
-   { 0x80800042, 0x24a04629, 0x00b10d62, 0x00b10d82 },
-   { 0x80800042, 0x24c04629, 0x00b10d82, 0x00b10da2 },
-   { 0x80800042, 0x24e04629, 0x00b10da2, 0x00b10dc2 },
-   { 0x80800042, 0x25004629, 0x00b10dc2, 0x00b10de2 },
-   { 0x80800042, 0x25204629, 0x00b10de2, 0x00b10e02 },
-   { 0x80800042, 0x25404629, 0x00b10e02, 0x00b10e22 },
-   { 0x80800042, 0x25604629, 0x00b10e22, 0x00b10f02 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000010 },
-   { 0x80800042, 0x23804629, 0x00b10c43, 0x00b10c63 },
-   { 0x80800042, 0x23a04629, 0x00b10c63, 0x00b10c83 },
-   { 0x80800042, 0x23c04629, 0x00b10c83, 0x00b10ca3 },
-   { 0x80800042, 0x23e04629, 0x00b10ca3, 0x00b10cc3 },
-   { 0x80800042, 0x24004629, 0x00b10cc3, 0x00b10ce3 },
-   { 0x80800042, 0x24204629, 0x00b10ce3, 0x00b10d03 },
-   { 0x80800042, 0x24404629, 0x00b10d03, 0x00b10d23 },
-   { 0x80800042, 0x24604629, 0x00b10d23, 0x00b10d43 },
-   { 0x80800042, 0x24804629, 0x00b10d43, 0x00b10d63 },
-   { 0x80800042, 0x24a04629, 0x00b10d63, 0x00b10d83 },
-   { 0x80800042, 0x24c04629, 0x00b10d83, 0x00b10da3 },
-   { 0x80800042, 0x24e04629, 0x00b10da3, 0x00b10dc3 },
-   { 0x80800042, 0x25004629, 0x00b10dc3, 0x00b10de3 },
-   { 0x80800042, 0x25204629, 0x00b10de3, 0x00b10e03 },
-   { 0x80800042, 0x25404629, 0x00b10e03, 0x00b10e23 },
-   { 0x80800042, 0x25604629, 0x00b10e23, 0x00b10f03 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x0000004a },
-   { 0x00000001, 0x20480061, 0x00000000, 0x0007001f },
-   { 0x00800031, 0x2c401d29, 0x008d0040, 0x0418a007 },
-   { 0x00000040, 0x20440c21, 0x00210044, 0x00000008 },
-   { 0x00800031, 0x2d401d29, 0x008d0040, 0x0418a007 },
-   { 0x00000005, 0x20580c21, 0x00210040, 0x00000003 },
-   { 0x00000041, 0x20580c21, 0x00210058, 0x00000011 },
-   { 0x00000020, 0x34001400, 0x00001400, 0x00210058 },
-   { 0x00800001, 0x23800229, 0x00b10c40, 0x00000000 },
-   { 0x00800001, 0x23a00229, 0x00b10c60, 0x00000000 },
-   { 0x00800001, 0x23c00229, 0x00b10c80, 0x00000000 },
-   { 0x00800001, 0x23e00229, 0x00b10ca0, 0x00000000 },
-   { 0x00800001, 0x24000229, 0x00b10cc0, 0x00000000 },
-   { 0x00800001, 0x24200229, 0x00b10ce0, 0x00000000 },
-   { 0x00800001, 0x24400229, 0x00b10d00, 0x00000000 },
-   { 0x00800001, 0x24600229, 0x00b10d20, 0x00000000 },
-   { 0x00800001, 0x24800229, 0x00b10d40, 0x00000000 },
-   { 0x00800001, 0x24a00229, 0x00b10d60, 0x00000000 },
-   { 0x00800001, 0x24c00229, 0x00b10d80, 0x00000000 },
-   { 0x00800001, 0x24e00229, 0x00b10da0, 0x00000000 },
-   { 0x00800001, 0x25000229, 0x00b10dc0, 0x00000000 },
-   { 0x00800001, 0x25200229, 0x00b10de0, 0x00000000 },
-   { 0x00800001, 0x25400229, 0x00b10e00, 0x00000000 },
-   { 0x00800001, 0x25600229, 0x00b10e20, 0x00000000 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000032 },
-   { 0x00800001, 0x23800229, 0x00b10c41, 0x00000000 },
-   { 0x00800001, 0x23a00229, 0x00b10c61, 0x00000000 },
-   { 0x00800001, 0x23c00229, 0x00b10c81, 0x00000000 },
-   { 0x00800001, 0x23e00229, 0x00b10ca1, 0x00000000 },
-   { 0x00800001, 0x24000229, 0x00b10cc1, 0x00000000 },
-   { 0x00800001, 0x24200229, 0x00b10ce1, 0x00000000 },
-   { 0x00800001, 0x24400229, 0x00b10d01, 0x00000000 },
-   { 0x00800001, 0x24600229, 0x00b10d21, 0x00000000 },
-   { 0x00800001, 0x24800229, 0x00b10d41, 0x00000000 },
-   { 0x00800001, 0x24a00229, 0x00b10d61, 0x00000000 },
-   { 0x00800001, 0x24c00229, 0x00b10d81, 0x00000000 },
-   { 0x00800001, 0x24e00229, 0x00b10da1, 0x00000000 },
-   { 0x00800001, 0x25000229, 0x00b10dc1, 0x00000000 },
-   { 0x00800001, 0x25200229, 0x00b10de1, 0x00000000 },
-   { 0x00800001, 0x25400229, 0x00b10e01, 0x00000000 },
-   { 0x00800001, 0x25600229, 0x00b10e21, 0x00000000 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000021 },
-   { 0x00800001, 0x23800229, 0x00b10c42, 0x00000000 },
-   { 0x00800001, 0x23a00229, 0x00b10c62, 0x00000000 },
-   { 0x00800001, 0x23c00229, 0x00b10c82, 0x00000000 },
-   { 0x00800001, 0x23e00229, 0x00b10ca2, 0x00000000 },
-   { 0x00800001, 0x24000229, 0x00b10cc2, 0x00000000 },
-   { 0x00800001, 0x24200229, 0x00b10ce2, 0x00000000 },
-   { 0x00800001, 0x24400229, 0x00b10d02, 0x00000000 },
-   { 0x00800001, 0x24600229, 0x00b10d22, 0x00000000 },
-   { 0x00800001, 0x24800229, 0x00b10d42, 0x00000000 },
-   { 0x00800001, 0x24a00229, 0x00b10d62, 0x00000000 },
-   { 0x00800001, 0x24c00229, 0x00b10d82, 0x00000000 },
-   { 0x00800001, 0x24e00229, 0x00b10da2, 0x00000000 },
-   { 0x00800001, 0x25000229, 0x00b10dc2, 0x00000000 },
-   { 0x00800001, 0x25200229, 0x00b10de2, 0x00000000 },
-   { 0x00800001, 0x25400229, 0x00b10e02, 0x00000000 },
-   { 0x00800001, 0x25600229, 0x00b10e22, 0x00000000 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000010 },
-   { 0x00800001, 0x23800229, 0x00b10c43, 0x00000000 },
-   { 0x00800001, 0x23a00229, 0x00b10c63, 0x00000000 },
-   { 0x00800001, 0x23c00229, 0x00b10c83, 0x00000000 },
-   { 0x00800001, 0x23e00229, 0x00b10ca3, 0x00000000 },
-   { 0x00800001, 0x24000229, 0x00b10cc3, 0x00000000 },
-   { 0x00800001, 0x24200229, 0x00b10ce3, 0x00000000 },
-   { 0x00800001, 0x24400229, 0x00b10d03, 0x00000000 },
-   { 0x00800001, 0x24600229, 0x00b10d23, 0x00000000 },
-   { 0x00800001, 0x24800229, 0x00b10d43, 0x00000000 },
-   { 0x00800001, 0x24a00229, 0x00b10d63, 0x00000000 },
-   { 0x00800001, 0x24c00229, 0x00b10d83, 0x00000000 },
-   { 0x00800001, 0x24e00229, 0x00b10da3, 0x00000000 },
-   { 0x00800001, 0x25000229, 0x00b10dc3, 0x00000000 },
-   { 0x00800001, 0x25200229, 0x00b10de3, 0x00000000 },
-   { 0x00800001, 0x25400229, 0x00b10e03, 0x00000000 },
-   { 0x00800001, 0x25600229, 0x00b10e23, 0x00000000 },
-   { 0x00200008, 0x20200c21, 0x00450e60, 0x00000001 },
-   { 0x0020000c, 0x2e6e3dad, 0x00450e6e, 0x00010001 },
-   { 0x0020000c, 0x202e3dad, 0x00450e6e, 0x00010001 },
-   { 0x00200040, 0x20403421, 0x00450020, 0x0045002e },
-   { 0x00000001, 0x20480061, 0x00000000, 0x0007000f },
-   { 0x00000005, 0x20580c21, 0x00210040, 0x00000003 },
-   { 0x00800031, 0x2ac01d29, 0x008d0040, 0x0414a008 },
-   { 0x00800031, 0x2b401d29, 0x008d0040, 0x0414a009 },
-   { 0x00000041, 0x20580c21, 0x00210058, 0x00000009 },
-   { 0x00000020, 0x34001400, 0x00001400, 0x00210058 },
-   { 0x00800001, 0x25800229, 0x00ad0ac0, 0x00000000 },
-   { 0x00800001, 0x25a00229, 0x00ad0ae0, 0x00000000 },
-   { 0x00800001, 0x25c00229, 0x00ad0b00, 0x00000000 },
-   { 0x00800001, 0x25e00229, 0x00ad0b20, 0x00000000 },
-   { 0x00800001, 0x26000229, 0x00ad0b40, 0x00000000 },
-   { 0x00800001, 0x26200229, 0x00ad0b60, 0x00000000 },
-   { 0x00800001, 0x26400229, 0x00ad0b80, 0x00000000 },
-   { 0x00800001, 0x26600229, 0x00ad0ba0, 0x00000000 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x0000001a },
-   { 0x00800001, 0x25800229, 0x00ad0ac1, 0x00000000 },
-   { 0x00800001, 0x25a00229, 0x00ad0ae1, 0x00000000 },
-   { 0x00800001, 0x25c00229, 0x00ad0b01, 0x00000000 },
-   { 0x00800001, 0x25e00229, 0x00ad0b21, 0x00000000 },
-   { 0x00800001, 0x26000229, 0x00ad0b41, 0x00000000 },
-   { 0x00800001, 0x26200229, 0x00ad0b61, 0x00000000 },
-   { 0x00800001, 0x26400229, 0x00ad0b81, 0x00000000 },
-   { 0x00800001, 0x26600229, 0x00ad0ba1, 0x00000000 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000011 },
-   { 0x00800001, 0x25800229, 0x00ad0ac2, 0x00000000 },
-   { 0x00800001, 0x25a00229, 0x00ad0ae2, 0x00000000 },
-   { 0x00800001, 0x25c00229, 0x00ad0b02, 0x00000000 },
-   { 0x00800001, 0x25e00229, 0x00ad0b22, 0x00000000 },
-   { 0x00800001, 0x26000229, 0x00ad0b42, 0x00000000 },
-   { 0x00800001, 0x26200229, 0x00ad0b62, 0x00000000 },
-   { 0x00800001, 0x26400229, 0x00ad0b82, 0x00000000 },
-   { 0x00800001, 0x26600229, 0x00ad0ba2, 0x00000000 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000008 },
-   { 0x00800001, 0x25800229, 0x00ad0ac3, 0x00000000 },
-   { 0x00800001, 0x25a00229, 0x00ad0ae3, 0x00000000 },
-   { 0x00800001, 0x25c00229, 0x00ad0b03, 0x00000000 },
-   { 0x00800001, 0x25e00229, 0x00ad0b23, 0x00000000 },
-   { 0x00800001, 0x26000229, 0x00ad0b43, 0x00000000 },
-   { 0x00800001, 0x26200229, 0x00ad0b63, 0x00000000 },
-   { 0x00800001, 0x26400229, 0x00ad0b83, 0x00000000 },
-   { 0x00800001, 0x26600229, 0x00ad0ba3, 0x00000000 },
-   { 0x00600001, 0x20200021, 0x008d0980, 0x00000000 },
-   { 0x00800001, 0x458101f1, 0x00000000, 0x00000000 },
-   { 0x00800001, 0x45a101f1, 0x00000000, 0x00000000 },
-   { 0x00800001, 0x45c101f1, 0x00000000, 0x00000000 },
-   { 0x00800001, 0x45e101f1, 0x00000000, 0x00000000 },
-   { 0x00800001, 0x460101f1, 0x00000000, 0x00000000 },
-   { 0x00800001, 0x462101f1, 0x00000000, 0x00000000 },
-   { 0x00800001, 0x464101f1, 0x00000000, 0x00000000 },
-   { 0x00800001, 0x466101f1, 0x00000000, 0x00000000 },
-   { 0x02000005, 0x20002e3c, 0x0021003e, 0x00010001 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000011 },
-   { 0x00800040, 0x238045ad, 0x00b10060, 0x00b20380 },
-   { 0x00800040, 0x23a045ad, 0x00b10080, 0x00b203a0 },
-   { 0x00800040, 0x23c045ad, 0x00b100a0, 0x00b203c0 },
-   { 0x00800040, 0x23e045ad, 0x00b100c0, 0x00b203e0 },
-   { 0x00800040, 0x240045ad, 0x00b100e0, 0x00b20400 },
-   { 0x00800040, 0x242045ad, 0x00b10100, 0x00b20420 },
-   { 0x00800040, 0x244045ad, 0x00b10120, 0x00b20440 },
-   { 0x00800040, 0x246045ad, 0x00b10140, 0x00b20460 },
-   { 0x00800040, 0x248045ad, 0x00b10160, 0x00b20480 },
-   { 0x00800040, 0x24a045ad, 0x00b10180, 0x00b204a0 },
-   { 0x00800040, 0x24c045ad, 0x00b101a0, 0x00b204c0 },
-   { 0x00800040, 0x24e045ad, 0x00b101c0, 0x00b204e0 },
-   { 0x00800040, 0x250045ad, 0x00b101e0, 0x00b20500 },
-   { 0x00800040, 0x252045ad, 0x00b10200, 0x00b20520 },
-   { 0x00800040, 0x254045ad, 0x00b10220, 0x00b20540 },
-   { 0x00800040, 0x256045ad, 0x00b10240, 0x00b20560 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000010 },
-   { 0x00800040, 0x238045ad, 0x00b10060, 0x00b20380 },
-   { 0x00800040, 0x23a045ad, 0x00b10160, 0x00b203a0 },
-   { 0x00800040, 0x23c045ad, 0x00b10080, 0x00b203c0 },
-   { 0x00800040, 0x23e045ad, 0x00b10180, 0x00b203e0 },
-   { 0x00800040, 0x240045ad, 0x00b100a0, 0x00b20400 },
-   { 0x00800040, 0x242045ad, 0x00b101a0, 0x00b20420 },
-   { 0x00800040, 0x244045ad, 0x00b100c0, 0x00b20440 },
-   { 0x00800040, 0x246045ad, 0x00b101c0, 0x00b20460 },
-   { 0x00800040, 0x248045ad, 0x00b100e0, 0x00b20480 },
-   { 0x00800040, 0x24a045ad, 0x00b101e0, 0x00b204a0 },
-   { 0x00800040, 0x24c045ad, 0x00b10100, 0x00b204c0 },
-   { 0x00800040, 0x24e045ad, 0x00b10200, 0x00b204e0 },
-   { 0x00800040, 0x250045ad, 0x00b10120, 0x00b20500 },
-   { 0x00800040, 0x252045ad, 0x00b10220, 0x00b20520 },
-   { 0x00800040, 0x254045ad, 0x00b10140, 0x00b20540 },
-   { 0x00800040, 0x256045ad, 0x00b10240, 0x00b20560 },
-   { 0x00000001, 0x20280061, 0x00000000, 0x000f000f },
-   { 0x80800001, 0x438001b1, 0x00b10380, 0x00000000 },
-   { 0x80800001, 0x43a001b1, 0x00b103a0, 0x00000000 },
-   { 0x80800001, 0x43c001b1, 0x00b103c0, 0x00000000 },
-   { 0x80800001, 0x43e001b1, 0x00b103e0, 0x00000000 },
-   { 0x80800001, 0x440001b1, 0x00b10400, 0x00000000 },
-   { 0x80800001, 0x442001b1, 0x00b10420, 0x00000000 },
-   { 0x80800001, 0x444001b1, 0x00b10440, 0x00000000 },
-   { 0x80800001, 0x446001b1, 0x00b10460, 0x00000000 },
-   { 0x80800001, 0x448001b1, 0x00b10480, 0x00000000 },
-   { 0x80800001, 0x44a001b1, 0x00b104a0, 0x00000000 },
-   { 0x80800001, 0x44c001b1, 0x00b104c0, 0x00000000 },
-   { 0x80800001, 0x44e001b1, 0x00b104e0, 0x00000000 },
-   { 0x80800001, 0x450001b1, 0x00b10500, 0x00000000 },
-   { 0x80800001, 0x452001b1, 0x00b10520, 0x00000000 },
-   { 0x80800001, 0x454001b1, 0x00b10540, 0x00000000 },
-   { 0x80800001, 0x456001b1, 0x00b10560, 0x00000000 },
-   { 0x00800001, 0x20200232, 0x00b20380, 0x00000000 },
-   { 0x00800001, 0x20300232, 0x00b203a0, 0x00000000 },
-   { 0x00800001, 0x20400232, 0x00b203c0, 0x00000000 },
-   { 0x00800001, 0x20500232, 0x00b203e0, 0x00000000 },
-   { 0x00800001, 0x20600232, 0x00b20400, 0x00000000 },
-   { 0x00800001, 0x20700232, 0x00b20420, 0x00000000 },
-   { 0x00800001, 0x20800232, 0x00b20440, 0x00000000 },
-   { 0x00800001, 0x20900232, 0x00b20460, 0x00000000 },
-   { 0x00800001, 0x20a00232, 0x00b20480, 0x00000000 },
-   { 0x00800001, 0x20b00232, 0x00b204a0, 0x00000000 },
-   { 0x00800001, 0x20c00232, 0x00b204c0, 0x00000000 },
-   { 0x00800001, 0x20d00232, 0x00b204e0, 0x00000000 },
-   { 0x00800001, 0x20e00232, 0x00b20500, 0x00000000 },
-   { 0x00800001, 0x20f00232, 0x00b20520, 0x00000000 },
-   { 0x00800001, 0x21000232, 0x00b20540, 0x00000000 },
-   { 0x00800001, 0x21100232, 0x00b20560, 0x00000000 },
-   { 0x00800031, 0x24001d28, 0x008d0020, 0x05902000 },
-   { 0x00000001, 0x20280061, 0x00000000, 0x00070007 },
-   { 0x00200008, 0x20201c21, 0x00450020, 0x00000001 },
-   { 0x00800040, 0x258025a9, 0x00b10260, 0x00b10580 },
-   { 0x00800040, 0x25a025a9, 0x00b10280, 0x00b105a0 },
-   { 0x00800040, 0x25c025a9, 0x00b102a0, 0x00b105c0 },
-   { 0x00800040, 0x25e025a9, 0x00b102c0, 0x00b105e0 },
-   { 0x80800001, 0x45800131, 0x00b10580, 0x00000000 },
-   { 0x80800001, 0x45a00131, 0x00b105a0, 0x00000000 },
-   { 0x80800001, 0x45c00131, 0x00b105c0, 0x00000000 },
-   { 0x80800001, 0x45e00131, 0x00b105e0, 0x00000000 },
-   { 0x00800001, 0x20200232, 0x00b20580, 0x00000000 },
-   { 0x00800001, 0x20300232, 0x00b205a0, 0x00000000 },
-   { 0x00800001, 0x20400232, 0x00b205c0, 0x00000000 },
-   { 0x00800001, 0x20500232, 0x00b205e0, 0x00000000 },
-   { 0x00800031, 0x24001d28, 0x008d0020, 0x05302001 },
-   { 0x00800040, 0x260025a9, 0x00b102e0, 0x00b10600 },
-   { 0x00800040, 0x262025a9, 0x00b10300, 0x00b10620 },
-   { 0x00800040, 0x264025a9, 0x00b10320, 0x00b10640 },
-   { 0x00800040, 0x266025a9, 0x00b10340, 0x00b10660 },
-   { 0x80800001, 0x46000131, 0x00b10600, 0x00000000 },
-   { 0x80800001, 0x46200131, 0x00b10620, 0x00000000 },
-   { 0x80800001, 0x46400131, 0x00b10640, 0x00000000 },
-   { 0x80800001, 0x46600131, 0x00b10660, 0x00000000 },
-   { 0x00800001, 0x20200232, 0x00b20600, 0x00000000 },
-   { 0x00800001, 0x20300232, 0x00b20620, 0x00000000 },
-   { 0x00800001, 0x20400232, 0x00b20640, 0x00000000 },
-   { 0x00800001, 0x20500232, 0x00b20660, 0x00000000 },
-   { 0x00800031, 0x24001d28, 0x008d0020, 0x05302002 },
-   { 0x00800031, 0x24001d28, 0x008d0000, 0x87100000 },
-   { 0x00800031, 0x24001d28, 0x008d0000, 0x87100000 },
diff --git a/src/xvmc/frame_backward_igd.g4a b/src/xvmc/frame_backward_igd.g4a
deleted file mode 100644
index 338ae1e..0000000
--- a/src/xvmc/frame_backward_igd.g4a
+++ /dev/null
@@ -1,69 +0,0 @@
-/*
- * Copyright © 2008 Intel Corporation
- *
- * Permission is hereby granted, free of charge, to any person obtaining a
- * copy of this software and associated documentation files (the "Software"),
- * to deal in the Software without restriction, including without limitation
- * the rights to use, copy, modify, merge, publish, distribute, sublicense,
- * and/or sell copies of the Software, and to permit persons to whom the
- * Software is furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice (including the next
- * paragraph) shall be included in all copies or substantial portions of the
- * Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
- * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
- * SOFTWARE.
- *
- * Author:
- *    Zou Nan hai <nanhai.zou at intel.com>
- *    Zhang Hua jun <huajun.zhang at intel.com>
- *    Xing Dong sheng <dongsheng.xing at intel.com>
- *
- */
-
-/* shader for backward predict mc
-*/
-mov (8) g76.0<1>UD g1.0<8,8,1>UD {align1};
-//mov (8) g77.0<1>UD g2.0<8,8,1>UD {align1};
-
-include(`block_clear.g4i')
-
-mov (2) g1.14<1>UW g1.18<2,2,1>UW {align1};
-/* save payload */
-mov (8) g115.0<1>UD g1.0<8,8,1>UD {align1}; 
-/* 8x8 media read/write payload */
-mov (1) g1.8<1>UD 0x0070007UD {align1};  
-/* save payload, again */
-define(`dest', `g118')
-define(`input_surface',	`7')
-define(`mv1',	`g115.14')
-define(`mv2',	`g115.16')
-/* Y */
-/* (x', y') = (x, y) + (motion_vector.x >> 1, motion_vector.y >> 1) */
-asr (2) g1.14<1>W g115.14<2,2,1>W 1W {align1};
-add (2) g2.0<1>UD g115.0<2,2,1>UD g1.14<2,2,1>W {align1};
-include(`motion_frame_y_igd.g4i')
-/* motion_vector = motion_vector >> 1 */
-/* (x', y') = (x, y) + (motion_vector.x >> 1, motion_vector.y >> 1) */
-shr (2) g1.0<1>UD g115.0<2,2,1>UD 1UD {align1};
-asr (2) g115.14<1>W g115.14<2,2,1>W 1W {align1};
-asr (2) g1.14<1>W g115.14<2,2,1>W 1W {align1};
-add (2) g2.0<1>UD g1.0<2,2,1>UD g1.14<2,2,1>W {align1};
-/* U */
-define(`input_surface1',	`8')
-define(`input_surface2',	`9')
-mov (1) g2.8<1>UD 0x007000fUD  {align1};
-include(`motion_frame_uv_igd.g4i')
-
-/* V */
-/* (x', y') = (x, y) + (motion_vector.x >> 1, motion_vector.y >> 1) */
-include(`addidct.g4i')
-
-send (16) 0 acc0<1>UW g0<8,8,1>UW 
-	thread_spawner(0, 0, 0) mlen 1 rlen 0 { align1 EOT};
diff --git a/src/xvmc/frame_backward_igd.g4b b/src/xvmc/frame_backward_igd.g4b
deleted file mode 100644
index dbb1320..0000000
--- a/src/xvmc/frame_backward_igd.g4b
+++ /dev/null
@@ -1,374 +0,0 @@
-   { 0x00600001, 0x29800021, 0x008d0020, 0x00000000 },
-   { 0x02000005, 0x20000c3c, 0x00210040, 0x00000001 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000030 },
-   { 0x00000040, 0x20480c21, 0x00210988, 0x00000000 },
-   { 0x00800031, 0x20601c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x20801c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x20a01c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x20c01c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x20e01c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x21001c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x21201c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x21401c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x21601c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x21801c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x21a01c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x21c01c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x21e01c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x22001c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x22201c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x22401c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x22601c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x22801c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x22a01c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x22c01c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x22e01c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x23001c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x23201c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x23401c21, 0x00b10040, 0x04110203 },
-   { 0x02000005, 0x20002d3c, 0x0021098c, 0x00200020 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000008 },
-   { 0x00600001, 0x20600169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x20800169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x20a00169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x20c00169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x20e00169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x21000169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x21200169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x21400169, 0x00000000, 0x00000000 },
-   { 0x02000005, 0x20002d3c, 0x0021002c, 0x00100010 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000008 },
-   { 0x00600001, 0x20700169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x20900169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x20b00169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x20d00169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x20f00169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x21100169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x21300169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x21500169, 0x00000000, 0x00000000 },
-   { 0x02000005, 0x20002d3c, 0x0021002c, 0x00080008 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000008 },
-   { 0x00600001, 0x21600169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x21800169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x21a00169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x21c00169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x21e00169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x22000169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x22200169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x22400169, 0x00000000, 0x00000000 },
-   { 0x02000005, 0x20002d3c, 0x0021002c, 0x00040004 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000008 },
-   { 0x00600001, 0x21700169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x21900169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x21b00169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x21d00169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x21f00169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x22100169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x22300169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x22500169, 0x00000000, 0x00000000 },
-   { 0x02000005, 0x20002d3c, 0x0021002c, 0x00020002 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000004 },
-   { 0x00800001, 0x22600169, 0x00000000, 0x00000000 },
-   { 0x00800001, 0x22800169, 0x00000000, 0x00000000 },
-   { 0x00800001, 0x22a00169, 0x00000000, 0x00000000 },
-   { 0x00800001, 0x22c00169, 0x00000000, 0x00000000 },
-   { 0x02000005, 0x20002d3c, 0x0021002c, 0x00010001 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000004 },
-   { 0x00800001, 0x22e00169, 0x00000000, 0x00000000 },
-   { 0x00800001, 0x23000169, 0x00000000, 0x00000000 },
-   { 0x00800001, 0x23200169, 0x00000000, 0x00000000 },
-   { 0x00800001, 0x23400169, 0x00000000, 0x00000000 },
-   { 0x00200001, 0x202e0129, 0x00450032, 0x00000000 },
-   { 0x00600001, 0x2e600021, 0x008d0020, 0x00000000 },
-   { 0x00000001, 0x20280061, 0x00000000, 0x00070007 },
-   { 0x0020000c, 0x202e3dad, 0x00450e6e, 0x00010001 },
-   { 0x00200040, 0x20403421, 0x00450e60, 0x0045002e },
-   { 0x01000005, 0x20000d3c, 0x00210e6e, 0x00000001 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x0000005f },
-   { 0x01000005, 0x20000d3c, 0x00210e70, 0x00000001 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000048 },
-   { 0x00000001, 0x20480061, 0x00000000, 0x0007001f },
-   { 0x00800031, 0x2c401d29, 0x008d0040, 0x0418a007 },
-   { 0x00000040, 0x20440c21, 0x00210044, 0x00000008 },
-   { 0x00800031, 0x2d401d29, 0x008d0040, 0x0418a007 },
-   { 0x00000040, 0x20440c21, 0x00210044, 0x00000008 },
-   { 0x00000001, 0x20480061, 0x00000000, 0x0000001f },
-   { 0x00800031, 0x2f001d29, 0x008d0040, 0x0411a007 },
-   { 0x00800040, 0x23804629, 0x00b10c40, 0x00b10c41 },
-   { 0x00800040, 0x23a04629, 0x00b10c60, 0x00b10c61 },
-   { 0x00800040, 0x23c04629, 0x00b10c80, 0x00b10c81 },
-   { 0x00800040, 0x23e04629, 0x00b10ca0, 0x00b10ca1 },
-   { 0x00800040, 0x24004629, 0x00b10cc0, 0x00b10cc1 },
-   { 0x00800040, 0x24204629, 0x00b10ce0, 0x00b10ce1 },
-   { 0x00800040, 0x24404629, 0x00b10d00, 0x00b10d01 },
-   { 0x00800040, 0x24604629, 0x00b10d20, 0x00b10d21 },
-   { 0x00800040, 0x24804629, 0x00b10d40, 0x00b10d41 },
-   { 0x00800040, 0x24a04629, 0x00b10d60, 0x00b10d61 },
-   { 0x00800040, 0x24c04629, 0x00b10d80, 0x00b10d81 },
-   { 0x00800040, 0x24e04629, 0x00b10da0, 0x00b10da1 },
-   { 0x00800040, 0x25004629, 0x00b10dc0, 0x00b10dc1 },
-   { 0x00800040, 0x25204629, 0x00b10de0, 0x00b10de1 },
-   { 0x00800040, 0x25404629, 0x00b10e00, 0x00b10e01 },
-   { 0x00800040, 0x25604629, 0x00b10e20, 0x00b10e21 },
-   { 0x00800040, 0x23804529, 0x00b10380, 0x00b10c60 },
-   { 0x00800040, 0x23a04529, 0x00b103a0, 0x00b10c80 },
-   { 0x00800040, 0x23c04529, 0x00b103c0, 0x00b10ca0 },
-   { 0x00800040, 0x23e04529, 0x00b103e0, 0x00b10cc0 },
-   { 0x00800040, 0x24004529, 0x00b10400, 0x00b10ce0 },
-   { 0x00800040, 0x24204529, 0x00b10420, 0x00b10d00 },
-   { 0x00800040, 0x24404529, 0x00b10440, 0x00b10d20 },
-   { 0x00800040, 0x24604529, 0x00b10460, 0x00b10d40 },
-   { 0x00800040, 0x24804529, 0x00b10480, 0x00b10d60 },
-   { 0x00800040, 0x24a04529, 0x00b104a0, 0x00b10d80 },
-   { 0x00800040, 0x24c04529, 0x00b104c0, 0x00b10da0 },
-   { 0x00800040, 0x24e04529, 0x00b104e0, 0x00b10dc0 },
-   { 0x00800040, 0x25004529, 0x00b10500, 0x00b10de0 },
-   { 0x00800040, 0x25204529, 0x00b10520, 0x00b10e00 },
-   { 0x00800040, 0x25404529, 0x00b10540, 0x00b10e20 },
-   { 0x00800040, 0x25604529, 0x00b10560, 0x00b10f00 },
-   { 0x00800040, 0x23804529, 0x00b10380, 0x00b10c61 },
-   { 0x00800040, 0x23a04529, 0x00b103a0, 0x00b10c81 },
-   { 0x00800040, 0x23c04529, 0x00b103c0, 0x00b10ca1 },
-   { 0x00800040, 0x23e04529, 0x00b103e0, 0x00b10cc1 },
-   { 0x00800040, 0x24004529, 0x00b10400, 0x00b10ce1 },
-   { 0x00800040, 0x24204529, 0x00b10420, 0x00b10d01 },
-   { 0x00800040, 0x24404529, 0x00b10440, 0x00b10d21 },
-   { 0x00800040, 0x24604529, 0x00b10460, 0x00b10d41 },
-   { 0x00800040, 0x24804529, 0x00b10480, 0x00b10d61 },
-   { 0x00800040, 0x24a04529, 0x00b104a0, 0x00b10d81 },
-   { 0x00800040, 0x24c04529, 0x00b104c0, 0x00b10da1 },
-   { 0x00800040, 0x24e04529, 0x00b104e0, 0x00b10dc1 },
-   { 0x00800040, 0x25004529, 0x00b10500, 0x00b10de1 },
-   { 0x00800040, 0x25204529, 0x00b10520, 0x00b10e01 },
-   { 0x00800040, 0x25404529, 0x00b10540, 0x00b10e21 },
-   { 0x00800040, 0x25604529, 0x00b10560, 0x00b10f01 },
-   { 0x80800008, 0x23802d29, 0x00b10380, 0x00020002 },
-   { 0x80800008, 0x23a02d29, 0x00b103a0, 0x00020002 },
-   { 0x80800008, 0x23c02d29, 0x00b103c0, 0x00020002 },
-   { 0x80800008, 0x23e02d29, 0x00b103e0, 0x00020002 },
-   { 0x80800008, 0x24002d29, 0x00b10400, 0x00020002 },
-   { 0x80800008, 0x24202d29, 0x00b10420, 0x00020002 },
-   { 0x80800008, 0x24402d29, 0x00b10440, 0x00020002 },
-   { 0x80800008, 0x24602d29, 0x00b10460, 0x00020002 },
-   { 0x80800008, 0x24802d29, 0x00b10480, 0x00020002 },
-   { 0x80800008, 0x24a02d29, 0x00b104a0, 0x00020002 },
-   { 0x80800008, 0x24c02d29, 0x00b104c0, 0x00020002 },
-   { 0x80800008, 0x24e02d29, 0x00b104e0, 0x00020002 },
-   { 0x80800008, 0x25002d29, 0x00b10500, 0x00020002 },
-   { 0x80800008, 0x25202d29, 0x00b10520, 0x00020002 },
-   { 0x80800008, 0x25402d29, 0x00b10540, 0x00020002 },
-   { 0x80800008, 0x25602d29, 0x00b10560, 0x00020002 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000043 },
-   { 0x00000001, 0x20480061, 0x00000000, 0x0007001f },
-   { 0x00800031, 0x2c401d29, 0x008d0040, 0x0418a007 },
-   { 0x00000040, 0x20440c21, 0x00210044, 0x00000008 },
-   { 0x00800031, 0x2d401d29, 0x008d0040, 0x0418a007 },
-   { 0x80800042, 0x23804629, 0x00b10c40, 0x00b10c41 },
-   { 0x80800042, 0x23a04629, 0x00b10c60, 0x00b10c61 },
-   { 0x80800042, 0x23c04629, 0x00b10c80, 0x00b10c81 },
-   { 0x80800042, 0x23e04629, 0x00b10ca0, 0x00b10ca1 },
-   { 0x80800042, 0x24004629, 0x00b10cc0, 0x00b10cc1 },
-   { 0x80800042, 0x24204629, 0x00b10ce0, 0x00b10ce1 },
-   { 0x80800042, 0x24404629, 0x00b10d00, 0x00b10d01 },
-   { 0x80800042, 0x24604629, 0x00b10d20, 0x00b10d21 },
-   { 0x80800042, 0x24804629, 0x00b10d40, 0x00b10d41 },
-   { 0x80800042, 0x24a04629, 0x00b10d60, 0x00b10d61 },
-   { 0x80800042, 0x24c04629, 0x00b10d80, 0x00b10d81 },
-   { 0x80800042, 0x24e04629, 0x00b10da0, 0x00b10da1 },
-   { 0x80800042, 0x25004629, 0x00b10dc0, 0x00b10dc1 },
-   { 0x80800042, 0x25204629, 0x00b10de0, 0x00b10de1 },
-   { 0x80800042, 0x25404629, 0x00b10e00, 0x00b10e01 },
-   { 0x80800042, 0x25604629, 0x00b10e20, 0x00b10e21 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x0000002e },
-   { 0x01000005, 0x20000d3c, 0x00210e70, 0x00000001 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000018 },
-   { 0x00000001, 0x20480061, 0x00000000, 0x0007001f },
-   { 0x00800031, 0x2c401d29, 0x008d0040, 0x0418a007 },
-   { 0x00000040, 0x20440c21, 0x00210044, 0x00000008 },
-   { 0x00800031, 0x2d401d29, 0x008d0040, 0x0418a007 },
-   { 0x00000040, 0x20440c21, 0x00210044, 0x00000008 },
-   { 0x00000001, 0x20480061, 0x00000000, 0x0000001f },
-   { 0x00800031, 0x2f001d29, 0x008d0040, 0x0411a007 },
-   { 0x80800042, 0x23804629, 0x00b10c40, 0x00b10c60 },
-   { 0x80800042, 0x23a04629, 0x00b10c60, 0x00b10c80 },
-   { 0x80800042, 0x23c04629, 0x00b10c80, 0x00b10ca0 },
-   { 0x80800042, 0x23e04629, 0x00b10ca0, 0x00b10cc0 },
-   { 0x80800042, 0x24004629, 0x00b10cc0, 0x00b10ce0 },
-   { 0x80800042, 0x24204629, 0x00b10ce0, 0x00b10d00 },
-   { 0x80800042, 0x24404629, 0x00b10d00, 0x00b10d20 },
-   { 0x80800042, 0x24604629, 0x00b10d20, 0x00b10d40 },
-   { 0x80800042, 0x24804629, 0x00b10d40, 0x00b10d60 },
-   { 0x80800042, 0x24a04629, 0x00b10d60, 0x00b10d80 },
-   { 0x80800042, 0x24c04629, 0x00b10d80, 0x00b10da0 },
-   { 0x80800042, 0x24e04629, 0x00b10da0, 0x00b10dc0 },
-   { 0x80800042, 0x25004629, 0x00b10dc0, 0x00b10de0 },
-   { 0x80800042, 0x25204629, 0x00b10de0, 0x00b10e00 },
-   { 0x80800042, 0x25404629, 0x00b10e00, 0x00b10e20 },
-   { 0x80800042, 0x25604629, 0x00b10e20, 0x00b10f00 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000014 },
-   { 0x00000001, 0x20480061, 0x00000000, 0x0007001f },
-   { 0x00800031, 0x2c401d29, 0x008d0040, 0x0418a007 },
-   { 0x00000040, 0x20440c21, 0x00210044, 0x00000008 },
-   { 0x00800031, 0x2d401d29, 0x008d0040, 0x0418a007 },
-   { 0x00800001, 0x23800229, 0x00b10c40, 0x00000000 },
-   { 0x00800001, 0x23a00229, 0x00b10c60, 0x00000000 },
-   { 0x00800001, 0x23c00229, 0x00b10c80, 0x00000000 },
-   { 0x00800001, 0x23e00229, 0x00b10ca0, 0x00000000 },
-   { 0x00800001, 0x24000229, 0x00b10cc0, 0x00000000 },
-   { 0x00800001, 0x24200229, 0x00b10ce0, 0x00000000 },
-   { 0x00800001, 0x24400229, 0x00b10d00, 0x00000000 },
-   { 0x00800001, 0x24600229, 0x00b10d20, 0x00000000 },
-   { 0x00800001, 0x24800229, 0x00b10d40, 0x00000000 },
-   { 0x00800001, 0x24a00229, 0x00b10d60, 0x00000000 },
-   { 0x00800001, 0x24c00229, 0x00b10d80, 0x00000000 },
-   { 0x00800001, 0x24e00229, 0x00b10da0, 0x00000000 },
-   { 0x00800001, 0x25000229, 0x00b10dc0, 0x00000000 },
-   { 0x00800001, 0x25200229, 0x00b10de0, 0x00000000 },
-   { 0x00800001, 0x25400229, 0x00b10e00, 0x00000000 },
-   { 0x00800001, 0x25600229, 0x00b10e20, 0x00000000 },
-   { 0x00200008, 0x20200c21, 0x00450e60, 0x00000001 },
-   { 0x0020000c, 0x2e6e3dad, 0x00450e6e, 0x00010001 },
-   { 0x0020000c, 0x202e3dad, 0x00450e6e, 0x00010001 },
-   { 0x00200040, 0x20403421, 0x00450020, 0x0045002e },
-   { 0x00000001, 0x20480061, 0x00000000, 0x0007000f },
-   { 0x00800031, 0x2ac01d29, 0x008d0040, 0x0414a008 },
-   { 0x00800031, 0x2b401d29, 0x008d0040, 0x0414a009 },
-   { 0x00800001, 0x25800229, 0x00ad0ac0, 0x00000000 },
-   { 0x00800001, 0x25a00229, 0x00ad0ae0, 0x00000000 },
-   { 0x00800001, 0x25c00229, 0x00ad0b00, 0x00000000 },
-   { 0x00800001, 0x25e00229, 0x00ad0b20, 0x00000000 },
-   { 0x00800001, 0x26000229, 0x00ad0b40, 0x00000000 },
-   { 0x00800001, 0x26200229, 0x00ad0b60, 0x00000000 },
-   { 0x00800001, 0x26400229, 0x00ad0b80, 0x00000000 },
-   { 0x00800001, 0x26600229, 0x00ad0ba0, 0x00000000 },
-   { 0x00600001, 0x20200021, 0x008d0980, 0x00000000 },
-   { 0x00800001, 0x458101f1, 0x00000000, 0x00000000 },
-   { 0x00800001, 0x45a101f1, 0x00000000, 0x00000000 },
-   { 0x00800001, 0x45c101f1, 0x00000000, 0x00000000 },
-   { 0x00800001, 0x45e101f1, 0x00000000, 0x00000000 },
-   { 0x00800001, 0x460101f1, 0x00000000, 0x00000000 },
-   { 0x00800001, 0x462101f1, 0x00000000, 0x00000000 },
-   { 0x00800001, 0x464101f1, 0x00000000, 0x00000000 },
-   { 0x00800001, 0x466101f1, 0x00000000, 0x00000000 },
-   { 0x02000005, 0x20002e3c, 0x0021003e, 0x00010001 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000011 },
-   { 0x00800040, 0x238045ad, 0x00b10060, 0x00b20380 },
-   { 0x00800040, 0x23a045ad, 0x00b10080, 0x00b203a0 },
-   { 0x00800040, 0x23c045ad, 0x00b100a0, 0x00b203c0 },
-   { 0x00800040, 0x23e045ad, 0x00b100c0, 0x00b203e0 },
-   { 0x00800040, 0x240045ad, 0x00b100e0, 0x00b20400 },
-   { 0x00800040, 0x242045ad, 0x00b10100, 0x00b20420 },
-   { 0x00800040, 0x244045ad, 0x00b10120, 0x00b20440 },
-   { 0x00800040, 0x246045ad, 0x00b10140, 0x00b20460 },
-   { 0x00800040, 0x248045ad, 0x00b10160, 0x00b20480 },
-   { 0x00800040, 0x24a045ad, 0x00b10180, 0x00b204a0 },
-   { 0x00800040, 0x24c045ad, 0x00b101a0, 0x00b204c0 },
-   { 0x00800040, 0x24e045ad, 0x00b101c0, 0x00b204e0 },
-   { 0x00800040, 0x250045ad, 0x00b101e0, 0x00b20500 },
-   { 0x00800040, 0x252045ad, 0x00b10200, 0x00b20520 },
-   { 0x00800040, 0x254045ad, 0x00b10220, 0x00b20540 },
-   { 0x00800040, 0x256045ad, 0x00b10240, 0x00b20560 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000010 },
-   { 0x00800040, 0x238045ad, 0x00b10060, 0x00b20380 },
-   { 0x00800040, 0x23a045ad, 0x00b10160, 0x00b203a0 },
-   { 0x00800040, 0x23c045ad, 0x00b10080, 0x00b203c0 },
-   { 0x00800040, 0x23e045ad, 0x00b10180, 0x00b203e0 },
-   { 0x00800040, 0x240045ad, 0x00b100a0, 0x00b20400 },
-   { 0x00800040, 0x242045ad, 0x00b101a0, 0x00b20420 },
-   { 0x00800040, 0x244045ad, 0x00b100c0, 0x00b20440 },
-   { 0x00800040, 0x246045ad, 0x00b101c0, 0x00b20460 },
-   { 0x00800040, 0x248045ad, 0x00b100e0, 0x00b20480 },
-   { 0x00800040, 0x24a045ad, 0x00b101e0, 0x00b204a0 },
-   { 0x00800040, 0x24c045ad, 0x00b10100, 0x00b204c0 },
-   { 0x00800040, 0x24e045ad, 0x00b10200, 0x00b204e0 },
-   { 0x00800040, 0x250045ad, 0x00b10120, 0x00b20500 },
-   { 0x00800040, 0x252045ad, 0x00b10220, 0x00b20520 },
-   { 0x00800040, 0x254045ad, 0x00b10140, 0x00b20540 },
-   { 0x00800040, 0x256045ad, 0x00b10240, 0x00b20560 },
-   { 0x00000001, 0x20280061, 0x00000000, 0x000f000f },
-   { 0x80800001, 0x438001b1, 0x00b10380, 0x00000000 },
-   { 0x80800001, 0x43a001b1, 0x00b103a0, 0x00000000 },
-   { 0x80800001, 0x43c001b1, 0x00b103c0, 0x00000000 },
-   { 0x80800001, 0x43e001b1, 0x00b103e0, 0x00000000 },
-   { 0x80800001, 0x440001b1, 0x00b10400, 0x00000000 },
-   { 0x80800001, 0x442001b1, 0x00b10420, 0x00000000 },
-   { 0x80800001, 0x444001b1, 0x00b10440, 0x00000000 },
-   { 0x80800001, 0x446001b1, 0x00b10460, 0x00000000 },
-   { 0x80800001, 0x448001b1, 0x00b10480, 0x00000000 },
-   { 0x80800001, 0x44a001b1, 0x00b104a0, 0x00000000 },
-   { 0x80800001, 0x44c001b1, 0x00b104c0, 0x00000000 },
-   { 0x80800001, 0x44e001b1, 0x00b104e0, 0x00000000 },
-   { 0x80800001, 0x450001b1, 0x00b10500, 0x00000000 },
-   { 0x80800001, 0x452001b1, 0x00b10520, 0x00000000 },
-   { 0x80800001, 0x454001b1, 0x00b10540, 0x00000000 },
-   { 0x80800001, 0x456001b1, 0x00b10560, 0x00000000 },
-   { 0x00800001, 0x20200232, 0x00b20380, 0x00000000 },
-   { 0x00800001, 0x20300232, 0x00b203a0, 0x00000000 },
-   { 0x00800001, 0x20400232, 0x00b203c0, 0x00000000 },
-   { 0x00800001, 0x20500232, 0x00b203e0, 0x00000000 },
-   { 0x00800001, 0x20600232, 0x00b20400, 0x00000000 },
-   { 0x00800001, 0x20700232, 0x00b20420, 0x00000000 },
-   { 0x00800001, 0x20800232, 0x00b20440, 0x00000000 },
-   { 0x00800001, 0x20900232, 0x00b20460, 0x00000000 },
-   { 0x00800001, 0x20a00232, 0x00b20480, 0x00000000 },
-   { 0x00800001, 0x20b00232, 0x00b204a0, 0x00000000 },
-   { 0x00800001, 0x20c00232, 0x00b204c0, 0x00000000 },
-   { 0x00800001, 0x20d00232, 0x00b204e0, 0x00000000 },
-   { 0x00800001, 0x20e00232, 0x00b20500, 0x00000000 },
-   { 0x00800001, 0x20f00232, 0x00b20520, 0x00000000 },
-   { 0x00800001, 0x21000232, 0x00b20540, 0x00000000 },
-   { 0x00800001, 0x21100232, 0x00b20560, 0x00000000 },
-   { 0x00800031, 0x24001d28, 0x008d0020, 0x05902000 },
-   { 0x00000001, 0x20280061, 0x00000000, 0x00070007 },
-   { 0x00200008, 0x20201c21, 0x00450020, 0x00000001 },
-   { 0x00800040, 0x258025a9, 0x00b10260, 0x00b10580 },
-   { 0x00800040, 0x25a025a9, 0x00b10280, 0x00b105a0 },
-   { 0x00800040, 0x25c025a9, 0x00b102a0, 0x00b105c0 },
-   { 0x00800040, 0x25e025a9, 0x00b102c0, 0x00b105e0 },
-   { 0x80800001, 0x45800131, 0x00b10580, 0x00000000 },
-   { 0x80800001, 0x45a00131, 0x00b105a0, 0x00000000 },
-   { 0x80800001, 0x45c00131, 0x00b105c0, 0x00000000 },
-   { 0x80800001, 0x45e00131, 0x00b105e0, 0x00000000 },
-   { 0x00800001, 0x20200232, 0x00b20580, 0x00000000 },
-   { 0x00800001, 0x20300232, 0x00b205a0, 0x00000000 },
-   { 0x00800001, 0x20400232, 0x00b205c0, 0x00000000 },
-   { 0x00800001, 0x20500232, 0x00b205e0, 0x00000000 },
-   { 0x00800031, 0x24001d28, 0x008d0020, 0x05302001 },
-   { 0x00800040, 0x260025a9, 0x00b102e0, 0x00b10600 },
-   { 0x00800040, 0x262025a9, 0x00b10300, 0x00b10620 },
-   { 0x00800040, 0x264025a9, 0x00b10320, 0x00b10640 },
-   { 0x00800040, 0x266025a9, 0x00b10340, 0x00b10660 },
-   { 0x80800001, 0x46000131, 0x00b10600, 0x00000000 },
-   { 0x80800001, 0x46200131, 0x00b10620, 0x00000000 },
-   { 0x80800001, 0x46400131, 0x00b10640, 0x00000000 },
-   { 0x80800001, 0x46600131, 0x00b10660, 0x00000000 },
-   { 0x00800001, 0x20200232, 0x00b20600, 0x00000000 },
-   { 0x00800001, 0x20300232, 0x00b20620, 0x00000000 },
-   { 0x00800001, 0x20400232, 0x00b20640, 0x00000000 },
-   { 0x00800001, 0x20500232, 0x00b20660, 0x00000000 },
-   { 0x00800031, 0x24001d28, 0x008d0020, 0x05302002 },
-   { 0x00800031, 0x24001d28, 0x008d0000, 0x87100000 },
-   { 0x00800031, 0x24001d28, 0x008d0000, 0x87100000 },
diff --git a/src/xvmc/frame_f_b.g4a b/src/xvmc/frame_f_b.g4a
deleted file mode 100644
index 98729dd..0000000
--- a/src/xvmc/frame_f_b.g4a
+++ /dev/null
@@ -1,131 +0,0 @@
-/*
- * Copyright © 2008 Intel Corporation
- *
- * Permission is hereby granted, free of charge, to any person obtaining a
- * copy of this software and associated documentation files (the "Software"),
- * to deal in the Software without restriction, including without limitation
- * the rights to use, copy, modify, merge, publish, distribute, sublicense,
- * and/or sell copies of the Software, and to permit persons to whom the
- * Software is furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice (including the next
- * paragraph) shall be included in all copies or substantial portions of the
- * Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
- * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
- * SOFTWARE.
- *
- * Author:
- *    Zou Nan hai <nanhai.zou at intel.com>
- *    Zhang Hua jun <huajun.zhang at intel.com>
- *    Xing Dong sheng <dongsheng.xing at intel.com>
- *
- */
-
-/* shader for forward and backward predict mc
-*/
-/* (x', y') = (x, y) + (motion_vector1.x >> 1, motion_vector1.y >> 1)
-/* (x'', y'') = (x, y) + (motion_vector2.x >> 1, motion_vector2.y >> 1)
-/* f(x, y) = (motion_forward(x`, y`) + motion_backward(x'', y'') + 1) / 2 */
-
-//Save payload
-mov (8) g76.0<1>UD g1.0<8,8,1>UD {align1};
-//mov (8) g77.0<1>UD g2.0<8,8,1>UD {align1};
-include(`block_clear.g4i')
-
-mov (8) g115.0<1>UD g1.0<8,8,1>UD {align1};
-mov (1) g1.8<1>UD 0x0070007UD  {align1};
-mov (8) g2.0<1>UD g1.0<8,8,1>UD {align1};
-/* Y */
-//Forward
-asr (2) g1.14<1>W g115.14<2,2,1>W 1W {align1};
-add (2) g2.0<1>UD g115.0<2,2,1>UD g1.14<2,2,1>W {align1};
-define(`input_surface',	`4')
-define(`mv1',	`g115.14')
-define(`mv2',	`g115.16')
-include(`motion_frame_y.g4i')
-mov (16) g52.0<1>UD g28.0<16,16,1>UD {align1 compr};
-mov (16) g54.0<1>UD g30.0<16,16,1>UD {align1 compr};
-mov (16) g56.0<1>UD g32.0<16,16,1>UD {align1 compr};
-mov (16) g58.0<1>UD g34.0<16,16,1>UD {align1 compr};
-mov (16) g60.0<1>UD g36.0<16,16,1>UD {align1 compr};
-mov (16) g62.0<1>UD g38.0<16,16,1>UD {align1 compr};
-mov (16) g64.0<1>UD g40.0<16,16,1>UD {align1 compr};
-mov (16) g66.0<1>UD g42.0<16,16,1>UD {align1 compr};
-//Backward
-asr (2) g1.14<1>W g115.18<2,2,1>W 1W {align1};
-add (2) g2.0<1>UD g115.0<2,2,1>UD g1.14<2,2,1>W {align1};
-define(`input_surface',	`7')
-define(`mv1',	`g115.18')
-define(`mv2',	`g115.20')
-include(`motion_frame_y.g4i')
-
-//Average
-avg.sat (16) g28.0<1>UW g28.0<16,16,1>UW g52.0<16,16,1>UW {align1};
-avg.sat (16) g29.0<1>UW g29.0<16,16,1>UW g53.0<16,16,1>UW {align1};
-avg.sat (16) g30.0<1>UW g30.0<16,16,1>UW g54.0<16,16,1>UW {align1};
-avg.sat (16) g31.0<1>UW g31.0<16,16,1>UW g55.0<16,16,1>UW {align1};
-avg.sat (16) g32.0<1>UW g32.0<16,16,1>UW g56.0<16,16,1>UW {align1};
-avg.sat (16) g33.0<1>UW g33.0<16,16,1>UW g57.0<16,16,1>UW {align1};
-avg.sat (16) g34.0<1>UW g34.0<16,16,1>UW g58.0<16,16,1>UW {align1};
-avg.sat (16) g35.0<1>UW g35.0<16,16,1>UW g59.0<16,16,1>UW {align1};
-avg.sat (16) g36.0<1>UW g36.0<16,16,1>UW g60.0<16,16,1>UW {align1};
-avg.sat (16) g37.0<1>UW g37.0<16,16,1>UW g61.0<16,16,1>UW {align1};
-avg.sat (16) g38.0<1>UW g38.0<16,16,1>UW g62.0<16,16,1>UW {align1};
-avg.sat (16) g39.0<1>UW g39.0<16,16,1>UW g63.0<16,16,1>UW {align1};
-avg.sat (16) g40.0<1>UW g40.0<16,16,1>UW g64.0<16,16,1>UW {align1};
-avg.sat (16) g41.0<1>UW g41.0<16,16,1>UW g65.0<16,16,1>UW {align1};
-avg.sat (16) g42.0<1>UW g42.0<16,16,1>UW g66.0<16,16,1>UW {align1};
-avg.sat (16) g43.0<1>UW g43.0<16,16,1>UW g67.0<16,16,1>UW {align1};
-
-/* UV */
-//Forward
-shr (2) g1.0<1>UD g115.0<2,2,1>UD 1UD {align1};
-asr (2) g115.14<1>W g115.14<2,2,1>W 1W {align1};
-asr (2) g1.14<1>W g115.14<2,2,1>W 1W {align1};
-add (2) g2.0<1>UD g1.0<2,2,1>UD g1.14<2,2,1>W {align1};
-
-define(`input_surface1',	`5')
-define(`input_surface2',	`6')
-define(`mv1',	`g115.14')
-define(`mv2',	`g115.16')
-mov (1) g2.8<1>UD 0x007000fUD  {align1};
-include(`motion_frame_uv.g4i')
-mov (16) g122.0<1>UB g44.0<16,16,2>UB {align1};
-mov (16) g122.16<1>UB g45.0<16,16,2>UB {align1};
-mov (16) g123.0<1>UB g46.0<16,16,2>UB {align1};
-mov (16) g123.16<1>UB g47.0<16,16,2>UB {align1};
-mov (16) g124.0<1>UB g48.0<16,16,2>UB {align1};
-mov (16) g124.16<1>UB g49.0<16,16,2>UB {align1};
-mov (16) g125.0<1>UB g50.0<16,16,2>UB {align1};
-mov (16) g125.16<1>UB g51.0<16,16,2>UB {align1};
-//Backward
-asr (2) g115.18<1>W g115.18<2,2,1>W 1W {align1};
-asr (2) g1.14<1>W g115.18<2,2,1>W 1W {align1};
-add (2) g2.0<1>UD g1.0<2,2,1>UD g1.14<2,2,1>W {align1};
-define(`input_surface1',	`8')
-define(`input_surface2',	`9')
-define(`mv1',	`g115.18')
-define(`mv2',	`g115.20')
-mov (1) g2.8<1>UD 0x007000fUD  {align1};
-include(`motion_frame_uv.g4i')
-
-//Average
-avg.sat (16) g44.0<1>UW g44.0<16,16,1>UW g122.0<16,16,1>UB {align1};
-avg.sat (16) g45.0<1>UW g45.0<16,16,1>UW g122.16<16,16,1>UB {align1};
-avg.sat (16) g46.0<1>UW g46.0<16,16,1>UW g123.0<16,16,1>UB {align1};
-avg.sat (16) g47.0<1>UW g47.0<16,16,1>UW g123.16<16,16,1>UB {align1};
-avg.sat (16) g48.0<1>UW g48.0<16,16,1>UW g124.0<16,16,1>UB {align1};
-avg.sat (16) g49.0<1>UW g49.0<16,16,1>UW g124.16<16,16,1>UB {align1};
-avg.sat (16) g50.0<1>UW g50.0<16,16,1>UW g125.0<16,16,1>UB {align1};
-avg.sat (16) g51.0<1>UW g51.0<16,16,1>UW g125.16<16,16,1>UB {align1};
-
-include(`addidct.g4i')
-
-send (16) 0 acc0<1>UW g0<8,8,1>UW 
-	thread_spawner(0, 0, 0) mlen 1 rlen 0 { align1 EOT};
diff --git a/src/xvmc/frame_f_b.g4b b/src/xvmc/frame_f_b.g4b
deleted file mode 100644
index 760cae1..0000000
--- a/src/xvmc/frame_f_b.g4b
+++ /dev/null
@@ -1,1257 +0,0 @@
-   { 0x00600001, 0x29800021, 0x008d0020, 0x00000000 },
-   { 0x02000005, 0x20000c3c, 0x00210040, 0x00000001 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000030 },
-   { 0x00000040, 0x20480c21, 0x00210988, 0x00000000 },
-   { 0x00800031, 0x20601c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x20801c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x20a01c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x20c01c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x20e01c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x21001c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x21201c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x21401c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x21601c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x21801c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x21a01c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x21c01c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x21e01c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x22001c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x22201c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x22401c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x22601c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x22801c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x22a01c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x22c01c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x22e01c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x23001c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x23201c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x23401c21, 0x00b10040, 0x04110203 },
-   { 0x02000005, 0x20002d3c, 0x0021098c, 0x00200020 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000008 },
-   { 0x00600001, 0x20600169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x20800169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x20a00169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x20c00169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x20e00169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x21000169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x21200169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x21400169, 0x00000000, 0x00000000 },
-   { 0x02000005, 0x20002d3c, 0x0021002c, 0x00100010 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000008 },
-   { 0x00600001, 0x20700169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x20900169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x20b00169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x20d00169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x20f00169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x21100169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x21300169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x21500169, 0x00000000, 0x00000000 },
-   { 0x02000005, 0x20002d3c, 0x0021002c, 0x00080008 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000008 },
-   { 0x00600001, 0x21600169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x21800169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x21a00169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x21c00169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x21e00169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x22000169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x22200169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x22400169, 0x00000000, 0x00000000 },
-   { 0x02000005, 0x20002d3c, 0x0021002c, 0x00040004 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000008 },
-   { 0x00600001, 0x21700169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x21900169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x21b00169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x21d00169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x21f00169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x22100169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x22300169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x22500169, 0x00000000, 0x00000000 },
-   { 0x02000005, 0x20002d3c, 0x0021002c, 0x00020002 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000004 },
-   { 0x00800001, 0x22600169, 0x00000000, 0x00000000 },
-   { 0x00800001, 0x22800169, 0x00000000, 0x00000000 },
-   { 0x00800001, 0x22a00169, 0x00000000, 0x00000000 },
-   { 0x00800001, 0x22c00169, 0x00000000, 0x00000000 },
-   { 0x02000005, 0x20002d3c, 0x0021002c, 0x00010001 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000004 },
-   { 0x00800001, 0x22e00169, 0x00000000, 0x00000000 },
-   { 0x00800001, 0x23000169, 0x00000000, 0x00000000 },
-   { 0x00800001, 0x23200169, 0x00000000, 0x00000000 },
-   { 0x00800001, 0x23400169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x2e600021, 0x008d0020, 0x00000000 },
-   { 0x00000001, 0x20280061, 0x00000000, 0x00070007 },
-   { 0x00600001, 0x20400021, 0x008d0020, 0x00000000 },
-   { 0x0020000c, 0x202e3dad, 0x00450e6e, 0x00010001 },
-   { 0x00200040, 0x20403421, 0x00450e60, 0x0045002e },
-   { 0x01000005, 0x20000d3c, 0x00210e6e, 0x00000001 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x0000012b },
-   { 0x01000005, 0x20000d3c, 0x00210e70, 0x00000001 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x000000de },
-   { 0x00000001, 0x20480061, 0x00000000, 0x0007001f },
-   { 0x00800031, 0x2c401d29, 0x008d0040, 0x0418a004 },
-   { 0x00000005, 0x20580c21, 0x00210040, 0x00000003 },
-   { 0x00000041, 0x20580c21, 0x00210058, 0x00000031 },
-   { 0x00000040, 0x20440c21, 0x00210044, 0x00000008 },
-   { 0x00800031, 0x2d401d29, 0x008d0040, 0x0418a004 },
-   { 0x00000040, 0x20440c21, 0x00210044, 0x00000008 },
-   { 0x00000001, 0x20480061, 0x00000000, 0x0000001f },
-   { 0x00800031, 0x2f001d29, 0x008d0040, 0x0411a004 },
-   { 0x00000020, 0x34001400, 0x00001400, 0x00210058 },
-   { 0x00800040, 0x23804629, 0x00b10c40, 0x00b10c41 },
-   { 0x00800040, 0x23a04629, 0x00b10c60, 0x00b10c61 },
-   { 0x00800040, 0x23c04629, 0x00b10c80, 0x00b10c81 },
-   { 0x00800040, 0x23e04629, 0x00b10ca0, 0x00b10ca1 },
-   { 0x00800040, 0x24004629, 0x00b10cc0, 0x00b10cc1 },
-   { 0x00800040, 0x24204629, 0x00b10ce0, 0x00b10ce1 },
-   { 0x00800040, 0x24404629, 0x00b10d00, 0x00b10d01 },
-   { 0x00800040, 0x24604629, 0x00b10d20, 0x00b10d21 },
-   { 0x00800040, 0x24804629, 0x00b10d40, 0x00b10d41 },
-   { 0x00800040, 0x24a04629, 0x00b10d60, 0x00b10d61 },
-   { 0x00800040, 0x24c04629, 0x00b10d80, 0x00b10d81 },
-   { 0x00800040, 0x24e04629, 0x00b10da0, 0x00b10da1 },
-   { 0x00800040, 0x25004629, 0x00b10dc0, 0x00b10dc1 },
-   { 0x00800040, 0x25204629, 0x00b10de0, 0x00b10de1 },
-   { 0x00800040, 0x25404629, 0x00b10e00, 0x00b10e01 },
-   { 0x00800040, 0x25604629, 0x00b10e20, 0x00b10e21 },
-   { 0x00800040, 0x23804529, 0x00b10380, 0x00b10c60 },
-   { 0x00800040, 0x23a04529, 0x00b103a0, 0x00b10c80 },
-   { 0x00800040, 0x23c04529, 0x00b103c0, 0x00b10ca0 },
-   { 0x00800040, 0x23e04529, 0x00b103e0, 0x00b10cc0 },
-   { 0x00800040, 0x24004529, 0x00b10400, 0x00b10ce0 },
-   { 0x00800040, 0x24204529, 0x00b10420, 0x00b10d00 },
-   { 0x00800040, 0x24404529, 0x00b10440, 0x00b10d20 },
-   { 0x00800040, 0x24604529, 0x00b10460, 0x00b10d40 },
-   { 0x00800040, 0x24804529, 0x00b10480, 0x00b10d60 },
-   { 0x00800040, 0x24a04529, 0x00b104a0, 0x00b10d80 },
-   { 0x00800040, 0x24c04529, 0x00b104c0, 0x00b10da0 },
-   { 0x00800040, 0x24e04529, 0x00b104e0, 0x00b10dc0 },
-   { 0x00800040, 0x25004529, 0x00b10500, 0x00b10de0 },
-   { 0x00800040, 0x25204529, 0x00b10520, 0x00b10e00 },
-   { 0x00800040, 0x25404529, 0x00b10540, 0x00b10e20 },
-   { 0x00800040, 0x25604529, 0x00b10560, 0x00b10f00 },
-   { 0x00800040, 0x23804529, 0x00b10380, 0x00b10c61 },
-   { 0x00800040, 0x23a04529, 0x00b103a0, 0x00b10c81 },
-   { 0x00800040, 0x23c04529, 0x00b103c0, 0x00b10ca1 },
-   { 0x00800040, 0x23e04529, 0x00b103e0, 0x00b10cc1 },
-   { 0x00800040, 0x24004529, 0x00b10400, 0x00b10ce1 },
-   { 0x00800040, 0x24204529, 0x00b10420, 0x00b10d01 },
-   { 0x00800040, 0x24404529, 0x00b10440, 0x00b10d21 },
-   { 0x00800040, 0x24604529, 0x00b10460, 0x00b10d41 },
-   { 0x00800040, 0x24804529, 0x00b10480, 0x00b10d61 },
-   { 0x00800040, 0x24a04529, 0x00b104a0, 0x00b10d81 },
-   { 0x00800040, 0x24c04529, 0x00b104c0, 0x00b10da1 },
-   { 0x00800040, 0x24e04529, 0x00b104e0, 0x00b10dc1 },
-   { 0x00800040, 0x25004529, 0x00b10500, 0x00b10de1 },
-   { 0x00800040, 0x25204529, 0x00b10520, 0x00b10e01 },
-   { 0x00800040, 0x25404529, 0x00b10540, 0x00b10e21 },
-   { 0x00800040, 0x25604529, 0x00b10560, 0x00b10f01 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000092 },
-   { 0x00800040, 0x23804629, 0x00b10c41, 0x00b10c42 },
-   { 0x00800040, 0x23a04629, 0x00b10c61, 0x00b10c62 },
-   { 0x00800040, 0x23c04629, 0x00b10c81, 0x00b10c82 },
-   { 0x00800040, 0x23e04629, 0x00b10ca1, 0x00b10ca2 },
-   { 0x00800040, 0x24004629, 0x00b10cc1, 0x00b10cc2 },
-   { 0x00800040, 0x24204629, 0x00b10ce1, 0x00b10ce2 },
-   { 0x00800040, 0x24404629, 0x00b10d01, 0x00b10d02 },
-   { 0x00800040, 0x24604629, 0x00b10d21, 0x00b10d22 },
-   { 0x00800040, 0x24804629, 0x00b10d41, 0x00b10d42 },
-   { 0x00800040, 0x24a04629, 0x00b10d61, 0x00b10d62 },
-   { 0x00800040, 0x24c04629, 0x00b10d81, 0x00b10d82 },
-   { 0x00800040, 0x24e04629, 0x00b10da1, 0x00b10da2 },
-   { 0x00800040, 0x25004629, 0x00b10dc1, 0x00b10dc2 },
-   { 0x00800040, 0x25204629, 0x00b10de1, 0x00b10de2 },
-   { 0x00800040, 0x25404629, 0x00b10e01, 0x00b10e02 },
-   { 0x00800040, 0x25604629, 0x00b10e21, 0x00b10e22 },
-   { 0x00800040, 0x23804529, 0x00b10380, 0x00b10c61 },
-   { 0x00800040, 0x23a04529, 0x00b103a0, 0x00b10c81 },
-   { 0x00800040, 0x23c04529, 0x00b103c0, 0x00b10ca1 },
-   { 0x00800040, 0x23e04529, 0x00b103e0, 0x00b10cc1 },
-   { 0x00800040, 0x24004529, 0x00b10400, 0x00b10ce1 },
-   { 0x00800040, 0x24204529, 0x00b10420, 0x00b10d01 },
-   { 0x00800040, 0x24404529, 0x00b10440, 0x00b10d21 },
-   { 0x00800040, 0x24604529, 0x00b10460, 0x00b10d41 },
-   { 0x00800040, 0x24804529, 0x00b10480, 0x00b10d61 },
-   { 0x00800040, 0x24a04529, 0x00b104a0, 0x00b10d81 },
-   { 0x00800040, 0x24c04529, 0x00b104c0, 0x00b10da1 },
-   { 0x00800040, 0x24e04529, 0x00b104e0, 0x00b10dc1 },
-   { 0x00800040, 0x25004529, 0x00b10500, 0x00b10de1 },
-   { 0x00800040, 0x25204529, 0x00b10520, 0x00b10e01 },
-   { 0x00800040, 0x25404529, 0x00b10540, 0x00b10e21 },
-   { 0x00800040, 0x25604529, 0x00b10560, 0x00b10f01 },
-   { 0x00800040, 0x23804529, 0x00b10380, 0x00b10c62 },
-   { 0x00800040, 0x23a04529, 0x00b103a0, 0x00b10c82 },
-   { 0x00800040, 0x23c04529, 0x00b103c0, 0x00b10ca2 },
-   { 0x00800040, 0x23e04529, 0x00b103e0, 0x00b10cc2 },
-   { 0x00800040, 0x24004529, 0x00b10400, 0x00b10ce2 },
-   { 0x00800040, 0x24204529, 0x00b10420, 0x00b10d02 },
-   { 0x00800040, 0x24404529, 0x00b10440, 0x00b10d22 },
-   { 0x00800040, 0x24604529, 0x00b10460, 0x00b10d42 },
-   { 0x00800040, 0x24804529, 0x00b10480, 0x00b10d62 },
-   { 0x00800040, 0x24a04529, 0x00b104a0, 0x00b10d82 },
-   { 0x00800040, 0x24c04529, 0x00b104c0, 0x00b10da2 },
-   { 0x00800040, 0x24e04529, 0x00b104e0, 0x00b10dc2 },
-   { 0x00800040, 0x25004529, 0x00b10500, 0x00b10de2 },
-   { 0x00800040, 0x25204529, 0x00b10520, 0x00b10e02 },
-   { 0x00800040, 0x25404529, 0x00b10540, 0x00b10e22 },
-   { 0x00800040, 0x25604529, 0x00b10560, 0x00b10f02 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000061 },
-   { 0x00800040, 0x23804629, 0x00b10c42, 0x00b10c43 },
-   { 0x00800040, 0x23a04629, 0x00b10c62, 0x00b10c63 },
-   { 0x00800040, 0x23c04629, 0x00b10c82, 0x00b10c83 },
-   { 0x00800040, 0x23e04629, 0x00b10ca2, 0x00b10ca3 },
-   { 0x00800040, 0x24004629, 0x00b10cc2, 0x00b10cc3 },
-   { 0x00800040, 0x24204629, 0x00b10ce2, 0x00b10ce3 },
-   { 0x00800040, 0x24404629, 0x00b10d02, 0x00b10d03 },
-   { 0x00800040, 0x24604629, 0x00b10d22, 0x00b10d23 },
-   { 0x00800040, 0x24804629, 0x00b10d42, 0x00b10d43 },
-   { 0x00800040, 0x24a04629, 0x00b10d62, 0x00b10d63 },
-   { 0x00800040, 0x24c04629, 0x00b10d82, 0x00b10d83 },
-   { 0x00800040, 0x24e04629, 0x00b10da2, 0x00b10da3 },
-   { 0x00800040, 0x25004629, 0x00b10dc2, 0x00b10dc3 },
-   { 0x00800040, 0x25204629, 0x00b10de2, 0x00b10de3 },
-   { 0x00800040, 0x25404629, 0x00b10e02, 0x00b10e03 },
-   { 0x00800040, 0x25604629, 0x00b10e22, 0x00b10e23 },
-   { 0x00800040, 0x23804529, 0x00b10380, 0x00b10c62 },
-   { 0x00800040, 0x23a04529, 0x00b103a0, 0x00b10c82 },
-   { 0x00800040, 0x23c04529, 0x00b103c0, 0x00b10ca2 },
-   { 0x00800040, 0x23e04529, 0x00b103e0, 0x00b10cc2 },
-   { 0x00800040, 0x24004529, 0x00b10400, 0x00b10ce2 },
-   { 0x00800040, 0x24204529, 0x00b10420, 0x00b10d02 },
-   { 0x00800040, 0x24404529, 0x00b10440, 0x00b10d22 },
-   { 0x00800040, 0x24604529, 0x00b10460, 0x00b10d42 },
-   { 0x00800040, 0x24804529, 0x00b10480, 0x00b10d62 },
-   { 0x00800040, 0x24a04529, 0x00b104a0, 0x00b10d82 },
-   { 0x00800040, 0x24c04529, 0x00b104c0, 0x00b10da2 },
-   { 0x00800040, 0x24e04529, 0x00b104e0, 0x00b10dc2 },
-   { 0x00800040, 0x25004529, 0x00b10500, 0x00b10de2 },
-   { 0x00800040, 0x25204529, 0x00b10520, 0x00b10e02 },
-   { 0x00800040, 0x25404529, 0x00b10540, 0x00b10e22 },
-   { 0x00800040, 0x25604529, 0x00b10560, 0x00b10f02 },
-   { 0x00800040, 0x23804529, 0x00b10380, 0x00b10c63 },
-   { 0x00800040, 0x23a04529, 0x00b103a0, 0x00b10c83 },
-   { 0x00800040, 0x23c04529, 0x00b103c0, 0x00b10ca3 },
-   { 0x00800040, 0x23e04529, 0x00b103e0, 0x00b10cc3 },
-   { 0x00800040, 0x24004529, 0x00b10400, 0x00b10ce3 },
-   { 0x00800040, 0x24204529, 0x00b10420, 0x00b10d03 },
-   { 0x00800040, 0x24404529, 0x00b10440, 0x00b10d23 },
-   { 0x00800040, 0x24604529, 0x00b10460, 0x00b10d43 },
-   { 0x00800040, 0x24804529, 0x00b10480, 0x00b10d63 },
-   { 0x00800040, 0x24a04529, 0x00b104a0, 0x00b10d83 },
-   { 0x00800040, 0x24c04529, 0x00b104c0, 0x00b10da3 },
-   { 0x00800040, 0x24e04529, 0x00b104e0, 0x00b10dc3 },
-   { 0x00800040, 0x25004529, 0x00b10500, 0x00b10de3 },
-   { 0x00800040, 0x25204529, 0x00b10520, 0x00b10e03 },
-   { 0x00800040, 0x25404529, 0x00b10540, 0x00b10e23 },
-   { 0x00800040, 0x25604529, 0x00b10560, 0x00b10f03 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000030 },
-   { 0x00800040, 0x23804629, 0x00b10c43, 0x00b10c44 },
-   { 0x00800040, 0x23a04629, 0x00b10c63, 0x00b10c64 },
-   { 0x00800040, 0x23c04629, 0x00b10c83, 0x00b10c84 },
-   { 0x00800040, 0x23e04629, 0x00b10ca3, 0x00b10ca4 },
-   { 0x00800040, 0x24004629, 0x00b10cc3, 0x00b10cc4 },
-   { 0x00800040, 0x24204629, 0x00b10ce3, 0x00b10ce4 },
-   { 0x00800040, 0x24404629, 0x00b10d03, 0x00b10d04 },
-   { 0x00800040, 0x24604629, 0x00b10d23, 0x00b10d24 },
-   { 0x00800040, 0x24804629, 0x00b10d43, 0x00b10d44 },
-   { 0x00800040, 0x24a04629, 0x00b10d63, 0x00b10d64 },
-   { 0x00800040, 0x24c04629, 0x00b10d83, 0x00b10d84 },
-   { 0x00800040, 0x24e04629, 0x00b10da3, 0x00b10da4 },
-   { 0x00800040, 0x25004629, 0x00b10dc3, 0x00b10dc4 },
-   { 0x00800040, 0x25204629, 0x00b10de3, 0x00b10de4 },
-   { 0x00800040, 0x25404629, 0x00b10e03, 0x00b10e04 },
-   { 0x00800040, 0x25604629, 0x00b10e23, 0x00b10e24 },
-   { 0x00800040, 0x23804529, 0x00b10380, 0x00b10c63 },
-   { 0x00800040, 0x23a04529, 0x00b103a0, 0x00b10c83 },
-   { 0x00800040, 0x23c04529, 0x00b103c0, 0x00b10ca3 },
-   { 0x00800040, 0x23e04529, 0x00b103e0, 0x00b10cc3 },
-   { 0x00800040, 0x24004529, 0x00b10400, 0x00b10ce3 },
-   { 0x00800040, 0x24204529, 0x00b10420, 0x00b10d03 },
-   { 0x00800040, 0x24404529, 0x00b10440, 0x00b10d23 },
-   { 0x00800040, 0x24604529, 0x00b10460, 0x00b10d43 },
-   { 0x00800040, 0x24804529, 0x00b10480, 0x00b10d63 },
-   { 0x00800040, 0x24a04529, 0x00b104a0, 0x00b10d83 },
-   { 0x00800040, 0x24c04529, 0x00b104c0, 0x00b10da3 },
-   { 0x00800040, 0x24e04529, 0x00b104e0, 0x00b10dc3 },
-   { 0x00800040, 0x25004529, 0x00b10500, 0x00b10de3 },
-   { 0x00800040, 0x25204529, 0x00b10520, 0x00b10e03 },
-   { 0x00800040, 0x25404529, 0x00b10540, 0x00b10e23 },
-   { 0x00800040, 0x25604529, 0x00b10560, 0x00b10f03 },
-   { 0x00800040, 0x23804529, 0x00b10380, 0x00b10c64 },
-   { 0x00800040, 0x23a04529, 0x00b103a0, 0x00b10c84 },
-   { 0x00800040, 0x23c04529, 0x00b103c0, 0x00b10ca4 },
-   { 0x00800040, 0x23e04529, 0x00b103e0, 0x00b10cc4 },
-   { 0x00800040, 0x24004529, 0x00b10400, 0x00b10ce4 },
-   { 0x00800040, 0x24204529, 0x00b10420, 0x00b10d04 },
-   { 0x00800040, 0x24404529, 0x00b10440, 0x00b10d24 },
-   { 0x00800040, 0x24604529, 0x00b10460, 0x00b10d44 },
-   { 0x00800040, 0x24804529, 0x00b10480, 0x00b10d64 },
-   { 0x00800040, 0x24a04529, 0x00b104a0, 0x00b10d84 },
-   { 0x00800040, 0x24c04529, 0x00b104c0, 0x00b10da4 },
-   { 0x00800040, 0x24e04529, 0x00b104e0, 0x00b10dc4 },
-   { 0x00800040, 0x25004529, 0x00b10500, 0x00b10de4 },
-   { 0x00800040, 0x25204529, 0x00b10520, 0x00b10e04 },
-   { 0x00800040, 0x25404529, 0x00b10540, 0x00b10e24 },
-   { 0x00800040, 0x25604529, 0x00b10560, 0x00b10f04 },
-   { 0x80800008, 0x23802d29, 0x00b10380, 0x00020002 },
-   { 0x80800008, 0x23a02d29, 0x00b103a0, 0x00020002 },
-   { 0x80800008, 0x23c02d29, 0x00b103c0, 0x00020002 },
-   { 0x80800008, 0x23e02d29, 0x00b103e0, 0x00020002 },
-   { 0x80800008, 0x24002d29, 0x00b10400, 0x00020002 },
-   { 0x80800008, 0x24202d29, 0x00b10420, 0x00020002 },
-   { 0x80800008, 0x24402d29, 0x00b10440, 0x00020002 },
-   { 0x80800008, 0x24602d29, 0x00b10460, 0x00020002 },
-   { 0x80800008, 0x24802d29, 0x00b10480, 0x00020002 },
-   { 0x80800008, 0x24a02d29, 0x00b104a0, 0x00020002 },
-   { 0x80800008, 0x24c02d29, 0x00b104c0, 0x00020002 },
-   { 0x80800008, 0x24e02d29, 0x00b104e0, 0x00020002 },
-   { 0x80800008, 0x25002d29, 0x00b10500, 0x00020002 },
-   { 0x80800008, 0x25202d29, 0x00b10520, 0x00020002 },
-   { 0x80800008, 0x25402d29, 0x00b10540, 0x00020002 },
-   { 0x80800008, 0x25602d29, 0x00b10560, 0x00020002 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x000000e5 },
-   { 0x00000001, 0x20480061, 0x00000000, 0x0007001f },
-   { 0x00800031, 0x2c401d29, 0x008d0040, 0x0418a004 },
-   { 0x00000005, 0x20580c21, 0x00210040, 0x00000003 },
-   { 0x00000041, 0x20581c21, 0x00210058, 0x00000011 },
-   { 0x00000040, 0x20440c21, 0x00210044, 0x00000008 },
-   { 0x00800031, 0x2d401d29, 0x008d0040, 0x0418a004 },
-   { 0x00000020, 0x34001400, 0x00001400, 0x00210058 },
-   { 0x80800042, 0x23804629, 0x00b10c40, 0x00b10c41 },
-   { 0x80800042, 0x23a04629, 0x00b10c60, 0x00b10c61 },
-   { 0x80800042, 0x23c04629, 0x00b10c80, 0x00b10c81 },
-   { 0x80800042, 0x23e04629, 0x00b10ca0, 0x00b10ca1 },
-   { 0x80800042, 0x24004629, 0x00b10cc0, 0x00b10cc1 },
-   { 0x80800042, 0x24204629, 0x00b10ce0, 0x00b10ce1 },
-   { 0x80800042, 0x24404629, 0x00b10d00, 0x00b10d01 },
-   { 0x80800042, 0x24604629, 0x00b10d20, 0x00b10d21 },
-   { 0x80800042, 0x24804629, 0x00b10d40, 0x00b10d41 },
-   { 0x80800042, 0x24a04629, 0x00b10d60, 0x00b10d61 },
-   { 0x80800042, 0x24c04629, 0x00b10d80, 0x00b10d81 },
-   { 0x80800042, 0x24e04629, 0x00b10da0, 0x00b10da1 },
-   { 0x80800042, 0x25004629, 0x00b10dc0, 0x00b10dc1 },
-   { 0x80800042, 0x25204629, 0x00b10de0, 0x00b10de1 },
-   { 0x80800042, 0x25404629, 0x00b10e00, 0x00b10e01 },
-   { 0x80800042, 0x25604629, 0x00b10e20, 0x00b10e21 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000032 },
-   { 0x80800042, 0x23804629, 0x00b10c41, 0x00b10c42 },
-   { 0x80800042, 0x23a04629, 0x00b10c61, 0x00b10c62 },
-   { 0x80800042, 0x23c04629, 0x00b10c81, 0x00b10c82 },
-   { 0x80800042, 0x23e04629, 0x00b10ca1, 0x00b10ca2 },
-   { 0x80800042, 0x24004629, 0x00b10cc1, 0x00b10cc2 },
-   { 0x80800042, 0x24204629, 0x00b10ce1, 0x00b10ce2 },
-   { 0x80800042, 0x24404629, 0x00b10d01, 0x00b10d02 },
-   { 0x80800042, 0x24604629, 0x00b10d21, 0x00b10d22 },
-   { 0x80800042, 0x24804629, 0x00b10d41, 0x00b10d42 },
-   { 0x80800042, 0x24a04629, 0x00b10d61, 0x00b10d62 },
-   { 0x80800042, 0x24c04629, 0x00b10d81, 0x00b10d82 },
-   { 0x80800042, 0x24e04629, 0x00b10da1, 0x00b10da2 },
-   { 0x80800042, 0x25004629, 0x00b10dc1, 0x00b10dc2 },
-   { 0x80800042, 0x25204629, 0x00b10de1, 0x00b10de2 },
-   { 0x80800042, 0x25404629, 0x00b10e01, 0x00b10e02 },
-   { 0x80800042, 0x25604629, 0x00b10e21, 0x00b10e22 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000021 },
-   { 0x80800042, 0x23804629, 0x00b10c42, 0x00b10c43 },
-   { 0x80800042, 0x23a04629, 0x00b10c62, 0x00b10c63 },
-   { 0x80800042, 0x23c04629, 0x00b10c82, 0x00b10c83 },
-   { 0x80800042, 0x23e04629, 0x00b10ca2, 0x00b10ca3 },
-   { 0x80800042, 0x24004629, 0x00b10cc2, 0x00b10cc3 },
-   { 0x80800042, 0x24204629, 0x00b10ce2, 0x00b10ce3 },
-   { 0x80800042, 0x24404629, 0x00b10d02, 0x00b10d03 },
-   { 0x80800042, 0x24604629, 0x00b10d22, 0x00b10d23 },
-   { 0x80800042, 0x24804629, 0x00b10d42, 0x00b10d43 },
-   { 0x80800042, 0x24a04629, 0x00b10d62, 0x00b10d63 },
-   { 0x80800042, 0x24c04629, 0x00b10d82, 0x00b10d83 },
-   { 0x80800042, 0x24e04629, 0x00b10da2, 0x00b10da3 },
-   { 0x80800042, 0x25004629, 0x00b10dc2, 0x00b10dc3 },
-   { 0x80800042, 0x25204629, 0x00b10de2, 0x00b10de3 },
-   { 0x80800042, 0x25404629, 0x00b10e02, 0x00b10e03 },
-   { 0x80800042, 0x25604629, 0x00b10e22, 0x00b10e23 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000010 },
-   { 0x80800042, 0x23804629, 0x00b10c43, 0x00b10c44 },
-   { 0x80800042, 0x23a04629, 0x00b10c63, 0x00b10c64 },
-   { 0x80800042, 0x23c04629, 0x00b10c83, 0x00b10c84 },
-   { 0x80800042, 0x23e04629, 0x00b10ca3, 0x00b10ca4 },
-   { 0x80800042, 0x24004629, 0x00b10cc3, 0x00b10cc4 },
-   { 0x80800042, 0x24204629, 0x00b10ce3, 0x00b10ce4 },
-   { 0x80800042, 0x24404629, 0x00b10d03, 0x00b10d04 },
-   { 0x80800042, 0x24604629, 0x00b10d23, 0x00b10d24 },
-   { 0x80800042, 0x24804629, 0x00b10d43, 0x00b10d44 },
-   { 0x80800042, 0x24a04629, 0x00b10d63, 0x00b10d64 },
-   { 0x80800042, 0x24c04629, 0x00b10d83, 0x00b10d84 },
-   { 0x80800042, 0x24e04629, 0x00b10da3, 0x00b10da4 },
-   { 0x80800042, 0x25004629, 0x00b10dc3, 0x00b10dc4 },
-   { 0x80800042, 0x25204629, 0x00b10de3, 0x00b10de4 },
-   { 0x80800042, 0x25404629, 0x00b10e03, 0x00b10e04 },
-   { 0x80800042, 0x25604629, 0x00b10e23, 0x00b10e24 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x0000009a },
-   { 0x01000005, 0x20000d3c, 0x00210e70, 0x00000001 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x0000004e },
-   { 0x00000001, 0x20480061, 0x00000000, 0x0007001f },
-   { 0x00800031, 0x2c401d29, 0x008d0040, 0x0418a004 },
-   { 0x00000005, 0x20580c21, 0x00210040, 0x00000003 },
-   { 0x00000041, 0x20580c21, 0x00210058, 0x00000011 },
-   { 0x00000040, 0x20440c21, 0x00210044, 0x00000008 },
-   { 0x00800031, 0x2d401d29, 0x008d0040, 0x0418a004 },
-   { 0x00000040, 0x20440c21, 0x00210044, 0x00000008 },
-   { 0x00000001, 0x20480061, 0x00000000, 0x0000001f },
-   { 0x00800031, 0x2f001d29, 0x008d0040, 0x0411a004 },
-   { 0x00000020, 0x34001400, 0x00001400, 0x00210058 },
-   { 0x80800042, 0x23804629, 0x00b10c40, 0x00b10c60 },
-   { 0x80800042, 0x23a04629, 0x00b10c60, 0x00b10c80 },
-   { 0x80800042, 0x23c04629, 0x00b10c80, 0x00b10ca0 },
-   { 0x80800042, 0x23e04629, 0x00b10ca0, 0x00b10cc0 },
-   { 0x80800042, 0x24004629, 0x00b10cc0, 0x00b10ce0 },
-   { 0x80800042, 0x24204629, 0x00b10ce0, 0x00b10d00 },
-   { 0x80800042, 0x24404629, 0x00b10d00, 0x00b10d20 },
-   { 0x80800042, 0x24604629, 0x00b10d20, 0x00b10d40 },
-   { 0x80800042, 0x24804629, 0x00b10d40, 0x00b10d60 },
-   { 0x80800042, 0x24a04629, 0x00b10d60, 0x00b10d80 },
-   { 0x80800042, 0x24c04629, 0x00b10d80, 0x00b10da0 },
-   { 0x80800042, 0x24e04629, 0x00b10da0, 0x00b10dc0 },
-   { 0x80800042, 0x25004629, 0x00b10dc0, 0x00b10de0 },
-   { 0x80800042, 0x25204629, 0x00b10de0, 0x00b10e00 },
-   { 0x80800042, 0x25404629, 0x00b10e00, 0x00b10e20 },
-   { 0x80800042, 0x25604629, 0x00b10e20, 0x00b10f00 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000032 },
-   { 0x80800042, 0x23804629, 0x00b10c41, 0x00b10c61 },
-   { 0x80800042, 0x23a04629, 0x00b10c61, 0x00b10c81 },
-   { 0x80800042, 0x23c04629, 0x00b10c81, 0x00b10ca1 },
-   { 0x80800042, 0x23e04629, 0x00b10ca1, 0x00b10cc1 },
-   { 0x80800042, 0x24004629, 0x00b10cc1, 0x00b10ce1 },
-   { 0x80800042, 0x24204629, 0x00b10ce1, 0x00b10d01 },
-   { 0x80800042, 0x24404629, 0x00b10d01, 0x00b10d21 },
-   { 0x80800042, 0x24604629, 0x00b10d21, 0x00b10d41 },
-   { 0x80800042, 0x24804629, 0x00b10d41, 0x00b10d61 },
-   { 0x80800042, 0x24a04629, 0x00b10d61, 0x00b10d81 },
-   { 0x80800042, 0x24c04629, 0x00b10d81, 0x00b10da1 },
-   { 0x80800042, 0x24e04629, 0x00b10da1, 0x00b10dc1 },
-   { 0x80800042, 0x25004629, 0x00b10dc1, 0x00b10de1 },
-   { 0x80800042, 0x25204629, 0x00b10de1, 0x00b10e01 },
-   { 0x80800042, 0x25404629, 0x00b10e01, 0x00b10e21 },
-   { 0x80800042, 0x25604629, 0x00b10e21, 0x00b10f01 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000021 },
-   { 0x80800042, 0x23804629, 0x00b10c42, 0x00b10c62 },
-   { 0x80800042, 0x23a04629, 0x00b10c62, 0x00b10c82 },
-   { 0x80800042, 0x23c04629, 0x00b10c82, 0x00b10ca2 },
-   { 0x80800042, 0x23e04629, 0x00b10ca2, 0x00b10cc2 },
-   { 0x80800042, 0x24004629, 0x00b10cc2, 0x00b10ce2 },
-   { 0x80800042, 0x24204629, 0x00b10ce2, 0x00b10d02 },
-   { 0x80800042, 0x24404629, 0x00b10d02, 0x00b10d22 },
-   { 0x80800042, 0x24604629, 0x00b10d22, 0x00b10d42 },
-   { 0x80800042, 0x24804629, 0x00b10d42, 0x00b10d62 },
-   { 0x80800042, 0x24a04629, 0x00b10d62, 0x00b10d82 },
-   { 0x80800042, 0x24c04629, 0x00b10d82, 0x00b10da2 },
-   { 0x80800042, 0x24e04629, 0x00b10da2, 0x00b10dc2 },
-   { 0x80800042, 0x25004629, 0x00b10dc2, 0x00b10de2 },
-   { 0x80800042, 0x25204629, 0x00b10de2, 0x00b10e02 },
-   { 0x80800042, 0x25404629, 0x00b10e02, 0x00b10e22 },
-   { 0x80800042, 0x25604629, 0x00b10e22, 0x00b10f02 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000010 },
-   { 0x80800042, 0x23804629, 0x00b10c43, 0x00b10c63 },
-   { 0x80800042, 0x23a04629, 0x00b10c63, 0x00b10c83 },
-   { 0x80800042, 0x23c04629, 0x00b10c83, 0x00b10ca3 },
-   { 0x80800042, 0x23e04629, 0x00b10ca3, 0x00b10cc3 },
-   { 0x80800042, 0x24004629, 0x00b10cc3, 0x00b10ce3 },
-   { 0x80800042, 0x24204629, 0x00b10ce3, 0x00b10d03 },
-   { 0x80800042, 0x24404629, 0x00b10d03, 0x00b10d23 },
-   { 0x80800042, 0x24604629, 0x00b10d23, 0x00b10d43 },
-   { 0x80800042, 0x24804629, 0x00b10d43, 0x00b10d63 },
-   { 0x80800042, 0x24a04629, 0x00b10d63, 0x00b10d83 },
-   { 0x80800042, 0x24c04629, 0x00b10d83, 0x00b10da3 },
-   { 0x80800042, 0x24e04629, 0x00b10da3, 0x00b10dc3 },
-   { 0x80800042, 0x25004629, 0x00b10dc3, 0x00b10de3 },
-   { 0x80800042, 0x25204629, 0x00b10de3, 0x00b10e03 },
-   { 0x80800042, 0x25404629, 0x00b10e03, 0x00b10e23 },
-   { 0x80800042, 0x25604629, 0x00b10e23, 0x00b10f03 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x0000004a },
-   { 0x00000001, 0x20480061, 0x00000000, 0x0007001f },
-   { 0x00800031, 0x2c401d29, 0x008d0040, 0x0418a004 },
-   { 0x00000040, 0x20440c21, 0x00210044, 0x00000008 },
-   { 0x00800031, 0x2d401d29, 0x008d0040, 0x0418a004 },
-   { 0x00000005, 0x20580c21, 0x00210040, 0x00000003 },
-   { 0x00000041, 0x20580c21, 0x00210058, 0x00000011 },
-   { 0x00000020, 0x34001400, 0x00001400, 0x00210058 },
-   { 0x00800001, 0x23800229, 0x00b10c40, 0x00000000 },
-   { 0x00800001, 0x23a00229, 0x00b10c60, 0x00000000 },
-   { 0x00800001, 0x23c00229, 0x00b10c80, 0x00000000 },
-   { 0x00800001, 0x23e00229, 0x00b10ca0, 0x00000000 },
-   { 0x00800001, 0x24000229, 0x00b10cc0, 0x00000000 },
-   { 0x00800001, 0x24200229, 0x00b10ce0, 0x00000000 },
-   { 0x00800001, 0x24400229, 0x00b10d00, 0x00000000 },
-   { 0x00800001, 0x24600229, 0x00b10d20, 0x00000000 },
-   { 0x00800001, 0x24800229, 0x00b10d40, 0x00000000 },
-   { 0x00800001, 0x24a00229, 0x00b10d60, 0x00000000 },
-   { 0x00800001, 0x24c00229, 0x00b10d80, 0x00000000 },
-   { 0x00800001, 0x24e00229, 0x00b10da0, 0x00000000 },
-   { 0x00800001, 0x25000229, 0x00b10dc0, 0x00000000 },
-   { 0x00800001, 0x25200229, 0x00b10de0, 0x00000000 },
-   { 0x00800001, 0x25400229, 0x00b10e00, 0x00000000 },
-   { 0x00800001, 0x25600229, 0x00b10e20, 0x00000000 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000032 },
-   { 0x00800001, 0x23800229, 0x00b10c41, 0x00000000 },
-   { 0x00800001, 0x23a00229, 0x00b10c61, 0x00000000 },
-   { 0x00800001, 0x23c00229, 0x00b10c81, 0x00000000 },
-   { 0x00800001, 0x23e00229, 0x00b10ca1, 0x00000000 },
-   { 0x00800001, 0x24000229, 0x00b10cc1, 0x00000000 },
-   { 0x00800001, 0x24200229, 0x00b10ce1, 0x00000000 },
-   { 0x00800001, 0x24400229, 0x00b10d01, 0x00000000 },
-   { 0x00800001, 0x24600229, 0x00b10d21, 0x00000000 },
-   { 0x00800001, 0x24800229, 0x00b10d41, 0x00000000 },
-   { 0x00800001, 0x24a00229, 0x00b10d61, 0x00000000 },
-   { 0x00800001, 0x24c00229, 0x00b10d81, 0x00000000 },
-   { 0x00800001, 0x24e00229, 0x00b10da1, 0x00000000 },
-   { 0x00800001, 0x25000229, 0x00b10dc1, 0x00000000 },
-   { 0x00800001, 0x25200229, 0x00b10de1, 0x00000000 },
-   { 0x00800001, 0x25400229, 0x00b10e01, 0x00000000 },
-   { 0x00800001, 0x25600229, 0x00b10e21, 0x00000000 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000021 },
-   { 0x00800001, 0x23800229, 0x00b10c42, 0x00000000 },
-   { 0x00800001, 0x23a00229, 0x00b10c62, 0x00000000 },
-   { 0x00800001, 0x23c00229, 0x00b10c82, 0x00000000 },
-   { 0x00800001, 0x23e00229, 0x00b10ca2, 0x00000000 },
-   { 0x00800001, 0x24000229, 0x00b10cc2, 0x00000000 },
-   { 0x00800001, 0x24200229, 0x00b10ce2, 0x00000000 },
-   { 0x00800001, 0x24400229, 0x00b10d02, 0x00000000 },
-   { 0x00800001, 0x24600229, 0x00b10d22, 0x00000000 },
-   { 0x00800001, 0x24800229, 0x00b10d42, 0x00000000 },
-   { 0x00800001, 0x24a00229, 0x00b10d62, 0x00000000 },
-   { 0x00800001, 0x24c00229, 0x00b10d82, 0x00000000 },
-   { 0x00800001, 0x24e00229, 0x00b10da2, 0x00000000 },
-   { 0x00800001, 0x25000229, 0x00b10dc2, 0x00000000 },
-   { 0x00800001, 0x25200229, 0x00b10de2, 0x00000000 },
-   { 0x00800001, 0x25400229, 0x00b10e02, 0x00000000 },
-   { 0x00800001, 0x25600229, 0x00b10e22, 0x00000000 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000010 },
-   { 0x00800001, 0x23800229, 0x00b10c43, 0x00000000 },
-   { 0x00800001, 0x23a00229, 0x00b10c63, 0x00000000 },
-   { 0x00800001, 0x23c00229, 0x00b10c83, 0x00000000 },
-   { 0x00800001, 0x23e00229, 0x00b10ca3, 0x00000000 },
-   { 0x00800001, 0x24000229, 0x00b10cc3, 0x00000000 },
-   { 0x00800001, 0x24200229, 0x00b10ce3, 0x00000000 },
-   { 0x00800001, 0x24400229, 0x00b10d03, 0x00000000 },
-   { 0x00800001, 0x24600229, 0x00b10d23, 0x00000000 },
-   { 0x00800001, 0x24800229, 0x00b10d43, 0x00000000 },
-   { 0x00800001, 0x24a00229, 0x00b10d63, 0x00000000 },
-   { 0x00800001, 0x24c00229, 0x00b10d83, 0x00000000 },
-   { 0x00800001, 0x24e00229, 0x00b10da3, 0x00000000 },
-   { 0x00800001, 0x25000229, 0x00b10dc3, 0x00000000 },
-   { 0x00800001, 0x25200229, 0x00b10de3, 0x00000000 },
-   { 0x00800001, 0x25400229, 0x00b10e03, 0x00000000 },
-   { 0x00800001, 0x25600229, 0x00b10e23, 0x00000000 },
-   { 0x00802001, 0x26800021, 0x00b10380, 0x00000000 },
-   { 0x00802001, 0x26c00021, 0x00b103c0, 0x00000000 },
-   { 0x00802001, 0x27000021, 0x00b10400, 0x00000000 },
-   { 0x00802001, 0x27400021, 0x00b10440, 0x00000000 },
-   { 0x00802001, 0x27800021, 0x00b10480, 0x00000000 },
-   { 0x00802001, 0x27c00021, 0x00b104c0, 0x00000000 },
-   { 0x00802001, 0x28000021, 0x00b10500, 0x00000000 },
-   { 0x00802001, 0x28400021, 0x00b10540, 0x00000000 },
-   { 0x0020000c, 0x202e3dad, 0x00450e72, 0x00010001 },
-   { 0x00200040, 0x20403421, 0x00450e60, 0x0045002e },
-   { 0x01000005, 0x20000d3c, 0x00210e72, 0x00000001 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x0000012b },
-   { 0x01000005, 0x20000d3c, 0x00210e74, 0x00000001 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x000000de },
-   { 0x00000001, 0x20480061, 0x00000000, 0x0007001f },
-   { 0x00800031, 0x2c401d29, 0x008d0040, 0x0418a007 },
-   { 0x00000005, 0x20580c21, 0x00210040, 0x00000003 },
-   { 0x00000041, 0x20580c21, 0x00210058, 0x00000031 },
-   { 0x00000040, 0x20440c21, 0x00210044, 0x00000008 },
-   { 0x00800031, 0x2d401d29, 0x008d0040, 0x0418a007 },
-   { 0x00000040, 0x20440c21, 0x00210044, 0x00000008 },
-   { 0x00000001, 0x20480061, 0x00000000, 0x0000001f },
-   { 0x00800031, 0x2f001d29, 0x008d0040, 0x0411a007 },
-   { 0x00000020, 0x34001400, 0x00001400, 0x00210058 },
-   { 0x00800040, 0x23804629, 0x00b10c40, 0x00b10c41 },
-   { 0x00800040, 0x23a04629, 0x00b10c60, 0x00b10c61 },
-   { 0x00800040, 0x23c04629, 0x00b10c80, 0x00b10c81 },
-   { 0x00800040, 0x23e04629, 0x00b10ca0, 0x00b10ca1 },
-   { 0x00800040, 0x24004629, 0x00b10cc0, 0x00b10cc1 },
-   { 0x00800040, 0x24204629, 0x00b10ce0, 0x00b10ce1 },
-   { 0x00800040, 0x24404629, 0x00b10d00, 0x00b10d01 },
-   { 0x00800040, 0x24604629, 0x00b10d20, 0x00b10d21 },
-   { 0x00800040, 0x24804629, 0x00b10d40, 0x00b10d41 },
-   { 0x00800040, 0x24a04629, 0x00b10d60, 0x00b10d61 },
-   { 0x00800040, 0x24c04629, 0x00b10d80, 0x00b10d81 },
-   { 0x00800040, 0x24e04629, 0x00b10da0, 0x00b10da1 },
-   { 0x00800040, 0x25004629, 0x00b10dc0, 0x00b10dc1 },
-   { 0x00800040, 0x25204629, 0x00b10de0, 0x00b10de1 },
-   { 0x00800040, 0x25404629, 0x00b10e00, 0x00b10e01 },
-   { 0x00800040, 0x25604629, 0x00b10e20, 0x00b10e21 },
-   { 0x00800040, 0x23804529, 0x00b10380, 0x00b10c60 },
-   { 0x00800040, 0x23a04529, 0x00b103a0, 0x00b10c80 },
-   { 0x00800040, 0x23c04529, 0x00b103c0, 0x00b10ca0 },
-   { 0x00800040, 0x23e04529, 0x00b103e0, 0x00b10cc0 },
-   { 0x00800040, 0x24004529, 0x00b10400, 0x00b10ce0 },
-   { 0x00800040, 0x24204529, 0x00b10420, 0x00b10d00 },
-   { 0x00800040, 0x24404529, 0x00b10440, 0x00b10d20 },
-   { 0x00800040, 0x24604529, 0x00b10460, 0x00b10d40 },
-   { 0x00800040, 0x24804529, 0x00b10480, 0x00b10d60 },
-   { 0x00800040, 0x24a04529, 0x00b104a0, 0x00b10d80 },
-   { 0x00800040, 0x24c04529, 0x00b104c0, 0x00b10da0 },
-   { 0x00800040, 0x24e04529, 0x00b104e0, 0x00b10dc0 },
-   { 0x00800040, 0x25004529, 0x00b10500, 0x00b10de0 },
-   { 0x00800040, 0x25204529, 0x00b10520, 0x00b10e00 },
-   { 0x00800040, 0x25404529, 0x00b10540, 0x00b10e20 },
-   { 0x00800040, 0x25604529, 0x00b10560, 0x00b10f00 },
-   { 0x00800040, 0x23804529, 0x00b10380, 0x00b10c61 },
-   { 0x00800040, 0x23a04529, 0x00b103a0, 0x00b10c81 },
-   { 0x00800040, 0x23c04529, 0x00b103c0, 0x00b10ca1 },
-   { 0x00800040, 0x23e04529, 0x00b103e0, 0x00b10cc1 },
-   { 0x00800040, 0x24004529, 0x00b10400, 0x00b10ce1 },
-   { 0x00800040, 0x24204529, 0x00b10420, 0x00b10d01 },
-   { 0x00800040, 0x24404529, 0x00b10440, 0x00b10d21 },
-   { 0x00800040, 0x24604529, 0x00b10460, 0x00b10d41 },
-   { 0x00800040, 0x24804529, 0x00b10480, 0x00b10d61 },
-   { 0x00800040, 0x24a04529, 0x00b104a0, 0x00b10d81 },
-   { 0x00800040, 0x24c04529, 0x00b104c0, 0x00b10da1 },
-   { 0x00800040, 0x24e04529, 0x00b104e0, 0x00b10dc1 },
-   { 0x00800040, 0x25004529, 0x00b10500, 0x00b10de1 },
-   { 0x00800040, 0x25204529, 0x00b10520, 0x00b10e01 },
-   { 0x00800040, 0x25404529, 0x00b10540, 0x00b10e21 },
-   { 0x00800040, 0x25604529, 0x00b10560, 0x00b10f01 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000092 },
-   { 0x00800040, 0x23804629, 0x00b10c41, 0x00b10c42 },
-   { 0x00800040, 0x23a04629, 0x00b10c61, 0x00b10c62 },
-   { 0x00800040, 0x23c04629, 0x00b10c81, 0x00b10c82 },
-   { 0x00800040, 0x23e04629, 0x00b10ca1, 0x00b10ca2 },
-   { 0x00800040, 0x24004629, 0x00b10cc1, 0x00b10cc2 },
-   { 0x00800040, 0x24204629, 0x00b10ce1, 0x00b10ce2 },
-   { 0x00800040, 0x24404629, 0x00b10d01, 0x00b10d02 },
-   { 0x00800040, 0x24604629, 0x00b10d21, 0x00b10d22 },
-   { 0x00800040, 0x24804629, 0x00b10d41, 0x00b10d42 },
-   { 0x00800040, 0x24a04629, 0x00b10d61, 0x00b10d62 },
-   { 0x00800040, 0x24c04629, 0x00b10d81, 0x00b10d82 },
-   { 0x00800040, 0x24e04629, 0x00b10da1, 0x00b10da2 },
-   { 0x00800040, 0x25004629, 0x00b10dc1, 0x00b10dc2 },
-   { 0x00800040, 0x25204629, 0x00b10de1, 0x00b10de2 },
-   { 0x00800040, 0x25404629, 0x00b10e01, 0x00b10e02 },
-   { 0x00800040, 0x25604629, 0x00b10e21, 0x00b10e22 },
-   { 0x00800040, 0x23804529, 0x00b10380, 0x00b10c61 },
-   { 0x00800040, 0x23a04529, 0x00b103a0, 0x00b10c81 },
-   { 0x00800040, 0x23c04529, 0x00b103c0, 0x00b10ca1 },
-   { 0x00800040, 0x23e04529, 0x00b103e0, 0x00b10cc1 },
-   { 0x00800040, 0x24004529, 0x00b10400, 0x00b10ce1 },
-   { 0x00800040, 0x24204529, 0x00b10420, 0x00b10d01 },
-   { 0x00800040, 0x24404529, 0x00b10440, 0x00b10d21 },
-   { 0x00800040, 0x24604529, 0x00b10460, 0x00b10d41 },
-   { 0x00800040, 0x24804529, 0x00b10480, 0x00b10d61 },
-   { 0x00800040, 0x24a04529, 0x00b104a0, 0x00b10d81 },
-   { 0x00800040, 0x24c04529, 0x00b104c0, 0x00b10da1 },
-   { 0x00800040, 0x24e04529, 0x00b104e0, 0x00b10dc1 },
-   { 0x00800040, 0x25004529, 0x00b10500, 0x00b10de1 },
-   { 0x00800040, 0x25204529, 0x00b10520, 0x00b10e01 },
-   { 0x00800040, 0x25404529, 0x00b10540, 0x00b10e21 },
-   { 0x00800040, 0x25604529, 0x00b10560, 0x00b10f01 },
-   { 0x00800040, 0x23804529, 0x00b10380, 0x00b10c62 },
-   { 0x00800040, 0x23a04529, 0x00b103a0, 0x00b10c82 },
-   { 0x00800040, 0x23c04529, 0x00b103c0, 0x00b10ca2 },
-   { 0x00800040, 0x23e04529, 0x00b103e0, 0x00b10cc2 },
-   { 0x00800040, 0x24004529, 0x00b10400, 0x00b10ce2 },
-   { 0x00800040, 0x24204529, 0x00b10420, 0x00b10d02 },
-   { 0x00800040, 0x24404529, 0x00b10440, 0x00b10d22 },
-   { 0x00800040, 0x24604529, 0x00b10460, 0x00b10d42 },
-   { 0x00800040, 0x24804529, 0x00b10480, 0x00b10d62 },
-   { 0x00800040, 0x24a04529, 0x00b104a0, 0x00b10d82 },
-   { 0x00800040, 0x24c04529, 0x00b104c0, 0x00b10da2 },
-   { 0x00800040, 0x24e04529, 0x00b104e0, 0x00b10dc2 },
-   { 0x00800040, 0x25004529, 0x00b10500, 0x00b10de2 },
-   { 0x00800040, 0x25204529, 0x00b10520, 0x00b10e02 },
-   { 0x00800040, 0x25404529, 0x00b10540, 0x00b10e22 },
-   { 0x00800040, 0x25604529, 0x00b10560, 0x00b10f02 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000061 },
-   { 0x00800040, 0x23804629, 0x00b10c42, 0x00b10c43 },
-   { 0x00800040, 0x23a04629, 0x00b10c62, 0x00b10c63 },
-   { 0x00800040, 0x23c04629, 0x00b10c82, 0x00b10c83 },
-   { 0x00800040, 0x23e04629, 0x00b10ca2, 0x00b10ca3 },
-   { 0x00800040, 0x24004629, 0x00b10cc2, 0x00b10cc3 },
-   { 0x00800040, 0x24204629, 0x00b10ce2, 0x00b10ce3 },
-   { 0x00800040, 0x24404629, 0x00b10d02, 0x00b10d03 },
-   { 0x00800040, 0x24604629, 0x00b10d22, 0x00b10d23 },
-   { 0x00800040, 0x24804629, 0x00b10d42, 0x00b10d43 },
-   { 0x00800040, 0x24a04629, 0x00b10d62, 0x00b10d63 },
-   { 0x00800040, 0x24c04629, 0x00b10d82, 0x00b10d83 },
-   { 0x00800040, 0x24e04629, 0x00b10da2, 0x00b10da3 },
-   { 0x00800040, 0x25004629, 0x00b10dc2, 0x00b10dc3 },
-   { 0x00800040, 0x25204629, 0x00b10de2, 0x00b10de3 },
-   { 0x00800040, 0x25404629, 0x00b10e02, 0x00b10e03 },
-   { 0x00800040, 0x25604629, 0x00b10e22, 0x00b10e23 },
-   { 0x00800040, 0x23804529, 0x00b10380, 0x00b10c62 },
-   { 0x00800040, 0x23a04529, 0x00b103a0, 0x00b10c82 },
-   { 0x00800040, 0x23c04529, 0x00b103c0, 0x00b10ca2 },
-   { 0x00800040, 0x23e04529, 0x00b103e0, 0x00b10cc2 },
-   { 0x00800040, 0x24004529, 0x00b10400, 0x00b10ce2 },
-   { 0x00800040, 0x24204529, 0x00b10420, 0x00b10d02 },
-   { 0x00800040, 0x24404529, 0x00b10440, 0x00b10d22 },
-   { 0x00800040, 0x24604529, 0x00b10460, 0x00b10d42 },
-   { 0x00800040, 0x24804529, 0x00b10480, 0x00b10d62 },
-   { 0x00800040, 0x24a04529, 0x00b104a0, 0x00b10d82 },
-   { 0x00800040, 0x24c04529, 0x00b104c0, 0x00b10da2 },
-   { 0x00800040, 0x24e04529, 0x00b104e0, 0x00b10dc2 },
-   { 0x00800040, 0x25004529, 0x00b10500, 0x00b10de2 },
-   { 0x00800040, 0x25204529, 0x00b10520, 0x00b10e02 },
-   { 0x00800040, 0x25404529, 0x00b10540, 0x00b10e22 },
-   { 0x00800040, 0x25604529, 0x00b10560, 0x00b10f02 },
-   { 0x00800040, 0x23804529, 0x00b10380, 0x00b10c63 },
-   { 0x00800040, 0x23a04529, 0x00b103a0, 0x00b10c83 },
-   { 0x00800040, 0x23c04529, 0x00b103c0, 0x00b10ca3 },
-   { 0x00800040, 0x23e04529, 0x00b103e0, 0x00b10cc3 },
-   { 0x00800040, 0x24004529, 0x00b10400, 0x00b10ce3 },
-   { 0x00800040, 0x24204529, 0x00b10420, 0x00b10d03 },
-   { 0x00800040, 0x24404529, 0x00b10440, 0x00b10d23 },
-   { 0x00800040, 0x24604529, 0x00b10460, 0x00b10d43 },
-   { 0x00800040, 0x24804529, 0x00b10480, 0x00b10d63 },
-   { 0x00800040, 0x24a04529, 0x00b104a0, 0x00b10d83 },
-   { 0x00800040, 0x24c04529, 0x00b104c0, 0x00b10da3 },
-   { 0x00800040, 0x24e04529, 0x00b104e0, 0x00b10dc3 },
-   { 0x00800040, 0x25004529, 0x00b10500, 0x00b10de3 },
-   { 0x00800040, 0x25204529, 0x00b10520, 0x00b10e03 },
-   { 0x00800040, 0x25404529, 0x00b10540, 0x00b10e23 },
-   { 0x00800040, 0x25604529, 0x00b10560, 0x00b10f03 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000030 },
-   { 0x00800040, 0x23804629, 0x00b10c43, 0x00b10c44 },
-   { 0x00800040, 0x23a04629, 0x00b10c63, 0x00b10c64 },
-   { 0x00800040, 0x23c04629, 0x00b10c83, 0x00b10c84 },
-   { 0x00800040, 0x23e04629, 0x00b10ca3, 0x00b10ca4 },
-   { 0x00800040, 0x24004629, 0x00b10cc3, 0x00b10cc4 },
-   { 0x00800040, 0x24204629, 0x00b10ce3, 0x00b10ce4 },
-   { 0x00800040, 0x24404629, 0x00b10d03, 0x00b10d04 },
-   { 0x00800040, 0x24604629, 0x00b10d23, 0x00b10d24 },
-   { 0x00800040, 0x24804629, 0x00b10d43, 0x00b10d44 },
-   { 0x00800040, 0x24a04629, 0x00b10d63, 0x00b10d64 },
-   { 0x00800040, 0x24c04629, 0x00b10d83, 0x00b10d84 },
-   { 0x00800040, 0x24e04629, 0x00b10da3, 0x00b10da4 },
-   { 0x00800040, 0x25004629, 0x00b10dc3, 0x00b10dc4 },
-   { 0x00800040, 0x25204629, 0x00b10de3, 0x00b10de4 },
-   { 0x00800040, 0x25404629, 0x00b10e03, 0x00b10e04 },
-   { 0x00800040, 0x25604629, 0x00b10e23, 0x00b10e24 },
-   { 0x00800040, 0x23804529, 0x00b10380, 0x00b10c63 },
-   { 0x00800040, 0x23a04529, 0x00b103a0, 0x00b10c83 },
-   { 0x00800040, 0x23c04529, 0x00b103c0, 0x00b10ca3 },
-   { 0x00800040, 0x23e04529, 0x00b103e0, 0x00b10cc3 },
-   { 0x00800040, 0x24004529, 0x00b10400, 0x00b10ce3 },
-   { 0x00800040, 0x24204529, 0x00b10420, 0x00b10d03 },
-   { 0x00800040, 0x24404529, 0x00b10440, 0x00b10d23 },
-   { 0x00800040, 0x24604529, 0x00b10460, 0x00b10d43 },
-   { 0x00800040, 0x24804529, 0x00b10480, 0x00b10d63 },
-   { 0x00800040, 0x24a04529, 0x00b104a0, 0x00b10d83 },
-   { 0x00800040, 0x24c04529, 0x00b104c0, 0x00b10da3 },
-   { 0x00800040, 0x24e04529, 0x00b104e0, 0x00b10dc3 },
-   { 0x00800040, 0x25004529, 0x00b10500, 0x00b10de3 },
-   { 0x00800040, 0x25204529, 0x00b10520, 0x00b10e03 },
-   { 0x00800040, 0x25404529, 0x00b10540, 0x00b10e23 },
-   { 0x00800040, 0x25604529, 0x00b10560, 0x00b10f03 },
-   { 0x00800040, 0x23804529, 0x00b10380, 0x00b10c64 },
-   { 0x00800040, 0x23a04529, 0x00b103a0, 0x00b10c84 },
-   { 0x00800040, 0x23c04529, 0x00b103c0, 0x00b10ca4 },
-   { 0x00800040, 0x23e04529, 0x00b103e0, 0x00b10cc4 },
-   { 0x00800040, 0x24004529, 0x00b10400, 0x00b10ce4 },
-   { 0x00800040, 0x24204529, 0x00b10420, 0x00b10d04 },
-   { 0x00800040, 0x24404529, 0x00b10440, 0x00b10d24 },
-   { 0x00800040, 0x24604529, 0x00b10460, 0x00b10d44 },
-   { 0x00800040, 0x24804529, 0x00b10480, 0x00b10d64 },
-   { 0x00800040, 0x24a04529, 0x00b104a0, 0x00b10d84 },
-   { 0x00800040, 0x24c04529, 0x00b104c0, 0x00b10da4 },
-   { 0x00800040, 0x24e04529, 0x00b104e0, 0x00b10dc4 },
-   { 0x00800040, 0x25004529, 0x00b10500, 0x00b10de4 },
-   { 0x00800040, 0x25204529, 0x00b10520, 0x00b10e04 },
-   { 0x00800040, 0x25404529, 0x00b10540, 0x00b10e24 },
-   { 0x00800040, 0x25604529, 0x00b10560, 0x00b10f04 },
-   { 0x80800008, 0x23802d29, 0x00b10380, 0x00020002 },
-   { 0x80800008, 0x23a02d29, 0x00b103a0, 0x00020002 },
-   { 0x80800008, 0x23c02d29, 0x00b103c0, 0x00020002 },
-   { 0x80800008, 0x23e02d29, 0x00b103e0, 0x00020002 },
-   { 0x80800008, 0x24002d29, 0x00b10400, 0x00020002 },
-   { 0x80800008, 0x24202d29, 0x00b10420, 0x00020002 },
-   { 0x80800008, 0x24402d29, 0x00b10440, 0x00020002 },
-   { 0x80800008, 0x24602d29, 0x00b10460, 0x00020002 },
-   { 0x80800008, 0x24802d29, 0x00b10480, 0x00020002 },
-   { 0x80800008, 0x24a02d29, 0x00b104a0, 0x00020002 },
-   { 0x80800008, 0x24c02d29, 0x00b104c0, 0x00020002 },
-   { 0x80800008, 0x24e02d29, 0x00b104e0, 0x00020002 },
-   { 0x80800008, 0x25002d29, 0x00b10500, 0x00020002 },
-   { 0x80800008, 0x25202d29, 0x00b10520, 0x00020002 },
-   { 0x80800008, 0x25402d29, 0x00b10540, 0x00020002 },
-   { 0x80800008, 0x25602d29, 0x00b10560, 0x00020002 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x000000e5 },
-   { 0x00000001, 0x20480061, 0x00000000, 0x0007001f },
-   { 0x00800031, 0x2c401d29, 0x008d0040, 0x0418a007 },
-   { 0x00000005, 0x20580c21, 0x00210040, 0x00000003 },
-   { 0x00000041, 0x20581c21, 0x00210058, 0x00000011 },
-   { 0x00000040, 0x20440c21, 0x00210044, 0x00000008 },
-   { 0x00800031, 0x2d401d29, 0x008d0040, 0x0418a007 },
-   { 0x00000020, 0x34001400, 0x00001400, 0x00210058 },
-   { 0x80800042, 0x23804629, 0x00b10c40, 0x00b10c41 },
-   { 0x80800042, 0x23a04629, 0x00b10c60, 0x00b10c61 },
-   { 0x80800042, 0x23c04629, 0x00b10c80, 0x00b10c81 },
-   { 0x80800042, 0x23e04629, 0x00b10ca0, 0x00b10ca1 },
-   { 0x80800042, 0x24004629, 0x00b10cc0, 0x00b10cc1 },
-   { 0x80800042, 0x24204629, 0x00b10ce0, 0x00b10ce1 },
-   { 0x80800042, 0x24404629, 0x00b10d00, 0x00b10d01 },
-   { 0x80800042, 0x24604629, 0x00b10d20, 0x00b10d21 },
-   { 0x80800042, 0x24804629, 0x00b10d40, 0x00b10d41 },
-   { 0x80800042, 0x24a04629, 0x00b10d60, 0x00b10d61 },
-   { 0x80800042, 0x24c04629, 0x00b10d80, 0x00b10d81 },
-   { 0x80800042, 0x24e04629, 0x00b10da0, 0x00b10da1 },
-   { 0x80800042, 0x25004629, 0x00b10dc0, 0x00b10dc1 },
-   { 0x80800042, 0x25204629, 0x00b10de0, 0x00b10de1 },
-   { 0x80800042, 0x25404629, 0x00b10e00, 0x00b10e01 },
-   { 0x80800042, 0x25604629, 0x00b10e20, 0x00b10e21 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000032 },
-   { 0x80800042, 0x23804629, 0x00b10c41, 0x00b10c42 },
-   { 0x80800042, 0x23a04629, 0x00b10c61, 0x00b10c62 },
-   { 0x80800042, 0x23c04629, 0x00b10c81, 0x00b10c82 },
-   { 0x80800042, 0x23e04629, 0x00b10ca1, 0x00b10ca2 },
-   { 0x80800042, 0x24004629, 0x00b10cc1, 0x00b10cc2 },
-   { 0x80800042, 0x24204629, 0x00b10ce1, 0x00b10ce2 },
-   { 0x80800042, 0x24404629, 0x00b10d01, 0x00b10d02 },
-   { 0x80800042, 0x24604629, 0x00b10d21, 0x00b10d22 },
-   { 0x80800042, 0x24804629, 0x00b10d41, 0x00b10d42 },
-   { 0x80800042, 0x24a04629, 0x00b10d61, 0x00b10d62 },
-   { 0x80800042, 0x24c04629, 0x00b10d81, 0x00b10d82 },
-   { 0x80800042, 0x24e04629, 0x00b10da1, 0x00b10da2 },
-   { 0x80800042, 0x25004629, 0x00b10dc1, 0x00b10dc2 },
-   { 0x80800042, 0x25204629, 0x00b10de1, 0x00b10de2 },
-   { 0x80800042, 0x25404629, 0x00b10e01, 0x00b10e02 },
-   { 0x80800042, 0x25604629, 0x00b10e21, 0x00b10e22 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000021 },
-   { 0x80800042, 0x23804629, 0x00b10c42, 0x00b10c43 },
-   { 0x80800042, 0x23a04629, 0x00b10c62, 0x00b10c63 },
-   { 0x80800042, 0x23c04629, 0x00b10c82, 0x00b10c83 },
-   { 0x80800042, 0x23e04629, 0x00b10ca2, 0x00b10ca3 },
-   { 0x80800042, 0x24004629, 0x00b10cc2, 0x00b10cc3 },
-   { 0x80800042, 0x24204629, 0x00b10ce2, 0x00b10ce3 },
-   { 0x80800042, 0x24404629, 0x00b10d02, 0x00b10d03 },
-   { 0x80800042, 0x24604629, 0x00b10d22, 0x00b10d23 },
-   { 0x80800042, 0x24804629, 0x00b10d42, 0x00b10d43 },
-   { 0x80800042, 0x24a04629, 0x00b10d62, 0x00b10d63 },
-   { 0x80800042, 0x24c04629, 0x00b10d82, 0x00b10d83 },
-   { 0x80800042, 0x24e04629, 0x00b10da2, 0x00b10da3 },
-   { 0x80800042, 0x25004629, 0x00b10dc2, 0x00b10dc3 },
-   { 0x80800042, 0x25204629, 0x00b10de2, 0x00b10de3 },
-   { 0x80800042, 0x25404629, 0x00b10e02, 0x00b10e03 },
-   { 0x80800042, 0x25604629, 0x00b10e22, 0x00b10e23 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000010 },
-   { 0x80800042, 0x23804629, 0x00b10c43, 0x00b10c44 },
-   { 0x80800042, 0x23a04629, 0x00b10c63, 0x00b10c64 },
-   { 0x80800042, 0x23c04629, 0x00b10c83, 0x00b10c84 },
-   { 0x80800042, 0x23e04629, 0x00b10ca3, 0x00b10ca4 },
-   { 0x80800042, 0x24004629, 0x00b10cc3, 0x00b10cc4 },
-   { 0x80800042, 0x24204629, 0x00b10ce3, 0x00b10ce4 },
-   { 0x80800042, 0x24404629, 0x00b10d03, 0x00b10d04 },
-   { 0x80800042, 0x24604629, 0x00b10d23, 0x00b10d24 },
-   { 0x80800042, 0x24804629, 0x00b10d43, 0x00b10d44 },
-   { 0x80800042, 0x24a04629, 0x00b10d63, 0x00b10d64 },
-   { 0x80800042, 0x24c04629, 0x00b10d83, 0x00b10d84 },
-   { 0x80800042, 0x24e04629, 0x00b10da3, 0x00b10da4 },
-   { 0x80800042, 0x25004629, 0x00b10dc3, 0x00b10dc4 },
-   { 0x80800042, 0x25204629, 0x00b10de3, 0x00b10de4 },
-   { 0x80800042, 0x25404629, 0x00b10e03, 0x00b10e04 },
-   { 0x80800042, 0x25604629, 0x00b10e23, 0x00b10e24 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x0000009a },
-   { 0x01000005, 0x20000d3c, 0x00210e74, 0x00000001 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x0000004e },
-   { 0x00000001, 0x20480061, 0x00000000, 0x0007001f },
-   { 0x00800031, 0x2c401d29, 0x008d0040, 0x0418a007 },
-   { 0x00000005, 0x20580c21, 0x00210040, 0x00000003 },
-   { 0x00000041, 0x20580c21, 0x00210058, 0x00000011 },
-   { 0x00000040, 0x20440c21, 0x00210044, 0x00000008 },
-   { 0x00800031, 0x2d401d29, 0x008d0040, 0x0418a007 },
-   { 0x00000040, 0x20440c21, 0x00210044, 0x00000008 },
-   { 0x00000001, 0x20480061, 0x00000000, 0x0000001f },
-   { 0x00800031, 0x2f001d29, 0x008d0040, 0x0411a007 },
-   { 0x00000020, 0x34001400, 0x00001400, 0x00210058 },
-   { 0x80800042, 0x23804629, 0x00b10c40, 0x00b10c60 },
-   { 0x80800042, 0x23a04629, 0x00b10c60, 0x00b10c80 },
-   { 0x80800042, 0x23c04629, 0x00b10c80, 0x00b10ca0 },
-   { 0x80800042, 0x23e04629, 0x00b10ca0, 0x00b10cc0 },
-   { 0x80800042, 0x24004629, 0x00b10cc0, 0x00b10ce0 },
-   { 0x80800042, 0x24204629, 0x00b10ce0, 0x00b10d00 },
-   { 0x80800042, 0x24404629, 0x00b10d00, 0x00b10d20 },
-   { 0x80800042, 0x24604629, 0x00b10d20, 0x00b10d40 },
-   { 0x80800042, 0x24804629, 0x00b10d40, 0x00b10d60 },
-   { 0x80800042, 0x24a04629, 0x00b10d60, 0x00b10d80 },
-   { 0x80800042, 0x24c04629, 0x00b10d80, 0x00b10da0 },
-   { 0x80800042, 0x24e04629, 0x00b10da0, 0x00b10dc0 },
-   { 0x80800042, 0x25004629, 0x00b10dc0, 0x00b10de0 },
-   { 0x80800042, 0x25204629, 0x00b10de0, 0x00b10e00 },
-   { 0x80800042, 0x25404629, 0x00b10e00, 0x00b10e20 },
-   { 0x80800042, 0x25604629, 0x00b10e20, 0x00b10f00 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000032 },
-   { 0x80800042, 0x23804629, 0x00b10c41, 0x00b10c61 },
-   { 0x80800042, 0x23a04629, 0x00b10c61, 0x00b10c81 },
-   { 0x80800042, 0x23c04629, 0x00b10c81, 0x00b10ca1 },
-   { 0x80800042, 0x23e04629, 0x00b10ca1, 0x00b10cc1 },
-   { 0x80800042, 0x24004629, 0x00b10cc1, 0x00b10ce1 },
-   { 0x80800042, 0x24204629, 0x00b10ce1, 0x00b10d01 },
-   { 0x80800042, 0x24404629, 0x00b10d01, 0x00b10d21 },
-   { 0x80800042, 0x24604629, 0x00b10d21, 0x00b10d41 },
-   { 0x80800042, 0x24804629, 0x00b10d41, 0x00b10d61 },
-   { 0x80800042, 0x24a04629, 0x00b10d61, 0x00b10d81 },
-   { 0x80800042, 0x24c04629, 0x00b10d81, 0x00b10da1 },
-   { 0x80800042, 0x24e04629, 0x00b10da1, 0x00b10dc1 },
-   { 0x80800042, 0x25004629, 0x00b10dc1, 0x00b10de1 },
-   { 0x80800042, 0x25204629, 0x00b10de1, 0x00b10e01 },
-   { 0x80800042, 0x25404629, 0x00b10e01, 0x00b10e21 },
-   { 0x80800042, 0x25604629, 0x00b10e21, 0x00b10f01 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000021 },
-   { 0x80800042, 0x23804629, 0x00b10c42, 0x00b10c62 },
-   { 0x80800042, 0x23a04629, 0x00b10c62, 0x00b10c82 },
-   { 0x80800042, 0x23c04629, 0x00b10c82, 0x00b10ca2 },
-   { 0x80800042, 0x23e04629, 0x00b10ca2, 0x00b10cc2 },
-   { 0x80800042, 0x24004629, 0x00b10cc2, 0x00b10ce2 },
-   { 0x80800042, 0x24204629, 0x00b10ce2, 0x00b10d02 },
-   { 0x80800042, 0x24404629, 0x00b10d02, 0x00b10d22 },
-   { 0x80800042, 0x24604629, 0x00b10d22, 0x00b10d42 },
-   { 0x80800042, 0x24804629, 0x00b10d42, 0x00b10d62 },
-   { 0x80800042, 0x24a04629, 0x00b10d62, 0x00b10d82 },
-   { 0x80800042, 0x24c04629, 0x00b10d82, 0x00b10da2 },
-   { 0x80800042, 0x24e04629, 0x00b10da2, 0x00b10dc2 },
-   { 0x80800042, 0x25004629, 0x00b10dc2, 0x00b10de2 },
-   { 0x80800042, 0x25204629, 0x00b10de2, 0x00b10e02 },
-   { 0x80800042, 0x25404629, 0x00b10e02, 0x00b10e22 },
-   { 0x80800042, 0x25604629, 0x00b10e22, 0x00b10f02 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000010 },
-   { 0x80800042, 0x23804629, 0x00b10c43, 0x00b10c63 },
-   { 0x80800042, 0x23a04629, 0x00b10c63, 0x00b10c83 },
-   { 0x80800042, 0x23c04629, 0x00b10c83, 0x00b10ca3 },
-   { 0x80800042, 0x23e04629, 0x00b10ca3, 0x00b10cc3 },
-   { 0x80800042, 0x24004629, 0x00b10cc3, 0x00b10ce3 },
-   { 0x80800042, 0x24204629, 0x00b10ce3, 0x00b10d03 },
-   { 0x80800042, 0x24404629, 0x00b10d03, 0x00b10d23 },
-   { 0x80800042, 0x24604629, 0x00b10d23, 0x00b10d43 },
-   { 0x80800042, 0x24804629, 0x00b10d43, 0x00b10d63 },
-   { 0x80800042, 0x24a04629, 0x00b10d63, 0x00b10d83 },
-   { 0x80800042, 0x24c04629, 0x00b10d83, 0x00b10da3 },
-   { 0x80800042, 0x24e04629, 0x00b10da3, 0x00b10dc3 },
-   { 0x80800042, 0x25004629, 0x00b10dc3, 0x00b10de3 },
-   { 0x80800042, 0x25204629, 0x00b10de3, 0x00b10e03 },
-   { 0x80800042, 0x25404629, 0x00b10e03, 0x00b10e23 },
-   { 0x80800042, 0x25604629, 0x00b10e23, 0x00b10f03 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x0000004a },
-   { 0x00000001, 0x20480061, 0x00000000, 0x0007001f },
-   { 0x00800031, 0x2c401d29, 0x008d0040, 0x0418a007 },
-   { 0x00000040, 0x20440c21, 0x00210044, 0x00000008 },
-   { 0x00800031, 0x2d401d29, 0x008d0040, 0x0418a007 },
-   { 0x00000005, 0x20580c21, 0x00210040, 0x00000003 },
-   { 0x00000041, 0x20580c21, 0x00210058, 0x00000011 },
-   { 0x00000020, 0x34001400, 0x00001400, 0x00210058 },
-   { 0x00800001, 0x23800229, 0x00b10c40, 0x00000000 },
-   { 0x00800001, 0x23a00229, 0x00b10c60, 0x00000000 },
-   { 0x00800001, 0x23c00229, 0x00b10c80, 0x00000000 },
-   { 0x00800001, 0x23e00229, 0x00b10ca0, 0x00000000 },
-   { 0x00800001, 0x24000229, 0x00b10cc0, 0x00000000 },
-   { 0x00800001, 0x24200229, 0x00b10ce0, 0x00000000 },
-   { 0x00800001, 0x24400229, 0x00b10d00, 0x00000000 },
-   { 0x00800001, 0x24600229, 0x00b10d20, 0x00000000 },
-   { 0x00800001, 0x24800229, 0x00b10d40, 0x00000000 },
-   { 0x00800001, 0x24a00229, 0x00b10d60, 0x00000000 },
-   { 0x00800001, 0x24c00229, 0x00b10d80, 0x00000000 },
-   { 0x00800001, 0x24e00229, 0x00b10da0, 0x00000000 },
-   { 0x00800001, 0x25000229, 0x00b10dc0, 0x00000000 },
-   { 0x00800001, 0x25200229, 0x00b10de0, 0x00000000 },
-   { 0x00800001, 0x25400229, 0x00b10e00, 0x00000000 },
-   { 0x00800001, 0x25600229, 0x00b10e20, 0x00000000 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000032 },
-   { 0x00800001, 0x23800229, 0x00b10c41, 0x00000000 },
-   { 0x00800001, 0x23a00229, 0x00b10c61, 0x00000000 },
-   { 0x00800001, 0x23c00229, 0x00b10c81, 0x00000000 },
-   { 0x00800001, 0x23e00229, 0x00b10ca1, 0x00000000 },
-   { 0x00800001, 0x24000229, 0x00b10cc1, 0x00000000 },
-   { 0x00800001, 0x24200229, 0x00b10ce1, 0x00000000 },
-   { 0x00800001, 0x24400229, 0x00b10d01, 0x00000000 },
-   { 0x00800001, 0x24600229, 0x00b10d21, 0x00000000 },
-   { 0x00800001, 0x24800229, 0x00b10d41, 0x00000000 },
-   { 0x00800001, 0x24a00229, 0x00b10d61, 0x00000000 },
-   { 0x00800001, 0x24c00229, 0x00b10d81, 0x00000000 },
-   { 0x00800001, 0x24e00229, 0x00b10da1, 0x00000000 },
-   { 0x00800001, 0x25000229, 0x00b10dc1, 0x00000000 },
-   { 0x00800001, 0x25200229, 0x00b10de1, 0x00000000 },
-   { 0x00800001, 0x25400229, 0x00b10e01, 0x00000000 },
-   { 0x00800001, 0x25600229, 0x00b10e21, 0x00000000 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000021 },
-   { 0x00800001, 0x23800229, 0x00b10c42, 0x00000000 },
-   { 0x00800001, 0x23a00229, 0x00b10c62, 0x00000000 },
-   { 0x00800001, 0x23c00229, 0x00b10c82, 0x00000000 },
-   { 0x00800001, 0x23e00229, 0x00b10ca2, 0x00000000 },
-   { 0x00800001, 0x24000229, 0x00b10cc2, 0x00000000 },
-   { 0x00800001, 0x24200229, 0x00b10ce2, 0x00000000 },
-   { 0x00800001, 0x24400229, 0x00b10d02, 0x00000000 },
-   { 0x00800001, 0x24600229, 0x00b10d22, 0x00000000 },
-   { 0x00800001, 0x24800229, 0x00b10d42, 0x00000000 },
-   { 0x00800001, 0x24a00229, 0x00b10d62, 0x00000000 },
-   { 0x00800001, 0x24c00229, 0x00b10d82, 0x00000000 },
-   { 0x00800001, 0x24e00229, 0x00b10da2, 0x00000000 },
-   { 0x00800001, 0x25000229, 0x00b10dc2, 0x00000000 },
-   { 0x00800001, 0x25200229, 0x00b10de2, 0x00000000 },
-   { 0x00800001, 0x25400229, 0x00b10e02, 0x00000000 },
-   { 0x00800001, 0x25600229, 0x00b10e22, 0x00000000 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000010 },
-   { 0x00800001, 0x23800229, 0x00b10c43, 0x00000000 },
-   { 0x00800001, 0x23a00229, 0x00b10c63, 0x00000000 },
-   { 0x00800001, 0x23c00229, 0x00b10c83, 0x00000000 },
-   { 0x00800001, 0x23e00229, 0x00b10ca3, 0x00000000 },
-   { 0x00800001, 0x24000229, 0x00b10cc3, 0x00000000 },
-   { 0x00800001, 0x24200229, 0x00b10ce3, 0x00000000 },
-   { 0x00800001, 0x24400229, 0x00b10d03, 0x00000000 },
-   { 0x00800001, 0x24600229, 0x00b10d23, 0x00000000 },
-   { 0x00800001, 0x24800229, 0x00b10d43, 0x00000000 },
-   { 0x00800001, 0x24a00229, 0x00b10d63, 0x00000000 },
-   { 0x00800001, 0x24c00229, 0x00b10d83, 0x00000000 },
-   { 0x00800001, 0x24e00229, 0x00b10da3, 0x00000000 },
-   { 0x00800001, 0x25000229, 0x00b10dc3, 0x00000000 },
-   { 0x00800001, 0x25200229, 0x00b10de3, 0x00000000 },
-   { 0x00800001, 0x25400229, 0x00b10e03, 0x00000000 },
-   { 0x00800001, 0x25600229, 0x00b10e23, 0x00000000 },
-   { 0x80800042, 0x23802529, 0x00b10380, 0x00b10680 },
-   { 0x80800042, 0x23a02529, 0x00b103a0, 0x00b106a0 },
-   { 0x80800042, 0x23c02529, 0x00b103c0, 0x00b106c0 },
-   { 0x80800042, 0x23e02529, 0x00b103e0, 0x00b106e0 },
-   { 0x80800042, 0x24002529, 0x00b10400, 0x00b10700 },
-   { 0x80800042, 0x24202529, 0x00b10420, 0x00b10720 },
-   { 0x80800042, 0x24402529, 0x00b10440, 0x00b10740 },
-   { 0x80800042, 0x24602529, 0x00b10460, 0x00b10760 },
-   { 0x80800042, 0x24802529, 0x00b10480, 0x00b10780 },
-   { 0x80800042, 0x24a02529, 0x00b104a0, 0x00b107a0 },
-   { 0x80800042, 0x24c02529, 0x00b104c0, 0x00b107c0 },
-   { 0x80800042, 0x24e02529, 0x00b104e0, 0x00b107e0 },
-   { 0x80800042, 0x25002529, 0x00b10500, 0x00b10800 },
-   { 0x80800042, 0x25202529, 0x00b10520, 0x00b10820 },
-   { 0x80800042, 0x25402529, 0x00b10540, 0x00b10840 },
-   { 0x80800042, 0x25602529, 0x00b10560, 0x00b10860 },
-   { 0x00200008, 0x20200c21, 0x00450e60, 0x00000001 },
-   { 0x0020000c, 0x2e6e3dad, 0x00450e6e, 0x00010001 },
-   { 0x0020000c, 0x202e3dad, 0x00450e6e, 0x00010001 },
-   { 0x00200040, 0x20403421, 0x00450020, 0x0045002e },
-   { 0x00000001, 0x20480061, 0x00000000, 0x0007000f },
-   { 0x00000005, 0x20580c21, 0x00210040, 0x00000003 },
-   { 0x00800031, 0x2ac01d29, 0x008d0040, 0x0414a005 },
-   { 0x00800031, 0x2b401d29, 0x008d0040, 0x0414a006 },
-   { 0x00000041, 0x20580c21, 0x00210058, 0x00000009 },
-   { 0x00000020, 0x34001400, 0x00001400, 0x00210058 },
-   { 0x00800001, 0x25800229, 0x00ad0ac0, 0x00000000 },
-   { 0x00800001, 0x25a00229, 0x00ad0ae0, 0x00000000 },
-   { 0x00800001, 0x25c00229, 0x00ad0b00, 0x00000000 },
-   { 0x00800001, 0x25e00229, 0x00ad0b20, 0x00000000 },
-   { 0x00800001, 0x26000229, 0x00ad0b40, 0x00000000 },
-   { 0x00800001, 0x26200229, 0x00ad0b60, 0x00000000 },
-   { 0x00800001, 0x26400229, 0x00ad0b80, 0x00000000 },
-   { 0x00800001, 0x26600229, 0x00ad0ba0, 0x00000000 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x0000001a },
-   { 0x00800001, 0x25800229, 0x00ad0ac1, 0x00000000 },
-   { 0x00800001, 0x25a00229, 0x00ad0ae1, 0x00000000 },
-   { 0x00800001, 0x25c00229, 0x00ad0b01, 0x00000000 },
-   { 0x00800001, 0x25e00229, 0x00ad0b21, 0x00000000 },
-   { 0x00800001, 0x26000229, 0x00ad0b41, 0x00000000 },
-   { 0x00800001, 0x26200229, 0x00ad0b61, 0x00000000 },
-   { 0x00800001, 0x26400229, 0x00ad0b81, 0x00000000 },
-   { 0x00800001, 0x26600229, 0x00ad0ba1, 0x00000000 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000011 },
-   { 0x00800001, 0x25800229, 0x00ad0ac2, 0x00000000 },
-   { 0x00800001, 0x25a00229, 0x00ad0ae2, 0x00000000 },
-   { 0x00800001, 0x25c00229, 0x00ad0b02, 0x00000000 },
-   { 0x00800001, 0x25e00229, 0x00ad0b22, 0x00000000 },
-   { 0x00800001, 0x26000229, 0x00ad0b42, 0x00000000 },
-   { 0x00800001, 0x26200229, 0x00ad0b62, 0x00000000 },
-   { 0x00800001, 0x26400229, 0x00ad0b82, 0x00000000 },
-   { 0x00800001, 0x26600229, 0x00ad0ba2, 0x00000000 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000008 },
-   { 0x00800001, 0x25800229, 0x00ad0ac3, 0x00000000 },
-   { 0x00800001, 0x25a00229, 0x00ad0ae3, 0x00000000 },
-   { 0x00800001, 0x25c00229, 0x00ad0b03, 0x00000000 },
-   { 0x00800001, 0x25e00229, 0x00ad0b23, 0x00000000 },
-   { 0x00800001, 0x26000229, 0x00ad0b43, 0x00000000 },
-   { 0x00800001, 0x26200229, 0x00ad0b63, 0x00000000 },
-   { 0x00800001, 0x26400229, 0x00ad0b83, 0x00000000 },
-   { 0x00800001, 0x26600229, 0x00ad0ba3, 0x00000000 },
-   { 0x00800001, 0x2f400231, 0x00b20580, 0x00000000 },
-   { 0x00800001, 0x2f500231, 0x00b205a0, 0x00000000 },
-   { 0x00800001, 0x2f600231, 0x00b205c0, 0x00000000 },
-   { 0x00800001, 0x2f700231, 0x00b205e0, 0x00000000 },
-   { 0x00800001, 0x2f800231, 0x00b20600, 0x00000000 },
-   { 0x00800001, 0x2f900231, 0x00b20620, 0x00000000 },
-   { 0x00800001, 0x2fa00231, 0x00b20640, 0x00000000 },
-   { 0x00800001, 0x2fb00231, 0x00b20660, 0x00000000 },
-   { 0x0020000c, 0x2e723dad, 0x00450e72, 0x00010001 },
-   { 0x0020000c, 0x202e3dad, 0x00450e72, 0x00010001 },
-   { 0x00200040, 0x20403421, 0x00450020, 0x0045002e },
-   { 0x00000001, 0x20480061, 0x00000000, 0x0007000f },
-   { 0x00000005, 0x20580c21, 0x00210040, 0x00000003 },
-   { 0x00800031, 0x2ac01d29, 0x008d0040, 0x0414a008 },
-   { 0x00800031, 0x2b401d29, 0x008d0040, 0x0414a009 },
-   { 0x00000041, 0x20580c21, 0x00210058, 0x00000009 },
-   { 0x00000020, 0x34001400, 0x00001400, 0x00210058 },
-   { 0x00800001, 0x25800229, 0x00ad0ac0, 0x00000000 },
-   { 0x00800001, 0x25a00229, 0x00ad0ae0, 0x00000000 },
-   { 0x00800001, 0x25c00229, 0x00ad0b00, 0x00000000 },
-   { 0x00800001, 0x25e00229, 0x00ad0b20, 0x00000000 },
-   { 0x00800001, 0x26000229, 0x00ad0b40, 0x00000000 },
-   { 0x00800001, 0x26200229, 0x00ad0b60, 0x00000000 },
-   { 0x00800001, 0x26400229, 0x00ad0b80, 0x00000000 },
-   { 0x00800001, 0x26600229, 0x00ad0ba0, 0x00000000 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x0000001a },
-   { 0x00800001, 0x25800229, 0x00ad0ac1, 0x00000000 },
-   { 0x00800001, 0x25a00229, 0x00ad0ae1, 0x00000000 },
-   { 0x00800001, 0x25c00229, 0x00ad0b01, 0x00000000 },
-   { 0x00800001, 0x25e00229, 0x00ad0b21, 0x00000000 },
-   { 0x00800001, 0x26000229, 0x00ad0b41, 0x00000000 },
-   { 0x00800001, 0x26200229, 0x00ad0b61, 0x00000000 },
-   { 0x00800001, 0x26400229, 0x00ad0b81, 0x00000000 },
-   { 0x00800001, 0x26600229, 0x00ad0ba1, 0x00000000 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000011 },
-   { 0x00800001, 0x25800229, 0x00ad0ac2, 0x00000000 },
-   { 0x00800001, 0x25a00229, 0x00ad0ae2, 0x00000000 },
-   { 0x00800001, 0x25c00229, 0x00ad0b02, 0x00000000 },
-   { 0x00800001, 0x25e00229, 0x00ad0b22, 0x00000000 },
-   { 0x00800001, 0x26000229, 0x00ad0b42, 0x00000000 },
-   { 0x00800001, 0x26200229, 0x00ad0b62, 0x00000000 },
-   { 0x00800001, 0x26400229, 0x00ad0b82, 0x00000000 },
-   { 0x00800001, 0x26600229, 0x00ad0ba2, 0x00000000 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000008 },
-   { 0x00800001, 0x25800229, 0x00ad0ac3, 0x00000000 },
-   { 0x00800001, 0x25a00229, 0x00ad0ae3, 0x00000000 },
-   { 0x00800001, 0x25c00229, 0x00ad0b03, 0x00000000 },
-   { 0x00800001, 0x25e00229, 0x00ad0b23, 0x00000000 },
-   { 0x00800001, 0x26000229, 0x00ad0b43, 0x00000000 },
-   { 0x00800001, 0x26200229, 0x00ad0b63, 0x00000000 },
-   { 0x00800001, 0x26400229, 0x00ad0b83, 0x00000000 },
-   { 0x00800001, 0x26600229, 0x00ad0ba3, 0x00000000 },
-   { 0x80800042, 0x25804529, 0x00b10580, 0x00b10f40 },
-   { 0x80800042, 0x25a04529, 0x00b105a0, 0x00b10f50 },
-   { 0x80800042, 0x25c04529, 0x00b105c0, 0x00b10f60 },
-   { 0x80800042, 0x25e04529, 0x00b105e0, 0x00b10f70 },
-   { 0x80800042, 0x26004529, 0x00b10600, 0x00b10f80 },
-   { 0x80800042, 0x26204529, 0x00b10620, 0x00b10f90 },
-   { 0x80800042, 0x26404529, 0x00b10640, 0x00b10fa0 },
-   { 0x80800042, 0x26604529, 0x00b10660, 0x00b10fb0 },
-   { 0x00600001, 0x20200021, 0x008d0980, 0x00000000 },
-   { 0x00800001, 0x458101f1, 0x00000000, 0x00000000 },
-   { 0x00800001, 0x45a101f1, 0x00000000, 0x00000000 },
-   { 0x00800001, 0x45c101f1, 0x00000000, 0x00000000 },
-   { 0x00800001, 0x45e101f1, 0x00000000, 0x00000000 },
-   { 0x00800001, 0x460101f1, 0x00000000, 0x00000000 },
-   { 0x00800001, 0x462101f1, 0x00000000, 0x00000000 },
-   { 0x00800001, 0x464101f1, 0x00000000, 0x00000000 },
-   { 0x00800001, 0x466101f1, 0x00000000, 0x00000000 },
-   { 0x02000005, 0x20002e3c, 0x0021003e, 0x00010001 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000011 },
-   { 0x00800040, 0x238045ad, 0x00b10060, 0x00b20380 },
-   { 0x00800040, 0x23a045ad, 0x00b10080, 0x00b203a0 },
-   { 0x00800040, 0x23c045ad, 0x00b100a0, 0x00b203c0 },
-   { 0x00800040, 0x23e045ad, 0x00b100c0, 0x00b203e0 },
-   { 0x00800040, 0x240045ad, 0x00b100e0, 0x00b20400 },
-   { 0x00800040, 0x242045ad, 0x00b10100, 0x00b20420 },
-   { 0x00800040, 0x244045ad, 0x00b10120, 0x00b20440 },
-   { 0x00800040, 0x246045ad, 0x00b10140, 0x00b20460 },
-   { 0x00800040, 0x248045ad, 0x00b10160, 0x00b20480 },
-   { 0x00800040, 0x24a045ad, 0x00b10180, 0x00b204a0 },
-   { 0x00800040, 0x24c045ad, 0x00b101a0, 0x00b204c0 },
-   { 0x00800040, 0x24e045ad, 0x00b101c0, 0x00b204e0 },
-   { 0x00800040, 0x250045ad, 0x00b101e0, 0x00b20500 },
-   { 0x00800040, 0x252045ad, 0x00b10200, 0x00b20520 },
-   { 0x00800040, 0x254045ad, 0x00b10220, 0x00b20540 },
-   { 0x00800040, 0x256045ad, 0x00b10240, 0x00b20560 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000010 },
-   { 0x00800040, 0x238045ad, 0x00b10060, 0x00b20380 },
-   { 0x00800040, 0x23a045ad, 0x00b10160, 0x00b203a0 },
-   { 0x00800040, 0x23c045ad, 0x00b10080, 0x00b203c0 },
-   { 0x00800040, 0x23e045ad, 0x00b10180, 0x00b203e0 },
-   { 0x00800040, 0x240045ad, 0x00b100a0, 0x00b20400 },
-   { 0x00800040, 0x242045ad, 0x00b101a0, 0x00b20420 },
-   { 0x00800040, 0x244045ad, 0x00b100c0, 0x00b20440 },
-   { 0x00800040, 0x246045ad, 0x00b101c0, 0x00b20460 },
-   { 0x00800040, 0x248045ad, 0x00b100e0, 0x00b20480 },
-   { 0x00800040, 0x24a045ad, 0x00b101e0, 0x00b204a0 },
-   { 0x00800040, 0x24c045ad, 0x00b10100, 0x00b204c0 },
-   { 0x00800040, 0x24e045ad, 0x00b10200, 0x00b204e0 },
-   { 0x00800040, 0x250045ad, 0x00b10120, 0x00b20500 },
-   { 0x00800040, 0x252045ad, 0x00b10220, 0x00b20520 },
-   { 0x00800040, 0x254045ad, 0x00b10140, 0x00b20540 },
-   { 0x00800040, 0x256045ad, 0x00b10240, 0x00b20560 },
-   { 0x00000001, 0x20280061, 0x00000000, 0x000f000f },
-   { 0x80800001, 0x438001b1, 0x00b10380, 0x00000000 },
-   { 0x80800001, 0x43a001b1, 0x00b103a0, 0x00000000 },
-   { 0x80800001, 0x43c001b1, 0x00b103c0, 0x00000000 },
-   { 0x80800001, 0x43e001b1, 0x00b103e0, 0x00000000 },
-   { 0x80800001, 0x440001b1, 0x00b10400, 0x00000000 },
-   { 0x80800001, 0x442001b1, 0x00b10420, 0x00000000 },
-   { 0x80800001, 0x444001b1, 0x00b10440, 0x00000000 },
-   { 0x80800001, 0x446001b1, 0x00b10460, 0x00000000 },
-   { 0x80800001, 0x448001b1, 0x00b10480, 0x00000000 },
-   { 0x80800001, 0x44a001b1, 0x00b104a0, 0x00000000 },
-   { 0x80800001, 0x44c001b1, 0x00b104c0, 0x00000000 },
-   { 0x80800001, 0x44e001b1, 0x00b104e0, 0x00000000 },
-   { 0x80800001, 0x450001b1, 0x00b10500, 0x00000000 },
-   { 0x80800001, 0x452001b1, 0x00b10520, 0x00000000 },
-   { 0x80800001, 0x454001b1, 0x00b10540, 0x00000000 },
-   { 0x80800001, 0x456001b1, 0x00b10560, 0x00000000 },
-   { 0x00800001, 0x20200232, 0x00b20380, 0x00000000 },
-   { 0x00800001, 0x20300232, 0x00b203a0, 0x00000000 },
-   { 0x00800001, 0x20400232, 0x00b203c0, 0x00000000 },
-   { 0x00800001, 0x20500232, 0x00b203e0, 0x00000000 },
-   { 0x00800001, 0x20600232, 0x00b20400, 0x00000000 },
-   { 0x00800001, 0x20700232, 0x00b20420, 0x00000000 },
-   { 0x00800001, 0x20800232, 0x00b20440, 0x00000000 },
-   { 0x00800001, 0x20900232, 0x00b20460, 0x00000000 },
-   { 0x00800001, 0x20a00232, 0x00b20480, 0x00000000 },
-   { 0x00800001, 0x20b00232, 0x00b204a0, 0x00000000 },
-   { 0x00800001, 0x20c00232, 0x00b204c0, 0x00000000 },
-   { 0x00800001, 0x20d00232, 0x00b204e0, 0x00000000 },
-   { 0x00800001, 0x20e00232, 0x00b20500, 0x00000000 },
-   { 0x00800001, 0x20f00232, 0x00b20520, 0x00000000 },
-   { 0x00800001, 0x21000232, 0x00b20540, 0x00000000 },
-   { 0x00800001, 0x21100232, 0x00b20560, 0x00000000 },
-   { 0x00800031, 0x24001d28, 0x008d0020, 0x05902000 },
-   { 0x00000001, 0x20280061, 0x00000000, 0x00070007 },
-   { 0x00200008, 0x20201c21, 0x00450020, 0x00000001 },
-   { 0x00800040, 0x258025a9, 0x00b10260, 0x00b10580 },
-   { 0x00800040, 0x25a025a9, 0x00b10280, 0x00b105a0 },
-   { 0x00800040, 0x25c025a9, 0x00b102a0, 0x00b105c0 },
-   { 0x00800040, 0x25e025a9, 0x00b102c0, 0x00b105e0 },
-   { 0x80800001, 0x45800131, 0x00b10580, 0x00000000 },
-   { 0x80800001, 0x45a00131, 0x00b105a0, 0x00000000 },
-   { 0x80800001, 0x45c00131, 0x00b105c0, 0x00000000 },
-   { 0x80800001, 0x45e00131, 0x00b105e0, 0x00000000 },
-   { 0x00800001, 0x20200232, 0x00b20580, 0x00000000 },
-   { 0x00800001, 0x20300232, 0x00b205a0, 0x00000000 },
-   { 0x00800001, 0x20400232, 0x00b205c0, 0x00000000 },
-   { 0x00800001, 0x20500232, 0x00b205e0, 0x00000000 },
-   { 0x00800031, 0x24001d28, 0x008d0020, 0x05302001 },
-   { 0x00800040, 0x260025a9, 0x00b102e0, 0x00b10600 },
-   { 0x00800040, 0x262025a9, 0x00b10300, 0x00b10620 },
-   { 0x00800040, 0x264025a9, 0x00b10320, 0x00b10640 },
-   { 0x00800040, 0x266025a9, 0x00b10340, 0x00b10660 },
-   { 0x80800001, 0x46000131, 0x00b10600, 0x00000000 },
-   { 0x80800001, 0x46200131, 0x00b10620, 0x00000000 },
-   { 0x80800001, 0x46400131, 0x00b10640, 0x00000000 },
-   { 0x80800001, 0x46600131, 0x00b10660, 0x00000000 },
-   { 0x00800001, 0x20200232, 0x00b20600, 0x00000000 },
-   { 0x00800001, 0x20300232, 0x00b20620, 0x00000000 },
-   { 0x00800001, 0x20400232, 0x00b20640, 0x00000000 },
-   { 0x00800001, 0x20500232, 0x00b20660, 0x00000000 },
-   { 0x00800031, 0x24001d28, 0x008d0020, 0x05302002 },
-   { 0x00800031, 0x24001d28, 0x008d0000, 0x87100000 },
-   { 0x00800031, 0x24001d28, 0x008d0000, 0x87100000 },
diff --git a/src/xvmc/frame_f_b_igd.g4a b/src/xvmc/frame_f_b_igd.g4a
deleted file mode 100644
index ca7952e..0000000
--- a/src/xvmc/frame_f_b_igd.g4a
+++ /dev/null
@@ -1,131 +0,0 @@
-/*
- * Copyright © 2008 Intel Corporation
- *
- * Permission is hereby granted, free of charge, to any person obtaining a
- * copy of this software and associated documentation files (the "Software"),
- * to deal in the Software without restriction, including without limitation
- * the rights to use, copy, modify, merge, publish, distribute, sublicense,
- * and/or sell copies of the Software, and to permit persons to whom the
- * Software is furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice (including the next
- * paragraph) shall be included in all copies or substantial portions of the
- * Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
- * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
- * SOFTWARE.
- *
- * Author:
- *    Zou Nan hai <nanhai.zou at intel.com>
- *    Zhang Hua jun <huajun.zhang at intel.com>
- *    Xing Dong sheng <dongsheng.xing at intel.com>
- *
- */
-
-/* shader for forward and backward predict mc
-*/
-/* (x', y') = (x, y) + (motion_vector1.x >> 1, motion_vector1.y >> 1)
-/* (x'', y'') = (x, y) + (motion_vector2.x >> 1, motion_vector2.y >> 1)
-/* f(x, y) = (motion_forward(x`, y`) + motion_backward(x'', y'') + 1) / 2 */
-
-//Save payload
-mov (8) g76.0<1>UD g1.0<8,8,1>UD {align1};
-//mov (8) g77.0<1>UD g2.0<8,8,1>UD {align1};
-include(`block_clear.g4i')
-
-mov (8) g115.0<1>UD g1.0<8,8,1>UD {align1};
-mov (1) g1.8<1>UD 0x0070007UD  {align1};
-mov (8) g2.0<1>UD g1.0<8,8,1>UD {align1};
-/* Y */
-//Forward
-asr (2) g1.14<1>W g115.14<2,2,1>W 1W {align1};
-add (2) g2.0<1>UD g115.0<2,2,1>UD g1.14<2,2,1>W {align1};
-define(`input_surface',	`4')
-define(`mv1',	`g115.14')
-define(`mv2',	`g115.16')
-include(`motion_frame_y_igd.g4i')
-mov (16) g52.0<1>UD g28.0<16,16,1>UD {align1 compr};
-mov (16) g54.0<1>UD g30.0<16,16,1>UD {align1 compr};
-mov (16) g56.0<1>UD g32.0<16,16,1>UD {align1 compr};
-mov (16) g58.0<1>UD g34.0<16,16,1>UD {align1 compr};
-mov (16) g60.0<1>UD g36.0<16,16,1>UD {align1 compr};
-mov (16) g62.0<1>UD g38.0<16,16,1>UD {align1 compr};
-mov (16) g64.0<1>UD g40.0<16,16,1>UD {align1 compr};
-mov (16) g66.0<1>UD g42.0<16,16,1>UD {align1 compr};
-//Backward
-asr (2) g1.14<1>W g115.18<2,2,1>W 1W {align1};
-add (2) g2.0<1>UD g115.0<2,2,1>UD g1.14<2,2,1>W {align1};
-define(`input_surface',	`7')
-define(`mv1',	`g115.18')
-define(`mv2',	`g115.20')
-include(`motion_frame_y_igd.g4i')
-
-//Average
-avg.sat (16) g28.0<1>UW g28.0<16,16,1>UW g52.0<16,16,1>UW {align1};
-avg.sat (16) g29.0<1>UW g29.0<16,16,1>UW g53.0<16,16,1>UW {align1};
-avg.sat (16) g30.0<1>UW g30.0<16,16,1>UW g54.0<16,16,1>UW {align1};
-avg.sat (16) g31.0<1>UW g31.0<16,16,1>UW g55.0<16,16,1>UW {align1};
-avg.sat (16) g32.0<1>UW g32.0<16,16,1>UW g56.0<16,16,1>UW {align1};
-avg.sat (16) g33.0<1>UW g33.0<16,16,1>UW g57.0<16,16,1>UW {align1};
-avg.sat (16) g34.0<1>UW g34.0<16,16,1>UW g58.0<16,16,1>UW {align1};
-avg.sat (16) g35.0<1>UW g35.0<16,16,1>UW g59.0<16,16,1>UW {align1};
-avg.sat (16) g36.0<1>UW g36.0<16,16,1>UW g60.0<16,16,1>UW {align1};
-avg.sat (16) g37.0<1>UW g37.0<16,16,1>UW g61.0<16,16,1>UW {align1};
-avg.sat (16) g38.0<1>UW g38.0<16,16,1>UW g62.0<16,16,1>UW {align1};
-avg.sat (16) g39.0<1>UW g39.0<16,16,1>UW g63.0<16,16,1>UW {align1};
-avg.sat (16) g40.0<1>UW g40.0<16,16,1>UW g64.0<16,16,1>UW {align1};
-avg.sat (16) g41.0<1>UW g41.0<16,16,1>UW g65.0<16,16,1>UW {align1};
-avg.sat (16) g42.0<1>UW g42.0<16,16,1>UW g66.0<16,16,1>UW {align1};
-avg.sat (16) g43.0<1>UW g43.0<16,16,1>UW g67.0<16,16,1>UW {align1};
-
-/* UV */
-//Forward
-shr (2) g1.0<1>UD g115.0<2,2,1>UD 1UD {align1};
-asr (2) g115.14<1>W g115.14<2,2,1>W 1W {align1};
-asr (2) g1.14<1>W g115.14<2,2,1>W 1W {align1};
-add (2) g2.0<1>UD g1.0<2,2,1>UD g1.14<2,2,1>W {align1};
-
-define(`input_surface1',	`5')
-define(`input_surface2',	`6')
-define(`mv1',	`g115.14')
-define(`mv2',	`g115.16')
-mov (1) g2.8<1>UD 0x007000fUD  {align1};
-include(`motion_frame_uv_igd.g4i')
-mov (16) g122.0<1>UB g44.0<16,16,2>UB {align1};
-mov (16) g122.16<1>UB g45.0<16,16,2>UB {align1};
-mov (16) g123.0<1>UB g46.0<16,16,2>UB {align1};
-mov (16) g123.16<1>UB g47.0<16,16,2>UB {align1};
-mov (16) g124.0<1>UB g48.0<16,16,2>UB {align1};
-mov (16) g124.16<1>UB g49.0<16,16,2>UB {align1};
-mov (16) g125.0<1>UB g50.0<16,16,2>UB {align1};
-mov (16) g125.16<1>UB g51.0<16,16,2>UB {align1};
-//Backward
-asr (2) g115.18<1>W g115.18<2,2,1>W 1W {align1};
-asr (2) g1.14<1>W g115.18<2,2,1>W 1W {align1};
-add (2) g2.0<1>UD g1.0<2,2,1>UD g1.14<2,2,1>W {align1};
-define(`input_surface1',	`8')
-define(`input_surface2',	`9')
-define(`mv1',	`g115.18')
-define(`mv2',	`g115.20')
-mov (1) g2.8<1>UD 0x007000fUD  {align1};
-include(`motion_frame_uv_igd.g4i')
-
-//Average
-avg.sat (16) g44.0<1>UW g44.0<16,16,1>UW g122.0<16,16,1>UB {align1};
-avg.sat (16) g45.0<1>UW g45.0<16,16,1>UW g122.16<16,16,1>UB {align1};
-avg.sat (16) g46.0<1>UW g46.0<16,16,1>UW g123.0<16,16,1>UB {align1};
-avg.sat (16) g47.0<1>UW g47.0<16,16,1>UW g123.16<16,16,1>UB {align1};
-avg.sat (16) g48.0<1>UW g48.0<16,16,1>UW g124.0<16,16,1>UB {align1};
-avg.sat (16) g49.0<1>UW g49.0<16,16,1>UW g124.16<16,16,1>UB {align1};
-avg.sat (16) g50.0<1>UW g50.0<16,16,1>UW g125.0<16,16,1>UB {align1};
-avg.sat (16) g51.0<1>UW g51.0<16,16,1>UW g125.16<16,16,1>UB {align1};
-
-include(`addidct.g4i')
-
-send (16) 0 acc0<1>UW g0<8,8,1>UW 
-	thread_spawner(0, 0, 0) mlen 1 rlen 0 { align1 EOT};
diff --git a/src/xvmc/frame_f_b_igd.g4b b/src/xvmc/frame_f_b_igd.g4b
deleted file mode 100644
index f838d7b..0000000
--- a/src/xvmc/frame_f_b_igd.g4b
+++ /dev/null
@@ -1,573 +0,0 @@
-   { 0x00600001, 0x29800021, 0x008d0020, 0x00000000 },
-   { 0x02000005, 0x20000c3c, 0x00210040, 0x00000001 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000030 },
-   { 0x00000040, 0x20480c21, 0x00210988, 0x00000000 },
-   { 0x00800031, 0x20601c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x20801c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x20a01c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x20c01c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x20e01c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x21001c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x21201c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x21401c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x21601c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x21801c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x21a01c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x21c01c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x21e01c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x22001c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x22201c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x22401c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x22601c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x22801c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x22a01c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x22c01c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x22e01c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x23001c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x23201c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x23401c21, 0x00b10040, 0x04110203 },
-   { 0x02000005, 0x20002d3c, 0x0021098c, 0x00200020 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000008 },
-   { 0x00600001, 0x20600169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x20800169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x20a00169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x20c00169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x20e00169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x21000169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x21200169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x21400169, 0x00000000, 0x00000000 },
-   { 0x02000005, 0x20002d3c, 0x0021002c, 0x00100010 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000008 },
-   { 0x00600001, 0x20700169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x20900169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x20b00169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x20d00169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x20f00169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x21100169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x21300169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x21500169, 0x00000000, 0x00000000 },
-   { 0x02000005, 0x20002d3c, 0x0021002c, 0x00080008 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000008 },
-   { 0x00600001, 0x21600169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x21800169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x21a00169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x21c00169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x21e00169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x22000169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x22200169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x22400169, 0x00000000, 0x00000000 },
-   { 0x02000005, 0x20002d3c, 0x0021002c, 0x00040004 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000008 },
-   { 0x00600001, 0x21700169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x21900169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x21b00169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x21d00169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x21f00169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x22100169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x22300169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x22500169, 0x00000000, 0x00000000 },
-   { 0x02000005, 0x20002d3c, 0x0021002c, 0x00020002 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000004 },
-   { 0x00800001, 0x22600169, 0x00000000, 0x00000000 },
-   { 0x00800001, 0x22800169, 0x00000000, 0x00000000 },
-   { 0x00800001, 0x22a00169, 0x00000000, 0x00000000 },
-   { 0x00800001, 0x22c00169, 0x00000000, 0x00000000 },
-   { 0x02000005, 0x20002d3c, 0x0021002c, 0x00010001 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000004 },
-   { 0x00800001, 0x22e00169, 0x00000000, 0x00000000 },
-   { 0x00800001, 0x23000169, 0x00000000, 0x00000000 },
-   { 0x00800001, 0x23200169, 0x00000000, 0x00000000 },
-   { 0x00800001, 0x23400169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x2e600021, 0x008d0020, 0x00000000 },
-   { 0x00000001, 0x20280061, 0x00000000, 0x00070007 },
-   { 0x00600001, 0x20400021, 0x008d0020, 0x00000000 },
-   { 0x0020000c, 0x202e3dad, 0x00450e6e, 0x00010001 },
-   { 0x00200040, 0x20403421, 0x00450e60, 0x0045002e },
-   { 0x01000005, 0x20000d3c, 0x00210e6e, 0x00000001 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x0000005f },
-   { 0x01000005, 0x20000d3c, 0x00210e70, 0x00000001 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000048 },
-   { 0x00000001, 0x20480061, 0x00000000, 0x0007001f },
-   { 0x00800031, 0x2c401d29, 0x008d0040, 0x0418a004 },
-   { 0x00000040, 0x20440c21, 0x00210044, 0x00000008 },
-   { 0x00800031, 0x2d401d29, 0x008d0040, 0x0418a004 },
-   { 0x00000040, 0x20440c21, 0x00210044, 0x00000008 },
-   { 0x00000001, 0x20480061, 0x00000000, 0x0000001f },
-   { 0x00800031, 0x2f001d29, 0x008d0040, 0x0411a004 },
-   { 0x00800040, 0x23804629, 0x00b10c40, 0x00b10c41 },
-   { 0x00800040, 0x23a04629, 0x00b10c60, 0x00b10c61 },
-   { 0x00800040, 0x23c04629, 0x00b10c80, 0x00b10c81 },
-   { 0x00800040, 0x23e04629, 0x00b10ca0, 0x00b10ca1 },
-   { 0x00800040, 0x24004629, 0x00b10cc0, 0x00b10cc1 },
-   { 0x00800040, 0x24204629, 0x00b10ce0, 0x00b10ce1 },
-   { 0x00800040, 0x24404629, 0x00b10d00, 0x00b10d01 },
-   { 0x00800040, 0x24604629, 0x00b10d20, 0x00b10d21 },
-   { 0x00800040, 0x24804629, 0x00b10d40, 0x00b10d41 },
-   { 0x00800040, 0x24a04629, 0x00b10d60, 0x00b10d61 },
-   { 0x00800040, 0x24c04629, 0x00b10d80, 0x00b10d81 },
-   { 0x00800040, 0x24e04629, 0x00b10da0, 0x00b10da1 },
-   { 0x00800040, 0x25004629, 0x00b10dc0, 0x00b10dc1 },
-   { 0x00800040, 0x25204629, 0x00b10de0, 0x00b10de1 },
-   { 0x00800040, 0x25404629, 0x00b10e00, 0x00b10e01 },
-   { 0x00800040, 0x25604629, 0x00b10e20, 0x00b10e21 },
-   { 0x00800040, 0x23804529, 0x00b10380, 0x00b10c60 },
-   { 0x00800040, 0x23a04529, 0x00b103a0, 0x00b10c80 },
-   { 0x00800040, 0x23c04529, 0x00b103c0, 0x00b10ca0 },
-   { 0x00800040, 0x23e04529, 0x00b103e0, 0x00b10cc0 },
-   { 0x00800040, 0x24004529, 0x00b10400, 0x00b10ce0 },
-   { 0x00800040, 0x24204529, 0x00b10420, 0x00b10d00 },
-   { 0x00800040, 0x24404529, 0x00b10440, 0x00b10d20 },
-   { 0x00800040, 0x24604529, 0x00b10460, 0x00b10d40 },
-   { 0x00800040, 0x24804529, 0x00b10480, 0x00b10d60 },
-   { 0x00800040, 0x24a04529, 0x00b104a0, 0x00b10d80 },
-   { 0x00800040, 0x24c04529, 0x00b104c0, 0x00b10da0 },
-   { 0x00800040, 0x24e04529, 0x00b104e0, 0x00b10dc0 },
-   { 0x00800040, 0x25004529, 0x00b10500, 0x00b10de0 },
-   { 0x00800040, 0x25204529, 0x00b10520, 0x00b10e00 },
-   { 0x00800040, 0x25404529, 0x00b10540, 0x00b10e20 },
-   { 0x00800040, 0x25604529, 0x00b10560, 0x00b10f00 },
-   { 0x00800040, 0x23804529, 0x00b10380, 0x00b10c61 },
-   { 0x00800040, 0x23a04529, 0x00b103a0, 0x00b10c81 },
-   { 0x00800040, 0x23c04529, 0x00b103c0, 0x00b10ca1 },
-   { 0x00800040, 0x23e04529, 0x00b103e0, 0x00b10cc1 },
-   { 0x00800040, 0x24004529, 0x00b10400, 0x00b10ce1 },
-   { 0x00800040, 0x24204529, 0x00b10420, 0x00b10d01 },
-   { 0x00800040, 0x24404529, 0x00b10440, 0x00b10d21 },
-   { 0x00800040, 0x24604529, 0x00b10460, 0x00b10d41 },
-   { 0x00800040, 0x24804529, 0x00b10480, 0x00b10d61 },
-   { 0x00800040, 0x24a04529, 0x00b104a0, 0x00b10d81 },
-   { 0x00800040, 0x24c04529, 0x00b104c0, 0x00b10da1 },
-   { 0x00800040, 0x24e04529, 0x00b104e0, 0x00b10dc1 },
-   { 0x00800040, 0x25004529, 0x00b10500, 0x00b10de1 },
-   { 0x00800040, 0x25204529, 0x00b10520, 0x00b10e01 },
-   { 0x00800040, 0x25404529, 0x00b10540, 0x00b10e21 },
-   { 0x00800040, 0x25604529, 0x00b10560, 0x00b10f01 },
-   { 0x80800008, 0x23802d29, 0x00b10380, 0x00020002 },
-   { 0x80800008, 0x23a02d29, 0x00b103a0, 0x00020002 },
-   { 0x80800008, 0x23c02d29, 0x00b103c0, 0x00020002 },
-   { 0x80800008, 0x23e02d29, 0x00b103e0, 0x00020002 },
-   { 0x80800008, 0x24002d29, 0x00b10400, 0x00020002 },
-   { 0x80800008, 0x24202d29, 0x00b10420, 0x00020002 },
-   { 0x80800008, 0x24402d29, 0x00b10440, 0x00020002 },
-   { 0x80800008, 0x24602d29, 0x00b10460, 0x00020002 },
-   { 0x80800008, 0x24802d29, 0x00b10480, 0x00020002 },
-   { 0x80800008, 0x24a02d29, 0x00b104a0, 0x00020002 },
-   { 0x80800008, 0x24c02d29, 0x00b104c0, 0x00020002 },
-   { 0x80800008, 0x24e02d29, 0x00b104e0, 0x00020002 },
-   { 0x80800008, 0x25002d29, 0x00b10500, 0x00020002 },
-   { 0x80800008, 0x25202d29, 0x00b10520, 0x00020002 },
-   { 0x80800008, 0x25402d29, 0x00b10540, 0x00020002 },
-   { 0x80800008, 0x25602d29, 0x00b10560, 0x00020002 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000043 },
-   { 0x00000001, 0x20480061, 0x00000000, 0x0007001f },
-   { 0x00800031, 0x2c401d29, 0x008d0040, 0x0418a004 },
-   { 0x00000040, 0x20440c21, 0x00210044, 0x00000008 },
-   { 0x00800031, 0x2d401d29, 0x008d0040, 0x0418a004 },
-   { 0x80800042, 0x23804629, 0x00b10c40, 0x00b10c41 },
-   { 0x80800042, 0x23a04629, 0x00b10c60, 0x00b10c61 },
-   { 0x80800042, 0x23c04629, 0x00b10c80, 0x00b10c81 },
-   { 0x80800042, 0x23e04629, 0x00b10ca0, 0x00b10ca1 },
-   { 0x80800042, 0x24004629, 0x00b10cc0, 0x00b10cc1 },
-   { 0x80800042, 0x24204629, 0x00b10ce0, 0x00b10ce1 },
-   { 0x80800042, 0x24404629, 0x00b10d00, 0x00b10d01 },
-   { 0x80800042, 0x24604629, 0x00b10d20, 0x00b10d21 },
-   { 0x80800042, 0x24804629, 0x00b10d40, 0x00b10d41 },
-   { 0x80800042, 0x24a04629, 0x00b10d60, 0x00b10d61 },
-   { 0x80800042, 0x24c04629, 0x00b10d80, 0x00b10d81 },
-   { 0x80800042, 0x24e04629, 0x00b10da0, 0x00b10da1 },
-   { 0x80800042, 0x25004629, 0x00b10dc0, 0x00b10dc1 },
-   { 0x80800042, 0x25204629, 0x00b10de0, 0x00b10de1 },
-   { 0x80800042, 0x25404629, 0x00b10e00, 0x00b10e01 },
-   { 0x80800042, 0x25604629, 0x00b10e20, 0x00b10e21 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x0000002e },
-   { 0x01000005, 0x20000d3c, 0x00210e70, 0x00000001 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000018 },
-   { 0x00000001, 0x20480061, 0x00000000, 0x0007001f },
-   { 0x00800031, 0x2c401d29, 0x008d0040, 0x0418a004 },
-   { 0x00000040, 0x20440c21, 0x00210044, 0x00000008 },
-   { 0x00800031, 0x2d401d29, 0x008d0040, 0x0418a004 },
-   { 0x00000040, 0x20440c21, 0x00210044, 0x00000008 },
-   { 0x00000001, 0x20480061, 0x00000000, 0x0000001f },
-   { 0x00800031, 0x2f001d29, 0x008d0040, 0x0411a004 },
-   { 0x80800042, 0x23804629, 0x00b10c40, 0x00b10c60 },
-   { 0x80800042, 0x23a04629, 0x00b10c60, 0x00b10c80 },
-   { 0x80800042, 0x23c04629, 0x00b10c80, 0x00b10ca0 },
-   { 0x80800042, 0x23e04629, 0x00b10ca0, 0x00b10cc0 },
-   { 0x80800042, 0x24004629, 0x00b10cc0, 0x00b10ce0 },
-   { 0x80800042, 0x24204629, 0x00b10ce0, 0x00b10d00 },
-   { 0x80800042, 0x24404629, 0x00b10d00, 0x00b10d20 },
-   { 0x80800042, 0x24604629, 0x00b10d20, 0x00b10d40 },
-   { 0x80800042, 0x24804629, 0x00b10d40, 0x00b10d60 },
-   { 0x80800042, 0x24a04629, 0x00b10d60, 0x00b10d80 },
-   { 0x80800042, 0x24c04629, 0x00b10d80, 0x00b10da0 },
-   { 0x80800042, 0x24e04629, 0x00b10da0, 0x00b10dc0 },
-   { 0x80800042, 0x25004629, 0x00b10dc0, 0x00b10de0 },
-   { 0x80800042, 0x25204629, 0x00b10de0, 0x00b10e00 },
-   { 0x80800042, 0x25404629, 0x00b10e00, 0x00b10e20 },
-   { 0x80800042, 0x25604629, 0x00b10e20, 0x00b10f00 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000014 },
-   { 0x00000001, 0x20480061, 0x00000000, 0x0007001f },
-   { 0x00800031, 0x2c401d29, 0x008d0040, 0x0418a004 },
-   { 0x00000040, 0x20440c21, 0x00210044, 0x00000008 },
-   { 0x00800031, 0x2d401d29, 0x008d0040, 0x0418a004 },
-   { 0x00800001, 0x23800229, 0x00b10c40, 0x00000000 },
-   { 0x00800001, 0x23a00229, 0x00b10c60, 0x00000000 },
-   { 0x00800001, 0x23c00229, 0x00b10c80, 0x00000000 },
-   { 0x00800001, 0x23e00229, 0x00b10ca0, 0x00000000 },
-   { 0x00800001, 0x24000229, 0x00b10cc0, 0x00000000 },
-   { 0x00800001, 0x24200229, 0x00b10ce0, 0x00000000 },
-   { 0x00800001, 0x24400229, 0x00b10d00, 0x00000000 },
-   { 0x00800001, 0x24600229, 0x00b10d20, 0x00000000 },
-   { 0x00800001, 0x24800229, 0x00b10d40, 0x00000000 },
-   { 0x00800001, 0x24a00229, 0x00b10d60, 0x00000000 },
-   { 0x00800001, 0x24c00229, 0x00b10d80, 0x00000000 },
-   { 0x00800001, 0x24e00229, 0x00b10da0, 0x00000000 },
-   { 0x00800001, 0x25000229, 0x00b10dc0, 0x00000000 },
-   { 0x00800001, 0x25200229, 0x00b10de0, 0x00000000 },
-   { 0x00800001, 0x25400229, 0x00b10e00, 0x00000000 },
-   { 0x00800001, 0x25600229, 0x00b10e20, 0x00000000 },
-   { 0x00802001, 0x26800021, 0x00b10380, 0x00000000 },
-   { 0x00802001, 0x26c00021, 0x00b103c0, 0x00000000 },
-   { 0x00802001, 0x27000021, 0x00b10400, 0x00000000 },
-   { 0x00802001, 0x27400021, 0x00b10440, 0x00000000 },
-   { 0x00802001, 0x27800021, 0x00b10480, 0x00000000 },
-   { 0x00802001, 0x27c00021, 0x00b104c0, 0x00000000 },
-   { 0x00802001, 0x28000021, 0x00b10500, 0x00000000 },
-   { 0x00802001, 0x28400021, 0x00b10540, 0x00000000 },
-   { 0x0020000c, 0x202e3dad, 0x00450e72, 0x00010001 },
-   { 0x00200040, 0x20403421, 0x00450e60, 0x0045002e },
-   { 0x01000005, 0x20000d3c, 0x00210e72, 0x00000001 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x0000005f },
-   { 0x01000005, 0x20000d3c, 0x00210e74, 0x00000001 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000048 },
-   { 0x00000001, 0x20480061, 0x00000000, 0x0007001f },
-   { 0x00800031, 0x2c401d29, 0x008d0040, 0x0418a007 },
-   { 0x00000040, 0x20440c21, 0x00210044, 0x00000008 },
-   { 0x00800031, 0x2d401d29, 0x008d0040, 0x0418a007 },
-   { 0x00000040, 0x20440c21, 0x00210044, 0x00000008 },
-   { 0x00000001, 0x20480061, 0x00000000, 0x0000001f },
-   { 0x00800031, 0x2f001d29, 0x008d0040, 0x0411a007 },
-   { 0x00800040, 0x23804629, 0x00b10c40, 0x00b10c41 },
-   { 0x00800040, 0x23a04629, 0x00b10c60, 0x00b10c61 },
-   { 0x00800040, 0x23c04629, 0x00b10c80, 0x00b10c81 },
-   { 0x00800040, 0x23e04629, 0x00b10ca0, 0x00b10ca1 },
-   { 0x00800040, 0x24004629, 0x00b10cc0, 0x00b10cc1 },
-   { 0x00800040, 0x24204629, 0x00b10ce0, 0x00b10ce1 },
-   { 0x00800040, 0x24404629, 0x00b10d00, 0x00b10d01 },
-   { 0x00800040, 0x24604629, 0x00b10d20, 0x00b10d21 },
-   { 0x00800040, 0x24804629, 0x00b10d40, 0x00b10d41 },
-   { 0x00800040, 0x24a04629, 0x00b10d60, 0x00b10d61 },
-   { 0x00800040, 0x24c04629, 0x00b10d80, 0x00b10d81 },
-   { 0x00800040, 0x24e04629, 0x00b10da0, 0x00b10da1 },
-   { 0x00800040, 0x25004629, 0x00b10dc0, 0x00b10dc1 },
-   { 0x00800040, 0x25204629, 0x00b10de0, 0x00b10de1 },
-   { 0x00800040, 0x25404629, 0x00b10e00, 0x00b10e01 },
-   { 0x00800040, 0x25604629, 0x00b10e20, 0x00b10e21 },
-   { 0x00800040, 0x23804529, 0x00b10380, 0x00b10c60 },
-   { 0x00800040, 0x23a04529, 0x00b103a0, 0x00b10c80 },
-   { 0x00800040, 0x23c04529, 0x00b103c0, 0x00b10ca0 },
-   { 0x00800040, 0x23e04529, 0x00b103e0, 0x00b10cc0 },
-   { 0x00800040, 0x24004529, 0x00b10400, 0x00b10ce0 },
-   { 0x00800040, 0x24204529, 0x00b10420, 0x00b10d00 },
-   { 0x00800040, 0x24404529, 0x00b10440, 0x00b10d20 },
-   { 0x00800040, 0x24604529, 0x00b10460, 0x00b10d40 },
-   { 0x00800040, 0x24804529, 0x00b10480, 0x00b10d60 },
-   { 0x00800040, 0x24a04529, 0x00b104a0, 0x00b10d80 },
-   { 0x00800040, 0x24c04529, 0x00b104c0, 0x00b10da0 },
-   { 0x00800040, 0x24e04529, 0x00b104e0, 0x00b10dc0 },
-   { 0x00800040, 0x25004529, 0x00b10500, 0x00b10de0 },
-   { 0x00800040, 0x25204529, 0x00b10520, 0x00b10e00 },
-   { 0x00800040, 0x25404529, 0x00b10540, 0x00b10e20 },
-   { 0x00800040, 0x25604529, 0x00b10560, 0x00b10f00 },
-   { 0x00800040, 0x23804529, 0x00b10380, 0x00b10c61 },
-   { 0x00800040, 0x23a04529, 0x00b103a0, 0x00b10c81 },
-   { 0x00800040, 0x23c04529, 0x00b103c0, 0x00b10ca1 },
-   { 0x00800040, 0x23e04529, 0x00b103e0, 0x00b10cc1 },
-   { 0x00800040, 0x24004529, 0x00b10400, 0x00b10ce1 },
-   { 0x00800040, 0x24204529, 0x00b10420, 0x00b10d01 },
-   { 0x00800040, 0x24404529, 0x00b10440, 0x00b10d21 },
-   { 0x00800040, 0x24604529, 0x00b10460, 0x00b10d41 },
-   { 0x00800040, 0x24804529, 0x00b10480, 0x00b10d61 },
-   { 0x00800040, 0x24a04529, 0x00b104a0, 0x00b10d81 },
-   { 0x00800040, 0x24c04529, 0x00b104c0, 0x00b10da1 },
-   { 0x00800040, 0x24e04529, 0x00b104e0, 0x00b10dc1 },
-   { 0x00800040, 0x25004529, 0x00b10500, 0x00b10de1 },
-   { 0x00800040, 0x25204529, 0x00b10520, 0x00b10e01 },
-   { 0x00800040, 0x25404529, 0x00b10540, 0x00b10e21 },
-   { 0x00800040, 0x25604529, 0x00b10560, 0x00b10f01 },
-   { 0x80800008, 0x23802d29, 0x00b10380, 0x00020002 },
-   { 0x80800008, 0x23a02d29, 0x00b103a0, 0x00020002 },
-   { 0x80800008, 0x23c02d29, 0x00b103c0, 0x00020002 },
-   { 0x80800008, 0x23e02d29, 0x00b103e0, 0x00020002 },
-   { 0x80800008, 0x24002d29, 0x00b10400, 0x00020002 },
-   { 0x80800008, 0x24202d29, 0x00b10420, 0x00020002 },
-   { 0x80800008, 0x24402d29, 0x00b10440, 0x00020002 },
-   { 0x80800008, 0x24602d29, 0x00b10460, 0x00020002 },
-   { 0x80800008, 0x24802d29, 0x00b10480, 0x00020002 },
-   { 0x80800008, 0x24a02d29, 0x00b104a0, 0x00020002 },
-   { 0x80800008, 0x24c02d29, 0x00b104c0, 0x00020002 },
-   { 0x80800008, 0x24e02d29, 0x00b104e0, 0x00020002 },
-   { 0x80800008, 0x25002d29, 0x00b10500, 0x00020002 },
-   { 0x80800008, 0x25202d29, 0x00b10520, 0x00020002 },
-   { 0x80800008, 0x25402d29, 0x00b10540, 0x00020002 },
-   { 0x80800008, 0x25602d29, 0x00b10560, 0x00020002 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000043 },
-   { 0x00000001, 0x20480061, 0x00000000, 0x0007001f },
-   { 0x00800031, 0x2c401d29, 0x008d0040, 0x0418a007 },
-   { 0x00000040, 0x20440c21, 0x00210044, 0x00000008 },
-   { 0x00800031, 0x2d401d29, 0x008d0040, 0x0418a007 },
-   { 0x80800042, 0x23804629, 0x00b10c40, 0x00b10c41 },
-   { 0x80800042, 0x23a04629, 0x00b10c60, 0x00b10c61 },
-   { 0x80800042, 0x23c04629, 0x00b10c80, 0x00b10c81 },
-   { 0x80800042, 0x23e04629, 0x00b10ca0, 0x00b10ca1 },
-   { 0x80800042, 0x24004629, 0x00b10cc0, 0x00b10cc1 },
-   { 0x80800042, 0x24204629, 0x00b10ce0, 0x00b10ce1 },
-   { 0x80800042, 0x24404629, 0x00b10d00, 0x00b10d01 },
-   { 0x80800042, 0x24604629, 0x00b10d20, 0x00b10d21 },
-   { 0x80800042, 0x24804629, 0x00b10d40, 0x00b10d41 },
-   { 0x80800042, 0x24a04629, 0x00b10d60, 0x00b10d61 },
-   { 0x80800042, 0x24c04629, 0x00b10d80, 0x00b10d81 },
-   { 0x80800042, 0x24e04629, 0x00b10da0, 0x00b10da1 },
-   { 0x80800042, 0x25004629, 0x00b10dc0, 0x00b10dc1 },
-   { 0x80800042, 0x25204629, 0x00b10de0, 0x00b10de1 },
-   { 0x80800042, 0x25404629, 0x00b10e00, 0x00b10e01 },
-   { 0x80800042, 0x25604629, 0x00b10e20, 0x00b10e21 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x0000002e },
-   { 0x01000005, 0x20000d3c, 0x00210e74, 0x00000001 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000018 },
-   { 0x00000001, 0x20480061, 0x00000000, 0x0007001f },
-   { 0x00800031, 0x2c401d29, 0x008d0040, 0x0418a007 },
-   { 0x00000040, 0x20440c21, 0x00210044, 0x00000008 },
-   { 0x00800031, 0x2d401d29, 0x008d0040, 0x0418a007 },
-   { 0x00000040, 0x20440c21, 0x00210044, 0x00000008 },
-   { 0x00000001, 0x20480061, 0x00000000, 0x0000001f },
-   { 0x00800031, 0x2f001d29, 0x008d0040, 0x0411a007 },
-   { 0x80800042, 0x23804629, 0x00b10c40, 0x00b10c60 },
-   { 0x80800042, 0x23a04629, 0x00b10c60, 0x00b10c80 },
-   { 0x80800042, 0x23c04629, 0x00b10c80, 0x00b10ca0 },
-   { 0x80800042, 0x23e04629, 0x00b10ca0, 0x00b10cc0 },
-   { 0x80800042, 0x24004629, 0x00b10cc0, 0x00b10ce0 },
-   { 0x80800042, 0x24204629, 0x00b10ce0, 0x00b10d00 },
-   { 0x80800042, 0x24404629, 0x00b10d00, 0x00b10d20 },
-   { 0x80800042, 0x24604629, 0x00b10d20, 0x00b10d40 },
-   { 0x80800042, 0x24804629, 0x00b10d40, 0x00b10d60 },
-   { 0x80800042, 0x24a04629, 0x00b10d60, 0x00b10d80 },
-   { 0x80800042, 0x24c04629, 0x00b10d80, 0x00b10da0 },
-   { 0x80800042, 0x24e04629, 0x00b10da0, 0x00b10dc0 },
-   { 0x80800042, 0x25004629, 0x00b10dc0, 0x00b10de0 },
-   { 0x80800042, 0x25204629, 0x00b10de0, 0x00b10e00 },
-   { 0x80800042, 0x25404629, 0x00b10e00, 0x00b10e20 },
-   { 0x80800042, 0x25604629, 0x00b10e20, 0x00b10f00 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000014 },
-   { 0x00000001, 0x20480061, 0x00000000, 0x0007001f },
-   { 0x00800031, 0x2c401d29, 0x008d0040, 0x0418a007 },
-   { 0x00000040, 0x20440c21, 0x00210044, 0x00000008 },
-   { 0x00800031, 0x2d401d29, 0x008d0040, 0x0418a007 },
-   { 0x00800001, 0x23800229, 0x00b10c40, 0x00000000 },
-   { 0x00800001, 0x23a00229, 0x00b10c60, 0x00000000 },
-   { 0x00800001, 0x23c00229, 0x00b10c80, 0x00000000 },
-   { 0x00800001, 0x23e00229, 0x00b10ca0, 0x00000000 },
-   { 0x00800001, 0x24000229, 0x00b10cc0, 0x00000000 },
-   { 0x00800001, 0x24200229, 0x00b10ce0, 0x00000000 },
-   { 0x00800001, 0x24400229, 0x00b10d00, 0x00000000 },
-   { 0x00800001, 0x24600229, 0x00b10d20, 0x00000000 },
-   { 0x00800001, 0x24800229, 0x00b10d40, 0x00000000 },
-   { 0x00800001, 0x24a00229, 0x00b10d60, 0x00000000 },
-   { 0x00800001, 0x24c00229, 0x00b10d80, 0x00000000 },
-   { 0x00800001, 0x24e00229, 0x00b10da0, 0x00000000 },
-   { 0x00800001, 0x25000229, 0x00b10dc0, 0x00000000 },
-   { 0x00800001, 0x25200229, 0x00b10de0, 0x00000000 },
-   { 0x00800001, 0x25400229, 0x00b10e00, 0x00000000 },
-   { 0x00800001, 0x25600229, 0x00b10e20, 0x00000000 },
-   { 0x80800042, 0x23802529, 0x00b10380, 0x00b10680 },
-   { 0x80800042, 0x23a02529, 0x00b103a0, 0x00b106a0 },
-   { 0x80800042, 0x23c02529, 0x00b103c0, 0x00b106c0 },
-   { 0x80800042, 0x23e02529, 0x00b103e0, 0x00b106e0 },
-   { 0x80800042, 0x24002529, 0x00b10400, 0x00b10700 },
-   { 0x80800042, 0x24202529, 0x00b10420, 0x00b10720 },
-   { 0x80800042, 0x24402529, 0x00b10440, 0x00b10740 },
-   { 0x80800042, 0x24602529, 0x00b10460, 0x00b10760 },
-   { 0x80800042, 0x24802529, 0x00b10480, 0x00b10780 },
-   { 0x80800042, 0x24a02529, 0x00b104a0, 0x00b107a0 },
-   { 0x80800042, 0x24c02529, 0x00b104c0, 0x00b107c0 },
-   { 0x80800042, 0x24e02529, 0x00b104e0, 0x00b107e0 },
-   { 0x80800042, 0x25002529, 0x00b10500, 0x00b10800 },
-   { 0x80800042, 0x25202529, 0x00b10520, 0x00b10820 },
-   { 0x80800042, 0x25402529, 0x00b10540, 0x00b10840 },
-   { 0x80800042, 0x25602529, 0x00b10560, 0x00b10860 },
-   { 0x00200008, 0x20200c21, 0x00450e60, 0x00000001 },
-   { 0x0020000c, 0x2e6e3dad, 0x00450e6e, 0x00010001 },
-   { 0x0020000c, 0x202e3dad, 0x00450e6e, 0x00010001 },
-   { 0x00200040, 0x20403421, 0x00450020, 0x0045002e },
-   { 0x00000001, 0x20480061, 0x00000000, 0x0007000f },
-   { 0x00800031, 0x2ac01d29, 0x008d0040, 0x0414a005 },
-   { 0x00800031, 0x2b401d29, 0x008d0040, 0x0414a006 },
-   { 0x00800001, 0x25800229, 0x00ad0ac0, 0x00000000 },
-   { 0x00800001, 0x25a00229, 0x00ad0ae0, 0x00000000 },
-   { 0x00800001, 0x25c00229, 0x00ad0b00, 0x00000000 },
-   { 0x00800001, 0x25e00229, 0x00ad0b20, 0x00000000 },
-   { 0x00800001, 0x26000229, 0x00ad0b40, 0x00000000 },
-   { 0x00800001, 0x26200229, 0x00ad0b60, 0x00000000 },
-   { 0x00800001, 0x26400229, 0x00ad0b80, 0x00000000 },
-   { 0x00800001, 0x26600229, 0x00ad0ba0, 0x00000000 },
-   { 0x00800001, 0x2f400231, 0x00b20580, 0x00000000 },
-   { 0x00800001, 0x2f500231, 0x00b205a0, 0x00000000 },
-   { 0x00800001, 0x2f600231, 0x00b205c0, 0x00000000 },
-   { 0x00800001, 0x2f700231, 0x00b205e0, 0x00000000 },
-   { 0x00800001, 0x2f800231, 0x00b20600, 0x00000000 },
-   { 0x00800001, 0x2f900231, 0x00b20620, 0x00000000 },
-   { 0x00800001, 0x2fa00231, 0x00b20640, 0x00000000 },
-   { 0x00800001, 0x2fb00231, 0x00b20660, 0x00000000 },
-   { 0x0020000c, 0x2e723dad, 0x00450e72, 0x00010001 },
-   { 0x0020000c, 0x202e3dad, 0x00450e72, 0x00010001 },
-   { 0x00200040, 0x20403421, 0x00450020, 0x0045002e },
-   { 0x00000001, 0x20480061, 0x00000000, 0x0007000f },
-   { 0x00800031, 0x2ac01d29, 0x008d0040, 0x0414a008 },
-   { 0x00800031, 0x2b401d29, 0x008d0040, 0x0414a009 },
-   { 0x00800001, 0x25800229, 0x00ad0ac0, 0x00000000 },
-   { 0x00800001, 0x25a00229, 0x00ad0ae0, 0x00000000 },
-   { 0x00800001, 0x25c00229, 0x00ad0b00, 0x00000000 },
-   { 0x00800001, 0x25e00229, 0x00ad0b20, 0x00000000 },
-   { 0x00800001, 0x26000229, 0x00ad0b40, 0x00000000 },
-   { 0x00800001, 0x26200229, 0x00ad0b60, 0x00000000 },
-   { 0x00800001, 0x26400229, 0x00ad0b80, 0x00000000 },
-   { 0x00800001, 0x26600229, 0x00ad0ba0, 0x00000000 },
-   { 0x80800042, 0x25804529, 0x00b10580, 0x00b10f40 },
-   { 0x80800042, 0x25a04529, 0x00b105a0, 0x00b10f50 },
-   { 0x80800042, 0x25c04529, 0x00b105c0, 0x00b10f60 },
-   { 0x80800042, 0x25e04529, 0x00b105e0, 0x00b10f70 },
-   { 0x80800042, 0x26004529, 0x00b10600, 0x00b10f80 },
-   { 0x80800042, 0x26204529, 0x00b10620, 0x00b10f90 },
-   { 0x80800042, 0x26404529, 0x00b10640, 0x00b10fa0 },
-   { 0x80800042, 0x26604529, 0x00b10660, 0x00b10fb0 },
-   { 0x00600001, 0x20200021, 0x008d0980, 0x00000000 },
-   { 0x00800001, 0x458101f1, 0x00000000, 0x00000000 },
-   { 0x00800001, 0x45a101f1, 0x00000000, 0x00000000 },
-   { 0x00800001, 0x45c101f1, 0x00000000, 0x00000000 },
-   { 0x00800001, 0x45e101f1, 0x00000000, 0x00000000 },
-   { 0x00800001, 0x460101f1, 0x00000000, 0x00000000 },
-   { 0x00800001, 0x462101f1, 0x00000000, 0x00000000 },
-   { 0x00800001, 0x464101f1, 0x00000000, 0x00000000 },
-   { 0x00800001, 0x466101f1, 0x00000000, 0x00000000 },
-   { 0x02000005, 0x20002e3c, 0x0021003e, 0x00010001 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000011 },
-   { 0x00800040, 0x238045ad, 0x00b10060, 0x00b20380 },
-   { 0x00800040, 0x23a045ad, 0x00b10080, 0x00b203a0 },
-   { 0x00800040, 0x23c045ad, 0x00b100a0, 0x00b203c0 },
-   { 0x00800040, 0x23e045ad, 0x00b100c0, 0x00b203e0 },
-   { 0x00800040, 0x240045ad, 0x00b100e0, 0x00b20400 },
-   { 0x00800040, 0x242045ad, 0x00b10100, 0x00b20420 },
-   { 0x00800040, 0x244045ad, 0x00b10120, 0x00b20440 },
-   { 0x00800040, 0x246045ad, 0x00b10140, 0x00b20460 },
-   { 0x00800040, 0x248045ad, 0x00b10160, 0x00b20480 },
-   { 0x00800040, 0x24a045ad, 0x00b10180, 0x00b204a0 },
-   { 0x00800040, 0x24c045ad, 0x00b101a0, 0x00b204c0 },
-   { 0x00800040, 0x24e045ad, 0x00b101c0, 0x00b204e0 },
-   { 0x00800040, 0x250045ad, 0x00b101e0, 0x00b20500 },
-   { 0x00800040, 0x252045ad, 0x00b10200, 0x00b20520 },
-   { 0x00800040, 0x254045ad, 0x00b10220, 0x00b20540 },
-   { 0x00800040, 0x256045ad, 0x00b10240, 0x00b20560 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000010 },
-   { 0x00800040, 0x238045ad, 0x00b10060, 0x00b20380 },
-   { 0x00800040, 0x23a045ad, 0x00b10160, 0x00b203a0 },
-   { 0x00800040, 0x23c045ad, 0x00b10080, 0x00b203c0 },
-   { 0x00800040, 0x23e045ad, 0x00b10180, 0x00b203e0 },
-   { 0x00800040, 0x240045ad, 0x00b100a0, 0x00b20400 },
-   { 0x00800040, 0x242045ad, 0x00b101a0, 0x00b20420 },
-   { 0x00800040, 0x244045ad, 0x00b100c0, 0x00b20440 },
-   { 0x00800040, 0x246045ad, 0x00b101c0, 0x00b20460 },
-   { 0x00800040, 0x248045ad, 0x00b100e0, 0x00b20480 },
-   { 0x00800040, 0x24a045ad, 0x00b101e0, 0x00b204a0 },
-   { 0x00800040, 0x24c045ad, 0x00b10100, 0x00b204c0 },
-   { 0x00800040, 0x24e045ad, 0x00b10200, 0x00b204e0 },
-   { 0x00800040, 0x250045ad, 0x00b10120, 0x00b20500 },
-   { 0x00800040, 0x252045ad, 0x00b10220, 0x00b20520 },
-   { 0x00800040, 0x254045ad, 0x00b10140, 0x00b20540 },
-   { 0x00800040, 0x256045ad, 0x00b10240, 0x00b20560 },
-   { 0x00000001, 0x20280061, 0x00000000, 0x000f000f },
-   { 0x80800001, 0x438001b1, 0x00b10380, 0x00000000 },
-   { 0x80800001, 0x43a001b1, 0x00b103a0, 0x00000000 },
-   { 0x80800001, 0x43c001b1, 0x00b103c0, 0x00000000 },
-   { 0x80800001, 0x43e001b1, 0x00b103e0, 0x00000000 },
-   { 0x80800001, 0x440001b1, 0x00b10400, 0x00000000 },
-   { 0x80800001, 0x442001b1, 0x00b10420, 0x00000000 },
-   { 0x80800001, 0x444001b1, 0x00b10440, 0x00000000 },
-   { 0x80800001, 0x446001b1, 0x00b10460, 0x00000000 },
-   { 0x80800001, 0x448001b1, 0x00b10480, 0x00000000 },
-   { 0x80800001, 0x44a001b1, 0x00b104a0, 0x00000000 },
-   { 0x80800001, 0x44c001b1, 0x00b104c0, 0x00000000 },
-   { 0x80800001, 0x44e001b1, 0x00b104e0, 0x00000000 },
-   { 0x80800001, 0x450001b1, 0x00b10500, 0x00000000 },
-   { 0x80800001, 0x452001b1, 0x00b10520, 0x00000000 },
-   { 0x80800001, 0x454001b1, 0x00b10540, 0x00000000 },
-   { 0x80800001, 0x456001b1, 0x00b10560, 0x00000000 },
-   { 0x00800001, 0x20200232, 0x00b20380, 0x00000000 },
-   { 0x00800001, 0x20300232, 0x00b203a0, 0x00000000 },
-   { 0x00800001, 0x20400232, 0x00b203c0, 0x00000000 },
-   { 0x00800001, 0x20500232, 0x00b203e0, 0x00000000 },
-   { 0x00800001, 0x20600232, 0x00b20400, 0x00000000 },
-   { 0x00800001, 0x20700232, 0x00b20420, 0x00000000 },
-   { 0x00800001, 0x20800232, 0x00b20440, 0x00000000 },
-   { 0x00800001, 0x20900232, 0x00b20460, 0x00000000 },
-   { 0x00800001, 0x20a00232, 0x00b20480, 0x00000000 },
-   { 0x00800001, 0x20b00232, 0x00b204a0, 0x00000000 },
-   { 0x00800001, 0x20c00232, 0x00b204c0, 0x00000000 },
-   { 0x00800001, 0x20d00232, 0x00b204e0, 0x00000000 },
-   { 0x00800001, 0x20e00232, 0x00b20500, 0x00000000 },
-   { 0x00800001, 0x20f00232, 0x00b20520, 0x00000000 },
-   { 0x00800001, 0x21000232, 0x00b20540, 0x00000000 },
-   { 0x00800001, 0x21100232, 0x00b20560, 0x00000000 },
-   { 0x00800031, 0x24001d28, 0x008d0020, 0x05902000 },
-   { 0x00000001, 0x20280061, 0x00000000, 0x00070007 },
-   { 0x00200008, 0x20201c21, 0x00450020, 0x00000001 },
-   { 0x00800040, 0x258025a9, 0x00b10260, 0x00b10580 },
-   { 0x00800040, 0x25a025a9, 0x00b10280, 0x00b105a0 },
-   { 0x00800040, 0x25c025a9, 0x00b102a0, 0x00b105c0 },
-   { 0x00800040, 0x25e025a9, 0x00b102c0, 0x00b105e0 },
-   { 0x80800001, 0x45800131, 0x00b10580, 0x00000000 },
-   { 0x80800001, 0x45a00131, 0x00b105a0, 0x00000000 },
-   { 0x80800001, 0x45c00131, 0x00b105c0, 0x00000000 },
-   { 0x80800001, 0x45e00131, 0x00b105e0, 0x00000000 },
-   { 0x00800001, 0x20200232, 0x00b20580, 0x00000000 },
-   { 0x00800001, 0x20300232, 0x00b205a0, 0x00000000 },
-   { 0x00800001, 0x20400232, 0x00b205c0, 0x00000000 },
-   { 0x00800001, 0x20500232, 0x00b205e0, 0x00000000 },
-   { 0x00800031, 0x24001d28, 0x008d0020, 0x05302001 },
-   { 0x00800040, 0x260025a9, 0x00b102e0, 0x00b10600 },
-   { 0x00800040, 0x262025a9, 0x00b10300, 0x00b10620 },
-   { 0x00800040, 0x264025a9, 0x00b10320, 0x00b10640 },
-   { 0x00800040, 0x266025a9, 0x00b10340, 0x00b10660 },
-   { 0x80800001, 0x46000131, 0x00b10600, 0x00000000 },
-   { 0x80800001, 0x46200131, 0x00b10620, 0x00000000 },
-   { 0x80800001, 0x46400131, 0x00b10640, 0x00000000 },
-   { 0x80800001, 0x46600131, 0x00b10660, 0x00000000 },
-   { 0x00800001, 0x20200232, 0x00b20600, 0x00000000 },
-   { 0x00800001, 0x20300232, 0x00b20620, 0x00000000 },
-   { 0x00800001, 0x20400232, 0x00b20640, 0x00000000 },
-   { 0x00800001, 0x20500232, 0x00b20660, 0x00000000 },
-   { 0x00800031, 0x24001d28, 0x008d0020, 0x05302002 },
-   { 0x00800031, 0x24001d28, 0x008d0000, 0x87100000 },
-   { 0x00800031, 0x24001d28, 0x008d0000, 0x87100000 },
diff --git a/src/xvmc/frame_forward.g4a b/src/xvmc/frame_forward.g4a
deleted file mode 100644
index 925d568..0000000
--- a/src/xvmc/frame_forward.g4a
+++ /dev/null
@@ -1,65 +0,0 @@
-/*
- * Copyright © 2008 Intel Corporation
- *
- * Permission is hereby granted, free of charge, to any person obtaining a
- * copy of this software and associated documentation files (the "Software"),
- * to deal in the Software without restriction, including without limitation
- * the rights to use, copy, modify, merge, publish, distribute, sublicense,
- * and/or sell copies of the Software, and to permit persons to whom the
- * Software is furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice (including the next
- * paragraph) shall be included in all copies or substantial portions of the
- * Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
- * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
- * SOFTWARE.
- *
- * Author:
- *    Zou Nan hai <nanhai.zou at intel.com>
- *    Zhang Hua jun <huajun.zhang at intel.com>
- *    Xing Dong sheng <dongsheng.xing at intel.com>
- *
- */
-
-/* shader for backward predict mc
-*/
-
-/* save payload */
-mov (8) g76.0<1>UD g1.0<8,8,1>UD {align1};
-//mov (8) g77.0<1>UD g2.0<8,8,1>UD {align1};
-
-include(`block_clear.g4i')
-
-mov (8) g115.0<1>UD g1.0<8,8,1>UD {align1}; 
-mov (1) g1.8<1>UD 0x0070007UD {align1};  
-define(`input_surface',	`4')
-define(`mv1',	`g115.14')
-define(`mv2',	`g115.16')
-/* Y */
-/* (x', y') = (x, y) + (motion_vector.x >> 1, motion_vector.y >> 1) */
-asr (2) g1.14<1>W g115.14<2,2,1>W 1W {align1};
-add (2) g2.0<1>UD g115.0<2,2,1>UD g1.14<2,2,1>W {align1};
-include(`motion_frame_y.g4i')
-/* motion_vector = motion_vector >> 1 */
-/* (x', y') = (x, y) + (motion_vector.x >> 1, motion_vector.y >> 1) */
-/* U */
-shr (2) g1.0<1>UD g115.0<2,2,1>UD 1UD {align1};
-asr (2) g115.14<1>W g115.14<2,2,1>W 1W {align1};
-asr (2) g1.14<1>W g115.14<2,2,1>W 1W {align1};
-add (2) g2.0<1>UD g1.0<2,2,1>UD g1.14<2,2,1>W {align1};
-define(`input_surface1',	`5')
-define(`input_surface2',	`6')
-mov (1) g2.8<1>UD 0x007000fUD  {align1};
-include(`motion_frame_uv.g4i')
-/* V */
-/* (x', y') = (x, y) + (motion_vector.x >> 1, motion_vector.y >> 1) */
-include(`addidct.g4i')
-
-send (16) 0 acc0<1>UW g0<8,8,1>UW 
-	thread_spawner(0, 0, 0) mlen 1 rlen 0 { align1 EOT};
diff --git a/src/xvmc/frame_forward.g4b b/src/xvmc/frame_forward.g4b
deleted file mode 100644
index efbd20c..0000000
--- a/src/xvmc/frame_forward.g4b
+++ /dev/null
@@ -1,715 +0,0 @@
-   { 0x00600001, 0x29800021, 0x008d0020, 0x00000000 },
-   { 0x02000005, 0x20000c3c, 0x00210040, 0x00000001 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000030 },
-   { 0x00000040, 0x20480c21, 0x00210988, 0x00000000 },
-   { 0x00800031, 0x20601c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x20801c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x20a01c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x20c01c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x20e01c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x21001c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x21201c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x21401c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x21601c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x21801c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x21a01c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x21c01c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x21e01c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x22001c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x22201c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x22401c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x22601c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x22801c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x22a01c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x22c01c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x22e01c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x23001c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x23201c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x23401c21, 0x00b10040, 0x04110203 },
-   { 0x02000005, 0x20002d3c, 0x0021098c, 0x00200020 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000008 },
-   { 0x00600001, 0x20600169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x20800169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x20a00169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x20c00169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x20e00169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x21000169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x21200169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x21400169, 0x00000000, 0x00000000 },
-   { 0x02000005, 0x20002d3c, 0x0021002c, 0x00100010 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000008 },
-   { 0x00600001, 0x20700169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x20900169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x20b00169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x20d00169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x20f00169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x21100169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x21300169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x21500169, 0x00000000, 0x00000000 },
-   { 0x02000005, 0x20002d3c, 0x0021002c, 0x00080008 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000008 },
-   { 0x00600001, 0x21600169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x21800169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x21a00169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x21c00169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x21e00169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x22000169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x22200169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x22400169, 0x00000000, 0x00000000 },
-   { 0x02000005, 0x20002d3c, 0x0021002c, 0x00040004 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000008 },
-   { 0x00600001, 0x21700169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x21900169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x21b00169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x21d00169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x21f00169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x22100169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x22300169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x22500169, 0x00000000, 0x00000000 },
-   { 0x02000005, 0x20002d3c, 0x0021002c, 0x00020002 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000004 },
-   { 0x00800001, 0x22600169, 0x00000000, 0x00000000 },
-   { 0x00800001, 0x22800169, 0x00000000, 0x00000000 },
-   { 0x00800001, 0x22a00169, 0x00000000, 0x00000000 },
-   { 0x00800001, 0x22c00169, 0x00000000, 0x00000000 },
-   { 0x02000005, 0x20002d3c, 0x0021002c, 0x00010001 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000004 },
-   { 0x00800001, 0x22e00169, 0x00000000, 0x00000000 },
-   { 0x00800001, 0x23000169, 0x00000000, 0x00000000 },
-   { 0x00800001, 0x23200169, 0x00000000, 0x00000000 },
-   { 0x00800001, 0x23400169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x2e600021, 0x008d0020, 0x00000000 },
-   { 0x00000001, 0x20280061, 0x00000000, 0x00070007 },
-   { 0x0020000c, 0x202e3dad, 0x00450e6e, 0x00010001 },
-   { 0x00200040, 0x20403421, 0x00450e60, 0x0045002e },
-   { 0x01000005, 0x20000d3c, 0x00210e6e, 0x00000001 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x0000012b },
-   { 0x01000005, 0x20000d3c, 0x00210e70, 0x00000001 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x000000de },
-   { 0x00000001, 0x20480061, 0x00000000, 0x0007001f },
-   { 0x00800031, 0x2c401d29, 0x008d0040, 0x0418a004 },
-   { 0x00000005, 0x20580c21, 0x00210040, 0x00000003 },
-   { 0x00000041, 0x20580c21, 0x00210058, 0x00000031 },
-   { 0x00000040, 0x20440c21, 0x00210044, 0x00000008 },
-   { 0x00800031, 0x2d401d29, 0x008d0040, 0x0418a004 },
-   { 0x00000040, 0x20440c21, 0x00210044, 0x00000008 },
-   { 0x00000001, 0x20480061, 0x00000000, 0x0000001f },
-   { 0x00800031, 0x2f001d29, 0x008d0040, 0x0411a004 },
-   { 0x00000020, 0x34001400, 0x00001400, 0x00210058 },
-   { 0x00800040, 0x23804629, 0x00b10c40, 0x00b10c41 },
-   { 0x00800040, 0x23a04629, 0x00b10c60, 0x00b10c61 },
-   { 0x00800040, 0x23c04629, 0x00b10c80, 0x00b10c81 },
-   { 0x00800040, 0x23e04629, 0x00b10ca0, 0x00b10ca1 },
-   { 0x00800040, 0x24004629, 0x00b10cc0, 0x00b10cc1 },
-   { 0x00800040, 0x24204629, 0x00b10ce0, 0x00b10ce1 },
-   { 0x00800040, 0x24404629, 0x00b10d00, 0x00b10d01 },
-   { 0x00800040, 0x24604629, 0x00b10d20, 0x00b10d21 },
-   { 0x00800040, 0x24804629, 0x00b10d40, 0x00b10d41 },
-   { 0x00800040, 0x24a04629, 0x00b10d60, 0x00b10d61 },
-   { 0x00800040, 0x24c04629, 0x00b10d80, 0x00b10d81 },
-   { 0x00800040, 0x24e04629, 0x00b10da0, 0x00b10da1 },
-   { 0x00800040, 0x25004629, 0x00b10dc0, 0x00b10dc1 },
-   { 0x00800040, 0x25204629, 0x00b10de0, 0x00b10de1 },
-   { 0x00800040, 0x25404629, 0x00b10e00, 0x00b10e01 },
-   { 0x00800040, 0x25604629, 0x00b10e20, 0x00b10e21 },
-   { 0x00800040, 0x23804529, 0x00b10380, 0x00b10c60 },
-   { 0x00800040, 0x23a04529, 0x00b103a0, 0x00b10c80 },
-   { 0x00800040, 0x23c04529, 0x00b103c0, 0x00b10ca0 },
-   { 0x00800040, 0x23e04529, 0x00b103e0, 0x00b10cc0 },
-   { 0x00800040, 0x24004529, 0x00b10400, 0x00b10ce0 },
-   { 0x00800040, 0x24204529, 0x00b10420, 0x00b10d00 },
-   { 0x00800040, 0x24404529, 0x00b10440, 0x00b10d20 },
-   { 0x00800040, 0x24604529, 0x00b10460, 0x00b10d40 },
-   { 0x00800040, 0x24804529, 0x00b10480, 0x00b10d60 },
-   { 0x00800040, 0x24a04529, 0x00b104a0, 0x00b10d80 },
-   { 0x00800040, 0x24c04529, 0x00b104c0, 0x00b10da0 },
-   { 0x00800040, 0x24e04529, 0x00b104e0, 0x00b10dc0 },
-   { 0x00800040, 0x25004529, 0x00b10500, 0x00b10de0 },
-   { 0x00800040, 0x25204529, 0x00b10520, 0x00b10e00 },
-   { 0x00800040, 0x25404529, 0x00b10540, 0x00b10e20 },
-   { 0x00800040, 0x25604529, 0x00b10560, 0x00b10f00 },
-   { 0x00800040, 0x23804529, 0x00b10380, 0x00b10c61 },
-   { 0x00800040, 0x23a04529, 0x00b103a0, 0x00b10c81 },
-   { 0x00800040, 0x23c04529, 0x00b103c0, 0x00b10ca1 },
-   { 0x00800040, 0x23e04529, 0x00b103e0, 0x00b10cc1 },
-   { 0x00800040, 0x24004529, 0x00b10400, 0x00b10ce1 },
-   { 0x00800040, 0x24204529, 0x00b10420, 0x00b10d01 },
-   { 0x00800040, 0x24404529, 0x00b10440, 0x00b10d21 },
-   { 0x00800040, 0x24604529, 0x00b10460, 0x00b10d41 },
-   { 0x00800040, 0x24804529, 0x00b10480, 0x00b10d61 },
-   { 0x00800040, 0x24a04529, 0x00b104a0, 0x00b10d81 },
-   { 0x00800040, 0x24c04529, 0x00b104c0, 0x00b10da1 },
-   { 0x00800040, 0x24e04529, 0x00b104e0, 0x00b10dc1 },
-   { 0x00800040, 0x25004529, 0x00b10500, 0x00b10de1 },
-   { 0x00800040, 0x25204529, 0x00b10520, 0x00b10e01 },
-   { 0x00800040, 0x25404529, 0x00b10540, 0x00b10e21 },
-   { 0x00800040, 0x25604529, 0x00b10560, 0x00b10f01 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000092 },
-   { 0x00800040, 0x23804629, 0x00b10c41, 0x00b10c42 },
-   { 0x00800040, 0x23a04629, 0x00b10c61, 0x00b10c62 },
-   { 0x00800040, 0x23c04629, 0x00b10c81, 0x00b10c82 },
-   { 0x00800040, 0x23e04629, 0x00b10ca1, 0x00b10ca2 },
-   { 0x00800040, 0x24004629, 0x00b10cc1, 0x00b10cc2 },
-   { 0x00800040, 0x24204629, 0x00b10ce1, 0x00b10ce2 },
-   { 0x00800040, 0x24404629, 0x00b10d01, 0x00b10d02 },
-   { 0x00800040, 0x24604629, 0x00b10d21, 0x00b10d22 },
-   { 0x00800040, 0x24804629, 0x00b10d41, 0x00b10d42 },
-   { 0x00800040, 0x24a04629, 0x00b10d61, 0x00b10d62 },
-   { 0x00800040, 0x24c04629, 0x00b10d81, 0x00b10d82 },
-   { 0x00800040, 0x24e04629, 0x00b10da1, 0x00b10da2 },
-   { 0x00800040, 0x25004629, 0x00b10dc1, 0x00b10dc2 },
-   { 0x00800040, 0x25204629, 0x00b10de1, 0x00b10de2 },
-   { 0x00800040, 0x25404629, 0x00b10e01, 0x00b10e02 },
-   { 0x00800040, 0x25604629, 0x00b10e21, 0x00b10e22 },
-   { 0x00800040, 0x23804529, 0x00b10380, 0x00b10c61 },
-   { 0x00800040, 0x23a04529, 0x00b103a0, 0x00b10c81 },
-   { 0x00800040, 0x23c04529, 0x00b103c0, 0x00b10ca1 },
-   { 0x00800040, 0x23e04529, 0x00b103e0, 0x00b10cc1 },
-   { 0x00800040, 0x24004529, 0x00b10400, 0x00b10ce1 },
-   { 0x00800040, 0x24204529, 0x00b10420, 0x00b10d01 },
-   { 0x00800040, 0x24404529, 0x00b10440, 0x00b10d21 },
-   { 0x00800040, 0x24604529, 0x00b10460, 0x00b10d41 },
-   { 0x00800040, 0x24804529, 0x00b10480, 0x00b10d61 },
-   { 0x00800040, 0x24a04529, 0x00b104a0, 0x00b10d81 },
-   { 0x00800040, 0x24c04529, 0x00b104c0, 0x00b10da1 },
-   { 0x00800040, 0x24e04529, 0x00b104e0, 0x00b10dc1 },
-   { 0x00800040, 0x25004529, 0x00b10500, 0x00b10de1 },
-   { 0x00800040, 0x25204529, 0x00b10520, 0x00b10e01 },
-   { 0x00800040, 0x25404529, 0x00b10540, 0x00b10e21 },
-   { 0x00800040, 0x25604529, 0x00b10560, 0x00b10f01 },
-   { 0x00800040, 0x23804529, 0x00b10380, 0x00b10c62 },
-   { 0x00800040, 0x23a04529, 0x00b103a0, 0x00b10c82 },
-   { 0x00800040, 0x23c04529, 0x00b103c0, 0x00b10ca2 },
-   { 0x00800040, 0x23e04529, 0x00b103e0, 0x00b10cc2 },
-   { 0x00800040, 0x24004529, 0x00b10400, 0x00b10ce2 },
-   { 0x00800040, 0x24204529, 0x00b10420, 0x00b10d02 },
-   { 0x00800040, 0x24404529, 0x00b10440, 0x00b10d22 },
-   { 0x00800040, 0x24604529, 0x00b10460, 0x00b10d42 },
-   { 0x00800040, 0x24804529, 0x00b10480, 0x00b10d62 },
-   { 0x00800040, 0x24a04529, 0x00b104a0, 0x00b10d82 },
-   { 0x00800040, 0x24c04529, 0x00b104c0, 0x00b10da2 },
-   { 0x00800040, 0x24e04529, 0x00b104e0, 0x00b10dc2 },
-   { 0x00800040, 0x25004529, 0x00b10500, 0x00b10de2 },
-   { 0x00800040, 0x25204529, 0x00b10520, 0x00b10e02 },
-   { 0x00800040, 0x25404529, 0x00b10540, 0x00b10e22 },
-   { 0x00800040, 0x25604529, 0x00b10560, 0x00b10f02 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000061 },
-   { 0x00800040, 0x23804629, 0x00b10c42, 0x00b10c43 },
-   { 0x00800040, 0x23a04629, 0x00b10c62, 0x00b10c63 },
-   { 0x00800040, 0x23c04629, 0x00b10c82, 0x00b10c83 },
-   { 0x00800040, 0x23e04629, 0x00b10ca2, 0x00b10ca3 },
-   { 0x00800040, 0x24004629, 0x00b10cc2, 0x00b10cc3 },
-   { 0x00800040, 0x24204629, 0x00b10ce2, 0x00b10ce3 },
-   { 0x00800040, 0x24404629, 0x00b10d02, 0x00b10d03 },
-   { 0x00800040, 0x24604629, 0x00b10d22, 0x00b10d23 },
-   { 0x00800040, 0x24804629, 0x00b10d42, 0x00b10d43 },
-   { 0x00800040, 0x24a04629, 0x00b10d62, 0x00b10d63 },
-   { 0x00800040, 0x24c04629, 0x00b10d82, 0x00b10d83 },
-   { 0x00800040, 0x24e04629, 0x00b10da2, 0x00b10da3 },
-   { 0x00800040, 0x25004629, 0x00b10dc2, 0x00b10dc3 },
-   { 0x00800040, 0x25204629, 0x00b10de2, 0x00b10de3 },
-   { 0x00800040, 0x25404629, 0x00b10e02, 0x00b10e03 },
-   { 0x00800040, 0x25604629, 0x00b10e22, 0x00b10e23 },
-   { 0x00800040, 0x23804529, 0x00b10380, 0x00b10c62 },
-   { 0x00800040, 0x23a04529, 0x00b103a0, 0x00b10c82 },
-   { 0x00800040, 0x23c04529, 0x00b103c0, 0x00b10ca2 },
-   { 0x00800040, 0x23e04529, 0x00b103e0, 0x00b10cc2 },
-   { 0x00800040, 0x24004529, 0x00b10400, 0x00b10ce2 },
-   { 0x00800040, 0x24204529, 0x00b10420, 0x00b10d02 },
-   { 0x00800040, 0x24404529, 0x00b10440, 0x00b10d22 },
-   { 0x00800040, 0x24604529, 0x00b10460, 0x00b10d42 },
-   { 0x00800040, 0x24804529, 0x00b10480, 0x00b10d62 },
-   { 0x00800040, 0x24a04529, 0x00b104a0, 0x00b10d82 },
-   { 0x00800040, 0x24c04529, 0x00b104c0, 0x00b10da2 },
-   { 0x00800040, 0x24e04529, 0x00b104e0, 0x00b10dc2 },
-   { 0x00800040, 0x25004529, 0x00b10500, 0x00b10de2 },
-   { 0x00800040, 0x25204529, 0x00b10520, 0x00b10e02 },
-   { 0x00800040, 0x25404529, 0x00b10540, 0x00b10e22 },
-   { 0x00800040, 0x25604529, 0x00b10560, 0x00b10f02 },
-   { 0x00800040, 0x23804529, 0x00b10380, 0x00b10c63 },
-   { 0x00800040, 0x23a04529, 0x00b103a0, 0x00b10c83 },
-   { 0x00800040, 0x23c04529, 0x00b103c0, 0x00b10ca3 },
-   { 0x00800040, 0x23e04529, 0x00b103e0, 0x00b10cc3 },
-   { 0x00800040, 0x24004529, 0x00b10400, 0x00b10ce3 },
-   { 0x00800040, 0x24204529, 0x00b10420, 0x00b10d03 },
-   { 0x00800040, 0x24404529, 0x00b10440, 0x00b10d23 },
-   { 0x00800040, 0x24604529, 0x00b10460, 0x00b10d43 },
-   { 0x00800040, 0x24804529, 0x00b10480, 0x00b10d63 },
-   { 0x00800040, 0x24a04529, 0x00b104a0, 0x00b10d83 },
-   { 0x00800040, 0x24c04529, 0x00b104c0, 0x00b10da3 },
-   { 0x00800040, 0x24e04529, 0x00b104e0, 0x00b10dc3 },
-   { 0x00800040, 0x25004529, 0x00b10500, 0x00b10de3 },
-   { 0x00800040, 0x25204529, 0x00b10520, 0x00b10e03 },
-   { 0x00800040, 0x25404529, 0x00b10540, 0x00b10e23 },
-   { 0x00800040, 0x25604529, 0x00b10560, 0x00b10f03 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000030 },
-   { 0x00800040, 0x23804629, 0x00b10c43, 0x00b10c44 },
-   { 0x00800040, 0x23a04629, 0x00b10c63, 0x00b10c64 },
-   { 0x00800040, 0x23c04629, 0x00b10c83, 0x00b10c84 },
-   { 0x00800040, 0x23e04629, 0x00b10ca3, 0x00b10ca4 },
-   { 0x00800040, 0x24004629, 0x00b10cc3, 0x00b10cc4 },
-   { 0x00800040, 0x24204629, 0x00b10ce3, 0x00b10ce4 },
-   { 0x00800040, 0x24404629, 0x00b10d03, 0x00b10d04 },
-   { 0x00800040, 0x24604629, 0x00b10d23, 0x00b10d24 },
-   { 0x00800040, 0x24804629, 0x00b10d43, 0x00b10d44 },
-   { 0x00800040, 0x24a04629, 0x00b10d63, 0x00b10d64 },
-   { 0x00800040, 0x24c04629, 0x00b10d83, 0x00b10d84 },
-   { 0x00800040, 0x24e04629, 0x00b10da3, 0x00b10da4 },
-   { 0x00800040, 0x25004629, 0x00b10dc3, 0x00b10dc4 },
-   { 0x00800040, 0x25204629, 0x00b10de3, 0x00b10de4 },
-   { 0x00800040, 0x25404629, 0x00b10e03, 0x00b10e04 },
-   { 0x00800040, 0x25604629, 0x00b10e23, 0x00b10e24 },
-   { 0x00800040, 0x23804529, 0x00b10380, 0x00b10c63 },
-   { 0x00800040, 0x23a04529, 0x00b103a0, 0x00b10c83 },
-   { 0x00800040, 0x23c04529, 0x00b103c0, 0x00b10ca3 },
-   { 0x00800040, 0x23e04529, 0x00b103e0, 0x00b10cc3 },
-   { 0x00800040, 0x24004529, 0x00b10400, 0x00b10ce3 },
-   { 0x00800040, 0x24204529, 0x00b10420, 0x00b10d03 },
-   { 0x00800040, 0x24404529, 0x00b10440, 0x00b10d23 },
-   { 0x00800040, 0x24604529, 0x00b10460, 0x00b10d43 },
-   { 0x00800040, 0x24804529, 0x00b10480, 0x00b10d63 },
-   { 0x00800040, 0x24a04529, 0x00b104a0, 0x00b10d83 },
-   { 0x00800040, 0x24c04529, 0x00b104c0, 0x00b10da3 },
-   { 0x00800040, 0x24e04529, 0x00b104e0, 0x00b10dc3 },
-   { 0x00800040, 0x25004529, 0x00b10500, 0x00b10de3 },
-   { 0x00800040, 0x25204529, 0x00b10520, 0x00b10e03 },
-   { 0x00800040, 0x25404529, 0x00b10540, 0x00b10e23 },
-   { 0x00800040, 0x25604529, 0x00b10560, 0x00b10f03 },
-   { 0x00800040, 0x23804529, 0x00b10380, 0x00b10c64 },
-   { 0x00800040, 0x23a04529, 0x00b103a0, 0x00b10c84 },
-   { 0x00800040, 0x23c04529, 0x00b103c0, 0x00b10ca4 },
-   { 0x00800040, 0x23e04529, 0x00b103e0, 0x00b10cc4 },
-   { 0x00800040, 0x24004529, 0x00b10400, 0x00b10ce4 },
-   { 0x00800040, 0x24204529, 0x00b10420, 0x00b10d04 },
-   { 0x00800040, 0x24404529, 0x00b10440, 0x00b10d24 },
-   { 0x00800040, 0x24604529, 0x00b10460, 0x00b10d44 },
-   { 0x00800040, 0x24804529, 0x00b10480, 0x00b10d64 },
-   { 0x00800040, 0x24a04529, 0x00b104a0, 0x00b10d84 },
-   { 0x00800040, 0x24c04529, 0x00b104c0, 0x00b10da4 },
-   { 0x00800040, 0x24e04529, 0x00b104e0, 0x00b10dc4 },
-   { 0x00800040, 0x25004529, 0x00b10500, 0x00b10de4 },
-   { 0x00800040, 0x25204529, 0x00b10520, 0x00b10e04 },
-   { 0x00800040, 0x25404529, 0x00b10540, 0x00b10e24 },
-   { 0x00800040, 0x25604529, 0x00b10560, 0x00b10f04 },
-   { 0x80800008, 0x23802d29, 0x00b10380, 0x00020002 },
-   { 0x80800008, 0x23a02d29, 0x00b103a0, 0x00020002 },
-   { 0x80800008, 0x23c02d29, 0x00b103c0, 0x00020002 },
-   { 0x80800008, 0x23e02d29, 0x00b103e0, 0x00020002 },
-   { 0x80800008, 0x24002d29, 0x00b10400, 0x00020002 },
-   { 0x80800008, 0x24202d29, 0x00b10420, 0x00020002 },
-   { 0x80800008, 0x24402d29, 0x00b10440, 0x00020002 },
-   { 0x80800008, 0x24602d29, 0x00b10460, 0x00020002 },
-   { 0x80800008, 0x24802d29, 0x00b10480, 0x00020002 },
-   { 0x80800008, 0x24a02d29, 0x00b104a0, 0x00020002 },
-   { 0x80800008, 0x24c02d29, 0x00b104c0, 0x00020002 },
-   { 0x80800008, 0x24e02d29, 0x00b104e0, 0x00020002 },
-   { 0x80800008, 0x25002d29, 0x00b10500, 0x00020002 },
-   { 0x80800008, 0x25202d29, 0x00b10520, 0x00020002 },
-   { 0x80800008, 0x25402d29, 0x00b10540, 0x00020002 },
-   { 0x80800008, 0x25602d29, 0x00b10560, 0x00020002 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x000000e5 },
-   { 0x00000001, 0x20480061, 0x00000000, 0x0007001f },
-   { 0x00800031, 0x2c401d29, 0x008d0040, 0x0418a004 },
-   { 0x00000005, 0x20580c21, 0x00210040, 0x00000003 },
-   { 0x00000041, 0x20581c21, 0x00210058, 0x00000011 },
-   { 0x00000040, 0x20440c21, 0x00210044, 0x00000008 },
-   { 0x00800031, 0x2d401d29, 0x008d0040, 0x0418a004 },
-   { 0x00000020, 0x34001400, 0x00001400, 0x00210058 },
-   { 0x80800042, 0x23804629, 0x00b10c40, 0x00b10c41 },
-   { 0x80800042, 0x23a04629, 0x00b10c60, 0x00b10c61 },
-   { 0x80800042, 0x23c04629, 0x00b10c80, 0x00b10c81 },
-   { 0x80800042, 0x23e04629, 0x00b10ca0, 0x00b10ca1 },
-   { 0x80800042, 0x24004629, 0x00b10cc0, 0x00b10cc1 },
-   { 0x80800042, 0x24204629, 0x00b10ce0, 0x00b10ce1 },
-   { 0x80800042, 0x24404629, 0x00b10d00, 0x00b10d01 },
-   { 0x80800042, 0x24604629, 0x00b10d20, 0x00b10d21 },
-   { 0x80800042, 0x24804629, 0x00b10d40, 0x00b10d41 },
-   { 0x80800042, 0x24a04629, 0x00b10d60, 0x00b10d61 },
-   { 0x80800042, 0x24c04629, 0x00b10d80, 0x00b10d81 },
-   { 0x80800042, 0x24e04629, 0x00b10da0, 0x00b10da1 },
-   { 0x80800042, 0x25004629, 0x00b10dc0, 0x00b10dc1 },
-   { 0x80800042, 0x25204629, 0x00b10de0, 0x00b10de1 },
-   { 0x80800042, 0x25404629, 0x00b10e00, 0x00b10e01 },
-   { 0x80800042, 0x25604629, 0x00b10e20, 0x00b10e21 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000032 },
-   { 0x80800042, 0x23804629, 0x00b10c41, 0x00b10c42 },
-   { 0x80800042, 0x23a04629, 0x00b10c61, 0x00b10c62 },
-   { 0x80800042, 0x23c04629, 0x00b10c81, 0x00b10c82 },
-   { 0x80800042, 0x23e04629, 0x00b10ca1, 0x00b10ca2 },
-   { 0x80800042, 0x24004629, 0x00b10cc1, 0x00b10cc2 },
-   { 0x80800042, 0x24204629, 0x00b10ce1, 0x00b10ce2 },
-   { 0x80800042, 0x24404629, 0x00b10d01, 0x00b10d02 },
-   { 0x80800042, 0x24604629, 0x00b10d21, 0x00b10d22 },
-   { 0x80800042, 0x24804629, 0x00b10d41, 0x00b10d42 },
-   { 0x80800042, 0x24a04629, 0x00b10d61, 0x00b10d62 },
-   { 0x80800042, 0x24c04629, 0x00b10d81, 0x00b10d82 },
-   { 0x80800042, 0x24e04629, 0x00b10da1, 0x00b10da2 },
-   { 0x80800042, 0x25004629, 0x00b10dc1, 0x00b10dc2 },
-   { 0x80800042, 0x25204629, 0x00b10de1, 0x00b10de2 },
-   { 0x80800042, 0x25404629, 0x00b10e01, 0x00b10e02 },
-   { 0x80800042, 0x25604629, 0x00b10e21, 0x00b10e22 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000021 },
-   { 0x80800042, 0x23804629, 0x00b10c42, 0x00b10c43 },
-   { 0x80800042, 0x23a04629, 0x00b10c62, 0x00b10c63 },
-   { 0x80800042, 0x23c04629, 0x00b10c82, 0x00b10c83 },
-   { 0x80800042, 0x23e04629, 0x00b10ca2, 0x00b10ca3 },
-   { 0x80800042, 0x24004629, 0x00b10cc2, 0x00b10cc3 },
-   { 0x80800042, 0x24204629, 0x00b10ce2, 0x00b10ce3 },
-   { 0x80800042, 0x24404629, 0x00b10d02, 0x00b10d03 },
-   { 0x80800042, 0x24604629, 0x00b10d22, 0x00b10d23 },
-   { 0x80800042, 0x24804629, 0x00b10d42, 0x00b10d43 },
-   { 0x80800042, 0x24a04629, 0x00b10d62, 0x00b10d63 },
-   { 0x80800042, 0x24c04629, 0x00b10d82, 0x00b10d83 },
-   { 0x80800042, 0x24e04629, 0x00b10da2, 0x00b10da3 },
-   { 0x80800042, 0x25004629, 0x00b10dc2, 0x00b10dc3 },
-   { 0x80800042, 0x25204629, 0x00b10de2, 0x00b10de3 },
-   { 0x80800042, 0x25404629, 0x00b10e02, 0x00b10e03 },
-   { 0x80800042, 0x25604629, 0x00b10e22, 0x00b10e23 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000010 },
-   { 0x80800042, 0x23804629, 0x00b10c43, 0x00b10c44 },
-   { 0x80800042, 0x23a04629, 0x00b10c63, 0x00b10c64 },
-   { 0x80800042, 0x23c04629, 0x00b10c83, 0x00b10c84 },
-   { 0x80800042, 0x23e04629, 0x00b10ca3, 0x00b10ca4 },
-   { 0x80800042, 0x24004629, 0x00b10cc3, 0x00b10cc4 },
-   { 0x80800042, 0x24204629, 0x00b10ce3, 0x00b10ce4 },
-   { 0x80800042, 0x24404629, 0x00b10d03, 0x00b10d04 },
-   { 0x80800042, 0x24604629, 0x00b10d23, 0x00b10d24 },
-   { 0x80800042, 0x24804629, 0x00b10d43, 0x00b10d44 },
-   { 0x80800042, 0x24a04629, 0x00b10d63, 0x00b10d64 },
-   { 0x80800042, 0x24c04629, 0x00b10d83, 0x00b10d84 },
-   { 0x80800042, 0x24e04629, 0x00b10da3, 0x00b10da4 },
-   { 0x80800042, 0x25004629, 0x00b10dc3, 0x00b10dc4 },
-   { 0x80800042, 0x25204629, 0x00b10de3, 0x00b10de4 },
-   { 0x80800042, 0x25404629, 0x00b10e03, 0x00b10e04 },
-   { 0x80800042, 0x25604629, 0x00b10e23, 0x00b10e24 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x0000009a },
-   { 0x01000005, 0x20000d3c, 0x00210e70, 0x00000001 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x0000004e },
-   { 0x00000001, 0x20480061, 0x00000000, 0x0007001f },
-   { 0x00800031, 0x2c401d29, 0x008d0040, 0x0418a004 },
-   { 0x00000005, 0x20580c21, 0x00210040, 0x00000003 },
-   { 0x00000041, 0x20580c21, 0x00210058, 0x00000011 },
-   { 0x00000040, 0x20440c21, 0x00210044, 0x00000008 },
-   { 0x00800031, 0x2d401d29, 0x008d0040, 0x0418a004 },
-   { 0x00000040, 0x20440c21, 0x00210044, 0x00000008 },
-   { 0x00000001, 0x20480061, 0x00000000, 0x0000001f },
-   { 0x00800031, 0x2f001d29, 0x008d0040, 0x0411a004 },
-   { 0x00000020, 0x34001400, 0x00001400, 0x00210058 },
-   { 0x80800042, 0x23804629, 0x00b10c40, 0x00b10c60 },
-   { 0x80800042, 0x23a04629, 0x00b10c60, 0x00b10c80 },
-   { 0x80800042, 0x23c04629, 0x00b10c80, 0x00b10ca0 },
-   { 0x80800042, 0x23e04629, 0x00b10ca0, 0x00b10cc0 },
-   { 0x80800042, 0x24004629, 0x00b10cc0, 0x00b10ce0 },
-   { 0x80800042, 0x24204629, 0x00b10ce0, 0x00b10d00 },
-   { 0x80800042, 0x24404629, 0x00b10d00, 0x00b10d20 },
-   { 0x80800042, 0x24604629, 0x00b10d20, 0x00b10d40 },
-   { 0x80800042, 0x24804629, 0x00b10d40, 0x00b10d60 },
-   { 0x80800042, 0x24a04629, 0x00b10d60, 0x00b10d80 },
-   { 0x80800042, 0x24c04629, 0x00b10d80, 0x00b10da0 },
-   { 0x80800042, 0x24e04629, 0x00b10da0, 0x00b10dc0 },
-   { 0x80800042, 0x25004629, 0x00b10dc0, 0x00b10de0 },
-   { 0x80800042, 0x25204629, 0x00b10de0, 0x00b10e00 },
-   { 0x80800042, 0x25404629, 0x00b10e00, 0x00b10e20 },
-   { 0x80800042, 0x25604629, 0x00b10e20, 0x00b10f00 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000032 },
-   { 0x80800042, 0x23804629, 0x00b10c41, 0x00b10c61 },
-   { 0x80800042, 0x23a04629, 0x00b10c61, 0x00b10c81 },
-   { 0x80800042, 0x23c04629, 0x00b10c81, 0x00b10ca1 },
-   { 0x80800042, 0x23e04629, 0x00b10ca1, 0x00b10cc1 },
-   { 0x80800042, 0x24004629, 0x00b10cc1, 0x00b10ce1 },
-   { 0x80800042, 0x24204629, 0x00b10ce1, 0x00b10d01 },
-   { 0x80800042, 0x24404629, 0x00b10d01, 0x00b10d21 },
-   { 0x80800042, 0x24604629, 0x00b10d21, 0x00b10d41 },
-   { 0x80800042, 0x24804629, 0x00b10d41, 0x00b10d61 },
-   { 0x80800042, 0x24a04629, 0x00b10d61, 0x00b10d81 },
-   { 0x80800042, 0x24c04629, 0x00b10d81, 0x00b10da1 },
-   { 0x80800042, 0x24e04629, 0x00b10da1, 0x00b10dc1 },
-   { 0x80800042, 0x25004629, 0x00b10dc1, 0x00b10de1 },
-   { 0x80800042, 0x25204629, 0x00b10de1, 0x00b10e01 },
-   { 0x80800042, 0x25404629, 0x00b10e01, 0x00b10e21 },
-   { 0x80800042, 0x25604629, 0x00b10e21, 0x00b10f01 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000021 },
-   { 0x80800042, 0x23804629, 0x00b10c42, 0x00b10c62 },
-   { 0x80800042, 0x23a04629, 0x00b10c62, 0x00b10c82 },
-   { 0x80800042, 0x23c04629, 0x00b10c82, 0x00b10ca2 },
-   { 0x80800042, 0x23e04629, 0x00b10ca2, 0x00b10cc2 },
-   { 0x80800042, 0x24004629, 0x00b10cc2, 0x00b10ce2 },
-   { 0x80800042, 0x24204629, 0x00b10ce2, 0x00b10d02 },
-   { 0x80800042, 0x24404629, 0x00b10d02, 0x00b10d22 },
-   { 0x80800042, 0x24604629, 0x00b10d22, 0x00b10d42 },
-   { 0x80800042, 0x24804629, 0x00b10d42, 0x00b10d62 },
-   { 0x80800042, 0x24a04629, 0x00b10d62, 0x00b10d82 },
-   { 0x80800042, 0x24c04629, 0x00b10d82, 0x00b10da2 },
-   { 0x80800042, 0x24e04629, 0x00b10da2, 0x00b10dc2 },
-   { 0x80800042, 0x25004629, 0x00b10dc2, 0x00b10de2 },
-   { 0x80800042, 0x25204629, 0x00b10de2, 0x00b10e02 },
-   { 0x80800042, 0x25404629, 0x00b10e02, 0x00b10e22 },
-   { 0x80800042, 0x25604629, 0x00b10e22, 0x00b10f02 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000010 },
-   { 0x80800042, 0x23804629, 0x00b10c43, 0x00b10c63 },
-   { 0x80800042, 0x23a04629, 0x00b10c63, 0x00b10c83 },
-   { 0x80800042, 0x23c04629, 0x00b10c83, 0x00b10ca3 },
-   { 0x80800042, 0x23e04629, 0x00b10ca3, 0x00b10cc3 },
-   { 0x80800042, 0x24004629, 0x00b10cc3, 0x00b10ce3 },
-   { 0x80800042, 0x24204629, 0x00b10ce3, 0x00b10d03 },
-   { 0x80800042, 0x24404629, 0x00b10d03, 0x00b10d23 },
-   { 0x80800042, 0x24604629, 0x00b10d23, 0x00b10d43 },
-   { 0x80800042, 0x24804629, 0x00b10d43, 0x00b10d63 },
-   { 0x80800042, 0x24a04629, 0x00b10d63, 0x00b10d83 },
-   { 0x80800042, 0x24c04629, 0x00b10d83, 0x00b10da3 },
-   { 0x80800042, 0x24e04629, 0x00b10da3, 0x00b10dc3 },
-   { 0x80800042, 0x25004629, 0x00b10dc3, 0x00b10de3 },
-   { 0x80800042, 0x25204629, 0x00b10de3, 0x00b10e03 },
-   { 0x80800042, 0x25404629, 0x00b10e03, 0x00b10e23 },
-   { 0x80800042, 0x25604629, 0x00b10e23, 0x00b10f03 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x0000004a },
-   { 0x00000001, 0x20480061, 0x00000000, 0x0007001f },
-   { 0x00800031, 0x2c401d29, 0x008d0040, 0x0418a004 },
-   { 0x00000040, 0x20440c21, 0x00210044, 0x00000008 },
-   { 0x00800031, 0x2d401d29, 0x008d0040, 0x0418a004 },
-   { 0x00000005, 0x20580c21, 0x00210040, 0x00000003 },
-   { 0x00000041, 0x20580c21, 0x00210058, 0x00000011 },
-   { 0x00000020, 0x34001400, 0x00001400, 0x00210058 },
-   { 0x00800001, 0x23800229, 0x00b10c40, 0x00000000 },
-   { 0x00800001, 0x23a00229, 0x00b10c60, 0x00000000 },
-   { 0x00800001, 0x23c00229, 0x00b10c80, 0x00000000 },
-   { 0x00800001, 0x23e00229, 0x00b10ca0, 0x00000000 },
-   { 0x00800001, 0x24000229, 0x00b10cc0, 0x00000000 },
-   { 0x00800001, 0x24200229, 0x00b10ce0, 0x00000000 },
-   { 0x00800001, 0x24400229, 0x00b10d00, 0x00000000 },
-   { 0x00800001, 0x24600229, 0x00b10d20, 0x00000000 },
-   { 0x00800001, 0x24800229, 0x00b10d40, 0x00000000 },
-   { 0x00800001, 0x24a00229, 0x00b10d60, 0x00000000 },
-   { 0x00800001, 0x24c00229, 0x00b10d80, 0x00000000 },
-   { 0x00800001, 0x24e00229, 0x00b10da0, 0x00000000 },
-   { 0x00800001, 0x25000229, 0x00b10dc0, 0x00000000 },
-   { 0x00800001, 0x25200229, 0x00b10de0, 0x00000000 },
-   { 0x00800001, 0x25400229, 0x00b10e00, 0x00000000 },
-   { 0x00800001, 0x25600229, 0x00b10e20, 0x00000000 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000032 },
-   { 0x00800001, 0x23800229, 0x00b10c41, 0x00000000 },
-   { 0x00800001, 0x23a00229, 0x00b10c61, 0x00000000 },
-   { 0x00800001, 0x23c00229, 0x00b10c81, 0x00000000 },
-   { 0x00800001, 0x23e00229, 0x00b10ca1, 0x00000000 },
-   { 0x00800001, 0x24000229, 0x00b10cc1, 0x00000000 },
-   { 0x00800001, 0x24200229, 0x00b10ce1, 0x00000000 },
-   { 0x00800001, 0x24400229, 0x00b10d01, 0x00000000 },
-   { 0x00800001, 0x24600229, 0x00b10d21, 0x00000000 },
-   { 0x00800001, 0x24800229, 0x00b10d41, 0x00000000 },
-   { 0x00800001, 0x24a00229, 0x00b10d61, 0x00000000 },
-   { 0x00800001, 0x24c00229, 0x00b10d81, 0x00000000 },
-   { 0x00800001, 0x24e00229, 0x00b10da1, 0x00000000 },
-   { 0x00800001, 0x25000229, 0x00b10dc1, 0x00000000 },
-   { 0x00800001, 0x25200229, 0x00b10de1, 0x00000000 },
-   { 0x00800001, 0x25400229, 0x00b10e01, 0x00000000 },
-   { 0x00800001, 0x25600229, 0x00b10e21, 0x00000000 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000021 },
-   { 0x00800001, 0x23800229, 0x00b10c42, 0x00000000 },
-   { 0x00800001, 0x23a00229, 0x00b10c62, 0x00000000 },
-   { 0x00800001, 0x23c00229, 0x00b10c82, 0x00000000 },
-   { 0x00800001, 0x23e00229, 0x00b10ca2, 0x00000000 },
-   { 0x00800001, 0x24000229, 0x00b10cc2, 0x00000000 },
-   { 0x00800001, 0x24200229, 0x00b10ce2, 0x00000000 },
-   { 0x00800001, 0x24400229, 0x00b10d02, 0x00000000 },
-   { 0x00800001, 0x24600229, 0x00b10d22, 0x00000000 },
-   { 0x00800001, 0x24800229, 0x00b10d42, 0x00000000 },
-   { 0x00800001, 0x24a00229, 0x00b10d62, 0x00000000 },
-   { 0x00800001, 0x24c00229, 0x00b10d82, 0x00000000 },
-   { 0x00800001, 0x24e00229, 0x00b10da2, 0x00000000 },
-   { 0x00800001, 0x25000229, 0x00b10dc2, 0x00000000 },
-   { 0x00800001, 0x25200229, 0x00b10de2, 0x00000000 },
-   { 0x00800001, 0x25400229, 0x00b10e02, 0x00000000 },
-   { 0x00800001, 0x25600229, 0x00b10e22, 0x00000000 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000010 },
-   { 0x00800001, 0x23800229, 0x00b10c43, 0x00000000 },
-   { 0x00800001, 0x23a00229, 0x00b10c63, 0x00000000 },
-   { 0x00800001, 0x23c00229, 0x00b10c83, 0x00000000 },
-   { 0x00800001, 0x23e00229, 0x00b10ca3, 0x00000000 },
-   { 0x00800001, 0x24000229, 0x00b10cc3, 0x00000000 },
-   { 0x00800001, 0x24200229, 0x00b10ce3, 0x00000000 },
-   { 0x00800001, 0x24400229, 0x00b10d03, 0x00000000 },
-   { 0x00800001, 0x24600229, 0x00b10d23, 0x00000000 },
-   { 0x00800001, 0x24800229, 0x00b10d43, 0x00000000 },
-   { 0x00800001, 0x24a00229, 0x00b10d63, 0x00000000 },
-   { 0x00800001, 0x24c00229, 0x00b10d83, 0x00000000 },
-   { 0x00800001, 0x24e00229, 0x00b10da3, 0x00000000 },
-   { 0x00800001, 0x25000229, 0x00b10dc3, 0x00000000 },
-   { 0x00800001, 0x25200229, 0x00b10de3, 0x00000000 },
-   { 0x00800001, 0x25400229, 0x00b10e03, 0x00000000 },
-   { 0x00800001, 0x25600229, 0x00b10e23, 0x00000000 },
-   { 0x00200008, 0x20200c21, 0x00450e60, 0x00000001 },
-   { 0x0020000c, 0x2e6e3dad, 0x00450e6e, 0x00010001 },
-   { 0x0020000c, 0x202e3dad, 0x00450e6e, 0x00010001 },
-   { 0x00200040, 0x20403421, 0x00450020, 0x0045002e },
-   { 0x00000001, 0x20480061, 0x00000000, 0x0007000f },
-   { 0x00000005, 0x20580c21, 0x00210040, 0x00000003 },
-   { 0x00800031, 0x2ac01d29, 0x008d0040, 0x0414a005 },
-   { 0x00800031, 0x2b401d29, 0x008d0040, 0x0414a006 },
-   { 0x00000041, 0x20580c21, 0x00210058, 0x00000009 },
-   { 0x00000020, 0x34001400, 0x00001400, 0x00210058 },
-   { 0x00800001, 0x25800229, 0x00ad0ac0, 0x00000000 },
-   { 0x00800001, 0x25a00229, 0x00ad0ae0, 0x00000000 },
-   { 0x00800001, 0x25c00229, 0x00ad0b00, 0x00000000 },
-   { 0x00800001, 0x25e00229, 0x00ad0b20, 0x00000000 },
-   { 0x00800001, 0x26000229, 0x00ad0b40, 0x00000000 },
-   { 0x00800001, 0x26200229, 0x00ad0b60, 0x00000000 },
-   { 0x00800001, 0x26400229, 0x00ad0b80, 0x00000000 },
-   { 0x00800001, 0x26600229, 0x00ad0ba0, 0x00000000 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x0000001a },
-   { 0x00800001, 0x25800229, 0x00ad0ac1, 0x00000000 },
-   { 0x00800001, 0x25a00229, 0x00ad0ae1, 0x00000000 },
-   { 0x00800001, 0x25c00229, 0x00ad0b01, 0x00000000 },
-   { 0x00800001, 0x25e00229, 0x00ad0b21, 0x00000000 },
-   { 0x00800001, 0x26000229, 0x00ad0b41, 0x00000000 },
-   { 0x00800001, 0x26200229, 0x00ad0b61, 0x00000000 },
-   { 0x00800001, 0x26400229, 0x00ad0b81, 0x00000000 },
-   { 0x00800001, 0x26600229, 0x00ad0ba1, 0x00000000 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000011 },
-   { 0x00800001, 0x25800229, 0x00ad0ac2, 0x00000000 },
-   { 0x00800001, 0x25a00229, 0x00ad0ae2, 0x00000000 },
-   { 0x00800001, 0x25c00229, 0x00ad0b02, 0x00000000 },
-   { 0x00800001, 0x25e00229, 0x00ad0b22, 0x00000000 },
-   { 0x00800001, 0x26000229, 0x00ad0b42, 0x00000000 },
-   { 0x00800001, 0x26200229, 0x00ad0b62, 0x00000000 },
-   { 0x00800001, 0x26400229, 0x00ad0b82, 0x00000000 },
-   { 0x00800001, 0x26600229, 0x00ad0ba2, 0x00000000 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000008 },
-   { 0x00800001, 0x25800229, 0x00ad0ac3, 0x00000000 },
-   { 0x00800001, 0x25a00229, 0x00ad0ae3, 0x00000000 },
-   { 0x00800001, 0x25c00229, 0x00ad0b03, 0x00000000 },
-   { 0x00800001, 0x25e00229, 0x00ad0b23, 0x00000000 },
-   { 0x00800001, 0x26000229, 0x00ad0b43, 0x00000000 },
-   { 0x00800001, 0x26200229, 0x00ad0b63, 0x00000000 },
-   { 0x00800001, 0x26400229, 0x00ad0b83, 0x00000000 },
-   { 0x00800001, 0x26600229, 0x00ad0ba3, 0x00000000 },
-   { 0x00600001, 0x20200021, 0x008d0980, 0x00000000 },
-   { 0x00800001, 0x458101f1, 0x00000000, 0x00000000 },
-   { 0x00800001, 0x45a101f1, 0x00000000, 0x00000000 },
-   { 0x00800001, 0x45c101f1, 0x00000000, 0x00000000 },
-   { 0x00800001, 0x45e101f1, 0x00000000, 0x00000000 },
-   { 0x00800001, 0x460101f1, 0x00000000, 0x00000000 },
-   { 0x00800001, 0x462101f1, 0x00000000, 0x00000000 },
-   { 0x00800001, 0x464101f1, 0x00000000, 0x00000000 },
-   { 0x00800001, 0x466101f1, 0x00000000, 0x00000000 },
-   { 0x02000005, 0x20002e3c, 0x0021003e, 0x00010001 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000011 },
-   { 0x00800040, 0x238045ad, 0x00b10060, 0x00b20380 },
-   { 0x00800040, 0x23a045ad, 0x00b10080, 0x00b203a0 },
-   { 0x00800040, 0x23c045ad, 0x00b100a0, 0x00b203c0 },
-   { 0x00800040, 0x23e045ad, 0x00b100c0, 0x00b203e0 },
-   { 0x00800040, 0x240045ad, 0x00b100e0, 0x00b20400 },
-   { 0x00800040, 0x242045ad, 0x00b10100, 0x00b20420 },
-   { 0x00800040, 0x244045ad, 0x00b10120, 0x00b20440 },
-   { 0x00800040, 0x246045ad, 0x00b10140, 0x00b20460 },
-   { 0x00800040, 0x248045ad, 0x00b10160, 0x00b20480 },
-   { 0x00800040, 0x24a045ad, 0x00b10180, 0x00b204a0 },
-   { 0x00800040, 0x24c045ad, 0x00b101a0, 0x00b204c0 },
-   { 0x00800040, 0x24e045ad, 0x00b101c0, 0x00b204e0 },
-   { 0x00800040, 0x250045ad, 0x00b101e0, 0x00b20500 },
-   { 0x00800040, 0x252045ad, 0x00b10200, 0x00b20520 },
-   { 0x00800040, 0x254045ad, 0x00b10220, 0x00b20540 },
-   { 0x00800040, 0x256045ad, 0x00b10240, 0x00b20560 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000010 },
-   { 0x00800040, 0x238045ad, 0x00b10060, 0x00b20380 },
-   { 0x00800040, 0x23a045ad, 0x00b10160, 0x00b203a0 },
-   { 0x00800040, 0x23c045ad, 0x00b10080, 0x00b203c0 },
-   { 0x00800040, 0x23e045ad, 0x00b10180, 0x00b203e0 },
-   { 0x00800040, 0x240045ad, 0x00b100a0, 0x00b20400 },
-   { 0x00800040, 0x242045ad, 0x00b101a0, 0x00b20420 },
-   { 0x00800040, 0x244045ad, 0x00b100c0, 0x00b20440 },
-   { 0x00800040, 0x246045ad, 0x00b101c0, 0x00b20460 },
-   { 0x00800040, 0x248045ad, 0x00b100e0, 0x00b20480 },
-   { 0x00800040, 0x24a045ad, 0x00b101e0, 0x00b204a0 },
-   { 0x00800040, 0x24c045ad, 0x00b10100, 0x00b204c0 },
-   { 0x00800040, 0x24e045ad, 0x00b10200, 0x00b204e0 },
-   { 0x00800040, 0x250045ad, 0x00b10120, 0x00b20500 },
-   { 0x00800040, 0x252045ad, 0x00b10220, 0x00b20520 },
-   { 0x00800040, 0x254045ad, 0x00b10140, 0x00b20540 },
-   { 0x00800040, 0x256045ad, 0x00b10240, 0x00b20560 },
-   { 0x00000001, 0x20280061, 0x00000000, 0x000f000f },
-   { 0x80800001, 0x438001b1, 0x00b10380, 0x00000000 },
-   { 0x80800001, 0x43a001b1, 0x00b103a0, 0x00000000 },
-   { 0x80800001, 0x43c001b1, 0x00b103c0, 0x00000000 },
-   { 0x80800001, 0x43e001b1, 0x00b103e0, 0x00000000 },
-   { 0x80800001, 0x440001b1, 0x00b10400, 0x00000000 },
-   { 0x80800001, 0x442001b1, 0x00b10420, 0x00000000 },
-   { 0x80800001, 0x444001b1, 0x00b10440, 0x00000000 },
-   { 0x80800001, 0x446001b1, 0x00b10460, 0x00000000 },
-   { 0x80800001, 0x448001b1, 0x00b10480, 0x00000000 },
-   { 0x80800001, 0x44a001b1, 0x00b104a0, 0x00000000 },
-   { 0x80800001, 0x44c001b1, 0x00b104c0, 0x00000000 },
-   { 0x80800001, 0x44e001b1, 0x00b104e0, 0x00000000 },
-   { 0x80800001, 0x450001b1, 0x00b10500, 0x00000000 },
-   { 0x80800001, 0x452001b1, 0x00b10520, 0x00000000 },
-   { 0x80800001, 0x454001b1, 0x00b10540, 0x00000000 },
-   { 0x80800001, 0x456001b1, 0x00b10560, 0x00000000 },
-   { 0x00800001, 0x20200232, 0x00b20380, 0x00000000 },
-   { 0x00800001, 0x20300232, 0x00b203a0, 0x00000000 },
-   { 0x00800001, 0x20400232, 0x00b203c0, 0x00000000 },
-   { 0x00800001, 0x20500232, 0x00b203e0, 0x00000000 },
-   { 0x00800001, 0x20600232, 0x00b20400, 0x00000000 },
-   { 0x00800001, 0x20700232, 0x00b20420, 0x00000000 },
-   { 0x00800001, 0x20800232, 0x00b20440, 0x00000000 },
-   { 0x00800001, 0x20900232, 0x00b20460, 0x00000000 },
-   { 0x00800001, 0x20a00232, 0x00b20480, 0x00000000 },
-   { 0x00800001, 0x20b00232, 0x00b204a0, 0x00000000 },
-   { 0x00800001, 0x20c00232, 0x00b204c0, 0x00000000 },
-   { 0x00800001, 0x20d00232, 0x00b204e0, 0x00000000 },
-   { 0x00800001, 0x20e00232, 0x00b20500, 0x00000000 },
-   { 0x00800001, 0x20f00232, 0x00b20520, 0x00000000 },
-   { 0x00800001, 0x21000232, 0x00b20540, 0x00000000 },
-   { 0x00800001, 0x21100232, 0x00b20560, 0x00000000 },
-   { 0x00800031, 0x24001d28, 0x008d0020, 0x05902000 },
-   { 0x00000001, 0x20280061, 0x00000000, 0x00070007 },
-   { 0x00200008, 0x20201c21, 0x00450020, 0x00000001 },
-   { 0x00800040, 0x258025a9, 0x00b10260, 0x00b10580 },
-   { 0x00800040, 0x25a025a9, 0x00b10280, 0x00b105a0 },
-   { 0x00800040, 0x25c025a9, 0x00b102a0, 0x00b105c0 },
-   { 0x00800040, 0x25e025a9, 0x00b102c0, 0x00b105e0 },
-   { 0x80800001, 0x45800131, 0x00b10580, 0x00000000 },
-   { 0x80800001, 0x45a00131, 0x00b105a0, 0x00000000 },
-   { 0x80800001, 0x45c00131, 0x00b105c0, 0x00000000 },
-   { 0x80800001, 0x45e00131, 0x00b105e0, 0x00000000 },
-   { 0x00800001, 0x20200232, 0x00b20580, 0x00000000 },
-   { 0x00800001, 0x20300232, 0x00b205a0, 0x00000000 },
-   { 0x00800001, 0x20400232, 0x00b205c0, 0x00000000 },
-   { 0x00800001, 0x20500232, 0x00b205e0, 0x00000000 },
-   { 0x00800031, 0x24001d28, 0x008d0020, 0x05302001 },
-   { 0x00800040, 0x260025a9, 0x00b102e0, 0x00b10600 },
-   { 0x00800040, 0x262025a9, 0x00b10300, 0x00b10620 },
-   { 0x00800040, 0x264025a9, 0x00b10320, 0x00b10640 },
-   { 0x00800040, 0x266025a9, 0x00b10340, 0x00b10660 },
-   { 0x80800001, 0x46000131, 0x00b10600, 0x00000000 },
-   { 0x80800001, 0x46200131, 0x00b10620, 0x00000000 },
-   { 0x80800001, 0x46400131, 0x00b10640, 0x00000000 },
-   { 0x80800001, 0x46600131, 0x00b10660, 0x00000000 },
-   { 0x00800001, 0x20200232, 0x00b20600, 0x00000000 },
-   { 0x00800001, 0x20300232, 0x00b20620, 0x00000000 },
-   { 0x00800001, 0x20400232, 0x00b20640, 0x00000000 },
-   { 0x00800001, 0x20500232, 0x00b20660, 0x00000000 },
-   { 0x00800031, 0x24001d28, 0x008d0020, 0x05302002 },
-   { 0x00800031, 0x24001d28, 0x008d0000, 0x87100000 },
-   { 0x00800031, 0x24001d28, 0x008d0000, 0x87100000 },
diff --git a/src/xvmc/frame_forward_igd.g4a b/src/xvmc/frame_forward_igd.g4a
deleted file mode 100644
index f474807..0000000
--- a/src/xvmc/frame_forward_igd.g4a
+++ /dev/null
@@ -1,65 +0,0 @@
-/*
- * Copyright © 2008 Intel Corporation
- *
- * Permission is hereby granted, free of charge, to any person obtaining a
- * copy of this software and associated documentation files (the "Software"),
- * to deal in the Software without restriction, including without limitation
- * the rights to use, copy, modify, merge, publish, distribute, sublicense,
- * and/or sell copies of the Software, and to permit persons to whom the
- * Software is furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice (including the next
- * paragraph) shall be included in all copies or substantial portions of the
- * Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
- * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
- * SOFTWARE.
- *
- * Author:
- *    Zou Nan hai <nanhai.zou at intel.com>
- *    Zhang Hua jun <huajun.zhang at intel.com>
- *    Xing Dong sheng <dongsheng.xing at intel.com>
- *
- */
-
-/* shader for backward predict mc
-*/
-
-/* save payload */
-mov (8) g76.0<1>UD g1.0<8,8,1>UD {align1};
-//mov (8) g77.0<1>UD g2.0<8,8,1>UD {align1};
-
-include(`block_clear.g4i')
-
-mov (8) g115.0<1>UD g1.0<8,8,1>UD {align1}; 
-mov (1) g1.8<1>UD 0x0070007UD {align1};  
-define(`input_surface',	`4')
-define(`mv1',	`g115.14')
-define(`mv2',	`g115.16')
-/* Y */
-/* (x', y') = (x, y) + (motion_vector.x >> 1, motion_vector.y >> 1) */
-asr (2) g1.14<1>W g115.14<2,2,1>W 1W {align1};
-add (2) g2.0<1>UD g115.0<2,2,1>UD g1.14<2,2,1>W {align1};
-include(`motion_frame_y_igd.g4i')
-/* motion_vector = motion_vector >> 1 */
-/* (x', y') = (x, y) + (motion_vector.x >> 1, motion_vector.y >> 1) */
-/* U */
-shr (2) g1.0<1>UD g115.0<2,2,1>UD 1UD {align1};
-asr (2) g115.14<1>W g115.14<2,2,1>W 1W {align1};
-asr (2) g1.14<1>W g115.14<2,2,1>W 1W {align1};
-add (2) g2.0<1>UD g1.0<2,2,1>UD g1.14<2,2,1>W {align1};
-define(`input_surface1',	`5')
-define(`input_surface2',	`6')
-mov (1) g2.8<1>UD 0x007000fUD  {align1};
-include(`motion_frame_uv_igd.g4i')
-/* V */
-/* (x', y') = (x, y) + (motion_vector.x >> 1, motion_vector.y >> 1) */
-include(`addidct.g4i')
-
-send (16) 0 acc0<1>UW g0<8,8,1>UW 
-	thread_spawner(0, 0, 0) mlen 1 rlen 0 { align1 EOT};
diff --git a/src/xvmc/frame_forward_igd.g4b b/src/xvmc/frame_forward_igd.g4b
deleted file mode 100644
index 9356180..0000000
--- a/src/xvmc/frame_forward_igd.g4b
+++ /dev/null
@@ -1,373 +0,0 @@
-   { 0x00600001, 0x29800021, 0x008d0020, 0x00000000 },
-   { 0x02000005, 0x20000c3c, 0x00210040, 0x00000001 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000030 },
-   { 0x00000040, 0x20480c21, 0x00210988, 0x00000000 },
-   { 0x00800031, 0x20601c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x20801c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x20a01c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x20c01c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x20e01c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x21001c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x21201c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x21401c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x21601c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x21801c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x21a01c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x21c01c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x21e01c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x22001c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x22201c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x22401c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x22601c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x22801c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x22a01c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x22c01c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x22e01c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x23001c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x23201c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x23401c21, 0x00b10040, 0x04110203 },
-   { 0x02000005, 0x20002d3c, 0x0021098c, 0x00200020 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000008 },
-   { 0x00600001, 0x20600169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x20800169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x20a00169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x20c00169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x20e00169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x21000169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x21200169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x21400169, 0x00000000, 0x00000000 },
-   { 0x02000005, 0x20002d3c, 0x0021002c, 0x00100010 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000008 },
-   { 0x00600001, 0x20700169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x20900169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x20b00169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x20d00169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x20f00169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x21100169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x21300169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x21500169, 0x00000000, 0x00000000 },
-   { 0x02000005, 0x20002d3c, 0x0021002c, 0x00080008 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000008 },
-   { 0x00600001, 0x21600169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x21800169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x21a00169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x21c00169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x21e00169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x22000169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x22200169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x22400169, 0x00000000, 0x00000000 },
-   { 0x02000005, 0x20002d3c, 0x0021002c, 0x00040004 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000008 },
-   { 0x00600001, 0x21700169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x21900169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x21b00169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x21d00169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x21f00169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x22100169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x22300169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x22500169, 0x00000000, 0x00000000 },
-   { 0x02000005, 0x20002d3c, 0x0021002c, 0x00020002 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000004 },
-   { 0x00800001, 0x22600169, 0x00000000, 0x00000000 },
-   { 0x00800001, 0x22800169, 0x00000000, 0x00000000 },
-   { 0x00800001, 0x22a00169, 0x00000000, 0x00000000 },
-   { 0x00800001, 0x22c00169, 0x00000000, 0x00000000 },
-   { 0x02000005, 0x20002d3c, 0x0021002c, 0x00010001 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000004 },
-   { 0x00800001, 0x22e00169, 0x00000000, 0x00000000 },
-   { 0x00800001, 0x23000169, 0x00000000, 0x00000000 },
-   { 0x00800001, 0x23200169, 0x00000000, 0x00000000 },
-   { 0x00800001, 0x23400169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x2e600021, 0x008d0020, 0x00000000 },
-   { 0x00000001, 0x20280061, 0x00000000, 0x00070007 },
-   { 0x0020000c, 0x202e3dad, 0x00450e6e, 0x00010001 },
-   { 0x00200040, 0x20403421, 0x00450e60, 0x0045002e },
-   { 0x01000005, 0x20000d3c, 0x00210e6e, 0x00000001 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x0000005f },
-   { 0x01000005, 0x20000d3c, 0x00210e70, 0x00000001 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000048 },
-   { 0x00000001, 0x20480061, 0x00000000, 0x0007001f },
-   { 0x00800031, 0x2c401d29, 0x008d0040, 0x0418a004 },
-   { 0x00000040, 0x20440c21, 0x00210044, 0x00000008 },
-   { 0x00800031, 0x2d401d29, 0x008d0040, 0x0418a004 },
-   { 0x00000040, 0x20440c21, 0x00210044, 0x00000008 },
-   { 0x00000001, 0x20480061, 0x00000000, 0x0000001f },
-   { 0x00800031, 0x2f001d29, 0x008d0040, 0x0411a004 },
-   { 0x00800040, 0x23804629, 0x00b10c40, 0x00b10c41 },
-   { 0x00800040, 0x23a04629, 0x00b10c60, 0x00b10c61 },
-   { 0x00800040, 0x23c04629, 0x00b10c80, 0x00b10c81 },
-   { 0x00800040, 0x23e04629, 0x00b10ca0, 0x00b10ca1 },
-   { 0x00800040, 0x24004629, 0x00b10cc0, 0x00b10cc1 },
-   { 0x00800040, 0x24204629, 0x00b10ce0, 0x00b10ce1 },
-   { 0x00800040, 0x24404629, 0x00b10d00, 0x00b10d01 },
-   { 0x00800040, 0x24604629, 0x00b10d20, 0x00b10d21 },
-   { 0x00800040, 0x24804629, 0x00b10d40, 0x00b10d41 },
-   { 0x00800040, 0x24a04629, 0x00b10d60, 0x00b10d61 },
-   { 0x00800040, 0x24c04629, 0x00b10d80, 0x00b10d81 },
-   { 0x00800040, 0x24e04629, 0x00b10da0, 0x00b10da1 },
-   { 0x00800040, 0x25004629, 0x00b10dc0, 0x00b10dc1 },
-   { 0x00800040, 0x25204629, 0x00b10de0, 0x00b10de1 },
-   { 0x00800040, 0x25404629, 0x00b10e00, 0x00b10e01 },
-   { 0x00800040, 0x25604629, 0x00b10e20, 0x00b10e21 },
-   { 0x00800040, 0x23804529, 0x00b10380, 0x00b10c60 },
-   { 0x00800040, 0x23a04529, 0x00b103a0, 0x00b10c80 },
-   { 0x00800040, 0x23c04529, 0x00b103c0, 0x00b10ca0 },
-   { 0x00800040, 0x23e04529, 0x00b103e0, 0x00b10cc0 },
-   { 0x00800040, 0x24004529, 0x00b10400, 0x00b10ce0 },
-   { 0x00800040, 0x24204529, 0x00b10420, 0x00b10d00 },
-   { 0x00800040, 0x24404529, 0x00b10440, 0x00b10d20 },
-   { 0x00800040, 0x24604529, 0x00b10460, 0x00b10d40 },
-   { 0x00800040, 0x24804529, 0x00b10480, 0x00b10d60 },
-   { 0x00800040, 0x24a04529, 0x00b104a0, 0x00b10d80 },
-   { 0x00800040, 0x24c04529, 0x00b104c0, 0x00b10da0 },
-   { 0x00800040, 0x24e04529, 0x00b104e0, 0x00b10dc0 },
-   { 0x00800040, 0x25004529, 0x00b10500, 0x00b10de0 },
-   { 0x00800040, 0x25204529, 0x00b10520, 0x00b10e00 },
-   { 0x00800040, 0x25404529, 0x00b10540, 0x00b10e20 },
-   { 0x00800040, 0x25604529, 0x00b10560, 0x00b10f00 },
-   { 0x00800040, 0x23804529, 0x00b10380, 0x00b10c61 },
-   { 0x00800040, 0x23a04529, 0x00b103a0, 0x00b10c81 },
-   { 0x00800040, 0x23c04529, 0x00b103c0, 0x00b10ca1 },
-   { 0x00800040, 0x23e04529, 0x00b103e0, 0x00b10cc1 },
-   { 0x00800040, 0x24004529, 0x00b10400, 0x00b10ce1 },
-   { 0x00800040, 0x24204529, 0x00b10420, 0x00b10d01 },
-   { 0x00800040, 0x24404529, 0x00b10440, 0x00b10d21 },
-   { 0x00800040, 0x24604529, 0x00b10460, 0x00b10d41 },
-   { 0x00800040, 0x24804529, 0x00b10480, 0x00b10d61 },
-   { 0x00800040, 0x24a04529, 0x00b104a0, 0x00b10d81 },
-   { 0x00800040, 0x24c04529, 0x00b104c0, 0x00b10da1 },
-   { 0x00800040, 0x24e04529, 0x00b104e0, 0x00b10dc1 },
-   { 0x00800040, 0x25004529, 0x00b10500, 0x00b10de1 },
-   { 0x00800040, 0x25204529, 0x00b10520, 0x00b10e01 },
-   { 0x00800040, 0x25404529, 0x00b10540, 0x00b10e21 },
-   { 0x00800040, 0x25604529, 0x00b10560, 0x00b10f01 },
-   { 0x80800008, 0x23802d29, 0x00b10380, 0x00020002 },
-   { 0x80800008, 0x23a02d29, 0x00b103a0, 0x00020002 },
-   { 0x80800008, 0x23c02d29, 0x00b103c0, 0x00020002 },
-   { 0x80800008, 0x23e02d29, 0x00b103e0, 0x00020002 },
-   { 0x80800008, 0x24002d29, 0x00b10400, 0x00020002 },
-   { 0x80800008, 0x24202d29, 0x00b10420, 0x00020002 },
-   { 0x80800008, 0x24402d29, 0x00b10440, 0x00020002 },
-   { 0x80800008, 0x24602d29, 0x00b10460, 0x00020002 },
-   { 0x80800008, 0x24802d29, 0x00b10480, 0x00020002 },
-   { 0x80800008, 0x24a02d29, 0x00b104a0, 0x00020002 },
-   { 0x80800008, 0x24c02d29, 0x00b104c0, 0x00020002 },
-   { 0x80800008, 0x24e02d29, 0x00b104e0, 0x00020002 },
-   { 0x80800008, 0x25002d29, 0x00b10500, 0x00020002 },
-   { 0x80800008, 0x25202d29, 0x00b10520, 0x00020002 },
-   { 0x80800008, 0x25402d29, 0x00b10540, 0x00020002 },
-   { 0x80800008, 0x25602d29, 0x00b10560, 0x00020002 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000043 },
-   { 0x00000001, 0x20480061, 0x00000000, 0x0007001f },
-   { 0x00800031, 0x2c401d29, 0x008d0040, 0x0418a004 },
-   { 0x00000040, 0x20440c21, 0x00210044, 0x00000008 },
-   { 0x00800031, 0x2d401d29, 0x008d0040, 0x0418a004 },
-   { 0x80800042, 0x23804629, 0x00b10c40, 0x00b10c41 },
-   { 0x80800042, 0x23a04629, 0x00b10c60, 0x00b10c61 },
-   { 0x80800042, 0x23c04629, 0x00b10c80, 0x00b10c81 },
-   { 0x80800042, 0x23e04629, 0x00b10ca0, 0x00b10ca1 },
-   { 0x80800042, 0x24004629, 0x00b10cc0, 0x00b10cc1 },
-   { 0x80800042, 0x24204629, 0x00b10ce0, 0x00b10ce1 },
-   { 0x80800042, 0x24404629, 0x00b10d00, 0x00b10d01 },
-   { 0x80800042, 0x24604629, 0x00b10d20, 0x00b10d21 },
-   { 0x80800042, 0x24804629, 0x00b10d40, 0x00b10d41 },
-   { 0x80800042, 0x24a04629, 0x00b10d60, 0x00b10d61 },
-   { 0x80800042, 0x24c04629, 0x00b10d80, 0x00b10d81 },
-   { 0x80800042, 0x24e04629, 0x00b10da0, 0x00b10da1 },
-   { 0x80800042, 0x25004629, 0x00b10dc0, 0x00b10dc1 },
-   { 0x80800042, 0x25204629, 0x00b10de0, 0x00b10de1 },
-   { 0x80800042, 0x25404629, 0x00b10e00, 0x00b10e01 },
-   { 0x80800042, 0x25604629, 0x00b10e20, 0x00b10e21 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x0000002e },
-   { 0x01000005, 0x20000d3c, 0x00210e70, 0x00000001 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000018 },
-   { 0x00000001, 0x20480061, 0x00000000, 0x0007001f },
-   { 0x00800031, 0x2c401d29, 0x008d0040, 0x0418a004 },
-   { 0x00000040, 0x20440c21, 0x00210044, 0x00000008 },
-   { 0x00800031, 0x2d401d29, 0x008d0040, 0x0418a004 },
-   { 0x00000040, 0x20440c21, 0x00210044, 0x00000008 },
-   { 0x00000001, 0x20480061, 0x00000000, 0x0000001f },
-   { 0x00800031, 0x2f001d29, 0x008d0040, 0x0411a004 },
-   { 0x80800042, 0x23804629, 0x00b10c40, 0x00b10c60 },
-   { 0x80800042, 0x23a04629, 0x00b10c60, 0x00b10c80 },
-   { 0x80800042, 0x23c04629, 0x00b10c80, 0x00b10ca0 },
-   { 0x80800042, 0x23e04629, 0x00b10ca0, 0x00b10cc0 },
-   { 0x80800042, 0x24004629, 0x00b10cc0, 0x00b10ce0 },
-   { 0x80800042, 0x24204629, 0x00b10ce0, 0x00b10d00 },
-   { 0x80800042, 0x24404629, 0x00b10d00, 0x00b10d20 },
-   { 0x80800042, 0x24604629, 0x00b10d20, 0x00b10d40 },
-   { 0x80800042, 0x24804629, 0x00b10d40, 0x00b10d60 },
-   { 0x80800042, 0x24a04629, 0x00b10d60, 0x00b10d80 },
-   { 0x80800042, 0x24c04629, 0x00b10d80, 0x00b10da0 },
-   { 0x80800042, 0x24e04629, 0x00b10da0, 0x00b10dc0 },
-   { 0x80800042, 0x25004629, 0x00b10dc0, 0x00b10de0 },
-   { 0x80800042, 0x25204629, 0x00b10de0, 0x00b10e00 },
-   { 0x80800042, 0x25404629, 0x00b10e00, 0x00b10e20 },
-   { 0x80800042, 0x25604629, 0x00b10e20, 0x00b10f00 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000014 },
-   { 0x00000001, 0x20480061, 0x00000000, 0x0007001f },
-   { 0x00800031, 0x2c401d29, 0x008d0040, 0x0418a004 },
-   { 0x00000040, 0x20440c21, 0x00210044, 0x00000008 },
-   { 0x00800031, 0x2d401d29, 0x008d0040, 0x0418a004 },
-   { 0x00800001, 0x23800229, 0x00b10c40, 0x00000000 },
-   { 0x00800001, 0x23a00229, 0x00b10c60, 0x00000000 },
-   { 0x00800001, 0x23c00229, 0x00b10c80, 0x00000000 },
-   { 0x00800001, 0x23e00229, 0x00b10ca0, 0x00000000 },
-   { 0x00800001, 0x24000229, 0x00b10cc0, 0x00000000 },
-   { 0x00800001, 0x24200229, 0x00b10ce0, 0x00000000 },
-   { 0x00800001, 0x24400229, 0x00b10d00, 0x00000000 },
-   { 0x00800001, 0x24600229, 0x00b10d20, 0x00000000 },
-   { 0x00800001, 0x24800229, 0x00b10d40, 0x00000000 },
-   { 0x00800001, 0x24a00229, 0x00b10d60, 0x00000000 },
-   { 0x00800001, 0x24c00229, 0x00b10d80, 0x00000000 },
-   { 0x00800001, 0x24e00229, 0x00b10da0, 0x00000000 },
-   { 0x00800001, 0x25000229, 0x00b10dc0, 0x00000000 },
-   { 0x00800001, 0x25200229, 0x00b10de0, 0x00000000 },
-   { 0x00800001, 0x25400229, 0x00b10e00, 0x00000000 },
-   { 0x00800001, 0x25600229, 0x00b10e20, 0x00000000 },
-   { 0x00200008, 0x20200c21, 0x00450e60, 0x00000001 },
-   { 0x0020000c, 0x2e6e3dad, 0x00450e6e, 0x00010001 },
-   { 0x0020000c, 0x202e3dad, 0x00450e6e, 0x00010001 },
-   { 0x00200040, 0x20403421, 0x00450020, 0x0045002e },
-   { 0x00000001, 0x20480061, 0x00000000, 0x0007000f },
-   { 0x00800031, 0x2ac01d29, 0x008d0040, 0x0414a005 },
-   { 0x00800031, 0x2b401d29, 0x008d0040, 0x0414a006 },
-   { 0x00800001, 0x25800229, 0x00ad0ac0, 0x00000000 },
-   { 0x00800001, 0x25a00229, 0x00ad0ae0, 0x00000000 },
-   { 0x00800001, 0x25c00229, 0x00ad0b00, 0x00000000 },
-   { 0x00800001, 0x25e00229, 0x00ad0b20, 0x00000000 },
-   { 0x00800001, 0x26000229, 0x00ad0b40, 0x00000000 },
-   { 0x00800001, 0x26200229, 0x00ad0b60, 0x00000000 },
-   { 0x00800001, 0x26400229, 0x00ad0b80, 0x00000000 },
-   { 0x00800001, 0x26600229, 0x00ad0ba0, 0x00000000 },
-   { 0x00600001, 0x20200021, 0x008d0980, 0x00000000 },
-   { 0x00800001, 0x458101f1, 0x00000000, 0x00000000 },
-   { 0x00800001, 0x45a101f1, 0x00000000, 0x00000000 },
-   { 0x00800001, 0x45c101f1, 0x00000000, 0x00000000 },
-   { 0x00800001, 0x45e101f1, 0x00000000, 0x00000000 },
-   { 0x00800001, 0x460101f1, 0x00000000, 0x00000000 },
-   { 0x00800001, 0x462101f1, 0x00000000, 0x00000000 },
-   { 0x00800001, 0x464101f1, 0x00000000, 0x00000000 },
-   { 0x00800001, 0x466101f1, 0x00000000, 0x00000000 },
-   { 0x02000005, 0x20002e3c, 0x0021003e, 0x00010001 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000011 },
-   { 0x00800040, 0x238045ad, 0x00b10060, 0x00b20380 },
-   { 0x00800040, 0x23a045ad, 0x00b10080, 0x00b203a0 },
-   { 0x00800040, 0x23c045ad, 0x00b100a0, 0x00b203c0 },
-   { 0x00800040, 0x23e045ad, 0x00b100c0, 0x00b203e0 },
-   { 0x00800040, 0x240045ad, 0x00b100e0, 0x00b20400 },
-   { 0x00800040, 0x242045ad, 0x00b10100, 0x00b20420 },
-   { 0x00800040, 0x244045ad, 0x00b10120, 0x00b20440 },
-   { 0x00800040, 0x246045ad, 0x00b10140, 0x00b20460 },
-   { 0x00800040, 0x248045ad, 0x00b10160, 0x00b20480 },
-   { 0x00800040, 0x24a045ad, 0x00b10180, 0x00b204a0 },
-   { 0x00800040, 0x24c045ad, 0x00b101a0, 0x00b204c0 },
-   { 0x00800040, 0x24e045ad, 0x00b101c0, 0x00b204e0 },
-   { 0x00800040, 0x250045ad, 0x00b101e0, 0x00b20500 },
-   { 0x00800040, 0x252045ad, 0x00b10200, 0x00b20520 },
-   { 0x00800040, 0x254045ad, 0x00b10220, 0x00b20540 },
-   { 0x00800040, 0x256045ad, 0x00b10240, 0x00b20560 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000010 },
-   { 0x00800040, 0x238045ad, 0x00b10060, 0x00b20380 },
-   { 0x00800040, 0x23a045ad, 0x00b10160, 0x00b203a0 },
-   { 0x00800040, 0x23c045ad, 0x00b10080, 0x00b203c0 },
-   { 0x00800040, 0x23e045ad, 0x00b10180, 0x00b203e0 },
-   { 0x00800040, 0x240045ad, 0x00b100a0, 0x00b20400 },
-   { 0x00800040, 0x242045ad, 0x00b101a0, 0x00b20420 },
-   { 0x00800040, 0x244045ad, 0x00b100c0, 0x00b20440 },
-   { 0x00800040, 0x246045ad, 0x00b101c0, 0x00b20460 },
-   { 0x00800040, 0x248045ad, 0x00b100e0, 0x00b20480 },
-   { 0x00800040, 0x24a045ad, 0x00b101e0, 0x00b204a0 },
-   { 0x00800040, 0x24c045ad, 0x00b10100, 0x00b204c0 },
-   { 0x00800040, 0x24e045ad, 0x00b10200, 0x00b204e0 },
-   { 0x00800040, 0x250045ad, 0x00b10120, 0x00b20500 },
-   { 0x00800040, 0x252045ad, 0x00b10220, 0x00b20520 },
-   { 0x00800040, 0x254045ad, 0x00b10140, 0x00b20540 },
-   { 0x00800040, 0x256045ad, 0x00b10240, 0x00b20560 },
-   { 0x00000001, 0x20280061, 0x00000000, 0x000f000f },
-   { 0x80800001, 0x438001b1, 0x00b10380, 0x00000000 },
-   { 0x80800001, 0x43a001b1, 0x00b103a0, 0x00000000 },
-   { 0x80800001, 0x43c001b1, 0x00b103c0, 0x00000000 },
-   { 0x80800001, 0x43e001b1, 0x00b103e0, 0x00000000 },
-   { 0x80800001, 0x440001b1, 0x00b10400, 0x00000000 },
-   { 0x80800001, 0x442001b1, 0x00b10420, 0x00000000 },
-   { 0x80800001, 0x444001b1, 0x00b10440, 0x00000000 },
-   { 0x80800001, 0x446001b1, 0x00b10460, 0x00000000 },
-   { 0x80800001, 0x448001b1, 0x00b10480, 0x00000000 },
-   { 0x80800001, 0x44a001b1, 0x00b104a0, 0x00000000 },
-   { 0x80800001, 0x44c001b1, 0x00b104c0, 0x00000000 },
-   { 0x80800001, 0x44e001b1, 0x00b104e0, 0x00000000 },
-   { 0x80800001, 0x450001b1, 0x00b10500, 0x00000000 },
-   { 0x80800001, 0x452001b1, 0x00b10520, 0x00000000 },
-   { 0x80800001, 0x454001b1, 0x00b10540, 0x00000000 },
-   { 0x80800001, 0x456001b1, 0x00b10560, 0x00000000 },
-   { 0x00800001, 0x20200232, 0x00b20380, 0x00000000 },
-   { 0x00800001, 0x20300232, 0x00b203a0, 0x00000000 },
-   { 0x00800001, 0x20400232, 0x00b203c0, 0x00000000 },
-   { 0x00800001, 0x20500232, 0x00b203e0, 0x00000000 },
-   { 0x00800001, 0x20600232, 0x00b20400, 0x00000000 },
-   { 0x00800001, 0x20700232, 0x00b20420, 0x00000000 },
-   { 0x00800001, 0x20800232, 0x00b20440, 0x00000000 },
-   { 0x00800001, 0x20900232, 0x00b20460, 0x00000000 },
-   { 0x00800001, 0x20a00232, 0x00b20480, 0x00000000 },
-   { 0x00800001, 0x20b00232, 0x00b204a0, 0x00000000 },
-   { 0x00800001, 0x20c00232, 0x00b204c0, 0x00000000 },
-   { 0x00800001, 0x20d00232, 0x00b204e0, 0x00000000 },
-   { 0x00800001, 0x20e00232, 0x00b20500, 0x00000000 },
-   { 0x00800001, 0x20f00232, 0x00b20520, 0x00000000 },
-   { 0x00800001, 0x21000232, 0x00b20540, 0x00000000 },
-   { 0x00800001, 0x21100232, 0x00b20560, 0x00000000 },
-   { 0x00800031, 0x24001d28, 0x008d0020, 0x05902000 },
-   { 0x00000001, 0x20280061, 0x00000000, 0x00070007 },
-   { 0x00200008, 0x20201c21, 0x00450020, 0x00000001 },
-   { 0x00800040, 0x258025a9, 0x00b10260, 0x00b10580 },
-   { 0x00800040, 0x25a025a9, 0x00b10280, 0x00b105a0 },
-   { 0x00800040, 0x25c025a9, 0x00b102a0, 0x00b105c0 },
-   { 0x00800040, 0x25e025a9, 0x00b102c0, 0x00b105e0 },
-   { 0x80800001, 0x45800131, 0x00b10580, 0x00000000 },
-   { 0x80800001, 0x45a00131, 0x00b105a0, 0x00000000 },
-   { 0x80800001, 0x45c00131, 0x00b105c0, 0x00000000 },
-   { 0x80800001, 0x45e00131, 0x00b105e0, 0x00000000 },
-   { 0x00800001, 0x20200232, 0x00b20580, 0x00000000 },
-   { 0x00800001, 0x20300232, 0x00b205a0, 0x00000000 },
-   { 0x00800001, 0x20400232, 0x00b205c0, 0x00000000 },
-   { 0x00800001, 0x20500232, 0x00b205e0, 0x00000000 },
-   { 0x00800031, 0x24001d28, 0x008d0020, 0x05302001 },
-   { 0x00800040, 0x260025a9, 0x00b102e0, 0x00b10600 },
-   { 0x00800040, 0x262025a9, 0x00b10300, 0x00b10620 },
-   { 0x00800040, 0x264025a9, 0x00b10320, 0x00b10640 },
-   { 0x00800040, 0x266025a9, 0x00b10340, 0x00b10660 },
-   { 0x80800001, 0x46000131, 0x00b10600, 0x00000000 },
-   { 0x80800001, 0x46200131, 0x00b10620, 0x00000000 },
-   { 0x80800001, 0x46400131, 0x00b10640, 0x00000000 },
-   { 0x80800001, 0x46600131, 0x00b10660, 0x00000000 },
-   { 0x00800001, 0x20200232, 0x00b20600, 0x00000000 },
-   { 0x00800001, 0x20300232, 0x00b20620, 0x00000000 },
-   { 0x00800001, 0x20400232, 0x00b20640, 0x00000000 },
-   { 0x00800001, 0x20500232, 0x00b20660, 0x00000000 },
-   { 0x00800031, 0x24001d28, 0x008d0020, 0x05302002 },
-   { 0x00800031, 0x24001d28, 0x008d0000, 0x87100000 },
-   { 0x00800031, 0x24001d28, 0x008d0000, 0x87100000 },
diff --git a/src/xvmc/i965_xvmc.c b/src/xvmc/i965_xvmc.c
index 1ffda27..4b1c481 100644
--- a/src/xvmc/i965_xvmc.c
+++ b/src/xvmc/i965_xvmc.c
@@ -46,52 +46,52 @@ enum interface {
 };
 
 static const uint32_t ipicture_kernel_static[][4] = {
-	#include "ipicture.g4b"
+	#include "shader/mc/ipicture.g4b"
 };
 static const uint32_t null_kernel_static[][4] = {
-	#include "null.g4b"
+	#include "shader/mc/null.g4b"
 };
 static const uint32_t frame_forward_kernel_static[][4] = {
-	#include "frame_forward.g4b"
+	#include "shader/mc/frame_forward.g4b"
 };
 static const uint32_t frame_backward_kernel_static[][4] = {
-	#include "frame_backward.g4b"
+	#include "shader/mc/frame_backward.g4b"
 };
 static const uint32_t frame_f_b_kernel_static[][4] = {
-	#include "frame_f_b.g4b"
+	#include "shader/mc/frame_f_b.g4b"
 }; 
 static const uint32_t field_forward_kernel_static[][4] = {
-	#include "field_forward.g4b"
+	#include "shader/mc/field_forward.g4b"
 };
 static const uint32_t field_backward_kernel_static[][4] = {
-	#include "field_backward.g4b"
+	#include "shader/mc/field_backward.g4b"
 };
 static const uint32_t field_f_b_kernel_static[][4] = {
-	#include "field_f_b.g4b"
+	#include "shader/mc/field_f_b.g4b"
 }; 
 static const uint32_t dual_prime_kernel_static[][4]= {
-	#include "dual_prime.g4b"
+	#include "shader/mc/dual_prime.g4b"
 }; 
 static const uint32_t frame_forward_igd_kernel_static[][4] = {
-	#include "frame_forward_igd.g4b"
+	#include "shader/mc/frame_forward_igd.g4b"
 };
 static const uint32_t frame_backward_igd_kernel_static[][4] = {
-	#include "frame_backward_igd.g4b"
+	#include "shader/mc/frame_backward_igd.g4b"
 };
 static const uint32_t frame_f_b_igd_kernel_static[][4] = {
-	#include "frame_f_b_igd.g4b"
+	#include "shader/mc/frame_f_b_igd.g4b"
 }; 
 static const uint32_t field_forward_igd_kernel_static[][4] = {
-	#include "field_forward_igd.g4b"
+	#include "shader/mc/field_forward_igd.g4b"
 };
 static const uint32_t field_backward_igd_kernel_static[][4] = {
-	#include "field_backward_igd.g4b"
+	#include "shader/mc/field_backward_igd.g4b"
 };
 static const uint32_t field_f_b_igd_kernel_static[][4] = {
-	#include "field_f_b_igd.g4b"
+	#include "shader/mc/field_f_b_igd.g4b"
 }; 
 static const uint32_t dual_prime_igd_kernel_static[][4]= {
-	#include "dual_prime_igd.g4b"
+	#include "shader/mc/dual_prime_igd.g4b"
 }; 
 
 #define ALIGN(i,m)    (((i) + (m) - 1) & ~((m) - 1))
diff --git a/src/xvmc/ipicture.g4a b/src/xvmc/ipicture.g4a
deleted file mode 100644
index afd5bc3..0000000
--- a/src/xvmc/ipicture.g4a
+++ /dev/null
@@ -1,166 +0,0 @@
-/*
- * Copyright © 2008 Intel Corporation
- *
- * Permission is hereby granted, free of charge, to any person obtaining a
- * copy of this software and associated documentation files (the "Software"),
- * to deal in the Software without restriction, including without limitation
- * the rights to use, copy, modify, merge, publish, distribute, sublicense,
- * and/or sell copies of the Software, and to permit persons to whom the
- * Software is furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice (including the next
- * paragraph) shall be included in all copies or substantial portions of the
- * Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
- * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
- * SOFTWARE.
- *
- * Author:
- *    Zou Nan hai <nanhai.zou at intel.com>
- *    Zhang Hua jun <huajun.zhang at intel.com>
- *    Xing Dong sheng <dongsheng.xing at intel.com>
- *
- */
-mov (8) g115.0<1>UD g1.0<8,8,1>UD {align1};
-
-and.nz (1) null g2.0<1,1,1>UD 0x1UD{align1};
-(f0) jmpi direct_idct;
-add (1) g2.8<1>UD g115.8<1,1,1>UD 0UD{align1};
-send (16) 0 g3.0<1>UD g2<16,16,1>UD read(3, 0, 2, 0) mlen 1 rlen 1 { align1 };
-add (1) g2.8<1>UD g2.8<1,1,1>UD 32UD {align1};
-send (16) 0 g4.0<1>UD g2<16,16,1>UD read(3, 0, 2, 0) mlen 1 rlen 1 { align1 };
-add (1) g2.8<1>UD g2.8<1,1,1>UD 32UD {align1};
-send (16) 0 g5.0<1>UD g2<16,16,1>UD read(3, 0, 2, 0) mlen 1 rlen 1 { align1 };
-add (1) g2.8<1>UD g2.8<1,1,1>UD 32UD {align1};
-send (16) 0 g6.0<1>UD g2<16,16,1>UD read(3, 0, 2, 0) mlen 1 rlen 1 { align1 };
-add (1) g2.8<1>UD g2.8<1,1,1>UD 32UD {align1};
-send (16) 0 g7.0<1>UD g2<16,16,1>UD read(3, 0, 2, 0) mlen 1 rlen 1 { align1 };
-add (1) g2.8<1>UD g2.8<1,1,1>UD 32UD {align1};
-send (16) 0 g8.0<1>UD g2<16,16,1>UD read(3, 0, 2, 0) mlen 1 rlen 1 { align1 };
-add (1) g2.8<1>UD g2.8<1,1,1>UD 32UD {align1};
-send (16) 0 g9.0<1>UD g2<16,16,1>UD read(3, 0, 2, 0) mlen 1 rlen 1 { align1 };
-add (1) g2.8<1>UD g2.8<1,1,1>UD 32UD {align1};
-send (16) 0 g10.0<1>UD g2<16,16,1>UD read(3, 0, 2, 0) mlen 1 rlen 1 { align1 };
-add (1) g2.8<1>UD g2.8<1,1,1>UD 32UD {align1};
-send (16) 0 g11.0<1>UD g2<16,16,1>UD read(3, 0, 2, 0) mlen 1 rlen 1 { align1 };
-add (1) g2.8<1>UD g2.8<1,1,1>UD 32UD {align1};
-send (16) 0 g12.0<1>UD g2<16,16,1>UD read(3, 0, 2, 0) mlen 1 rlen 1 { align1 };
-add (1) g2.8<1>UD g2.8<1,1,1>UD 32UD {align1};
-send (16) 0 g13.0<1>UD g2<16,16,1>UD read(3, 0, 2, 0) mlen 1 rlen 1 { align1 };
-add (1) g2.8<1>UD g2.8<1,1,1>UD 32UD {align1};
-send (16) 0 g14.0<1>UD g2<16,16,1>UD read(3, 0, 2, 0) mlen 1 rlen 1 { align1 };
-add (1) g2.8<1>UD g2.8<1,1,1>UD 32UD {align1};
-send (16) 0 g15.0<1>UD g2<16,16,1>UD read(3, 0, 2, 0) mlen 1 rlen 1 { align1 };
-add (1) g2.8<1>UD g2.8<1,1,1>UD 32UD {align1};
-send (16) 0 g16.0<1>UD g2<16,16,1>UD read(3, 0, 2, 0) mlen 1 rlen 1 { align1 };
-add (1) g2.8<1>UD g2.8<1,1,1>UD 32UD {align1};
-send (16) 0 g17.0<1>UD g2<16,16,1>UD read(3, 0, 2, 0) mlen 1 rlen 1 { align1 };
-add (1) g2.8<1>UD g2.8<1,1,1>UD 32UD {align1};
-send (16) 0 g18.0<1>UD g2<16,16,1>UD read(3, 0, 2, 0) mlen 1 rlen 1 { align1 };
-add (1) g2.8<1>UD g2.8<1,1,1>UD 32UD {align1};
-send (16) 0 g19.0<1>UD g2<16,16,1>UD read(3, 0, 2, 0) mlen 1 rlen 1 { align1 };
-add (1) g2.8<1>UD g2.8<1,1,1>UD 32UD {align1};
-send (16) 0 g20.0<1>UD g2<16,16,1>UD read(3, 0, 2, 0) mlen 1 rlen 1 { align1 };
-add (1) g2.8<1>UD g2.8<1,1,1>UD 32UD {align1};
-send (16) 0 g21.0<1>UD g2<16,16,1>UD read(3, 0, 2, 0) mlen 1 rlen 1 { align1 };
-add (1) g2.8<1>UD g2.8<1,1,1>UD 32UD {align1};
-send (16) 0 g22.0<1>UD g2<16,16,1>UD read(3, 0, 2, 0) mlen 1 rlen 1 { align1 };
-add (1) g2.8<1>UD g2.8<1,1,1>UD 32UD {align1};
-send (16) 0 g23<1>UD g2<16,16,1>UD read(3, 0, 2, 0) mlen 1 rlen 1 { align1 };
-add (1) g2.8<1>UD g2.8<1,1,1>UD 32UD {align1};
-send (16) 0 g24.0<1>UD g2<16,16,1>UD read(3, 0, 2, 0) mlen 1 rlen 1 { align1 };
-add (1) g2.8<1>UD g2.8<1,1,1>UD 32UD {align1};
-send (16) 0 g25.0<1>UD g2<16,16,1>UD read(3, 0, 2, 0) mlen 1 rlen 1 { align1 };
-add (1) g2.8<1>UD g2.8<1,1,1>UD 32UD {align1};
-send (16) 0 g26.0<1>UD g2<16,16,1>UD read(3, 0, 2, 0) mlen 1 rlen 1 { align1 };
-direct_idct:
-mov (1) g1.8<1>UD 0x00F000FUD {align1};
-mov.sat (16) g3.0<2>UB g3.0<16,16,1>W {align1};
-mov.sat (16) g4.0<2>UB g4.0<16,16,1>W {align1};
-mov.sat (16) g5.0<2>UB g5.0<16,16,1>W {align1};
-mov.sat (16) g6.0<2>UB g6.0<16,16,1>W {align1};
-mov.sat (16) g7.0<2>UB g7.0<16,16,1>W {align1};
-mov.sat (16) g8.0<2>UB g8.0<16,16,1>W {align1};
-mov.sat (16) g9.0<2>UB g9.0<16,16,1>W {align1};
-mov.sat (16) g10.0<2>UB g10.0<16,16,1>W {align1};
-mov.sat (16) g11.0<2>UB g11.0<16,16,1>W {align1};
-mov.sat (16) g12.0<2>UB g12.0<16,16,1>W {align1};
-mov.sat (16) g13.0<2>UB g13.0<16,16,1>W {align1};
-mov.sat (16) g14.0<2>UB g14.0<16,16,1>W {align1};
-mov.sat (16) g15.0<2>UB g15.0<16,16,1>W {align1};
-mov.sat (16) g16.0<2>UB g16.0<16,16,1>W {align1};
-mov.sat (16) g17.0<2>UB g17.0<16,16,1>W {align1};
-mov.sat (16) g18.0<2>UB g18.0<16,16,1>W {align1};
-
-and.nz (1) null g1.30<1,1,1>UB 0x1UW{align1};
-(f0) jmpi field_dct;
-//Frame IDCT
-mov (16) m1.0<1>UB g3.0<16,16,2>UB {align1};
-mov (16) m1.16<1>UB g4.0<16,16,2>UB {align1};
-mov (16) m2.0<1>UB g5.0<16,16,2>UB {align1};
-mov (16) m2.16<1>UB g6.0<16,16,2>UB {align1};
-mov (16) m3.0<1>UB g7.0<16,16,2>UB {align1};
-mov (16) m3.16<1>UB g8.0<16,16,2>UB {align1};
-mov (16) m4.0<1>UB g9.0<16,16,2>UB {align1};
-mov (16) m4.16<1>UB g10.0<16,16,2>UB {align1};
-mov (16) m5.0<1>UB g11.0<16,16,2>UB {align1};
-mov (16) m5.16<1>UB g12.0<16,16,2>UB {align1};
-mov (16) m6.0<1>UB g13.0<16,16,2>UB {align1};
-mov (16) m6.16<1>UB g14.0<16,16,2>UB {align1};
-mov (16) m7.0<1>UB g15.0<16,16,2>UB {align1};
-mov (16) m7.16<1>UB g16.0<16,16,2>UB {align1};
-mov (16) m8.0<1>UB g17.0<16,16,2>UB {align1};
-mov (16) m8.16<1>UB g18.0<16,16,2>UB {align1};
-jmpi write_back;
-
-field_dct:
-//Field IDCT
-mov (16) m1.0<1>UB g3.0<16,16,2>UB {align1};
-mov (16) m1.16<1>UB g11.0<16,16,2>UB {align1};
-mov (16) m2.0<1>UB g4.0<16,16,2>UB {align1};
-mov (16) m2.16<1>UB g12.0<16,16,2>UB {align1};
-mov (16) m3.0<1>UB g5.0<16,16,2>UB {align1};
-mov (16) m3.16<1>UB g13.0<16,16,2>UB {align1};
-mov (16) m4.0<1>UB g6.0<16,16,2>UB {align1};
-mov (16) m4.16<1>UB g14.0<16,16,2>UB {align1};
-mov (16) m5.0<1>UB g7.0<16,16,2>UB {align1};
-mov (16) m5.16<1>UB g15.0<16,16,2>UB {align1};
-mov (16) m6.0<1>UB g8.0<16,16,2>UB {align1};
-mov (16) m6.16<1>UB g16.0<16,16,2>UB {align1};
-mov (16) m7.0<1>UB g9.0<16,16,2>UB {align1};
-mov (16) m7.16<1>UB g17.0<16,16,2>UB {align1};
-mov (16) m8.0<1>UB g10.0<16,16,2>UB {align1};
-mov (16) m8.16<1>UB g18.0<16,16,2>UB {align1};
-
-write_back:
-send (16) 0 acc0<1>UW g1<8,8,1>UW write(0,0,2,0) mlen 9 rlen 0 {align1};
-//U
-mov (1) g1.8<1>UD 0x0070007UD  { align1 };
-shr (2) g1.0<1>UD g115.0<2,2,1>UD 1D {align1};
-mov.sat (16) g19.0<2>UB g19.0<16,16,1>W {align1};
-mov.sat (16) g20.0<2>UB g20.0<16,16,1>W {align1};
-mov.sat (16) g21.0<2>UB g21.0<16,16,1>W {align1};
-mov.sat (16) g22.0<2>UB g22.0<16,16,1>W {align1};
-mov (16) m1.0<1>UB g19.0<16,16,2>UB {align1};
-mov (16) m1.16<1>UB g20.0<16,16,2>UB {align1};
-mov (16) m2.0<1>UB g21.0<16,16,2>UB {align1};
-mov (16) m2.16<1>UB g22.0<16,16,2>UB {align1};
-send (16) 0 acc0<1>UW g1<8,8,1>UW write(1, 0, 2, 0) mlen 3 rlen 0 { align1 };
-//V
-mov.sat (16) g23.0<2>UB g23.0<16,16,1>W {align1};
-mov.sat (16) g24.0<2>UB g24.0<16,16,1>W {align1};
-mov.sat (16) g25.0<2>UB g25.0<16,16,1>W {align1};
-mov.sat (16) g26.0<2>UB g26.0<16,16,1>W {align1};
-mov (16) m1.0<1>UB g23.0<16,16,2>UB {align1};
-mov (16) m1.16<1>UB g24.0<16,16,2>UB {align1};
-mov (16) m2.0<1>UB g25.0<16,16,2>UB {align1};
-mov (16) m2.16<1>UB g26.0<16,16,2>UB {align1};
-send (16) 0 acc0<1>UW g1<8,8,1>UW write(2, 0, 2, 0) mlen 3 rlen 0 { align1 };
-
-send (16) 0 acc0<1>UW g0<8,8,1>UW
-        thread_spawner(0, 0, 0) mlen 1 rlen 0 { align1 EOT};
diff --git a/src/xvmc/ipicture.g4b b/src/xvmc/ipicture.g4b
deleted file mode 100644
index 10be527..0000000
--- a/src/xvmc/ipicture.g4b
+++ /dev/null
@@ -1,125 +0,0 @@
-   { 0x00600001, 0x2e600021, 0x008d0020, 0x00000000 },
-   { 0x02000005, 0x20000c3c, 0x00210040, 0x00000001 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000030 },
-   { 0x00000040, 0x20480c21, 0x00210e68, 0x00000000 },
-   { 0x00800031, 0x20601c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x20801c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x20a01c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x20c01c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x20e01c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x21001c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x21201c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x21401c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x21601c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x21801c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x21a01c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x21c01c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x21e01c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x22001c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x22201c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x22401c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x22601c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x22801c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x22a01c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x22c01c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x22e01c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x23001c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x23201c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x23401c21, 0x00b10040, 0x04110203 },
-   { 0x00000001, 0x20280061, 0x00000000, 0x000f000f },
-   { 0x80800001, 0x406001b1, 0x00b10060, 0x00000000 },
-   { 0x80800001, 0x408001b1, 0x00b10080, 0x00000000 },
-   { 0x80800001, 0x40a001b1, 0x00b100a0, 0x00000000 },
-   { 0x80800001, 0x40c001b1, 0x00b100c0, 0x00000000 },
-   { 0x80800001, 0x40e001b1, 0x00b100e0, 0x00000000 },
-   { 0x80800001, 0x410001b1, 0x00b10100, 0x00000000 },
-   { 0x80800001, 0x412001b1, 0x00b10120, 0x00000000 },
-   { 0x80800001, 0x414001b1, 0x00b10140, 0x00000000 },
-   { 0x80800001, 0x416001b1, 0x00b10160, 0x00000000 },
-   { 0x80800001, 0x418001b1, 0x00b10180, 0x00000000 },
-   { 0x80800001, 0x41a001b1, 0x00b101a0, 0x00000000 },
-   { 0x80800001, 0x41c001b1, 0x00b101c0, 0x00000000 },
-   { 0x80800001, 0x41e001b1, 0x00b101e0, 0x00000000 },
-   { 0x80800001, 0x420001b1, 0x00b10200, 0x00000000 },
-   { 0x80800001, 0x422001b1, 0x00b10220, 0x00000000 },
-   { 0x80800001, 0x424001b1, 0x00b10240, 0x00000000 },
-   { 0x02000005, 0x20002e3c, 0x0021003e, 0x00010001 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000011 },
-   { 0x00800001, 0x20200232, 0x00b20060, 0x00000000 },
-   { 0x00800001, 0x20300232, 0x00b20080, 0x00000000 },
-   { 0x00800001, 0x20400232, 0x00b200a0, 0x00000000 },
-   { 0x00800001, 0x20500232, 0x00b200c0, 0x00000000 },
-   { 0x00800001, 0x20600232, 0x00b200e0, 0x00000000 },
-   { 0x00800001, 0x20700232, 0x00b20100, 0x00000000 },
-   { 0x00800001, 0x20800232, 0x00b20120, 0x00000000 },
-   { 0x00800001, 0x20900232, 0x00b20140, 0x00000000 },
-   { 0x00800001, 0x20a00232, 0x00b20160, 0x00000000 },
-   { 0x00800001, 0x20b00232, 0x00b20180, 0x00000000 },
-   { 0x00800001, 0x20c00232, 0x00b201a0, 0x00000000 },
-   { 0x00800001, 0x20d00232, 0x00b201c0, 0x00000000 },
-   { 0x00800001, 0x20e00232, 0x00b201e0, 0x00000000 },
-   { 0x00800001, 0x20f00232, 0x00b20200, 0x00000000 },
-   { 0x00800001, 0x21000232, 0x00b20220, 0x00000000 },
-   { 0x00800001, 0x21100232, 0x00b20240, 0x00000000 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000010 },
-   { 0x00800001, 0x20200232, 0x00b20060, 0x00000000 },
-   { 0x00800001, 0x20300232, 0x00b20160, 0x00000000 },
-   { 0x00800001, 0x20400232, 0x00b20080, 0x00000000 },
-   { 0x00800001, 0x20500232, 0x00b20180, 0x00000000 },
-   { 0x00800001, 0x20600232, 0x00b200a0, 0x00000000 },
-   { 0x00800001, 0x20700232, 0x00b201a0, 0x00000000 },
-   { 0x00800001, 0x20800232, 0x00b200c0, 0x00000000 },
-   { 0x00800001, 0x20900232, 0x00b201c0, 0x00000000 },
-   { 0x00800001, 0x20a00232, 0x00b200e0, 0x00000000 },
-   { 0x00800001, 0x20b00232, 0x00b201e0, 0x00000000 },
-   { 0x00800001, 0x20c00232, 0x00b20100, 0x00000000 },
-   { 0x00800001, 0x20d00232, 0x00b20200, 0x00000000 },
-   { 0x00800001, 0x20e00232, 0x00b20120, 0x00000000 },
-   { 0x00800001, 0x20f00232, 0x00b20220, 0x00000000 },
-   { 0x00800001, 0x21000232, 0x00b20140, 0x00000000 },
-   { 0x00800001, 0x21100232, 0x00b20240, 0x00000000 },
-   { 0x00800031, 0x24001d28, 0x008d0020, 0x05902000 },
-   { 0x00000001, 0x20280061, 0x00000000, 0x00070007 },
-   { 0x00200008, 0x20201c21, 0x00450e60, 0x00000001 },
-   { 0x80800001, 0x426001b1, 0x00b10260, 0x00000000 },
-   { 0x80800001, 0x428001b1, 0x00b10280, 0x00000000 },
-   { 0x80800001, 0x42a001b1, 0x00b102a0, 0x00000000 },
-   { 0x80800001, 0x42c001b1, 0x00b102c0, 0x00000000 },
-   { 0x00800001, 0x20200232, 0x00b20260, 0x00000000 },
-   { 0x00800001, 0x20300232, 0x00b20280, 0x00000000 },
-   { 0x00800001, 0x20400232, 0x00b202a0, 0x00000000 },
-   { 0x00800001, 0x20500232, 0x00b202c0, 0x00000000 },
-   { 0x00800031, 0x24001d28, 0x008d0020, 0x05302001 },
-   { 0x80800001, 0x42e001b1, 0x00b102e0, 0x00000000 },
-   { 0x80800001, 0x430001b1, 0x00b10300, 0x00000000 },
-   { 0x80800001, 0x432001b1, 0x00b10320, 0x00000000 },
-   { 0x80800001, 0x434001b1, 0x00b10340, 0x00000000 },
-   { 0x00800001, 0x20200232, 0x00b202e0, 0x00000000 },
-   { 0x00800001, 0x20300232, 0x00b20300, 0x00000000 },
-   { 0x00800001, 0x20400232, 0x00b20320, 0x00000000 },
-   { 0x00800001, 0x20500232, 0x00b20340, 0x00000000 },
-   { 0x00800031, 0x24001d28, 0x008d0020, 0x05302002 },
-   { 0x00800031, 0x24001d28, 0x008d0000, 0x87100000 },
diff --git a/src/xvmc/motion_field_uv.g4i b/src/xvmc/motion_field_uv.g4i
deleted file mode 100644
index 4640197..0000000
--- a/src/xvmc/motion_field_uv.g4i
+++ /dev/null
@@ -1,46 +0,0 @@
-/*
- * Copyright © 2008 Intel Corporation
- *
- * Permission is hereby granted, free of charge, to any person obtaining a
- * copy of this software and associated documentation files (the "Software"),
- * to deal in the Software without restriction, including without limitation
- * the rights to use, copy, modify, merge, publish, distribute, sublicense,
- * and/or sell copies of the Software, and to permit persons to whom the
- * Software is furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice (including the next
- * paragraph) shall be included in all copies or substantial portions of the
- * Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
- * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
- * SOFTWARE.
- *
- * Author:
- *    Zou Nan hai <nanhai.zou at intel.com>
- *    Zhang Hua jun <huajun.zhang at intel.com>
- *    Xing Dong sheng <dongsheng.xing at intel.com>
- *
- */
-       and.z (1) null mv1<1,1,1>UW 2UW {align1};       
-       (f0) jmpi L1;
-       and.z (1) null mv2<1,1,1>UW 2UW {align1};       
-       (f0) jmpi L2;
-       include(`read_field_x1y1_uv.g4i')
-       jmpi L5;
-L2:
-       include(`read_field_x1y0_uv.g4i')
-       jmpi L5;
-L1:
-       and.z (1) null mv2<1,1,1>UW 2UW {align1};       
-       (f0) jmpi L4;
-       include(`read_field_x0y1_uv.g4i')
-       jmpi L5;
-L4:
-       include(`read_field_x0y0_uv.g4i')
-L5:
-
diff --git a/src/xvmc/motion_field_uv_igd.g4i b/src/xvmc/motion_field_uv_igd.g4i
deleted file mode 100644
index d4eba84..0000000
--- a/src/xvmc/motion_field_uv_igd.g4i
+++ /dev/null
@@ -1,46 +0,0 @@
-/*
- * Copyright © 2008 Intel Corporation
- *
- * Permission is hereby granted, free of charge, to any person obtaining a
- * copy of this software and associated documentation files (the "Software"),
- * to deal in the Software without restriction, including without limitation
- * the rights to use, copy, modify, merge, publish, distribute, sublicense,
- * and/or sell copies of the Software, and to permit persons to whom the
- * Software is furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice (including the next
- * paragraph) shall be included in all copies or substantial portions of the
- * Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
- * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
- * SOFTWARE.
- *
- * Author:
- *    Zou Nan hai <nanhai.zou at intel.com>
- *    Zhang Hua jun <huajun.zhang at intel.com>
- *    Xing Dong sheng <dongsheng.xing at intel.com>
- *
- */
-       and.z (1) null mv1<1,1,1>UW 2UW {align1};       
-       (f0) jmpi L1;
-       and.z (1) null mv2<1,1,1>UW 2UW {align1};       
-       (f0) jmpi L2;
-       include(`read_field_x1y1_uv_igd.g4i')
-       jmpi L5;
-L2:
-       include(`read_field_x1y0_uv_igd.g4i')
-       jmpi L5;
-L1:
-       and.z (1) null mv2<1,1,1>UW 2UW {align1};       
-       (f0) jmpi L4;
-       include(`read_field_x0y1_uv_igd.g4i')
-       jmpi L5;
-L4:
-       include(`read_field_x0y0_uv_igd.g4i')
-L5:
-
diff --git a/src/xvmc/motion_field_y.g4i b/src/xvmc/motion_field_y.g4i
deleted file mode 100644
index 06fa6cb..0000000
--- a/src/xvmc/motion_field_y.g4i
+++ /dev/null
@@ -1,45 +0,0 @@
-/*
- * Copyright © 2008 Intel Corporation
- *
- * Permission is hereby granted, free of charge, to any person obtaining a
- * copy of this software and associated documentation files (the "Software"),
- * to deal in the Software without restriction, including without limitation
- * the rights to use, copy, modify, merge, publish, distribute, sublicense,
- * and/or sell copies of the Software, and to permit persons to whom the
- * Software is furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice (including the next
- * paragraph) shall be included in all copies or substantial portions of the
- * Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
- * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
- * SOFTWARE.
- *
- * Author:
- *    Zou Nan hai <nanhai.zou at intel.com>
- *    Zhang Hua jun <huajun.zhang at intel.com>
- *    Xing Dong sheng <dongsheng.xing at intel.com>
- *
- */
-	and.z (1) null mv1<1,1,1>UW 1UW {align1};	
-	(f0) jmpi L1;
-	and.z (1) null mv2<1,1,1>UW 1UW {align1};	
-	(f0) jmpi L2;
-	include(`read_field_x1y1_y.g4i')
-	jmpi L5;
-L2:
-	include(`read_field_x1y0_y.g4i')
-	jmpi L5;
-L1:
-	and.z (1) null mv2<1,1,1>UW 1UW {align1};	
-	(f0) jmpi L4;
-	include(`read_field_x0y1_y.g4i')
-	jmpi L5;
-L4:
-	include(`read_field_x0y0_y.g4i')
-L5:
diff --git a/src/xvmc/motion_field_y_igd.g4i b/src/xvmc/motion_field_y_igd.g4i
deleted file mode 100644
index bd55cb2..0000000
--- a/src/xvmc/motion_field_y_igd.g4i
+++ /dev/null
@@ -1,45 +0,0 @@
-/*
- * Copyright © 2008 Intel Corporation
- *
- * Permission is hereby granted, free of charge, to any person obtaining a
- * copy of this software and associated documentation files (the "Software"),
- * to deal in the Software without restriction, including without limitation
- * the rights to use, copy, modify, merge, publish, distribute, sublicense,
- * and/or sell copies of the Software, and to permit persons to whom the
- * Software is furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice (including the next
- * paragraph) shall be included in all copies or substantial portions of the
- * Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
- * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
- * SOFTWARE.
- *
- * Author:
- *    Zou Nan hai <nanhai.zou at intel.com>
- *    Zhang Hua jun <huajun.zhang at intel.com>
- *    Xing Dong sheng <dongsheng.xing at intel.com>
- *
- */
-	and.z (1) null mv1<1,1,1>UW 1UW {align1};	
-	(f0) jmpi L1;
-	and.z (1) null mv2<1,1,1>UW 1UW {align1};	
-	(f0) jmpi L2;
-	include(`read_field_x1y1_y_igd.g4i')
-	jmpi L5;
-L2:
-	include(`read_field_x1y0_y_igd.g4i')
-	jmpi L5;
-L1:
-	and.z (1) null mv2<1,1,1>UW 1UW {align1};	
-	(f0) jmpi L4;
-	include(`read_field_x0y1_y_igd.g4i')
-	jmpi L5;
-L4:
-	include(`read_field_x0y0_y_igd.g4i')
-L5:
diff --git a/src/xvmc/motion_frame_uv.g4i b/src/xvmc/motion_frame_uv.g4i
deleted file mode 100644
index c027c90..0000000
--- a/src/xvmc/motion_frame_uv.g4i
+++ /dev/null
@@ -1,29 +0,0 @@
-/*
- * Copyright © 2008 Intel Corporation
- *
- * Permission is hereby granted, free of charge, to any person obtaining a
- * copy of this software and associated documentation files (the "Software"),
- * to deal in the Software without restriction, including without limitation
- * the rights to use, copy, modify, merge, publish, distribute, sublicense,
- * and/or sell copies of the Software, and to permit persons to whom the
- * Software is furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice (including the next
- * paragraph) shall be included in all copies or substantial portions of the
- * Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
- * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
- * SOFTWARE.
- *
- * Author:
- *    Zou Nan hai <nanhai.zou at intel.com>
- *    Zhang Hua jun <huajun.zhang at intel.com>
- *    Xing Dong sheng <dongsheng.xing at intel.com>
- */  
-
-	include(`read_frame_x0y0_uv.g4i')
diff --git a/src/xvmc/motion_frame_uv_igd.g4i b/src/xvmc/motion_frame_uv_igd.g4i
deleted file mode 100644
index 2e359fd..0000000
--- a/src/xvmc/motion_frame_uv_igd.g4i
+++ /dev/null
@@ -1,29 +0,0 @@
-/*
- * Copyright © 2008 Intel Corporation
- *
- * Permission is hereby granted, free of charge, to any person obtaining a
- * copy of this software and associated documentation files (the "Software"),
- * to deal in the Software without restriction, including without limitation
- * the rights to use, copy, modify, merge, publish, distribute, sublicense,
- * and/or sell copies of the Software, and to permit persons to whom the
- * Software is furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice (including the next
- * paragraph) shall be included in all copies or substantial portions of the
- * Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
- * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
- * SOFTWARE.
- *
- * Author:
- *    Zou Nan hai <nanhai.zou at intel.com>
- *    Zhang Hua jun <huajun.zhang at intel.com>
- *    Xing Dong sheng <dongsheng.xing at intel.com>
- */  
-
-	include(`read_frame_x0y0_uv_igd.g4i')
diff --git a/src/xvmc/motion_frame_y.g4i b/src/xvmc/motion_frame_y.g4i
deleted file mode 100644
index f0b212f..0000000
--- a/src/xvmc/motion_frame_y.g4i
+++ /dev/null
@@ -1,57 +0,0 @@
-/*
- * Copyright © 2008 Intel Corporation
- *
- * Permission is hereby granted, free of charge, to any person obtaining a
- * copy of this software and associated documentation files (the "Software"),
- * to deal in the Software without restriction, including without limitation
- * the rights to use, copy, modify, merge, publish, distribute, sublicense,
- * and/or sell copies of the Software, and to permit persons to whom the
- * Software is furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice (including the next
- * paragraph) shall be included in all copies or substantial portions of the
- * Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
- * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
- * SOFTWARE.
- *
- * Author:
- *    Zou Nan hai <nanhai.zou at intel.com>
- */  
- 
-/* if (motion_vect.x & 1) {
- *   if (motion_vect.y & 1)
- *	 half_pixel in x and y;
- *   else
- *	 half_pixel in x;
- * } else {
- *	if (motion_vect.y & 1) 
- *	  half_pixel y;
- *	else
- *	  full_pixel_read;	
- * }	 
- */
-
-	and.z (1) null mv1<1,1,1>UW 1UD {align1};	
-	(f0) jmpi LL1;
-	and.z (1) null mv2<1,1,1>UW 1UD {align1};	
-	(f0) jmpi LL2;
-	include(`read_frame_x1y1_y.g4i') 
-	jmpi LL5;
-LL2: 
-	include(`read_frame_x1y0_y.g4i') 
-	jmpi LL5;
-LL1: 
-	and.z (1) null mv2<1,1,1>UW 1UD {align1};	
-	(f0) jmpi LL4;
-	include(`read_frame_x0y1_y.g4i')
-	jmpi LL5;
-LL4:
-	include(`read_frame_x0y0_y.g4i')
-LL5:
-
diff --git a/src/xvmc/motion_frame_y_igd.g4i b/src/xvmc/motion_frame_y_igd.g4i
deleted file mode 100644
index 911a8f4..0000000
--- a/src/xvmc/motion_frame_y_igd.g4i
+++ /dev/null
@@ -1,57 +0,0 @@
-/*
- * Copyright © 2008 Intel Corporation
- *
- * Permission is hereby granted, free of charge, to any person obtaining a
- * copy of this software and associated documentation files (the "Software"),
- * to deal in the Software without restriction, including without limitation
- * the rights to use, copy, modify, merge, publish, distribute, sublicense,
- * and/or sell copies of the Software, and to permit persons to whom the
- * Software is furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice (including the next
- * paragraph) shall be included in all copies or substantial portions of the
- * Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
- * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
- * SOFTWARE.
- *
- * Author:
- *    Zou Nan hai <nanhai.zou at intel.com>
- */  
- 
-/* if (motion_vect.x & 1) {
- *   if (motion_vect.y & 1)
- *	 half_pixel in x and y;
- *   else
- *	 half_pixel in x;
- * } else {
- *	if (motion_vect.y & 1) 
- *	  half_pixel y;
- *	else
- *	  full_pixel_read;	
- * }	 
- */
-
-	and.z (1) null mv1<1,1,1>UW 1UD {align1};	
-	(f0) jmpi LL1;
-	and.z (1) null mv2<1,1,1>UW 1UD {align1};	
-	(f0) jmpi LL2;
-	include(`read_frame_x1y1_y_igd.g4i') 
-	jmpi LL5;
-LL2: 
-	include(`read_frame_x1y0_y_igd.g4i') 
-	jmpi LL5;
-LL1: 
-	and.z (1) null mv2<1,1,1>UW 1UD {align1};	
-	(f0) jmpi LL4;
-	include(`read_frame_x0y1_y_igd.g4i')
-	jmpi LL5;
-LL4:
-	include(`read_frame_x0y0_y_igd.g4i')
-LL5:
-
diff --git a/src/xvmc/null.g4a b/src/xvmc/null.g4a
deleted file mode 100644
index 6569842..0000000
--- a/src/xvmc/null.g4a
+++ /dev/null
@@ -1,57 +0,0 @@
-/*
- * Copyright © 2008 Intel Corporation
- *
- * Permission is hereby granted, free of charge, to any person obtaining a
- * copy of this software and associated documentation files (the "Software"),
- * to deal in the Software without restriction, including without limitation
- * the rights to use, copy, modify, merge, publish, distribute, sublicense,
- * and/or sell copies of the Software, and to permit persons to whom the
- * Software is furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice (including the next
- * paragraph) shall be included in all copies or substantial portions of the
- * Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
- * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
- * SOFTWARE.
- *
- * Author:
- *    Zou Nan hai <nanhai.zou at intel.com>
- *
- */
-mov (8) g3.0<1>UD g1.0<8,8,1>UD {align1};
-
-mov (16) g8.0<1>UD 0xFFFFFFFFUD {align1 compr};
-
-mov(1) g1.8<1>UD 0x0070007UD  { align1 };
-mov (16) m1<1>UD g8.0<8,8,1>UD {align1 compr};
-
-/*Write 8x8 block to (x,y)*/
-send (16) 0 acc0<1>UW g1<8,8,1>UW write(0, 0, 2, 0) mlen 3 rlen 0 { align1 };
-
-add (1) g1.0<1>UD g3.0<1,1,1>UD 0x8UD {align1};
-/*Write 8x8 block to (x+8,y)*/
-send (16) 0 acc0<1>UW g1<8,8,1>UW write(0, 0, 2, 0) mlen 3 rlen 0 { align1 };
-
-add (1) g1.4<1>UD g3.4<1,1,1>UD 0x8UD {align1};
-/*Write 8x8 block to (x+8,y+8)*/
-send (16) 0 acc0<1>UW g1<8,8,1>UW write(0, 0, 2, 0) mlen 3 rlen 0 { align1 };
-
-mov (1) g1.0<1>UD g3.0<1,1,1>UD {align1};
-/*Write 8x8 block to (x,y+8)*/
-send (16) 0 acc0<1>UW g1<8,8,1>UW write(0, 0, 2, 0) mlen 3 rlen 0 { align1 };
-
-/*Fill U buffer & V buffer with 0x7F*/
-mov (16) m1<1>UD 0x7f7f7f7fUD {align1 compr};
-shr (1) g1.0<1>UD g3.0<1,1,1>UD 1D {align1};
-shr (1) g1.4<1>UD g3.4<1,1,1>UD 1D {align1};
-send (16) 0 acc0<1>UW g1<8,8,1>UW write(2, 0, 2, 0) mlen 3 rlen 0 { align1 };
-send (16) 0 acc0<1>UW g1<8,8,1>UW write(1, 0, 2, 0) mlen 3 rlen 0 { align1 };
-
-send (16) 0 acc0<1>UW g0<8,8,1>UW 
-	thread_spawner(0, 0, 0) mlen 1 rlen 0 { align1 EOT};
diff --git a/src/xvmc/null.g4b b/src/xvmc/null.g4b
deleted file mode 100644
index 960fda9..0000000
--- a/src/xvmc/null.g4b
+++ /dev/null
@@ -1,17 +0,0 @@
-   { 0x00600001, 0x20600021, 0x008d0020, 0x00000000 },
-   { 0x00802001, 0x21000061, 0x00000000, 0xffffffff },
-   { 0x00000001, 0x20280061, 0x00000000, 0x00070007 },
-   { 0x00802001, 0x20200022, 0x008d0100, 0x00000000 },
-   { 0x00800031, 0x24001d28, 0x008d0020, 0x05302000 },
-   { 0x00000040, 0x20200c21, 0x00210060, 0x00000008 },
-   { 0x00800031, 0x24001d28, 0x008d0020, 0x05302000 },
-   { 0x00000040, 0x20240c21, 0x00210064, 0x00000008 },
-   { 0x00800031, 0x24001d28, 0x008d0020, 0x05302000 },
-   { 0x00000001, 0x20200021, 0x00210060, 0x00000000 },
-   { 0x00800031, 0x24001d28, 0x008d0020, 0x05302000 },
-   { 0x00802001, 0x20200062, 0x00000000, 0x7f7f7f7f },
-   { 0x00000008, 0x20201c21, 0x00210060, 0x00000001 },
-   { 0x00000008, 0x20241c21, 0x00210064, 0x00000001 },
-   { 0x00800031, 0x24001d28, 0x008d0020, 0x05302002 },
-   { 0x00800031, 0x24001d28, 0x008d0020, 0x05302001 },
-   { 0x00800031, 0x24001d28, 0x008d0000, 0x87100000 },
diff --git a/src/xvmc/read_field_x0y0_uv.g4i b/src/xvmc/read_field_x0y0_uv.g4i
deleted file mode 100644
index 673b8cd..0000000
--- a/src/xvmc/read_field_x0y0_uv.g4i
+++ /dev/null
@@ -1,74 +0,0 @@
-/*
- * Copyright © 2008 Intel Corporation
- *
- * Permission is hereby granted, free of charge, to any person obtaining a
- * copy of this software and associated documentation files (the "Software"),
- * to deal in the Software without restriction, including without limitation
- * the rights to use, copy, modify, merge, publish, distribute, sublicense,
- * and/or sell copies of the Software, and to permit persons to whom the
- * Software is furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice (including the next
- * paragraph) shall be included in all copies or substantial portions of the
- * Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
- * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
- * SOFTWARE.
- *
- * Author:
- *    Zou Nan hai <nanhai.zou at intel.com>
- *    Zhang Hua jun <huajun.zhang at intel.com>
- *    Xing Dong sheng <dongsheng.xing at intel.com>
- *
- */
-mov (1) g115.8<1>UD 0x7000FUD {align1}; // 8*16/32=4
-send (16) 0 g86.0<1>UW g115<16,8,1>UW read(surface_u, 2, 0, 2) mlen 1 rlen 4 {align1};//U
-send (16) 0 g91.0<1>UW g115<16,8,1>UW read(surface_v, 2, 0, 2) mlen 1 rlen 4 {align1};//V
-and (1) g2.24<1>UD g115.0<1,1,1>UD 3UD {align1};
-mul (1) g2.24<1>UD g2.24<1,1,1>UD 9UD {align1};
-jmpi g2.24<1,1,1>D;
-
-mov (16) g78.0<1>UW g86.0<16,8,1>UB {align1};
-mov (16) g79.0<1>UW g87.0<16,8,1>UB {align1};
-mov (16) g80.0<1>UW g88.0<16,8,1>UB {align1};
-mov (16) g81.0<1>UW g89.0<16,8,1>UB {align1};
-mov (16) g82.0<1>UW g91.0<16,8,1>UB {align1};
-mov (16) g83.0<1>UW g92.0<16,8,1>UB {align1};
-mov (16) g84.0<1>UW g93.0<16,8,1>UB {align1};
-mov (16) g85.0<1>UW g94.0<16,8,1>UB {align1};
-jmpi out;
-
-mov (16) g78.0<1>UW g86.1<16,8,1>UB {align1};
-mov (16) g79.0<1>UW g87.1<16,8,1>UB {align1};
-mov (16) g80.0<1>UW g88.1<16,8,1>UB {align1};
-mov (16) g81.0<1>UW g89.1<16,8,1>UB {align1};
-mov (16) g82.0<1>UW g91.1<16,8,1>UB {align1};
-mov (16) g83.0<1>UW g92.1<16,8,1>UB {align1};
-mov (16) g84.0<1>UW g93.1<16,8,1>UB {align1};
-mov (16) g85.0<1>UW g94.1<16,8,1>UB {align1};
-jmpi out;
-
-mov (16) g78.0<1>UW g86.2<16,8,1>UB {align1};
-mov (16) g79.0<1>UW g87.2<16,8,1>UB {align1};
-mov (16) g80.0<1>UW g88.2<16,8,1>UB {align1};
-mov (16) g81.0<1>UW g89.2<16,8,1>UB {align1};
-mov (16) g82.0<1>UW g91.2<16,8,1>UB {align1};
-mov (16) g83.0<1>UW g92.2<16,8,1>UB {align1};
-mov (16) g84.0<1>UW g93.2<16,8,1>UB {align1};
-mov (16) g85.0<1>UW g94.2<16,8,1>UB {align1};
-jmpi out;
-
-mov (16) g78.0<1>UW g86.3<16,8,1>UB {align1};
-mov (16) g79.0<1>UW g87.3<16,8,1>UB {align1};
-mov (16) g80.0<1>UW g88.3<16,8,1>UB {align1};
-mov (16) g81.0<1>UW g89.3<16,8,1>UB {align1};
-mov (16) g82.0<1>UW g91.3<16,8,1>UB {align1};
-mov (16) g83.0<1>UW g92.3<16,8,1>UB {align1};
-mov (16) g84.0<1>UW g93.3<16,8,1>UB {align1};
-mov (16) g85.0<1>UW g94.3<16,8,1>UB {align1};
-out:
diff --git a/src/xvmc/read_field_x0y0_uv_igd.g4i b/src/xvmc/read_field_x0y0_uv_igd.g4i
deleted file mode 100644
index c03a83d..0000000
--- a/src/xvmc/read_field_x0y0_uv_igd.g4i
+++ /dev/null
@@ -1,40 +0,0 @@
-/*
- * Copyright © 2008 Intel Corporation
- *
- * Permission is hereby granted, free of charge, to any person obtaining a
- * copy of this software and associated documentation files (the "Software"),
- * to deal in the Software without restriction, including without limitation
- * the rights to use, copy, modify, merge, publish, distribute, sublicense,
- * and/or sell copies of the Software, and to permit persons to whom the
- * Software is furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice (including the next
- * paragraph) shall be included in all copies or substantial portions of the
- * Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
- * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
- * SOFTWARE.
- *
- * Author:
- *    Zou Nan hai <nanhai.zou at intel.com>
- *    Zhang Hua jun <huajun.zhang at intel.com>
- *    Xing Dong sheng <dongsheng.xing at intel.com>
- *
- */
-mov (1) g115.8<1>UD 0x7000FUD {align1}; // 8*16/32=4
-send (16) 0 g86.0<1>UW g115<16,8,1>UW read(surface_u, 2, 0, 2) mlen 1 rlen 4 {align1};//U
-send (16) 0 g91.0<1>UW g115<16,8,1>UW read(surface_v, 2, 0, 2) mlen 1 rlen 4 {align1};//V
-
-mov (16) g78.0<1>UW g86.0<16,8,1>UB {align1};
-mov (16) g79.0<1>UW g87.0<16,8,1>UB {align1};
-mov (16) g80.0<1>UW g88.0<16,8,1>UB {align1};
-mov (16) g81.0<1>UW g89.0<16,8,1>UB {align1};
-mov (16) g82.0<1>UW g91.0<16,8,1>UB {align1};
-mov (16) g83.0<1>UW g92.0<16,8,1>UB {align1};
-mov (16) g84.0<1>UW g93.0<16,8,1>UB {align1};
-mov (16) g85.0<1>UW g94.0<16,8,1>UB {align1};
diff --git a/src/xvmc/read_field_x0y0_y.g4i b/src/xvmc/read_field_x0y0_y.g4i
deleted file mode 100644
index 8f4e339..0000000
--- a/src/xvmc/read_field_x0y0_y.g4i
+++ /dev/null
@@ -1,83 +0,0 @@
-/*
- * Copyright © 2008 Intel Corporation
- *
- * Permission is hereby granted, free of charge, to any person obtaining a
- * copy of this software and associated documentation files (the "Software"),
- * to deal in the Software without restriction, including without limitation
- * the rights to use, copy, modify, merge, publish, distribute, sublicense,
- * and/or sell copies of the Software, and to permit persons to whom the
- * Software is furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice (including the next
- * paragraph) shall be included in all copies or substantial portions of the
- * Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
- * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
- * SOFTWARE.
- *
- * Author:
- *    Zou Nan hai <nanhai.zou at intel.com>
- *    Zhang Hua jun <huajun.zhang at intel.com>
- *    Xing Dong sheng <dongsheng.xing at intel.com>
- *
- */
-mov (1) g115.8<1>UD 0x01FUD {align1};
-send (16) 0 g78.0<1>UW g115<8,8,1>UW read(surface,2,0,2) mlen 1 rlen 1 {align1};
-add (1) g115.4<1>UD g115.4<1,1,1>UD 2UD {align1};
-send (16) 0 g80.0<1>UW g115<8,8,1>UW read(surface,2,0,2) mlen 1 rlen 1 {align1};
-add (1) g115.4<1>UD g115.4<1,1,1>UD 2UD {align1};
-send (16) 0 g82.0<1>UW g115<8,8,1>UW read(surface,2,0,2) mlen 1 rlen 1 {align1};
-add (1) g115.4<1>UD g115.4<1,1,1>UD 2UD {align1};
-send (16) 0 g84.0<1>UW g115<8,8,1>UW read(surface,2,0,2) mlen 1 rlen 1 {align1};
-add (1) g115.4<1>UD g115.4<1,1,1>UD 2UD {align1};
-mov (1) g115.8<1>UD 0x07001FUD {align1};
-send (16) 0 g86.0<1>UW g115<8,8,1>UW read(surface,2,0,2) mlen 1 rlen 8 {align1};
-and (1) g2.24<1>UD g115.0<1,1,1>UD 3UD {align1};
-mul (1) g2.24<1>UD g2.24<1,1,1>UD 9UD {align1};
-jmpi g2.24<1,1,1>D;
-
-mov (16) g96.0<1>UW g78.0<16,16,1>UB {align1};
-mov (16) g97.0<1>UW g80.0<16,16,1>UB {align1};
-mov (16) g98.0<1>UW g82.0<16,16,1>UB {align1};
-mov (16) g99.0<1>UW g84.0<16,16,1>UB {align1};
-mov (16) g100.0<1>UW g86.0<16,16,1>UB {align1};
-mov (16) g101.0<1>UW g88.0<16,16,1>UB {align1};
-mov (16) g102.0<1>UW g90.0<16,16,1>UB {align1};
-mov (16) g103.0<1>UW g92.0<16,16,1>UB {align1};
-jmpi out;
-
-mov (16) g96.0<1>UW g78.1<16,16,1>UB {align1};
-mov (16) g97.0<1>UW g80.1<16,16,1>UB {align1};
-mov (16) g98.0<1>UW g82.1<16,16,1>UB {align1};
-mov (16) g99.0<1>UW g84.1<16,16,1>UB {align1};
-mov (16) g100.0<1>UW g86.1<16,16,1>UB {align1};
-mov (16) g101.0<1>UW g88.1<16,16,1>UB {align1};
-mov (16) g102.0<1>UW g90.1<16,16,1>UB {align1};
-mov (16) g103.0<1>UW g92.1<16,16,1>UB {align1};
-jmpi out;
-
-mov (16) g96.0<1>UW g78.2<16,16,1>UB {align1};
-mov (16) g97.0<1>UW g80.2<16,16,1>UB {align1};
-mov (16) g98.0<1>UW g82.2<16,16,1>UB {align1};
-mov (16) g99.0<1>UW g84.2<16,16,1>UB {align1};
-mov (16) g100.0<1>UW g86.2<16,16,1>UB {align1};
-mov (16) g101.0<1>UW g88.2<16,16,1>UB {align1};
-mov (16) g102.0<1>UW g90.2<16,16,1>UB {align1};
-mov (16) g103.0<1>UW g92.2<16,16,1>UB {align1};
-jmpi out;
-
-mov (16) g96.0<1>UW g78.3<16,16,1>UB {align1};
-mov (16) g97.0<1>UW g80.3<16,16,1>UB {align1};
-mov (16) g98.0<1>UW g82.3<16,16,1>UB {align1};
-mov (16) g99.0<1>UW g84.3<16,16,1>UB {align1};
-mov (16) g100.0<1>UW g86.3<16,16,1>UB {align1};
-mov (16) g101.0<1>UW g88.3<16,16,1>UB {align1};
-mov (16) g102.0<1>UW g90.3<16,16,1>UB {align1};
-mov (16) g103.0<1>UW g92.3<16,16,1>UB {align1};
-
-out:
diff --git a/src/xvmc/read_field_x0y0_y_igd.g4i b/src/xvmc/read_field_x0y0_y_igd.g4i
deleted file mode 100644
index 294cfb4..0000000
--- a/src/xvmc/read_field_x0y0_y_igd.g4i
+++ /dev/null
@@ -1,48 +0,0 @@
-/*
- * Copyright © 2008 Intel Corporation
- *
- * Permission is hereby granted, free of charge, to any person obtaining a
- * copy of this software and associated documentation files (the "Software"),
- * to deal in the Software without restriction, including without limitation
- * the rights to use, copy, modify, merge, publish, distribute, sublicense,
- * and/or sell copies of the Software, and to permit persons to whom the
- * Software is furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice (including the next
- * paragraph) shall be included in all copies or substantial portions of the
- * Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
- * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
- * SOFTWARE.
- *
- * Author:
- *    Zou Nan hai <nanhai.zou at intel.com>
- *    Zhang Hua jun <huajun.zhang at intel.com>
- *    Xing Dong sheng <dongsheng.xing at intel.com>
- *
- */
-mov (1) g115.8<1>UD 0x01FUD {align1};
-send (16) 0 g78.0<1>UW g115<8,8,1>UW read(surface,2,0,2) mlen 1 rlen 1 {align1};
-add (1) g115.4<1>UD g115.4<1,1,1>UD 2UD {align1};
-send (16) 0 g80.0<1>UW g115<8,8,1>UW read(surface,2,0,2) mlen 1 rlen 1 {align1};
-add (1) g115.4<1>UD g115.4<1,1,1>UD 2UD {align1};
-send (16) 0 g82.0<1>UW g115<8,8,1>UW read(surface,2,0,2) mlen 1 rlen 1 {align1};
-add (1) g115.4<1>UD g115.4<1,1,1>UD 2UD {align1};
-send (16) 0 g84.0<1>UW g115<8,8,1>UW read(surface,2,0,2) mlen 1 rlen 1 {align1};
-add (1) g115.4<1>UD g115.4<1,1,1>UD 2UD {align1};
-mov (1) g115.8<1>UD 0x07001FUD {align1};
-send (16) 0 g86.0<1>UW g115<8,8,1>UW read(surface,2,0,2) mlen 1 rlen 8 {align1};
-
-mov (16) g96.0<1>UW g78.0<16,16,1>UB {align1};
-mov (16) g97.0<1>UW g80.0<16,16,1>UB {align1};
-mov (16) g98.0<1>UW g82.0<16,16,1>UB {align1};
-mov (16) g99.0<1>UW g84.0<16,16,1>UB {align1};
-mov (16) g100.0<1>UW g86.0<16,16,1>UB {align1};
-mov (16) g101.0<1>UW g88.0<16,16,1>UB {align1};
-mov (16) g102.0<1>UW g90.0<16,16,1>UB {align1};
-mov (16) g103.0<1>UW g92.0<16,16,1>UB {align1};
diff --git a/src/xvmc/read_field_x0y1_uv.g4i b/src/xvmc/read_field_x0y1_uv.g4i
deleted file mode 100644
index 1be4fd2..0000000
--- a/src/xvmc/read_field_x0y1_uv.g4i
+++ /dev/null
@@ -1,78 +0,0 @@
-/*
- * Copyright © 2008 Intel Corporation
- *
- * Permission is hereby granted, free of charge, to any person obtaining a
- * copy of this software and associated documentation files (the "Software"),
- * to deal in the Software without restriction, including without limitation
- * the rights to use, copy, modify, merge, publish, distribute, sublicense,
- * and/or sell copies of the Software, and to permit persons to whom the
- * Software is furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice (including the next
- * paragraph) shall be included in all copies or substantial portions of the
- * Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
- * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
- * SOFTWARE.
- *
- * Author:
- *    Zou Nan hai <nanhai.zou at intel.com>
- *    Zhang Hua jun <huajun.zhang at intel.com>
- *    Xing Dong sheng <dongsheng.xing at intel.com>
- *
- */
-mov (1) g115.8<1>UD 0x07000FUD {align1}; // 8*16/32=4
-send (16) 0 g86.0<1>UW g115<16,8,1>UW read(surface_u, 2, 0, 2) mlen 1 rlen 4 {align1};//U
-send (16) 0 g91.0<1>UW g115<16,8,1>UW read(surface_v, 2, 0, 2) mlen 1 rlen 4 {align1};//V
-mov (1) g115.8<1>UD 0xFUD {align1};
-send (16) 0 g90.0<1>UW g115<16,8,1>UW read(surface_u, 2, 0, 2) mlen 1 rlen 1 {align1};
-send (16) 0 g95.0<1>UW g115<16,8,1>UW read(surface_v, 2, 0, 2) mlen 1 rlen 1 {align1};
-and (1) g2.24<1>UD g115.0<1,1,1>UD 3UD {align1};
-mul (1) g2.24<1>UD g2.24<1,1,1>UD 9UD {align1};
-jmpi g2.24<1,1,1>D;
-
-avg.sat (16) g78.0<1>UW g86.0<16,8,1>UB g87.0<16,8,1>UB {align1};
-avg.sat (16) g79.0<1>UW g87.0<16,8,1>UB g88.0<16,8,1>UB {align1};
-avg.sat (16) g80.0<1>UW g88.0<16,8,1>UB g89.0<16,8,1>UB {align1};
-avg.sat (16) g81.0<1>UW g89.0<16,8,1>UB g90.0<16,8,1>UB {align1};
-avg.sat (16) g82.0<1>UW g91.0<16,8,1>UB g92.0<16,8,1>UB {align1};
-avg.sat (16) g83.0<1>UW g92.0<16,8,1>UB g93.0<16,8,1>UB {align1};
-avg.sat (16) g84.0<1>UW g93.0<16,8,1>UB g94.0<16,8,1>UB {align1};
-avg.sat (16) g85.0<1>UW g94.0<16,8,1>UB g95.0<16,8,1>UB {align1};
-jmpi out;
-
-avg.sat (16) g78.0<1>UW g86.1<16,8,1>UB g87.1<16,8,1>UB {align1};
-avg.sat (16) g79.0<1>UW g87.1<16,8,1>UB g88.1<16,8,1>UB {align1};
-avg.sat (16) g80.0<1>UW g88.1<16,8,1>UB g89.1<16,8,1>UB {align1};
-avg.sat (16) g81.0<1>UW g89.1<16,8,1>UB g90.1<16,8,1>UB {align1};
-avg.sat (16) g82.0<1>UW g91.1<16,8,1>UB g92.1<16,8,1>UB {align1};
-avg.sat (16) g83.0<1>UW g92.1<16,8,1>UB g93.1<16,8,1>UB {align1};
-avg.sat (16) g84.0<1>UW g93.1<16,8,1>UB g94.1<16,8,1>UB {align1};
-avg.sat (16) g85.0<1>UW g94.1<16,8,1>UB g95.1<16,8,1>UB {align1};
-jmpi out;
-
-avg.sat (16) g78.0<1>UW g86.2<16,8,1>UB g87.2<16,8,1>UB {align1};
-avg.sat (16) g79.0<1>UW g87.2<16,8,1>UB g88.2<16,8,1>UB {align1};
-avg.sat (16) g80.0<1>UW g88.2<16,8,1>UB g89.2<16,8,1>UB {align1};
-avg.sat (16) g81.0<1>UW g89.2<16,8,1>UB g90.2<16,8,1>UB {align1};
-avg.sat (16) g82.0<1>UW g91.2<16,8,1>UB g92.2<16,8,1>UB {align1};
-avg.sat (16) g83.0<1>UW g92.2<16,8,1>UB g93.2<16,8,1>UB {align1};
-avg.sat (16) g84.0<1>UW g93.2<16,8,1>UB g94.2<16,8,1>UB {align1};
-avg.sat (16) g85.0<1>UW g94.2<16,8,1>UB g95.2<16,8,1>UB {align1};
-jmpi out;
-
-avg.sat (16) g78.0<1>UW g86.3<16,8,1>UB g86.3<16,8,1>UB {align1};
-avg.sat (16) g79.0<1>UW g87.3<16,8,1>UB g87.3<16,8,1>UB {align1};
-avg.sat (16) g80.0<1>UW g88.3<16,8,1>UB g88.3<16,8,1>UB {align1};
-avg.sat (16) g81.0<1>UW g89.3<16,8,1>UB g89.3<16,8,1>UB {align1};
-avg.sat (16) g82.0<1>UW g91.3<16,8,1>UB g91.3<16,8,1>UB {align1};
-avg.sat (16) g83.0<1>UW g92.3<16,8,1>UB g92.3<16,8,1>UB {align1};
-avg.sat (16) g84.0<1>UW g93.3<16,8,1>UB g93.3<16,8,1>UB {align1};
-avg.sat (16) g85.0<1>UW g94.3<16,8,1>UB g94.3<16,8,1>UB {align1};
-
-out:
diff --git a/src/xvmc/read_field_x0y1_uv_igd.g4i b/src/xvmc/read_field_x0y1_uv_igd.g4i
deleted file mode 100644
index 9e8efa0..0000000
--- a/src/xvmc/read_field_x0y1_uv_igd.g4i
+++ /dev/null
@@ -1,43 +0,0 @@
-/*
- * Copyright © 2008 Intel Corporation
- *
- * Permission is hereby granted, free of charge, to any person obtaining a
- * copy of this software and associated documentation files (the "Software"),
- * to deal in the Software without restriction, including without limitation
- * the rights to use, copy, modify, merge, publish, distribute, sublicense,
- * and/or sell copies of the Software, and to permit persons to whom the
- * Software is furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice (including the next
- * paragraph) shall be included in all copies or substantial portions of the
- * Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
- * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
- * SOFTWARE.
- *
- * Author:
- *    Zou Nan hai <nanhai.zou at intel.com>
- *    Zhang Hua jun <huajun.zhang at intel.com>
- *    Xing Dong sheng <dongsheng.xing at intel.com>
- *
- */
-mov (1) g115.8<1>UD 0x07000FUD {align1}; // 8*16/32=4
-send (16) 0 g86.0<1>UW g115<16,8,1>UW read(surface_u, 2, 0, 2) mlen 1 rlen 4 {align1};//U
-send (16) 0 g91.0<1>UW g115<16,8,1>UW read(surface_v, 2, 0, 2) mlen 1 rlen 4 {align1};//V
-mov (1) g115.8<1>UD 0xFUD {align1};
-send (16) 0 g90.0<1>UW g115<16,8,1>UW read(surface_u, 2, 0, 2) mlen 1 rlen 1 {align1};
-send (16) 0 g95.0<1>UW g115<16,8,1>UW read(surface_v, 2, 0, 2) mlen 1 rlen 1 {align1};
-
-avg.sat (16) g78.0<1>UW g86.0<16,8,1>UB g87.0<16,8,1>UB {align1};
-avg.sat (16) g79.0<1>UW g87.0<16,8,1>UB g88.0<16,8,1>UB {align1};
-avg.sat (16) g80.0<1>UW g88.0<16,8,1>UB g89.0<16,8,1>UB {align1};
-avg.sat (16) g81.0<1>UW g89.0<16,8,1>UB g90.0<16,8,1>UB {align1};
-avg.sat (16) g82.0<1>UW g91.0<16,8,1>UB g92.0<16,8,1>UB {align1};
-avg.sat (16) g83.0<1>UW g92.0<16,8,1>UB g93.0<16,8,1>UB {align1};
-avg.sat (16) g84.0<1>UW g93.0<16,8,1>UB g94.0<16,8,1>UB {align1};
-avg.sat (16) g85.0<1>UW g94.0<16,8,1>UB g95.0<16,8,1>UB {align1};
diff --git a/src/xvmc/read_field_x0y1_y.g4i b/src/xvmc/read_field_x0y1_y.g4i
deleted file mode 100644
index a15a221..0000000
--- a/src/xvmc/read_field_x0y1_y.g4i
+++ /dev/null
@@ -1,86 +0,0 @@
-/*
- * Copyright © 2008 Intel Corporation
- *
- * Permission is hereby granted, free of charge, to any person obtaining a
- * copy of this software and associated documentation files (the "Software"),
- * to deal in the Software without restriction, including without limitation
- * the rights to use, copy, modify, merge, publish, distribute, sublicense,
- * and/or sell copies of the Software, and to permit persons to whom the
- * Software is furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice (including the next
- * paragraph) shall be included in all copies or substantial portions of the
- * Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
- * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
- * SOFTWARE.
- *
- * Author:
- *    Zou Nan hai <nanhai.zou at intel.com>
- *    Zhang Hua jun <huajun.zhang at intel.com>
- *    Xing Dong sheng <dongsheng.xing at intel.com>
- *
- */
-mov (1) g115.8<1>UD 0x01FUD {align1};
-send (16) 0 g78.0<1>UW g115<8,8,1>UW read(surface,2,0,2) mlen 1 rlen 1 {align1};
-add (1) g115.4<1>UD g115.4<1,1,1>UD 2UD {align1};
-send (16) 0 g80.0<1>UW g115<8,8,1>UW read(surface,2,0,2) mlen 1 rlen 1 {align1};
-add (1) g115.4<1>UD g115.4<1,1,1>UD 2UD {align1};
-send (16) 0 g82.0<1>UW g115<8,8,1>UW read(surface,2,0,2) mlen 1 rlen 1 {align1};
-add (1) g115.4<1>UD g115.4<1,1,1>UD 2UD {align1};
-send (16) 0 g84.0<1>UW g115<8,8,1>UW read(surface,2,0,2) mlen 1 rlen 1 {align1};
-add (1) g115.4<1>UD g115.4<1,1,1>UD 2UD {align1};
-mov (1) g115.8<1>UD 0x07001FUD {align1};
-send (16) 0 g86.0<1>UW g115<8,8,1>UW read(surface,2,0,2) mlen 1 rlen 8 {align1};
-add (1) g115.4<1>UD g115.4<1,1,1>UD 8UD {align1};
-mov (1) g115.8<1>UD 0x1FUD {align1};
-send (16) 0 g94.0<1>UW g115<8,8,1>UW read(surface,2,0,2) mlen 1 rlen 1 {align1};
-and (1) g2.24<1>UD g115.0<1,1,1>UD 3UD {align1};
-mul (1) g2.24<1>UD g2.24<1,1,1>UD 9UD {align1};
-jmpi g2.24<1,1,1>D;
-
-avg.sat (16) g96.0<1>UW g78.0<16,16,1>UB g80.0<16,16,1>UB {align1};
-avg.sat (16) g97.0<1>UW g80.0<16,16,1>UB g82.0<16,16,1>UB {align1};
-avg.sat (16) g98.0<1>UW g82.0<16,16,1>UB g84.0<16,16,1>UB {align1};
-avg.sat (16) g99.0<1>UW g84.0<16,16,1>UB g86.0<16,16,1>UB {align1};
-avg.sat (16) g100.0<1>UW g86.0<16,16,1>UB g88.0<16,16,1>UB {align1};
-avg.sat (16) g101.0<1>UW g88.0<16,16,1>UB g90.0<16,16,1>UB {align1};
-avg.sat (16) g102.0<1>UW g90.0<16,16,1>UB g92.0<16,16,1>UB {align1};
-avg.sat (16) g103.0<1>UW g92.0<16,16,1>UB g94.0<16,16,1>UB {align1};
-jmpi out;
-
-avg.sat (16) g96.0<1>UW g78.1<16,16,1>UB g80.1<16,16,1>UB {align1};
-avg.sat (16) g97.0<1>UW g80.1<16,16,1>UB g82.1<16,16,1>UB {align1};
-avg.sat (16) g98.0<1>UW g82.1<16,16,1>UB g84.1<16,16,1>UB {align1};
-avg.sat (16) g99.0<1>UW g84.1<16,16,1>UB g86.1<16,16,1>UB {align1};
-avg.sat (16) g100.0<1>UW g86.1<16,16,1>UB g88.1<16,16,1>UB {align1};
-avg.sat (16) g101.0<1>UW g88.1<16,16,1>UB g90.1<16,16,1>UB {align1};
-avg.sat (16) g102.0<1>UW g90.1<16,16,1>UB g92.1<16,16,1>UB {align1};
-avg.sat (16) g103.0<1>UW g92.1<16,16,1>UB g94.1<16,16,1>UB {align1};
-jmpi out;
-
-avg.sat (16) g96.0<1>UW g78.2<16,16,1>UB g80.2<16,16,1>UB {align1};
-avg.sat (16) g97.0<1>UW g80.2<16,16,1>UB g82.2<16,16,1>UB {align1};
-avg.sat (16) g98.0<1>UW g82.2<16,16,1>UB g84.2<16,16,1>UB {align1};
-avg.sat (16) g99.0<1>UW g84.2<16,16,1>UB g86.2<16,16,1>UB {align1};
-avg.sat (16) g100.0<1>UW g86.2<16,16,1>UB g88.2<16,16,1>UB {align1};
-avg.sat (16) g101.0<1>UW g88.2<16,16,1>UB g90.2<16,16,1>UB {align1};
-avg.sat (16) g102.0<1>UW g90.2<16,16,1>UB g92.2<16,16,1>UB {align1};
-avg.sat (16) g103.0<1>UW g92.2<16,16,1>UB g94.2<16,16,1>UB {align1};
-jmpi out;
-
-avg.sat (16) g96.0<1>UW g78.3<16,16,1>UB g80.3<16,16,1>UB {align1};
-avg.sat (16) g97.0<1>UW g80.3<16,16,1>UB g82.3<16,16,1>UB {align1};
-avg.sat (16) g98.0<1>UW g82.3<16,16,1>UB g84.3<16,16,1>UB {align1};
-avg.sat (16) g99.0<1>UW g84.3<16,16,1>UB g86.3<16,16,1>UB {align1};
-avg.sat (16) g100.0<1>UW g86.3<16,16,1>UB g88.3<16,16,1>UB {align1};
-avg.sat (16) g101.0<1>UW g88.3<16,16,1>UB g90.3<16,16,1>UB {align1};
-avg.sat (16) g102.0<1>UW g90.3<16,16,1>UB g92.3<16,16,1>UB {align1};
-avg.sat (16) g103.0<1>UW g92.3<16,16,1>UB g94.3<16,16,1>UB {align1};
-
-out:
diff --git a/src/xvmc/read_field_x0y1_y_igd.g4i b/src/xvmc/read_field_x0y1_y_igd.g4i
deleted file mode 100644
index e48211b..0000000
--- a/src/xvmc/read_field_x0y1_y_igd.g4i
+++ /dev/null
@@ -1,51 +0,0 @@
-/*
- * Copyright © 2008 Intel Corporation
- *
- * Permission is hereby granted, free of charge, to any person obtaining a
- * copy of this software and associated documentation files (the "Software"),
- * to deal in the Software without restriction, including without limitation
- * the rights to use, copy, modify, merge, publish, distribute, sublicense,
- * and/or sell copies of the Software, and to permit persons to whom the
- * Software is furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice (including the next
- * paragraph) shall be included in all copies or substantial portions of the
- * Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
- * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
- * SOFTWARE.
- *
- * Author:
- *    Zou Nan hai <nanhai.zou at intel.com>
- *    Zhang Hua jun <huajun.zhang at intel.com>
- *    Xing Dong sheng <dongsheng.xing at intel.com>
- *
- */
-mov (1) g115.8<1>UD 0x01FUD {align1};
-send (16) 0 g78.0<1>UW g115<8,8,1>UW read(surface,2,0,2) mlen 1 rlen 1 {align1};
-add (1) g115.4<1>UD g115.4<1,1,1>UD 2UD {align1};
-send (16) 0 g80.0<1>UW g115<8,8,1>UW read(surface,2,0,2) mlen 1 rlen 1 {align1};
-add (1) g115.4<1>UD g115.4<1,1,1>UD 2UD {align1};
-send (16) 0 g82.0<1>UW g115<8,8,1>UW read(surface,2,0,2) mlen 1 rlen 1 {align1};
-add (1) g115.4<1>UD g115.4<1,1,1>UD 2UD {align1};
-send (16) 0 g84.0<1>UW g115<8,8,1>UW read(surface,2,0,2) mlen 1 rlen 1 {align1};
-add (1) g115.4<1>UD g115.4<1,1,1>UD 2UD {align1};
-mov (1) g115.8<1>UD 0x07001FUD {align1};
-send (16) 0 g86.0<1>UW g115<8,8,1>UW read(surface,2,0,2) mlen 1 rlen 8 {align1};
-add (1) g115.4<1>UD g115.4<1,1,1>UD 8UD {align1};
-mov (1) g115.8<1>UD 0x1FUD {align1};
-send (16) 0 g94.0<1>UW g115<8,8,1>UW read(surface,2,0,2) mlen 1 rlen 1 {align1};
-
-avg.sat (16) g96.0<1>UW g78.0<16,16,1>UB g80.0<16,16,1>UB {align1};
-avg.sat (16) g97.0<1>UW g80.0<16,16,1>UB g82.0<16,16,1>UB {align1};
-avg.sat (16) g98.0<1>UW g82.0<16,16,1>UB g84.0<16,16,1>UB {align1};
-avg.sat (16) g99.0<1>UW g84.0<16,16,1>UB g86.0<16,16,1>UB {align1};
-avg.sat (16) g100.0<1>UW g86.0<16,16,1>UB g88.0<16,16,1>UB {align1};
-avg.sat (16) g101.0<1>UW g88.0<16,16,1>UB g90.0<16,16,1>UB {align1};
-avg.sat (16) g102.0<1>UW g90.0<16,16,1>UB g92.0<16,16,1>UB {align1};
-avg.sat (16) g103.0<1>UW g92.0<16,16,1>UB g94.0<16,16,1>UB {align1};
diff --git a/src/xvmc/read_field_x1y0_uv.g4i b/src/xvmc/read_field_x1y0_uv.g4i
deleted file mode 100644
index e89a2dc..0000000
--- a/src/xvmc/read_field_x1y0_uv.g4i
+++ /dev/null
@@ -1,75 +0,0 @@
-/*
- * Copyright © 2008 Intel Corporation
- *
- * Permission is hereby granted, free of charge, to any person obtaining a
- * copy of this software and associated documentation files (the "Software"),
- * to deal in the Software without restriction, including without limitation
- * the rights to use, copy, modify, merge, publish, distribute, sublicense,
- * and/or sell copies of the Software, and to permit persons to whom the
- * Software is furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice (including the next
- * paragraph) shall be included in all copies or substantial portions of the
- * Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
- * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
- * SOFTWARE.
- *
- * Author:
- *    Zou Nan hai <nanhai.zou at intel.com>
- *    Zhang Hua jun <huajun.zhang at intel.com>
- *    Xing Dong sheng <dongsheng.xing at intel.com>
- *
- */
-mov (1) g115.8<1>UD 0x07000FUD {align1}; // 8*16/32=4
-send (16) 0 g86.0<1>UW g115<16,8,1>UW read(surface_u, 2, 0, 2) mlen 1 rlen 4 {align1};//U
-send (16) 0 g91.0<1>UW g115<16,8,1>UW read(surface_v, 2, 0, 2) mlen 1 rlen 4 {align1};//V
-and (1) g2.24<1>UD g115.0<1,1,1>UD 3UD {align1};
-mul (1) g2.24<1>UD g2.24<1,1,1>UD 9UD {align1};
-jmpi g2.24<1,1,1>D;
-
-avg.sat (16) g78.0<1>UW g86.0<16,8,1>UB g86.1<16,8,1>UB {align1};
-avg.sat (16) g79.0<1>UW g87.0<16,8,1>UB g87.1<16,8,1>UB {align1};
-avg.sat (16) g80.0<1>UW g88.0<16,8,1>UB g88.1<16,8,1>UB {align1};
-avg.sat (16) g81.0<1>UW g89.0<16,8,1>UB g89.1<16,8,1>UB {align1};
-avg.sat (16) g82.0<1>UW g91.0<16,8,1>UB g91.1<16,8,1>UB {align1};
-avg.sat (16) g83.0<1>UW g92.0<16,8,1>UB g92.1<16,8,1>UB {align1};
-avg.sat (16) g84.0<1>UW g93.0<16,8,1>UB g93.1<16,8,1>UB {align1};
-avg.sat (16) g85.0<1>UW g94.0<16,8,1>UB g94.1<16,8,1>UB {align1};
-jmpi out;
-
-avg.sat (16) g78.0<1>UW g86.1<16,8,1>UB g86.2<16,8,1>UB {align1};
-avg.sat (16) g79.0<1>UW g87.1<16,8,1>UB g87.2<16,8,1>UB {align1};
-avg.sat (16) g80.0<1>UW g88.1<16,8,1>UB g88.2<16,8,1>UB {align1};
-avg.sat (16) g81.0<1>UW g89.1<16,8,1>UB g89.2<16,8,1>UB {align1};
-avg.sat (16) g82.0<1>UW g91.1<16,8,1>UB g91.2<16,8,1>UB {align1};
-avg.sat (16) g83.0<1>UW g92.1<16,8,1>UB g92.2<16,8,1>UB {align1};
-avg.sat (16) g84.0<1>UW g93.1<16,8,1>UB g93.2<16,8,1>UB {align1};
-avg.sat (16) g85.0<1>UW g94.1<16,8,1>UB g94.2<16,8,1>UB {align1};
-jmpi out;
-
-avg.sat (16) g78.0<1>UW g86.2<16,8,1>UB g86.3<16,8,1>UB {align1};
-avg.sat (16) g79.0<1>UW g87.2<16,8,1>UB g87.3<16,8,1>UB {align1};
-avg.sat (16) g80.0<1>UW g88.2<16,8,1>UB g88.3<16,8,1>UB {align1};
-avg.sat (16) g81.0<1>UW g89.2<16,8,1>UB g89.3<16,8,1>UB {align1};
-avg.sat (16) g82.0<1>UW g91.2<16,8,1>UB g91.3<16,8,1>UB {align1};
-avg.sat (16) g83.0<1>UW g92.2<16,8,1>UB g92.3<16,8,1>UB {align1};
-avg.sat (16) g84.0<1>UW g93.2<16,8,1>UB g93.3<16,8,1>UB {align1};
-avg.sat (16) g85.0<1>UW g94.2<16,8,1>UB g94.3<16,8,1>UB {align1};
-jmpi out;
-
-avg.sat (16) g78.0<1>UW g86.3<16,8,1>UB g86.4<16,8,1>UB {align1};
-avg.sat (16) g79.0<1>UW g87.3<16,8,1>UB g87.4<16,8,1>UB {align1};
-avg.sat (16) g80.0<1>UW g88.3<16,8,1>UB g88.4<16,8,1>UB {align1};
-avg.sat (16) g81.0<1>UW g89.3<16,8,1>UB g89.4<16,8,1>UB {align1};
-avg.sat (16) g82.0<1>UW g91.3<16,8,1>UB g91.4<16,8,1>UB {align1};
-avg.sat (16) g83.0<1>UW g92.3<16,8,1>UB g92.4<16,8,1>UB {align1};
-avg.sat (16) g84.0<1>UW g93.3<16,8,1>UB g93.4<16,8,1>UB {align1};
-avg.sat (16) g85.0<1>UW g94.3<16,8,1>UB g94.4<16,8,1>UB {align1};
-
-out:
diff --git a/src/xvmc/read_field_x1y0_uv_igd.g4i b/src/xvmc/read_field_x1y0_uv_igd.g4i
deleted file mode 100644
index fc56acc..0000000
--- a/src/xvmc/read_field_x1y0_uv_igd.g4i
+++ /dev/null
@@ -1,40 +0,0 @@
-/*
- * Copyright © 2008 Intel Corporation
- *
- * Permission is hereby granted, free of charge, to any person obtaining a
- * copy of this software and associated documentation files (the "Software"),
- * to deal in the Software without restriction, including without limitation
- * the rights to use, copy, modify, merge, publish, distribute, sublicense,
- * and/or sell copies of the Software, and to permit persons to whom the
- * Software is furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice (including the next
- * paragraph) shall be included in all copies or substantial portions of the
- * Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
- * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
- * SOFTWARE.
- *
- * Author:
- *    Zou Nan hai <nanhai.zou at intel.com>
- *    Zhang Hua jun <huajun.zhang at intel.com>
- *    Xing Dong sheng <dongsheng.xing at intel.com>
- *
- */
-mov (1) g115.8<1>UD 0x07000FUD {align1}; // 8*16/32=4
-send (16) 0 g86.0<1>UW g115<16,8,1>UW read(surface_u, 2, 0, 2) mlen 1 rlen 4 {align1};//U
-send (16) 0 g91.0<1>UW g115<16,8,1>UW read(surface_v, 2, 0, 2) mlen 1 rlen 4 {align1};//V
-
-avg.sat (16) g78.0<1>UW g86.0<16,8,1>UB g86.1<16,8,1>UB {align1};
-avg.sat (16) g79.0<1>UW g87.0<16,8,1>UB g87.1<16,8,1>UB {align1};
-avg.sat (16) g80.0<1>UW g88.0<16,8,1>UB g88.1<16,8,1>UB {align1};
-avg.sat (16) g81.0<1>UW g89.0<16,8,1>UB g89.1<16,8,1>UB {align1};
-avg.sat (16) g82.0<1>UW g91.0<16,8,1>UB g91.1<16,8,1>UB {align1};
-avg.sat (16) g83.0<1>UW g92.0<16,8,1>UB g92.1<16,8,1>UB {align1};
-avg.sat (16) g84.0<1>UW g93.0<16,8,1>UB g93.1<16,8,1>UB {align1};
-avg.sat (16) g85.0<1>UW g94.0<16,8,1>UB g94.1<16,8,1>UB {align1};
diff --git a/src/xvmc/read_field_x1y0_y.g4i b/src/xvmc/read_field_x1y0_y.g4i
deleted file mode 100644
index a517aaa..0000000
--- a/src/xvmc/read_field_x1y0_y.g4i
+++ /dev/null
@@ -1,83 +0,0 @@
-/*
- * Copyright © 2008 Intel Corporation
- *
- * Permission is hereby granted, free of charge, to any person obtaining a
- * copy of this software and associated documentation files (the "Software"),
- * to deal in the Software without restriction, including without limitation
- * the rights to use, copy, modify, merge, publish, distribute, sublicense,
- * and/or sell copies of the Software, and to permit persons to whom the
- * Software is furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice (including the next
- * paragraph) shall be included in all copies or substantial portions of the
- * Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
- * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
- * SOFTWARE.
- *
- * Author:
- *    Zou Nan hai <nanhai.zou at intel.com>
- *    Zhang Hua jun <huajun.zhang at intel.com>
- *    Xing Dong sheng <dongsheng.xing at intel.com>
- *
- */
-mov (1) g115.8<1>UD 0x01FUD {align1};
-send (16) 0 g78.0<1>UW g115<8,8,1>UW read(surface,2,0,2) mlen 1 rlen 1 {align1};
-add (1) g115.4<1>UD g115.4<1,1,1>UD 2UD {align1};
-send (16) 0 g80.0<1>UW g115<8,8,1>UW read(surface,2,0,2) mlen 1 rlen 1 {align1};
-add (1) g115.4<1>UD g115.4<1,1,1>UD 2UD {align1};
-send (16) 0 g82.0<1>UW g115<8,8,1>UW read(surface,2,0,2) mlen 1 rlen 1 {align1};
-add (1) g115.4<1>UD g115.4<1,1,1>UD 2UD {align1};
-send (16) 0 g84.0<1>UW g115<8,8,1>UW read(surface,2,0,2) mlen 1 rlen 1 {align1};
-add (1) g115.4<1>UD g115.4<1,1,1>UD 2UD {align1};
-mov (1) g115.8<1>UD 0x07001FUD {align1};
-send (16) 0 g86.0<1>UW g115<8,8,1>UW read(surface,2,0,2) mlen 1 rlen 8 {align1};
-and (1) g2.24<1>UD g115.0<1,1,1>UD 3UD {align1};
-mul (1) g2.24<1>UD g2.24<1,1,1>UD 9UD {align1};
-jmpi g2.24<1,1,1>D;
-
-avg.sat (16) g96.0<1>UW g78.0<16,16,1>UB g78.1<16,16,1>UB {align1};
-avg.sat (16) g97.0<1>UW g80.0<16,16,1>UB g80.1<16,16,1>UB {align1};
-avg.sat (16) g98.0<1>UW g82.0<16,16,1>UB g82.1<16,16,1>UB {align1};
-avg.sat (16) g99.0<1>UW g84.0<16,16,1>UB g84.1<16,16,1>UB {align1};
-avg.sat (16) g100.0<1>UW g86.0<16,16,1>UB g86.1<16,16,1>UB {align1};
-avg.sat (16) g101.0<1>UW g88.0<16,16,1>UB g88.1<16,16,1>UB {align1};
-avg.sat (16) g102.0<1>UW g90.0<16,16,1>UB g90.1<16,16,1>UB {align1};
-avg.sat (16) g103.0<1>UW g92.0<16,16,1>UB g92.1<16,16,1>UB {align1};
-jmpi out;
-
-avg.sat (16) g96.0<1>UW g78.1<16,16,1>UB g78.2<16,16,1>UB {align1};
-avg.sat (16) g97.0<1>UW g80.1<16,16,1>UB g80.2<16,16,1>UB {align1};
-avg.sat (16) g98.0<1>UW g82.1<16,16,1>UB g82.2<16,16,1>UB {align1};
-avg.sat (16) g99.0<1>UW g84.1<16,16,1>UB g84.2<16,16,1>UB {align1};
-avg.sat (16) g100.0<1>UW g86.1<16,16,1>UB g86.2<16,16,1>UB {align1};
-avg.sat (16) g101.0<1>UW g88.1<16,16,1>UB g88.2<16,16,1>UB {align1};
-avg.sat (16) g102.0<1>UW g90.1<16,16,1>UB g90.2<16,16,1>UB {align1};
-avg.sat (16) g103.0<1>UW g92.1<16,16,1>UB g92.2<16,16,1>UB {align1};
-jmpi out;
-
-avg.sat (16) g96.0<1>UW g78.2<16,16,1>UB g78.3<16,16,1>UB {align1};
-avg.sat (16) g97.0<1>UW g80.2<16,16,1>UB g80.3<16,16,1>UB {align1};
-avg.sat (16) g98.0<1>UW g82.2<16,16,1>UB g82.3<16,16,1>UB {align1};
-avg.sat (16) g99.0<1>UW g84.2<16,16,1>UB g84.3<16,16,1>UB {align1};
-avg.sat (16) g100.0<1>UW g86.2<16,16,1>UB g86.3<16,16,1>UB {align1};
-avg.sat (16) g101.0<1>UW g88.2<16,16,1>UB g88.3<16,16,1>UB {align1};
-avg.sat (16) g102.0<1>UW g90.2<16,16,1>UB g90.3<16,16,1>UB {align1};
-avg.sat (16) g103.0<1>UW g92.2<16,16,1>UB g92.3<16,16,1>UB {align1};
-jmpi out;
-
-avg.sat (16) g96.0<1>UW g78.3<16,16,1>UB g78.4<16,16,1>UB {align1};
-avg.sat (16) g97.0<1>UW g80.3<16,16,1>UB g80.4<16,16,1>UB {align1};
-avg.sat (16) g98.0<1>UW g82.3<16,16,1>UB g82.4<16,16,1>UB {align1};
-avg.sat (16) g99.0<1>UW g84.3<16,16,1>UB g84.4<16,16,1>UB {align1};
-avg.sat (16) g100.0<1>UW g86.3<16,16,1>UB g86.4<16,16,1>UB {align1};
-avg.sat (16) g101.0<1>UW g88.3<16,16,1>UB g88.4<16,16,1>UB {align1};
-avg.sat (16) g102.0<1>UW g90.3<16,16,1>UB g90.4<16,16,1>UB {align1};
-avg.sat (16) g103.0<1>UW g92.3<16,16,1>UB g92.4<16,16,1>UB {align1};
-
-out:
diff --git a/src/xvmc/read_field_x1y0_y_igd.g4i b/src/xvmc/read_field_x1y0_y_igd.g4i
deleted file mode 100644
index 14394ca..0000000
--- a/src/xvmc/read_field_x1y0_y_igd.g4i
+++ /dev/null
@@ -1,48 +0,0 @@
-/*
- * Copyright © 2008 Intel Corporation
- *
- * Permission is hereby granted, free of charge, to any person obtaining a
- * copy of this software and associated documentation files (the "Software"),
- * to deal in the Software without restriction, including without limitation
- * the rights to use, copy, modify, merge, publish, distribute, sublicense,
- * and/or sell copies of the Software, and to permit persons to whom the
- * Software is furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice (including the next
- * paragraph) shall be included in all copies or substantial portions of the
- * Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
- * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
- * SOFTWARE.
- *
- * Author:
- *    Zou Nan hai <nanhai.zou at intel.com>
- *    Zhang Hua jun <huajun.zhang at intel.com>
- *    Xing Dong sheng <dongsheng.xing at intel.com>
- *
- */
-mov (1) g115.8<1>UD 0x01FUD {align1};
-send (16) 0 g78.0<1>UW g115<8,8,1>UW read(surface,2,0,2) mlen 1 rlen 1 {align1};
-add (1) g115.4<1>UD g115.4<1,1,1>UD 2UD {align1};
-send (16) 0 g80.0<1>UW g115<8,8,1>UW read(surface,2,0,2) mlen 1 rlen 1 {align1};
-add (1) g115.4<1>UD g115.4<1,1,1>UD 2UD {align1};
-send (16) 0 g82.0<1>UW g115<8,8,1>UW read(surface,2,0,2) mlen 1 rlen 1 {align1};
-add (1) g115.4<1>UD g115.4<1,1,1>UD 2UD {align1};
-send (16) 0 g84.0<1>UW g115<8,8,1>UW read(surface,2,0,2) mlen 1 rlen 1 {align1};
-add (1) g115.4<1>UD g115.4<1,1,1>UD 2UD {align1};
-mov (1) g115.8<1>UD 0x07001FUD {align1};
-send (16) 0 g86.0<1>UW g115<8,8,1>UW read(surface,2,0,2) mlen 1 rlen 8 {align1};
-
-avg.sat (16) g96.0<1>UW g78.0<16,16,1>UB g78.1<16,16,1>UB {align1};
-avg.sat (16) g97.0<1>UW g80.0<16,16,1>UB g80.1<16,16,1>UB {align1};
-avg.sat (16) g98.0<1>UW g82.0<16,16,1>UB g82.1<16,16,1>UB {align1};
-avg.sat (16) g99.0<1>UW g84.0<16,16,1>UB g84.1<16,16,1>UB {align1};
-avg.sat (16) g100.0<1>UW g86.0<16,16,1>UB g86.1<16,16,1>UB {align1};
-avg.sat (16) g101.0<1>UW g88.0<16,16,1>UB g88.1<16,16,1>UB {align1};
-avg.sat (16) g102.0<1>UW g90.0<16,16,1>UB g90.1<16,16,1>UB {align1};
-avg.sat (16) g103.0<1>UW g92.0<16,16,1>UB g92.1<16,16,1>UB {align1};
diff --git a/src/xvmc/read_field_x1y1_uv.g4i b/src/xvmc/read_field_x1y1_uv.g4i
deleted file mode 100644
index 162de9a..0000000
--- a/src/xvmc/read_field_x1y1_uv.g4i
+++ /dev/null
@@ -1,172 +0,0 @@
-/*
- * Copyright © 2008 Intel Corporation
- *
- * Permission is hereby granted, free of charge, to any person obtaining a
- * copy of this software and associated documentation files (the "Software"),
- * to deal in the Software without restriction, including without limitation
- * the rights to use, copy, modify, merge, publish, distribute, sublicense,
- * and/or sell copies of the Software, and to permit persons to whom the
- * Software is furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice (including the next
- * paragraph) shall be included in all copies or substantial portions of the
- * Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
- * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
- * SOFTWARE.
- *
- * Author:
- *    Zou Nan hai <nanhai.zou at intel.com>
- *    Zhang Hua jun <huajun.zhang at intel.com>
- *    Xing Dong sheng <dongsheng.xing at intel.com>
- *
- */
-mov (1) g115.8<1>UD 0x07000FUD {align1};
-send (16) 0 g86.0<1>UW g115<16,8,1>UW read(surface_u, 2, 0, 2) mlen 1 rlen 4 {align1};//U
-send (16) 0 g91.0<1>UW g115<16,8,1>UW read(surface_v, 2, 0, 2) mlen 1 rlen 4 {align1};//V
-and (1) g2.24<1>UD g115.0<1,1,1>UD 3UD {align1};
-mul (1) g2.24<1>UD g2.24<1,1,1>UD 25UD {align1};
-mov (1) g115.8<1>UD 0x01000FUD {align1};
-add (1) g115.4<1>UD g115.4<1,1,1>UD 8UD {align1};
-send (16) 0 g90.0<1>UW g115<16,8,1>UW read(surface_u, 2, 0, 2) mlen 1 rlen 1 {align1};
-send (16) 0 g95.0<1>UW g115<16,8,1>UW read(surface_v, 2, 0, 2) mlen 1 rlen 1 {align1};
-jmpi g2.24<1,1,1>D;
-//U
-add (16) g78.0<1>UW g86.0<16,8,1>UB g87.0<16,8,1>UB {align1};
-add (16) g79.0<1>UW g87.0<16,8,1>UB g88.0<16,8,1>UB {align1};
-add (16) g80.0<1>UW g88.0<16,8,1>UB g89.0<16,8,1>UB {align1};
-add (16) g81.0<1>UW g89.0<16,8,1>UB g90.0<16,8,1>UB {align1};
-
-add (16) g78.0<1>UW g78.0<16,8,1>UW g86.1<16,8,1>UB {align1};
-add (16) g79.0<1>UW g79.0<16,8,1>UW g87.1<16,8,1>UB {align1};
-add (16) g80.0<1>UW g80.0<16,8,1>UW g88.1<16,8,1>UB {align1};
-add (16) g81.0<1>UW g81.0<16,8,1>UW g89.1<16,8,1>UB {align1};
-
-add (16) g78.0<1>UW g78.0<16,8,1>UW g87.1<16,8,1>UB {align1};
-add (16) g79.0<1>UW g79.0<16,8,1>UW g88.1<16,8,1>UB {align1};
-add (16) g80.0<1>UW g80.0<16,8,1>UW g89.1<16,8,1>UB {align1};
-add (16) g81.0<1>UW g81.0<16,8,1>UW g90.1<16,8,1>UB {align1};
-//V
-add (16) g82.0<1>UW g91.0<16,8,1>UB g92.0<16,8,1>UB {align1};
-add (16) g83.0<1>UW g92.0<16,8,1>UB g93.0<16,8,1>UB {align1};
-add (16) g84.0<1>UW g93.0<16,8,1>UB g94.0<16,8,1>UB {align1};
-add (16) g85.0<1>UW g94.0<16,8,1>UB g95.0<16,8,1>UB {align1};
-
-add (16) g82.0<1>UW g82.0<16,8,1>UW g91.1<16,8,1>UB {align1};
-add (16) g83.0<1>UW g83.0<16,8,1>UW g92.1<16,8,1>UB {align1};
-add (16) g84.0<1>UW g84.0<16,8,1>UW g93.1<16,8,1>UB {align1};
-add (16) g85.0<1>UW g85.0<16,8,1>UW g94.1<16,8,1>UB {align1};
-
-add (16) g82.0<1>UW g82.0<16,8,1>UW g92.1<16,8,1>UB {align1};
-add (16) g83.0<1>UW g83.0<16,8,1>UW g93.1<16,8,1>UB {align1};
-add (16) g84.0<1>UW g84.0<16,8,1>UW g94.1<16,8,1>UB {align1};
-add (16) g85.0<1>UW g85.0<16,8,1>UW g95.1<16,8,1>UB {align1};
-jmpi out;
-//U
-add (16) g78.0<1>UW g86.1<16,8,1>UB g87.1<16,8,1>UB {align1};
-add (16) g79.0<1>UW g87.1<16,8,1>UB g88.1<16,8,1>UB {align1};
-add (16) g80.0<1>UW g88.1<16,8,1>UB g89.1<16,8,1>UB {align1};
-add (16) g81.0<1>UW g89.1<16,8,1>UB g90.1<16,8,1>UB {align1};
-
-add (16) g78.0<1>UW g78.0<16,8,1>UW g86.2<16,8,1>UB {align1};
-add (16) g79.0<1>UW g79.0<16,8,1>UW g87.2<16,8,1>UB {align1};
-add (16) g80.0<1>UW g80.0<16,8,1>UW g88.2<16,8,1>UB {align1};
-add (16) g81.0<1>UW g81.0<16,8,1>UW g89.2<16,8,1>UB {align1};
-
-add (16) g78.0<1>UW g78.0<16,8,1>UW g87.2<16,8,1>UB {align1};
-add (16) g79.0<1>UW g79.0<16,8,1>UW g88.2<16,8,1>UB {align1};
-add (16) g80.0<1>UW g80.0<16,8,1>UW g89.2<16,8,1>UB {align1};
-add (16) g81.0<1>UW g81.0<16,8,1>UW g90.2<16,8,1>UB {align1};
-//V
-add (16) g82.0<1>UW g91.1<16,8,1>UB g92.1<16,8,1>UB {align1};
-add (16) g83.0<1>UW g92.1<16,8,1>UB g93.1<16,8,1>UB {align1};
-add (16) g84.0<1>UW g93.1<16,8,1>UB g94.1<16,8,1>UB {align1};
-add (16) g85.0<1>UW g94.1<16,8,1>UB g95.1<16,8,1>UB {align1};
-
-add (16) g82.0<1>UW g82.0<16,8,1>UW g91.2<16,8,1>UB {align1};
-add (16) g83.0<1>UW g83.0<16,8,1>UW g92.2<16,8,1>UB {align1};
-add (16) g84.0<1>UW g84.0<16,8,1>UW g93.2<16,8,1>UB {align1};
-add (16) g85.0<1>UW g85.0<16,8,1>UW g94.2<16,8,1>UB {align1};
-
-add (16) g82.0<1>UW g82.0<16,8,1>UW g92.2<16,8,1>UB {align1};
-add (16) g83.0<1>UW g83.0<16,8,1>UW g93.2<16,8,1>UB {align1};
-add (16) g84.0<1>UW g84.0<16,8,1>UW g94.2<16,8,1>UB {align1};
-add (16) g85.0<1>UW g85.0<16,8,1>UW g95.2<16,8,1>UB {align1};
-jmpi out;
-//U
-add (16) g78.0<1>UW g86.2<16,8,1>UB g87.2<16,8,1>UB {align1};
-add (16) g79.0<1>UW g87.2<16,8,1>UB g88.2<16,8,1>UB {align1};
-add (16) g80.0<1>UW g88.2<16,8,1>UB g89.2<16,8,1>UB {align1};
-add (16) g81.0<1>UW g89.2<16,8,1>UB g90.2<16,8,1>UB {align1};
-
-add (16) g78.0<1>UW g78.0<16,8,1>UW g86.3<16,8,1>UB {align1};
-add (16) g79.0<1>UW g79.0<16,8,1>UW g87.3<16,8,1>UB {align1};
-add (16) g80.0<1>UW g80.0<16,8,1>UW g88.3<16,8,1>UB {align1};
-add (16) g81.0<1>UW g81.0<16,8,1>UW g89.3<16,8,1>UB {align1};
-
-add (16) g78.0<1>UW g78.0<16,8,1>UW g87.3<16,8,1>UB {align1};
-add (16) g79.0<1>UW g79.0<16,8,1>UW g88.3<16,8,1>UB {align1};
-add (16) g80.0<1>UW g80.0<16,8,1>UW g89.3<16,8,1>UB {align1};
-add (16) g81.0<1>UW g81.0<16,8,1>UW g90.3<16,8,1>UB {align1};
-//V
-add (16) g82.0<1>UW g91.2<16,8,1>UB g92.2<16,8,1>UB {align1};
-add (16) g83.0<1>UW g92.2<16,8,1>UB g93.2<16,8,1>UB {align1};
-add (16) g84.0<1>UW g93.2<16,8,1>UB g94.2<16,8,1>UB {align1};
-add (16) g85.0<1>UW g94.2<16,8,1>UB g95.2<16,8,1>UB {align1};
-
-add (16) g82.0<1>UW g82.0<16,8,1>UW g91.3<16,8,1>UB {align1};
-add (16) g83.0<1>UW g83.0<16,8,1>UW g92.3<16,8,1>UB {align1};
-add (16) g84.0<1>UW g84.0<16,8,1>UW g93.3<16,8,1>UB {align1};
-add (16) g85.0<1>UW g85.0<16,8,1>UW g94.3<16,8,1>UB {align1};
-
-add (16) g82.0<1>UW g82.0<16,8,1>UW g92.3<16,8,1>UB {align1};
-add (16) g83.0<1>UW g83.0<16,8,1>UW g93.3<16,8,1>UB {align1};
-add (16) g84.0<1>UW g84.0<16,8,1>UW g94.3<16,8,1>UB {align1};
-add (16) g85.0<1>UW g85.0<16,8,1>UW g95.3<16,8,1>UB {align1};
-jmpi out;
-//U
-add (16) g78.0<1>UW g86.3<16,8,1>UB g87.3<16,8,1>UB {align1};
-add (16) g79.0<1>UW g87.3<16,8,1>UB g88.3<16,8,1>UB {align1};
-add (16) g80.0<1>UW g88.3<16,8,1>UB g89.3<16,8,1>UB {align1};
-add (16) g81.0<1>UW g89.3<16,8,1>UB g90.3<16,8,1>UB {align1};
-
-add (16) g78.0<1>UW g78.0<16,8,1>UW g86.4<16,8,1>UB {align1};
-add (16) g79.0<1>UW g79.0<16,8,1>UW g87.4<16,8,1>UB {align1};
-add (16) g80.0<1>UW g80.0<16,8,1>UW g88.4<16,8,1>UB {align1};
-add (16) g81.0<1>UW g81.0<16,8,1>UW g89.4<16,8,1>UB {align1};
-
-add (16) g78.0<1>UW g78.0<16,8,1>UW g87.4<16,8,1>UB {align1};
-add (16) g79.0<1>UW g79.0<16,8,1>UW g88.4<16,8,1>UB {align1};
-add (16) g80.0<1>UW g80.0<16,8,1>UW g89.4<16,8,1>UB {align1};
-add (16) g81.0<1>UW g81.0<16,8,1>UW g90.4<16,8,1>UB {align1};
-//V
-add (16) g82.0<1>UW g91.3<16,8,1>UB g92.3<16,8,1>UB {align1};
-add (16) g83.0<1>UW g92.3<16,8,1>UB g93.3<16,8,1>UB {align1};
-add (16) g84.0<1>UW g93.3<16,8,1>UB g94.3<16,8,1>UB {align1};
-add (16) g85.0<1>UW g94.3<16,8,1>UB g95.3<16,8,1>UB {align1};
-
-add (16) g82.0<1>UW g82.0<16,8,1>UW g91.4<16,8,1>UB {align1};
-add (16) g83.0<1>UW g83.0<16,8,1>UW g92.4<16,8,1>UB {align1};
-add (16) g84.0<1>UW g84.0<16,8,1>UW g93.4<16,8,1>UB {align1};
-add (16) g85.0<1>UW g85.0<16,8,1>UW g94.4<16,8,1>UB {align1};
-
-add (16) g82.0<1>UW g82.0<16,8,1>UW g92.4<16,8,1>UB {align1};
-add (16) g83.0<1>UW g83.0<16,8,1>UW g93.4<16,8,1>UB {align1};
-add (16) g84.0<1>UW g84.0<16,8,1>UW g94.4<16,8,1>UB {align1};
-add (16) g85.0<1>UW g85.0<16,8,1>UW g95.4<16,8,1>UB {align1};
-
-out:
-shr.sat (16) g78.0<1>UW g78.0<16,16,1>UW 2UW {align1};
-shr.sat (16) g79.0<1>UW g79.0<16,16,1>UW 2UW {align1};
-shr.sat (16) g80.0<1>UW g80.0<16,16,1>UW 2UW {align1};
-shr.sat (16) g81.0<1>UW g81.0<16,16,1>UW 2UW {align1};
-shr.sat (16) g82.0<1>UW g82.0<16,16,1>UW 2UW {align1};
-shr.sat (16) g83.0<1>UW g83.0<16,16,1>UW 2UW {align1};
-shr.sat (16) g84.0<1>UW g84.0<16,16,1>UW 2UW {align1};
-shr.sat (16) g85.0<1>UW g85.0<16,16,1>UW 2UW {align1};
-
diff --git a/src/xvmc/read_field_x1y1_uv_igd.g4i b/src/xvmc/read_field_x1y1_uv_igd.g4i
deleted file mode 100644
index 10f48c8..0000000
--- a/src/xvmc/read_field_x1y1_uv_igd.g4i
+++ /dev/null
@@ -1,75 +0,0 @@
-/*
- * Copyright © 2008 Intel Corporation
- *
- * Permission is hereby granted, free of charge, to any person obtaining a
- * copy of this software and associated documentation files (the "Software"),
- * to deal in the Software without restriction, including without limitation
- * the rights to use, copy, modify, merge, publish, distribute, sublicense,
- * and/or sell copies of the Software, and to permit persons to whom the
- * Software is furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice (including the next
- * paragraph) shall be included in all copies or substantial portions of the
- * Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
- * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
- * SOFTWARE.
- *
- * Author:
- *    Zou Nan hai <nanhai.zou at intel.com>
- *    Zhang Hua jun <huajun.zhang at intel.com>
- *    Xing Dong sheng <dongsheng.xing at intel.com>
- *
- */
-mov (1) g115.8<1>UD 0x07000FUD {align1};
-send (16) 0 g86.0<1>UW g115<16,8,1>UW read(surface_u, 2, 0, 2) mlen 1 rlen 4 {align1};//U
-send (16) 0 g91.0<1>UW g115<16,8,1>UW read(surface_v, 2, 0, 2) mlen 1 rlen 4 {align1};//V
-mov (1) g115.8<1>UD 0x01000FUD {align1};
-add (1) g115.4<1>UD g115.4<1,1,1>UD 8UD {align1};
-send (16) 0 g90.0<1>UW g115<16,8,1>UW read(surface_u, 2, 0, 2) mlen 1 rlen 1 {align1};
-send (16) 0 g95.0<1>UW g115<16,8,1>UW read(surface_v, 2, 0, 2) mlen 1 rlen 1 {align1};
-//U
-add (16) g78.0<1>UW g86.0<16,8,1>UB g87.0<16,8,1>UB {align1};
-add (16) g79.0<1>UW g87.0<16,8,1>UB g88.0<16,8,1>UB {align1};
-add (16) g80.0<1>UW g88.0<16,8,1>UB g89.0<16,8,1>UB {align1};
-add (16) g81.0<1>UW g89.0<16,8,1>UB g90.0<16,8,1>UB {align1};
-
-add (16) g78.0<1>UW g78.0<16,8,1>UW g86.1<16,8,1>UB {align1};
-add (16) g79.0<1>UW g79.0<16,8,1>UW g87.1<16,8,1>UB {align1};
-add (16) g80.0<1>UW g80.0<16,8,1>UW g88.1<16,8,1>UB {align1};
-add (16) g81.0<1>UW g81.0<16,8,1>UW g89.1<16,8,1>UB {align1};
-
-add (16) g78.0<1>UW g78.0<16,8,1>UW g87.1<16,8,1>UB {align1};
-add (16) g79.0<1>UW g79.0<16,8,1>UW g88.1<16,8,1>UB {align1};
-add (16) g80.0<1>UW g80.0<16,8,1>UW g89.1<16,8,1>UB {align1};
-add (16) g81.0<1>UW g81.0<16,8,1>UW g90.1<16,8,1>UB {align1};
-//V
-add (16) g82.0<1>UW g91.0<16,8,1>UB g92.0<16,8,1>UB {align1};
-add (16) g83.0<1>UW g92.0<16,8,1>UB g93.0<16,8,1>UB {align1};
-add (16) g84.0<1>UW g93.0<16,8,1>UB g94.0<16,8,1>UB {align1};
-add (16) g85.0<1>UW g94.0<16,8,1>UB g95.0<16,8,1>UB {align1};
-
-add (16) g82.0<1>UW g82.0<16,8,1>UW g91.1<16,8,1>UB {align1};
-add (16) g83.0<1>UW g83.0<16,8,1>UW g92.1<16,8,1>UB {align1};
-add (16) g84.0<1>UW g84.0<16,8,1>UW g93.1<16,8,1>UB {align1};
-add (16) g85.0<1>UW g85.0<16,8,1>UW g94.1<16,8,1>UB {align1};
-
-add (16) g82.0<1>UW g82.0<16,8,1>UW g92.1<16,8,1>UB {align1};
-add (16) g83.0<1>UW g83.0<16,8,1>UW g93.1<16,8,1>UB {align1};
-add (16) g84.0<1>UW g84.0<16,8,1>UW g94.1<16,8,1>UB {align1};
-add (16) g85.0<1>UW g85.0<16,8,1>UW g95.1<16,8,1>UB {align1};
-
-shr.sat (16) g78.0<1>UW g78.0<16,16,1>UW 2UW {align1};
-shr.sat (16) g79.0<1>UW g79.0<16,16,1>UW 2UW {align1};
-shr.sat (16) g80.0<1>UW g80.0<16,16,1>UW 2UW {align1};
-shr.sat (16) g81.0<1>UW g81.0<16,16,1>UW 2UW {align1};
-shr.sat (16) g82.0<1>UW g82.0<16,16,1>UW 2UW {align1};
-shr.sat (16) g83.0<1>UW g83.0<16,16,1>UW 2UW {align1};
-shr.sat (16) g84.0<1>UW g84.0<16,16,1>UW 2UW {align1};
-shr.sat (16) g85.0<1>UW g85.0<16,16,1>UW 2UW {align1};
-
diff --git a/src/xvmc/read_field_x1y1_y.g4i b/src/xvmc/read_field_x1y1_y.g4i
deleted file mode 100644
index 7c01701..0000000
--- a/src/xvmc/read_field_x1y1_y.g4i
+++ /dev/null
@@ -1,166 +0,0 @@
-/*
- * Copyright © 2008 Intel Corporation
- *
- * Permission is hereby granted, free of charge, to any person obtaining a
- * copy of this software and associated documentation files (the "Software"),
- * to deal in the Software without restriction, including without limitation
- * the rights to use, copy, modify, merge, publish, distribute, sublicense,
- * and/or sell copies of the Software, and to permit persons to whom the
- * Software is furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice (including the next
- * paragraph) shall be included in all copies or substantial portions of the
- * Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
- * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
- * SOFTWARE.
- *
- * Author:
- *    Zou Nan hai <nanhai.zou at intel.com>
- *    Zhang Hua jun <huajun.zhang at intel.com>
- *    Xing Dong sheng <dongsheng.xing at intel.com>
- *
- */
-mov (1) g115.8<1>UD 0x01FUD {align1};
-send (16) 0 g78.0<1>UW g115<8,8,1>UW read(surface,2,0,2) mlen 1 rlen 1 {align1};
-add (1) g115.4<1>UD g115.4<1,1,1>UD 2UD {align1};
-send (16) 0 g80.0<1>UW g115<8,8,1>UW read(surface,2,0,2) mlen 1 rlen 1 {align1};
-add (1) g115.4<1>UD g115.4<1,1,1>UD 2UD {align1};
-send (16) 0 g82.0<1>UW g115<8,8,1>UW read(surface,2,0,2) mlen 1 rlen 1 {align1};
-add (1) g115.4<1>UD g115.4<1,1,1>UD 2UD {align1};
-send (16) 0 g84.0<1>UW g115<8,8,1>UW read(surface,2,0,2) mlen 1 rlen 1 {align1};
-add (1) g115.4<1>UD g115.4<1,1,1>UD 2UD {align1};
-mov (1) g115.8<1>UD 0x07001FUD {align1};
-send (16) 0 g86.0<1>UW g115<8,8,1>UW read(surface,2,0,2) mlen 1 rlen 8 {align1};
-add (1) g115.4<1>UD g115.4<1,1,1>UD 8UD {align1};
-mov (1) g115.8<1>UD 0x1FUD {align1};
-send (16) 0 g94.0<1>UW g115<8,8,1>UW read(surface,2,0,2) mlen 1 rlen 1 {align1};
-and (1) g2.24<1>UD g115.0<1,1,1>UD 3UD {align1};
-mul (1) g2.24<1>UD g2.24<1,1,1>UD 25UD {align1};
-jmpi g2.24<1,1,1>D;
-
-add (16) g96.0<1>UW g78.0<16,16,1>UB g80.0<16,16,1>UB {align1};
-add (16) g97.0<1>UW g80.0<16,16,1>UB g82.0<16,16,1>UB {align1};
-add (16) g98.0<1>UW g82.0<16,16,1>UB g84.0<16,16,1>UB {align1};
-add (16) g99.0<1>UW g84.0<16,16,1>UB g86.0<16,16,1>UB {align1};
-add (16) g100.0<1>UW g86.0<16,16,1>UB g88.0<16,16,1>UB {align1};
-add (16) g101.0<1>UW g88.0<16,16,1>UB g90.0<16,16,1>UB {align1};
-add (16) g102.0<1>UW g90.0<16,16,1>UB g92.0<16,16,1>UB {align1};
-add (16) g103.0<1>UW g92.0<16,16,1>UB g94.0<16,16,1>UB {align1};
-
-add (16) g96.0<1>UW g96.0<16,16,1>UW g78.1<16,16,1>UB {align1};
-add (16) g97.0<1>UW g97.0<16,16,1>UW g80.1<16,16,1>UB {align1};
-add (16) g98.0<1>UW g98.0<16,16,1>UW g82.1<16,16,1>UB {align1};
-add (16) g99.0<1>UW g99.0<16,16,1>UW g84.1<16,16,1>UB {align1};
-add (16) g100.0<1>UW g100.0<16,16,1>UW g86.1<16,16,1>UB {align1};
-add (16) g101.0<1>UW g101.0<16,16,1>UW g88.1<16,16,1>UB {align1};
-add (16) g102.0<1>UW g102.0<16,16,1>UW g90.1<16,16,1>UB {align1};
-add (16) g103.0<1>UW g103.0<16,16,1>UW g92.1<16,16,1>UB {align1};
-
-add (16) g96.0<1>UW g96.0<16,16,1>UW g80.1<16,16,1>UB {align1};
-add (16) g97.0<1>UW g97.0<16,16,1>UW g82.1<16,16,1>UB {align1};
-add (16) g98.0<1>UW g98.0<16,16,1>UW g84.1<16,16,1>UB {align1};
-add (16) g99.0<1>UW g99.0<16,16,1>UW g86.1<16,16,1>UB {align1};
-add (16) g100.0<1>UW g100.0<16,16,1>UW g88.1<16,16,1>UB {align1};
-add (16) g101.0<1>UW g101.0<16,16,1>UW g90.1<16,16,1>UB {align1};
-add (16) g102.0<1>UW g102.0<16,16,1>UW g92.1<16,16,1>UB {align1};
-add (16) g103.0<1>UW g103.0<16,16,1>UW g94.1<16,16,1>UB {align1};
-jmpi out;
-
-add (16) g96.0<1>UW g78.1<16,16,1>UB g80.1<16,16,1>UB {align1};
-add (16) g97.0<1>UW g80.1<16,16,1>UB g82.1<16,16,1>UB {align1};
-add (16) g98.0<1>UW g82.1<16,16,1>UB g84.1<16,16,1>UB {align1};
-add (16) g99.0<1>UW g84.1<16,16,1>UB g86.1<16,16,1>UB {align1};
-add (16) g100.0<1>UW g86.1<16,16,1>UB g88.1<16,16,1>UB {align1};
-add (16) g101.0<1>UW g88.1<16,16,1>UB g90.1<16,16,1>UB {align1};
-add (16) g102.0<1>UW g90.1<16,16,1>UB g92.1<16,16,1>UB {align1};
-add (16) g103.0<1>UW g92.1<16,16,1>UB g94.1<16,16,1>UB {align1};
-
-add (16) g96.0<1>UW g96.0<16,16,1>UW g78.2<16,16,1>UB {align1};
-add (16) g97.0<1>UW g97.0<16,16,1>UW g80.2<16,16,1>UB {align1};
-add (16) g98.0<1>UW g98.0<16,16,1>UW g82.2<16,16,1>UB {align1};
-add (16) g99.0<1>UW g99.0<16,16,1>UW g84.2<16,16,1>UB {align1};
-add (16) g100.0<1>UW g100.0<16,16,1>UW g86.2<16,16,1>UB {align1};
-add (16) g101.0<1>UW g101.0<16,16,1>UW g88.2<16,16,1>UB {align1};
-add (16) g102.0<1>UW g102.0<16,16,1>UW g90.2<16,16,1>UB {align1};
-add (16) g103.0<1>UW g103.0<16,16,1>UW g92.2<16,16,1>UB {align1};
-
-add (16) g96.0<1>UW g96.0<16,16,1>UW g80.2<16,16,1>UB {align1};
-add (16) g97.0<1>UW g97.0<16,16,1>UW g82.2<16,16,1>UB {align1};
-add (16) g98.0<1>UW g98.0<16,16,1>UW g84.2<16,16,1>UB {align1};
-add (16) g99.0<1>UW g99.0<16,16,1>UW g86.2<16,16,1>UB {align1};
-add (16) g100.0<1>UW g100.0<16,16,1>UW g88.2<16,16,1>UB {align1};
-add (16) g101.0<1>UW g101.0<16,16,1>UW g90.2<16,16,1>UB {align1};
-add (16) g102.0<1>UW g102.0<16,16,1>UW g92.2<16,16,1>UB {align1};
-add (16) g103.0<1>UW g103.0<16,16,1>UW g94.2<16,16,1>UB {align1};
-jmpi out;
-
-add (16) g96.0<1>UW g78.2<16,16,1>UB g80.2<16,16,1>UB {align1};
-add (16) g97.0<1>UW g80.2<16,16,1>UB g82.2<16,16,1>UB {align1};
-add (16) g98.0<1>UW g82.2<16,16,1>UB g84.2<16,16,1>UB {align1};
-add (16) g99.0<1>UW g84.2<16,16,1>UB g86.2<16,16,1>UB {align1};
-add (16) g100.0<1>UW g86.2<16,16,1>UB g88.2<16,16,1>UB {align1};
-add (16) g101.0<1>UW g88.2<16,16,1>UB g90.2<16,16,1>UB {align1};
-add (16) g102.0<1>UW g90.2<16,16,1>UB g92.2<16,16,1>UB {align1};
-add (16) g103.0<1>UW g92.2<16,16,1>UB g94.2<16,16,1>UB {align1};
-
-add (16) g96.0<1>UW g96.0<16,16,1>UW g78.3<16,16,1>UB {align1};
-add (16) g97.0<1>UW g97.0<16,16,1>UW g80.3<16,16,1>UB {align1};
-add (16) g98.0<1>UW g98.0<16,16,1>UW g82.3<16,16,1>UB {align1};
-add (16) g99.0<1>UW g99.0<16,16,1>UW g84.3<16,16,1>UB {align1};
-add (16) g100.0<1>UW g100.0<16,16,1>UW g86.3<16,16,1>UB {align1};
-add (16) g101.0<1>UW g101.0<16,16,1>UW g88.3<16,16,1>UB {align1};
-add (16) g102.0<1>UW g102.0<16,16,1>UW g90.3<16,16,1>UB {align1};
-add (16) g103.0<1>UW g103.0<16,16,1>UW g92.3<16,16,1>UB {align1};
-
-add (16) g96.0<1>UW g96.0<16,16,1>UW g80.3<16,16,1>UB {align1};
-add (16) g97.0<1>UW g97.0<16,16,1>UW g82.3<16,16,1>UB {align1};
-add (16) g98.0<1>UW g98.0<16,16,1>UW g84.3<16,16,1>UB {align1};
-add (16) g99.0<1>UW g99.0<16,16,1>UW g86.3<16,16,1>UB {align1};
-add (16) g100.0<1>UW g100.0<16,16,1>UW g88.3<16,16,1>UB {align1};
-add (16) g101.0<1>UW g101.0<16,16,1>UW g90.3<16,16,1>UB {align1};
-add (16) g102.0<1>UW g102.0<16,16,1>UW g92.3<16,16,1>UB {align1};
-add (16) g103.0<1>UW g103.0<16,16,1>UW g94.3<16,16,1>UB {align1};
-jmpi out;
-
-add (16) g96.0<1>UW g78.3<16,16,1>UB g80.3<16,16,1>UB {align1};
-add (16) g97.0<1>UW g80.3<16,16,1>UB g82.3<16,16,1>UB {align1};
-add (16) g98.0<1>UW g82.3<16,16,1>UB g84.3<16,16,1>UB {align1};
-add (16) g99.0<1>UW g84.3<16,16,1>UB g86.3<16,16,1>UB {align1};
-add (16) g100.0<1>UW g86.3<16,16,1>UB g88.3<16,16,1>UB {align1};
-add (16) g101.0<1>UW g88.3<16,16,1>UB g90.3<16,16,1>UB {align1};
-add (16) g102.0<1>UW g90.3<16,16,1>UB g92.3<16,16,1>UB {align1};
-add (16) g103.0<1>UW g92.3<16,16,1>UB g94.3<16,16,1>UB {align1};
-
-add (16) g96.0<1>UW g96.0<16,16,1>UW g78.4<16,16,1>UB {align1};
-add (16) g97.0<1>UW g97.0<16,16,1>UW g80.4<16,16,1>UB {align1};
-add (16) g98.0<1>UW g98.0<16,16,1>UW g82.4<16,16,1>UB {align1};
-add (16) g99.0<1>UW g99.0<16,16,1>UW g84.4<16,16,1>UB {align1};
-add (16) g100.0<1>UW g100.0<16,16,1>UW g86.4<16,16,1>UB {align1};
-add (16) g101.0<1>UW g101.0<16,16,1>UW g88.4<16,16,1>UB {align1};
-add (16) g102.0<1>UW g102.0<16,16,1>UW g90.4<16,16,1>UB {align1};
-add (16) g103.0<1>UW g103.0<16,16,1>UW g92.4<16,16,1>UB {align1};
-
-add (16) g96.0<1>UW g96.0<16,16,1>UW g80.4<16,16,1>UB {align1};
-add (16) g97.0<1>UW g97.0<16,16,1>UW g82.4<16,16,1>UB {align1};
-add (16) g98.0<1>UW g98.0<16,16,1>UW g84.4<16,16,1>UB {align1};
-add (16) g99.0<1>UW g99.0<16,16,1>UW g86.4<16,16,1>UB {align1};
-add (16) g100.0<1>UW g100.0<16,16,1>UW g88.4<16,16,1>UB {align1};
-add (16) g101.0<1>UW g101.0<16,16,1>UW g90.4<16,16,1>UB {align1};
-add (16) g102.0<1>UW g102.0<16,16,1>UW g92.4<16,16,1>UB {align1};
-add (16) g103.0<1>UW g103.0<16,16,1>UW g94.4<16,16,1>UB {align1};
-
-out:
-shr (16) g96.0<1>UW g96.0<16,16,1>UW 2UW {align1};
-shr (16) g97.0<1>UW g97.0<16,16,1>UW 2UW {align1};
-shr (16) g98.0<1>UW g98.0<16,16,1>UW 2UW {align1};
-shr (16) g99.0<1>UW g99.0<16,16,1>UW 2UW {align1};
-shr (16) g100.0<1>UW g100.0<16,16,1>UW 2UW {align1};
-shr (16) g101.0<1>UW g101.0<16,16,1>UW 2UW {align1};
-shr (16) g102.0<1>UW g102.0<16,16,1>UW 2UW {align1};
-shr (16) g103.0<1>UW g103.0<16,16,1>UW 2UW {align1};
diff --git a/src/xvmc/read_field_x1y1_y_igd.g4i b/src/xvmc/read_field_x1y1_y_igd.g4i
deleted file mode 100644
index 39526c8..0000000
--- a/src/xvmc/read_field_x1y1_y_igd.g4i
+++ /dev/null
@@ -1,78 +0,0 @@
-/*
- * Copyright © 2008 Intel Corporation
- *
- * Permission is hereby granted, free of charge, to any person obtaining a
- * copy of this software and associated documentation files (the "Software"),
- * to deal in the Software without restriction, including without limitation
- * the rights to use, copy, modify, merge, publish, distribute, sublicense,
- * and/or sell copies of the Software, and to permit persons to whom the
- * Software is furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice (including the next
- * paragraph) shall be included in all copies or substantial portions of the
- * Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
- * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
- * SOFTWARE.
- *
- * Author:
- *    Zou Nan hai <nanhai.zou at intel.com>
- *    Zhang Hua jun <huajun.zhang at intel.com>
- *    Xing Dong sheng <dongsheng.xing at intel.com>
- *
- */
-mov (1) g115.8<1>UD 0x01FUD {align1};
-send (16) 0 g78.0<1>UW g115<8,8,1>UW read(surface,2,0,2) mlen 1 rlen 1 {align1};
-add (1) g115.4<1>UD g115.4<1,1,1>UD 2UD {align1};
-send (16) 0 g80.0<1>UW g115<8,8,1>UW read(surface,2,0,2) mlen 1 rlen 1 {align1};
-add (1) g115.4<1>UD g115.4<1,1,1>UD 2UD {align1};
-send (16) 0 g82.0<1>UW g115<8,8,1>UW read(surface,2,0,2) mlen 1 rlen 1 {align1};
-add (1) g115.4<1>UD g115.4<1,1,1>UD 2UD {align1};
-send (16) 0 g84.0<1>UW g115<8,8,1>UW read(surface,2,0,2) mlen 1 rlen 1 {align1};
-add (1) g115.4<1>UD g115.4<1,1,1>UD 2UD {align1};
-mov (1) g115.8<1>UD 0x07001FUD {align1};
-send (16) 0 g86.0<1>UW g115<8,8,1>UW read(surface,2,0,2) mlen 1 rlen 8 {align1};
-add (1) g115.4<1>UD g115.4<1,1,1>UD 8UD {align1};
-mov (1) g115.8<1>UD 0x1FUD {align1};
-send (16) 0 g94.0<1>UW g115<8,8,1>UW read(surface,2,0,2) mlen 1 rlen 1 {align1};
-
-add (16) g96.0<1>UW g78.0<16,16,1>UB g80.0<16,16,1>UB {align1};
-add (16) g97.0<1>UW g80.0<16,16,1>UB g82.0<16,16,1>UB {align1};
-add (16) g98.0<1>UW g82.0<16,16,1>UB g84.0<16,16,1>UB {align1};
-add (16) g99.0<1>UW g84.0<16,16,1>UB g86.0<16,16,1>UB {align1};
-add (16) g100.0<1>UW g86.0<16,16,1>UB g88.0<16,16,1>UB {align1};
-add (16) g101.0<1>UW g88.0<16,16,1>UB g90.0<16,16,1>UB {align1};
-add (16) g102.0<1>UW g90.0<16,16,1>UB g92.0<16,16,1>UB {align1};
-add (16) g103.0<1>UW g92.0<16,16,1>UB g94.0<16,16,1>UB {align1};
-
-add (16) g96.0<1>UW g96.0<16,16,1>UW g78.1<16,16,1>UB {align1};
-add (16) g97.0<1>UW g97.0<16,16,1>UW g80.1<16,16,1>UB {align1};
-add (16) g98.0<1>UW g98.0<16,16,1>UW g82.1<16,16,1>UB {align1};
-add (16) g99.0<1>UW g99.0<16,16,1>UW g84.1<16,16,1>UB {align1};
-add (16) g100.0<1>UW g100.0<16,16,1>UW g86.1<16,16,1>UB {align1};
-add (16) g101.0<1>UW g101.0<16,16,1>UW g88.1<16,16,1>UB {align1};
-add (16) g102.0<1>UW g102.0<16,16,1>UW g90.1<16,16,1>UB {align1};
-add (16) g103.0<1>UW g103.0<16,16,1>UW g92.1<16,16,1>UB {align1};
-
-add (16) g96.0<1>UW g96.0<16,16,1>UW g80.1<16,16,1>UB {align1};
-add (16) g97.0<1>UW g97.0<16,16,1>UW g82.1<16,16,1>UB {align1};
-add (16) g98.0<1>UW g98.0<16,16,1>UW g84.1<16,16,1>UB {align1};
-add (16) g99.0<1>UW g99.0<16,16,1>UW g86.1<16,16,1>UB {align1};
-add (16) g100.0<1>UW g100.0<16,16,1>UW g88.1<16,16,1>UB {align1};
-add (16) g101.0<1>UW g101.0<16,16,1>UW g90.1<16,16,1>UB {align1};
-add (16) g102.0<1>UW g102.0<16,16,1>UW g92.1<16,16,1>UB {align1};
-add (16) g103.0<1>UW g103.0<16,16,1>UW g94.1<16,16,1>UB {align1};
-
-shr (16) g96.0<1>UW g96.0<16,16,1>UW 2UW {align1};
-shr (16) g97.0<1>UW g97.0<16,16,1>UW 2UW {align1};
-shr (16) g98.0<1>UW g98.0<16,16,1>UW 2UW {align1};
-shr (16) g99.0<1>UW g99.0<16,16,1>UW 2UW {align1};
-shr (16) g100.0<1>UW g100.0<16,16,1>UW 2UW {align1};
-shr (16) g101.0<1>UW g101.0<16,16,1>UW 2UW {align1};
-shr (16) g102.0<1>UW g102.0<16,16,1>UW 2UW {align1};
-shr (16) g103.0<1>UW g103.0<16,16,1>UW 2UW {align1};
diff --git a/src/xvmc/read_frame_x0y0_uv.g4i b/src/xvmc/read_frame_x0y0_uv.g4i
deleted file mode 100644
index 43f77a8..0000000
--- a/src/xvmc/read_frame_x0y0_uv.g4i
+++ /dev/null
@@ -1,73 +0,0 @@
-/*
- * Copyright © 2008 Intel Corporation
- *
- * Permission is hereby granted, free of charge, to any person obtaining a
- * copy of this software and associated documentation files (the "Software"),
- * to deal in the Software without restriction, including without limitation
- * the rights to use, copy, modify, merge, publish, distribute, sublicense,
- * and/or sell copies of the Software, and to permit persons to whom the
- * Software is furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice (including the next
- * paragraph) shall be included in all copies or substantial portions of the
- * Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
- * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
- * SOFTWARE.
- *
- * Author:
- *    Zou Nan hai <nanhai.zou at intel.com>
- *    Zhang Hua jun <huajun.zhang at intel.com>
- *    Xing Dong sheng <dongsheng.xing at intel.com>
- *
- */
-and (1) g2.24<1>UD g2.0<1,1,1>UD 0x3UD {align1};
-send (16) 0 g86.0<1>UW g2<8,8,1>UW read(input_surface1, 2, 0, 2) mlen 1 rlen 4 {align1};
-send (16) 0 g90.0<1>UW g2<8,8,1>UW read(input_surface2, 2, 0, 2) mlen 1 rlen 4 {align1};
-mul(1) g2.24<1>UD g2.24<1,1,1>UD 0x9UD {align1};
-jmpi g2.24<1,1,1>D;
-
-mov (16) g44.0<1>UW g86.0<16,8,1>UB {align1};
-mov (16) g45.0<1>UW g87.0<16,8,1>UB {align1};
-mov (16) g46.0<1>UW g88.0<16,8,1>UB {align1};
-mov (16) g47.0<1>UW g89.0<16,8,1>UB {align1};
-mov (16) g48.0<1>UW g90.0<16,8,1>UB {align1};
-mov (16) g49.0<1>UW g91.0<16,8,1>UB {align1};
-mov (16) g50.0<1>UW g92.0<16,8,1>UB {align1};
-mov (16) g51.0<1>UW g93.0<16,8,1>UB {align1};
-jmpi out;
-
-mov (16) g44.0<1>UW g86.1<16,8,1>UB {align1};
-mov (16) g45.0<1>UW g87.1<16,8,1>UB {align1};
-mov (16) g46.0<1>UW g88.1<16,8,1>UB {align1};
-mov (16) g47.0<1>UW g89.1<16,8,1>UB {align1};
-mov (16) g48.0<1>UW g90.1<16,8,1>UB {align1};
-mov (16) g49.0<1>UW g91.1<16,8,1>UB {align1};
-mov (16) g50.0<1>UW g92.1<16,8,1>UB {align1};
-mov (16) g51.0<1>UW g93.1<16,8,1>UB {align1};
-jmpi out;
-
-mov (16) g44.0<1>UW g86.2<16,8,1>UB {align1};
-mov (16) g45.0<1>UW g87.2<16,8,1>UB {align1};
-mov (16) g46.0<1>UW g88.2<16,8,1>UB {align1};
-mov (16) g47.0<1>UW g89.2<16,8,1>UB {align1};
-mov (16) g48.0<1>UW g90.2<16,8,1>UB {align1};
-mov (16) g49.0<1>UW g91.2<16,8,1>UB {align1};
-mov (16) g50.0<1>UW g92.2<16,8,1>UB {align1};
-mov (16) g51.0<1>UW g93.2<16,8,1>UB {align1};
-jmpi out;
-
-mov (16) g44.0<1>UW g86.3<16,8,1>UB {align1};
-mov (16) g45.0<1>UW g87.3<16,8,1>UB {align1};
-mov (16) g46.0<1>UW g88.3<16,8,1>UB {align1};
-mov (16) g47.0<1>UW g89.3<16,8,1>UB {align1};
-mov (16) g48.0<1>UW g90.3<16,8,1>UB {align1};
-mov (16) g49.0<1>UW g91.3<16,8,1>UB {align1};
-mov (16) g50.0<1>UW g92.3<16,8,1>UB {align1};
-mov (16) g51.0<1>UW g93.3<16,8,1>UB {align1};
-out:
diff --git a/src/xvmc/read_frame_x0y0_uv_igd.g4i b/src/xvmc/read_frame_x0y0_uv_igd.g4i
deleted file mode 100644
index d522d0e..0000000
--- a/src/xvmc/read_frame_x0y0_uv_igd.g4i
+++ /dev/null
@@ -1,39 +0,0 @@
-/*
- * Copyright © 2008 Intel Corporation
- *
- * Permission is hereby granted, free of charge, to any person obtaining a
- * copy of this software and associated documentation files (the "Software"),
- * to deal in the Software without restriction, including without limitation
- * the rights to use, copy, modify, merge, publish, distribute, sublicense,
- * and/or sell copies of the Software, and to permit persons to whom the
- * Software is furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice (including the next
- * paragraph) shall be included in all copies or substantial portions of the
- * Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
- * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
- * SOFTWARE.
- *
- * Author:
- *    Zou Nan hai <nanhai.zou at intel.com>
- *    Zhang Hua jun <huajun.zhang at intel.com>
- *    Xing Dong sheng <dongsheng.xing at intel.com>
- *
- */
-send (16) 0 g86.0<1>UW g2<8,8,1>UW read(input_surface1, 2, 0, 2) mlen 1 rlen 4 {align1};
-send (16) 0 g90.0<1>UW g2<8,8,1>UW read(input_surface2, 2, 0, 2) mlen 1 rlen 4 {align1};
-
-mov (16) g44.0<1>UW g86.0<16,8,1>UB {align1};
-mov (16) g45.0<1>UW g87.0<16,8,1>UB {align1};
-mov (16) g46.0<1>UW g88.0<16,8,1>UB {align1};
-mov (16) g47.0<1>UW g89.0<16,8,1>UB {align1};
-mov (16) g48.0<1>UW g90.0<16,8,1>UB {align1};
-mov (16) g49.0<1>UW g91.0<16,8,1>UB {align1};
-mov (16) g50.0<1>UW g92.0<16,8,1>UB {align1};
-mov (16) g51.0<1>UW g93.0<16,8,1>UB {align1};
diff --git a/src/xvmc/read_frame_x0y0_y.g4i b/src/xvmc/read_frame_x0y0_y.g4i
deleted file mode 100644
index 20f577d..0000000
--- a/src/xvmc/read_frame_x0y0_y.g4i
+++ /dev/null
@@ -1,109 +0,0 @@
-/*
- * Copyright © 2008 Intel Corporation
- *
- * Permission is hereby granted, free of charge, to any person obtaining a
- * copy of this software and associated documentation files (the "Software"),
- * to deal in the Software without restriction, including without limitation
- * the rights to use, copy, modify, merge, publish, distribute, sublicense,
- * and/or sell copies of the Software, and to permit persons to whom the
- * Software is furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice (including the next
- * paragraph) shall be included in all copies or substantial portions of the
- * Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
- * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
- * SOFTWARE.
- *
- * Author:
- *    Zou Nan hai <nanhai.zou at intel.com>
- *    Zhang Hua jun <huajun.zhang at intel.com>
- *    Xing Dong sheng <dongsheng.xing at intel.com>
- *
- */
-mov (1) g2.8<1>UD 0x007001FUD {align1};
-send (16) 0 g98.0<1>UW g2<8,8,1>UW read(input_surface, 2, 0, 2) mlen 1 rlen 8 {align1};
-add (1) g2.4<1>UD g2.4<1,1,1>UD 8UD {align1};
-send (16) 0 g106.0<1>UW g2<8,8,1>UW read(input_surface, 2, 0, 2) mlen 1 rlen 8 {align1};
-
-and (1) g2.24<1>UD g2.0<1,1,1>UD 3UD {align1};
-mul(1) g2.24<1>UD g2.24<1,1,1>UD 17UD {align1};
-jmpi g2.24<1,1,1>D;
-
-mov (16) g28.0<1>UW g98.0<16,16,1>UB {align1};
-mov (16) g29.0<1>UW g99.0<16,16,1>UB {align1};
-mov (16) g30.0<1>UW g100.0<16,16,1>UB {align1};
-mov (16) g31.0<1>UW g101.0<16,16,1>UB {align1};
-mov (16) g32.0<1>UW g102.0<16,16,1>UB {align1};
-mov (16) g33.0<1>UW g103.0<16,16,1>UB {align1};
-mov (16) g34.0<1>UW g104.0<16,16,1>UB {align1};
-mov (16) g35.0<1>UW g105.0<16,16,1>UB {align1};
-mov (16) g36.0<1>UW g106.0<16,16,1>UB {align1};
-mov (16) g37.0<1>UW g107.0<16,16,1>UB {align1};
-mov (16) g38.0<1>UW g108.0<16,16,1>UB {align1};
-mov (16) g39.0<1>UW g109.0<16,16,1>UB {align1};
-mov (16) g40.0<1>UW g110.0<16,16,1>UB {align1};
-mov (16) g41.0<1>UW g111.0<16,16,1>UB {align1};
-mov (16) g42.0<1>UW g112.0<16,16,1>UB {align1};
-mov (16) g43.0<1>UW g113.0<16,16,1>UB {align1};
-jmpi out;
-
-mov (16) g28.0<1>UW g98.1<16,16,1>UB {align1};
-mov (16) g29.0<1>UW g99.1<16,16,1>UB {align1};
-mov (16) g30.0<1>UW g100.1<16,16,1>UB {align1};
-mov (16) g31.0<1>UW g101.1<16,16,1>UB {align1};
-mov (16) g32.0<1>UW g102.1<16,16,1>UB {align1};
-mov (16) g33.0<1>UW g103.1<16,16,1>UB {align1};
-mov (16) g34.0<1>UW g104.1<16,16,1>UB {align1};
-mov (16) g35.0<1>UW g105.1<16,16,1>UB {align1};
-mov (16) g36.0<1>UW g106.1<16,16,1>UB {align1};
-mov (16) g37.0<1>UW g107.1<16,16,1>UB {align1};
-mov (16) g38.0<1>UW g108.1<16,16,1>UB {align1};
-mov (16) g39.0<1>UW g109.1<16,16,1>UB {align1};
-mov (16) g40.0<1>UW g110.1<16,16,1>UB {align1};
-mov (16) g41.0<1>UW g111.1<16,16,1>UB {align1};
-mov (16) g42.0<1>UW g112.1<16,16,1>UB {align1};
-mov (16) g43.0<1>UW g113.1<16,16,1>UB {align1};
-jmpi out;
-
-mov (16) g28.0<1>UW g98.2<16,16,1>UB {align1};
-mov (16) g29.0<1>UW g99.2<16,16,1>UB {align1};
-mov (16) g30.0<1>UW g100.2<16,16,1>UB {align1};
-mov (16) g31.0<1>UW g101.2<16,16,1>UB {align1};
-mov (16) g32.0<1>UW g102.2<16,16,1>UB {align1};
-mov (16) g33.0<1>UW g103.2<16,16,1>UB {align1};
-mov (16) g34.0<1>UW g104.2<16,16,1>UB {align1};
-mov (16) g35.0<1>UW g105.2<16,16,1>UB {align1};
-mov (16) g36.0<1>UW g106.2<16,16,1>UB {align1};
-mov (16) g37.0<1>UW g107.2<16,16,1>UB {align1};
-mov (16) g38.0<1>UW g108.2<16,16,1>UB {align1};
-mov (16) g39.0<1>UW g109.2<16,16,1>UB {align1};
-mov (16) g40.0<1>UW g110.2<16,16,1>UB {align1};
-mov (16) g41.0<1>UW g111.2<16,16,1>UB {align1};
-mov (16) g42.0<1>UW g112.2<16,16,1>UB {align1};
-mov (16) g43.0<1>UW g113.2<16,16,1>UB {align1};
-jmpi out;
-
-mov (16) g28.0<1>UW g98.3<16,16,1>UB {align1};
-mov (16) g29.0<1>UW g99.3<16,16,1>UB {align1};
-mov (16) g30.0<1>UW g100.3<16,16,1>UB {align1};
-mov (16) g31.0<1>UW g101.3<16,16,1>UB {align1};
-mov (16) g32.0<1>UW g102.3<16,16,1>UB {align1};
-mov (16) g33.0<1>UW g103.3<16,16,1>UB {align1};
-mov (16) g34.0<1>UW g104.3<16,16,1>UB {align1};
-mov (16) g35.0<1>UW g105.3<16,16,1>UB {align1};
-mov (16) g36.0<1>UW g106.3<16,16,1>UB {align1};
-mov (16) g37.0<1>UW g107.3<16,16,1>UB {align1};
-mov (16) g38.0<1>UW g108.3<16,16,1>UB {align1};
-mov (16) g39.0<1>UW g109.3<16,16,1>UB {align1};
-mov (16) g40.0<1>UW g110.3<16,16,1>UB {align1};
-mov (16) g41.0<1>UW g111.3<16,16,1>UB {align1};
-mov (16) g42.0<1>UW g112.3<16,16,1>UB {align1};
-mov (16) g43.0<1>UW g113.3<16,16,1>UB {align1};
-
-out:
diff --git a/src/xvmc/read_frame_x0y0_y_igd.g4i b/src/xvmc/read_frame_x0y0_y_igd.g4i
deleted file mode 100644
index 6191abf..0000000
--- a/src/xvmc/read_frame_x0y0_y_igd.g4i
+++ /dev/null
@@ -1,50 +0,0 @@
-/*
- * Copyright © 2008 Intel Corporation
- *
- * Permission is hereby granted, free of charge, to any person obtaining a
- * copy of this software and associated documentation files (the "Software"),
- * to deal in the Software without restriction, including without limitation
- * the rights to use, copy, modify, merge, publish, distribute, sublicense,
- * and/or sell copies of the Software, and to permit persons to whom the
- * Software is furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice (including the next
- * paragraph) shall be included in all copies or substantial portions of the
- * Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
- * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
- * SOFTWARE.
- *
- * Author:
- *    Zou Nan hai <nanhai.zou at intel.com>
- *    Zhang Hua jun <huajun.zhang at intel.com>
- *    Xing Dong sheng <dongsheng.xing at intel.com>
- *
- */
-mov (1) g2.8<1>UD 0x007001FUD {align1};
-send (16) 0 g98.0<1>UW g2<8,8,1>UW read(input_surface, 2, 0, 2) mlen 1 rlen 8 {align1};
-add (1) g2.4<1>UD g2.4<1,1,1>UD 8UD {align1};
-send (16) 0 g106.0<1>UW g2<8,8,1>UW read(input_surface, 2, 0, 2) mlen 1 rlen 8 {align1};
-
-
-mov (16) g28.0<1>UW g98.0<16,16,1>UB {align1};
-mov (16) g29.0<1>UW g99.0<16,16,1>UB {align1};
-mov (16) g30.0<1>UW g100.0<16,16,1>UB {align1};
-mov (16) g31.0<1>UW g101.0<16,16,1>UB {align1};
-mov (16) g32.0<1>UW g102.0<16,16,1>UB {align1};
-mov (16) g33.0<1>UW g103.0<16,16,1>UB {align1};
-mov (16) g34.0<1>UW g104.0<16,16,1>UB {align1};
-mov (16) g35.0<1>UW g105.0<16,16,1>UB {align1};
-mov (16) g36.0<1>UW g106.0<16,16,1>UB {align1};
-mov (16) g37.0<1>UW g107.0<16,16,1>UB {align1};
-mov (16) g38.0<1>UW g108.0<16,16,1>UB {align1};
-mov (16) g39.0<1>UW g109.0<16,16,1>UB {align1};
-mov (16) g40.0<1>UW g110.0<16,16,1>UB {align1};
-mov (16) g41.0<1>UW g111.0<16,16,1>UB {align1};
-mov (16) g42.0<1>UW g112.0<16,16,1>UB {align1};
-mov (16) g43.0<1>UW g113.0<16,16,1>UB {align1};
diff --git a/src/xvmc/read_frame_x0y1_uv.g4i b/src/xvmc/read_frame_x0y1_uv.g4i
deleted file mode 100644
index 58bebbc..0000000
--- a/src/xvmc/read_frame_x0y1_uv.g4i
+++ /dev/null
@@ -1,79 +0,0 @@
-/*
- * Copyright © 2008 Intel Corporation
- *
- * Permission is hereby granted, free of charge, to any person obtaining a
- * copy of this software and associated documentation files (the "Software"),
- * to deal in the Software without restriction, including without limitation
- * the rights to use, copy, modify, merge, publish, distribute, sublicense,
- * and/or sell copies of the Software, and to permit persons to whom the
- * Software is furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice (including the next
- * paragraph) shall be included in all copies or substantial portions of the
- * Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDINg BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINgEMENT.  IN NO EVENT SHALL
- * THE AUTHORS OR COPYRIgHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAgES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISINg FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINgS IN THE
- * SOFTWARE.
- *
- * Author:
- *    Zou Nan hai <nanhai.zou at intel.com>
- *    Zhang Hua jun <huajun.zhang at intel.com>
- *    Xing Dong sheng <dongsheng.xing at intel.com>
- *
- */
-and (1) g2.24<1>UD g2.0<1,1,1>UD 0x3UD {align1};
-send (16) 0 g86.0<1>UW g2<8,8,1>UW read(input_surface1, 2, 0, 2) mlen 1 rlen 4 {align1};
-send (16) 0 g94.0<1>UW g2<8,8,1>UW read(input_surface2, 2, 0, 2) mlen 1 rlen 4 {align1};
-mov (1) g2.8<1>UD 0x01001FUD {align1};
-add (1) g2.4<1>UD g2.4<1,1,1>UD 8UD {align1};
-send (16) 0 g90.0<1>UW g2<8,8,1>UW read(input_surface1, 2, 0, 2) mlen 1 rlen 1 {align1};
-send (16) 0 g98.0<1>UW g2<8,8,1>UW read(input_surface2, 2, 0, 2) mlen 1 rlen 1 {align1};
-mov (1) g2.8<1>UD 0x007000fUD  {align1};
-mul(1) g2.24<1>UD g2.24<1,1,1>UD 0x9UD {align1};
-jmpi g2.24<1,1,1>D;
-
-avg.sat (16) g44.0<1>UW g86.0<16,8,1>UB g87.0<16,8,1>UB{align1};
-avg.sat (16) g45.0<1>UW g87.0<16,8,1>UB g88.0<16,8,1>UB{align1};
-avg.sat (16) g46.0<1>UW g88.0<16,8,1>UB g89.0<16,8,1>UB{align1};
-avg.sat (16) g47.0<1>UW g89.0<16,8,1>UB g90.0<16,8,1>UB{align1};
-avg.sat (16) g48.0<1>UW g94.0<16,8,1>UB g95.0<16,8,1>UB{align1};
-avg.sat (16) g49.0<1>UW g95.0<16,8,1>UB g96.0<16,8,1>UB{align1};
-avg.sat (16) g50.0<1>UW g96.0<16,8,1>UB g97.0<16,8,1>UB{align1};
-avg.sat (16) g51.0<1>UW g97.0<16,8,1>UB g98.0<16,8,1>UB{align1};
-jmpi out;
-
-avg.sat (16) g44.0<1>UW g86.1<16,8,1>UB g87.1<16,8,1>UB{align1};
-avg.sat (16) g45.0<1>UW g87.1<16,8,1>UB g88.1<16,8,1>UB{align1};
-avg.sat (16) g46.0<1>UW g88.1<16,8,1>UB g89.1<16,8,1>UB{align1};
-avg.sat (16) g47.0<1>UW g89.1<16,8,1>UB g90.1<16,8,1>UB{align1};
-avg.sat (16) g48.0<1>UW g94.1<16,8,1>UB g95.1<16,8,1>UB{align1};
-avg.sat (16) g49.0<1>UW g95.1<16,8,1>UB g96.1<16,8,1>UB{align1};
-avg.sat (16) g50.0<1>UW g96.1<16,8,1>UB g97.1<16,8,1>UB{align1};
-avg.sat (16) g51.0<1>UW g97.1<16,8,1>UB g98.1<16,8,1>UB{align1};
-jmpi out;
-
-avg.sat (16) g44.0<1>UW g86.2<16,8,1>UB g87.2<16,8,1>UB{align1};
-avg.sat (16) g45.0<1>UW g87.2<16,8,1>UB g88.2<16,8,1>UB{align1};
-avg.sat (16) g46.0<1>UW g88.2<16,8,1>UB g89.2<16,8,1>UB{align1};
-avg.sat (16) g47.0<1>UW g89.2<16,8,1>UB g90.2<16,8,1>UB{align1};
-avg.sat (16) g48.0<1>UW g94.2<16,8,1>UB g95.2<16,8,1>UB{align1};
-avg.sat (16) g49.0<1>UW g95.2<16,8,1>UB g96.2<16,8,1>UB{align1};
-avg.sat (16) g50.0<1>UW g96.2<16,8,1>UB g97.2<16,8,1>UB{align1};
-avg.sat (16) g51.0<1>UW g97.2<16,8,1>UB g98.2<16,8,1>UB{align1};
-jmpi out;
-
-avg.sat (16) g44.0<1>UW g86.3<16,8,1>UB g87.3<16,8,1>UB{align1};
-avg.sat (16) g45.0<1>UW g87.3<16,8,1>UB g88.3<16,8,1>UB{align1};
-avg.sat (16) g46.0<1>UW g88.3<16,8,1>UB g89.3<16,8,1>UB{align1};
-avg.sat (16) g47.0<1>UW g89.3<16,8,1>UB g90.3<16,8,1>UB{align1};
-avg.sat (16) g48.0<1>UW g94.3<16,8,1>UB g95.3<16,8,1>UB{align1};
-avg.sat (16) g49.0<1>UW g95.3<16,8,1>UB g96.3<16,8,1>UB{align1};
-avg.sat (16) g50.0<1>UW g96.3<16,8,1>UB g97.3<16,8,1>UB{align1};
-avg.sat (16) g51.0<1>UW g97.3<16,8,1>UB g98.3<16,8,1>UB{align1};
-
-out:
diff --git a/src/xvmc/read_frame_x0y1_uv_igd.g4i b/src/xvmc/read_frame_x0y1_uv_igd.g4i
deleted file mode 100644
index 7240b3f..0000000
--- a/src/xvmc/read_frame_x0y1_uv_igd.g4i
+++ /dev/null
@@ -1,44 +0,0 @@
-/*
- * Copyright © 2008 Intel Corporation
- *
- * Permission is hereby granted, free of charge, to any person obtaining a
- * copy of this software and associated documentation files (the "Software"),
- * to deal in the Software without restriction, including without limitation
- * the rights to use, copy, modify, merge, publish, distribute, sublicense,
- * and/or sell copies of the Software, and to permit persons to whom the
- * Software is furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice (including the next
- * paragraph) shall be included in all copies or substantial portions of the
- * Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDINg BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINgEMENT.  IN NO EVENT SHALL
- * THE AUTHORS OR COPYRIgHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAgES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISINg FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINgS IN THE
- * SOFTWARE.
- *
- * Author:
- *    Zou Nan hai <nanhai.zou at intel.com>
- *    Zhang Hua jun <huajun.zhang at intel.com>
- *    Xing Dong sheng <dongsheng.xing at intel.com>
- *
- */
-send (16) 0 g86.0<1>UW g2<8,8,1>UW read(input_surface1, 2, 0, 2) mlen 1 rlen 4 {align1};
-send (16) 0 g94.0<1>UW g2<8,8,1>UW read(input_surface2, 2, 0, 2) mlen 1 rlen 4 {align1};
-mov (1) g2.8<1>UD 0x01001FUD {align1};
-add (1) g2.4<1>UD g2.4<1,1,1>UD 8UD {align1};
-send (16) 0 g90.0<1>UW g2<8,8,1>UW read(input_surface1, 2, 0, 2) mlen 1 rlen 1 {align1};
-send (16) 0 g98.0<1>UW g2<8,8,1>UW read(input_surface2, 2, 0, 2) mlen 1 rlen 1 {align1};
-mov (1) g2.8<1>UD 0x007000fUD  {align1};
-
-avg.sat (16) g44.0<1>UW g86.0<16,8,1>UB g87.0<16,8,1>UB{align1};
-avg.sat (16) g45.0<1>UW g87.0<16,8,1>UB g88.0<16,8,1>UB{align1};
-avg.sat (16) g46.0<1>UW g88.0<16,8,1>UB g89.0<16,8,1>UB{align1};
-avg.sat (16) g47.0<1>UW g89.0<16,8,1>UB g90.0<16,8,1>UB{align1};
-avg.sat (16) g48.0<1>UW g94.0<16,8,1>UB g95.0<16,8,1>UB{align1};
-avg.sat (16) g49.0<1>UW g95.0<16,8,1>UB g96.0<16,8,1>UB{align1};
-avg.sat (16) g50.0<1>UW g96.0<16,8,1>UB g97.0<16,8,1>UB{align1};
-avg.sat (16) g51.0<1>UW g97.0<16,8,1>UB g98.0<16,8,1>UB{align1};
diff --git a/src/xvmc/read_frame_x0y1_y.g4i b/src/xvmc/read_frame_x0y1_y.g4i
deleted file mode 100644
index bbc0d78..0000000
--- a/src/xvmc/read_frame_x0y1_y.g4i
+++ /dev/null
@@ -1,113 +0,0 @@
-/*
- * Copyright © 2008 Intel Corporation
- *
- * Permission is hereby granted, free of charge, to any person obtaining a
- * copy of this software and associated documentation files (the "Software"),
- * to deal in the Software without restriction, including without limitation
- * the rights to use, copy, modify, merge, publish, distribute, sublicense,
- * and/or sell copies of the Software, and to permit persons to whom the
- * Software is furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice (including the next
- * paragraph) shall be included in all copies or substantial portions of the
- * Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
- * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
- * SOFTWARE.
- *
- * Author:
- *    Zou Nan hai <nanhai.zou at intel.com>
- *    Zhang Hua jun <huajun.zhang at intel.com>
- *    Xing Dong sheng <dongsheng.xing at intel.com>
- *
- */
-mov (1) g2.8<1>UD 0x007001FUD {align1};
-send (16) 0 g98.0<1>UW g2<8,8,1>UW read(input_surface, 2, 0, 2) mlen 1 rlen 8 {align1};
-
-and (1) g2.24<1>UD g2.0<1,1,1>UD 3UD {align1};
-mul(1) g2.24<1>UD g2.24<1,1,1>UD 17UD {align1};
-add (1) g2.4<1>UD g2.4<1,1,1>UD 8UD {align1};
-send (16) 0 g106.0<1>UW g2<8,8,1>UW read(input_surface, 2, 0, 2) mlen 1 rlen 8 {align1};
-add (1) g2.4<1>UD g2.4<1,1,1>UD 8UD {align1};
-mov (1) g2.8<1>UD 0x1FUD {align1};
-send (16) 0 g120.0<1>UW g2<8,8,1>UW read(input_surface, 2, 0, 2) mlen 1 rlen 1 {align1};
-
-jmpi g2.24<1,1,1>D;
-
-avg.sat (16) g28.0<1>UW g98.0<16,16,1>UB g99.0<16,16,1>UB {align1};
-avg.sat (16) g29.0<1>UW g99.0<16,16,1>UB g100.0<16,16,1>UB {align1};
-avg.sat (16) g30.0<1>UW g100.0<16,16,1>UB g101.0<16,16,1>UB {align1};
-avg.sat (16) g31.0<1>UW g101.0<16,16,1>UB g102.0<16,16,1>UB {align1};
-avg.sat (16) g32.0<1>UW g102.0<16,16,1>UB g103.0<16,16,1>UB {align1};
-avg.sat (16) g33.0<1>UW g103.0<16,16,1>UB g104.0<16,16,1>UB {align1};
-avg.sat (16) g34.0<1>UW g104.0<16,16,1>UB g105.0<16,16,1>UB {align1};
-avg.sat (16) g35.0<1>UW g105.0<16,16,1>UB g106.0<16,16,1>UB {align1};
-avg.sat (16) g36.0<1>UW g106.0<16,16,1>UB g107.0<16,16,1>UB {align1};
-avg.sat (16) g37.0<1>UW g107.0<16,16,1>UB g108.0<16,16,1>UB {align1};
-avg.sat (16) g38.0<1>UW g108.0<16,16,1>UB g109.0<16,16,1>UB {align1};
-avg.sat (16) g39.0<1>UW g109.0<16,16,1>UB g110.0<16,16,1>UB {align1};
-avg.sat (16) g40.0<1>UW g110.0<16,16,1>UB g111.0<16,16,1>UB {align1};
-avg.sat (16) g41.0<1>UW g111.0<16,16,1>UB g112.0<16,16,1>UB {align1};
-avg.sat (16) g42.0<1>UW g112.0<16,16,1>UB g113.0<16,16,1>UB {align1};
-avg.sat (16) g43.0<1>UW g113.0<16,16,1>UB g120.0<16,16,1>UB {align1};
-jmpi out;
-
-avg.sat (16) g28.0<1>UW g98.1<16,16,1>UB g99.1<16,16,1>UB {align1};
-avg.sat (16) g29.0<1>UW g99.1<16,16,1>UB g100.1<16,16,1>UB {align1};
-avg.sat (16) g30.0<1>UW g100.1<16,16,1>UB g101.1<16,16,1>UB {align1};
-avg.sat (16) g31.0<1>UW g101.1<16,16,1>UB g102.1<16,16,1>UB {align1};
-avg.sat (16) g32.0<1>UW g102.1<16,16,1>UB g103.1<16,16,1>UB {align1};
-avg.sat (16) g33.0<1>UW g103.1<16,16,1>UB g104.1<16,16,1>UB {align1};
-avg.sat (16) g34.0<1>UW g104.1<16,16,1>UB g105.1<16,16,1>UB {align1};
-avg.sat (16) g35.0<1>UW g105.1<16,16,1>UB g106.1<16,16,1>UB {align1};
-avg.sat (16) g36.0<1>UW g106.1<16,16,1>UB g107.1<16,16,1>UB {align1};
-avg.sat (16) g37.0<1>UW g107.1<16,16,1>UB g108.1<16,16,1>UB {align1};
-avg.sat (16) g38.0<1>UW g108.1<16,16,1>UB g109.1<16,16,1>UB {align1};
-avg.sat (16) g39.0<1>UW g109.1<16,16,1>UB g110.1<16,16,1>UB {align1};
-avg.sat (16) g40.0<1>UW g110.1<16,16,1>UB g111.1<16,16,1>UB {align1};
-avg.sat (16) g41.0<1>UW g111.1<16,16,1>UB g112.1<16,16,1>UB {align1};
-avg.sat (16) g42.0<1>UW g112.1<16,16,1>UB g113.1<16,16,1>UB {align1};
-avg.sat (16) g43.0<1>UW g113.1<16,16,1>UB g120.1<16,16,1>UB {align1};
-jmpi out;
-
-avg.sat (16) g28.0<1>UW g98.2<16,16,1>UB g99.2<16,16,1>UB {align1};
-avg.sat (16) g29.0<1>UW g99.2<16,16,1>UB g100.2<16,16,1>UB {align1};
-avg.sat (16) g30.0<1>UW g100.2<16,16,1>UB g101.2<16,16,1>UB {align1};
-avg.sat (16) g31.0<1>UW g101.2<16,16,1>UB g102.2<16,16,1>UB {align1};
-avg.sat (16) g32.0<1>UW g102.2<16,16,1>UB g103.2<16,16,1>UB {align1};
-avg.sat (16) g33.0<1>UW g103.2<16,16,1>UB g104.2<16,16,1>UB {align1};
-avg.sat (16) g34.0<1>UW g104.2<16,16,1>UB g105.2<16,16,1>UB {align1};
-avg.sat (16) g35.0<1>UW g105.2<16,16,1>UB g106.2<16,16,1>UB {align1};
-avg.sat (16) g36.0<1>UW g106.2<16,16,1>UB g107.2<16,16,1>UB {align1};
-avg.sat (16) g37.0<1>UW g107.2<16,16,1>UB g108.2<16,16,1>UB {align1};
-avg.sat (16) g38.0<1>UW g108.2<16,16,1>UB g109.2<16,16,1>UB {align1};
-avg.sat (16) g39.0<1>UW g109.2<16,16,1>UB g110.2<16,16,1>UB {align1};
-avg.sat (16) g40.0<1>UW g110.2<16,16,1>UB g111.2<16,16,1>UB {align1};
-avg.sat (16) g41.0<1>UW g111.2<16,16,1>UB g112.2<16,16,1>UB {align1};
-avg.sat (16) g42.0<1>UW g112.2<16,16,1>UB g113.2<16,16,1>UB {align1};
-avg.sat (16) g43.0<1>UW g113.2<16,16,1>UB g120.2<16,16,1>UB {align1};
-jmpi out;
-
-avg.sat (16) g28.0<1>UW g98.3<16,16,1>UB g99.3<16,16,1>UB {align1};
-avg.sat (16) g29.0<1>UW g99.3<16,16,1>UB g100.3<16,16,1>UB {align1};
-avg.sat (16) g30.0<1>UW g100.3<16,16,1>UB g101.3<16,16,1>UB {align1};
-avg.sat (16) g31.0<1>UW g101.3<16,16,1>UB g102.3<16,16,1>UB {align1};
-avg.sat (16) g32.0<1>UW g102.3<16,16,1>UB g103.3<16,16,1>UB {align1};
-avg.sat (16) g33.0<1>UW g103.3<16,16,1>UB g104.3<16,16,1>UB {align1};
-avg.sat (16) g34.0<1>UW g104.3<16,16,1>UB g105.3<16,16,1>UB {align1};
-avg.sat (16) g35.0<1>UW g105.3<16,16,1>UB g106.3<16,16,1>UB {align1};
-avg.sat (16) g36.0<1>UW g106.3<16,16,1>UB g107.3<16,16,1>UB {align1};
-avg.sat (16) g37.0<1>UW g107.3<16,16,1>UB g108.3<16,16,1>UB {align1};
-avg.sat (16) g38.0<1>UW g108.3<16,16,1>UB g109.3<16,16,1>UB {align1};
-avg.sat (16) g39.0<1>UW g109.3<16,16,1>UB g110.3<16,16,1>UB {align1};
-avg.sat (16) g40.0<1>UW g110.3<16,16,1>UB g111.3<16,16,1>UB {align1};
-avg.sat (16) g41.0<1>UW g111.3<16,16,1>UB g112.3<16,16,1>UB {align1};
-avg.sat (16) g42.0<1>UW g112.3<16,16,1>UB g113.3<16,16,1>UB {align1};
-avg.sat (16) g43.0<1>UW g113.3<16,16,1>UB g120.3<16,16,1>UB {align1};
-
-out:
diff --git a/src/xvmc/read_frame_x0y1_y_igd.g4i b/src/xvmc/read_frame_x0y1_y_igd.g4i
deleted file mode 100644
index 106296b..0000000
--- a/src/xvmc/read_frame_x0y1_y_igd.g4i
+++ /dev/null
@@ -1,54 +0,0 @@
-/*
- * Copyright © 2008 Intel Corporation
- *
- * Permission is hereby granted, free of charge, to any person obtaining a
- * copy of this software and associated documentation files (the "Software"),
- * to deal in the Software without restriction, including without limitation
- * the rights to use, copy, modify, merge, publish, distribute, sublicense,
- * and/or sell copies of the Software, and to permit persons to whom the
- * Software is furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice (including the next
- * paragraph) shall be included in all copies or substantial portions of the
- * Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
- * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
- * SOFTWARE.
- *
- * Author:
- *    Zou Nan hai <nanhai.zou at intel.com>
- *    Zhang Hua jun <huajun.zhang at intel.com>
- *    Xing Dong sheng <dongsheng.xing at intel.com>
- *
- */
-mov (1) g2.8<1>UD 0x007001FUD {align1};
-send (16) 0 g98.0<1>UW g2<8,8,1>UW read(input_surface, 2, 0, 2) mlen 1 rlen 8 {align1};
-
-add (1) g2.4<1>UD g2.4<1,1,1>UD 8UD {align1};
-send (16) 0 g106.0<1>UW g2<8,8,1>UW read(input_surface, 2, 0, 2) mlen 1 rlen 8 {align1};
-add (1) g2.4<1>UD g2.4<1,1,1>UD 8UD {align1};
-mov (1) g2.8<1>UD 0x1FUD {align1};
-send (16) 0 g120.0<1>UW g2<8,8,1>UW read(input_surface, 2, 0, 2) mlen 1 rlen 1 {align1};
-
-
-avg.sat (16) g28.0<1>UW g98.0<16,16,1>UB g99.0<16,16,1>UB {align1};
-avg.sat (16) g29.0<1>UW g99.0<16,16,1>UB g100.0<16,16,1>UB {align1};
-avg.sat (16) g30.0<1>UW g100.0<16,16,1>UB g101.0<16,16,1>UB {align1};
-avg.sat (16) g31.0<1>UW g101.0<16,16,1>UB g102.0<16,16,1>UB {align1};
-avg.sat (16) g32.0<1>UW g102.0<16,16,1>UB g103.0<16,16,1>UB {align1};
-avg.sat (16) g33.0<1>UW g103.0<16,16,1>UB g104.0<16,16,1>UB {align1};
-avg.sat (16) g34.0<1>UW g104.0<16,16,1>UB g105.0<16,16,1>UB {align1};
-avg.sat (16) g35.0<1>UW g105.0<16,16,1>UB g106.0<16,16,1>UB {align1};
-avg.sat (16) g36.0<1>UW g106.0<16,16,1>UB g107.0<16,16,1>UB {align1};
-avg.sat (16) g37.0<1>UW g107.0<16,16,1>UB g108.0<16,16,1>UB {align1};
-avg.sat (16) g38.0<1>UW g108.0<16,16,1>UB g109.0<16,16,1>UB {align1};
-avg.sat (16) g39.0<1>UW g109.0<16,16,1>UB g110.0<16,16,1>UB {align1};
-avg.sat (16) g40.0<1>UW g110.0<16,16,1>UB g111.0<16,16,1>UB {align1};
-avg.sat (16) g41.0<1>UW g111.0<16,16,1>UB g112.0<16,16,1>UB {align1};
-avg.sat (16) g42.0<1>UW g112.0<16,16,1>UB g113.0<16,16,1>UB {align1};
-avg.sat (16) g43.0<1>UW g113.0<16,16,1>UB g120.0<16,16,1>UB {align1};
diff --git a/src/xvmc/read_frame_x1y0_uv.g4i b/src/xvmc/read_frame_x1y0_uv.g4i
deleted file mode 100644
index bed4abe..0000000
--- a/src/xvmc/read_frame_x1y0_uv.g4i
+++ /dev/null
@@ -1,75 +0,0 @@
-/*
- * Copyright © 2008 Intel Corporation
- *
- * Permission is hereby granted, free of charge, to any person obtaining a
- * copy of this software and associated documentation files (the "Software"),
- * to deal in the Software without restriction, including without limitation
- * the rights to use, copy, modify, merge, publish, distribute, sublicense,
- * and/or sell copies of the Software, and to permit persons to whom the
- * Software is furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice (including the next
- * paragraph) shall be included in all copies or substantial portions of the
- * Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
- * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
- * SOFTWARE.
- *
- * Author:
- *    Zou Nan hai <nanhai.zou at intel.com>
- *    Zhang Hua jun <huajun.zhang at intel.com>
- *    Xing Dong sheng <dongsheng.xing at intel.com>
- *
- */
-
-mov (1) g2.8<1>UD 0x007000FUD {align1};
-and (1) g2.24<1>UD g2.0<1,1,1>UD 0x3UD {align1};
-send (16) 0 g86.0<1>UW g2<8,8,1>UW read(input_surface1, 2, 0, 2) mlen 1 rlen 4 {align1};
-send (16) 0 g90.0<1>UW g2<8,8,1>UW read(input_surface2, 2, 0, 2) mlen 1 rlen 4 {align1};
-mul(1) g2.24<1>UD g2.24<1,1,1>UD 0x9UD {align1};
-jmpi g2.24<1,1,1>D;
-
-avg.sat (16) g44.0<1>UW g86.0<16,8,1>UB g86.1<16,8,1>UB{align1};
-avg.sat (16) g45.0<1>UW g87.0<16,8,1>UB g87.1<16,8,1>UB{align1};
-avg.sat (16) g46.0<1>UW g88.0<16,8,1>UB g88.1<16,8,1>UB{align1};
-avg.sat (16) g47.0<1>UW g89.0<16,8,1>UB g89.1<16,8,1>UB{align1};
-avg.sat (16) g48.0<1>UW g90.0<16,8,1>UB g90.1<16,8,1>UB{align1};
-avg.sat (16) g49.0<1>UW g91.0<16,8,1>UB g91.1<16,8,1>UB{align1};
-avg.sat (16) g50.0<1>UW g92.0<16,8,1>UB g92.1<16,8,1>UB{align1};
-avg.sat (16) g51.0<1>UW g93.0<16,8,1>UB g93.1<16,8,1>UB{align1};
-jmpi out;
-
-avg.sat (16) g44.0<1>UW g86.1<16,8,1>UB g86.2<16,8,1>UB{align1};
-avg.sat (16) g45.0<1>UW g87.1<16,8,1>UB g87.2<16,8,1>UB{align1};
-avg.sat (16) g46.0<1>UW g88.1<16,8,1>UB g88.2<16,8,1>UB{align1};
-avg.sat (16) g47.0<1>UW g89.1<16,8,1>UB g89.2<16,8,1>UB{align1};
-avg.sat (16) g48.0<1>UW g90.1<16,8,1>UB g90.2<16,8,1>UB{align1};
-avg.sat (16) g49.0<1>UW g91.1<16,8,1>UB g91.2<16,8,1>UB{align1};
-avg.sat (16) g50.0<1>UW g92.1<16,8,1>UB g92.2<16,8,1>UB{align1};
-avg.sat (16) g51.0<1>UW g93.1<16,8,1>UB g93.2<16,8,1>UB{align1};
-jmpi out;
-
-avg.sat (16) g44.0<1>UW g86.2<16,8,1>UB g86.3<16,8,1>UB{align1};
-avg.sat (16) g45.0<1>UW g87.2<16,8,1>UB g87.3<16,8,1>UB{align1};
-avg.sat (16) g46.0<1>UW g88.2<16,8,1>UB g88.3<16,8,1>UB{align1};
-avg.sat (16) g47.0<1>UW g89.2<16,8,1>UB g89.3<16,8,1>UB{align1};
-avg.sat (16) g48.0<1>UW g90.2<16,8,1>UB g90.3<16,8,1>UB{align1};
-avg.sat (16) g49.0<1>UW g91.2<16,8,1>UB g91.3<16,8,1>UB{align1};
-avg.sat (16) g50.0<1>UW g92.2<16,8,1>UB g92.3<16,8,1>UB{align1};
-avg.sat (16) g51.0<1>UW g93.2<16,8,1>UB g93.3<16,8,1>UB{align1};
-jmpi out;
-
-avg.sat (16) g44.0<1>UW g86.3<16,8,1>UB g86.4<16,8,1>UB{align1};
-avg.sat (16) g45.0<1>UW g87.3<16,8,1>UB g87.4<16,8,1>UB{align1};
-avg.sat (16) g46.0<1>UW g88.3<16,8,1>UB g88.4<16,8,1>UB{align1};
-avg.sat (16) g47.0<1>UW g89.3<16,8,1>UB g89.4<16,8,1>UB{align1};
-avg.sat (16) g48.0<1>UW g90.3<16,8,1>UB g90.4<16,8,1>UB{align1};
-avg.sat (16) g49.0<1>UW g91.3<16,8,1>UB g91.4<16,8,1>UB{align1};
-avg.sat (16) g50.0<1>UW g92.3<16,8,1>UB g92.4<16,8,1>UB{align1};
-avg.sat (16) g51.0<1>UW g93.3<16,8,1>UB g93.4<16,8,1>UB{align1};
-out:
diff --git a/src/xvmc/read_frame_x1y0_uv_igd.g4i b/src/xvmc/read_frame_x1y0_uv_igd.g4i
deleted file mode 100644
index c63e8ec..0000000
--- a/src/xvmc/read_frame_x1y0_uv_igd.g4i
+++ /dev/null
@@ -1,41 +0,0 @@
-/*
- * Copyright © 2008 Intel Corporation
- *
- * Permission is hereby granted, free of charge, to any person obtaining a
- * copy of this software and associated documentation files (the "Software"),
- * to deal in the Software without restriction, including without limitation
- * the rights to use, copy, modify, merge, publish, distribute, sublicense,
- * and/or sell copies of the Software, and to permit persons to whom the
- * Software is furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice (including the next
- * paragraph) shall be included in all copies or substantial portions of the
- * Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
- * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
- * SOFTWARE.
- *
- * Author:
- *    Zou Nan hai <nanhai.zou at intel.com>
- *    Zhang Hua jun <huajun.zhang at intel.com>
- *    Xing Dong sheng <dongsheng.xing at intel.com>
- *
- */
-
-mov (1) g2.8<1>UD 0x007000FUD {align1};
-send (16) 0 g86.0<1>UW g2<8,8,1>UW read(input_surface1, 2, 0, 2) mlen 1 rlen 4 {align1};
-send (16) 0 g90.0<1>UW g2<8,8,1>UW read(input_surface2, 2, 0, 2) mlen 1 rlen 4 {align1};
-
-avg.sat (16) g44.0<1>UW g86.0<16,8,1>UB g86.1<16,8,1>UB{align1};
-avg.sat (16) g45.0<1>UW g87.0<16,8,1>UB g87.1<16,8,1>UB{align1};
-avg.sat (16) g46.0<1>UW g88.0<16,8,1>UB g88.1<16,8,1>UB{align1};
-avg.sat (16) g47.0<1>UW g89.0<16,8,1>UB g89.1<16,8,1>UB{align1};
-avg.sat (16) g48.0<1>UW g90.0<16,8,1>UB g90.1<16,8,1>UB{align1};
-avg.sat (16) g49.0<1>UW g91.0<16,8,1>UB g91.1<16,8,1>UB{align1};
-avg.sat (16) g50.0<1>UW g92.0<16,8,1>UB g92.1<16,8,1>UB{align1};
-avg.sat (16) g51.0<1>UW g93.0<16,8,1>UB g93.1<16,8,1>UB{align1};
diff --git a/src/xvmc/read_frame_x1y0_y.g4i b/src/xvmc/read_frame_x1y0_y.g4i
deleted file mode 100644
index 3af3e08..0000000
--- a/src/xvmc/read_frame_x1y0_y.g4i
+++ /dev/null
@@ -1,110 +0,0 @@
-/*
- * Copyright © 2008 Intel Corporation
- *
- * Permission is hereby granted, free of charge, to any person obtaining a
- * copy of this software and associated documentation files (the "Software"),
- * to deal in the Software without restriction, including without limitation
- * the rights to use, copy, modify, merge, publish, distribute, sublicense,
- * and/or sell copies of the Software, and to permit persons to whom the
- * Software is furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice (including the next
- * paragraph) shall be included in all copies or substantial portions of the
- * Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
- * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
- * SOFTWARE.
- *
- * Author:
- *    Zou Nan hai <nanhai.zou at intel.com>
- *    Zhang Hua jun <huajun.zhang at intel.com>
- *    Xing Dong sheng <dongsheng.xing at intel.com>
- *
- */
-mov (1) g2.8<1>UD 0x007001FUD {align1};
-send (16) 0 g98.0<1>UW g2<8,8,1>UW read(input_surface, 2, 0, 2) mlen 1 rlen 8 {align1};
-
-and (1) g2.24<1>UD g2.0<1,1,1>UD 3UD {align1};
-mul(1) g2.24<1>UD g2.24<1,1,1>UD 17D {align1};
-add (1) g2.4<1>UD g2.4<1,1,1>UD 8UD {align1};
-send (16) 0 g106.0<1>UW g2<8,8,1>UW read(input_surface, 2, 0, 2) mlen 1 rlen 8 {align1};
-
-jmpi g2.24<1,1,1>D;
-
-avg.sat (16) g28.0<1>UW g98.0<16,16,1>UB g98.1<16,16,1>UB {align1};
-avg.sat (16) g29.0<1>UW g99.0<16,16,1>UB g99.1<16,16,1>UB {align1};
-avg.sat (16) g30.0<1>UW g100.0<16,16,1>UB g100.1<16,16,1>UB {align1};
-avg.sat (16) g31.0<1>UW g101.0<16,16,1>UB g101.1<16,16,1>UB {align1};
-avg.sat (16) g32.0<1>UW g102.0<16,16,1>UB g102.1<16,16,1>UB {align1};
-avg.sat (16) g33.0<1>UW g103.0<16,16,1>UB g103.1<16,16,1>UB {align1};
-avg.sat (16) g34.0<1>UW g104.0<16,16,1>UB g104.1<16,16,1>UB {align1};
-avg.sat (16) g35.0<1>UW g105.0<16,16,1>UB g105.1<16,16,1>UB {align1};
-avg.sat (16) g36.0<1>UW g106.0<16,16,1>UB g106.1<16,16,1>UB {align1};
-avg.sat (16) g37.0<1>UW g107.0<16,16,1>UB g107.1<16,16,1>UB {align1};
-avg.sat (16) g38.0<1>UW g108.0<16,16,1>UB g108.1<16,16,1>UB {align1};
-avg.sat (16) g39.0<1>UW g109.0<16,16,1>UB g109.1<16,16,1>UB {align1};
-avg.sat (16) g40.0<1>UW g110.0<16,16,1>UB g110.1<16,16,1>UB {align1};
-avg.sat (16) g41.0<1>UW g111.0<16,16,1>UB g111.1<16,16,1>UB {align1};
-avg.sat (16) g42.0<1>UW g112.0<16,16,1>UB g112.1<16,16,1>UB {align1};
-avg.sat (16) g43.0<1>UW g113.0<16,16,1>UB g113.1<16,16,1>UB {align1};
-jmpi out;
-
-avg.sat (16) g28.0<1>UW g98.1<16,16,1>UB g98.2<16,16,1>UB {align1};
-avg.sat (16) g29.0<1>UW g99.1<16,16,1>UB g99.2<16,16,1>UB {align1};
-avg.sat (16) g30.0<1>UW g100.1<16,16,1>UB g100.2<16,16,1>UB {align1};
-avg.sat (16) g31.0<1>UW g101.1<16,16,1>UB g101.2<16,16,1>UB {align1};
-avg.sat (16) g32.0<1>UW g102.1<16,16,1>UB g102.2<16,16,1>UB {align1};
-avg.sat (16) g33.0<1>UW g103.1<16,16,1>UB g103.2<16,16,1>UB {align1};
-avg.sat (16) g34.0<1>UW g104.1<16,16,1>UB g104.2<16,16,1>UB {align1};
-avg.sat (16) g35.0<1>UW g105.1<16,16,1>UB g105.2<16,16,1>UB {align1};
-avg.sat (16) g36.0<1>UW g106.1<16,16,1>UB g106.2<16,16,1>UB {align1};
-avg.sat (16) g37.0<1>UW g107.1<16,16,1>UB g107.2<16,16,1>UB {align1};
-avg.sat (16) g38.0<1>UW g108.1<16,16,1>UB g108.2<16,16,1>UB {align1};
-avg.sat (16) g39.0<1>UW g109.1<16,16,1>UB g109.2<16,16,1>UB {align1};
-avg.sat (16) g40.0<1>UW g110.1<16,16,1>UB g110.2<16,16,1>UB {align1};
-avg.sat (16) g41.0<1>UW g111.1<16,16,1>UB g111.2<16,16,1>UB {align1};
-avg.sat (16) g42.0<1>UW g112.1<16,16,1>UB g112.2<16,16,1>UB {align1};
-avg.sat (16) g43.0<1>UW g113.1<16,16,1>UB g113.2<16,16,1>UB {align1};
-jmpi out;
-
-avg.sat (16) g28.0<1>UW g98.2<16,16,1>UB g98.3<16,16,1>UB {align1};
-avg.sat (16) g29.0<1>UW g99.2<16,16,1>UB g99.3<16,16,1>UB {align1};
-avg.sat (16) g30.0<1>UW g100.2<16,16,1>UB g100.3<16,16,1>UB {align1};
-avg.sat (16) g31.0<1>UW g101.2<16,16,1>UB g101.3<16,16,1>UB {align1};
-avg.sat (16) g32.0<1>UW g102.2<16,16,1>UB g102.3<16,16,1>UB {align1};
-avg.sat (16) g33.0<1>UW g103.2<16,16,1>UB g103.3<16,16,1>UB {align1};
-avg.sat (16) g34.0<1>UW g104.2<16,16,1>UB g104.3<16,16,1>UB {align1};
-avg.sat (16) g35.0<1>UW g105.2<16,16,1>UB g105.3<16,16,1>UB {align1};
-avg.sat (16) g36.0<1>UW g106.2<16,16,1>UB g106.3<16,16,1>UB {align1};
-avg.sat (16) g37.0<1>UW g107.2<16,16,1>UB g107.3<16,16,1>UB {align1};
-avg.sat (16) g38.0<1>UW g108.2<16,16,1>UB g108.3<16,16,1>UB {align1};
-avg.sat (16) g39.0<1>UW g109.2<16,16,1>UB g109.3<16,16,1>UB {align1};
-avg.sat (16) g40.0<1>UW g110.2<16,16,1>UB g110.3<16,16,1>UB {align1};
-avg.sat (16) g41.0<1>UW g111.2<16,16,1>UB g111.3<16,16,1>UB {align1};
-avg.sat (16) g42.0<1>UW g112.2<16,16,1>UB g112.3<16,16,1>UB {align1};
-avg.sat (16) g43.0<1>UW g113.2<16,16,1>UB g113.3<16,16,1>UB {align1};
-jmpi out;
-
-avg.sat (16) g28.0<1>UW g98.3<16,16,1>UB g98.4<16,16,1>UB {align1};
-avg.sat (16) g29.0<1>UW g99.3<16,16,1>UB g99.4<16,16,1>UB {align1};
-avg.sat (16) g30.0<1>UW g100.3<16,16,1>UB g100.4<16,16,1>UB {align1};
-avg.sat (16) g31.0<1>UW g101.3<16,16,1>UB g101.4<16,16,1>UB {align1};
-avg.sat (16) g32.0<1>UW g102.3<16,16,1>UB g102.4<16,16,1>UB {align1};
-avg.sat (16) g33.0<1>UW g103.3<16,16,1>UB g103.4<16,16,1>UB {align1};
-avg.sat (16) g34.0<1>UW g104.3<16,16,1>UB g104.4<16,16,1>UB {align1};
-avg.sat (16) g35.0<1>UW g105.3<16,16,1>UB g105.4<16,16,1>UB {align1};
-avg.sat (16) g36.0<1>UW g106.3<16,16,1>UB g106.4<16,16,1>UB {align1};
-avg.sat (16) g37.0<1>UW g107.3<16,16,1>UB g107.4<16,16,1>UB {align1};
-avg.sat (16) g38.0<1>UW g108.3<16,16,1>UB g108.4<16,16,1>UB {align1};
-avg.sat (16) g39.0<1>UW g109.3<16,16,1>UB g109.4<16,16,1>UB {align1};
-avg.sat (16) g40.0<1>UW g110.3<16,16,1>UB g110.4<16,16,1>UB {align1};
-avg.sat (16) g41.0<1>UW g111.3<16,16,1>UB g111.4<16,16,1>UB {align1};
-avg.sat (16) g42.0<1>UW g112.3<16,16,1>UB g112.4<16,16,1>UB {align1};
-avg.sat (16) g43.0<1>UW g113.3<16,16,1>UB g113.4<16,16,1>UB {align1};
-
-out:
diff --git a/src/xvmc/read_frame_x1y0_y_igd.g4i b/src/xvmc/read_frame_x1y0_y_igd.g4i
deleted file mode 100644
index 03ee54b..0000000
--- a/src/xvmc/read_frame_x1y0_y_igd.g4i
+++ /dev/null
@@ -1,51 +0,0 @@
-/*
- * Copyright © 2008 Intel Corporation
- *
- * Permission is hereby granted, free of charge, to any person obtaining a
- * copy of this software and associated documentation files (the "Software"),
- * to deal in the Software without restriction, including without limitation
- * the rights to use, copy, modify, merge, publish, distribute, sublicense,
- * and/or sell copies of the Software, and to permit persons to whom the
- * Software is furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice (including the next
- * paragraph) shall be included in all copies or substantial portions of the
- * Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
- * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
- * SOFTWARE.
- *
- * Author:
- *    Zou Nan hai <nanhai.zou at intel.com>
- *    Zhang Hua jun <huajun.zhang at intel.com>
- *    Xing Dong sheng <dongsheng.xing at intel.com>
- *
- */
-mov (1) g2.8<1>UD 0x007001FUD {align1};
-send (16) 0 g98.0<1>UW g2<8,8,1>UW read(input_surface, 2, 0, 2) mlen 1 rlen 8 {align1};
-
-add (1) g2.4<1>UD g2.4<1,1,1>UD 8UD {align1};
-send (16) 0 g106.0<1>UW g2<8,8,1>UW read(input_surface, 2, 0, 2) mlen 1 rlen 8 {align1};
-
-
-avg.sat (16) g28.0<1>UW g98.0<16,16,1>UB g98.1<16,16,1>UB {align1};
-avg.sat (16) g29.0<1>UW g99.0<16,16,1>UB g99.1<16,16,1>UB {align1};
-avg.sat (16) g30.0<1>UW g100.0<16,16,1>UB g100.1<16,16,1>UB {align1};
-avg.sat (16) g31.0<1>UW g101.0<16,16,1>UB g101.1<16,16,1>UB {align1};
-avg.sat (16) g32.0<1>UW g102.0<16,16,1>UB g102.1<16,16,1>UB {align1};
-avg.sat (16) g33.0<1>UW g103.0<16,16,1>UB g103.1<16,16,1>UB {align1};
-avg.sat (16) g34.0<1>UW g104.0<16,16,1>UB g104.1<16,16,1>UB {align1};
-avg.sat (16) g35.0<1>UW g105.0<16,16,1>UB g105.1<16,16,1>UB {align1};
-avg.sat (16) g36.0<1>UW g106.0<16,16,1>UB g106.1<16,16,1>UB {align1};
-avg.sat (16) g37.0<1>UW g107.0<16,16,1>UB g107.1<16,16,1>UB {align1};
-avg.sat (16) g38.0<1>UW g108.0<16,16,1>UB g108.1<16,16,1>UB {align1};
-avg.sat (16) g39.0<1>UW g109.0<16,16,1>UB g109.1<16,16,1>UB {align1};
-avg.sat (16) g40.0<1>UW g110.0<16,16,1>UB g110.1<16,16,1>UB {align1};
-avg.sat (16) g41.0<1>UW g111.0<16,16,1>UB g111.1<16,16,1>UB {align1};
-avg.sat (16) g42.0<1>UW g112.0<16,16,1>UB g112.1<16,16,1>UB {align1};
-avg.sat (16) g43.0<1>UW g113.0<16,16,1>UB g113.1<16,16,1>UB {align1};
diff --git a/src/xvmc/read_frame_x1y1_uv.g4i b/src/xvmc/read_frame_x1y1_uv.g4i
deleted file mode 100644
index d124d29..0000000
--- a/src/xvmc/read_frame_x1y1_uv.g4i
+++ /dev/null
@@ -1,159 +0,0 @@
-/*
- * Copyright © 2008 Intel Corporation
- *
- * Permission is hereby granted, free of charge, to any person obtaining a
- * copy of this software and associated documentation files (the "Software"),
- * to deal in the Software without restriction, including without limitation
- * the rights to use, copy, modify, merge, publish, distribute, sublicense,
- * and/or sell copies of the Software, and to permit persons to whom the
- * Software is furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice (including the next
- * paragraph) shall be included in all copies or substantial portions of the
- * Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
- * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
- * SOFTWARE.
- *
- * Author:
- *    Zou Nan hai <nanhai.zou at intel.com>
- *    Zhang Hua jun <huajun.zhang at intel.com>
- *    Xing Dong sheng <dongsheng.xing at intel.com>
- *
- */
-and (1) g2.24<1>UD g2.0<1,1,1>UD 0x3UD {align1};
-send (16) 0 g86.0<1>UW g2<8,8,1>UW read(input_surface1, 2, 0, 2) mlen 1 rlen 4 {align1};
-send (16) 0 g94.0<1>UW g2<8,8,1>UW read(input_surface2, 2, 0, 2) mlen 1 rlen 4 {align1};
-mov (1) g2.8<1>UD 0x01001FUD {align1};
-add (1) g2.4<1>UD g2.4<1,1,1>UD 8D {align1};
-send (16) 0 g90.0<1>UW g2<8,8,1>UW read(input_surface1, 2, 0, 2) mlen 1 rlen 1 {align1};
-send (16) 0 g98.0<1>UW g2<8,8,1>UW read(input_surface2, 2, 0, 2) mlen 1 rlen 1 {align1};
-mov (1) g2.8<1>UD 0x007000fUD  {align1};
-mul(1) g2.24<1>UD g2.24<1,1,1>UD 25UD {align1};
-jmpi g2.24<1,1,1>D;
-
-add (16) g44.0<1>UW g86.0<16,8,1>UB g86.1<16,8,1>UB{align1};
-add (16) g45.0<1>UW g87.0<16,8,1>UB g87.1<16,8,1>UB{align1};
-add (16) g46.0<1>UW g88.0<16,8,1>UB g88.1<16,8,1>UB{align1};
-add (16) g47.0<1>UW g89.0<16,8,1>UB g89.1<16,8,1>UB{align1};
-add (16) g44.0<1>UW g44.0<16,16,1>UW g87.0<16,8,1>UB{align1};
-add (16) g45.0<1>UW g45.0<16,16,1>UW g88.0<16,8,1>UB{align1};
-add (16) g46.0<1>UW g46.0<16,16,1>UW g89.0<16,8,1>UB{align1};
-add (16) g47.0<1>UW g47.0<16,16,1>UW g90.0<16,8,1>UB{align1};
-
-add (16) g44.0<1>UW g44.0<16,16,1>UW g87.1<16,8,1>UB{align1};
-add (16) g45.0<1>UW g45.0<16,16,1>UW g88.1<16,8,1>UB{align1};
-add (16) g46.0<1>UW g46.0<16,16,1>UW g89.1<16,8,1>UB{align1};
-add (16) g47.0<1>UW g47.0<16,16,1>UW g90.1<16,8,1>UB{align1};
-add (16) g48.0<1>UW g94.0<16,8,1>UB g95.0<16,8,1>UB{align1};
-add (16) g49.0<1>UW g95.0<16,8,1>UB g96.0<16,8,1>UB{align1};
-add (16) g50.0<1>UW g96.0<16,8,1>UB g97.0<16,8,1>UB{align1};
-add (16) g51.0<1>UW g97.0<16,8,1>UB g98.0<16,8,1>UB{align1};
-
-add (16) g48.0<1>UW g48.0<16,16,1>UW g94.1<16,8,1>UB{align1};
-add (16) g49.0<1>UW g49.0<16,16,1>UW g95.1<16,8,1>UB{align1};
-add (16) g50.0<1>UW g50.0<16,16,1>UW g96.1<16,8,1>UB{align1};
-add (16) g51.0<1>UW g51.0<16,16,1>UW g97.1<16,8,1>UB{align1};
-add (16) g48.0<1>UW g48.0<16,16,1>UW g95.1<16,8,1>UB{align1};
-add (16) g49.0<1>UW g49.0<16,16,1>UW g96.1<16,8,1>UB{align1};
-add (16) g50.0<1>UW g50.0<16,16,1>UW g97.1<16,8,1>UB{align1};
-add (16) g51.0<1>UW g51.0<16,16,1>UW g98.1<16,8,1>UB{align1};
-jmpi out;
-
-add (16) g44.0<1>UW g86.1<16,8,1>UB g86.2<16,8,1>UB{align1};
-add (16) g45.0<1>UW g87.1<16,8,1>UB g87.2<16,8,1>UB{align1};
-add (16) g46.0<1>UW g88.1<16,8,1>UB g88.2<16,8,1>UB{align1};
-add (16) g47.0<1>UW g89.1<16,8,1>UB g89.2<16,8,1>UB{align1};
-add (16) g44.0<1>UW g44.0<16,16,1>UW g87.1<16,8,1>UB{align1};
-add (16) g45.0<1>UW g45.0<16,16,1>UW g88.1<16,8,1>UB{align1};
-add (16) g46.0<1>UW g46.0<16,16,1>UW g89.1<16,8,1>UB{align1};
-add (16) g47.0<1>UW g47.0<16,16,1>UW g90.1<16,8,1>UB{align1};
-
-add (16) g44.0<1>UW g44.0<16,16,1>UW g87.2<16,8,1>UB{align1};
-add (16) g45.0<1>UW g45.0<16,16,1>UW g88.2<16,8,1>UB{align1};
-add (16) g46.0<1>UW g46.0<16,16,1>UW g89.2<16,8,1>UB{align1};
-add (16) g47.0<1>UW g47.0<16,16,1>UW g90.2<16,8,1>UB{align1};
-add (16) g48.0<1>UW g94.1<16,8,1>UB g95.1<16,8,1>UB{align1};
-add (16) g49.0<1>UW g95.1<16,8,1>UB g96.1<16,8,1>UB{align1};
-add (16) g50.0<1>UW g96.1<16,8,1>UB g97.1<16,8,1>UB{align1};
-add (16) g51.0<1>UW g97.1<16,8,1>UB g98.1<16,8,1>UB{align1};
-
-add (16) g48.0<1>UW g48.0<16,16,1>UW g94.2<16,8,1>UB{align1};
-add (16) g49.0<1>UW g49.0<16,16,1>UW g95.2<16,8,1>UB{align1};
-add (16) g50.0<1>UW g50.0<16,16,1>UW g96.2<16,8,1>UB{align1};
-add (16) g51.0<1>UW g51.0<16,16,1>UW g97.2<16,8,1>UB{align1};
-add (16) g48.0<1>UW g48.0<16,16,1>UW g95.2<16,8,1>UB{align1};
-add (16) g49.0<1>UW g49.0<16,16,1>UW g96.2<16,8,1>UB{align1};
-add (16) g50.0<1>UW g50.0<16,16,1>UW g97.2<16,8,1>UB{align1};
-add (16) g51.0<1>UW g51.0<16,16,1>UW g98.2<16,8,1>UB{align1};
-jmpi out;
-
-add (16) g44.0<1>UW g86.2<16,8,1>UB g86.3<16,8,1>UB{align1};
-add (16) g45.0<1>UW g87.2<16,8,1>UB g87.3<16,8,1>UB{align1};
-add (16) g46.0<1>UW g88.2<16,8,1>UB g88.3<16,8,1>UB{align1};
-add (16) g47.0<1>UW g89.2<16,8,1>UB g89.3<16,8,1>UB{align1};
-add (16) g44.0<1>UW g44.0<16,16,1>UW g87.2<16,8,1>UB{align1};
-add (16) g45.0<1>UW g45.0<16,16,1>UW g88.2<16,8,1>UB{align1};
-add (16) g46.0<1>UW g46.0<16,16,1>UW g89.2<16,8,1>UB{align1};
-add (16) g47.0<1>UW g47.0<16,16,1>UW g90.2<16,8,1>UB{align1};
-
-add (16) g44.0<1>UW g44.0<16,16,1>UW g87.3<16,8,1>UB{align1};
-add (16) g45.0<1>UW g45.0<16,16,1>UW g88.3<16,8,1>UB{align1};
-add (16) g46.0<1>UW g46.0<16,16,1>UW g89.3<16,8,1>UB{align1};
-add (16) g47.0<1>UW g47.0<16,16,1>UW g90.3<16,8,1>UB{align1};
-add (16) g48.0<1>UW g94.2<16,8,1>UB g95.2<16,8,1>UB{align1};
-add (16) g49.0<1>UW g95.2<16,8,1>UB g96.2<16,8,1>UB{align1};
-add (16) g50.0<1>UW g96.2<16,8,1>UB g97.2<16,8,1>UB{align1};
-add (16) g51.0<1>UW g97.2<16,8,1>UB g98.2<16,8,1>UB{align1};
-
-add (16) g48.0<1>UW g48.0<16,16,1>UW g94.3<16,8,1>UB{align1};
-add (16) g49.0<1>UW g49.0<16,16,1>UW g95.3<16,8,1>UB{align1};
-add (16) g50.0<1>UW g50.0<16,16,1>UW g96.3<16,8,1>UB{align1};
-add (16) g51.0<1>UW g51.0<16,16,1>UW g97.3<16,8,1>UB{align1};
-add (16) g48.0<1>UW g48.0<16,16,1>UW g95.3<16,8,1>UB{align1};
-add (16) g49.0<1>UW g49.0<16,16,1>UW g96.3<16,8,1>UB{align1};
-add (16) g50.0<1>UW g50.0<16,16,1>UW g97.3<16,8,1>UB{align1};
-add (16) g51.0<1>UW g51.0<16,16,1>UW g98.3<16,8,1>UB{align1};
-jmpi out;
-
-add (16) g44.0<1>UW g86.3<16,8,1>UB g86.4<16,8,1>UB{align1};
-add (16) g45.0<1>UW g87.3<16,8,1>UB g87.4<16,8,1>UB{align1};
-add (16) g46.0<1>UW g88.3<16,8,1>UB g88.4<16,8,1>UB{align1};
-add (16) g47.0<1>UW g89.3<16,8,1>UB g89.4<16,8,1>UB{align1};
-add (16) g44.0<1>UW g44.0<16,16,1>UW g87.3<16,8,1>UB{align1};
-add (16) g45.0<1>UW g45.0<16,16,1>UW g88.3<16,8,1>UB{align1};
-add (16) g46.0<1>UW g46.0<16,16,1>UW g89.3<16,8,1>UB{align1};
-add (16) g47.0<1>UW g47.0<16,16,1>UW g90.3<16,8,1>UB{align1};
-
-add (16) g44.0<1>UW g44.0<16,16,1>UW g87.4<16,8,1>UB{align1};
-add (16) g45.0<1>UW g45.0<16,16,1>UW g88.4<16,8,1>UB{align1};
-add (16) g46.0<1>UW g46.0<16,16,1>UW g89.4<16,8,1>UB{align1};
-add (16) g47.0<1>UW g47.0<16,16,1>UW g90.4<16,8,1>UB{align1};
-add (16) g48.0<1>UW g94.3<16,8,1>UB g95.3<16,8,1>UB{align1};
-add (16) g49.0<1>UW g95.3<16,8,1>UB g96.3<16,8,1>UB{align1};
-add (16) g50.0<1>UW g96.3<16,8,1>UB g97.3<16,8,1>UB{align1};
-add (16) g51.0<1>UW g97.3<16,8,1>UB g98.3<16,8,1>UB{align1};
-
-add (16) g48.0<1>UW g48.0<16,16,1>UW g94.4<16,8,1>UB{align1};
-add (16) g49.0<1>UW g49.0<16,16,1>UW g95.4<16,8,1>UB{align1};
-add (16) g50.0<1>UW g50.0<16,16,1>UW g96.4<16,8,1>UB{align1};
-add (16) g51.0<1>UW g51.0<16,16,1>UW g97.4<16,8,1>UB{align1};
-add (16) g48.0<1>UW g48.0<16,16,1>UW g95.4<16,8,1>UB{align1};
-add (16) g49.0<1>UW g49.0<16,16,1>UW g96.4<16,8,1>UB{align1};
-add (16) g50.0<1>UW g50.0<16,16,1>UW g97.4<16,8,1>UB{align1};
-add (16) g51.0<1>UW g51.0<16,16,1>UW g98.4<16,8,1>UB{align1};
-out:
-
-shr.sat (16) g44.0<1>UW g44.0<16,16,1>UW 2UW {align1};
-shr.sat (16) g45.0<1>UW g45.0<16,16,1>UW 2UW {align1};
-shr.sat (16) g46.0<1>UW g46.0<16,16,1>UW 2UW {align1};
-shr.sat (16) g47.0<1>UW g47.0<16,16,1>UW 2UW {align1};
-shr.sat (16) g48.0<1>UW g48.0<16,16,1>UW 2UW {align1};
-shr.sat (16) g49.0<1>UW g49.0<16,16,1>UW 2UW {align1};
-shr.sat (16) g50.0<1>UW g50.0<16,16,1>UW 2UW {align1};
-shr.sat (16) g51.0<1>UW g51.0<16,16,1>UW 2UW {align1};
diff --git a/src/xvmc/read_frame_x1y1_uv_igd.g4i b/src/xvmc/read_frame_x1y1_uv_igd.g4i
deleted file mode 100644
index 96aada8..0000000
--- a/src/xvmc/read_frame_x1y1_uv_igd.g4i
+++ /dev/null
@@ -1,71 +0,0 @@
-/*
- * Copyright © 2008 Intel Corporation
- *
- * Permission is hereby granted, free of charge, to any person obtaining a
- * copy of this software and associated documentation files (the "Software"),
- * to deal in the Software without restriction, including without limitation
- * the rights to use, copy, modify, merge, publish, distribute, sublicense,
- * and/or sell copies of the Software, and to permit persons to whom the
- * Software is furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice (including the next
- * paragraph) shall be included in all copies or substantial portions of the
- * Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
- * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
- * SOFTWARE.
- *
- * Author:
- *    Zou Nan hai <nanhai.zou at intel.com>
- *    Zhang Hua jun <huajun.zhang at intel.com>
- *    Xing Dong sheng <dongsheng.xing at intel.com>
- *
- */
-send (16) 0 g86.0<1>UW g2<8,8,1>UW read(input_surface1, 2, 0, 2) mlen 1 rlen 4 {align1};
-send (16) 0 g94.0<1>UW g2<8,8,1>UW read(input_surface2, 2, 0, 2) mlen 1 rlen 4 {align1};
-mov (1) g2.8<1>UD 0x01001FUD {align1};
-add (1) g2.4<1>UD g2.4<1,1,1>UD 8D {align1};
-send (16) 0 g90.0<1>UW g2<8,8,1>UW read(input_surface1, 2, 0, 2) mlen 1 rlen 1 {align1};
-send (16) 0 g98.0<1>UW g2<8,8,1>UW read(input_surface2, 2, 0, 2) mlen 1 rlen 1 {align1};
-mov (1) g2.8<1>UD 0x007000fUD  {align1};
-
-add (16) g44.0<1>UW g86.0<16,8,1>UB g86.1<16,8,1>UB{align1};
-add (16) g45.0<1>UW g87.0<16,8,1>UB g87.1<16,8,1>UB{align1};
-add (16) g46.0<1>UW g88.0<16,8,1>UB g88.1<16,8,1>UB{align1};
-add (16) g47.0<1>UW g89.0<16,8,1>UB g89.1<16,8,1>UB{align1};
-add (16) g44.0<1>UW g44.0<16,16,1>UW g87.0<16,8,1>UB{align1};
-add (16) g45.0<1>UW g45.0<16,16,1>UW g88.0<16,8,1>UB{align1};
-add (16) g46.0<1>UW g46.0<16,16,1>UW g89.0<16,8,1>UB{align1};
-add (16) g47.0<1>UW g47.0<16,16,1>UW g90.0<16,8,1>UB{align1};
-
-add (16) g44.0<1>UW g44.0<16,16,1>UW g87.1<16,8,1>UB{align1};
-add (16) g45.0<1>UW g45.0<16,16,1>UW g88.1<16,8,1>UB{align1};
-add (16) g46.0<1>UW g46.0<16,16,1>UW g89.1<16,8,1>UB{align1};
-add (16) g47.0<1>UW g47.0<16,16,1>UW g90.1<16,8,1>UB{align1};
-add (16) g48.0<1>UW g94.0<16,8,1>UB g95.0<16,8,1>UB{align1};
-add (16) g49.0<1>UW g95.0<16,8,1>UB g96.0<16,8,1>UB{align1};
-add (16) g50.0<1>UW g96.0<16,8,1>UB g97.0<16,8,1>UB{align1};
-add (16) g51.0<1>UW g97.0<16,8,1>UB g98.0<16,8,1>UB{align1};
-
-add (16) g48.0<1>UW g48.0<16,16,1>UW g94.1<16,8,1>UB{align1};
-add (16) g49.0<1>UW g49.0<16,16,1>UW g95.1<16,8,1>UB{align1};
-add (16) g50.0<1>UW g50.0<16,16,1>UW g96.1<16,8,1>UB{align1};
-add (16) g51.0<1>UW g51.0<16,16,1>UW g97.1<16,8,1>UB{align1};
-add (16) g48.0<1>UW g48.0<16,16,1>UW g95.1<16,8,1>UB{align1};
-add (16) g49.0<1>UW g49.0<16,16,1>UW g96.1<16,8,1>UB{align1};
-add (16) g50.0<1>UW g50.0<16,16,1>UW g97.1<16,8,1>UB{align1};
-add (16) g51.0<1>UW g51.0<16,16,1>UW g98.1<16,8,1>UB{align1};
-
-shr.sat (16) g44.0<1>UW g44.0<16,16,1>UW 2UW {align1};
-shr.sat (16) g45.0<1>UW g45.0<16,16,1>UW 2UW {align1};
-shr.sat (16) g46.0<1>UW g46.0<16,16,1>UW 2UW {align1};
-shr.sat (16) g47.0<1>UW g47.0<16,16,1>UW 2UW {align1};
-shr.sat (16) g48.0<1>UW g48.0<16,16,1>UW 2UW {align1};
-shr.sat (16) g49.0<1>UW g49.0<16,16,1>UW 2UW {align1};
-shr.sat (16) g50.0<1>UW g50.0<16,16,1>UW 2UW {align1};
-shr.sat (16) g51.0<1>UW g51.0<16,16,1>UW 2UW {align1};
diff --git a/src/xvmc/read_frame_x1y1_y.g4i b/src/xvmc/read_frame_x1y1_y.g4i
deleted file mode 100644
index fa55d86..0000000
--- a/src/xvmc/read_frame_x1y1_y.g4i
+++ /dev/null
@@ -1,264 +0,0 @@
-/*
- * Copyright © 2008 Intel Corporation
- *
- * Permission is hereby granted, free of charge, to any person obtaining a
- * copy of this software and associated documentation files (the "Software"),
- * to deal in the Software without restriction, including without limitation
- * the rights to use, copy, modify, merge, publish, distribute, sublicense,
- * and/or sell copies of the Software, and to permit persons to whom the
- * Software is furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice (including the next
- * paragraph) shall be included in all copies or substantial portions of the
- * Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
- * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
- * SOFTWARE.
- *
- * Author:
- *    Zou Nan hai <nanhai.zou at intel.com>
- *    Zhang Hua jun <huajun.zhang at intel.com>
- *    Xing Dong sheng <dongsheng.xing at intel.com>
- *
- */
-mov (1) g2.8<1>UD 0x007001FUD {align1};
-send (16) 0 g98.0<1>UW g2<8,8,1>UW read(input_surface, 2, 0, 2) mlen 1 rlen 8 {align1};
-
-and (1) g2.24<1>UD g2.0<1,1,1>UD 3UD {align1};
-mul(1) g2.24<1>UD g2.24<1,1,1>UD 49UD {align1};
-add (1) g2.4<1>UD g2.4<1,1,1>UD 8UD {align1};
-send (16) 0 g106.0<1>UW g2<8,8,1>UW read(input_surface, 2, 0, 2) mlen 1 rlen 8 {align1};
-add (1) g2.4<1>UD g2.4<1,1,1>UD 8UD {align1};
-mov (1) g2.8<1>UD 0x1FUD {align1};
-send (16) 0 g120.0<1>UW g2<8,8,1>UW read(input_surface, 2, 0, 2) mlen 1 rlen 1 {align1};
-
-jmpi g2.24<1,1,1>D;
-
-add (16) g28.0<1>UW g98.0<16,16,1>UB g98.1<16,16,1>UB {align1};
-add (16) g29.0<1>UW g99.0<16,16,1>UB g99.1<16,16,1>UB {align1};
-add (16) g30.0<1>UW g100.0<16,16,1>UB g100.1<16,16,1>UB {align1};
-add (16) g31.0<1>UW g101.0<16,16,1>UB g101.1<16,16,1>UB {align1};
-add (16) g32.0<1>UW g102.0<16,16,1>UB g102.1<16,16,1>UB {align1};
-add (16) g33.0<1>UW g103.0<16,16,1>UB g103.1<16,16,1>UB {align1};
-add (16) g34.0<1>UW g104.0<16,16,1>UB g104.1<16,16,1>UB {align1};
-add (16) g35.0<1>UW g105.0<16,16,1>UB g105.1<16,16,1>UB {align1};
-add (16) g36.0<1>UW g106.0<16,16,1>UB g106.1<16,16,1>UB {align1};
-add (16) g37.0<1>UW g107.0<16,16,1>UB g107.1<16,16,1>UB {align1};
-add (16) g38.0<1>UW g108.0<16,16,1>UB g108.1<16,16,1>UB {align1};
-add (16) g39.0<1>UW g109.0<16,16,1>UB g109.1<16,16,1>UB {align1};
-add (16) g40.0<1>UW g110.0<16,16,1>UB g110.1<16,16,1>UB {align1};
-add (16) g41.0<1>UW g111.0<16,16,1>UB g111.1<16,16,1>UB {align1};
-add (16) g42.0<1>UW g112.0<16,16,1>UB g112.1<16,16,1>UB {align1};
-add (16) g43.0<1>UW g113.0<16,16,1>UB g113.1<16,16,1>UB {align1};
-
-add (16) g28.0<1>UW g28.0<16,16,1>UW g99.0<16,16,1>UB {align1};
-add (16) g29.0<1>UW g29.0<16,16,1>UW g100.0<16,16,1>UB {align1};
-add (16) g30.0<1>UW g30.0<16,16,1>UW g101.0<16,16,1>UB {align1};
-add (16) g31.0<1>UW g31.0<16,16,1>UW g102.0<16,16,1>UB {align1};
-add (16) g32.0<1>UW g32.0<16,16,1>UW g103.0<16,16,1>UB {align1};
-add (16) g33.0<1>UW g33.0<16,16,1>UW g104.0<16,16,1>UB {align1};
-add (16) g34.0<1>UW g34.0<16,16,1>UW g105.0<16,16,1>UB {align1};
-add (16) g35.0<1>UW g35.0<16,16,1>UW g106.0<16,16,1>UB {align1};
-add (16) g36.0<1>UW g36.0<16,16,1>UW g107.0<16,16,1>UB {align1};
-add (16) g37.0<1>UW g37.0<16,16,1>UW g108.0<16,16,1>UB {align1};
-add (16) g38.0<1>UW g38.0<16,16,1>UW g109.0<16,16,1>UB {align1};
-add (16) g39.0<1>UW g39.0<16,16,1>UW g110.0<16,16,1>UB {align1};
-add (16) g40.0<1>UW g40.0<16,16,1>UW g111.0<16,16,1>UB {align1};
-add (16) g41.0<1>UW g41.0<16,16,1>UW g112.0<16,16,1>UB {align1};
-add (16) g42.0<1>UW g42.0<16,16,1>UW g113.0<16,16,1>UB {align1};
-add (16) g43.0<1>UW g43.0<16,16,1>UW g120.0<16,16,1>UB {align1};
-
-add (16) g28.0<1>UW g28.0<16,16,1>UW g99.1<16,16,1>UB {align1};
-add (16) g29.0<1>UW g29.0<16,16,1>UW g100.1<16,16,1>UB {align1};
-add (16) g30.0<1>UW g30.0<16,16,1>UW g101.1<16,16,1>UB {align1};
-add (16) g31.0<1>UW g31.0<16,16,1>UW g102.1<16,16,1>UB {align1};
-add (16) g32.0<1>UW g32.0<16,16,1>UW g103.1<16,16,1>UB {align1};
-add (16) g33.0<1>UW g33.0<16,16,1>UW g104.1<16,16,1>UB {align1};
-add (16) g34.0<1>UW g34.0<16,16,1>UW g105.1<16,16,1>UB {align1};
-add (16) g35.0<1>UW g35.0<16,16,1>UW g106.1<16,16,1>UB {align1};
-add (16) g36.0<1>UW g36.0<16,16,1>UW g107.1<16,16,1>UB {align1};
-add (16) g37.0<1>UW g37.0<16,16,1>UW g108.1<16,16,1>UB {align1};
-add (16) g38.0<1>UW g38.0<16,16,1>UW g109.1<16,16,1>UB {align1};
-add (16) g39.0<1>UW g39.0<16,16,1>UW g110.1<16,16,1>UB {align1};
-add (16) g40.0<1>UW g40.0<16,16,1>UW g111.1<16,16,1>UB {align1};
-add (16) g41.0<1>UW g41.0<16,16,1>UW g112.1<16,16,1>UB {align1};
-add (16) g42.0<1>UW g42.0<16,16,1>UW g113.1<16,16,1>UB {align1};
-add (16) g43.0<1>UW g43.0<16,16,1>UW g120.1<16,16,1>UB {align1};
-jmpi out;
-
-add (16) g28.0<1>UW g98.1<16,16,1>UB g98.2<16,16,1>UB {align1};
-add (16) g29.0<1>UW g99.1<16,16,1>UB g99.2<16,16,1>UB {align1};
-add (16) g30.0<1>UW g100.1<16,16,1>UB g100.2<16,16,1>UB {align1};
-add (16) g31.0<1>UW g101.1<16,16,1>UB g101.2<16,16,1>UB {align1};
-add (16) g32.0<1>UW g102.1<16,16,1>UB g102.2<16,16,1>UB {align1};
-add (16) g33.0<1>UW g103.1<16,16,1>UB g103.2<16,16,1>UB {align1};
-add (16) g34.0<1>UW g104.1<16,16,1>UB g104.2<16,16,1>UB {align1};
-add (16) g35.0<1>UW g105.1<16,16,1>UB g105.2<16,16,1>UB {align1};
-add (16) g36.0<1>UW g106.1<16,16,1>UB g106.2<16,16,1>UB {align1};
-add (16) g37.0<1>UW g107.1<16,16,1>UB g107.2<16,16,1>UB {align1};
-add (16) g38.0<1>UW g108.1<16,16,1>UB g108.2<16,16,1>UB {align1};
-add (16) g39.0<1>UW g109.1<16,16,1>UB g109.2<16,16,1>UB {align1};
-add (16) g40.0<1>UW g110.1<16,16,1>UB g110.2<16,16,1>UB {align1};
-add (16) g41.0<1>UW g111.1<16,16,1>UB g111.2<16,16,1>UB {align1};
-add (16) g42.0<1>UW g112.1<16,16,1>UB g112.2<16,16,1>UB {align1};
-add (16) g43.0<1>UW g113.1<16,16,1>UB g113.2<16,16,1>UB {align1};
-
-add (16) g28.0<1>UW g28.0<16,16,1>UW g99.1<16,16,1>UB {align1};
-add (16) g29.0<1>UW g29.0<16,16,1>UW g100.1<16,16,1>UB {align1};
-add (16) g30.0<1>UW g30.0<16,16,1>UW g101.1<16,16,1>UB {align1};
-add (16) g31.0<1>UW g31.0<16,16,1>UW g102.1<16,16,1>UB {align1};
-add (16) g32.0<1>UW g32.0<16,16,1>UW g103.1<16,16,1>UB {align1};
-add (16) g33.0<1>UW g33.0<16,16,1>UW g104.1<16,16,1>UB {align1};
-add (16) g34.0<1>UW g34.0<16,16,1>UW g105.1<16,16,1>UB {align1};
-add (16) g35.0<1>UW g35.0<16,16,1>UW g106.1<16,16,1>UB {align1};
-add (16) g36.0<1>UW g36.0<16,16,1>UW g107.1<16,16,1>UB {align1};
-add (16) g37.0<1>UW g37.0<16,16,1>UW g108.1<16,16,1>UB {align1};
-add (16) g38.0<1>UW g38.0<16,16,1>UW g109.1<16,16,1>UB {align1};
-add (16) g39.0<1>UW g39.0<16,16,1>UW g110.1<16,16,1>UB {align1};
-add (16) g40.0<1>UW g40.0<16,16,1>UW g111.1<16,16,1>UB {align1};
-add (16) g41.0<1>UW g41.0<16,16,1>UW g112.1<16,16,1>UB {align1};
-add (16) g42.0<1>UW g42.0<16,16,1>UW g113.1<16,16,1>UB {align1};
-add (16) g43.0<1>UW g43.0<16,16,1>UW g120.1<16,16,1>UB {align1};
-
-add (16) g28.0<1>UW g28.0<16,16,1>UW g99.2<16,16,1>UB {align1};
-add (16) g29.0<1>UW g29.0<16,16,1>UW g100.2<16,16,1>UB {align1};
-add (16) g30.0<1>UW g30.0<16,16,1>UW g101.2<16,16,1>UB {align1};
-add (16) g31.0<1>UW g31.0<16,16,1>UW g102.2<16,16,1>UB {align1};
-add (16) g32.0<1>UW g32.0<16,16,1>UW g103.2<16,16,1>UB {align1};
-add (16) g33.0<1>UW g33.0<16,16,1>UW g104.2<16,16,1>UB {align1};
-add (16) g34.0<1>UW g34.0<16,16,1>UW g105.2<16,16,1>UB {align1};
-add (16) g35.0<1>UW g35.0<16,16,1>UW g106.2<16,16,1>UB {align1};
-add (16) g36.0<1>UW g36.0<16,16,1>UW g107.2<16,16,1>UB {align1};
-add (16) g37.0<1>UW g37.0<16,16,1>UW g108.2<16,16,1>UB {align1};
-add (16) g38.0<1>UW g38.0<16,16,1>UW g109.2<16,16,1>UB {align1};
-add (16) g39.0<1>UW g39.0<16,16,1>UW g110.2<16,16,1>UB {align1};
-add (16) g40.0<1>UW g40.0<16,16,1>UW g111.2<16,16,1>UB {align1};
-add (16) g41.0<1>UW g41.0<16,16,1>UW g112.2<16,16,1>UB {align1};
-add (16) g42.0<1>UW g42.0<16,16,1>UW g113.2<16,16,1>UB {align1};
-add (16) g43.0<1>UW g43.0<16,16,1>UW g120.2<16,16,1>UB {align1};
-jmpi out;
-
-add (16) g28.0<1>UW g98.2<16,16,1>UB g98.3<16,16,1>UB {align1};
-add (16) g29.0<1>UW g99.2<16,16,1>UB g99.3<16,16,1>UB {align1};
-add (16) g30.0<1>UW g100.2<16,16,1>UB g100.3<16,16,1>UB {align1};
-add (16) g31.0<1>UW g101.2<16,16,1>UB g101.3<16,16,1>UB {align1};
-add (16) g32.0<1>UW g102.2<16,16,1>UB g102.3<16,16,1>UB {align1};
-add (16) g33.0<1>UW g103.2<16,16,1>UB g103.3<16,16,1>UB {align1};
-add (16) g34.0<1>UW g104.2<16,16,1>UB g104.3<16,16,1>UB {align1};
-add (16) g35.0<1>UW g105.2<16,16,1>UB g105.3<16,16,1>UB {align1};
-add (16) g36.0<1>UW g106.2<16,16,1>UB g106.3<16,16,1>UB {align1};
-add (16) g37.0<1>UW g107.2<16,16,1>UB g107.3<16,16,1>UB {align1};
-add (16) g38.0<1>UW g108.2<16,16,1>UB g108.3<16,16,1>UB {align1};
-add (16) g39.0<1>UW g109.2<16,16,1>UB g109.3<16,16,1>UB {align1};
-add (16) g40.0<1>UW g110.2<16,16,1>UB g110.3<16,16,1>UB {align1};
-add (16) g41.0<1>UW g111.2<16,16,1>UB g111.3<16,16,1>UB {align1};
-add (16) g42.0<1>UW g112.2<16,16,1>UB g112.3<16,16,1>UB {align1};
-add (16) g43.0<1>UW g113.2<16,16,1>UB g113.3<16,16,1>UB {align1};
-
-add (16) g28.0<1>UW g28.0<16,16,1>UW g99.2<16,16,1>UB {align1};
-add (16) g29.0<1>UW g29.0<16,16,1>UW g100.2<16,16,1>UB {align1};
-add (16) g30.0<1>UW g30.0<16,16,1>UW g101.2<16,16,1>UB {align1};
-add (16) g31.0<1>UW g31.0<16,16,1>UW g102.2<16,16,1>UB {align1};
-add (16) g32.0<1>UW g32.0<16,16,1>UW g103.2<16,16,1>UB {align1};
-add (16) g33.0<1>UW g33.0<16,16,1>UW g104.2<16,16,1>UB {align1};
-add (16) g34.0<1>UW g34.0<16,16,1>UW g105.2<16,16,1>UB {align1};
-add (16) g35.0<1>UW g35.0<16,16,1>UW g106.2<16,16,1>UB {align1};
-add (16) g36.0<1>UW g36.0<16,16,1>UW g107.2<16,16,1>UB {align1};
-add (16) g37.0<1>UW g37.0<16,16,1>UW g108.2<16,16,1>UB {align1};
-add (16) g38.0<1>UW g38.0<16,16,1>UW g109.2<16,16,1>UB {align1};
-add (16) g39.0<1>UW g39.0<16,16,1>UW g110.2<16,16,1>UB {align1};
-add (16) g40.0<1>UW g40.0<16,16,1>UW g111.2<16,16,1>UB {align1};
-add (16) g41.0<1>UW g41.0<16,16,1>UW g112.2<16,16,1>UB {align1};
-add (16) g42.0<1>UW g42.0<16,16,1>UW g113.2<16,16,1>UB {align1};
-add (16) g43.0<1>UW g43.0<16,16,1>UW g120.2<16,16,1>UB {align1};
-
-add (16) g28.0<1>UW g28.0<16,16,1>UW g99.3<16,16,1>UB {align1};
-add (16) g29.0<1>UW g29.0<16,16,1>UW g100.3<16,16,1>UB {align1};
-add (16) g30.0<1>UW g30.0<16,16,1>UW g101.3<16,16,1>UB {align1};
-add (16) g31.0<1>UW g31.0<16,16,1>UW g102.3<16,16,1>UB {align1};
-add (16) g32.0<1>UW g32.0<16,16,1>UW g103.3<16,16,1>UB {align1};
-add (16) g33.0<1>UW g33.0<16,16,1>UW g104.3<16,16,1>UB {align1};
-add (16) g34.0<1>UW g34.0<16,16,1>UW g105.3<16,16,1>UB {align1};
-add (16) g35.0<1>UW g35.0<16,16,1>UW g106.3<16,16,1>UB {align1};
-add (16) g36.0<1>UW g36.0<16,16,1>UW g107.3<16,16,1>UB {align1};
-add (16) g37.0<1>UW g37.0<16,16,1>UW g108.3<16,16,1>UB {align1};
-add (16) g38.0<1>UW g38.0<16,16,1>UW g109.3<16,16,1>UB {align1};
-add (16) g39.0<1>UW g39.0<16,16,1>UW g110.3<16,16,1>UB {align1};
-add (16) g40.0<1>UW g40.0<16,16,1>UW g111.3<16,16,1>UB {align1};
-add (16) g41.0<1>UW g41.0<16,16,1>UW g112.3<16,16,1>UB {align1};
-add (16) g42.0<1>UW g42.0<16,16,1>UW g113.3<16,16,1>UB {align1};
-add (16) g43.0<1>UW g43.0<16,16,1>UW g120.3<16,16,1>UB {align1};
-jmpi out;
-add (16) g28.0<1>UW g98.3<16,16,1>UB g98.4<16,16,1>UB {align1};
-add (16) g29.0<1>UW g99.3<16,16,1>UB g99.4<16,16,1>UB {align1};
-add (16) g30.0<1>UW g100.3<16,16,1>UB g100.4<16,16,1>UB {align1};
-add (16) g31.0<1>UW g101.3<16,16,1>UB g101.4<16,16,1>UB {align1};
-add (16) g32.0<1>UW g102.3<16,16,1>UB g102.4<16,16,1>UB {align1};
-add (16) g33.0<1>UW g103.3<16,16,1>UB g103.4<16,16,1>UB {align1};
-add (16) g34.0<1>UW g104.3<16,16,1>UB g104.4<16,16,1>UB {align1};
-add (16) g35.0<1>UW g105.3<16,16,1>UB g105.4<16,16,1>UB {align1};
-add (16) g36.0<1>UW g106.3<16,16,1>UB g106.4<16,16,1>UB {align1};
-add (16) g37.0<1>UW g107.3<16,16,1>UB g107.4<16,16,1>UB {align1};
-add (16) g38.0<1>UW g108.3<16,16,1>UB g108.4<16,16,1>UB {align1};
-add (16) g39.0<1>UW g109.3<16,16,1>UB g109.4<16,16,1>UB {align1};
-add (16) g40.0<1>UW g110.3<16,16,1>UB g110.4<16,16,1>UB {align1};
-add (16) g41.0<1>UW g111.3<16,16,1>UB g111.4<16,16,1>UB {align1};
-add (16) g42.0<1>UW g112.3<16,16,1>UB g112.4<16,16,1>UB {align1};
-add (16) g43.0<1>UW g113.3<16,16,1>UB g113.4<16,16,1>UB {align1};
-
-add (16) g28.0<1>UW g28.0<16,16,1>UW g99.3<16,16,1>UB {align1};
-add (16) g29.0<1>UW g29.0<16,16,1>UW g100.3<16,16,1>UB {align1};
-add (16) g30.0<1>UW g30.0<16,16,1>UW g101.3<16,16,1>UB {align1};
-add (16) g31.0<1>UW g31.0<16,16,1>UW g102.3<16,16,1>UB {align1};
-add (16) g32.0<1>UW g32.0<16,16,1>UW g103.3<16,16,1>UB {align1};
-add (16) g33.0<1>UW g33.0<16,16,1>UW g104.3<16,16,1>UB {align1};
-add (16) g34.0<1>UW g34.0<16,16,1>UW g105.3<16,16,1>UB {align1};
-add (16) g35.0<1>UW g35.0<16,16,1>UW g106.3<16,16,1>UB {align1};
-add (16) g36.0<1>UW g36.0<16,16,1>UW g107.3<16,16,1>UB {align1};
-add (16) g37.0<1>UW g37.0<16,16,1>UW g108.3<16,16,1>UB {align1};
-add (16) g38.0<1>UW g38.0<16,16,1>UW g109.3<16,16,1>UB {align1};
-add (16) g39.0<1>UW g39.0<16,16,1>UW g110.3<16,16,1>UB {align1};
-add (16) g40.0<1>UW g40.0<16,16,1>UW g111.3<16,16,1>UB {align1};
-add (16) g41.0<1>UW g41.0<16,16,1>UW g112.3<16,16,1>UB {align1};
-add (16) g42.0<1>UW g42.0<16,16,1>UW g113.3<16,16,1>UB {align1};
-add (16) g43.0<1>UW g43.0<16,16,1>UW g120.3<16,16,1>UB {align1};
-
-add (16) g28.0<1>UW g28.0<16,16,1>UW g99.4<16,16,1>UB {align1};
-add (16) g29.0<1>UW g29.0<16,16,1>UW g100.4<16,16,1>UB {align1};
-add (16) g30.0<1>UW g30.0<16,16,1>UW g101.4<16,16,1>UB {align1};
-add (16) g31.0<1>UW g31.0<16,16,1>UW g102.4<16,16,1>UB {align1};
-add (16) g32.0<1>UW g32.0<16,16,1>UW g103.4<16,16,1>UB {align1};
-add (16) g33.0<1>UW g33.0<16,16,1>UW g104.4<16,16,1>UB {align1};
-add (16) g34.0<1>UW g34.0<16,16,1>UW g105.4<16,16,1>UB {align1};
-add (16) g35.0<1>UW g35.0<16,16,1>UW g106.4<16,16,1>UB {align1};
-add (16) g36.0<1>UW g36.0<16,16,1>UW g107.4<16,16,1>UB {align1};
-add (16) g37.0<1>UW g37.0<16,16,1>UW g108.4<16,16,1>UB {align1};
-add (16) g38.0<1>UW g38.0<16,16,1>UW g109.4<16,16,1>UB {align1};
-add (16) g39.0<1>UW g39.0<16,16,1>UW g110.4<16,16,1>UB {align1};
-add (16) g40.0<1>UW g40.0<16,16,1>UW g111.4<16,16,1>UB {align1};
-add (16) g41.0<1>UW g41.0<16,16,1>UW g112.4<16,16,1>UB {align1};
-add (16) g42.0<1>UW g42.0<16,16,1>UW g113.4<16,16,1>UB {align1};
-add (16) g43.0<1>UW g43.0<16,16,1>UW g120.4<16,16,1>UB {align1};
-
-out:
-shr.sat (16) g28.0<1>UW g28.0<16,16,1>UW 2UW {align1};
-shr.sat (16) g29.0<1>UW g29.0<16,16,1>UW 2UW {align1};
-shr.sat (16) g30.0<1>UW g30.0<16,16,1>UW 2UW {align1};
-shr.sat (16) g31.0<1>UW g31.0<16,16,1>UW 2UW {align1};
-shr.sat (16) g32.0<1>UW g32.0<16,16,1>UW 2UW {align1};
-shr.sat (16) g33.0<1>UW g33.0<16,16,1>UW 2UW {align1};
-shr.sat (16) g34.0<1>UW g34.0<16,16,1>UW 2UW {align1};
-shr.sat (16) g35.0<1>UW g35.0<16,16,1>UW 2UW {align1};
-shr.sat (16) g36.0<1>UW g36.0<16,16,1>UW 2UW {align1};
-shr.sat (16) g37.0<1>UW g37.0<16,16,1>UW 2UW {align1};
-shr.sat (16) g38.0<1>UW g38.0<16,16,1>UW 2UW {align1};
-shr.sat (16) g39.0<1>UW g39.0<16,16,1>UW 2UW {align1};
-shr.sat (16) g40.0<1>UW g40.0<16,16,1>UW 2UW {align1};
-shr.sat (16) g41.0<1>UW g41.0<16,16,1>UW 2UW {align1};
-shr.sat (16) g42.0<1>UW g42.0<16,16,1>UW 2UW {align1};
-shr.sat (16) g43.0<1>UW g43.0<16,16,1>UW 2UW {align1};
diff --git a/src/xvmc/read_frame_x1y1_y_igd.g4i b/src/xvmc/read_frame_x1y1_y_igd.g4i
deleted file mode 100644
index 89adc38..0000000
--- a/src/xvmc/read_frame_x1y1_y_igd.g4i
+++ /dev/null
@@ -1,105 +0,0 @@
-/*
- * Copyright © 2008 Intel Corporation
- *
- * Permission is hereby granted, free of charge, to any person obtaining a
- * copy of this software and associated documentation files (the "Software"),
- * to deal in the Software without restriction, including without limitation
- * the rights to use, copy, modify, merge, publish, distribute, sublicense,
- * and/or sell copies of the Software, and to permit persons to whom the
- * Software is furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice (including the next
- * paragraph) shall be included in all copies or substantial portions of the
- * Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
- * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
- * SOFTWARE.
- *
- * Author:
- *    Zou Nan hai <nanhai.zou at intel.com>
- *    Zhang Hua jun <huajun.zhang at intel.com>
- *    Xing Dong sheng <dongsheng.xing at intel.com>
- *
- */
-mov (1) g2.8<1>UD 0x007001FUD {align1};
-send (16) 0 g98.0<1>UW g2<8,8,1>UW read(input_surface, 2, 0, 2) mlen 1 rlen 8 {align1};
-
-add (1) g2.4<1>UD g2.4<1,1,1>UD 8UD {align1};
-send (16) 0 g106.0<1>UW g2<8,8,1>UW read(input_surface, 2, 0, 2) mlen 1 rlen 8 {align1};
-add (1) g2.4<1>UD g2.4<1,1,1>UD 8UD {align1};
-mov (1) g2.8<1>UD 0x1FUD {align1};
-send (16) 0 g120.0<1>UW g2<8,8,1>UW read(input_surface, 2, 0, 2) mlen 1 rlen 1 {align1};
-
-
-add (16) g28.0<1>UW g98.0<16,16,1>UB g98.1<16,16,1>UB {align1};
-add (16) g29.0<1>UW g99.0<16,16,1>UB g99.1<16,16,1>UB {align1};
-add (16) g30.0<1>UW g100.0<16,16,1>UB g100.1<16,16,1>UB {align1};
-add (16) g31.0<1>UW g101.0<16,16,1>UB g101.1<16,16,1>UB {align1};
-add (16) g32.0<1>UW g102.0<16,16,1>UB g102.1<16,16,1>UB {align1};
-add (16) g33.0<1>UW g103.0<16,16,1>UB g103.1<16,16,1>UB {align1};
-add (16) g34.0<1>UW g104.0<16,16,1>UB g104.1<16,16,1>UB {align1};
-add (16) g35.0<1>UW g105.0<16,16,1>UB g105.1<16,16,1>UB {align1};
-add (16) g36.0<1>UW g106.0<16,16,1>UB g106.1<16,16,1>UB {align1};
-add (16) g37.0<1>UW g107.0<16,16,1>UB g107.1<16,16,1>UB {align1};
-add (16) g38.0<1>UW g108.0<16,16,1>UB g108.1<16,16,1>UB {align1};
-add (16) g39.0<1>UW g109.0<16,16,1>UB g109.1<16,16,1>UB {align1};
-add (16) g40.0<1>UW g110.0<16,16,1>UB g110.1<16,16,1>UB {align1};
-add (16) g41.0<1>UW g111.0<16,16,1>UB g111.1<16,16,1>UB {align1};
-add (16) g42.0<1>UW g112.0<16,16,1>UB g112.1<16,16,1>UB {align1};
-add (16) g43.0<1>UW g113.0<16,16,1>UB g113.1<16,16,1>UB {align1};
-
-add (16) g28.0<1>UW g28.0<16,16,1>UW g99.0<16,16,1>UB {align1};
-add (16) g29.0<1>UW g29.0<16,16,1>UW g100.0<16,16,1>UB {align1};
-add (16) g30.0<1>UW g30.0<16,16,1>UW g101.0<16,16,1>UB {align1};
-add (16) g31.0<1>UW g31.0<16,16,1>UW g102.0<16,16,1>UB {align1};
-add (16) g32.0<1>UW g32.0<16,16,1>UW g103.0<16,16,1>UB {align1};
-add (16) g33.0<1>UW g33.0<16,16,1>UW g104.0<16,16,1>UB {align1};
-add (16) g34.0<1>UW g34.0<16,16,1>UW g105.0<16,16,1>UB {align1};
-add (16) g35.0<1>UW g35.0<16,16,1>UW g106.0<16,16,1>UB {align1};
-add (16) g36.0<1>UW g36.0<16,16,1>UW g107.0<16,16,1>UB {align1};
-add (16) g37.0<1>UW g37.0<16,16,1>UW g108.0<16,16,1>UB {align1};
-add (16) g38.0<1>UW g38.0<16,16,1>UW g109.0<16,16,1>UB {align1};
-add (16) g39.0<1>UW g39.0<16,16,1>UW g110.0<16,16,1>UB {align1};
-add (16) g40.0<1>UW g40.0<16,16,1>UW g111.0<16,16,1>UB {align1};
-add (16) g41.0<1>UW g41.0<16,16,1>UW g112.0<16,16,1>UB {align1};
-add (16) g42.0<1>UW g42.0<16,16,1>UW g113.0<16,16,1>UB {align1};
-add (16) g43.0<1>UW g43.0<16,16,1>UW g120.0<16,16,1>UB {align1};
-
-add (16) g28.0<1>UW g28.0<16,16,1>UW g99.1<16,16,1>UB {align1};
-add (16) g29.0<1>UW g29.0<16,16,1>UW g100.1<16,16,1>UB {align1};
-add (16) g30.0<1>UW g30.0<16,16,1>UW g101.1<16,16,1>UB {align1};
-add (16) g31.0<1>UW g31.0<16,16,1>UW g102.1<16,16,1>UB {align1};
-add (16) g32.0<1>UW g32.0<16,16,1>UW g103.1<16,16,1>UB {align1};
-add (16) g33.0<1>UW g33.0<16,16,1>UW g104.1<16,16,1>UB {align1};
-add (16) g34.0<1>UW g34.0<16,16,1>UW g105.1<16,16,1>UB {align1};
-add (16) g35.0<1>UW g35.0<16,16,1>UW g106.1<16,16,1>UB {align1};
-add (16) g36.0<1>UW g36.0<16,16,1>UW g107.1<16,16,1>UB {align1};
-add (16) g37.0<1>UW g37.0<16,16,1>UW g108.1<16,16,1>UB {align1};
-add (16) g38.0<1>UW g38.0<16,16,1>UW g109.1<16,16,1>UB {align1};
-add (16) g39.0<1>UW g39.0<16,16,1>UW g110.1<16,16,1>UB {align1};
-add (16) g40.0<1>UW g40.0<16,16,1>UW g111.1<16,16,1>UB {align1};
-add (16) g41.0<1>UW g41.0<16,16,1>UW g112.1<16,16,1>UB {align1};
-add (16) g42.0<1>UW g42.0<16,16,1>UW g113.1<16,16,1>UB {align1};
-add (16) g43.0<1>UW g43.0<16,16,1>UW g120.1<16,16,1>UB {align1};
-
-shr.sat (16) g28.0<1>UW g28.0<16,16,1>UW 2UW {align1};
-shr.sat (16) g29.0<1>UW g29.0<16,16,1>UW 2UW {align1};
-shr.sat (16) g30.0<1>UW g30.0<16,16,1>UW 2UW {align1};
-shr.sat (16) g31.0<1>UW g31.0<16,16,1>UW 2UW {align1};
-shr.sat (16) g32.0<1>UW g32.0<16,16,1>UW 2UW {align1};
-shr.sat (16) g33.0<1>UW g33.0<16,16,1>UW 2UW {align1};
-shr.sat (16) g34.0<1>UW g34.0<16,16,1>UW 2UW {align1};
-shr.sat (16) g35.0<1>UW g35.0<16,16,1>UW 2UW {align1};
-shr.sat (16) g36.0<1>UW g36.0<16,16,1>UW 2UW {align1};
-shr.sat (16) g37.0<1>UW g37.0<16,16,1>UW 2UW {align1};
-shr.sat (16) g38.0<1>UW g38.0<16,16,1>UW 2UW {align1};
-shr.sat (16) g39.0<1>UW g39.0<16,16,1>UW 2UW {align1};
-shr.sat (16) g40.0<1>UW g40.0<16,16,1>UW 2UW {align1};
-shr.sat (16) g41.0<1>UW g41.0<16,16,1>UW 2UW {align1};
-shr.sat (16) g42.0<1>UW g42.0<16,16,1>UW 2UW {align1};
-shr.sat (16) g43.0<1>UW g43.0<16,16,1>UW 2UW {align1};
diff --git a/src/xvmc/shader/Makefile.am b/src/xvmc/shader/Makefile.am
index 1a27c83..2a58cfd 100644
--- a/src/xvmc/shader/Makefile.am
+++ b/src/xvmc/shader/Makefile.am
@@ -1 +1 @@
-SUBDIRS = vld 
+SUBDIRS = mc vld 
diff --git a/src/xvmc/shader/mc/Makefile.am b/src/xvmc/shader/mc/Makefile.am
new file mode 100644
index 0000000..b4d6c4a
--- /dev/null
+++ b/src/xvmc/shader/mc/Makefile.am
@@ -0,0 +1,95 @@
+
+INTEL_G4A = dual_prime_igd.g4a          \
+        field_backward_igd.g4a          \
+        field_f_b_igd.g4a               \
+        field_forward_igd.g4a           \
+        frame_backward_igd.g4a          \
+        frame_f_b_igd.g4a               \
+        frame_forward_igd.g4a           \
+        dual_prime.g4a                  \
+        field_backward.g4a              \
+        field_f_b.g4a                   \
+        field_forward.g4a               \
+        frame_backward.g4a              \
+        frame_f_b.g4a                   \
+        frame_forward.g4a               \
+        ipicture.g4a                    \
+        null.g4a
+
+INTEL_G4I = addidct.g4i                          \
+        block_clear.g4i                          \
+        read_frame_x0y0_y.g4i                    \
+        read_frame_x0y1_y.g4i                    \
+        read_frame_x1y0_y.g4i                    \
+        read_frame_x1y1_y.g4i                    \
+        read_frame_x0y0_uv.g4i                   \
+        read_frame_x0y1_uv.g4i                   \
+        read_frame_x1y0_uv.g4i                   \
+        read_frame_x1y1_uv.g4i                   \
+        read_frame_x0y0_y_igd.g4i                \
+        read_frame_x0y1_y_igd.g4i                \
+        read_frame_x1y0_y_igd.g4i                \
+        read_frame_x1y1_y_igd.g4i                \
+        read_frame_x0y0_uv_igd.g4i               \
+        read_frame_x0y1_uv_igd.g4i               \
+        read_frame_x1y0_uv_igd.g4i               \
+        read_frame_x1y1_uv_igd.g4i               \
+        motion_frame_y.g4i                       \
+        motion_frame_uv.g4i                      \
+        read_field_x0y0_y.g4i                    \
+        read_field_x0y1_y.g4i                    \
+        read_field_x1y0_y.g4i                    \
+        read_field_x1y1_y.g4i                    \
+        read_field_x0y0_uv.g4i                   \
+        read_field_x0y1_uv.g4i                   \
+        read_field_x1y0_uv.g4i                   \
+        read_field_x1y1_uv.g4i                   \
+        read_field_x0y0_y_igd.g4i                \
+        read_field_x0y1_y_igd.g4i                \
+        read_field_x1y0_y_igd.g4i                \
+        read_field_x1y1_y_igd.g4i                \
+        read_field_x0y0_uv_igd.g4i               \
+        read_field_x0y1_uv_igd.g4i               \
+        read_field_x1y0_uv_igd.g4i               \
+        read_field_x1y1_uv_igd.g4i               \
+        motion_field_y.g4i                       \
+        motion_field_uv.g4i                      \
+        motion_field_uv_igd.g4i                  \
+        motion_field_y_igd.g4i                   \
+        motion_frame_uv_igd.g4i                  \
+        motion_frame_y_igd.g4i
+
+INTEL_G4B = dual_prime.g4b          \
+        field_backward.g4b          \
+        field_f_b.g4b               \
+        field_forward.g4b           \
+        frame_backward.g4b          \
+        frame_f_b.g4b               \
+        frame_forward.g4b           \
+        dual_prime_igd.g4b          \
+        field_backward_igd.g4b      \
+        field_f_b_igd.g4b           \
+        field_forward_igd.g4b       \
+        frame_backward_igd.g4b      \
+        frame_f_b_igd.g4b           \
+        frame_forward_igd.g4b       \
+        ipicture.g4b                \
+        null.g4b
+
+EXTRA_DIST = $(INTEL_G4A)    \
+        $(INTEL_G4I)         \
+        $(INTEL_G4B)    
+
+if HAVE_GEN4ASM
+
+SUFFIXES = .g4a .g4b
+.g4a.g4b:
+	m4 $*.g4a > $*.g4m && intel-gen4asm -o $@ $*.g4m && rm $*.g4m
+
+$(INTEL_G4B): $(INTEL_G4I)
+
+BUILT_SOURCES= $(INTEL_G4B)
+
+clean-local:
+	-rm -f $(INTEL_G4B)
+endif
diff --git a/src/xvmc/shader/mc/addidct.g4i b/src/xvmc/shader/mc/addidct.g4i
new file mode 100644
index 0000000..bd3d5fe
--- /dev/null
+++ b/src/xvmc/shader/mc/addidct.g4i
@@ -0,0 +1,152 @@
+/*
+ * Copyright © 2008 Intel Corporation
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice (including the next
+ * paragraph) shall be included in all copies or substantial portions of the
+ * Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
+ * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+ * SOFTWARE.
+ *
+ * Author:
+ *    Zou Nan hai <nanhai.zou at intel.com>
+ *    Zhang Hua jun <huajun.zhang at intel.com>
+ *    Xing Dong sheng <dongsheng.xing at intel.com>
+ *
+ */
+mov (8) g1.0<1>UD g76.0<8,8,1>UD{align1};
+//mov (8) g2.0<1>UD g77.0<8,8,1>UD{align1};
+
+mov (16) g44.1<2>UB 0W {align1};
+mov (16) g45.1<2>UB 0W {align1};
+mov (16) g46.1<2>UB 0W {align1};
+mov (16) g47.1<2>UB 0W {align1};
+mov (16) g48.1<2>UB 0W {align1};
+mov (16) g49.1<2>UB 0W {align1};
+mov (16) g50.1<2>UB 0W {align1};
+mov (16) g51.1<2>UB 0W {align1};
+
+and.nz (1) null g1.30<1,1,1>UB 1UW {align1};       //dct_type
+(f0) jmpi field_dct;
+//jmpi field_dct;
+add (16) g28.0<1>W g3.0<16,16,1>W g28.0<16,16,2>UB {align1};
+add (16) g29.0<1>W g4.0<16,16,1>W g29.0<16,16,2>UB {align1};
+add (16) g30.0<1>W g5.0<16,16,1>W g30.0<16,16,2>UB {align1};
+add (16) g31.0<1>W g6.0<16,16,1>W g31.0<16,16,2>UB {align1};
+add (16) g32.0<1>W g7.0<16,16,1>W g32.0<16,16,2>UB {align1};
+add (16) g33.0<1>W g8.0<16,16,1>W g33.0<16,16,2>UB {align1};
+add (16) g34.0<1>W g9.0<16,16,1>W g34.0<16,16,2>UB {align1};
+add (16) g35.0<1>W g10.0<16,16,1>W g35.0<16,16,2>UB {align1};
+add (16) g36.0<1>W g11.0<16,16,1>W g36.0<16,16,2>UB {align1};
+add (16) g37.0<1>W g12.0<16,16,1>W g37.0<16,16,2>UB {align1};
+add (16) g38.0<1>W g13.0<16,16,1>W g38.0<16,16,2>UB {align1};
+add (16) g39.0<1>W g14.0<16,16,1>W g39.0<16,16,2>UB {align1};
+add (16) g40.0<1>W g15.0<16,16,1>W g40.0<16,16,2>UB {align1};
+add (16) g41.0<1>W g16.0<16,16,1>W g41.0<16,16,2>UB {align1};
+add (16) g42.0<1>W g17.0<16,16,1>W g42.0<16,16,2>UB {align1};
+add (16) g43.0<1>W g18.0<16,16,1>W g43.0<16,16,2>UB {align1};
+jmpi write_back;
+
+field_dct:
+add (16) g28.0<1>W g3.0<16,16,1>W g28.0<16,16,2>UB {align1};
+add (16) g29.0<1>W g11.0<16,16,1>W g29.0<16,16,2>UB {align1};
+add (16) g30.0<1>W g4.0<16,16,1>W g30.0<16,16,2>UB {align1};
+add (16) g31.0<1>W g12.0<16,16,1>W g31.0<16,16,2>UB {align1};
+add (16) g32.0<1>W g5.0<16,16,1>W g32.0<16,16,2>UB {align1};
+add (16) g33.0<1>W g13.0<16,16,1>W g33.0<16,16,2>UB {align1};
+add (16) g34.0<1>W g6.0<16,16,1>W g34.0<16,16,2>UB {align1};
+add (16) g35.0<1>W g14.0<16,16,1>W g35.0<16,16,2>UB {align1};
+add (16) g36.0<1>W g7.0<16,16,1>W g36.0<16,16,2>UB {align1};
+add (16) g37.0<1>W g15.0<16,16,1>W g37.0<16,16,2>UB {align1};
+add (16) g38.0<1>W g8.0<16,16,1>W g38.0<16,16,2>UB {align1};
+add (16) g39.0<1>W g16.0<16,16,1>W g39.0<16,16,2>UB {align1};
+add (16) g40.0<1>W g9.0<16,16,1>W g40.0<16,16,2>UB {align1};
+add (16) g41.0<1>W g17.0<16,16,1>W g41.0<16,16,2>UB {align1};
+add (16) g42.0<1>W g10.0<16,16,1>W g42.0<16,16,2>UB {align1};
+add (16) g43.0<1>W g18.0<16,16,1>W g43.0<16,16,2>UB {align1};
+
+write_back:
+mov (1) g1.8<1>UD 0x00F000FUD {align1};
+mov.sat (16) g28.0<2>UB g28.0<16,16,1>W {align1};
+mov.sat (16) g29.0<2>UB g29.0<16,16,1>W {align1};
+mov.sat (16) g30.0<2>UB g30.0<16,16,1>W {align1};
+mov.sat (16) g31.0<2>UB g31.0<16,16,1>W {align1};
+mov.sat (16) g32.0<2>UB g32.0<16,16,1>W {align1};
+mov.sat (16) g33.0<2>UB g33.0<16,16,1>W {align1};
+mov.sat (16) g34.0<2>UB g34.0<16,16,1>W {align1};
+mov.sat (16) g35.0<2>UB g35.0<16,16,1>W {align1};
+mov.sat (16) g36.0<2>UB g36.0<16,16,1>W {align1};
+mov.sat (16) g37.0<2>UB g37.0<16,16,1>W {align1};
+mov.sat (16) g38.0<2>UB g38.0<16,16,1>W {align1};
+mov.sat (16) g39.0<2>UB g39.0<16,16,1>W {align1};
+mov.sat (16) g40.0<2>UB g40.0<16,16,1>W {align1};
+mov.sat (16) g41.0<2>UB g41.0<16,16,1>W {align1};
+mov.sat (16) g42.0<2>UB g42.0<16,16,1>W {align1};
+mov.sat (16) g43.0<2>UB g43.0<16,16,1>W {align1};
+
+mov (16) m1.0<1>UB g28.0<16,16,2>UB {align1};
+mov (16) m1.16<1>UB g29.0<16,16,2>UB {align1};
+mov (16) m2.0<1>UB g30.0<16,16,2>UB {align1};
+mov (16) m2.16<1>UB g31.0<16,16,2>UB {align1};
+mov (16) m3.0<1>UB g32.0<16,16,2>UB {align1};
+mov (16) m3.16<1>UB g33.0<16,16,2>UB {align1};
+mov (16) m4.0<1>UB g34.0<16,16,2>UB {align1};
+mov (16) m4.16<1>UB g35.0<16,16,2>UB {align1};
+mov (16) m5.0<1>UB g36.0<16,16,2>UB {align1};
+mov (16) m5.16<1>UB g37.0<16,16,2>UB {align1};
+mov (16) m6.0<1>UB g38.0<16,16,2>UB {align1};
+mov (16) m6.16<1>UB g39.0<16,16,2>UB {align1};
+mov (16) m7.0<1>UB g40.0<16,16,2>UB {align1};
+mov (16) m7.16<1>UB g41.0<16,16,2>UB {align1};
+mov (16) m8.0<1>UB g42.0<16,16,2>UB {align1};
+mov (16) m8.16<1>UB g43.0<16,16,2>UB {align1};
+send (16) 0 acc0<1>UW g1<8,8,1>UW write(0,0,2,0) mlen 9 rlen 0 {align1};
+
+//U
+mov (1) g1.8<1>UD 0x0070007UD  { align1 };
+shr (2) g1.0<1>UD g1.0<2,2,1>UD 1D {align1};
+add (16) g44.0<1>UW g19.0<16,16,1>W g44.0<16,16,1>UW {align1};
+add (16) g45.0<1>UW g20.0<16,16,1>W g45.0<16,16,1>UW {align1};
+add (16) g46.0<1>UW g21.0<16,16,1>W g46.0<16,16,1>UW {align1};
+add (16) g47.0<1>UW g22.0<16,16,1>W g47.0<16,16,1>UW {align1};
+mov.sat (16) g44.0<2>UB g44.0<16,16,1>UW {align1};
+mov.sat (16) g45.0<2>UB g45.0<16,16,1>UW {align1};
+mov.sat (16) g46.0<2>UB g46.0<16,16,1>UW {align1};
+mov.sat (16) g47.0<2>UB g47.0<16,16,1>UW {align1};
+
+mov (16) m1.0<1>UB g44.0<16,16,2>UB {align1};
+mov (16) m1.16<1>UB g45.0<16,16,2>UB {align1};
+mov (16) m2.0<1>UB g46.0<16,16,2>UB {align1};
+mov (16) m2.16<1>UB g47.0<16,16,2>UB {align1};
+send (16) 0 acc0<1>UW g1<8,8,1>UW write(1, 0, 2, 0) mlen 3 rlen 0 { align1 };
+
+//V
+add (16) g48.0<1>UW g23.0<16,16,1>W g48.0<16,16,1>UW {align1};
+add (16) g49.0<1>UW g24.0<16,16,1>W g49.0<16,16,1>UW {align1};
+add (16) g50.0<1>UW g25.0<16,16,1>W g50.0<16,16,1>UW {align1};
+add (16) g51.0<1>UW g26.0<16,16,1>W g51.0<16,16,1>UW {align1};
+mov.sat (16) g48.0<2>UB g48.0<16,16,1>UW {align1};
+mov.sat (16) g49.0<2>UB g49.0<16,16,1>UW {align1};
+mov.sat (16) g50.0<2>UB g50.0<16,16,1>UW {align1};
+mov.sat (16) g51.0<2>UB g51.0<16,16,1>UW {align1};
+
+mov (16) m1.0<1>UB g48.0<16,16,2>UB {align1};
+mov (16) m1.16<1>UB g49.0<16,16,2>UB {align1};
+mov (16) m2.0<1>UB g50.0<16,16,2>UB {align1};
+mov (16) m2.16<1>UB g51.0<16,16,2>UB {align1};
+send (16) 0 acc0<1>UW g1<8,8,1>UW write(2, 0, 2, 0) mlen 3 rlen 0 { align1 };
+
+send (16) 0 acc0<1>UW g0<8,8,1>UW
+        thread_spawner(0, 0, 0) mlen 1 rlen 0 { align1 EOT};
diff --git a/src/xvmc/shader/mc/block_clear.g4i b/src/xvmc/shader/mc/block_clear.g4i
new file mode 100644
index 0000000..ce12f3b
--- /dev/null
+++ b/src/xvmc/shader/mc/block_clear.g4i
@@ -0,0 +1,140 @@
+/*
+ * Copyright © 2008 Intel Corporation
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice (including the next
+ * paragraph) shall be included in all copies or substantial portions of the
+ * Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
+ * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+ * SOFTWARE.
+ *
+ * Author:
+ *    Zou Nan hai <nanhai.zou at intel.com>
+ *
+ */
+
+and.nz (1) null g2.0<1,1,1>UD 0x1UD{align1};
+(f0) jmpi direct_idct;
+add (1) g2.8<1>UD g76.8<1,1,1>UD 0UD{align1};
+send (16) 0 g3.0<1>UD g2<16,16,1>UD read(3, 0, 2, 0) mlen 1 rlen 1 { align1 };
+add (1) g2.8<1>UD g2.8<1,1,1>UD 32UD {align1};
+send (16) 0 g4.0<1>UD g2<16,16,1>UD read(3, 0, 2, 0) mlen 1 rlen 1 { align1 };
+add (1) g2.8<1>UD g2.8<1,1,1>UD 32UD {align1};
+send (16) 0 g5.0<1>UD g2<16,16,1>UD read(3, 0, 2, 0) mlen 1 rlen 1 { align1 };
+add (1) g2.8<1>UD g2.8<1,1,1>UD 32UD {align1};
+send (16) 0 g6.0<1>UD g2<16,16,1>UD read(3, 0, 2, 0) mlen 1 rlen 1 { align1 };
+add (1) g2.8<1>UD g2.8<1,1,1>UD 32UD {align1};
+send (16) 0 g7.0<1>UD g2<16,16,1>UD read(3, 0, 2, 0) mlen 1 rlen 1 { align1 };
+add (1) g2.8<1>UD g2.8<1,1,1>UD 32UD {align1};
+send (16) 0 g8.0<1>UD g2<16,16,1>UD read(3, 0, 2, 0) mlen 1 rlen 1 { align1 };
+add (1) g2.8<1>UD g2.8<1,1,1>UD 32UD {align1};
+send (16) 0 g9.0<1>UD g2<16,16,1>UD read(3, 0, 2, 0) mlen 1 rlen 1 { align1 };
+add (1) g2.8<1>UD g2.8<1,1,1>UD 32UD {align1};
+send (16) 0 g10.0<1>UD g2<16,16,1>UD read(3, 0, 2, 0) mlen 1 rlen 1 { align1 };
+add (1) g2.8<1>UD g2.8<1,1,1>UD 32UD {align1};
+send (16) 0 g11.0<1>UD g2<16,16,1>UD read(3, 0, 2, 0) mlen 1 rlen 1 { align1 };
+add (1) g2.8<1>UD g2.8<1,1,1>UD 32UD {align1};
+send (16) 0 g12.0<1>UD g2<16,16,1>UD read(3, 0, 2, 0) mlen 1 rlen 1 { align1 };
+add (1) g2.8<1>UD g2.8<1,1,1>UD 32UD {align1};
+send (16) 0 g13.0<1>UD g2<16,16,1>UD read(3, 0, 2, 0) mlen 1 rlen 1 { align1 };
+add (1) g2.8<1>UD g2.8<1,1,1>UD 32UD {align1};
+send (16) 0 g14.0<1>UD g2<16,16,1>UD read(3, 0, 2, 0) mlen 1 rlen 1 { align1 };
+add (1) g2.8<1>UD g2.8<1,1,1>UD 32UD {align1};
+send (16) 0 g15.0<1>UD g2<16,16,1>UD read(3, 0, 2, 0) mlen 1 rlen 1 { align1 };
+add (1) g2.8<1>UD g2.8<1,1,1>UD 32UD {align1};
+send (16) 0 g16.0<1>UD g2<16,16,1>UD read(3, 0, 2, 0) mlen 1 rlen 1 { align1 };
+add (1) g2.8<1>UD g2.8<1,1,1>UD 32UD {align1};
+send (16) 0 g17.0<1>UD g2<16,16,1>UD read(3, 0, 2, 0) mlen 1 rlen 1 { align1 };
+add (1) g2.8<1>UD g2.8<1,1,1>UD 32UD {align1};
+send (16) 0 g18.0<1>UD g2<16,16,1>UD read(3, 0, 2, 0) mlen 1 rlen 1 { align1 };
+add (1) g2.8<1>UD g2.8<1,1,1>UD 32UD {align1};
+send (16) 0 g19.0<1>UD g2<16,16,1>UD read(3, 0, 2, 0) mlen 1 rlen 1 { align1 };
+add (1) g2.8<1>UD g2.8<1,1,1>UD 32UD {align1};
+send (16) 0 g20.0<1>UD g2<16,16,1>UD read(3, 0, 2, 0) mlen 1 rlen 1 { align1 };
+add (1) g2.8<1>UD g2.8<1,1,1>UD 32UD {align1};
+send (16) 0 g21.0<1>UD g2<16,16,1>UD read(3, 0, 2, 0) mlen 1 rlen 1 { align1 };
+add (1) g2.8<1>UD g2.8<1,1,1>UD 32UD {align1};
+send (16) 0 g22.0<1>UD g2<16,16,1>UD read(3, 0, 2, 0) mlen 1 rlen 1 { align1 };
+add (1) g2.8<1>UD g2.8<1,1,1>UD 32UD {align1};
+send (16) 0 g23<1>UD g2<16,16,1>UD read(3, 0, 2, 0) mlen 1 rlen 1 { align1 };
+add (1) g2.8<1>UD g2.8<1,1,1>UD 32UD {align1};
+send (16) 0 g24.0<1>UD g2<16,16,1>UD read(3, 0, 2, 0) mlen 1 rlen 1 { align1 };
+add (1) g2.8<1>UD g2.8<1,1,1>UD 32UD {align1};
+send (16) 0 g25.0<1>UD g2<16,16,1>UD read(3, 0, 2, 0) mlen 1 rlen 1 { align1 };
+add (1) g2.8<1>UD g2.8<1,1,1>UD 32UD {align1};
+send (16) 0 g26.0<1>UD g2<16,16,1>UD read(3, 0, 2, 0) mlen 1 rlen 1 { align1 };
+direct_idct:
+
+and.nz (1) null g76.12<1,1,1>UW 0x20UW {align1};
+(f0) jmpi next_block;
+mov (8) g3.0<1>UW 0UW {align1}; 
+mov (8) g4.0<1>UW 0UW {align1}; 
+mov (8) g5.0<1>UW 0UW {align1}; 
+mov (8) g6.0<1>UW 0UW {align1}; 
+mov (8) g7.0<1>UW 0UW {align1}; 
+mov (8) g8.0<1>UW 0UW {align1}; 
+mov (8) g9.0<1>UW 0UW {align1}; 
+mov (8) g10.0<1>UW 0UW {align1}; 
+next_block:
+
+and.nz (1) null g1.12<1,1,1>UW 0x10UW {align1};
+(f0) jmpi next_field;
+mov (8) g3.16<1>UW 0UW {align1}; 
+mov (8) g4.16<1>UW 0UW {align1}; 
+mov (8) g5.16<1>UW 0UW {align1}; 
+mov (8) g6.16<1>UW 0UW {align1}; 
+mov (8) g7.16<1>UW 0UW {align1}; 
+mov (8) g8.16<1>UW 0UW {align1}; 
+mov (8) g9.16<1>UW 0UW {align1}; 
+mov (8) g10.16<1>UW 0UW {align1}; 
+next_field:
+and.nz (1) null g1.12<1,1,1>UW 0x8UW {align1};
+(f0) jmpi next_field;
+mov (8) g11.0<1>UW 0UW {align1}; 
+mov (8) g12.0<1>UW 0UW {align1}; 
+mov (8) g13.0<1>UW 0UW {align1}; 
+mov (8) g14.0<1>UW 0UW {align1}; 
+mov (8) g15.0<1>UW 0UW {align1}; 
+mov (8) g16.0<1>UW 0UW {align1}; 
+mov (8) g17.0<1>UW 0UW {align1}; 
+mov (8) g18.0<1>UW 0UW {align1}; 
+next_field:
+and.nz (1) null g1.12<1,1,1>UW 0x4UW {align1};
+(f0) jmpi next_field;
+mov (8) g11.16<1>UW 0UW {align1}; 
+mov (8) g12.16<1>UW 0UW {align1}; 
+mov (8) g13.16<1>UW 0UW {align1}; 
+mov (8) g14.16<1>UW 0UW {align1}; 
+mov (8) g15.16<1>UW 0UW {align1}; 
+mov (8) g16.16<1>UW 0UW {align1}; 
+mov (8) g17.16<1>UW 0UW {align1}; 
+mov (8) g18.16<1>UW 0UW {align1}; 
+next_field:
+
+and.nz (1) null g1.12<1,1,1>UW 0x2UW {align1};
+(f0) jmpi next_field;
+mov (16) g19.0<1>UW 0UW {align1}; 
+mov (16) g20.0<1>UW 0UW {align1}; 
+mov (16) g21.0<1>UW 0UW {align1}; 
+mov (16) g22.0<1>UW 0UW {align1}; 
+next_field:
+
+and.nz (1) null g1.12<1,1,1>UW 0x1UW {align1};
+(f0) jmpi next_field;
+mov (16) g23.0<1>UW 0UW {align1}; 
+mov (16) g24.0<1>UW 0UW {align1}; 
+mov (16) g25.0<1>UW 0UW {align1}; 
+mov (16) g26.0<1>UW 0UW {align1}; 
+next_field:
diff --git a/src/xvmc/shader/mc/dual_prime.g4a b/src/xvmc/shader/mc/dual_prime.g4a
new file mode 100644
index 0000000..7066a75
--- /dev/null
+++ b/src/xvmc/shader/mc/dual_prime.g4a
@@ -0,0 +1,223 @@
+/*
+ * Copyright © 2008 Intel Corporation
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice (including the next
+ * paragraph) shall be included in all copies or substantial portions of the
+ * Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
+ * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+ * SOFTWARE.
+ *
+ * Author:
+ *    Zou Nan hai <nanhai.zou at intel.com>
+ *    Zhang Hua jun <huajun.zhang at intel.com>
+ *    Xing Dong sheng <dongsheng.xing at intel.com>
+ *
+ */
+mov (8) g76.0<1>UD g1.0<8,8,1>UD {align1};
+//mov (8) g77.0<1>UD g2.0<8,8,1>UD {align1};
+
+include(`block_clear.g4i')
+mov (8) g115.0<1>UD g1.0<8,8,1>UD {align1};
+mov (8) g116.0<1>UD g1.0<8,8,1>UD {align1};
+
+/* forward---Y---first vector*/
+mov(1) g115.8<1>UD 0x007001fUD  { align1 };
+asr (2) g115.14<1>W g1.14<2,2,1>W 1W {align1};
+add (2) g115.0<1>D g116.0<2,2,1>D g115.14<2,2,1>W {align1};
+and (1) g115.4<1>UD g115.4<1,1,1>UD 0xFFFFFFFEUD {align1};
+mov(1) g115.8<1>UD 0x1fUD  { align1 }; //read 1 line, 32 columns.
+and.nz (1) null g1.31<1,1,1>UB 0x1UW {align1};
+(f0) add (1) g115.4<1>D g115.4<1,1,1>D 1D {align1};
+define(`surface',`4')
+define(`mv1',`g1.14')
+define(`mv2',`g1.16')
+include(`motion_field_y.g4i')
+mov (8) g52.0<1>UD g96.0<8,8,1>UD {align1};
+mov (8) g54.0<1>UD g97.0<8,8,1>UD {align1};
+mov (8) g56.0<1>UD g98.0<8,8,1>UD {align1};
+mov (8) g58.0<1>UD g99.0<8,8,1>UD {align1};
+mov (8) g60.0<1>UD g100.0<8,8,1>UD {align1};
+mov (8) g62.0<1>UD g101.0<8,8,1>UD {align1};
+mov (8) g64.0<1>UD g102.0<8,8,1>UD {align1};
+mov (8) g66.0<1>UD g103.0<8,8,1>UD {align1};
+
+/*forward---Y---second vector*/
+asr (2) g115.14<1>W g1.22<2,2,1>W 1W {align1};
+add (2) g115.0<1>D g116.0<2,2,1>D g115.14<2,2,1>W {align1};
+and (1) g115.4<1>UD g115.4<1,1,1>UD 0xFFFFFFFEUD {align1};
+mov(1) g115.8<1>UD 0x1fUD { align1 }; //read 1 line, 32 columns.
+and.nz (1) null g1.31<1,1,1>UB 0x4UD {align1};
+(f0) add (1) g115.4<1>D g115.4<1,1,1>D 1D {align1};
+define(`surface',`4')
+define(`mv1',`g1.22')
+define(`mv2',`g1.24')
+include(`motion_field_y.g4i')
+mov (8) g53.0<1>UD g96.0<8,8,1>UD {align1};
+mov (8) g55.0<1>UD g97.0<8,8,1>UD {align1};
+mov (8) g57.0<1>UD g98.0<8,8,1>UD {align1};
+mov (8) g59.0<1>UD g99.0<8,8,1>UD {align1};
+mov (8) g61.0<1>UD g100.0<8,8,1>UD {align1};
+mov (8) g63.0<1>UD g101.0<8,8,1>UD {align1};
+mov (8) g65.0<1>UD g102.0<8,8,1>UD {align1};
+mov (8) g67.0<1>UD g103.0<8,8,1>UD {align1};
+
+/*forward---UV---first vector*/
+mov(1) g115.8<1>UD 0x007000fUD  { align1 };
+asr (2) g115.14<1>W g1.14<2,2,1>W 2W {align1};
+asr (2) g115.0<1>D g116.0<2,2,1>D 1D {align1};
+add (2) g115.0<1>D g115.0<2,2,1>D g115.14<2,2,1>W {align1};
+and (1) g115.4<1>UD g115.4<1,1,1>UD 0xFFFFFFFEUD {align1};
+and.nz (1) null g1.31<1,1,1>UB 0x1UW {align1};
+(f0) add (1) g115.4<1>UD g115.4<1,1,1>UD 1UD {align1};
+define(`surface_u',`5')
+define(`surface_v',`6')
+define(`mv1',`g1.14')
+define(`mv2',`g1.16')
+include(`motion_field_uv.g4i')
+mov (8) g68.0<1>UW g78.0<8,8,1>UW {align1};
+mov (8) g69.0<1>UW g79.0<8,8,1>UW {align1};
+mov (8) g70.0<1>UW g80.0<8,8,1>UW {align1};
+mov (8) g71.0<1>UW g81.0<8,8,1>UW {align1};
+mov (8) g72.0<1>UW g82.0<8,8,1>UW {align1};
+mov (8) g73.0<1>UW g83.0<8,8,1>UW {align1};
+mov (8) g74.0<1>UW g84.0<8,8,1>UW {align1};
+mov (8) g75.0<1>UW g85.0<8,8,1>UW {align1};
+
+/*forward---UV---second vector */
+asr (2) g115.14<1>W g1.22<2,2,1>W 2W {align1};
+asr (2) g115.0<1>D g116.0<2,2,1>D 1D {align1};
+add (2) g115.0<1>D g115.0<2,2,1>D g115.14<2,2,1>W {align1};
+and (1) g115.4<1>UD g115.4<1,1,1>UD 0xFFFFFFFEUD {align1};
+and.nz (1) null g1.31<1,1,1>UB 0x4UW {align1};
+(f0) add (1) g115.4<1>UD g115.4<1,1,1>UD 1UD {align1};
+define(`mv1',`g1.24')
+define(`mv2',`g1.26')
+include(`motion_field_uv.g4i')
+mov (8) g68.16<1>UW g78.0<8,8,1>UW {align1};
+mov (8) g69.16<1>UW g79.0<8,8,1>UW {align1};
+mov (8) g70.16<1>UW g80.0<8,8,1>UW {align1};
+mov (8) g71.16<1>UW g81.0<8,8,1>UW {align1};
+mov (8) g72.16<1>UW g82.0<8,8,1>UW {align1};
+mov (8) g73.16<1>UW g83.0<8,8,1>UW {align1};
+mov (8) g74.16<1>UW g84.0<8,8,1>UW {align1};
+mov (8) g75.16<1>UW g85.0<8,8,1>UW {align1};
+
+/*backward---Y---first vector */
+mov(8) g1.0<1>UD g116.0<8,8,1>UD {align1};
+mov(1) g115.8<1>UD 0x007001fUD  { align1 };
+mov(1) g1.8<1>UD 0x007000fUD  { align1 };
+asr (2) g115.14<1>W g1.18<2,2,1>W 1W {align1};
+add (2) g115.0<1>D g116.0<2,2,1>D g115.14<2,2,1>W {align1};
+and (1) g115.4<1>UD g115.4<1,1,1>UD 0xFFFFFFFEUD {align1};
+mov(1) g115.8<1>UD 0x1fUD  { align1 }; //read 1 line, 32 columns.
+and.nz (1) null g1.31<1,1,1>UB 0x2UW {align1};
+(f0) add (1) g115.4<1>D g115.4<1,1,1>D 1D {align1};
+define(`surface',`7')
+define(`mv1',`g1.18')
+define(`mv2',`g1.20')
+include(`motion_field_y.g4i')
+mov (8) g28.0<1>UD g96.0<8,8,1>UD {align1};
+mov (8) g30.0<1>UD g97.0<8,8,1>UD {align1};
+mov (8) g32.0<1>UD g98.0<8,8,1>UD {align1};
+mov (8) g34.0<1>UD g99.0<8,8,1>UD {align1};
+mov (8) g36.0<1>UD g100.0<8,8,1>UD {align1};
+mov (8) g38.0<1>UD g101.0<8,8,1>UD {align1};
+mov (8) g40.0<1>UD g102.0<8,8,1>UD {align1};
+mov (8) g42.0<1>UD g103.0<8,8,1>UD {align1};
+
+/*backward---Y---second vector */
+asr (2) g115.14<1>W g1.26<2,2,1>W 1W {align1};
+add (2) g115.0<1>D g116.0<2,2,1>D g115.14<2,2,1>W {align1};
+and (1) g115.4<1>UD g115.4<1,1,1>UD 0xFFFFFFFEUD {align1};
+mov(1) g115.8<1>UD 0x1fUD  { align1 }; //read 1 line, 32 columns.
+and.nz (1) null g2.20<1,1,1>UD 0x8UD {align1};
+(f0) add (1) g115.4<1>D g115.4<1,1,1>D 1D {align1};
+define(`surface',`7')
+define(`mv1',`g1.26')
+define(`mv2',`g1.28')
+include(`motion_field_y.g4i')
+
+avg.sat (16) g28.0<1>UW g52.0<16,16,1>UW g28.0<16,16,1>UW {align1};
+avg.sat (16) g29.0<1>UW g53.0<16,16,1>UW g96.0<16,16,1>UW {align1};
+avg.sat (16) g30.0<1>UW g54.0<16,16,1>UW g30.0<16,16,1>UW {align1};
+avg.sat (16) g31.0<1>UW g55.0<16,16,1>UW g97.0<16,16,1>UW {align1};
+avg.sat (16) g32.0<1>UW g56.0<16,16,1>UW g32.0<16,16,1>UW {align1};
+avg.sat (16) g33.0<1>UW g57.0<16,16,1>UW g98.0<16,16,1>UW {align1};
+avg.sat (16) g34.0<1>UW g58.0<16,16,1>UW g34.0<16,16,1>UW {align1};
+avg.sat (16) g35.0<1>UW g59.0<16,16,1>UW g99.0<16,16,1>UW {align1};
+avg.sat (16) g36.0<1>UW g60.0<16,16,1>UW g36.0<16,16,1>UW {align1};
+avg.sat (16) g37.0<1>UW g61.0<16,16,1>UW g100.0<16,16,1>UW {align1};
+avg.sat (16) g38.0<1>UW g62.0<16,16,1>UW g38.0<16,16,1>UW {align1};
+avg.sat (16) g39.0<1>UW g63.0<16,16,1>UW g101.0<16,16,1>UW {align1};
+avg.sat (16) g40.0<1>UW g64.0<16,16,1>UW g40.0<16,16,1>UW {align1};
+avg.sat (16) g41.0<1>UW g65.0<16,16,1>UW g102.0<16,16,1>UW {align1};
+avg.sat (16) g42.0<1>UW g66.0<16,16,1>UW g42.0<16,16,1>UW {align1};
+avg.sat (16) g43.0<1>UW g67.0<16,16,1>UW g103.0<16,16,1>UW {align1};
+
+/*backward---UV---first vector */
+mov(1) g115.8<1>UD 0x007000fUD  { align1 };
+asr (2) g115.14<1>W g1.18<2,2,1>W 2W {align1};
+asr (2) g115.0<1>D g116.0<2,2,1>D 1D {align1};
+add (2) g115.0<1>D g115.0<2,2,1>D g115.14<2,2,1>W {align1};
+and (1) g115.4<1>UD g115.4<1,1,1>UD 0xFFFFFFFEUD {align1};
+and.nz (1) null g1.31<1,1,1>UB 0x2UW {align1};
+(f0) add (1) g115.4<1>UD g115.4<1,1,1>UD 1UD {align1};
+define(`surface_u',`8')
+define(`surface_v',`9')
+define(`mv1',`g1.18')
+define(`mv2',`g1.20')
+include(`motion_field_uv.g4i')
+mov (8) g44.0<1>UW g78.0<8,8,1>UW {align1};
+mov (8) g45.0<1>UW g79.0<8,8,1>UW {align1};
+mov (8) g46.0<1>UW g80.0<8,8,1>UW {align1};
+mov (8) g47.0<1>UW g81.0<8,8,1>UW {align1};
+mov (8) g48.0<1>UW g82.0<8,8,1>UW {align1};
+mov (8) g49.0<1>UW g83.0<8,8,1>UW {align1};
+mov (8) g50.0<1>UW g84.0<8,8,1>UW {align1};
+mov (8) g51.0<1>UW g85.0<8,8,1>UW {align1};
+
+/*backward---UV---second vector */
+asr (2) g115.14<1>W g1.26<2,2,1>W 2W {align1};
+asr (2) g115.0<1>D g116.0<2,2,1>D 1D {align1};
+add (2) g115.0<1>D g115.0<2,2,1>D g115.14<2,2,1>W {align1};
+and (1) g115.4<1>UD g115.4<1,1,1>UD 0xFFFFFFFEUD {align1};
+and.nz (1) null g1.31<1,1,1>UB 0x8UW {align1};
+(f0) add (1) g115.4<1>UD g115.4<1,1,1>UD 1UD {align1};
+define(`mv1',`g1.26')
+define(`mv2',`g1.28')
+include(`motion_field_uv.g4i')
+mov (8) g44.16<1>UW g78.0<8,8,1>UW {align1};
+mov (8) g45.16<1>UW g79.0<8,8,1>UW {align1};
+mov (8) g46.16<1>UW g80.0<8,8,1>UW {align1};
+mov (8) g47.16<1>UW g81.0<8,8,1>UW {align1};
+mov (8) g48.16<1>UW g82.0<8,8,1>UW {align1};
+mov (8) g49.16<1>UW g83.0<8,8,1>UW {align1};
+mov (8) g50.16<1>UW g84.0<8,8,1>UW {align1};
+mov (8) g51.16<1>UW g85.0<8,8,1>UW {align1};
+
+avg.sat (16) g44.0<1>UW g68.0<16,16,1>UW g44.0<16,16,1>UW {align1};
+avg.sat (16) g45.0<1>UW g69.0<16,16,1>UW g45.0<16,16,1>UW {align1};
+avg.sat (16) g46.0<1>UW g70.0<16,16,1>UW g46.0<16,16,1>UW {align1};
+avg.sat (16) g47.0<1>UW g71.0<16,16,1>UW g47.0<16,16,1>UW {align1};
+avg.sat (16) g48.0<1>UW g72.0<16,16,1>UW g48.0<16,16,1>UW {align1};
+avg.sat (16) g49.0<1>UW g73.0<16,16,1>UW g49.0<16,16,1>UW {align1};
+avg.sat (16) g50.0<1>UW g74.0<16,16,1>UW g50.0<16,16,1>UW {align1};
+avg.sat (16) g51.0<1>UW g75.0<16,16,1>UW g51.0<16,16,1>UW {align1};
+
+include(`addidct.g4i')
+
+//send (16) 0 acc0<1>UW g0<8,8,1>UW 
+//	thread_spawner(0, 0, 0) mlen 1 rlen 0 { align1 EOT};
diff --git a/src/xvmc/shader/mc/dual_prime.g4b b/src/xvmc/shader/mc/dual_prime.g4b
new file mode 100644
index 0000000..4a1eb4b
--- /dev/null
+++ b/src/xvmc/shader/mc/dual_prime.g4b
@@ -0,0 +1,2486 @@
+   { 0x00600001, 0x29800021, 0x008d0020, 0x00000000 },
+   { 0x02000005, 0x20000c3c, 0x00210040, 0x00000001 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x00000030 },
+   { 0x00000040, 0x20480c21, 0x00210988, 0x00000000 },
+   { 0x00800031, 0x20601c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x20801c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x20a01c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x20c01c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x20e01c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x21001c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x21201c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x21401c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x21601c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x21801c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x21a01c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x21c01c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x21e01c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x22001c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x22201c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x22401c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x22601c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x22801c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x22a01c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x22c01c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x22e01c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x23001c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x23201c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x23401c21, 0x00b10040, 0x04110203 },
+   { 0x02000005, 0x20002d3c, 0x0021098c, 0x00200020 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x00000008 },
+   { 0x00600001, 0x20600169, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x20800169, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x20a00169, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x20c00169, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x20e00169, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x21000169, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x21200169, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x21400169, 0x00000000, 0x00000000 },
+   { 0x02000005, 0x20002d3c, 0x0021002c, 0x00100010 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x00000008 },
+   { 0x00600001, 0x20700169, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x20900169, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x20b00169, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x20d00169, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x20f00169, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x21100169, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x21300169, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x21500169, 0x00000000, 0x00000000 },
+   { 0x02000005, 0x20002d3c, 0x0021002c, 0x00080008 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x00000008 },
+   { 0x00600001, 0x21600169, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x21800169, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x21a00169, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x21c00169, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x21e00169, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x22000169, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x22200169, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x22400169, 0x00000000, 0x00000000 },
+   { 0x02000005, 0x20002d3c, 0x0021002c, 0x00040004 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x00000008 },
+   { 0x00600001, 0x21700169, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x21900169, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x21b00169, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x21d00169, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x21f00169, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x22100169, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x22300169, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x22500169, 0x00000000, 0x00000000 },
+   { 0x02000005, 0x20002d3c, 0x0021002c, 0x00020002 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x00000004 },
+   { 0x00800001, 0x22600169, 0x00000000, 0x00000000 },
+   { 0x00800001, 0x22800169, 0x00000000, 0x00000000 },
+   { 0x00800001, 0x22a00169, 0x00000000, 0x00000000 },
+   { 0x00800001, 0x22c00169, 0x00000000, 0x00000000 },
+   { 0x02000005, 0x20002d3c, 0x0021002c, 0x00010001 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x00000004 },
+   { 0x00800001, 0x22e00169, 0x00000000, 0x00000000 },
+   { 0x00800001, 0x23000169, 0x00000000, 0x00000000 },
+   { 0x00800001, 0x23200169, 0x00000000, 0x00000000 },
+   { 0x00800001, 0x23400169, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x2e600021, 0x008d0020, 0x00000000 },
+   { 0x00600001, 0x2e800021, 0x008d0020, 0x00000000 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0007001f },
+   { 0x0020000c, 0x2e6e3dad, 0x0045002e, 0x00010001 },
+   { 0x00200040, 0x2e6034a5, 0x00450e80, 0x00450e6e },
+   { 0x00000005, 0x2e640c21, 0x00210e64, 0xfffffffe },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
+   { 0x02000005, 0x20002e3c, 0x0021003f, 0x00010001 },
+   { 0x00010040, 0x2e641ca5, 0x00210e64, 0x00000001 },
+   { 0x01000005, 0x20002d3c, 0x0021002e, 0x00010001 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x000000b1 },
+   { 0x01000005, 0x20002d3c, 0x00210030, 0x00010001 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x0000007d },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
+   { 0x00800031, 0x29c01d29, 0x008d0e60, 0x0411a004 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00800031, 0x2a001d29, 0x008d0e60, 0x0411a004 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00800031, 0x2a401d29, 0x008d0e60, 0x0411a004 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00800031, 0x2a801d29, 0x008d0e60, 0x0411a004 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0007001f },
+   { 0x00800031, 0x2ac01d29, 0x008d0e60, 0x0418a004 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
+   { 0x00800031, 0x2bc01d29, 0x008d0e60, 0x0411a004 },
+   { 0x00000005, 0x20580c21, 0x00210e60, 0x00000003 },
+   { 0x00000041, 0x20580c21, 0x00210058, 0x00000019 },
+   { 0x00000020, 0x34001400, 0x00001400, 0x00210058 },
+   { 0x00800040, 0x2c004629, 0x00b109c0, 0x00b10a00 },
+   { 0x00800040, 0x2c204629, 0x00b10a00, 0x00b10a40 },
+   { 0x00800040, 0x2c404629, 0x00b10a40, 0x00b10a80 },
+   { 0x00800040, 0x2c604629, 0x00b10a80, 0x00b10ac0 },
+   { 0x00800040, 0x2c804629, 0x00b10ac0, 0x00b10b00 },
+   { 0x00800040, 0x2ca04629, 0x00b10b00, 0x00b10b40 },
+   { 0x00800040, 0x2cc04629, 0x00b10b40, 0x00b10b80 },
+   { 0x00800040, 0x2ce04629, 0x00b10b80, 0x00b10bc0 },
+   { 0x00800040, 0x2c004529, 0x00b10c00, 0x00b109c1 },
+   { 0x00800040, 0x2c204529, 0x00b10c20, 0x00b10a01 },
+   { 0x00800040, 0x2c404529, 0x00b10c40, 0x00b10a41 },
+   { 0x00800040, 0x2c604529, 0x00b10c60, 0x00b10a81 },
+   { 0x00800040, 0x2c804529, 0x00b10c80, 0x00b10ac1 },
+   { 0x00800040, 0x2ca04529, 0x00b10ca0, 0x00b10b01 },
+   { 0x00800040, 0x2cc04529, 0x00b10cc0, 0x00b10b41 },
+   { 0x00800040, 0x2ce04529, 0x00b10ce0, 0x00b10b81 },
+   { 0x00800040, 0x2c004529, 0x00b10c00, 0x00b10a01 },
+   { 0x00800040, 0x2c204529, 0x00b10c20, 0x00b10a41 },
+   { 0x00800040, 0x2c404529, 0x00b10c40, 0x00b10a81 },
+   { 0x00800040, 0x2c604529, 0x00b10c60, 0x00b10ac1 },
+   { 0x00800040, 0x2c804529, 0x00b10c80, 0x00b10b01 },
+   { 0x00800040, 0x2ca04529, 0x00b10ca0, 0x00b10b41 },
+   { 0x00800040, 0x2cc04529, 0x00b10cc0, 0x00b10b81 },
+   { 0x00800040, 0x2ce04529, 0x00b10ce0, 0x00b10bc1 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x0000004a },
+   { 0x00800040, 0x2c004629, 0x00b109c1, 0x00b10a01 },
+   { 0x00800040, 0x2c204629, 0x00b10a01, 0x00b10a41 },
+   { 0x00800040, 0x2c404629, 0x00b10a41, 0x00b10a81 },
+   { 0x00800040, 0x2c604629, 0x00b10a81, 0x00b10ac1 },
+   { 0x00800040, 0x2c804629, 0x00b10ac1, 0x00b10b01 },
+   { 0x00800040, 0x2ca04629, 0x00b10b01, 0x00b10b41 },
+   { 0x00800040, 0x2cc04629, 0x00b10b41, 0x00b10b81 },
+   { 0x00800040, 0x2ce04629, 0x00b10b81, 0x00b10bc1 },
+   { 0x00800040, 0x2c004529, 0x00b10c00, 0x00b109c2 },
+   { 0x00800040, 0x2c204529, 0x00b10c20, 0x00b10a02 },
+   { 0x00800040, 0x2c404529, 0x00b10c40, 0x00b10a42 },
+   { 0x00800040, 0x2c604529, 0x00b10c60, 0x00b10a82 },
+   { 0x00800040, 0x2c804529, 0x00b10c80, 0x00b10ac2 },
+   { 0x00800040, 0x2ca04529, 0x00b10ca0, 0x00b10b02 },
+   { 0x00800040, 0x2cc04529, 0x00b10cc0, 0x00b10b42 },
+   { 0x00800040, 0x2ce04529, 0x00b10ce0, 0x00b10b82 },
+   { 0x00800040, 0x2c004529, 0x00b10c00, 0x00b10a02 },
+   { 0x00800040, 0x2c204529, 0x00b10c20, 0x00b10a42 },
+   { 0x00800040, 0x2c404529, 0x00b10c40, 0x00b10a82 },
+   { 0x00800040, 0x2c604529, 0x00b10c60, 0x00b10ac2 },
+   { 0x00800040, 0x2c804529, 0x00b10c80, 0x00b10b02 },
+   { 0x00800040, 0x2ca04529, 0x00b10ca0, 0x00b10b42 },
+   { 0x00800040, 0x2cc04529, 0x00b10cc0, 0x00b10b82 },
+   { 0x00800040, 0x2ce04529, 0x00b10ce0, 0x00b10bc2 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000031 },
+   { 0x00800040, 0x2c004629, 0x00b109c2, 0x00b10a02 },
+   { 0x00800040, 0x2c204629, 0x00b10a02, 0x00b10a42 },
+   { 0x00800040, 0x2c404629, 0x00b10a42, 0x00b10a82 },
+   { 0x00800040, 0x2c604629, 0x00b10a82, 0x00b10ac2 },
+   { 0x00800040, 0x2c804629, 0x00b10ac2, 0x00b10b02 },
+   { 0x00800040, 0x2ca04629, 0x00b10b02, 0x00b10b42 },
+   { 0x00800040, 0x2cc04629, 0x00b10b42, 0x00b10b82 },
+   { 0x00800040, 0x2ce04629, 0x00b10b82, 0x00b10bc2 },
+   { 0x00800040, 0x2c004529, 0x00b10c00, 0x00b109c3 },
+   { 0x00800040, 0x2c204529, 0x00b10c20, 0x00b10a03 },
+   { 0x00800040, 0x2c404529, 0x00b10c40, 0x00b10a43 },
+   { 0x00800040, 0x2c604529, 0x00b10c60, 0x00b10a83 },
+   { 0x00800040, 0x2c804529, 0x00b10c80, 0x00b10ac3 },
+   { 0x00800040, 0x2ca04529, 0x00b10ca0, 0x00b10b03 },
+   { 0x00800040, 0x2cc04529, 0x00b10cc0, 0x00b10b43 },
+   { 0x00800040, 0x2ce04529, 0x00b10ce0, 0x00b10b83 },
+   { 0x00800040, 0x2c004529, 0x00b10c00, 0x00b10a03 },
+   { 0x00800040, 0x2c204529, 0x00b10c20, 0x00b10a43 },
+   { 0x00800040, 0x2c404529, 0x00b10c40, 0x00b10a83 },
+   { 0x00800040, 0x2c604529, 0x00b10c60, 0x00b10ac3 },
+   { 0x00800040, 0x2c804529, 0x00b10c80, 0x00b10b03 },
+   { 0x00800040, 0x2ca04529, 0x00b10ca0, 0x00b10b43 },
+   { 0x00800040, 0x2cc04529, 0x00b10cc0, 0x00b10b83 },
+   { 0x00800040, 0x2ce04529, 0x00b10ce0, 0x00b10bc3 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000018 },
+   { 0x00800040, 0x2c004629, 0x00b109c3, 0x00b10a03 },
+   { 0x00800040, 0x2c204629, 0x00b10a03, 0x00b10a43 },
+   { 0x00800040, 0x2c404629, 0x00b10a43, 0x00b10a83 },
+   { 0x00800040, 0x2c604629, 0x00b10a83, 0x00b10ac3 },
+   { 0x00800040, 0x2c804629, 0x00b10ac3, 0x00b10b03 },
+   { 0x00800040, 0x2ca04629, 0x00b10b03, 0x00b10b43 },
+   { 0x00800040, 0x2cc04629, 0x00b10b43, 0x00b10b83 },
+   { 0x00800040, 0x2ce04629, 0x00b10b83, 0x00b10bc3 },
+   { 0x00800040, 0x2c004529, 0x00b10c00, 0x00b109c4 },
+   { 0x00800040, 0x2c204529, 0x00b10c20, 0x00b10a04 },
+   { 0x00800040, 0x2c404529, 0x00b10c40, 0x00b10a44 },
+   { 0x00800040, 0x2c604529, 0x00b10c60, 0x00b10a84 },
+   { 0x00800040, 0x2c804529, 0x00b10c80, 0x00b10ac4 },
+   { 0x00800040, 0x2ca04529, 0x00b10ca0, 0x00b10b04 },
+   { 0x00800040, 0x2cc04529, 0x00b10cc0, 0x00b10b44 },
+   { 0x00800040, 0x2ce04529, 0x00b10ce0, 0x00b10b84 },
+   { 0x00800040, 0x2c004529, 0x00b10c00, 0x00b10a04 },
+   { 0x00800040, 0x2c204529, 0x00b10c20, 0x00b10a44 },
+   { 0x00800040, 0x2c404529, 0x00b10c40, 0x00b10a84 },
+   { 0x00800040, 0x2c604529, 0x00b10c60, 0x00b10ac4 },
+   { 0x00800040, 0x2c804529, 0x00b10c80, 0x00b10b04 },
+   { 0x00800040, 0x2ca04529, 0x00b10ca0, 0x00b10b44 },
+   { 0x00800040, 0x2cc04529, 0x00b10cc0, 0x00b10b84 },
+   { 0x00800040, 0x2ce04529, 0x00b10ce0, 0x00b10bc4 },
+   { 0x00800008, 0x2c002d29, 0x00b10c00, 0x00020002 },
+   { 0x00800008, 0x2c202d29, 0x00b10c20, 0x00020002 },
+   { 0x00800008, 0x2c402d29, 0x00b10c40, 0x00020002 },
+   { 0x00800008, 0x2c602d29, 0x00b10c60, 0x00020002 },
+   { 0x00800008, 0x2c802d29, 0x00b10c80, 0x00020002 },
+   { 0x00800008, 0x2ca02d29, 0x00b10ca0, 0x00020002 },
+   { 0x00800008, 0x2cc02d29, 0x00b10cc0, 0x00020002 },
+   { 0x00800008, 0x2ce02d29, 0x00b10ce0, 0x00020002 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x0000009a },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
+   { 0x00800031, 0x29c01d29, 0x008d0e60, 0x0411a004 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00800031, 0x2a001d29, 0x008d0e60, 0x0411a004 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00800031, 0x2a401d29, 0x008d0e60, 0x0411a004 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00800031, 0x2a801d29, 0x008d0e60, 0x0411a004 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0007001f },
+   { 0x00800031, 0x2ac01d29, 0x008d0e60, 0x0418a004 },
+   { 0x00000005, 0x20580c21, 0x00210e60, 0x00000003 },
+   { 0x00000041, 0x20580c21, 0x00210058, 0x00000009 },
+   { 0x00000020, 0x34001400, 0x00001400, 0x00210058 },
+   { 0x80800042, 0x2c004629, 0x00b109c0, 0x00b109c1 },
+   { 0x80800042, 0x2c204629, 0x00b10a00, 0x00b10a01 },
+   { 0x80800042, 0x2c404629, 0x00b10a40, 0x00b10a41 },
+   { 0x80800042, 0x2c604629, 0x00b10a80, 0x00b10a81 },
+   { 0x80800042, 0x2c804629, 0x00b10ac0, 0x00b10ac1 },
+   { 0x80800042, 0x2ca04629, 0x00b10b00, 0x00b10b01 },
+   { 0x80800042, 0x2cc04629, 0x00b10b40, 0x00b10b41 },
+   { 0x80800042, 0x2ce04629, 0x00b10b80, 0x00b10b81 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x0000001a },
+   { 0x80800042, 0x2c004629, 0x00b109c1, 0x00b109c2 },
+   { 0x80800042, 0x2c204629, 0x00b10a01, 0x00b10a02 },
+   { 0x80800042, 0x2c404629, 0x00b10a41, 0x00b10a42 },
+   { 0x80800042, 0x2c604629, 0x00b10a81, 0x00b10a82 },
+   { 0x80800042, 0x2c804629, 0x00b10ac1, 0x00b10ac2 },
+   { 0x80800042, 0x2ca04629, 0x00b10b01, 0x00b10b02 },
+   { 0x80800042, 0x2cc04629, 0x00b10b41, 0x00b10b42 },
+   { 0x80800042, 0x2ce04629, 0x00b10b81, 0x00b10b82 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000011 },
+   { 0x80800042, 0x2c004629, 0x00b109c2, 0x00b109c3 },
+   { 0x80800042, 0x2c204629, 0x00b10a02, 0x00b10a03 },
+   { 0x80800042, 0x2c404629, 0x00b10a42, 0x00b10a43 },
+   { 0x80800042, 0x2c604629, 0x00b10a82, 0x00b10a83 },
+   { 0x80800042, 0x2c804629, 0x00b10ac2, 0x00b10ac3 },
+   { 0x80800042, 0x2ca04629, 0x00b10b02, 0x00b10b03 },
+   { 0x80800042, 0x2cc04629, 0x00b10b42, 0x00b10b43 },
+   { 0x80800042, 0x2ce04629, 0x00b10b82, 0x00b10b83 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000008 },
+   { 0x80800042, 0x2c004629, 0x00b109c3, 0x00b109c4 },
+   { 0x80800042, 0x2c204629, 0x00b10a03, 0x00b10a04 },
+   { 0x80800042, 0x2c404629, 0x00b10a43, 0x00b10a44 },
+   { 0x80800042, 0x2c604629, 0x00b10a83, 0x00b10a84 },
+   { 0x80800042, 0x2c804629, 0x00b10ac3, 0x00b10ac4 },
+   { 0x80800042, 0x2ca04629, 0x00b10b03, 0x00b10b04 },
+   { 0x80800042, 0x2cc04629, 0x00b10b43, 0x00b10b44 },
+   { 0x80800042, 0x2ce04629, 0x00b10b83, 0x00b10b84 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000068 },
+   { 0x01000005, 0x20002d3c, 0x00210030, 0x00010001 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x00000035 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
+   { 0x00800031, 0x29c01d29, 0x008d0e60, 0x0411a004 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00800031, 0x2a001d29, 0x008d0e60, 0x0411a004 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00800031, 0x2a401d29, 0x008d0e60, 0x0411a004 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00800031, 0x2a801d29, 0x008d0e60, 0x0411a004 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0007001f },
+   { 0x00800031, 0x2ac01d29, 0x008d0e60, 0x0418a004 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
+   { 0x00800031, 0x2bc01d29, 0x008d0e60, 0x0411a004 },
+   { 0x00000005, 0x20580c21, 0x00210e60, 0x00000003 },
+   { 0x00000041, 0x20580c21, 0x00210058, 0x00000009 },
+   { 0x00000020, 0x34001400, 0x00001400, 0x00210058 },
+   { 0x80800042, 0x2c004629, 0x00b109c0, 0x00b10a00 },
+   { 0x80800042, 0x2c204629, 0x00b10a00, 0x00b10a40 },
+   { 0x80800042, 0x2c404629, 0x00b10a40, 0x00b10a80 },
+   { 0x80800042, 0x2c604629, 0x00b10a80, 0x00b10ac0 },
+   { 0x80800042, 0x2c804629, 0x00b10ac0, 0x00b10b00 },
+   { 0x80800042, 0x2ca04629, 0x00b10b00, 0x00b10b40 },
+   { 0x80800042, 0x2cc04629, 0x00b10b40, 0x00b10b80 },
+   { 0x80800042, 0x2ce04629, 0x00b10b80, 0x00b10bc0 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x0000001a },
+   { 0x80800042, 0x2c004629, 0x00b109c1, 0x00b10a01 },
+   { 0x80800042, 0x2c204629, 0x00b10a01, 0x00b10a41 },
+   { 0x80800042, 0x2c404629, 0x00b10a41, 0x00b10a81 },
+   { 0x80800042, 0x2c604629, 0x00b10a81, 0x00b10ac1 },
+   { 0x80800042, 0x2c804629, 0x00b10ac1, 0x00b10b01 },
+   { 0x80800042, 0x2ca04629, 0x00b10b01, 0x00b10b41 },
+   { 0x80800042, 0x2cc04629, 0x00b10b41, 0x00b10b81 },
+   { 0x80800042, 0x2ce04629, 0x00b10b81, 0x00b10bc1 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000011 },
+   { 0x80800042, 0x2c004629, 0x00b109c2, 0x00b10a02 },
+   { 0x80800042, 0x2c204629, 0x00b10a02, 0x00b10a42 },
+   { 0x80800042, 0x2c404629, 0x00b10a42, 0x00b10a82 },
+   { 0x80800042, 0x2c604629, 0x00b10a82, 0x00b10ac2 },
+   { 0x80800042, 0x2c804629, 0x00b10ac2, 0x00b10b02 },
+   { 0x80800042, 0x2ca04629, 0x00b10b02, 0x00b10b42 },
+   { 0x80800042, 0x2cc04629, 0x00b10b42, 0x00b10b82 },
+   { 0x80800042, 0x2ce04629, 0x00b10b82, 0x00b10bc2 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000008 },
+   { 0x80800042, 0x2c004629, 0x00b109c3, 0x00b10a03 },
+   { 0x80800042, 0x2c204629, 0x00b10a03, 0x00b10a43 },
+   { 0x80800042, 0x2c404629, 0x00b10a43, 0x00b10a83 },
+   { 0x80800042, 0x2c604629, 0x00b10a83, 0x00b10ac3 },
+   { 0x80800042, 0x2c804629, 0x00b10ac3, 0x00b10b03 },
+   { 0x80800042, 0x2ca04629, 0x00b10b03, 0x00b10b43 },
+   { 0x80800042, 0x2cc04629, 0x00b10b43, 0x00b10b83 },
+   { 0x80800042, 0x2ce04629, 0x00b10b83, 0x00b10bc3 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000031 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
+   { 0x00800031, 0x29c01d29, 0x008d0e60, 0x0411a004 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00800031, 0x2a001d29, 0x008d0e60, 0x0411a004 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00800031, 0x2a401d29, 0x008d0e60, 0x0411a004 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00800031, 0x2a801d29, 0x008d0e60, 0x0411a004 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0007001f },
+   { 0x00800031, 0x2ac01d29, 0x008d0e60, 0x0418a004 },
+   { 0x00000005, 0x20580c21, 0x00210e60, 0x00000003 },
+   { 0x00000041, 0x20580c21, 0x00210058, 0x00000009 },
+   { 0x00000020, 0x34001400, 0x00001400, 0x00210058 },
+   { 0x00800001, 0x2c000229, 0x00b109c0, 0x00000000 },
+   { 0x00800001, 0x2c200229, 0x00b10a00, 0x00000000 },
+   { 0x00800001, 0x2c400229, 0x00b10a40, 0x00000000 },
+   { 0x00800001, 0x2c600229, 0x00b10a80, 0x00000000 },
+   { 0x00800001, 0x2c800229, 0x00b10ac0, 0x00000000 },
+   { 0x00800001, 0x2ca00229, 0x00b10b00, 0x00000000 },
+   { 0x00800001, 0x2cc00229, 0x00b10b40, 0x00000000 },
+   { 0x00800001, 0x2ce00229, 0x00b10b80, 0x00000000 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x0000001a },
+   { 0x00800001, 0x2c000229, 0x00b109c1, 0x00000000 },
+   { 0x00800001, 0x2c200229, 0x00b10a01, 0x00000000 },
+   { 0x00800001, 0x2c400229, 0x00b10a41, 0x00000000 },
+   { 0x00800001, 0x2c600229, 0x00b10a81, 0x00000000 },
+   { 0x00800001, 0x2c800229, 0x00b10ac1, 0x00000000 },
+   { 0x00800001, 0x2ca00229, 0x00b10b01, 0x00000000 },
+   { 0x00800001, 0x2cc00229, 0x00b10b41, 0x00000000 },
+   { 0x00800001, 0x2ce00229, 0x00b10b81, 0x00000000 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000011 },
+   { 0x00800001, 0x2c000229, 0x00b109c2, 0x00000000 },
+   { 0x00800001, 0x2c200229, 0x00b10a02, 0x00000000 },
+   { 0x00800001, 0x2c400229, 0x00b10a42, 0x00000000 },
+   { 0x00800001, 0x2c600229, 0x00b10a82, 0x00000000 },
+   { 0x00800001, 0x2c800229, 0x00b10ac2, 0x00000000 },
+   { 0x00800001, 0x2ca00229, 0x00b10b02, 0x00000000 },
+   { 0x00800001, 0x2cc00229, 0x00b10b42, 0x00000000 },
+   { 0x00800001, 0x2ce00229, 0x00b10b82, 0x00000000 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000008 },
+   { 0x00800001, 0x2c000229, 0x00b109c3, 0x00000000 },
+   { 0x00800001, 0x2c200229, 0x00b10a03, 0x00000000 },
+   { 0x00800001, 0x2c400229, 0x00b10a43, 0x00000000 },
+   { 0x00800001, 0x2c600229, 0x00b10a83, 0x00000000 },
+   { 0x00800001, 0x2c800229, 0x00b10ac3, 0x00000000 },
+   { 0x00800001, 0x2ca00229, 0x00b10b03, 0x00000000 },
+   { 0x00800001, 0x2cc00229, 0x00b10b43, 0x00000000 },
+   { 0x00800001, 0x2ce00229, 0x00b10b83, 0x00000000 },
+   { 0x00600001, 0x26800021, 0x008d0c00, 0x00000000 },
+   { 0x00600001, 0x26c00021, 0x008d0c20, 0x00000000 },
+   { 0x00600001, 0x27000021, 0x008d0c40, 0x00000000 },
+   { 0x00600001, 0x27400021, 0x008d0c60, 0x00000000 },
+   { 0x00600001, 0x27800021, 0x008d0c80, 0x00000000 },
+   { 0x00600001, 0x27c00021, 0x008d0ca0, 0x00000000 },
+   { 0x00600001, 0x28000021, 0x008d0cc0, 0x00000000 },
+   { 0x00600001, 0x28400021, 0x008d0ce0, 0x00000000 },
+   { 0x0020000c, 0x2e6e3dad, 0x00450036, 0x00010001 },
+   { 0x00200040, 0x2e6034a5, 0x00450e80, 0x00450e6e },
+   { 0x00000005, 0x2e640c21, 0x00210e64, 0xfffffffe },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
+   { 0x02000005, 0x20000e3c, 0x0021003f, 0x00000004 },
+   { 0x00010040, 0x2e641ca5, 0x00210e64, 0x00000001 },
+   { 0x01000005, 0x20002d3c, 0x00210036, 0x00010001 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x000000b1 },
+   { 0x01000005, 0x20002d3c, 0x00210038, 0x00010001 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x0000007d },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
+   { 0x00800031, 0x29c01d29, 0x008d0e60, 0x0411a004 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00800031, 0x2a001d29, 0x008d0e60, 0x0411a004 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00800031, 0x2a401d29, 0x008d0e60, 0x0411a004 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00800031, 0x2a801d29, 0x008d0e60, 0x0411a004 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0007001f },
+   { 0x00800031, 0x2ac01d29, 0x008d0e60, 0x0418a004 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
+   { 0x00800031, 0x2bc01d29, 0x008d0e60, 0x0411a004 },
+   { 0x00000005, 0x20580c21, 0x00210e60, 0x00000003 },
+   { 0x00000041, 0x20580c21, 0x00210058, 0x00000019 },
+   { 0x00000020, 0x34001400, 0x00001400, 0x00210058 },
+   { 0x00800040, 0x2c004629, 0x00b109c0, 0x00b10a00 },
+   { 0x00800040, 0x2c204629, 0x00b10a00, 0x00b10a40 },
+   { 0x00800040, 0x2c404629, 0x00b10a40, 0x00b10a80 },
+   { 0x00800040, 0x2c604629, 0x00b10a80, 0x00b10ac0 },
+   { 0x00800040, 0x2c804629, 0x00b10ac0, 0x00b10b00 },
+   { 0x00800040, 0x2ca04629, 0x00b10b00, 0x00b10b40 },
+   { 0x00800040, 0x2cc04629, 0x00b10b40, 0x00b10b80 },
+   { 0x00800040, 0x2ce04629, 0x00b10b80, 0x00b10bc0 },
+   { 0x00800040, 0x2c004529, 0x00b10c00, 0x00b109c1 },
+   { 0x00800040, 0x2c204529, 0x00b10c20, 0x00b10a01 },
+   { 0x00800040, 0x2c404529, 0x00b10c40, 0x00b10a41 },
+   { 0x00800040, 0x2c604529, 0x00b10c60, 0x00b10a81 },
+   { 0x00800040, 0x2c804529, 0x00b10c80, 0x00b10ac1 },
+   { 0x00800040, 0x2ca04529, 0x00b10ca0, 0x00b10b01 },
+   { 0x00800040, 0x2cc04529, 0x00b10cc0, 0x00b10b41 },
+   { 0x00800040, 0x2ce04529, 0x00b10ce0, 0x00b10b81 },
+   { 0x00800040, 0x2c004529, 0x00b10c00, 0x00b10a01 },
+   { 0x00800040, 0x2c204529, 0x00b10c20, 0x00b10a41 },
+   { 0x00800040, 0x2c404529, 0x00b10c40, 0x00b10a81 },
+   { 0x00800040, 0x2c604529, 0x00b10c60, 0x00b10ac1 },
+   { 0x00800040, 0x2c804529, 0x00b10c80, 0x00b10b01 },
+   { 0x00800040, 0x2ca04529, 0x00b10ca0, 0x00b10b41 },
+   { 0x00800040, 0x2cc04529, 0x00b10cc0, 0x00b10b81 },
+   { 0x00800040, 0x2ce04529, 0x00b10ce0, 0x00b10bc1 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x0000004a },
+   { 0x00800040, 0x2c004629, 0x00b109c1, 0x00b10a01 },
+   { 0x00800040, 0x2c204629, 0x00b10a01, 0x00b10a41 },
+   { 0x00800040, 0x2c404629, 0x00b10a41, 0x00b10a81 },
+   { 0x00800040, 0x2c604629, 0x00b10a81, 0x00b10ac1 },
+   { 0x00800040, 0x2c804629, 0x00b10ac1, 0x00b10b01 },
+   { 0x00800040, 0x2ca04629, 0x00b10b01, 0x00b10b41 },
+   { 0x00800040, 0x2cc04629, 0x00b10b41, 0x00b10b81 },
+   { 0x00800040, 0x2ce04629, 0x00b10b81, 0x00b10bc1 },
+   { 0x00800040, 0x2c004529, 0x00b10c00, 0x00b109c2 },
+   { 0x00800040, 0x2c204529, 0x00b10c20, 0x00b10a02 },
+   { 0x00800040, 0x2c404529, 0x00b10c40, 0x00b10a42 },
+   { 0x00800040, 0x2c604529, 0x00b10c60, 0x00b10a82 },
+   { 0x00800040, 0x2c804529, 0x00b10c80, 0x00b10ac2 },
+   { 0x00800040, 0x2ca04529, 0x00b10ca0, 0x00b10b02 },
+   { 0x00800040, 0x2cc04529, 0x00b10cc0, 0x00b10b42 },
+   { 0x00800040, 0x2ce04529, 0x00b10ce0, 0x00b10b82 },
+   { 0x00800040, 0x2c004529, 0x00b10c00, 0x00b10a02 },
+   { 0x00800040, 0x2c204529, 0x00b10c20, 0x00b10a42 },
+   { 0x00800040, 0x2c404529, 0x00b10c40, 0x00b10a82 },
+   { 0x00800040, 0x2c604529, 0x00b10c60, 0x00b10ac2 },
+   { 0x00800040, 0x2c804529, 0x00b10c80, 0x00b10b02 },
+   { 0x00800040, 0x2ca04529, 0x00b10ca0, 0x00b10b42 },
+   { 0x00800040, 0x2cc04529, 0x00b10cc0, 0x00b10b82 },
+   { 0x00800040, 0x2ce04529, 0x00b10ce0, 0x00b10bc2 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000031 },
+   { 0x00800040, 0x2c004629, 0x00b109c2, 0x00b10a02 },
+   { 0x00800040, 0x2c204629, 0x00b10a02, 0x00b10a42 },
+   { 0x00800040, 0x2c404629, 0x00b10a42, 0x00b10a82 },
+   { 0x00800040, 0x2c604629, 0x00b10a82, 0x00b10ac2 },
+   { 0x00800040, 0x2c804629, 0x00b10ac2, 0x00b10b02 },
+   { 0x00800040, 0x2ca04629, 0x00b10b02, 0x00b10b42 },
+   { 0x00800040, 0x2cc04629, 0x00b10b42, 0x00b10b82 },
+   { 0x00800040, 0x2ce04629, 0x00b10b82, 0x00b10bc2 },
+   { 0x00800040, 0x2c004529, 0x00b10c00, 0x00b109c3 },
+   { 0x00800040, 0x2c204529, 0x00b10c20, 0x00b10a03 },
+   { 0x00800040, 0x2c404529, 0x00b10c40, 0x00b10a43 },
+   { 0x00800040, 0x2c604529, 0x00b10c60, 0x00b10a83 },
+   { 0x00800040, 0x2c804529, 0x00b10c80, 0x00b10ac3 },
+   { 0x00800040, 0x2ca04529, 0x00b10ca0, 0x00b10b03 },
+   { 0x00800040, 0x2cc04529, 0x00b10cc0, 0x00b10b43 },
+   { 0x00800040, 0x2ce04529, 0x00b10ce0, 0x00b10b83 },
+   { 0x00800040, 0x2c004529, 0x00b10c00, 0x00b10a03 },
+   { 0x00800040, 0x2c204529, 0x00b10c20, 0x00b10a43 },
+   { 0x00800040, 0x2c404529, 0x00b10c40, 0x00b10a83 },
+   { 0x00800040, 0x2c604529, 0x00b10c60, 0x00b10ac3 },
+   { 0x00800040, 0x2c804529, 0x00b10c80, 0x00b10b03 },
+   { 0x00800040, 0x2ca04529, 0x00b10ca0, 0x00b10b43 },
+   { 0x00800040, 0x2cc04529, 0x00b10cc0, 0x00b10b83 },
+   { 0x00800040, 0x2ce04529, 0x00b10ce0, 0x00b10bc3 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000018 },
+   { 0x00800040, 0x2c004629, 0x00b109c3, 0x00b10a03 },
+   { 0x00800040, 0x2c204629, 0x00b10a03, 0x00b10a43 },
+   { 0x00800040, 0x2c404629, 0x00b10a43, 0x00b10a83 },
+   { 0x00800040, 0x2c604629, 0x00b10a83, 0x00b10ac3 },
+   { 0x00800040, 0x2c804629, 0x00b10ac3, 0x00b10b03 },
+   { 0x00800040, 0x2ca04629, 0x00b10b03, 0x00b10b43 },
+   { 0x00800040, 0x2cc04629, 0x00b10b43, 0x00b10b83 },
+   { 0x00800040, 0x2ce04629, 0x00b10b83, 0x00b10bc3 },
+   { 0x00800040, 0x2c004529, 0x00b10c00, 0x00b109c4 },
+   { 0x00800040, 0x2c204529, 0x00b10c20, 0x00b10a04 },
+   { 0x00800040, 0x2c404529, 0x00b10c40, 0x00b10a44 },
+   { 0x00800040, 0x2c604529, 0x00b10c60, 0x00b10a84 },
+   { 0x00800040, 0x2c804529, 0x00b10c80, 0x00b10ac4 },
+   { 0x00800040, 0x2ca04529, 0x00b10ca0, 0x00b10b04 },
+   { 0x00800040, 0x2cc04529, 0x00b10cc0, 0x00b10b44 },
+   { 0x00800040, 0x2ce04529, 0x00b10ce0, 0x00b10b84 },
+   { 0x00800040, 0x2c004529, 0x00b10c00, 0x00b10a04 },
+   { 0x00800040, 0x2c204529, 0x00b10c20, 0x00b10a44 },
+   { 0x00800040, 0x2c404529, 0x00b10c40, 0x00b10a84 },
+   { 0x00800040, 0x2c604529, 0x00b10c60, 0x00b10ac4 },
+   { 0x00800040, 0x2c804529, 0x00b10c80, 0x00b10b04 },
+   { 0x00800040, 0x2ca04529, 0x00b10ca0, 0x00b10b44 },
+   { 0x00800040, 0x2cc04529, 0x00b10cc0, 0x00b10b84 },
+   { 0x00800040, 0x2ce04529, 0x00b10ce0, 0x00b10bc4 },
+   { 0x00800008, 0x2c002d29, 0x00b10c00, 0x00020002 },
+   { 0x00800008, 0x2c202d29, 0x00b10c20, 0x00020002 },
+   { 0x00800008, 0x2c402d29, 0x00b10c40, 0x00020002 },
+   { 0x00800008, 0x2c602d29, 0x00b10c60, 0x00020002 },
+   { 0x00800008, 0x2c802d29, 0x00b10c80, 0x00020002 },
+   { 0x00800008, 0x2ca02d29, 0x00b10ca0, 0x00020002 },
+   { 0x00800008, 0x2cc02d29, 0x00b10cc0, 0x00020002 },
+   { 0x00800008, 0x2ce02d29, 0x00b10ce0, 0x00020002 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x0000009a },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
+   { 0x00800031, 0x29c01d29, 0x008d0e60, 0x0411a004 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00800031, 0x2a001d29, 0x008d0e60, 0x0411a004 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00800031, 0x2a401d29, 0x008d0e60, 0x0411a004 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00800031, 0x2a801d29, 0x008d0e60, 0x0411a004 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0007001f },
+   { 0x00800031, 0x2ac01d29, 0x008d0e60, 0x0418a004 },
+   { 0x00000005, 0x20580c21, 0x00210e60, 0x00000003 },
+   { 0x00000041, 0x20580c21, 0x00210058, 0x00000009 },
+   { 0x00000020, 0x34001400, 0x00001400, 0x00210058 },
+   { 0x80800042, 0x2c004629, 0x00b109c0, 0x00b109c1 },
+   { 0x80800042, 0x2c204629, 0x00b10a00, 0x00b10a01 },
+   { 0x80800042, 0x2c404629, 0x00b10a40, 0x00b10a41 },
+   { 0x80800042, 0x2c604629, 0x00b10a80, 0x00b10a81 },
+   { 0x80800042, 0x2c804629, 0x00b10ac0, 0x00b10ac1 },
+   { 0x80800042, 0x2ca04629, 0x00b10b00, 0x00b10b01 },
+   { 0x80800042, 0x2cc04629, 0x00b10b40, 0x00b10b41 },
+   { 0x80800042, 0x2ce04629, 0x00b10b80, 0x00b10b81 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x0000001a },
+   { 0x80800042, 0x2c004629, 0x00b109c1, 0x00b109c2 },
+   { 0x80800042, 0x2c204629, 0x00b10a01, 0x00b10a02 },
+   { 0x80800042, 0x2c404629, 0x00b10a41, 0x00b10a42 },
+   { 0x80800042, 0x2c604629, 0x00b10a81, 0x00b10a82 },
+   { 0x80800042, 0x2c804629, 0x00b10ac1, 0x00b10ac2 },
+   { 0x80800042, 0x2ca04629, 0x00b10b01, 0x00b10b02 },
+   { 0x80800042, 0x2cc04629, 0x00b10b41, 0x00b10b42 },
+   { 0x80800042, 0x2ce04629, 0x00b10b81, 0x00b10b82 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000011 },
+   { 0x80800042, 0x2c004629, 0x00b109c2, 0x00b109c3 },
+   { 0x80800042, 0x2c204629, 0x00b10a02, 0x00b10a03 },
+   { 0x80800042, 0x2c404629, 0x00b10a42, 0x00b10a43 },
+   { 0x80800042, 0x2c604629, 0x00b10a82, 0x00b10a83 },
+   { 0x80800042, 0x2c804629, 0x00b10ac2, 0x00b10ac3 },
+   { 0x80800042, 0x2ca04629, 0x00b10b02, 0x00b10b03 },
+   { 0x80800042, 0x2cc04629, 0x00b10b42, 0x00b10b43 },
+   { 0x80800042, 0x2ce04629, 0x00b10b82, 0x00b10b83 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000008 },
+   { 0x80800042, 0x2c004629, 0x00b109c3, 0x00b109c4 },
+   { 0x80800042, 0x2c204629, 0x00b10a03, 0x00b10a04 },
+   { 0x80800042, 0x2c404629, 0x00b10a43, 0x00b10a44 },
+   { 0x80800042, 0x2c604629, 0x00b10a83, 0x00b10a84 },
+   { 0x80800042, 0x2c804629, 0x00b10ac3, 0x00b10ac4 },
+   { 0x80800042, 0x2ca04629, 0x00b10b03, 0x00b10b04 },
+   { 0x80800042, 0x2cc04629, 0x00b10b43, 0x00b10b44 },
+   { 0x80800042, 0x2ce04629, 0x00b10b83, 0x00b10b84 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000068 },
+   { 0x01000005, 0x20002d3c, 0x00210038, 0x00010001 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x00000035 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
+   { 0x00800031, 0x29c01d29, 0x008d0e60, 0x0411a004 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00800031, 0x2a001d29, 0x008d0e60, 0x0411a004 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00800031, 0x2a401d29, 0x008d0e60, 0x0411a004 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00800031, 0x2a801d29, 0x008d0e60, 0x0411a004 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0007001f },
+   { 0x00800031, 0x2ac01d29, 0x008d0e60, 0x0418a004 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
+   { 0x00800031, 0x2bc01d29, 0x008d0e60, 0x0411a004 },
+   { 0x00000005, 0x20580c21, 0x00210e60, 0x00000003 },
+   { 0x00000041, 0x20580c21, 0x00210058, 0x00000009 },
+   { 0x00000020, 0x34001400, 0x00001400, 0x00210058 },
+   { 0x80800042, 0x2c004629, 0x00b109c0, 0x00b10a00 },
+   { 0x80800042, 0x2c204629, 0x00b10a00, 0x00b10a40 },
+   { 0x80800042, 0x2c404629, 0x00b10a40, 0x00b10a80 },
+   { 0x80800042, 0x2c604629, 0x00b10a80, 0x00b10ac0 },
+   { 0x80800042, 0x2c804629, 0x00b10ac0, 0x00b10b00 },
+   { 0x80800042, 0x2ca04629, 0x00b10b00, 0x00b10b40 },
+   { 0x80800042, 0x2cc04629, 0x00b10b40, 0x00b10b80 },
+   { 0x80800042, 0x2ce04629, 0x00b10b80, 0x00b10bc0 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x0000001a },
+   { 0x80800042, 0x2c004629, 0x00b109c1, 0x00b10a01 },
+   { 0x80800042, 0x2c204629, 0x00b10a01, 0x00b10a41 },
+   { 0x80800042, 0x2c404629, 0x00b10a41, 0x00b10a81 },
+   { 0x80800042, 0x2c604629, 0x00b10a81, 0x00b10ac1 },
+   { 0x80800042, 0x2c804629, 0x00b10ac1, 0x00b10b01 },
+   { 0x80800042, 0x2ca04629, 0x00b10b01, 0x00b10b41 },
+   { 0x80800042, 0x2cc04629, 0x00b10b41, 0x00b10b81 },
+   { 0x80800042, 0x2ce04629, 0x00b10b81, 0x00b10bc1 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000011 },
+   { 0x80800042, 0x2c004629, 0x00b109c2, 0x00b10a02 },
+   { 0x80800042, 0x2c204629, 0x00b10a02, 0x00b10a42 },
+   { 0x80800042, 0x2c404629, 0x00b10a42, 0x00b10a82 },
+   { 0x80800042, 0x2c604629, 0x00b10a82, 0x00b10ac2 },
+   { 0x80800042, 0x2c804629, 0x00b10ac2, 0x00b10b02 },
+   { 0x80800042, 0x2ca04629, 0x00b10b02, 0x00b10b42 },
+   { 0x80800042, 0x2cc04629, 0x00b10b42, 0x00b10b82 },
+   { 0x80800042, 0x2ce04629, 0x00b10b82, 0x00b10bc2 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000008 },
+   { 0x80800042, 0x2c004629, 0x00b109c3, 0x00b10a03 },
+   { 0x80800042, 0x2c204629, 0x00b10a03, 0x00b10a43 },
+   { 0x80800042, 0x2c404629, 0x00b10a43, 0x00b10a83 },
+   { 0x80800042, 0x2c604629, 0x00b10a83, 0x00b10ac3 },
+   { 0x80800042, 0x2c804629, 0x00b10ac3, 0x00b10b03 },
+   { 0x80800042, 0x2ca04629, 0x00b10b03, 0x00b10b43 },
+   { 0x80800042, 0x2cc04629, 0x00b10b43, 0x00b10b83 },
+   { 0x80800042, 0x2ce04629, 0x00b10b83, 0x00b10bc3 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000031 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
+   { 0x00800031, 0x29c01d29, 0x008d0e60, 0x0411a004 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00800031, 0x2a001d29, 0x008d0e60, 0x0411a004 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00800031, 0x2a401d29, 0x008d0e60, 0x0411a004 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00800031, 0x2a801d29, 0x008d0e60, 0x0411a004 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0007001f },
+   { 0x00800031, 0x2ac01d29, 0x008d0e60, 0x0418a004 },
+   { 0x00000005, 0x20580c21, 0x00210e60, 0x00000003 },
+   { 0x00000041, 0x20580c21, 0x00210058, 0x00000009 },
+   { 0x00000020, 0x34001400, 0x00001400, 0x00210058 },
+   { 0x00800001, 0x2c000229, 0x00b109c0, 0x00000000 },
+   { 0x00800001, 0x2c200229, 0x00b10a00, 0x00000000 },
+   { 0x00800001, 0x2c400229, 0x00b10a40, 0x00000000 },
+   { 0x00800001, 0x2c600229, 0x00b10a80, 0x00000000 },
+   { 0x00800001, 0x2c800229, 0x00b10ac0, 0x00000000 },
+   { 0x00800001, 0x2ca00229, 0x00b10b00, 0x00000000 },
+   { 0x00800001, 0x2cc00229, 0x00b10b40, 0x00000000 },
+   { 0x00800001, 0x2ce00229, 0x00b10b80, 0x00000000 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x0000001a },
+   { 0x00800001, 0x2c000229, 0x00b109c1, 0x00000000 },
+   { 0x00800001, 0x2c200229, 0x00b10a01, 0x00000000 },
+   { 0x00800001, 0x2c400229, 0x00b10a41, 0x00000000 },
+   { 0x00800001, 0x2c600229, 0x00b10a81, 0x00000000 },
+   { 0x00800001, 0x2c800229, 0x00b10ac1, 0x00000000 },
+   { 0x00800001, 0x2ca00229, 0x00b10b01, 0x00000000 },
+   { 0x00800001, 0x2cc00229, 0x00b10b41, 0x00000000 },
+   { 0x00800001, 0x2ce00229, 0x00b10b81, 0x00000000 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000011 },
+   { 0x00800001, 0x2c000229, 0x00b109c2, 0x00000000 },
+   { 0x00800001, 0x2c200229, 0x00b10a02, 0x00000000 },
+   { 0x00800001, 0x2c400229, 0x00b10a42, 0x00000000 },
+   { 0x00800001, 0x2c600229, 0x00b10a82, 0x00000000 },
+   { 0x00800001, 0x2c800229, 0x00b10ac2, 0x00000000 },
+   { 0x00800001, 0x2ca00229, 0x00b10b02, 0x00000000 },
+   { 0x00800001, 0x2cc00229, 0x00b10b42, 0x00000000 },
+   { 0x00800001, 0x2ce00229, 0x00b10b82, 0x00000000 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000008 },
+   { 0x00800001, 0x2c000229, 0x00b109c3, 0x00000000 },
+   { 0x00800001, 0x2c200229, 0x00b10a03, 0x00000000 },
+   { 0x00800001, 0x2c400229, 0x00b10a43, 0x00000000 },
+   { 0x00800001, 0x2c600229, 0x00b10a83, 0x00000000 },
+   { 0x00800001, 0x2c800229, 0x00b10ac3, 0x00000000 },
+   { 0x00800001, 0x2ca00229, 0x00b10b03, 0x00000000 },
+   { 0x00800001, 0x2cc00229, 0x00b10b43, 0x00000000 },
+   { 0x00800001, 0x2ce00229, 0x00b10b83, 0x00000000 },
+   { 0x00600001, 0x26a00021, 0x008d0c00, 0x00000000 },
+   { 0x00600001, 0x26e00021, 0x008d0c20, 0x00000000 },
+   { 0x00600001, 0x27200021, 0x008d0c40, 0x00000000 },
+   { 0x00600001, 0x27600021, 0x008d0c60, 0x00000000 },
+   { 0x00600001, 0x27a00021, 0x008d0c80, 0x00000000 },
+   { 0x00600001, 0x27e00021, 0x008d0ca0, 0x00000000 },
+   { 0x00600001, 0x28200021, 0x008d0cc0, 0x00000000 },
+   { 0x00600001, 0x28600021, 0x008d0ce0, 0x00000000 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0007000f },
+   { 0x0020000c, 0x2e6e3dad, 0x0045002e, 0x00020002 },
+   { 0x0020000c, 0x2e601ca5, 0x00450e80, 0x00000001 },
+   { 0x00200040, 0x2e6034a5, 0x00450e60, 0x00450e6e },
+   { 0x00000005, 0x2e640c21, 0x00210e64, 0xfffffffe },
+   { 0x02000005, 0x20002e3c, 0x0021003f, 0x00010001 },
+   { 0x00010040, 0x2e640c21, 0x00210e64, 0x00000001 },
+   { 0x01000005, 0x20002d3c, 0x0021002e, 0x00020002 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x000000a2 },
+   { 0x01000005, 0x20002d3c, 0x00210030, 0x00020002 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x00000076 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0007000f },
+   { 0x00800031, 0x2ac01d29, 0x00ad0e60, 0x0414a005 },
+   { 0x00800031, 0x2b601d29, 0x00ad0e60, 0x0414a006 },
+   { 0x00000005, 0x20580c21, 0x00210e60, 0x00000003 },
+   { 0x00000041, 0x20580c21, 0x00210058, 0x00000019 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0001000f },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 },
+   { 0x00800031, 0x2b401d29, 0x00ad0e60, 0x0411a005 },
+   { 0x00800031, 0x2be01d29, 0x00ad0e60, 0x0411a006 },
+   { 0x00000020, 0x34001400, 0x00001400, 0x00210058 },
+   { 0x00800040, 0x29c04629, 0x00ad0ac0, 0x00ad0ae0 },
+   { 0x00800040, 0x29e04629, 0x00ad0ae0, 0x00ad0b00 },
+   { 0x00800040, 0x2a004629, 0x00ad0b00, 0x00ad0b20 },
+   { 0x00800040, 0x2a204629, 0x00ad0b20, 0x00ad0b40 },
+   { 0x00800040, 0x29c04529, 0x00ad09c0, 0x00ad0ac1 },
+   { 0x00800040, 0x29e04529, 0x00ad09e0, 0x00ad0ae1 },
+   { 0x00800040, 0x2a004529, 0x00ad0a00, 0x00ad0b01 },
+   { 0x00800040, 0x2a204529, 0x00ad0a20, 0x00ad0b21 },
+   { 0x00800040, 0x29c04529, 0x00ad09c0, 0x00ad0ae1 },
+   { 0x00800040, 0x29e04529, 0x00ad09e0, 0x00ad0b01 },
+   { 0x00800040, 0x2a004529, 0x00ad0a00, 0x00ad0b21 },
+   { 0x00800040, 0x2a204529, 0x00ad0a20, 0x00ad0b41 },
+   { 0x00800040, 0x2a404629, 0x00ad0b60, 0x00ad0b80 },
+   { 0x00800040, 0x2a604629, 0x00ad0b80, 0x00ad0ba0 },
+   { 0x00800040, 0x2a804629, 0x00ad0ba0, 0x00ad0bc0 },
+   { 0x00800040, 0x2aa04629, 0x00ad0bc0, 0x00ad0be0 },
+   { 0x00800040, 0x2a404529, 0x00ad0a40, 0x00ad0b61 },
+   { 0x00800040, 0x2a604529, 0x00ad0a60, 0x00ad0b81 },
+   { 0x00800040, 0x2a804529, 0x00ad0a80, 0x00ad0ba1 },
+   { 0x00800040, 0x2aa04529, 0x00ad0aa0, 0x00ad0bc1 },
+   { 0x00800040, 0x2a404529, 0x00ad0a40, 0x00ad0b81 },
+   { 0x00800040, 0x2a604529, 0x00ad0a60, 0x00ad0ba1 },
+   { 0x00800040, 0x2a804529, 0x00ad0a80, 0x00ad0bc1 },
+   { 0x00800040, 0x2aa04529, 0x00ad0aa0, 0x00ad0be1 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x0000004a },
+   { 0x00800040, 0x29c04629, 0x00ad0ac1, 0x00ad0ae1 },
+   { 0x00800040, 0x29e04629, 0x00ad0ae1, 0x00ad0b01 },
+   { 0x00800040, 0x2a004629, 0x00ad0b01, 0x00ad0b21 },
+   { 0x00800040, 0x2a204629, 0x00ad0b21, 0x00ad0b41 },
+   { 0x00800040, 0x29c04529, 0x00ad09c0, 0x00ad0ac2 },
+   { 0x00800040, 0x29e04529, 0x00ad09e0, 0x00ad0ae2 },
+   { 0x00800040, 0x2a004529, 0x00ad0a00, 0x00ad0b02 },
+   { 0x00800040, 0x2a204529, 0x00ad0a20, 0x00ad0b22 },
+   { 0x00800040, 0x29c04529, 0x00ad09c0, 0x00ad0ae2 },
+   { 0x00800040, 0x29e04529, 0x00ad09e0, 0x00ad0b02 },
+   { 0x00800040, 0x2a004529, 0x00ad0a00, 0x00ad0b22 },
+   { 0x00800040, 0x2a204529, 0x00ad0a20, 0x00ad0b42 },
+   { 0x00800040, 0x2a404629, 0x00ad0b61, 0x00ad0b81 },
+   { 0x00800040, 0x2a604629, 0x00ad0b81, 0x00ad0ba1 },
+   { 0x00800040, 0x2a804629, 0x00ad0ba1, 0x00ad0bc1 },
+   { 0x00800040, 0x2aa04629, 0x00ad0bc1, 0x00ad0be1 },
+   { 0x00800040, 0x2a404529, 0x00ad0a40, 0x00ad0b62 },
+   { 0x00800040, 0x2a604529, 0x00ad0a60, 0x00ad0b82 },
+   { 0x00800040, 0x2a804529, 0x00ad0a80, 0x00ad0ba2 },
+   { 0x00800040, 0x2aa04529, 0x00ad0aa0, 0x00ad0bc2 },
+   { 0x00800040, 0x2a404529, 0x00ad0a40, 0x00ad0b82 },
+   { 0x00800040, 0x2a604529, 0x00ad0a60, 0x00ad0ba2 },
+   { 0x00800040, 0x2a804529, 0x00ad0a80, 0x00ad0bc2 },
+   { 0x00800040, 0x2aa04529, 0x00ad0aa0, 0x00ad0be2 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000031 },
+   { 0x00800040, 0x29c04629, 0x00ad0ac2, 0x00ad0ae2 },
+   { 0x00800040, 0x29e04629, 0x00ad0ae2, 0x00ad0b02 },
+   { 0x00800040, 0x2a004629, 0x00ad0b02, 0x00ad0b22 },
+   { 0x00800040, 0x2a204629, 0x00ad0b22, 0x00ad0b42 },
+   { 0x00800040, 0x29c04529, 0x00ad09c0, 0x00ad0ac3 },
+   { 0x00800040, 0x29e04529, 0x00ad09e0, 0x00ad0ae3 },
+   { 0x00800040, 0x2a004529, 0x00ad0a00, 0x00ad0b03 },
+   { 0x00800040, 0x2a204529, 0x00ad0a20, 0x00ad0b23 },
+   { 0x00800040, 0x29c04529, 0x00ad09c0, 0x00ad0ae3 },
+   { 0x00800040, 0x29e04529, 0x00ad09e0, 0x00ad0b03 },
+   { 0x00800040, 0x2a004529, 0x00ad0a00, 0x00ad0b23 },
+   { 0x00800040, 0x2a204529, 0x00ad0a20, 0x00ad0b43 },
+   { 0x00800040, 0x2a404629, 0x00ad0b62, 0x00ad0b82 },
+   { 0x00800040, 0x2a604629, 0x00ad0b82, 0x00ad0ba2 },
+   { 0x00800040, 0x2a804629, 0x00ad0ba2, 0x00ad0bc2 },
+   { 0x00800040, 0x2aa04629, 0x00ad0bc2, 0x00ad0be2 },
+   { 0x00800040, 0x2a404529, 0x00ad0a40, 0x00ad0b63 },
+   { 0x00800040, 0x2a604529, 0x00ad0a60, 0x00ad0b83 },
+   { 0x00800040, 0x2a804529, 0x00ad0a80, 0x00ad0ba3 },
+   { 0x00800040, 0x2aa04529, 0x00ad0aa0, 0x00ad0bc3 },
+   { 0x00800040, 0x2a404529, 0x00ad0a40, 0x00ad0b83 },
+   { 0x00800040, 0x2a604529, 0x00ad0a60, 0x00ad0ba3 },
+   { 0x00800040, 0x2a804529, 0x00ad0a80, 0x00ad0bc3 },
+   { 0x00800040, 0x2aa04529, 0x00ad0aa0, 0x00ad0be3 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000018 },
+   { 0x00800040, 0x29c04629, 0x00ad0ac3, 0x00ad0ae3 },
+   { 0x00800040, 0x29e04629, 0x00ad0ae3, 0x00ad0b03 },
+   { 0x00800040, 0x2a004629, 0x00ad0b03, 0x00ad0b23 },
+   { 0x00800040, 0x2a204629, 0x00ad0b23, 0x00ad0b43 },
+   { 0x00800040, 0x29c04529, 0x00ad09c0, 0x00ad0ac4 },
+   { 0x00800040, 0x29e04529, 0x00ad09e0, 0x00ad0ae4 },
+   { 0x00800040, 0x2a004529, 0x00ad0a00, 0x00ad0b04 },
+   { 0x00800040, 0x2a204529, 0x00ad0a20, 0x00ad0b24 },
+   { 0x00800040, 0x29c04529, 0x00ad09c0, 0x00ad0ae4 },
+   { 0x00800040, 0x29e04529, 0x00ad09e0, 0x00ad0b04 },
+   { 0x00800040, 0x2a004529, 0x00ad0a00, 0x00ad0b24 },
+   { 0x00800040, 0x2a204529, 0x00ad0a20, 0x00ad0b44 },
+   { 0x00800040, 0x2a404629, 0x00ad0b63, 0x00ad0b83 },
+   { 0x00800040, 0x2a604629, 0x00ad0b83, 0x00ad0ba3 },
+   { 0x00800040, 0x2a804629, 0x00ad0ba3, 0x00ad0bc3 },
+   { 0x00800040, 0x2aa04629, 0x00ad0bc3, 0x00ad0be3 },
+   { 0x00800040, 0x2a404529, 0x00ad0a40, 0x00ad0b64 },
+   { 0x00800040, 0x2a604529, 0x00ad0a60, 0x00ad0b84 },
+   { 0x00800040, 0x2a804529, 0x00ad0a80, 0x00ad0ba4 },
+   { 0x00800040, 0x2aa04529, 0x00ad0aa0, 0x00ad0bc4 },
+   { 0x00800040, 0x2a404529, 0x00ad0a40, 0x00ad0b84 },
+   { 0x00800040, 0x2a604529, 0x00ad0a60, 0x00ad0ba4 },
+   { 0x00800040, 0x2a804529, 0x00ad0a80, 0x00ad0bc4 },
+   { 0x00800040, 0x2aa04529, 0x00ad0aa0, 0x00ad0be4 },
+   { 0x80800008, 0x29c02d29, 0x00b109c0, 0x00020002 },
+   { 0x80800008, 0x29e02d29, 0x00b109e0, 0x00020002 },
+   { 0x80800008, 0x2a002d29, 0x00b10a00, 0x00020002 },
+   { 0x80800008, 0x2a202d29, 0x00b10a20, 0x00020002 },
+   { 0x80800008, 0x2a402d29, 0x00b10a40, 0x00020002 },
+   { 0x80800008, 0x2a602d29, 0x00b10a60, 0x00020002 },
+   { 0x80800008, 0x2a802d29, 0x00b10a80, 0x00020002 },
+   { 0x80800008, 0x2aa02d29, 0x00b10aa0, 0x00020002 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000082 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0007000f },
+   { 0x00800031, 0x2ac01d29, 0x00ad0e60, 0x0414a005 },
+   { 0x00800031, 0x2b601d29, 0x00ad0e60, 0x0414a006 },
+   { 0x00000005, 0x20580c21, 0x00210e60, 0x00000003 },
+   { 0x00000041, 0x20580c21, 0x00210058, 0x00000009 },
+   { 0x00000020, 0x34001400, 0x00001400, 0x00210058 },
+   { 0x80800042, 0x29c04629, 0x00ad0ac0, 0x00ad0ac1 },
+   { 0x80800042, 0x29e04629, 0x00ad0ae0, 0x00ad0ae1 },
+   { 0x80800042, 0x2a004629, 0x00ad0b00, 0x00ad0b01 },
+   { 0x80800042, 0x2a204629, 0x00ad0b20, 0x00ad0b21 },
+   { 0x80800042, 0x2a404629, 0x00ad0b60, 0x00ad0b61 },
+   { 0x80800042, 0x2a604629, 0x00ad0b80, 0x00ad0b81 },
+   { 0x80800042, 0x2a804629, 0x00ad0ba0, 0x00ad0ba1 },
+   { 0x80800042, 0x2aa04629, 0x00ad0bc0, 0x00ad0bc1 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x0000001a },
+   { 0x80800042, 0x29c04629, 0x00ad0ac1, 0x00ad0ac2 },
+   { 0x80800042, 0x29e04629, 0x00ad0ae1, 0x00ad0ae2 },
+   { 0x80800042, 0x2a004629, 0x00ad0b01, 0x00ad0b02 },
+   { 0x80800042, 0x2a204629, 0x00ad0b21, 0x00ad0b22 },
+   { 0x80800042, 0x2a404629, 0x00ad0b61, 0x00ad0b62 },
+   { 0x80800042, 0x2a604629, 0x00ad0b81, 0x00ad0b82 },
+   { 0x80800042, 0x2a804629, 0x00ad0ba1, 0x00ad0ba2 },
+   { 0x80800042, 0x2aa04629, 0x00ad0bc1, 0x00ad0bc2 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000011 },
+   { 0x80800042, 0x29c04629, 0x00ad0ac2, 0x00ad0ac3 },
+   { 0x80800042, 0x29e04629, 0x00ad0ae2, 0x00ad0ae3 },
+   { 0x80800042, 0x2a004629, 0x00ad0b02, 0x00ad0b03 },
+   { 0x80800042, 0x2a204629, 0x00ad0b22, 0x00ad0b23 },
+   { 0x80800042, 0x2a404629, 0x00ad0b62, 0x00ad0b63 },
+   { 0x80800042, 0x2a604629, 0x00ad0b82, 0x00ad0b83 },
+   { 0x80800042, 0x2a804629, 0x00ad0ba2, 0x00ad0ba3 },
+   { 0x80800042, 0x2aa04629, 0x00ad0bc2, 0x00ad0bc3 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000008 },
+   { 0x80800042, 0x29c04629, 0x00ad0ac3, 0x00ad0ac4 },
+   { 0x80800042, 0x29e04629, 0x00ad0ae3, 0x00ad0ae4 },
+   { 0x80800042, 0x2a004629, 0x00ad0b03, 0x00ad0b04 },
+   { 0x80800042, 0x2a204629, 0x00ad0b23, 0x00ad0b24 },
+   { 0x80800042, 0x2a404629, 0x00ad0b63, 0x00ad0b64 },
+   { 0x80800042, 0x2a604629, 0x00ad0b83, 0x00ad0b84 },
+   { 0x80800042, 0x2a804629, 0x00ad0ba3, 0x00ad0ba4 },
+   { 0x80800042, 0x2aa04629, 0x00ad0bc3, 0x00ad0bc4 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000058 },
+   { 0x01000005, 0x20002d3c, 0x00210030, 0x00020002 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x0000002d },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0007000f },
+   { 0x00800031, 0x2ac01d29, 0x00ad0e60, 0x0414a005 },
+   { 0x00800031, 0x2b601d29, 0x00ad0e60, 0x0414a006 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0000000f },
+   { 0x00800031, 0x2b401d29, 0x00ad0e60, 0x0411a005 },
+   { 0x00800031, 0x2be01d29, 0x00ad0e60, 0x0411a006 },
+   { 0x00000005, 0x20580c21, 0x00210e60, 0x00000003 },
+   { 0x00000041, 0x20580c21, 0x00210058, 0x00000009 },
+   { 0x00000020, 0x34001400, 0x00001400, 0x00210058 },
+   { 0x80800042, 0x29c04629, 0x00ad0ac0, 0x00ad0ae0 },
+   { 0x80800042, 0x29e04629, 0x00ad0ae0, 0x00ad0b00 },
+   { 0x80800042, 0x2a004629, 0x00ad0b00, 0x00ad0b20 },
+   { 0x80800042, 0x2a204629, 0x00ad0b20, 0x00ad0b40 },
+   { 0x80800042, 0x2a404629, 0x00ad0b60, 0x00ad0b80 },
+   { 0x80800042, 0x2a604629, 0x00ad0b80, 0x00ad0ba0 },
+   { 0x80800042, 0x2a804629, 0x00ad0ba0, 0x00ad0bc0 },
+   { 0x80800042, 0x2aa04629, 0x00ad0bc0, 0x00ad0be0 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x0000001a },
+   { 0x80800042, 0x29c04629, 0x00ad0ac1, 0x00ad0ae1 },
+   { 0x80800042, 0x29e04629, 0x00ad0ae1, 0x00ad0b01 },
+   { 0x80800042, 0x2a004629, 0x00ad0b01, 0x00ad0b21 },
+   { 0x80800042, 0x2a204629, 0x00ad0b21, 0x00ad0b41 },
+   { 0x80800042, 0x2a404629, 0x00ad0b61, 0x00ad0b81 },
+   { 0x80800042, 0x2a604629, 0x00ad0b81, 0x00ad0ba1 },
+   { 0x80800042, 0x2a804629, 0x00ad0ba1, 0x00ad0bc1 },
+   { 0x80800042, 0x2aa04629, 0x00ad0bc1, 0x00ad0be1 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000011 },
+   { 0x80800042, 0x29c04629, 0x00ad0ac2, 0x00ad0ae2 },
+   { 0x80800042, 0x29e04629, 0x00ad0ae2, 0x00ad0b02 },
+   { 0x80800042, 0x2a004629, 0x00ad0b02, 0x00ad0b22 },
+   { 0x80800042, 0x2a204629, 0x00ad0b22, 0x00ad0b42 },
+   { 0x80800042, 0x2a404629, 0x00ad0b62, 0x00ad0b82 },
+   { 0x80800042, 0x2a604629, 0x00ad0b82, 0x00ad0ba2 },
+   { 0x80800042, 0x2a804629, 0x00ad0ba2, 0x00ad0bc2 },
+   { 0x80800042, 0x2aa04629, 0x00ad0bc2, 0x00ad0be2 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000008 },
+   { 0x80800042, 0x29c04629, 0x00ad0ac3, 0x00ad0ac3 },
+   { 0x80800042, 0x29e04629, 0x00ad0ae3, 0x00ad0ae3 },
+   { 0x80800042, 0x2a004629, 0x00ad0b03, 0x00ad0b03 },
+   { 0x80800042, 0x2a204629, 0x00ad0b23, 0x00ad0b23 },
+   { 0x80800042, 0x2a404629, 0x00ad0b63, 0x00ad0b63 },
+   { 0x80800042, 0x2a604629, 0x00ad0b83, 0x00ad0b83 },
+   { 0x80800042, 0x2a804629, 0x00ad0ba3, 0x00ad0ba3 },
+   { 0x80800042, 0x2aa04629, 0x00ad0bc3, 0x00ad0bc3 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000029 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0007000f },
+   { 0x00800031, 0x2ac01d29, 0x00ad0e60, 0x0414a005 },
+   { 0x00800031, 0x2b601d29, 0x00ad0e60, 0x0414a006 },
+   { 0x00000005, 0x20580c21, 0x00210e60, 0x00000003 },
+   { 0x00000041, 0x20580c21, 0x00210058, 0x00000009 },
+   { 0x00000020, 0x34001400, 0x00001400, 0x00210058 },
+   { 0x00800001, 0x29c00229, 0x00ad0ac0, 0x00000000 },
+   { 0x00800001, 0x29e00229, 0x00ad0ae0, 0x00000000 },
+   { 0x00800001, 0x2a000229, 0x00ad0b00, 0x00000000 },
+   { 0x00800001, 0x2a200229, 0x00ad0b20, 0x00000000 },
+   { 0x00800001, 0x2a400229, 0x00ad0b60, 0x00000000 },
+   { 0x00800001, 0x2a600229, 0x00ad0b80, 0x00000000 },
+   { 0x00800001, 0x2a800229, 0x00ad0ba0, 0x00000000 },
+   { 0x00800001, 0x2aa00229, 0x00ad0bc0, 0x00000000 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x0000001a },
+   { 0x00800001, 0x29c00229, 0x00ad0ac1, 0x00000000 },
+   { 0x00800001, 0x29e00229, 0x00ad0ae1, 0x00000000 },
+   { 0x00800001, 0x2a000229, 0x00ad0b01, 0x00000000 },
+   { 0x00800001, 0x2a200229, 0x00ad0b21, 0x00000000 },
+   { 0x00800001, 0x2a400229, 0x00ad0b61, 0x00000000 },
+   { 0x00800001, 0x2a600229, 0x00ad0b81, 0x00000000 },
+   { 0x00800001, 0x2a800229, 0x00ad0ba1, 0x00000000 },
+   { 0x00800001, 0x2aa00229, 0x00ad0bc1, 0x00000000 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000011 },
+   { 0x00800001, 0x29c00229, 0x00ad0ac2, 0x00000000 },
+   { 0x00800001, 0x29e00229, 0x00ad0ae2, 0x00000000 },
+   { 0x00800001, 0x2a000229, 0x00ad0b02, 0x00000000 },
+   { 0x00800001, 0x2a200229, 0x00ad0b22, 0x00000000 },
+   { 0x00800001, 0x2a400229, 0x00ad0b62, 0x00000000 },
+   { 0x00800001, 0x2a600229, 0x00ad0b82, 0x00000000 },
+   { 0x00800001, 0x2a800229, 0x00ad0ba2, 0x00000000 },
+   { 0x00800001, 0x2aa00229, 0x00ad0bc2, 0x00000000 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000008 },
+   { 0x00800001, 0x29c00229, 0x00ad0ac3, 0x00000000 },
+   { 0x00800001, 0x29e00229, 0x00ad0ae3, 0x00000000 },
+   { 0x00800001, 0x2a000229, 0x00ad0b03, 0x00000000 },
+   { 0x00800001, 0x2a200229, 0x00ad0b23, 0x00000000 },
+   { 0x00800001, 0x2a400229, 0x00ad0b63, 0x00000000 },
+   { 0x00800001, 0x2a600229, 0x00ad0b83, 0x00000000 },
+   { 0x00800001, 0x2a800229, 0x00ad0ba3, 0x00000000 },
+   { 0x00800001, 0x2aa00229, 0x00ad0bc3, 0x00000000 },
+   { 0x00600001, 0x28800129, 0x008d09c0, 0x00000000 },
+   { 0x00600001, 0x28a00129, 0x008d09e0, 0x00000000 },
+   { 0x00600001, 0x28c00129, 0x008d0a00, 0x00000000 },
+   { 0x00600001, 0x28e00129, 0x008d0a20, 0x00000000 },
+   { 0x00600001, 0x29000129, 0x008d0a40, 0x00000000 },
+   { 0x00600001, 0x29200129, 0x008d0a60, 0x00000000 },
+   { 0x00600001, 0x29400129, 0x008d0a80, 0x00000000 },
+   { 0x00600001, 0x29600129, 0x008d0aa0, 0x00000000 },
+   { 0x0020000c, 0x2e6e3dad, 0x00450036, 0x00020002 },
+   { 0x0020000c, 0x2e601ca5, 0x00450e80, 0x00000001 },
+   { 0x00200040, 0x2e6034a5, 0x00450e60, 0x00450e6e },
+   { 0x00000005, 0x2e640c21, 0x00210e64, 0xfffffffe },
+   { 0x02000005, 0x20002e3c, 0x0021003f, 0x00040004 },
+   { 0x00010040, 0x2e640c21, 0x00210e64, 0x00000001 },
+   { 0x01000005, 0x20002d3c, 0x00210038, 0x00020002 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x000000a2 },
+   { 0x01000005, 0x20002d3c, 0x0021003a, 0x00020002 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x00000076 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0007000f },
+   { 0x00800031, 0x2ac01d29, 0x00ad0e60, 0x0414a005 },
+   { 0x00800031, 0x2b601d29, 0x00ad0e60, 0x0414a006 },
+   { 0x00000005, 0x20580c21, 0x00210e60, 0x00000003 },
+   { 0x00000041, 0x20580c21, 0x00210058, 0x00000019 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0001000f },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 },
+   { 0x00800031, 0x2b401d29, 0x00ad0e60, 0x0411a005 },
+   { 0x00800031, 0x2be01d29, 0x00ad0e60, 0x0411a006 },
+   { 0x00000020, 0x34001400, 0x00001400, 0x00210058 },
+   { 0x00800040, 0x29c04629, 0x00ad0ac0, 0x00ad0ae0 },
+   { 0x00800040, 0x29e04629, 0x00ad0ae0, 0x00ad0b00 },
+   { 0x00800040, 0x2a004629, 0x00ad0b00, 0x00ad0b20 },
+   { 0x00800040, 0x2a204629, 0x00ad0b20, 0x00ad0b40 },
+   { 0x00800040, 0x29c04529, 0x00ad09c0, 0x00ad0ac1 },
+   { 0x00800040, 0x29e04529, 0x00ad09e0, 0x00ad0ae1 },
+   { 0x00800040, 0x2a004529, 0x00ad0a00, 0x00ad0b01 },
+   { 0x00800040, 0x2a204529, 0x00ad0a20, 0x00ad0b21 },
+   { 0x00800040, 0x29c04529, 0x00ad09c0, 0x00ad0ae1 },
+   { 0x00800040, 0x29e04529, 0x00ad09e0, 0x00ad0b01 },
+   { 0x00800040, 0x2a004529, 0x00ad0a00, 0x00ad0b21 },
+   { 0x00800040, 0x2a204529, 0x00ad0a20, 0x00ad0b41 },
+   { 0x00800040, 0x2a404629, 0x00ad0b60, 0x00ad0b80 },
+   { 0x00800040, 0x2a604629, 0x00ad0b80, 0x00ad0ba0 },
+   { 0x00800040, 0x2a804629, 0x00ad0ba0, 0x00ad0bc0 },
+   { 0x00800040, 0x2aa04629, 0x00ad0bc0, 0x00ad0be0 },
+   { 0x00800040, 0x2a404529, 0x00ad0a40, 0x00ad0b61 },
+   { 0x00800040, 0x2a604529, 0x00ad0a60, 0x00ad0b81 },
+   { 0x00800040, 0x2a804529, 0x00ad0a80, 0x00ad0ba1 },
+   { 0x00800040, 0x2aa04529, 0x00ad0aa0, 0x00ad0bc1 },
+   { 0x00800040, 0x2a404529, 0x00ad0a40, 0x00ad0b81 },
+   { 0x00800040, 0x2a604529, 0x00ad0a60, 0x00ad0ba1 },
+   { 0x00800040, 0x2a804529, 0x00ad0a80, 0x00ad0bc1 },
+   { 0x00800040, 0x2aa04529, 0x00ad0aa0, 0x00ad0be1 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x0000004a },
+   { 0x00800040, 0x29c04629, 0x00ad0ac1, 0x00ad0ae1 },
+   { 0x00800040, 0x29e04629, 0x00ad0ae1, 0x00ad0b01 },
+   { 0x00800040, 0x2a004629, 0x00ad0b01, 0x00ad0b21 },
+   { 0x00800040, 0x2a204629, 0x00ad0b21, 0x00ad0b41 },
+   { 0x00800040, 0x29c04529, 0x00ad09c0, 0x00ad0ac2 },
+   { 0x00800040, 0x29e04529, 0x00ad09e0, 0x00ad0ae2 },
+   { 0x00800040, 0x2a004529, 0x00ad0a00, 0x00ad0b02 },
+   { 0x00800040, 0x2a204529, 0x00ad0a20, 0x00ad0b22 },
+   { 0x00800040, 0x29c04529, 0x00ad09c0, 0x00ad0ae2 },
+   { 0x00800040, 0x29e04529, 0x00ad09e0, 0x00ad0b02 },
+   { 0x00800040, 0x2a004529, 0x00ad0a00, 0x00ad0b22 },
+   { 0x00800040, 0x2a204529, 0x00ad0a20, 0x00ad0b42 },
+   { 0x00800040, 0x2a404629, 0x00ad0b61, 0x00ad0b81 },
+   { 0x00800040, 0x2a604629, 0x00ad0b81, 0x00ad0ba1 },
+   { 0x00800040, 0x2a804629, 0x00ad0ba1, 0x00ad0bc1 },
+   { 0x00800040, 0x2aa04629, 0x00ad0bc1, 0x00ad0be1 },
+   { 0x00800040, 0x2a404529, 0x00ad0a40, 0x00ad0b62 },
+   { 0x00800040, 0x2a604529, 0x00ad0a60, 0x00ad0b82 },
+   { 0x00800040, 0x2a804529, 0x00ad0a80, 0x00ad0ba2 },
+   { 0x00800040, 0x2aa04529, 0x00ad0aa0, 0x00ad0bc2 },
+   { 0x00800040, 0x2a404529, 0x00ad0a40, 0x00ad0b82 },
+   { 0x00800040, 0x2a604529, 0x00ad0a60, 0x00ad0ba2 },
+   { 0x00800040, 0x2a804529, 0x00ad0a80, 0x00ad0bc2 },
+   { 0x00800040, 0x2aa04529, 0x00ad0aa0, 0x00ad0be2 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000031 },
+   { 0x00800040, 0x29c04629, 0x00ad0ac2, 0x00ad0ae2 },
+   { 0x00800040, 0x29e04629, 0x00ad0ae2, 0x00ad0b02 },
+   { 0x00800040, 0x2a004629, 0x00ad0b02, 0x00ad0b22 },
+   { 0x00800040, 0x2a204629, 0x00ad0b22, 0x00ad0b42 },
+   { 0x00800040, 0x29c04529, 0x00ad09c0, 0x00ad0ac3 },
+   { 0x00800040, 0x29e04529, 0x00ad09e0, 0x00ad0ae3 },
+   { 0x00800040, 0x2a004529, 0x00ad0a00, 0x00ad0b03 },
+   { 0x00800040, 0x2a204529, 0x00ad0a20, 0x00ad0b23 },
+   { 0x00800040, 0x29c04529, 0x00ad09c0, 0x00ad0ae3 },
+   { 0x00800040, 0x29e04529, 0x00ad09e0, 0x00ad0b03 },
+   { 0x00800040, 0x2a004529, 0x00ad0a00, 0x00ad0b23 },
+   { 0x00800040, 0x2a204529, 0x00ad0a20, 0x00ad0b43 },
+   { 0x00800040, 0x2a404629, 0x00ad0b62, 0x00ad0b82 },
+   { 0x00800040, 0x2a604629, 0x00ad0b82, 0x00ad0ba2 },
+   { 0x00800040, 0x2a804629, 0x00ad0ba2, 0x00ad0bc2 },
+   { 0x00800040, 0x2aa04629, 0x00ad0bc2, 0x00ad0be2 },
+   { 0x00800040, 0x2a404529, 0x00ad0a40, 0x00ad0b63 },
+   { 0x00800040, 0x2a604529, 0x00ad0a60, 0x00ad0b83 },
+   { 0x00800040, 0x2a804529, 0x00ad0a80, 0x00ad0ba3 },
+   { 0x00800040, 0x2aa04529, 0x00ad0aa0, 0x00ad0bc3 },
+   { 0x00800040, 0x2a404529, 0x00ad0a40, 0x00ad0b83 },
+   { 0x00800040, 0x2a604529, 0x00ad0a60, 0x00ad0ba3 },
+   { 0x00800040, 0x2a804529, 0x00ad0a80, 0x00ad0bc3 },
+   { 0x00800040, 0x2aa04529, 0x00ad0aa0, 0x00ad0be3 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000018 },
+   { 0x00800040, 0x29c04629, 0x00ad0ac3, 0x00ad0ae3 },
+   { 0x00800040, 0x29e04629, 0x00ad0ae3, 0x00ad0b03 },
+   { 0x00800040, 0x2a004629, 0x00ad0b03, 0x00ad0b23 },
+   { 0x00800040, 0x2a204629, 0x00ad0b23, 0x00ad0b43 },
+   { 0x00800040, 0x29c04529, 0x00ad09c0, 0x00ad0ac4 },
+   { 0x00800040, 0x29e04529, 0x00ad09e0, 0x00ad0ae4 },
+   { 0x00800040, 0x2a004529, 0x00ad0a00, 0x00ad0b04 },
+   { 0x00800040, 0x2a204529, 0x00ad0a20, 0x00ad0b24 },
+   { 0x00800040, 0x29c04529, 0x00ad09c0, 0x00ad0ae4 },
+   { 0x00800040, 0x29e04529, 0x00ad09e0, 0x00ad0b04 },
+   { 0x00800040, 0x2a004529, 0x00ad0a00, 0x00ad0b24 },
+   { 0x00800040, 0x2a204529, 0x00ad0a20, 0x00ad0b44 },
+   { 0x00800040, 0x2a404629, 0x00ad0b63, 0x00ad0b83 },
+   { 0x00800040, 0x2a604629, 0x00ad0b83, 0x00ad0ba3 },
+   { 0x00800040, 0x2a804629, 0x00ad0ba3, 0x00ad0bc3 },
+   { 0x00800040, 0x2aa04629, 0x00ad0bc3, 0x00ad0be3 },
+   { 0x00800040, 0x2a404529, 0x00ad0a40, 0x00ad0b64 },
+   { 0x00800040, 0x2a604529, 0x00ad0a60, 0x00ad0b84 },
+   { 0x00800040, 0x2a804529, 0x00ad0a80, 0x00ad0ba4 },
+   { 0x00800040, 0x2aa04529, 0x00ad0aa0, 0x00ad0bc4 },
+   { 0x00800040, 0x2a404529, 0x00ad0a40, 0x00ad0b84 },
+   { 0x00800040, 0x2a604529, 0x00ad0a60, 0x00ad0ba4 },
+   { 0x00800040, 0x2a804529, 0x00ad0a80, 0x00ad0bc4 },
+   { 0x00800040, 0x2aa04529, 0x00ad0aa0, 0x00ad0be4 },
+   { 0x80800008, 0x29c02d29, 0x00b109c0, 0x00020002 },
+   { 0x80800008, 0x29e02d29, 0x00b109e0, 0x00020002 },
+   { 0x80800008, 0x2a002d29, 0x00b10a00, 0x00020002 },
+   { 0x80800008, 0x2a202d29, 0x00b10a20, 0x00020002 },
+   { 0x80800008, 0x2a402d29, 0x00b10a40, 0x00020002 },
+   { 0x80800008, 0x2a602d29, 0x00b10a60, 0x00020002 },
+   { 0x80800008, 0x2a802d29, 0x00b10a80, 0x00020002 },
+   { 0x80800008, 0x2aa02d29, 0x00b10aa0, 0x00020002 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000082 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0007000f },
+   { 0x00800031, 0x2ac01d29, 0x00ad0e60, 0x0414a005 },
+   { 0x00800031, 0x2b601d29, 0x00ad0e60, 0x0414a006 },
+   { 0x00000005, 0x20580c21, 0x00210e60, 0x00000003 },
+   { 0x00000041, 0x20580c21, 0x00210058, 0x00000009 },
+   { 0x00000020, 0x34001400, 0x00001400, 0x00210058 },
+   { 0x80800042, 0x29c04629, 0x00ad0ac0, 0x00ad0ac1 },
+   { 0x80800042, 0x29e04629, 0x00ad0ae0, 0x00ad0ae1 },
+   { 0x80800042, 0x2a004629, 0x00ad0b00, 0x00ad0b01 },
+   { 0x80800042, 0x2a204629, 0x00ad0b20, 0x00ad0b21 },
+   { 0x80800042, 0x2a404629, 0x00ad0b60, 0x00ad0b61 },
+   { 0x80800042, 0x2a604629, 0x00ad0b80, 0x00ad0b81 },
+   { 0x80800042, 0x2a804629, 0x00ad0ba0, 0x00ad0ba1 },
+   { 0x80800042, 0x2aa04629, 0x00ad0bc0, 0x00ad0bc1 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x0000001a },
+   { 0x80800042, 0x29c04629, 0x00ad0ac1, 0x00ad0ac2 },
+   { 0x80800042, 0x29e04629, 0x00ad0ae1, 0x00ad0ae2 },
+   { 0x80800042, 0x2a004629, 0x00ad0b01, 0x00ad0b02 },
+   { 0x80800042, 0x2a204629, 0x00ad0b21, 0x00ad0b22 },
+   { 0x80800042, 0x2a404629, 0x00ad0b61, 0x00ad0b62 },
+   { 0x80800042, 0x2a604629, 0x00ad0b81, 0x00ad0b82 },
+   { 0x80800042, 0x2a804629, 0x00ad0ba1, 0x00ad0ba2 },
+   { 0x80800042, 0x2aa04629, 0x00ad0bc1, 0x00ad0bc2 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000011 },
+   { 0x80800042, 0x29c04629, 0x00ad0ac2, 0x00ad0ac3 },
+   { 0x80800042, 0x29e04629, 0x00ad0ae2, 0x00ad0ae3 },
+   { 0x80800042, 0x2a004629, 0x00ad0b02, 0x00ad0b03 },
+   { 0x80800042, 0x2a204629, 0x00ad0b22, 0x00ad0b23 },
+   { 0x80800042, 0x2a404629, 0x00ad0b62, 0x00ad0b63 },
+   { 0x80800042, 0x2a604629, 0x00ad0b82, 0x00ad0b83 },
+   { 0x80800042, 0x2a804629, 0x00ad0ba2, 0x00ad0ba3 },
+   { 0x80800042, 0x2aa04629, 0x00ad0bc2, 0x00ad0bc3 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000008 },
+   { 0x80800042, 0x29c04629, 0x00ad0ac3, 0x00ad0ac4 },
+   { 0x80800042, 0x29e04629, 0x00ad0ae3, 0x00ad0ae4 },
+   { 0x80800042, 0x2a004629, 0x00ad0b03, 0x00ad0b04 },
+   { 0x80800042, 0x2a204629, 0x00ad0b23, 0x00ad0b24 },
+   { 0x80800042, 0x2a404629, 0x00ad0b63, 0x00ad0b64 },
+   { 0x80800042, 0x2a604629, 0x00ad0b83, 0x00ad0b84 },
+   { 0x80800042, 0x2a804629, 0x00ad0ba3, 0x00ad0ba4 },
+   { 0x80800042, 0x2aa04629, 0x00ad0bc3, 0x00ad0bc4 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000058 },
+   { 0x01000005, 0x20002d3c, 0x0021003a, 0x00020002 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x0000002d },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0007000f },
+   { 0x00800031, 0x2ac01d29, 0x00ad0e60, 0x0414a005 },
+   { 0x00800031, 0x2b601d29, 0x00ad0e60, 0x0414a006 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0000000f },
+   { 0x00800031, 0x2b401d29, 0x00ad0e60, 0x0411a005 },
+   { 0x00800031, 0x2be01d29, 0x00ad0e60, 0x0411a006 },
+   { 0x00000005, 0x20580c21, 0x00210e60, 0x00000003 },
+   { 0x00000041, 0x20580c21, 0x00210058, 0x00000009 },
+   { 0x00000020, 0x34001400, 0x00001400, 0x00210058 },
+   { 0x80800042, 0x29c04629, 0x00ad0ac0, 0x00ad0ae0 },
+   { 0x80800042, 0x29e04629, 0x00ad0ae0, 0x00ad0b00 },
+   { 0x80800042, 0x2a004629, 0x00ad0b00, 0x00ad0b20 },
+   { 0x80800042, 0x2a204629, 0x00ad0b20, 0x00ad0b40 },
+   { 0x80800042, 0x2a404629, 0x00ad0b60, 0x00ad0b80 },
+   { 0x80800042, 0x2a604629, 0x00ad0b80, 0x00ad0ba0 },
+   { 0x80800042, 0x2a804629, 0x00ad0ba0, 0x00ad0bc0 },
+   { 0x80800042, 0x2aa04629, 0x00ad0bc0, 0x00ad0be0 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x0000001a },
+   { 0x80800042, 0x29c04629, 0x00ad0ac1, 0x00ad0ae1 },
+   { 0x80800042, 0x29e04629, 0x00ad0ae1, 0x00ad0b01 },
+   { 0x80800042, 0x2a004629, 0x00ad0b01, 0x00ad0b21 },
+   { 0x80800042, 0x2a204629, 0x00ad0b21, 0x00ad0b41 },
+   { 0x80800042, 0x2a404629, 0x00ad0b61, 0x00ad0b81 },
+   { 0x80800042, 0x2a604629, 0x00ad0b81, 0x00ad0ba1 },
+   { 0x80800042, 0x2a804629, 0x00ad0ba1, 0x00ad0bc1 },
+   { 0x80800042, 0x2aa04629, 0x00ad0bc1, 0x00ad0be1 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000011 },
+   { 0x80800042, 0x29c04629, 0x00ad0ac2, 0x00ad0ae2 },
+   { 0x80800042, 0x29e04629, 0x00ad0ae2, 0x00ad0b02 },
+   { 0x80800042, 0x2a004629, 0x00ad0b02, 0x00ad0b22 },
+   { 0x80800042, 0x2a204629, 0x00ad0b22, 0x00ad0b42 },
+   { 0x80800042, 0x2a404629, 0x00ad0b62, 0x00ad0b82 },
+   { 0x80800042, 0x2a604629, 0x00ad0b82, 0x00ad0ba2 },
+   { 0x80800042, 0x2a804629, 0x00ad0ba2, 0x00ad0bc2 },
+   { 0x80800042, 0x2aa04629, 0x00ad0bc2, 0x00ad0be2 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000008 },
+   { 0x80800042, 0x29c04629, 0x00ad0ac3, 0x00ad0ac3 },
+   { 0x80800042, 0x29e04629, 0x00ad0ae3, 0x00ad0ae3 },
+   { 0x80800042, 0x2a004629, 0x00ad0b03, 0x00ad0b03 },
+   { 0x80800042, 0x2a204629, 0x00ad0b23, 0x00ad0b23 },
+   { 0x80800042, 0x2a404629, 0x00ad0b63, 0x00ad0b63 },
+   { 0x80800042, 0x2a604629, 0x00ad0b83, 0x00ad0b83 },
+   { 0x80800042, 0x2a804629, 0x00ad0ba3, 0x00ad0ba3 },
+   { 0x80800042, 0x2aa04629, 0x00ad0bc3, 0x00ad0bc3 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000029 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0007000f },
+   { 0x00800031, 0x2ac01d29, 0x00ad0e60, 0x0414a005 },
+   { 0x00800031, 0x2b601d29, 0x00ad0e60, 0x0414a006 },
+   { 0x00000005, 0x20580c21, 0x00210e60, 0x00000003 },
+   { 0x00000041, 0x20580c21, 0x00210058, 0x00000009 },
+   { 0x00000020, 0x34001400, 0x00001400, 0x00210058 },
+   { 0x00800001, 0x29c00229, 0x00ad0ac0, 0x00000000 },
+   { 0x00800001, 0x29e00229, 0x00ad0ae0, 0x00000000 },
+   { 0x00800001, 0x2a000229, 0x00ad0b00, 0x00000000 },
+   { 0x00800001, 0x2a200229, 0x00ad0b20, 0x00000000 },
+   { 0x00800001, 0x2a400229, 0x00ad0b60, 0x00000000 },
+   { 0x00800001, 0x2a600229, 0x00ad0b80, 0x00000000 },
+   { 0x00800001, 0x2a800229, 0x00ad0ba0, 0x00000000 },
+   { 0x00800001, 0x2aa00229, 0x00ad0bc0, 0x00000000 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x0000001a },
+   { 0x00800001, 0x29c00229, 0x00ad0ac1, 0x00000000 },
+   { 0x00800001, 0x29e00229, 0x00ad0ae1, 0x00000000 },
+   { 0x00800001, 0x2a000229, 0x00ad0b01, 0x00000000 },
+   { 0x00800001, 0x2a200229, 0x00ad0b21, 0x00000000 },
+   { 0x00800001, 0x2a400229, 0x00ad0b61, 0x00000000 },
+   { 0x00800001, 0x2a600229, 0x00ad0b81, 0x00000000 },
+   { 0x00800001, 0x2a800229, 0x00ad0ba1, 0x00000000 },
+   { 0x00800001, 0x2aa00229, 0x00ad0bc1, 0x00000000 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000011 },
+   { 0x00800001, 0x29c00229, 0x00ad0ac2, 0x00000000 },
+   { 0x00800001, 0x29e00229, 0x00ad0ae2, 0x00000000 },
+   { 0x00800001, 0x2a000229, 0x00ad0b02, 0x00000000 },
+   { 0x00800001, 0x2a200229, 0x00ad0b22, 0x00000000 },
+   { 0x00800001, 0x2a400229, 0x00ad0b62, 0x00000000 },
+   { 0x00800001, 0x2a600229, 0x00ad0b82, 0x00000000 },
+   { 0x00800001, 0x2a800229, 0x00ad0ba2, 0x00000000 },
+   { 0x00800001, 0x2aa00229, 0x00ad0bc2, 0x00000000 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000008 },
+   { 0x00800001, 0x29c00229, 0x00ad0ac3, 0x00000000 },
+   { 0x00800001, 0x29e00229, 0x00ad0ae3, 0x00000000 },
+   { 0x00800001, 0x2a000229, 0x00ad0b03, 0x00000000 },
+   { 0x00800001, 0x2a200229, 0x00ad0b23, 0x00000000 },
+   { 0x00800001, 0x2a400229, 0x00ad0b63, 0x00000000 },
+   { 0x00800001, 0x2a600229, 0x00ad0b83, 0x00000000 },
+   { 0x00800001, 0x2a800229, 0x00ad0ba3, 0x00000000 },
+   { 0x00800001, 0x2aa00229, 0x00ad0bc3, 0x00000000 },
+   { 0x00600001, 0x28900129, 0x008d09c0, 0x00000000 },
+   { 0x00600001, 0x28b00129, 0x008d09e0, 0x00000000 },
+   { 0x00600001, 0x28d00129, 0x008d0a00, 0x00000000 },
+   { 0x00600001, 0x28f00129, 0x008d0a20, 0x00000000 },
+   { 0x00600001, 0x29100129, 0x008d0a40, 0x00000000 },
+   { 0x00600001, 0x29300129, 0x008d0a60, 0x00000000 },
+   { 0x00600001, 0x29500129, 0x008d0a80, 0x00000000 },
+   { 0x00600001, 0x29700129, 0x008d0aa0, 0x00000000 },
+   { 0x00600001, 0x20200021, 0x008d0e80, 0x00000000 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0007001f },
+   { 0x00000001, 0x20280061, 0x00000000, 0x0007000f },
+   { 0x0020000c, 0x2e6e3dad, 0x00450032, 0x00010001 },
+   { 0x00200040, 0x2e6034a5, 0x00450e80, 0x00450e6e },
+   { 0x00000005, 0x2e640c21, 0x00210e64, 0xfffffffe },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
+   { 0x02000005, 0x20002e3c, 0x0021003f, 0x00020002 },
+   { 0x00010040, 0x2e641ca5, 0x00210e64, 0x00000001 },
+   { 0x01000005, 0x20002d3c, 0x00210032, 0x00010001 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x000000b1 },
+   { 0x01000005, 0x20002d3c, 0x00210034, 0x00010001 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x0000007d },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
+   { 0x00800031, 0x29c01d29, 0x008d0e60, 0x0411a007 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00800031, 0x2a001d29, 0x008d0e60, 0x0411a007 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00800031, 0x2a401d29, 0x008d0e60, 0x0411a007 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00800031, 0x2a801d29, 0x008d0e60, 0x0411a007 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0007001f },
+   { 0x00800031, 0x2ac01d29, 0x008d0e60, 0x0418a007 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
+   { 0x00800031, 0x2bc01d29, 0x008d0e60, 0x0411a007 },
+   { 0x00000005, 0x20580c21, 0x00210e60, 0x00000003 },
+   { 0x00000041, 0x20580c21, 0x00210058, 0x00000019 },
+   { 0x00000020, 0x34001400, 0x00001400, 0x00210058 },
+   { 0x00800040, 0x2c004629, 0x00b109c0, 0x00b10a00 },
+   { 0x00800040, 0x2c204629, 0x00b10a00, 0x00b10a40 },
+   { 0x00800040, 0x2c404629, 0x00b10a40, 0x00b10a80 },
+   { 0x00800040, 0x2c604629, 0x00b10a80, 0x00b10ac0 },
+   { 0x00800040, 0x2c804629, 0x00b10ac0, 0x00b10b00 },
+   { 0x00800040, 0x2ca04629, 0x00b10b00, 0x00b10b40 },
+   { 0x00800040, 0x2cc04629, 0x00b10b40, 0x00b10b80 },
+   { 0x00800040, 0x2ce04629, 0x00b10b80, 0x00b10bc0 },
+   { 0x00800040, 0x2c004529, 0x00b10c00, 0x00b109c1 },
+   { 0x00800040, 0x2c204529, 0x00b10c20, 0x00b10a01 },
+   { 0x00800040, 0x2c404529, 0x00b10c40, 0x00b10a41 },
+   { 0x00800040, 0x2c604529, 0x00b10c60, 0x00b10a81 },
+   { 0x00800040, 0x2c804529, 0x00b10c80, 0x00b10ac1 },
+   { 0x00800040, 0x2ca04529, 0x00b10ca0, 0x00b10b01 },
+   { 0x00800040, 0x2cc04529, 0x00b10cc0, 0x00b10b41 },
+   { 0x00800040, 0x2ce04529, 0x00b10ce0, 0x00b10b81 },
+   { 0x00800040, 0x2c004529, 0x00b10c00, 0x00b10a01 },
+   { 0x00800040, 0x2c204529, 0x00b10c20, 0x00b10a41 },
+   { 0x00800040, 0x2c404529, 0x00b10c40, 0x00b10a81 },
+   { 0x00800040, 0x2c604529, 0x00b10c60, 0x00b10ac1 },
+   { 0x00800040, 0x2c804529, 0x00b10c80, 0x00b10b01 },
+   { 0x00800040, 0x2ca04529, 0x00b10ca0, 0x00b10b41 },
+   { 0x00800040, 0x2cc04529, 0x00b10cc0, 0x00b10b81 },
+   { 0x00800040, 0x2ce04529, 0x00b10ce0, 0x00b10bc1 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x0000004a },
+   { 0x00800040, 0x2c004629, 0x00b109c1, 0x00b10a01 },
+   { 0x00800040, 0x2c204629, 0x00b10a01, 0x00b10a41 },
+   { 0x00800040, 0x2c404629, 0x00b10a41, 0x00b10a81 },
+   { 0x00800040, 0x2c604629, 0x00b10a81, 0x00b10ac1 },
+   { 0x00800040, 0x2c804629, 0x00b10ac1, 0x00b10b01 },
+   { 0x00800040, 0x2ca04629, 0x00b10b01, 0x00b10b41 },
+   { 0x00800040, 0x2cc04629, 0x00b10b41, 0x00b10b81 },
+   { 0x00800040, 0x2ce04629, 0x00b10b81, 0x00b10bc1 },
+   { 0x00800040, 0x2c004529, 0x00b10c00, 0x00b109c2 },
+   { 0x00800040, 0x2c204529, 0x00b10c20, 0x00b10a02 },
+   { 0x00800040, 0x2c404529, 0x00b10c40, 0x00b10a42 },
+   { 0x00800040, 0x2c604529, 0x00b10c60, 0x00b10a82 },
+   { 0x00800040, 0x2c804529, 0x00b10c80, 0x00b10ac2 },
+   { 0x00800040, 0x2ca04529, 0x00b10ca0, 0x00b10b02 },
+   { 0x00800040, 0x2cc04529, 0x00b10cc0, 0x00b10b42 },
+   { 0x00800040, 0x2ce04529, 0x00b10ce0, 0x00b10b82 },
+   { 0x00800040, 0x2c004529, 0x00b10c00, 0x00b10a02 },
+   { 0x00800040, 0x2c204529, 0x00b10c20, 0x00b10a42 },
+   { 0x00800040, 0x2c404529, 0x00b10c40, 0x00b10a82 },
+   { 0x00800040, 0x2c604529, 0x00b10c60, 0x00b10ac2 },
+   { 0x00800040, 0x2c804529, 0x00b10c80, 0x00b10b02 },
+   { 0x00800040, 0x2ca04529, 0x00b10ca0, 0x00b10b42 },
+   { 0x00800040, 0x2cc04529, 0x00b10cc0, 0x00b10b82 },
+   { 0x00800040, 0x2ce04529, 0x00b10ce0, 0x00b10bc2 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000031 },
+   { 0x00800040, 0x2c004629, 0x00b109c2, 0x00b10a02 },
+   { 0x00800040, 0x2c204629, 0x00b10a02, 0x00b10a42 },
+   { 0x00800040, 0x2c404629, 0x00b10a42, 0x00b10a82 },
+   { 0x00800040, 0x2c604629, 0x00b10a82, 0x00b10ac2 },
+   { 0x00800040, 0x2c804629, 0x00b10ac2, 0x00b10b02 },
+   { 0x00800040, 0x2ca04629, 0x00b10b02, 0x00b10b42 },
+   { 0x00800040, 0x2cc04629, 0x00b10b42, 0x00b10b82 },
+   { 0x00800040, 0x2ce04629, 0x00b10b82, 0x00b10bc2 },
+   { 0x00800040, 0x2c004529, 0x00b10c00, 0x00b109c3 },
+   { 0x00800040, 0x2c204529, 0x00b10c20, 0x00b10a03 },
+   { 0x00800040, 0x2c404529, 0x00b10c40, 0x00b10a43 },
+   { 0x00800040, 0x2c604529, 0x00b10c60, 0x00b10a83 },
+   { 0x00800040, 0x2c804529, 0x00b10c80, 0x00b10ac3 },
+   { 0x00800040, 0x2ca04529, 0x00b10ca0, 0x00b10b03 },
+   { 0x00800040, 0x2cc04529, 0x00b10cc0, 0x00b10b43 },
+   { 0x00800040, 0x2ce04529, 0x00b10ce0, 0x00b10b83 },
+   { 0x00800040, 0x2c004529, 0x00b10c00, 0x00b10a03 },
+   { 0x00800040, 0x2c204529, 0x00b10c20, 0x00b10a43 },
+   { 0x00800040, 0x2c404529, 0x00b10c40, 0x00b10a83 },
+   { 0x00800040, 0x2c604529, 0x00b10c60, 0x00b10ac3 },
+   { 0x00800040, 0x2c804529, 0x00b10c80, 0x00b10b03 },
+   { 0x00800040, 0x2ca04529, 0x00b10ca0, 0x00b10b43 },
+   { 0x00800040, 0x2cc04529, 0x00b10cc0, 0x00b10b83 },
+   { 0x00800040, 0x2ce04529, 0x00b10ce0, 0x00b10bc3 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000018 },
+   { 0x00800040, 0x2c004629, 0x00b109c3, 0x00b10a03 },
+   { 0x00800040, 0x2c204629, 0x00b10a03, 0x00b10a43 },
+   { 0x00800040, 0x2c404629, 0x00b10a43, 0x00b10a83 },
+   { 0x00800040, 0x2c604629, 0x00b10a83, 0x00b10ac3 },
+   { 0x00800040, 0x2c804629, 0x00b10ac3, 0x00b10b03 },
+   { 0x00800040, 0x2ca04629, 0x00b10b03, 0x00b10b43 },
+   { 0x00800040, 0x2cc04629, 0x00b10b43, 0x00b10b83 },
+   { 0x00800040, 0x2ce04629, 0x00b10b83, 0x00b10bc3 },
+   { 0x00800040, 0x2c004529, 0x00b10c00, 0x00b109c4 },
+   { 0x00800040, 0x2c204529, 0x00b10c20, 0x00b10a04 },
+   { 0x00800040, 0x2c404529, 0x00b10c40, 0x00b10a44 },
+   { 0x00800040, 0x2c604529, 0x00b10c60, 0x00b10a84 },
+   { 0x00800040, 0x2c804529, 0x00b10c80, 0x00b10ac4 },
+   { 0x00800040, 0x2ca04529, 0x00b10ca0, 0x00b10b04 },
+   { 0x00800040, 0x2cc04529, 0x00b10cc0, 0x00b10b44 },
+   { 0x00800040, 0x2ce04529, 0x00b10ce0, 0x00b10b84 },
+   { 0x00800040, 0x2c004529, 0x00b10c00, 0x00b10a04 },
+   { 0x00800040, 0x2c204529, 0x00b10c20, 0x00b10a44 },
+   { 0x00800040, 0x2c404529, 0x00b10c40, 0x00b10a84 },
+   { 0x00800040, 0x2c604529, 0x00b10c60, 0x00b10ac4 },
+   { 0x00800040, 0x2c804529, 0x00b10c80, 0x00b10b04 },
+   { 0x00800040, 0x2ca04529, 0x00b10ca0, 0x00b10b44 },
+   { 0x00800040, 0x2cc04529, 0x00b10cc0, 0x00b10b84 },
+   { 0x00800040, 0x2ce04529, 0x00b10ce0, 0x00b10bc4 },
+   { 0x00800008, 0x2c002d29, 0x00b10c00, 0x00020002 },
+   { 0x00800008, 0x2c202d29, 0x00b10c20, 0x00020002 },
+   { 0x00800008, 0x2c402d29, 0x00b10c40, 0x00020002 },
+   { 0x00800008, 0x2c602d29, 0x00b10c60, 0x00020002 },
+   { 0x00800008, 0x2c802d29, 0x00b10c80, 0x00020002 },
+   { 0x00800008, 0x2ca02d29, 0x00b10ca0, 0x00020002 },
+   { 0x00800008, 0x2cc02d29, 0x00b10cc0, 0x00020002 },
+   { 0x00800008, 0x2ce02d29, 0x00b10ce0, 0x00020002 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x0000009a },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
+   { 0x00800031, 0x29c01d29, 0x008d0e60, 0x0411a007 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00800031, 0x2a001d29, 0x008d0e60, 0x0411a007 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00800031, 0x2a401d29, 0x008d0e60, 0x0411a007 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00800031, 0x2a801d29, 0x008d0e60, 0x0411a007 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0007001f },
+   { 0x00800031, 0x2ac01d29, 0x008d0e60, 0x0418a007 },
+   { 0x00000005, 0x20580c21, 0x00210e60, 0x00000003 },
+   { 0x00000041, 0x20580c21, 0x00210058, 0x00000009 },
+   { 0x00000020, 0x34001400, 0x00001400, 0x00210058 },
+   { 0x80800042, 0x2c004629, 0x00b109c0, 0x00b109c1 },
+   { 0x80800042, 0x2c204629, 0x00b10a00, 0x00b10a01 },
+   { 0x80800042, 0x2c404629, 0x00b10a40, 0x00b10a41 },
+   { 0x80800042, 0x2c604629, 0x00b10a80, 0x00b10a81 },
+   { 0x80800042, 0x2c804629, 0x00b10ac0, 0x00b10ac1 },
+   { 0x80800042, 0x2ca04629, 0x00b10b00, 0x00b10b01 },
+   { 0x80800042, 0x2cc04629, 0x00b10b40, 0x00b10b41 },
+   { 0x80800042, 0x2ce04629, 0x00b10b80, 0x00b10b81 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x0000001a },
+   { 0x80800042, 0x2c004629, 0x00b109c1, 0x00b109c2 },
+   { 0x80800042, 0x2c204629, 0x00b10a01, 0x00b10a02 },
+   { 0x80800042, 0x2c404629, 0x00b10a41, 0x00b10a42 },
+   { 0x80800042, 0x2c604629, 0x00b10a81, 0x00b10a82 },
+   { 0x80800042, 0x2c804629, 0x00b10ac1, 0x00b10ac2 },
+   { 0x80800042, 0x2ca04629, 0x00b10b01, 0x00b10b02 },
+   { 0x80800042, 0x2cc04629, 0x00b10b41, 0x00b10b42 },
+   { 0x80800042, 0x2ce04629, 0x00b10b81, 0x00b10b82 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000011 },
+   { 0x80800042, 0x2c004629, 0x00b109c2, 0x00b109c3 },
+   { 0x80800042, 0x2c204629, 0x00b10a02, 0x00b10a03 },
+   { 0x80800042, 0x2c404629, 0x00b10a42, 0x00b10a43 },
+   { 0x80800042, 0x2c604629, 0x00b10a82, 0x00b10a83 },
+   { 0x80800042, 0x2c804629, 0x00b10ac2, 0x00b10ac3 },
+   { 0x80800042, 0x2ca04629, 0x00b10b02, 0x00b10b03 },
+   { 0x80800042, 0x2cc04629, 0x00b10b42, 0x00b10b43 },
+   { 0x80800042, 0x2ce04629, 0x00b10b82, 0x00b10b83 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000008 },
+   { 0x80800042, 0x2c004629, 0x00b109c3, 0x00b109c4 },
+   { 0x80800042, 0x2c204629, 0x00b10a03, 0x00b10a04 },
+   { 0x80800042, 0x2c404629, 0x00b10a43, 0x00b10a44 },
+   { 0x80800042, 0x2c604629, 0x00b10a83, 0x00b10a84 },
+   { 0x80800042, 0x2c804629, 0x00b10ac3, 0x00b10ac4 },
+   { 0x80800042, 0x2ca04629, 0x00b10b03, 0x00b10b04 },
+   { 0x80800042, 0x2cc04629, 0x00b10b43, 0x00b10b44 },
+   { 0x80800042, 0x2ce04629, 0x00b10b83, 0x00b10b84 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000068 },
+   { 0x01000005, 0x20002d3c, 0x00210034, 0x00010001 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x00000035 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
+   { 0x00800031, 0x29c01d29, 0x008d0e60, 0x0411a007 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00800031, 0x2a001d29, 0x008d0e60, 0x0411a007 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00800031, 0x2a401d29, 0x008d0e60, 0x0411a007 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00800031, 0x2a801d29, 0x008d0e60, 0x0411a007 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0007001f },
+   { 0x00800031, 0x2ac01d29, 0x008d0e60, 0x0418a007 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
+   { 0x00800031, 0x2bc01d29, 0x008d0e60, 0x0411a007 },
+   { 0x00000005, 0x20580c21, 0x00210e60, 0x00000003 },
+   { 0x00000041, 0x20580c21, 0x00210058, 0x00000009 },
+   { 0x00000020, 0x34001400, 0x00001400, 0x00210058 },
+   { 0x80800042, 0x2c004629, 0x00b109c0, 0x00b10a00 },
+   { 0x80800042, 0x2c204629, 0x00b10a00, 0x00b10a40 },
+   { 0x80800042, 0x2c404629, 0x00b10a40, 0x00b10a80 },
+   { 0x80800042, 0x2c604629, 0x00b10a80, 0x00b10ac0 },
+   { 0x80800042, 0x2c804629, 0x00b10ac0, 0x00b10b00 },
+   { 0x80800042, 0x2ca04629, 0x00b10b00, 0x00b10b40 },
+   { 0x80800042, 0x2cc04629, 0x00b10b40, 0x00b10b80 },
+   { 0x80800042, 0x2ce04629, 0x00b10b80, 0x00b10bc0 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x0000001a },
+   { 0x80800042, 0x2c004629, 0x00b109c1, 0x00b10a01 },
+   { 0x80800042, 0x2c204629, 0x00b10a01, 0x00b10a41 },
+   { 0x80800042, 0x2c404629, 0x00b10a41, 0x00b10a81 },
+   { 0x80800042, 0x2c604629, 0x00b10a81, 0x00b10ac1 },
+   { 0x80800042, 0x2c804629, 0x00b10ac1, 0x00b10b01 },
+   { 0x80800042, 0x2ca04629, 0x00b10b01, 0x00b10b41 },
+   { 0x80800042, 0x2cc04629, 0x00b10b41, 0x00b10b81 },
+   { 0x80800042, 0x2ce04629, 0x00b10b81, 0x00b10bc1 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000011 },
+   { 0x80800042, 0x2c004629, 0x00b109c2, 0x00b10a02 },
+   { 0x80800042, 0x2c204629, 0x00b10a02, 0x00b10a42 },
+   { 0x80800042, 0x2c404629, 0x00b10a42, 0x00b10a82 },
+   { 0x80800042, 0x2c604629, 0x00b10a82, 0x00b10ac2 },
+   { 0x80800042, 0x2c804629, 0x00b10ac2, 0x00b10b02 },
+   { 0x80800042, 0x2ca04629, 0x00b10b02, 0x00b10b42 },
+   { 0x80800042, 0x2cc04629, 0x00b10b42, 0x00b10b82 },
+   { 0x80800042, 0x2ce04629, 0x00b10b82, 0x00b10bc2 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000008 },
+   { 0x80800042, 0x2c004629, 0x00b109c3, 0x00b10a03 },
+   { 0x80800042, 0x2c204629, 0x00b10a03, 0x00b10a43 },
+   { 0x80800042, 0x2c404629, 0x00b10a43, 0x00b10a83 },
+   { 0x80800042, 0x2c604629, 0x00b10a83, 0x00b10ac3 },
+   { 0x80800042, 0x2c804629, 0x00b10ac3, 0x00b10b03 },
+   { 0x80800042, 0x2ca04629, 0x00b10b03, 0x00b10b43 },
+   { 0x80800042, 0x2cc04629, 0x00b10b43, 0x00b10b83 },
+   { 0x80800042, 0x2ce04629, 0x00b10b83, 0x00b10bc3 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000031 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
+   { 0x00800031, 0x29c01d29, 0x008d0e60, 0x0411a007 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00800031, 0x2a001d29, 0x008d0e60, 0x0411a007 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00800031, 0x2a401d29, 0x008d0e60, 0x0411a007 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00800031, 0x2a801d29, 0x008d0e60, 0x0411a007 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0007001f },
+   { 0x00800031, 0x2ac01d29, 0x008d0e60, 0x0418a007 },
+   { 0x00000005, 0x20580c21, 0x00210e60, 0x00000003 },
+   { 0x00000041, 0x20580c21, 0x00210058, 0x00000009 },
+   { 0x00000020, 0x34001400, 0x00001400, 0x00210058 },
+   { 0x00800001, 0x2c000229, 0x00b109c0, 0x00000000 },
+   { 0x00800001, 0x2c200229, 0x00b10a00, 0x00000000 },
+   { 0x00800001, 0x2c400229, 0x00b10a40, 0x00000000 },
+   { 0x00800001, 0x2c600229, 0x00b10a80, 0x00000000 },
+   { 0x00800001, 0x2c800229, 0x00b10ac0, 0x00000000 },
+   { 0x00800001, 0x2ca00229, 0x00b10b00, 0x00000000 },
+   { 0x00800001, 0x2cc00229, 0x00b10b40, 0x00000000 },
+   { 0x00800001, 0x2ce00229, 0x00b10b80, 0x00000000 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x0000001a },
+   { 0x00800001, 0x2c000229, 0x00b109c1, 0x00000000 },
+   { 0x00800001, 0x2c200229, 0x00b10a01, 0x00000000 },
+   { 0x00800001, 0x2c400229, 0x00b10a41, 0x00000000 },
+   { 0x00800001, 0x2c600229, 0x00b10a81, 0x00000000 },
+   { 0x00800001, 0x2c800229, 0x00b10ac1, 0x00000000 },
+   { 0x00800001, 0x2ca00229, 0x00b10b01, 0x00000000 },
+   { 0x00800001, 0x2cc00229, 0x00b10b41, 0x00000000 },
+   { 0x00800001, 0x2ce00229, 0x00b10b81, 0x00000000 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000011 },
+   { 0x00800001, 0x2c000229, 0x00b109c2, 0x00000000 },
+   { 0x00800001, 0x2c200229, 0x00b10a02, 0x00000000 },
+   { 0x00800001, 0x2c400229, 0x00b10a42, 0x00000000 },
+   { 0x00800001, 0x2c600229, 0x00b10a82, 0x00000000 },
+   { 0x00800001, 0x2c800229, 0x00b10ac2, 0x00000000 },
+   { 0x00800001, 0x2ca00229, 0x00b10b02, 0x00000000 },
+   { 0x00800001, 0x2cc00229, 0x00b10b42, 0x00000000 },
+   { 0x00800001, 0x2ce00229, 0x00b10b82, 0x00000000 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000008 },
+   { 0x00800001, 0x2c000229, 0x00b109c3, 0x00000000 },
+   { 0x00800001, 0x2c200229, 0x00b10a03, 0x00000000 },
+   { 0x00800001, 0x2c400229, 0x00b10a43, 0x00000000 },
+   { 0x00800001, 0x2c600229, 0x00b10a83, 0x00000000 },
+   { 0x00800001, 0x2c800229, 0x00b10ac3, 0x00000000 },
+   { 0x00800001, 0x2ca00229, 0x00b10b03, 0x00000000 },
+   { 0x00800001, 0x2cc00229, 0x00b10b43, 0x00000000 },
+   { 0x00800001, 0x2ce00229, 0x00b10b83, 0x00000000 },
+   { 0x00600001, 0x23800021, 0x008d0c00, 0x00000000 },
+   { 0x00600001, 0x23c00021, 0x008d0c20, 0x00000000 },
+   { 0x00600001, 0x24000021, 0x008d0c40, 0x00000000 },
+   { 0x00600001, 0x24400021, 0x008d0c60, 0x00000000 },
+   { 0x00600001, 0x24800021, 0x008d0c80, 0x00000000 },
+   { 0x00600001, 0x24c00021, 0x008d0ca0, 0x00000000 },
+   { 0x00600001, 0x25000021, 0x008d0cc0, 0x00000000 },
+   { 0x00600001, 0x25400021, 0x008d0ce0, 0x00000000 },
+   { 0x0020000c, 0x2e6e3dad, 0x0045003a, 0x00010001 },
+   { 0x00200040, 0x2e6034a5, 0x00450e80, 0x00450e6e },
+   { 0x00000005, 0x2e640c21, 0x00210e64, 0xfffffffe },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
+   { 0x02000005, 0x20000c3c, 0x00210054, 0x00000008 },
+   { 0x00010040, 0x2e641ca5, 0x00210e64, 0x00000001 },
+   { 0x01000005, 0x20002d3c, 0x0021003a, 0x00010001 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x000000b1 },
+   { 0x01000005, 0x20002d3c, 0x0021003c, 0x00010001 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x0000007d },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
+   { 0x00800031, 0x29c01d29, 0x008d0e60, 0x0411a007 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00800031, 0x2a001d29, 0x008d0e60, 0x0411a007 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00800031, 0x2a401d29, 0x008d0e60, 0x0411a007 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00800031, 0x2a801d29, 0x008d0e60, 0x0411a007 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0007001f },
+   { 0x00800031, 0x2ac01d29, 0x008d0e60, 0x0418a007 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
+   { 0x00800031, 0x2bc01d29, 0x008d0e60, 0x0411a007 },
+   { 0x00000005, 0x20580c21, 0x00210e60, 0x00000003 },
+   { 0x00000041, 0x20580c21, 0x00210058, 0x00000019 },
+   { 0x00000020, 0x34001400, 0x00001400, 0x00210058 },
+   { 0x00800040, 0x2c004629, 0x00b109c0, 0x00b10a00 },
+   { 0x00800040, 0x2c204629, 0x00b10a00, 0x00b10a40 },
+   { 0x00800040, 0x2c404629, 0x00b10a40, 0x00b10a80 },
+   { 0x00800040, 0x2c604629, 0x00b10a80, 0x00b10ac0 },
+   { 0x00800040, 0x2c804629, 0x00b10ac0, 0x00b10b00 },
+   { 0x00800040, 0x2ca04629, 0x00b10b00, 0x00b10b40 },
+   { 0x00800040, 0x2cc04629, 0x00b10b40, 0x00b10b80 },
+   { 0x00800040, 0x2ce04629, 0x00b10b80, 0x00b10bc0 },
+   { 0x00800040, 0x2c004529, 0x00b10c00, 0x00b109c1 },
+   { 0x00800040, 0x2c204529, 0x00b10c20, 0x00b10a01 },
+   { 0x00800040, 0x2c404529, 0x00b10c40, 0x00b10a41 },
+   { 0x00800040, 0x2c604529, 0x00b10c60, 0x00b10a81 },
+   { 0x00800040, 0x2c804529, 0x00b10c80, 0x00b10ac1 },
+   { 0x00800040, 0x2ca04529, 0x00b10ca0, 0x00b10b01 },
+   { 0x00800040, 0x2cc04529, 0x00b10cc0, 0x00b10b41 },
+   { 0x00800040, 0x2ce04529, 0x00b10ce0, 0x00b10b81 },
+   { 0x00800040, 0x2c004529, 0x00b10c00, 0x00b10a01 },
+   { 0x00800040, 0x2c204529, 0x00b10c20, 0x00b10a41 },
+   { 0x00800040, 0x2c404529, 0x00b10c40, 0x00b10a81 },
+   { 0x00800040, 0x2c604529, 0x00b10c60, 0x00b10ac1 },
+   { 0x00800040, 0x2c804529, 0x00b10c80, 0x00b10b01 },
+   { 0x00800040, 0x2ca04529, 0x00b10ca0, 0x00b10b41 },
+   { 0x00800040, 0x2cc04529, 0x00b10cc0, 0x00b10b81 },
+   { 0x00800040, 0x2ce04529, 0x00b10ce0, 0x00b10bc1 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x0000004a },
+   { 0x00800040, 0x2c004629, 0x00b109c1, 0x00b10a01 },
+   { 0x00800040, 0x2c204629, 0x00b10a01, 0x00b10a41 },
+   { 0x00800040, 0x2c404629, 0x00b10a41, 0x00b10a81 },
+   { 0x00800040, 0x2c604629, 0x00b10a81, 0x00b10ac1 },
+   { 0x00800040, 0x2c804629, 0x00b10ac1, 0x00b10b01 },
+   { 0x00800040, 0x2ca04629, 0x00b10b01, 0x00b10b41 },
+   { 0x00800040, 0x2cc04629, 0x00b10b41, 0x00b10b81 },
+   { 0x00800040, 0x2ce04629, 0x00b10b81, 0x00b10bc1 },
+   { 0x00800040, 0x2c004529, 0x00b10c00, 0x00b109c2 },
+   { 0x00800040, 0x2c204529, 0x00b10c20, 0x00b10a02 },
+   { 0x00800040, 0x2c404529, 0x00b10c40, 0x00b10a42 },
+   { 0x00800040, 0x2c604529, 0x00b10c60, 0x00b10a82 },
+   { 0x00800040, 0x2c804529, 0x00b10c80, 0x00b10ac2 },
+   { 0x00800040, 0x2ca04529, 0x00b10ca0, 0x00b10b02 },
+   { 0x00800040, 0x2cc04529, 0x00b10cc0, 0x00b10b42 },
+   { 0x00800040, 0x2ce04529, 0x00b10ce0, 0x00b10b82 },
+   { 0x00800040, 0x2c004529, 0x00b10c00, 0x00b10a02 },
+   { 0x00800040, 0x2c204529, 0x00b10c20, 0x00b10a42 },
+   { 0x00800040, 0x2c404529, 0x00b10c40, 0x00b10a82 },
+   { 0x00800040, 0x2c604529, 0x00b10c60, 0x00b10ac2 },
+   { 0x00800040, 0x2c804529, 0x00b10c80, 0x00b10b02 },
+   { 0x00800040, 0x2ca04529, 0x00b10ca0, 0x00b10b42 },
+   { 0x00800040, 0x2cc04529, 0x00b10cc0, 0x00b10b82 },
+   { 0x00800040, 0x2ce04529, 0x00b10ce0, 0x00b10bc2 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000031 },
+   { 0x00800040, 0x2c004629, 0x00b109c2, 0x00b10a02 },
+   { 0x00800040, 0x2c204629, 0x00b10a02, 0x00b10a42 },
+   { 0x00800040, 0x2c404629, 0x00b10a42, 0x00b10a82 },
+   { 0x00800040, 0x2c604629, 0x00b10a82, 0x00b10ac2 },
+   { 0x00800040, 0x2c804629, 0x00b10ac2, 0x00b10b02 },
+   { 0x00800040, 0x2ca04629, 0x00b10b02, 0x00b10b42 },
+   { 0x00800040, 0x2cc04629, 0x00b10b42, 0x00b10b82 },
+   { 0x00800040, 0x2ce04629, 0x00b10b82, 0x00b10bc2 },
+   { 0x00800040, 0x2c004529, 0x00b10c00, 0x00b109c3 },
+   { 0x00800040, 0x2c204529, 0x00b10c20, 0x00b10a03 },
+   { 0x00800040, 0x2c404529, 0x00b10c40, 0x00b10a43 },
+   { 0x00800040, 0x2c604529, 0x00b10c60, 0x00b10a83 },
+   { 0x00800040, 0x2c804529, 0x00b10c80, 0x00b10ac3 },
+   { 0x00800040, 0x2ca04529, 0x00b10ca0, 0x00b10b03 },
+   { 0x00800040, 0x2cc04529, 0x00b10cc0, 0x00b10b43 },
+   { 0x00800040, 0x2ce04529, 0x00b10ce0, 0x00b10b83 },
+   { 0x00800040, 0x2c004529, 0x00b10c00, 0x00b10a03 },
+   { 0x00800040, 0x2c204529, 0x00b10c20, 0x00b10a43 },
+   { 0x00800040, 0x2c404529, 0x00b10c40, 0x00b10a83 },
+   { 0x00800040, 0x2c604529, 0x00b10c60, 0x00b10ac3 },
+   { 0x00800040, 0x2c804529, 0x00b10c80, 0x00b10b03 },
+   { 0x00800040, 0x2ca04529, 0x00b10ca0, 0x00b10b43 },
+   { 0x00800040, 0x2cc04529, 0x00b10cc0, 0x00b10b83 },
+   { 0x00800040, 0x2ce04529, 0x00b10ce0, 0x00b10bc3 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000018 },
+   { 0x00800040, 0x2c004629, 0x00b109c3, 0x00b10a03 },
+   { 0x00800040, 0x2c204629, 0x00b10a03, 0x00b10a43 },
+   { 0x00800040, 0x2c404629, 0x00b10a43, 0x00b10a83 },
+   { 0x00800040, 0x2c604629, 0x00b10a83, 0x00b10ac3 },
+   { 0x00800040, 0x2c804629, 0x00b10ac3, 0x00b10b03 },
+   { 0x00800040, 0x2ca04629, 0x00b10b03, 0x00b10b43 },
+   { 0x00800040, 0x2cc04629, 0x00b10b43, 0x00b10b83 },
+   { 0x00800040, 0x2ce04629, 0x00b10b83, 0x00b10bc3 },
+   { 0x00800040, 0x2c004529, 0x00b10c00, 0x00b109c4 },
+   { 0x00800040, 0x2c204529, 0x00b10c20, 0x00b10a04 },
+   { 0x00800040, 0x2c404529, 0x00b10c40, 0x00b10a44 },
+   { 0x00800040, 0x2c604529, 0x00b10c60, 0x00b10a84 },
+   { 0x00800040, 0x2c804529, 0x00b10c80, 0x00b10ac4 },
+   { 0x00800040, 0x2ca04529, 0x00b10ca0, 0x00b10b04 },
+   { 0x00800040, 0x2cc04529, 0x00b10cc0, 0x00b10b44 },
+   { 0x00800040, 0x2ce04529, 0x00b10ce0, 0x00b10b84 },
+   { 0x00800040, 0x2c004529, 0x00b10c00, 0x00b10a04 },
+   { 0x00800040, 0x2c204529, 0x00b10c20, 0x00b10a44 },
+   { 0x00800040, 0x2c404529, 0x00b10c40, 0x00b10a84 },
+   { 0x00800040, 0x2c604529, 0x00b10c60, 0x00b10ac4 },
+   { 0x00800040, 0x2c804529, 0x00b10c80, 0x00b10b04 },
+   { 0x00800040, 0x2ca04529, 0x00b10ca0, 0x00b10b44 },
+   { 0x00800040, 0x2cc04529, 0x00b10cc0, 0x00b10b84 },
+   { 0x00800040, 0x2ce04529, 0x00b10ce0, 0x00b10bc4 },
+   { 0x00800008, 0x2c002d29, 0x00b10c00, 0x00020002 },
+   { 0x00800008, 0x2c202d29, 0x00b10c20, 0x00020002 },
+   { 0x00800008, 0x2c402d29, 0x00b10c40, 0x00020002 },
+   { 0x00800008, 0x2c602d29, 0x00b10c60, 0x00020002 },
+   { 0x00800008, 0x2c802d29, 0x00b10c80, 0x00020002 },
+   { 0x00800008, 0x2ca02d29, 0x00b10ca0, 0x00020002 },
+   { 0x00800008, 0x2cc02d29, 0x00b10cc0, 0x00020002 },
+   { 0x00800008, 0x2ce02d29, 0x00b10ce0, 0x00020002 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x0000009a },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
+   { 0x00800031, 0x29c01d29, 0x008d0e60, 0x0411a007 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00800031, 0x2a001d29, 0x008d0e60, 0x0411a007 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00800031, 0x2a401d29, 0x008d0e60, 0x0411a007 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00800031, 0x2a801d29, 0x008d0e60, 0x0411a007 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0007001f },
+   { 0x00800031, 0x2ac01d29, 0x008d0e60, 0x0418a007 },
+   { 0x00000005, 0x20580c21, 0x00210e60, 0x00000003 },
+   { 0x00000041, 0x20580c21, 0x00210058, 0x00000009 },
+   { 0x00000020, 0x34001400, 0x00001400, 0x00210058 },
+   { 0x80800042, 0x2c004629, 0x00b109c0, 0x00b109c1 },
+   { 0x80800042, 0x2c204629, 0x00b10a00, 0x00b10a01 },
+   { 0x80800042, 0x2c404629, 0x00b10a40, 0x00b10a41 },
+   { 0x80800042, 0x2c604629, 0x00b10a80, 0x00b10a81 },
+   { 0x80800042, 0x2c804629, 0x00b10ac0, 0x00b10ac1 },
+   { 0x80800042, 0x2ca04629, 0x00b10b00, 0x00b10b01 },
+   { 0x80800042, 0x2cc04629, 0x00b10b40, 0x00b10b41 },
+   { 0x80800042, 0x2ce04629, 0x00b10b80, 0x00b10b81 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x0000001a },
+   { 0x80800042, 0x2c004629, 0x00b109c1, 0x00b109c2 },
+   { 0x80800042, 0x2c204629, 0x00b10a01, 0x00b10a02 },
+   { 0x80800042, 0x2c404629, 0x00b10a41, 0x00b10a42 },
+   { 0x80800042, 0x2c604629, 0x00b10a81, 0x00b10a82 },
+   { 0x80800042, 0x2c804629, 0x00b10ac1, 0x00b10ac2 },
+   { 0x80800042, 0x2ca04629, 0x00b10b01, 0x00b10b02 },
+   { 0x80800042, 0x2cc04629, 0x00b10b41, 0x00b10b42 },
+   { 0x80800042, 0x2ce04629, 0x00b10b81, 0x00b10b82 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000011 },
+   { 0x80800042, 0x2c004629, 0x00b109c2, 0x00b109c3 },
+   { 0x80800042, 0x2c204629, 0x00b10a02, 0x00b10a03 },
+   { 0x80800042, 0x2c404629, 0x00b10a42, 0x00b10a43 },
+   { 0x80800042, 0x2c604629, 0x00b10a82, 0x00b10a83 },
+   { 0x80800042, 0x2c804629, 0x00b10ac2, 0x00b10ac3 },
+   { 0x80800042, 0x2ca04629, 0x00b10b02, 0x00b10b03 },
+   { 0x80800042, 0x2cc04629, 0x00b10b42, 0x00b10b43 },
+   { 0x80800042, 0x2ce04629, 0x00b10b82, 0x00b10b83 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000008 },
+   { 0x80800042, 0x2c004629, 0x00b109c3, 0x00b109c4 },
+   { 0x80800042, 0x2c204629, 0x00b10a03, 0x00b10a04 },
+   { 0x80800042, 0x2c404629, 0x00b10a43, 0x00b10a44 },
+   { 0x80800042, 0x2c604629, 0x00b10a83, 0x00b10a84 },
+   { 0x80800042, 0x2c804629, 0x00b10ac3, 0x00b10ac4 },
+   { 0x80800042, 0x2ca04629, 0x00b10b03, 0x00b10b04 },
+   { 0x80800042, 0x2cc04629, 0x00b10b43, 0x00b10b44 },
+   { 0x80800042, 0x2ce04629, 0x00b10b83, 0x00b10b84 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000068 },
+   { 0x01000005, 0x20002d3c, 0x0021003c, 0x00010001 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x00000035 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
+   { 0x00800031, 0x29c01d29, 0x008d0e60, 0x0411a007 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00800031, 0x2a001d29, 0x008d0e60, 0x0411a007 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00800031, 0x2a401d29, 0x008d0e60, 0x0411a007 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00800031, 0x2a801d29, 0x008d0e60, 0x0411a007 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0007001f },
+   { 0x00800031, 0x2ac01d29, 0x008d0e60, 0x0418a007 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
+   { 0x00800031, 0x2bc01d29, 0x008d0e60, 0x0411a007 },
+   { 0x00000005, 0x20580c21, 0x00210e60, 0x00000003 },
+   { 0x00000041, 0x20580c21, 0x00210058, 0x00000009 },
+   { 0x00000020, 0x34001400, 0x00001400, 0x00210058 },
+   { 0x80800042, 0x2c004629, 0x00b109c0, 0x00b10a00 },
+   { 0x80800042, 0x2c204629, 0x00b10a00, 0x00b10a40 },
+   { 0x80800042, 0x2c404629, 0x00b10a40, 0x00b10a80 },
+   { 0x80800042, 0x2c604629, 0x00b10a80, 0x00b10ac0 },
+   { 0x80800042, 0x2c804629, 0x00b10ac0, 0x00b10b00 },
+   { 0x80800042, 0x2ca04629, 0x00b10b00, 0x00b10b40 },
+   { 0x80800042, 0x2cc04629, 0x00b10b40, 0x00b10b80 },
+   { 0x80800042, 0x2ce04629, 0x00b10b80, 0x00b10bc0 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x0000001a },
+   { 0x80800042, 0x2c004629, 0x00b109c1, 0x00b10a01 },
+   { 0x80800042, 0x2c204629, 0x00b10a01, 0x00b10a41 },
+   { 0x80800042, 0x2c404629, 0x00b10a41, 0x00b10a81 },
+   { 0x80800042, 0x2c604629, 0x00b10a81, 0x00b10ac1 },
+   { 0x80800042, 0x2c804629, 0x00b10ac1, 0x00b10b01 },
+   { 0x80800042, 0x2ca04629, 0x00b10b01, 0x00b10b41 },
+   { 0x80800042, 0x2cc04629, 0x00b10b41, 0x00b10b81 },
+   { 0x80800042, 0x2ce04629, 0x00b10b81, 0x00b10bc1 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000011 },
+   { 0x80800042, 0x2c004629, 0x00b109c2, 0x00b10a02 },
+   { 0x80800042, 0x2c204629, 0x00b10a02, 0x00b10a42 },
+   { 0x80800042, 0x2c404629, 0x00b10a42, 0x00b10a82 },
+   { 0x80800042, 0x2c604629, 0x00b10a82, 0x00b10ac2 },
+   { 0x80800042, 0x2c804629, 0x00b10ac2, 0x00b10b02 },
+   { 0x80800042, 0x2ca04629, 0x00b10b02, 0x00b10b42 },
+   { 0x80800042, 0x2cc04629, 0x00b10b42, 0x00b10b82 },
+   { 0x80800042, 0x2ce04629, 0x00b10b82, 0x00b10bc2 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000008 },
+   { 0x80800042, 0x2c004629, 0x00b109c3, 0x00b10a03 },
+   { 0x80800042, 0x2c204629, 0x00b10a03, 0x00b10a43 },
+   { 0x80800042, 0x2c404629, 0x00b10a43, 0x00b10a83 },
+   { 0x80800042, 0x2c604629, 0x00b10a83, 0x00b10ac3 },
+   { 0x80800042, 0x2c804629, 0x00b10ac3, 0x00b10b03 },
+   { 0x80800042, 0x2ca04629, 0x00b10b03, 0x00b10b43 },
+   { 0x80800042, 0x2cc04629, 0x00b10b43, 0x00b10b83 },
+   { 0x80800042, 0x2ce04629, 0x00b10b83, 0x00b10bc3 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000031 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
+   { 0x00800031, 0x29c01d29, 0x008d0e60, 0x0411a007 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00800031, 0x2a001d29, 0x008d0e60, 0x0411a007 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00800031, 0x2a401d29, 0x008d0e60, 0x0411a007 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00800031, 0x2a801d29, 0x008d0e60, 0x0411a007 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0007001f },
+   { 0x00800031, 0x2ac01d29, 0x008d0e60, 0x0418a007 },
+   { 0x00000005, 0x20580c21, 0x00210e60, 0x00000003 },
+   { 0x00000041, 0x20580c21, 0x00210058, 0x00000009 },
+   { 0x00000020, 0x34001400, 0x00001400, 0x00210058 },
+   { 0x00800001, 0x2c000229, 0x00b109c0, 0x00000000 },
+   { 0x00800001, 0x2c200229, 0x00b10a00, 0x00000000 },
+   { 0x00800001, 0x2c400229, 0x00b10a40, 0x00000000 },
+   { 0x00800001, 0x2c600229, 0x00b10a80, 0x00000000 },
+   { 0x00800001, 0x2c800229, 0x00b10ac0, 0x00000000 },
+   { 0x00800001, 0x2ca00229, 0x00b10b00, 0x00000000 },
+   { 0x00800001, 0x2cc00229, 0x00b10b40, 0x00000000 },
+   { 0x00800001, 0x2ce00229, 0x00b10b80, 0x00000000 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x0000001a },
+   { 0x00800001, 0x2c000229, 0x00b109c1, 0x00000000 },
+   { 0x00800001, 0x2c200229, 0x00b10a01, 0x00000000 },
+   { 0x00800001, 0x2c400229, 0x00b10a41, 0x00000000 },
+   { 0x00800001, 0x2c600229, 0x00b10a81, 0x00000000 },
+   { 0x00800001, 0x2c800229, 0x00b10ac1, 0x00000000 },
+   { 0x00800001, 0x2ca00229, 0x00b10b01, 0x00000000 },
+   { 0x00800001, 0x2cc00229, 0x00b10b41, 0x00000000 },
+   { 0x00800001, 0x2ce00229, 0x00b10b81, 0x00000000 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000011 },
+   { 0x00800001, 0x2c000229, 0x00b109c2, 0x00000000 },
+   { 0x00800001, 0x2c200229, 0x00b10a02, 0x00000000 },
+   { 0x00800001, 0x2c400229, 0x00b10a42, 0x00000000 },
+   { 0x00800001, 0x2c600229, 0x00b10a82, 0x00000000 },
+   { 0x00800001, 0x2c800229, 0x00b10ac2, 0x00000000 },
+   { 0x00800001, 0x2ca00229, 0x00b10b02, 0x00000000 },
+   { 0x00800001, 0x2cc00229, 0x00b10b42, 0x00000000 },
+   { 0x00800001, 0x2ce00229, 0x00b10b82, 0x00000000 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000008 },
+   { 0x00800001, 0x2c000229, 0x00b109c3, 0x00000000 },
+   { 0x00800001, 0x2c200229, 0x00b10a03, 0x00000000 },
+   { 0x00800001, 0x2c400229, 0x00b10a43, 0x00000000 },
+   { 0x00800001, 0x2c600229, 0x00b10a83, 0x00000000 },
+   { 0x00800001, 0x2c800229, 0x00b10ac3, 0x00000000 },
+   { 0x00800001, 0x2ca00229, 0x00b10b03, 0x00000000 },
+   { 0x00800001, 0x2cc00229, 0x00b10b43, 0x00000000 },
+   { 0x00800001, 0x2ce00229, 0x00b10b83, 0x00000000 },
+   { 0x80800042, 0x23802529, 0x00b10680, 0x00b10380 },
+   { 0x80800042, 0x23a02529, 0x00b106a0, 0x00b10c00 },
+   { 0x80800042, 0x23c02529, 0x00b106c0, 0x00b103c0 },
+   { 0x80800042, 0x23e02529, 0x00b106e0, 0x00b10c20 },
+   { 0x80800042, 0x24002529, 0x00b10700, 0x00b10400 },
+   { 0x80800042, 0x24202529, 0x00b10720, 0x00b10c40 },
+   { 0x80800042, 0x24402529, 0x00b10740, 0x00b10440 },
+   { 0x80800042, 0x24602529, 0x00b10760, 0x00b10c60 },
+   { 0x80800042, 0x24802529, 0x00b10780, 0x00b10480 },
+   { 0x80800042, 0x24a02529, 0x00b107a0, 0x00b10c80 },
+   { 0x80800042, 0x24c02529, 0x00b107c0, 0x00b104c0 },
+   { 0x80800042, 0x24e02529, 0x00b107e0, 0x00b10ca0 },
+   { 0x80800042, 0x25002529, 0x00b10800, 0x00b10500 },
+   { 0x80800042, 0x25202529, 0x00b10820, 0x00b10cc0 },
+   { 0x80800042, 0x25402529, 0x00b10840, 0x00b10540 },
+   { 0x80800042, 0x25602529, 0x00b10860, 0x00b10ce0 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0007000f },
+   { 0x0020000c, 0x2e6e3dad, 0x00450032, 0x00020002 },
+   { 0x0020000c, 0x2e601ca5, 0x00450e80, 0x00000001 },
+   { 0x00200040, 0x2e6034a5, 0x00450e60, 0x00450e6e },
+   { 0x00000005, 0x2e640c21, 0x00210e64, 0xfffffffe },
+   { 0x02000005, 0x20002e3c, 0x0021003f, 0x00020002 },
+   { 0x00010040, 0x2e640c21, 0x00210e64, 0x00000001 },
+   { 0x01000005, 0x20002d3c, 0x00210032, 0x00020002 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x000000a2 },
+   { 0x01000005, 0x20002d3c, 0x00210034, 0x00020002 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x00000076 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0007000f },
+   { 0x00800031, 0x2ac01d29, 0x00ad0e60, 0x0414a008 },
+   { 0x00800031, 0x2b601d29, 0x00ad0e60, 0x0414a009 },
+   { 0x00000005, 0x20580c21, 0x00210e60, 0x00000003 },
+   { 0x00000041, 0x20580c21, 0x00210058, 0x00000019 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0001000f },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 },
+   { 0x00800031, 0x2b401d29, 0x00ad0e60, 0x0411a008 },
+   { 0x00800031, 0x2be01d29, 0x00ad0e60, 0x0411a009 },
+   { 0x00000020, 0x34001400, 0x00001400, 0x00210058 },
+   { 0x00800040, 0x29c04629, 0x00ad0ac0, 0x00ad0ae0 },
+   { 0x00800040, 0x29e04629, 0x00ad0ae0, 0x00ad0b00 },
+   { 0x00800040, 0x2a004629, 0x00ad0b00, 0x00ad0b20 },
+   { 0x00800040, 0x2a204629, 0x00ad0b20, 0x00ad0b40 },
+   { 0x00800040, 0x29c04529, 0x00ad09c0, 0x00ad0ac1 },
+   { 0x00800040, 0x29e04529, 0x00ad09e0, 0x00ad0ae1 },
+   { 0x00800040, 0x2a004529, 0x00ad0a00, 0x00ad0b01 },
+   { 0x00800040, 0x2a204529, 0x00ad0a20, 0x00ad0b21 },
+   { 0x00800040, 0x29c04529, 0x00ad09c0, 0x00ad0ae1 },
+   { 0x00800040, 0x29e04529, 0x00ad09e0, 0x00ad0b01 },
+   { 0x00800040, 0x2a004529, 0x00ad0a00, 0x00ad0b21 },
+   { 0x00800040, 0x2a204529, 0x00ad0a20, 0x00ad0b41 },
+   { 0x00800040, 0x2a404629, 0x00ad0b60, 0x00ad0b80 },
+   { 0x00800040, 0x2a604629, 0x00ad0b80, 0x00ad0ba0 },
+   { 0x00800040, 0x2a804629, 0x00ad0ba0, 0x00ad0bc0 },
+   { 0x00800040, 0x2aa04629, 0x00ad0bc0, 0x00ad0be0 },
+   { 0x00800040, 0x2a404529, 0x00ad0a40, 0x00ad0b61 },
+   { 0x00800040, 0x2a604529, 0x00ad0a60, 0x00ad0b81 },
+   { 0x00800040, 0x2a804529, 0x00ad0a80, 0x00ad0ba1 },
+   { 0x00800040, 0x2aa04529, 0x00ad0aa0, 0x00ad0bc1 },
+   { 0x00800040, 0x2a404529, 0x00ad0a40, 0x00ad0b81 },
+   { 0x00800040, 0x2a604529, 0x00ad0a60, 0x00ad0ba1 },
+   { 0x00800040, 0x2a804529, 0x00ad0a80, 0x00ad0bc1 },
+   { 0x00800040, 0x2aa04529, 0x00ad0aa0, 0x00ad0be1 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x0000004a },
+   { 0x00800040, 0x29c04629, 0x00ad0ac1, 0x00ad0ae1 },
+   { 0x00800040, 0x29e04629, 0x00ad0ae1, 0x00ad0b01 },
+   { 0x00800040, 0x2a004629, 0x00ad0b01, 0x00ad0b21 },
+   { 0x00800040, 0x2a204629, 0x00ad0b21, 0x00ad0b41 },
+   { 0x00800040, 0x29c04529, 0x00ad09c0, 0x00ad0ac2 },
+   { 0x00800040, 0x29e04529, 0x00ad09e0, 0x00ad0ae2 },
+   { 0x00800040, 0x2a004529, 0x00ad0a00, 0x00ad0b02 },
+   { 0x00800040, 0x2a204529, 0x00ad0a20, 0x00ad0b22 },
+   { 0x00800040, 0x29c04529, 0x00ad09c0, 0x00ad0ae2 },
+   { 0x00800040, 0x29e04529, 0x00ad09e0, 0x00ad0b02 },
+   { 0x00800040, 0x2a004529, 0x00ad0a00, 0x00ad0b22 },
+   { 0x00800040, 0x2a204529, 0x00ad0a20, 0x00ad0b42 },
+   { 0x00800040, 0x2a404629, 0x00ad0b61, 0x00ad0b81 },
+   { 0x00800040, 0x2a604629, 0x00ad0b81, 0x00ad0ba1 },
+   { 0x00800040, 0x2a804629, 0x00ad0ba1, 0x00ad0bc1 },
+   { 0x00800040, 0x2aa04629, 0x00ad0bc1, 0x00ad0be1 },
+   { 0x00800040, 0x2a404529, 0x00ad0a40, 0x00ad0b62 },
+   { 0x00800040, 0x2a604529, 0x00ad0a60, 0x00ad0b82 },
+   { 0x00800040, 0x2a804529, 0x00ad0a80, 0x00ad0ba2 },
+   { 0x00800040, 0x2aa04529, 0x00ad0aa0, 0x00ad0bc2 },
+   { 0x00800040, 0x2a404529, 0x00ad0a40, 0x00ad0b82 },
+   { 0x00800040, 0x2a604529, 0x00ad0a60, 0x00ad0ba2 },
+   { 0x00800040, 0x2a804529, 0x00ad0a80, 0x00ad0bc2 },
+   { 0x00800040, 0x2aa04529, 0x00ad0aa0, 0x00ad0be2 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000031 },
+   { 0x00800040, 0x29c04629, 0x00ad0ac2, 0x00ad0ae2 },
+   { 0x00800040, 0x29e04629, 0x00ad0ae2, 0x00ad0b02 },
+   { 0x00800040, 0x2a004629, 0x00ad0b02, 0x00ad0b22 },
+   { 0x00800040, 0x2a204629, 0x00ad0b22, 0x00ad0b42 },
+   { 0x00800040, 0x29c04529, 0x00ad09c0, 0x00ad0ac3 },
+   { 0x00800040, 0x29e04529, 0x00ad09e0, 0x00ad0ae3 },
+   { 0x00800040, 0x2a004529, 0x00ad0a00, 0x00ad0b03 },
+   { 0x00800040, 0x2a204529, 0x00ad0a20, 0x00ad0b23 },
+   { 0x00800040, 0x29c04529, 0x00ad09c0, 0x00ad0ae3 },
+   { 0x00800040, 0x29e04529, 0x00ad09e0, 0x00ad0b03 },
+   { 0x00800040, 0x2a004529, 0x00ad0a00, 0x00ad0b23 },
+   { 0x00800040, 0x2a204529, 0x00ad0a20, 0x00ad0b43 },
+   { 0x00800040, 0x2a404629, 0x00ad0b62, 0x00ad0b82 },
+   { 0x00800040, 0x2a604629, 0x00ad0b82, 0x00ad0ba2 },
+   { 0x00800040, 0x2a804629, 0x00ad0ba2, 0x00ad0bc2 },
+   { 0x00800040, 0x2aa04629, 0x00ad0bc2, 0x00ad0be2 },
+   { 0x00800040, 0x2a404529, 0x00ad0a40, 0x00ad0b63 },
+   { 0x00800040, 0x2a604529, 0x00ad0a60, 0x00ad0b83 },
+   { 0x00800040, 0x2a804529, 0x00ad0a80, 0x00ad0ba3 },
+   { 0x00800040, 0x2aa04529, 0x00ad0aa0, 0x00ad0bc3 },
+   { 0x00800040, 0x2a404529, 0x00ad0a40, 0x00ad0b83 },
+   { 0x00800040, 0x2a604529, 0x00ad0a60, 0x00ad0ba3 },
+   { 0x00800040, 0x2a804529, 0x00ad0a80, 0x00ad0bc3 },
+   { 0x00800040, 0x2aa04529, 0x00ad0aa0, 0x00ad0be3 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000018 },
+   { 0x00800040, 0x29c04629, 0x00ad0ac3, 0x00ad0ae3 },
+   { 0x00800040, 0x29e04629, 0x00ad0ae3, 0x00ad0b03 },
+   { 0x00800040, 0x2a004629, 0x00ad0b03, 0x00ad0b23 },
+   { 0x00800040, 0x2a204629, 0x00ad0b23, 0x00ad0b43 },
+   { 0x00800040, 0x29c04529, 0x00ad09c0, 0x00ad0ac4 },
+   { 0x00800040, 0x29e04529, 0x00ad09e0, 0x00ad0ae4 },
+   { 0x00800040, 0x2a004529, 0x00ad0a00, 0x00ad0b04 },
+   { 0x00800040, 0x2a204529, 0x00ad0a20, 0x00ad0b24 },
+   { 0x00800040, 0x29c04529, 0x00ad09c0, 0x00ad0ae4 },
+   { 0x00800040, 0x29e04529, 0x00ad09e0, 0x00ad0b04 },
+   { 0x00800040, 0x2a004529, 0x00ad0a00, 0x00ad0b24 },
+   { 0x00800040, 0x2a204529, 0x00ad0a20, 0x00ad0b44 },
+   { 0x00800040, 0x2a404629, 0x00ad0b63, 0x00ad0b83 },
+   { 0x00800040, 0x2a604629, 0x00ad0b83, 0x00ad0ba3 },
+   { 0x00800040, 0x2a804629, 0x00ad0ba3, 0x00ad0bc3 },
+   { 0x00800040, 0x2aa04629, 0x00ad0bc3, 0x00ad0be3 },
+   { 0x00800040, 0x2a404529, 0x00ad0a40, 0x00ad0b64 },
+   { 0x00800040, 0x2a604529, 0x00ad0a60, 0x00ad0b84 },
+   { 0x00800040, 0x2a804529, 0x00ad0a80, 0x00ad0ba4 },
+   { 0x00800040, 0x2aa04529, 0x00ad0aa0, 0x00ad0bc4 },
+   { 0x00800040, 0x2a404529, 0x00ad0a40, 0x00ad0b84 },
+   { 0x00800040, 0x2a604529, 0x00ad0a60, 0x00ad0ba4 },
+   { 0x00800040, 0x2a804529, 0x00ad0a80, 0x00ad0bc4 },
+   { 0x00800040, 0x2aa04529, 0x00ad0aa0, 0x00ad0be4 },
+   { 0x80800008, 0x29c02d29, 0x00b109c0, 0x00020002 },
+   { 0x80800008, 0x29e02d29, 0x00b109e0, 0x00020002 },
+   { 0x80800008, 0x2a002d29, 0x00b10a00, 0x00020002 },
+   { 0x80800008, 0x2a202d29, 0x00b10a20, 0x00020002 },
+   { 0x80800008, 0x2a402d29, 0x00b10a40, 0x00020002 },
+   { 0x80800008, 0x2a602d29, 0x00b10a60, 0x00020002 },
+   { 0x80800008, 0x2a802d29, 0x00b10a80, 0x00020002 },
+   { 0x80800008, 0x2aa02d29, 0x00b10aa0, 0x00020002 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000082 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0007000f },
+   { 0x00800031, 0x2ac01d29, 0x00ad0e60, 0x0414a008 },
+   { 0x00800031, 0x2b601d29, 0x00ad0e60, 0x0414a009 },
+   { 0x00000005, 0x20580c21, 0x00210e60, 0x00000003 },
+   { 0x00000041, 0x20580c21, 0x00210058, 0x00000009 },
+   { 0x00000020, 0x34001400, 0x00001400, 0x00210058 },
+   { 0x80800042, 0x29c04629, 0x00ad0ac0, 0x00ad0ac1 },
+   { 0x80800042, 0x29e04629, 0x00ad0ae0, 0x00ad0ae1 },
+   { 0x80800042, 0x2a004629, 0x00ad0b00, 0x00ad0b01 },
+   { 0x80800042, 0x2a204629, 0x00ad0b20, 0x00ad0b21 },
+   { 0x80800042, 0x2a404629, 0x00ad0b60, 0x00ad0b61 },
+   { 0x80800042, 0x2a604629, 0x00ad0b80, 0x00ad0b81 },
+   { 0x80800042, 0x2a804629, 0x00ad0ba0, 0x00ad0ba1 },
+   { 0x80800042, 0x2aa04629, 0x00ad0bc0, 0x00ad0bc1 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x0000001a },
+   { 0x80800042, 0x29c04629, 0x00ad0ac1, 0x00ad0ac2 },
+   { 0x80800042, 0x29e04629, 0x00ad0ae1, 0x00ad0ae2 },
+   { 0x80800042, 0x2a004629, 0x00ad0b01, 0x00ad0b02 },
+   { 0x80800042, 0x2a204629, 0x00ad0b21, 0x00ad0b22 },
+   { 0x80800042, 0x2a404629, 0x00ad0b61, 0x00ad0b62 },
+   { 0x80800042, 0x2a604629, 0x00ad0b81, 0x00ad0b82 },
+   { 0x80800042, 0x2a804629, 0x00ad0ba1, 0x00ad0ba2 },
+   { 0x80800042, 0x2aa04629, 0x00ad0bc1, 0x00ad0bc2 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000011 },
+   { 0x80800042, 0x29c04629, 0x00ad0ac2, 0x00ad0ac3 },
+   { 0x80800042, 0x29e04629, 0x00ad0ae2, 0x00ad0ae3 },
+   { 0x80800042, 0x2a004629, 0x00ad0b02, 0x00ad0b03 },
+   { 0x80800042, 0x2a204629, 0x00ad0b22, 0x00ad0b23 },
+   { 0x80800042, 0x2a404629, 0x00ad0b62, 0x00ad0b63 },
+   { 0x80800042, 0x2a604629, 0x00ad0b82, 0x00ad0b83 },
+   { 0x80800042, 0x2a804629, 0x00ad0ba2, 0x00ad0ba3 },
+   { 0x80800042, 0x2aa04629, 0x00ad0bc2, 0x00ad0bc3 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000008 },
+   { 0x80800042, 0x29c04629, 0x00ad0ac3, 0x00ad0ac4 },
+   { 0x80800042, 0x29e04629, 0x00ad0ae3, 0x00ad0ae4 },
+   { 0x80800042, 0x2a004629, 0x00ad0b03, 0x00ad0b04 },
+   { 0x80800042, 0x2a204629, 0x00ad0b23, 0x00ad0b24 },
+   { 0x80800042, 0x2a404629, 0x00ad0b63, 0x00ad0b64 },
+   { 0x80800042, 0x2a604629, 0x00ad0b83, 0x00ad0b84 },
+   { 0x80800042, 0x2a804629, 0x00ad0ba3, 0x00ad0ba4 },
+   { 0x80800042, 0x2aa04629, 0x00ad0bc3, 0x00ad0bc4 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000058 },
+   { 0x01000005, 0x20002d3c, 0x00210034, 0x00020002 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x0000002d },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0007000f },
+   { 0x00800031, 0x2ac01d29, 0x00ad0e60, 0x0414a008 },
+   { 0x00800031, 0x2b601d29, 0x00ad0e60, 0x0414a009 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0000000f },
+   { 0x00800031, 0x2b401d29, 0x00ad0e60, 0x0411a008 },
+   { 0x00800031, 0x2be01d29, 0x00ad0e60, 0x0411a009 },
+   { 0x00000005, 0x20580c21, 0x00210e60, 0x00000003 },
+   { 0x00000041, 0x20580c21, 0x00210058, 0x00000009 },
+   { 0x00000020, 0x34001400, 0x00001400, 0x00210058 },
+   { 0x80800042, 0x29c04629, 0x00ad0ac0, 0x00ad0ae0 },
+   { 0x80800042, 0x29e04629, 0x00ad0ae0, 0x00ad0b00 },
+   { 0x80800042, 0x2a004629, 0x00ad0b00, 0x00ad0b20 },
+   { 0x80800042, 0x2a204629, 0x00ad0b20, 0x00ad0b40 },
+   { 0x80800042, 0x2a404629, 0x00ad0b60, 0x00ad0b80 },
+   { 0x80800042, 0x2a604629, 0x00ad0b80, 0x00ad0ba0 },
+   { 0x80800042, 0x2a804629, 0x00ad0ba0, 0x00ad0bc0 },
+   { 0x80800042, 0x2aa04629, 0x00ad0bc0, 0x00ad0be0 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x0000001a },
+   { 0x80800042, 0x29c04629, 0x00ad0ac1, 0x00ad0ae1 },
+   { 0x80800042, 0x29e04629, 0x00ad0ae1, 0x00ad0b01 },
+   { 0x80800042, 0x2a004629, 0x00ad0b01, 0x00ad0b21 },
+   { 0x80800042, 0x2a204629, 0x00ad0b21, 0x00ad0b41 },
+   { 0x80800042, 0x2a404629, 0x00ad0b61, 0x00ad0b81 },
+   { 0x80800042, 0x2a604629, 0x00ad0b81, 0x00ad0ba1 },
+   { 0x80800042, 0x2a804629, 0x00ad0ba1, 0x00ad0bc1 },
+   { 0x80800042, 0x2aa04629, 0x00ad0bc1, 0x00ad0be1 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000011 },
+   { 0x80800042, 0x29c04629, 0x00ad0ac2, 0x00ad0ae2 },
+   { 0x80800042, 0x29e04629, 0x00ad0ae2, 0x00ad0b02 },
+   { 0x80800042, 0x2a004629, 0x00ad0b02, 0x00ad0b22 },
+   { 0x80800042, 0x2a204629, 0x00ad0b22, 0x00ad0b42 },
+   { 0x80800042, 0x2a404629, 0x00ad0b62, 0x00ad0b82 },
+   { 0x80800042, 0x2a604629, 0x00ad0b82, 0x00ad0ba2 },
+   { 0x80800042, 0x2a804629, 0x00ad0ba2, 0x00ad0bc2 },
+   { 0x80800042, 0x2aa04629, 0x00ad0bc2, 0x00ad0be2 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000008 },
+   { 0x80800042, 0x29c04629, 0x00ad0ac3, 0x00ad0ac3 },
+   { 0x80800042, 0x29e04629, 0x00ad0ae3, 0x00ad0ae3 },
+   { 0x80800042, 0x2a004629, 0x00ad0b03, 0x00ad0b03 },
+   { 0x80800042, 0x2a204629, 0x00ad0b23, 0x00ad0b23 },
+   { 0x80800042, 0x2a404629, 0x00ad0b63, 0x00ad0b63 },
+   { 0x80800042, 0x2a604629, 0x00ad0b83, 0x00ad0b83 },
+   { 0x80800042, 0x2a804629, 0x00ad0ba3, 0x00ad0ba3 },
+   { 0x80800042, 0x2aa04629, 0x00ad0bc3, 0x00ad0bc3 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000029 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0007000f },
+   { 0x00800031, 0x2ac01d29, 0x00ad0e60, 0x0414a008 },
+   { 0x00800031, 0x2b601d29, 0x00ad0e60, 0x0414a009 },
+   { 0x00000005, 0x20580c21, 0x00210e60, 0x00000003 },
+   { 0x00000041, 0x20580c21, 0x00210058, 0x00000009 },
+   { 0x00000020, 0x34001400, 0x00001400, 0x00210058 },
+   { 0x00800001, 0x29c00229, 0x00ad0ac0, 0x00000000 },
+   { 0x00800001, 0x29e00229, 0x00ad0ae0, 0x00000000 },
+   { 0x00800001, 0x2a000229, 0x00ad0b00, 0x00000000 },
+   { 0x00800001, 0x2a200229, 0x00ad0b20, 0x00000000 },
+   { 0x00800001, 0x2a400229, 0x00ad0b60, 0x00000000 },
+   { 0x00800001, 0x2a600229, 0x00ad0b80, 0x00000000 },
+   { 0x00800001, 0x2a800229, 0x00ad0ba0, 0x00000000 },
+   { 0x00800001, 0x2aa00229, 0x00ad0bc0, 0x00000000 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x0000001a },
+   { 0x00800001, 0x29c00229, 0x00ad0ac1, 0x00000000 },
+   { 0x00800001, 0x29e00229, 0x00ad0ae1, 0x00000000 },
+   { 0x00800001, 0x2a000229, 0x00ad0b01, 0x00000000 },
+   { 0x00800001, 0x2a200229, 0x00ad0b21, 0x00000000 },
+   { 0x00800001, 0x2a400229, 0x00ad0b61, 0x00000000 },
+   { 0x00800001, 0x2a600229, 0x00ad0b81, 0x00000000 },
+   { 0x00800001, 0x2a800229, 0x00ad0ba1, 0x00000000 },
+   { 0x00800001, 0x2aa00229, 0x00ad0bc1, 0x00000000 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000011 },
+   { 0x00800001, 0x29c00229, 0x00ad0ac2, 0x00000000 },
+   { 0x00800001, 0x29e00229, 0x00ad0ae2, 0x00000000 },
+   { 0x00800001, 0x2a000229, 0x00ad0b02, 0x00000000 },
+   { 0x00800001, 0x2a200229, 0x00ad0b22, 0x00000000 },
+   { 0x00800001, 0x2a400229, 0x00ad0b62, 0x00000000 },
+   { 0x00800001, 0x2a600229, 0x00ad0b82, 0x00000000 },
+   { 0x00800001, 0x2a800229, 0x00ad0ba2, 0x00000000 },
+   { 0x00800001, 0x2aa00229, 0x00ad0bc2, 0x00000000 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000008 },
+   { 0x00800001, 0x29c00229, 0x00ad0ac3, 0x00000000 },
+   { 0x00800001, 0x29e00229, 0x00ad0ae3, 0x00000000 },
+   { 0x00800001, 0x2a000229, 0x00ad0b03, 0x00000000 },
+   { 0x00800001, 0x2a200229, 0x00ad0b23, 0x00000000 },
+   { 0x00800001, 0x2a400229, 0x00ad0b63, 0x00000000 },
+   { 0x00800001, 0x2a600229, 0x00ad0b83, 0x00000000 },
+   { 0x00800001, 0x2a800229, 0x00ad0ba3, 0x00000000 },
+   { 0x00800001, 0x2aa00229, 0x00ad0bc3, 0x00000000 },
+   { 0x00600001, 0x25800129, 0x008d09c0, 0x00000000 },
+   { 0x00600001, 0x25a00129, 0x008d09e0, 0x00000000 },
+   { 0x00600001, 0x25c00129, 0x008d0a00, 0x00000000 },
+   { 0x00600001, 0x25e00129, 0x008d0a20, 0x00000000 },
+   { 0x00600001, 0x26000129, 0x008d0a40, 0x00000000 },
+   { 0x00600001, 0x26200129, 0x008d0a60, 0x00000000 },
+   { 0x00600001, 0x26400129, 0x008d0a80, 0x00000000 },
+   { 0x00600001, 0x26600129, 0x008d0aa0, 0x00000000 },
+   { 0x0020000c, 0x2e6e3dad, 0x0045003a, 0x00020002 },
+   { 0x0020000c, 0x2e601ca5, 0x00450e80, 0x00000001 },
+   { 0x00200040, 0x2e6034a5, 0x00450e60, 0x00450e6e },
+   { 0x00000005, 0x2e640c21, 0x00210e64, 0xfffffffe },
+   { 0x02000005, 0x20002e3c, 0x0021003f, 0x00080008 },
+   { 0x00010040, 0x2e640c21, 0x00210e64, 0x00000001 },
+   { 0x01000005, 0x20002d3c, 0x0021003a, 0x00020002 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x000000a2 },
+   { 0x01000005, 0x20002d3c, 0x0021003c, 0x00020002 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x00000076 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0007000f },
+   { 0x00800031, 0x2ac01d29, 0x00ad0e60, 0x0414a008 },
+   { 0x00800031, 0x2b601d29, 0x00ad0e60, 0x0414a009 },
+   { 0x00000005, 0x20580c21, 0x00210e60, 0x00000003 },
+   { 0x00000041, 0x20580c21, 0x00210058, 0x00000019 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0001000f },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 },
+   { 0x00800031, 0x2b401d29, 0x00ad0e60, 0x0411a008 },
+   { 0x00800031, 0x2be01d29, 0x00ad0e60, 0x0411a009 },
+   { 0x00000020, 0x34001400, 0x00001400, 0x00210058 },
+   { 0x00800040, 0x29c04629, 0x00ad0ac0, 0x00ad0ae0 },
+   { 0x00800040, 0x29e04629, 0x00ad0ae0, 0x00ad0b00 },
+   { 0x00800040, 0x2a004629, 0x00ad0b00, 0x00ad0b20 },
+   { 0x00800040, 0x2a204629, 0x00ad0b20, 0x00ad0b40 },
+   { 0x00800040, 0x29c04529, 0x00ad09c0, 0x00ad0ac1 },
+   { 0x00800040, 0x29e04529, 0x00ad09e0, 0x00ad0ae1 },
+   { 0x00800040, 0x2a004529, 0x00ad0a00, 0x00ad0b01 },
+   { 0x00800040, 0x2a204529, 0x00ad0a20, 0x00ad0b21 },
+   { 0x00800040, 0x29c04529, 0x00ad09c0, 0x00ad0ae1 },
+   { 0x00800040, 0x29e04529, 0x00ad09e0, 0x00ad0b01 },
+   { 0x00800040, 0x2a004529, 0x00ad0a00, 0x00ad0b21 },
+   { 0x00800040, 0x2a204529, 0x00ad0a20, 0x00ad0b41 },
+   { 0x00800040, 0x2a404629, 0x00ad0b60, 0x00ad0b80 },
+   { 0x00800040, 0x2a604629, 0x00ad0b80, 0x00ad0ba0 },
+   { 0x00800040, 0x2a804629, 0x00ad0ba0, 0x00ad0bc0 },
+   { 0x00800040, 0x2aa04629, 0x00ad0bc0, 0x00ad0be0 },
+   { 0x00800040, 0x2a404529, 0x00ad0a40, 0x00ad0b61 },
+   { 0x00800040, 0x2a604529, 0x00ad0a60, 0x00ad0b81 },
+   { 0x00800040, 0x2a804529, 0x00ad0a80, 0x00ad0ba1 },
+   { 0x00800040, 0x2aa04529, 0x00ad0aa0, 0x00ad0bc1 },
+   { 0x00800040, 0x2a404529, 0x00ad0a40, 0x00ad0b81 },
+   { 0x00800040, 0x2a604529, 0x00ad0a60, 0x00ad0ba1 },
+   { 0x00800040, 0x2a804529, 0x00ad0a80, 0x00ad0bc1 },
+   { 0x00800040, 0x2aa04529, 0x00ad0aa0, 0x00ad0be1 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x0000004a },
+   { 0x00800040, 0x29c04629, 0x00ad0ac1, 0x00ad0ae1 },
+   { 0x00800040, 0x29e04629, 0x00ad0ae1, 0x00ad0b01 },
+   { 0x00800040, 0x2a004629, 0x00ad0b01, 0x00ad0b21 },
+   { 0x00800040, 0x2a204629, 0x00ad0b21, 0x00ad0b41 },
+   { 0x00800040, 0x29c04529, 0x00ad09c0, 0x00ad0ac2 },
+   { 0x00800040, 0x29e04529, 0x00ad09e0, 0x00ad0ae2 },
+   { 0x00800040, 0x2a004529, 0x00ad0a00, 0x00ad0b02 },
+   { 0x00800040, 0x2a204529, 0x00ad0a20, 0x00ad0b22 },
+   { 0x00800040, 0x29c04529, 0x00ad09c0, 0x00ad0ae2 },
+   { 0x00800040, 0x29e04529, 0x00ad09e0, 0x00ad0b02 },
+   { 0x00800040, 0x2a004529, 0x00ad0a00, 0x00ad0b22 },
+   { 0x00800040, 0x2a204529, 0x00ad0a20, 0x00ad0b42 },
+   { 0x00800040, 0x2a404629, 0x00ad0b61, 0x00ad0b81 },
+   { 0x00800040, 0x2a604629, 0x00ad0b81, 0x00ad0ba1 },
+   { 0x00800040, 0x2a804629, 0x00ad0ba1, 0x00ad0bc1 },
+   { 0x00800040, 0x2aa04629, 0x00ad0bc1, 0x00ad0be1 },
+   { 0x00800040, 0x2a404529, 0x00ad0a40, 0x00ad0b62 },
+   { 0x00800040, 0x2a604529, 0x00ad0a60, 0x00ad0b82 },
+   { 0x00800040, 0x2a804529, 0x00ad0a80, 0x00ad0ba2 },
+   { 0x00800040, 0x2aa04529, 0x00ad0aa0, 0x00ad0bc2 },
+   { 0x00800040, 0x2a404529, 0x00ad0a40, 0x00ad0b82 },
+   { 0x00800040, 0x2a604529, 0x00ad0a60, 0x00ad0ba2 },
+   { 0x00800040, 0x2a804529, 0x00ad0a80, 0x00ad0bc2 },
+   { 0x00800040, 0x2aa04529, 0x00ad0aa0, 0x00ad0be2 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000031 },
+   { 0x00800040, 0x29c04629, 0x00ad0ac2, 0x00ad0ae2 },
+   { 0x00800040, 0x29e04629, 0x00ad0ae2, 0x00ad0b02 },
+   { 0x00800040, 0x2a004629, 0x00ad0b02, 0x00ad0b22 },
+   { 0x00800040, 0x2a204629, 0x00ad0b22, 0x00ad0b42 },
+   { 0x00800040, 0x29c04529, 0x00ad09c0, 0x00ad0ac3 },
+   { 0x00800040, 0x29e04529, 0x00ad09e0, 0x00ad0ae3 },
+   { 0x00800040, 0x2a004529, 0x00ad0a00, 0x00ad0b03 },
+   { 0x00800040, 0x2a204529, 0x00ad0a20, 0x00ad0b23 },
+   { 0x00800040, 0x29c04529, 0x00ad09c0, 0x00ad0ae3 },
+   { 0x00800040, 0x29e04529, 0x00ad09e0, 0x00ad0b03 },
+   { 0x00800040, 0x2a004529, 0x00ad0a00, 0x00ad0b23 },
+   { 0x00800040, 0x2a204529, 0x00ad0a20, 0x00ad0b43 },
+   { 0x00800040, 0x2a404629, 0x00ad0b62, 0x00ad0b82 },
+   { 0x00800040, 0x2a604629, 0x00ad0b82, 0x00ad0ba2 },
+   { 0x00800040, 0x2a804629, 0x00ad0ba2, 0x00ad0bc2 },
+   { 0x00800040, 0x2aa04629, 0x00ad0bc2, 0x00ad0be2 },
+   { 0x00800040, 0x2a404529, 0x00ad0a40, 0x00ad0b63 },
+   { 0x00800040, 0x2a604529, 0x00ad0a60, 0x00ad0b83 },
+   { 0x00800040, 0x2a804529, 0x00ad0a80, 0x00ad0ba3 },
+   { 0x00800040, 0x2aa04529, 0x00ad0aa0, 0x00ad0bc3 },
+   { 0x00800040, 0x2a404529, 0x00ad0a40, 0x00ad0b83 },
+   { 0x00800040, 0x2a604529, 0x00ad0a60, 0x00ad0ba3 },
+   { 0x00800040, 0x2a804529, 0x00ad0a80, 0x00ad0bc3 },
+   { 0x00800040, 0x2aa04529, 0x00ad0aa0, 0x00ad0be3 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000018 },
+   { 0x00800040, 0x29c04629, 0x00ad0ac3, 0x00ad0ae3 },
+   { 0x00800040, 0x29e04629, 0x00ad0ae3, 0x00ad0b03 },
+   { 0x00800040, 0x2a004629, 0x00ad0b03, 0x00ad0b23 },
+   { 0x00800040, 0x2a204629, 0x00ad0b23, 0x00ad0b43 },
+   { 0x00800040, 0x29c04529, 0x00ad09c0, 0x00ad0ac4 },
+   { 0x00800040, 0x29e04529, 0x00ad09e0, 0x00ad0ae4 },
+   { 0x00800040, 0x2a004529, 0x00ad0a00, 0x00ad0b04 },
+   { 0x00800040, 0x2a204529, 0x00ad0a20, 0x00ad0b24 },
+   { 0x00800040, 0x29c04529, 0x00ad09c0, 0x00ad0ae4 },
+   { 0x00800040, 0x29e04529, 0x00ad09e0, 0x00ad0b04 },
+   { 0x00800040, 0x2a004529, 0x00ad0a00, 0x00ad0b24 },
+   { 0x00800040, 0x2a204529, 0x00ad0a20, 0x00ad0b44 },
+   { 0x00800040, 0x2a404629, 0x00ad0b63, 0x00ad0b83 },
+   { 0x00800040, 0x2a604629, 0x00ad0b83, 0x00ad0ba3 },
+   { 0x00800040, 0x2a804629, 0x00ad0ba3, 0x00ad0bc3 },
+   { 0x00800040, 0x2aa04629, 0x00ad0bc3, 0x00ad0be3 },
+   { 0x00800040, 0x2a404529, 0x00ad0a40, 0x00ad0b64 },
+   { 0x00800040, 0x2a604529, 0x00ad0a60, 0x00ad0b84 },
+   { 0x00800040, 0x2a804529, 0x00ad0a80, 0x00ad0ba4 },
+   { 0x00800040, 0x2aa04529, 0x00ad0aa0, 0x00ad0bc4 },
+   { 0x00800040, 0x2a404529, 0x00ad0a40, 0x00ad0b84 },
+   { 0x00800040, 0x2a604529, 0x00ad0a60, 0x00ad0ba4 },
+   { 0x00800040, 0x2a804529, 0x00ad0a80, 0x00ad0bc4 },
+   { 0x00800040, 0x2aa04529, 0x00ad0aa0, 0x00ad0be4 },
+   { 0x80800008, 0x29c02d29, 0x00b109c0, 0x00020002 },
+   { 0x80800008, 0x29e02d29, 0x00b109e0, 0x00020002 },
+   { 0x80800008, 0x2a002d29, 0x00b10a00, 0x00020002 },
+   { 0x80800008, 0x2a202d29, 0x00b10a20, 0x00020002 },
+   { 0x80800008, 0x2a402d29, 0x00b10a40, 0x00020002 },
+   { 0x80800008, 0x2a602d29, 0x00b10a60, 0x00020002 },
+   { 0x80800008, 0x2a802d29, 0x00b10a80, 0x00020002 },
+   { 0x80800008, 0x2aa02d29, 0x00b10aa0, 0x00020002 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000082 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0007000f },
+   { 0x00800031, 0x2ac01d29, 0x00ad0e60, 0x0414a008 },
+   { 0x00800031, 0x2b601d29, 0x00ad0e60, 0x0414a009 },
+   { 0x00000005, 0x20580c21, 0x00210e60, 0x00000003 },
+   { 0x00000041, 0x20580c21, 0x00210058, 0x00000009 },
+   { 0x00000020, 0x34001400, 0x00001400, 0x00210058 },
+   { 0x80800042, 0x29c04629, 0x00ad0ac0, 0x00ad0ac1 },
+   { 0x80800042, 0x29e04629, 0x00ad0ae0, 0x00ad0ae1 },
+   { 0x80800042, 0x2a004629, 0x00ad0b00, 0x00ad0b01 },
+   { 0x80800042, 0x2a204629, 0x00ad0b20, 0x00ad0b21 },
+   { 0x80800042, 0x2a404629, 0x00ad0b60, 0x00ad0b61 },
+   { 0x80800042, 0x2a604629, 0x00ad0b80, 0x00ad0b81 },
+   { 0x80800042, 0x2a804629, 0x00ad0ba0, 0x00ad0ba1 },
+   { 0x80800042, 0x2aa04629, 0x00ad0bc0, 0x00ad0bc1 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x0000001a },
+   { 0x80800042, 0x29c04629, 0x00ad0ac1, 0x00ad0ac2 },
+   { 0x80800042, 0x29e04629, 0x00ad0ae1, 0x00ad0ae2 },
+   { 0x80800042, 0x2a004629, 0x00ad0b01, 0x00ad0b02 },
+   { 0x80800042, 0x2a204629, 0x00ad0b21, 0x00ad0b22 },
+   { 0x80800042, 0x2a404629, 0x00ad0b61, 0x00ad0b62 },
+   { 0x80800042, 0x2a604629, 0x00ad0b81, 0x00ad0b82 },
+   { 0x80800042, 0x2a804629, 0x00ad0ba1, 0x00ad0ba2 },
+   { 0x80800042, 0x2aa04629, 0x00ad0bc1, 0x00ad0bc2 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000011 },
+   { 0x80800042, 0x29c04629, 0x00ad0ac2, 0x00ad0ac3 },
+   { 0x80800042, 0x29e04629, 0x00ad0ae2, 0x00ad0ae3 },
+   { 0x80800042, 0x2a004629, 0x00ad0b02, 0x00ad0b03 },
+   { 0x80800042, 0x2a204629, 0x00ad0b22, 0x00ad0b23 },
+   { 0x80800042, 0x2a404629, 0x00ad0b62, 0x00ad0b63 },
+   { 0x80800042, 0x2a604629, 0x00ad0b82, 0x00ad0b83 },
+   { 0x80800042, 0x2a804629, 0x00ad0ba2, 0x00ad0ba3 },
+   { 0x80800042, 0x2aa04629, 0x00ad0bc2, 0x00ad0bc3 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000008 },
+   { 0x80800042, 0x29c04629, 0x00ad0ac3, 0x00ad0ac4 },
+   { 0x80800042, 0x29e04629, 0x00ad0ae3, 0x00ad0ae4 },
+   { 0x80800042, 0x2a004629, 0x00ad0b03, 0x00ad0b04 },
+   { 0x80800042, 0x2a204629, 0x00ad0b23, 0x00ad0b24 },
+   { 0x80800042, 0x2a404629, 0x00ad0b63, 0x00ad0b64 },
+   { 0x80800042, 0x2a604629, 0x00ad0b83, 0x00ad0b84 },
+   { 0x80800042, 0x2a804629, 0x00ad0ba3, 0x00ad0ba4 },
+   { 0x80800042, 0x2aa04629, 0x00ad0bc3, 0x00ad0bc4 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000058 },
+   { 0x01000005, 0x20002d3c, 0x0021003c, 0x00020002 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x0000002d },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0007000f },
+   { 0x00800031, 0x2ac01d29, 0x00ad0e60, 0x0414a008 },
+   { 0x00800031, 0x2b601d29, 0x00ad0e60, 0x0414a009 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0000000f },
+   { 0x00800031, 0x2b401d29, 0x00ad0e60, 0x0411a008 },
+   { 0x00800031, 0x2be01d29, 0x00ad0e60, 0x0411a009 },
+   { 0x00000005, 0x20580c21, 0x00210e60, 0x00000003 },
+   { 0x00000041, 0x20580c21, 0x00210058, 0x00000009 },
+   { 0x00000020, 0x34001400, 0x00001400, 0x00210058 },
+   { 0x80800042, 0x29c04629, 0x00ad0ac0, 0x00ad0ae0 },
+   { 0x80800042, 0x29e04629, 0x00ad0ae0, 0x00ad0b00 },
+   { 0x80800042, 0x2a004629, 0x00ad0b00, 0x00ad0b20 },
+   { 0x80800042, 0x2a204629, 0x00ad0b20, 0x00ad0b40 },
+   { 0x80800042, 0x2a404629, 0x00ad0b60, 0x00ad0b80 },
+   { 0x80800042, 0x2a604629, 0x00ad0b80, 0x00ad0ba0 },
+   { 0x80800042, 0x2a804629, 0x00ad0ba0, 0x00ad0bc0 },
+   { 0x80800042, 0x2aa04629, 0x00ad0bc0, 0x00ad0be0 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x0000001a },
+   { 0x80800042, 0x29c04629, 0x00ad0ac1, 0x00ad0ae1 },
+   { 0x80800042, 0x29e04629, 0x00ad0ae1, 0x00ad0b01 },
+   { 0x80800042, 0x2a004629, 0x00ad0b01, 0x00ad0b21 },
+   { 0x80800042, 0x2a204629, 0x00ad0b21, 0x00ad0b41 },
+   { 0x80800042, 0x2a404629, 0x00ad0b61, 0x00ad0b81 },
+   { 0x80800042, 0x2a604629, 0x00ad0b81, 0x00ad0ba1 },
+   { 0x80800042, 0x2a804629, 0x00ad0ba1, 0x00ad0bc1 },
+   { 0x80800042, 0x2aa04629, 0x00ad0bc1, 0x00ad0be1 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000011 },
+   { 0x80800042, 0x29c04629, 0x00ad0ac2, 0x00ad0ae2 },
+   { 0x80800042, 0x29e04629, 0x00ad0ae2, 0x00ad0b02 },
+   { 0x80800042, 0x2a004629, 0x00ad0b02, 0x00ad0b22 },
+   { 0x80800042, 0x2a204629, 0x00ad0b22, 0x00ad0b42 },
+   { 0x80800042, 0x2a404629, 0x00ad0b62, 0x00ad0b82 },
+   { 0x80800042, 0x2a604629, 0x00ad0b82, 0x00ad0ba2 },
+   { 0x80800042, 0x2a804629, 0x00ad0ba2, 0x00ad0bc2 },
+   { 0x80800042, 0x2aa04629, 0x00ad0bc2, 0x00ad0be2 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000008 },
+   { 0x80800042, 0x29c04629, 0x00ad0ac3, 0x00ad0ac3 },
+   { 0x80800042, 0x29e04629, 0x00ad0ae3, 0x00ad0ae3 },
+   { 0x80800042, 0x2a004629, 0x00ad0b03, 0x00ad0b03 },
+   { 0x80800042, 0x2a204629, 0x00ad0b23, 0x00ad0b23 },
+   { 0x80800042, 0x2a404629, 0x00ad0b63, 0x00ad0b63 },
+   { 0x80800042, 0x2a604629, 0x00ad0b83, 0x00ad0b83 },
+   { 0x80800042, 0x2a804629, 0x00ad0ba3, 0x00ad0ba3 },
+   { 0x80800042, 0x2aa04629, 0x00ad0bc3, 0x00ad0bc3 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000029 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0007000f },
+   { 0x00800031, 0x2ac01d29, 0x00ad0e60, 0x0414a008 },
+   { 0x00800031, 0x2b601d29, 0x00ad0e60, 0x0414a009 },
+   { 0x00000005, 0x20580c21, 0x00210e60, 0x00000003 },
+   { 0x00000041, 0x20580c21, 0x00210058, 0x00000009 },
+   { 0x00000020, 0x34001400, 0x00001400, 0x00210058 },
+   { 0x00800001, 0x29c00229, 0x00ad0ac0, 0x00000000 },
+   { 0x00800001, 0x29e00229, 0x00ad0ae0, 0x00000000 },
+   { 0x00800001, 0x2a000229, 0x00ad0b00, 0x00000000 },
+   { 0x00800001, 0x2a200229, 0x00ad0b20, 0x00000000 },
+   { 0x00800001, 0x2a400229, 0x00ad0b60, 0x00000000 },
+   { 0x00800001, 0x2a600229, 0x00ad0b80, 0x00000000 },
+   { 0x00800001, 0x2a800229, 0x00ad0ba0, 0x00000000 },
+   { 0x00800001, 0x2aa00229, 0x00ad0bc0, 0x00000000 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x0000001a },
+   { 0x00800001, 0x29c00229, 0x00ad0ac1, 0x00000000 },
+   { 0x00800001, 0x29e00229, 0x00ad0ae1, 0x00000000 },
+   { 0x00800001, 0x2a000229, 0x00ad0b01, 0x00000000 },
+   { 0x00800001, 0x2a200229, 0x00ad0b21, 0x00000000 },
+   { 0x00800001, 0x2a400229, 0x00ad0b61, 0x00000000 },
+   { 0x00800001, 0x2a600229, 0x00ad0b81, 0x00000000 },
+   { 0x00800001, 0x2a800229, 0x00ad0ba1, 0x00000000 },
+   { 0x00800001, 0x2aa00229, 0x00ad0bc1, 0x00000000 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000011 },
+   { 0x00800001, 0x29c00229, 0x00ad0ac2, 0x00000000 },
+   { 0x00800001, 0x29e00229, 0x00ad0ae2, 0x00000000 },
+   { 0x00800001, 0x2a000229, 0x00ad0b02, 0x00000000 },
+   { 0x00800001, 0x2a200229, 0x00ad0b22, 0x00000000 },
+   { 0x00800001, 0x2a400229, 0x00ad0b62, 0x00000000 },
+   { 0x00800001, 0x2a600229, 0x00ad0b82, 0x00000000 },
+   { 0x00800001, 0x2a800229, 0x00ad0ba2, 0x00000000 },
+   { 0x00800001, 0x2aa00229, 0x00ad0bc2, 0x00000000 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000008 },
+   { 0x00800001, 0x29c00229, 0x00ad0ac3, 0x00000000 },
+   { 0x00800001, 0x29e00229, 0x00ad0ae3, 0x00000000 },
+   { 0x00800001, 0x2a000229, 0x00ad0b03, 0x00000000 },
+   { 0x00800001, 0x2a200229, 0x00ad0b23, 0x00000000 },
+   { 0x00800001, 0x2a400229, 0x00ad0b63, 0x00000000 },
+   { 0x00800001, 0x2a600229, 0x00ad0b83, 0x00000000 },
+   { 0x00800001, 0x2a800229, 0x00ad0ba3, 0x00000000 },
+   { 0x00800001, 0x2aa00229, 0x00ad0bc3, 0x00000000 },
+   { 0x00600001, 0x25900129, 0x008d09c0, 0x00000000 },
+   { 0x00600001, 0x25b00129, 0x008d09e0, 0x00000000 },
+   { 0x00600001, 0x25d00129, 0x008d0a00, 0x00000000 },
+   { 0x00600001, 0x25f00129, 0x008d0a20, 0x00000000 },
+   { 0x00600001, 0x26100129, 0x008d0a40, 0x00000000 },
+   { 0x00600001, 0x26300129, 0x008d0a60, 0x00000000 },
+   { 0x00600001, 0x26500129, 0x008d0a80, 0x00000000 },
+   { 0x00600001, 0x26700129, 0x008d0aa0, 0x00000000 },
+   { 0x80800042, 0x25802529, 0x00b10880, 0x00b10580 },
+   { 0x80800042, 0x25a02529, 0x00b108a0, 0x00b105a0 },
+   { 0x80800042, 0x25c02529, 0x00b108c0, 0x00b105c0 },
+   { 0x80800042, 0x25e02529, 0x00b108e0, 0x00b105e0 },
+   { 0x80800042, 0x26002529, 0x00b10900, 0x00b10600 },
+   { 0x80800042, 0x26202529, 0x00b10920, 0x00b10620 },
+   { 0x80800042, 0x26402529, 0x00b10940, 0x00b10640 },
+   { 0x80800042, 0x26602529, 0x00b10960, 0x00b10660 },
+   { 0x00600001, 0x20200021, 0x008d0980, 0x00000000 },
+   { 0x00800001, 0x458101f1, 0x00000000, 0x00000000 },
+   { 0x00800001, 0x45a101f1, 0x00000000, 0x00000000 },
+   { 0x00800001, 0x45c101f1, 0x00000000, 0x00000000 },
+   { 0x00800001, 0x45e101f1, 0x00000000, 0x00000000 },
+   { 0x00800001, 0x460101f1, 0x00000000, 0x00000000 },
+   { 0x00800001, 0x462101f1, 0x00000000, 0x00000000 },
+   { 0x00800001, 0x464101f1, 0x00000000, 0x00000000 },
+   { 0x00800001, 0x466101f1, 0x00000000, 0x00000000 },
+   { 0x02000005, 0x20002e3c, 0x0021003e, 0x00010001 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x00000011 },
+   { 0x00800040, 0x238045ad, 0x00b10060, 0x00b20380 },
+   { 0x00800040, 0x23a045ad, 0x00b10080, 0x00b203a0 },
+   { 0x00800040, 0x23c045ad, 0x00b100a0, 0x00b203c0 },
+   { 0x00800040, 0x23e045ad, 0x00b100c0, 0x00b203e0 },
+   { 0x00800040, 0x240045ad, 0x00b100e0, 0x00b20400 },
+   { 0x00800040, 0x242045ad, 0x00b10100, 0x00b20420 },
+   { 0x00800040, 0x244045ad, 0x00b10120, 0x00b20440 },
+   { 0x00800040, 0x246045ad, 0x00b10140, 0x00b20460 },
+   { 0x00800040, 0x248045ad, 0x00b10160, 0x00b20480 },
+   { 0x00800040, 0x24a045ad, 0x00b10180, 0x00b204a0 },
+   { 0x00800040, 0x24c045ad, 0x00b101a0, 0x00b204c0 },
+   { 0x00800040, 0x24e045ad, 0x00b101c0, 0x00b204e0 },
+   { 0x00800040, 0x250045ad, 0x00b101e0, 0x00b20500 },
+   { 0x00800040, 0x252045ad, 0x00b10200, 0x00b20520 },
+   { 0x00800040, 0x254045ad, 0x00b10220, 0x00b20540 },
+   { 0x00800040, 0x256045ad, 0x00b10240, 0x00b20560 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000010 },
+   { 0x00800040, 0x238045ad, 0x00b10060, 0x00b20380 },
+   { 0x00800040, 0x23a045ad, 0x00b10160, 0x00b203a0 },
+   { 0x00800040, 0x23c045ad, 0x00b10080, 0x00b203c0 },
+   { 0x00800040, 0x23e045ad, 0x00b10180, 0x00b203e0 },
+   { 0x00800040, 0x240045ad, 0x00b100a0, 0x00b20400 },
+   { 0x00800040, 0x242045ad, 0x00b101a0, 0x00b20420 },
+   { 0x00800040, 0x244045ad, 0x00b100c0, 0x00b20440 },
+   { 0x00800040, 0x246045ad, 0x00b101c0, 0x00b20460 },
+   { 0x00800040, 0x248045ad, 0x00b100e0, 0x00b20480 },
+   { 0x00800040, 0x24a045ad, 0x00b101e0, 0x00b204a0 },
+   { 0x00800040, 0x24c045ad, 0x00b10100, 0x00b204c0 },
+   { 0x00800040, 0x24e045ad, 0x00b10200, 0x00b204e0 },
+   { 0x00800040, 0x250045ad, 0x00b10120, 0x00b20500 },
+   { 0x00800040, 0x252045ad, 0x00b10220, 0x00b20520 },
+   { 0x00800040, 0x254045ad, 0x00b10140, 0x00b20540 },
+   { 0x00800040, 0x256045ad, 0x00b10240, 0x00b20560 },
+   { 0x00000001, 0x20280061, 0x00000000, 0x000f000f },
+   { 0x80800001, 0x438001b1, 0x00b10380, 0x00000000 },
+   { 0x80800001, 0x43a001b1, 0x00b103a0, 0x00000000 },
+   { 0x80800001, 0x43c001b1, 0x00b103c0, 0x00000000 },
+   { 0x80800001, 0x43e001b1, 0x00b103e0, 0x00000000 },
+   { 0x80800001, 0x440001b1, 0x00b10400, 0x00000000 },
+   { 0x80800001, 0x442001b1, 0x00b10420, 0x00000000 },
+   { 0x80800001, 0x444001b1, 0x00b10440, 0x00000000 },
+   { 0x80800001, 0x446001b1, 0x00b10460, 0x00000000 },
+   { 0x80800001, 0x448001b1, 0x00b10480, 0x00000000 },
+   { 0x80800001, 0x44a001b1, 0x00b104a0, 0x00000000 },
+   { 0x80800001, 0x44c001b1, 0x00b104c0, 0x00000000 },
+   { 0x80800001, 0x44e001b1, 0x00b104e0, 0x00000000 },
+   { 0x80800001, 0x450001b1, 0x00b10500, 0x00000000 },
+   { 0x80800001, 0x452001b1, 0x00b10520, 0x00000000 },
+   { 0x80800001, 0x454001b1, 0x00b10540, 0x00000000 },
+   { 0x80800001, 0x456001b1, 0x00b10560, 0x00000000 },
+   { 0x00800001, 0x20200232, 0x00b20380, 0x00000000 },
+   { 0x00800001, 0x20300232, 0x00b203a0, 0x00000000 },
+   { 0x00800001, 0x20400232, 0x00b203c0, 0x00000000 },
+   { 0x00800001, 0x20500232, 0x00b203e0, 0x00000000 },
+   { 0x00800001, 0x20600232, 0x00b20400, 0x00000000 },
+   { 0x00800001, 0x20700232, 0x00b20420, 0x00000000 },
+   { 0x00800001, 0x20800232, 0x00b20440, 0x00000000 },
+   { 0x00800001, 0x20900232, 0x00b20460, 0x00000000 },
+   { 0x00800001, 0x20a00232, 0x00b20480, 0x00000000 },
+   { 0x00800001, 0x20b00232, 0x00b204a0, 0x00000000 },
+   { 0x00800001, 0x20c00232, 0x00b204c0, 0x00000000 },
+   { 0x00800001, 0x20d00232, 0x00b204e0, 0x00000000 },
+   { 0x00800001, 0x20e00232, 0x00b20500, 0x00000000 },
+   { 0x00800001, 0x20f00232, 0x00b20520, 0x00000000 },
+   { 0x00800001, 0x21000232, 0x00b20540, 0x00000000 },
+   { 0x00800001, 0x21100232, 0x00b20560, 0x00000000 },
+   { 0x00800031, 0x24001d28, 0x008d0020, 0x05902000 },
+   { 0x00000001, 0x20280061, 0x00000000, 0x00070007 },
+   { 0x00200008, 0x20201c21, 0x00450020, 0x00000001 },
+   { 0x00800040, 0x258025a9, 0x00b10260, 0x00b10580 },
+   { 0x00800040, 0x25a025a9, 0x00b10280, 0x00b105a0 },
+   { 0x00800040, 0x25c025a9, 0x00b102a0, 0x00b105c0 },
+   { 0x00800040, 0x25e025a9, 0x00b102c0, 0x00b105e0 },
+   { 0x80800001, 0x45800131, 0x00b10580, 0x00000000 },
+   { 0x80800001, 0x45a00131, 0x00b105a0, 0x00000000 },
+   { 0x80800001, 0x45c00131, 0x00b105c0, 0x00000000 },
+   { 0x80800001, 0x45e00131, 0x00b105e0, 0x00000000 },
+   { 0x00800001, 0x20200232, 0x00b20580, 0x00000000 },
+   { 0x00800001, 0x20300232, 0x00b205a0, 0x00000000 },
+   { 0x00800001, 0x20400232, 0x00b205c0, 0x00000000 },
+   { 0x00800001, 0x20500232, 0x00b205e0, 0x00000000 },
+   { 0x00800031, 0x24001d28, 0x008d0020, 0x05302001 },
+   { 0x00800040, 0x260025a9, 0x00b102e0, 0x00b10600 },
+   { 0x00800040, 0x262025a9, 0x00b10300, 0x00b10620 },
+   { 0x00800040, 0x264025a9, 0x00b10320, 0x00b10640 },
+   { 0x00800040, 0x266025a9, 0x00b10340, 0x00b10660 },
+   { 0x80800001, 0x46000131, 0x00b10600, 0x00000000 },
+   { 0x80800001, 0x46200131, 0x00b10620, 0x00000000 },
+   { 0x80800001, 0x46400131, 0x00b10640, 0x00000000 },
+   { 0x80800001, 0x46600131, 0x00b10660, 0x00000000 },
+   { 0x00800001, 0x20200232, 0x00b20600, 0x00000000 },
+   { 0x00800001, 0x20300232, 0x00b20620, 0x00000000 },
+   { 0x00800001, 0x20400232, 0x00b20640, 0x00000000 },
+   { 0x00800001, 0x20500232, 0x00b20660, 0x00000000 },
+   { 0x00800031, 0x24001d28, 0x008d0020, 0x05302002 },
+   { 0x00800031, 0x24001d28, 0x008d0000, 0x87100000 },
diff --git a/src/xvmc/shader/mc/dual_prime_igd.g4a b/src/xvmc/shader/mc/dual_prime_igd.g4a
new file mode 100644
index 0000000..e741244
--- /dev/null
+++ b/src/xvmc/shader/mc/dual_prime_igd.g4a
@@ -0,0 +1,223 @@
+/*
+ * Copyright © 2008 Intel Corporation
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice (including the next
+ * paragraph) shall be included in all copies or substantial portions of the
+ * Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
+ * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+ * SOFTWARE.
+ *
+ * Author:
+ *    Zou Nan hai <nanhai.zou at intel.com>
+ *    Zhang Hua jun <huajun.zhang at intel.com>
+ *    Xing Dong sheng <dongsheng.xing at intel.com>
+ *
+ */
+mov (8) g76.0<1>UD g1.0<8,8,1>UD {align1};
+//mov (8) g77.0<1>UD g2.0<8,8,1>UD {align1};
+
+include(`block_clear.g4i')
+mov (8) g115.0<1>UD g1.0<8,8,1>UD {align1};
+mov (8) g116.0<1>UD g1.0<8,8,1>UD {align1};
+
+/* forward---Y---first vector*/
+mov(1) g115.8<1>UD 0x007001fUD  { align1 };
+asr (2) g115.14<1>W g1.14<2,2,1>W 1W {align1};
+add (2) g115.0<1>D g116.0<2,2,1>D g115.14<2,2,1>W {align1};
+and (1) g115.4<1>UD g115.4<1,1,1>UD 0xFFFFFFFEUD {align1};
+mov(1) g115.8<1>UD 0x1fUD  { align1 }; //read 1 line, 32 columns.
+and.nz (1) null g1.31<1,1,1>UB 0x1UW {align1};
+(f0) add (1) g115.4<1>D g115.4<1,1,1>D 1D {align1};
+define(`surface',`4')
+define(`mv1',`g1.14')
+define(`mv2',`g1.16')
+include(`motion_field_y_igd.g4i')
+mov (8) g52.0<1>UD g96.0<8,8,1>UD {align1};
+mov (8) g54.0<1>UD g97.0<8,8,1>UD {align1};
+mov (8) g56.0<1>UD g98.0<8,8,1>UD {align1};
+mov (8) g58.0<1>UD g99.0<8,8,1>UD {align1};
+mov (8) g60.0<1>UD g100.0<8,8,1>UD {align1};
+mov (8) g62.0<1>UD g101.0<8,8,1>UD {align1};
+mov (8) g64.0<1>UD g102.0<8,8,1>UD {align1};
+mov (8) g66.0<1>UD g103.0<8,8,1>UD {align1};
+
+/*forward---Y---second vector*/
+asr (2) g115.14<1>W g1.22<2,2,1>W 1W {align1};
+add (2) g115.0<1>D g116.0<2,2,1>D g115.14<2,2,1>W {align1};
+and (1) g115.4<1>UD g115.4<1,1,1>UD 0xFFFFFFFEUD {align1};
+mov(1) g115.8<1>UD 0x1fUD { align1 }; //read 1 line, 32 columns.
+and.nz (1) null g1.31<1,1,1>UB 0x4UD {align1};
+(f0) add (1) g115.4<1>D g115.4<1,1,1>D 1D {align1};
+define(`surface',`4')
+define(`mv1',`g1.22')
+define(`mv2',`g1.24')
+include(`motion_field_y_igd.g4i')
+mov (8) g53.0<1>UD g96.0<8,8,1>UD {align1};
+mov (8) g55.0<1>UD g97.0<8,8,1>UD {align1};
+mov (8) g57.0<1>UD g98.0<8,8,1>UD {align1};
+mov (8) g59.0<1>UD g99.0<8,8,1>UD {align1};
+mov (8) g61.0<1>UD g100.0<8,8,1>UD {align1};
+mov (8) g63.0<1>UD g101.0<8,8,1>UD {align1};
+mov (8) g65.0<1>UD g102.0<8,8,1>UD {align1};
+mov (8) g67.0<1>UD g103.0<8,8,1>UD {align1};
+
+/*forward---UV---first vector*/
+mov(1) g115.8<1>UD 0x007000fUD  { align1 };
+asr (2) g115.14<1>W g1.14<2,2,1>W 2W {align1};
+asr (2) g115.0<1>D g116.0<2,2,1>D 1D {align1};
+add (2) g115.0<1>D g115.0<2,2,1>D g115.14<2,2,1>W {align1};
+and (1) g115.4<1>UD g115.4<1,1,1>UD 0xFFFFFFFEUD {align1};
+and.nz (1) null g1.31<1,1,1>UB 0x1UW {align1};
+(f0) add (1) g115.4<1>UD g115.4<1,1,1>UD 1UD {align1};
+define(`surface_u',`5')
+define(`surface_v',`6')
+define(`mv1',`g1.14')
+define(`mv2',`g1.16')
+include(`motion_field_uv_igd.g4i')
+mov (8) g68.0<1>UW g78.0<8,8,1>UW {align1};
+mov (8) g69.0<1>UW g79.0<8,8,1>UW {align1};
+mov (8) g70.0<1>UW g80.0<8,8,1>UW {align1};
+mov (8) g71.0<1>UW g81.0<8,8,1>UW {align1};
+mov (8) g72.0<1>UW g82.0<8,8,1>UW {align1};
+mov (8) g73.0<1>UW g83.0<8,8,1>UW {align1};
+mov (8) g74.0<1>UW g84.0<8,8,1>UW {align1};
+mov (8) g75.0<1>UW g85.0<8,8,1>UW {align1};
+
+/*forward---UV---second vector */
+asr (2) g115.14<1>W g1.22<2,2,1>W 2W {align1};
+asr (2) g115.0<1>D g116.0<2,2,1>D 1D {align1};
+add (2) g115.0<1>D g115.0<2,2,1>D g115.14<2,2,1>W {align1};
+and (1) g115.4<1>UD g115.4<1,1,1>UD 0xFFFFFFFEUD {align1};
+and.nz (1) null g1.31<1,1,1>UB 0x4UW {align1};
+(f0) add (1) g115.4<1>UD g115.4<1,1,1>UD 1UD {align1};
+define(`mv1',`g1.24')
+define(`mv2',`g1.26')
+include(`motion_field_uv_igd.g4i')
+mov (8) g68.16<1>UW g78.0<8,8,1>UW {align1};
+mov (8) g69.16<1>UW g79.0<8,8,1>UW {align1};
+mov (8) g70.16<1>UW g80.0<8,8,1>UW {align1};
+mov (8) g71.16<1>UW g81.0<8,8,1>UW {align1};
+mov (8) g72.16<1>UW g82.0<8,8,1>UW {align1};
+mov (8) g73.16<1>UW g83.0<8,8,1>UW {align1};
+mov (8) g74.16<1>UW g84.0<8,8,1>UW {align1};
+mov (8) g75.16<1>UW g85.0<8,8,1>UW {align1};
+
+/*backward---Y---first vector */
+mov(8) g1.0<1>UD g116.0<8,8,1>UD {align1};
+mov(1) g115.8<1>UD 0x007001fUD  { align1 };
+mov(1) g1.8<1>UD 0x007000fUD  { align1 };
+asr (2) g115.14<1>W g1.18<2,2,1>W 1W {align1};
+add (2) g115.0<1>D g116.0<2,2,1>D g115.14<2,2,1>W {align1};
+and (1) g115.4<1>UD g115.4<1,1,1>UD 0xFFFFFFFEUD {align1};
+mov(1) g115.8<1>UD 0x1fUD  { align1 }; //read 1 line, 32 columns.
+and.nz (1) null g1.31<1,1,1>UB 0x2UW {align1};
+(f0) add (1) g115.4<1>D g115.4<1,1,1>D 1D {align1};
+define(`surface',`7')
+define(`mv1',`g1.18')
+define(`mv2',`g1.20')
+include(`motion_field_y_igd.g4i')
+mov (8) g28.0<1>UD g96.0<8,8,1>UD {align1};
+mov (8) g30.0<1>UD g97.0<8,8,1>UD {align1};
+mov (8) g32.0<1>UD g98.0<8,8,1>UD {align1};
+mov (8) g34.0<1>UD g99.0<8,8,1>UD {align1};
+mov (8) g36.0<1>UD g100.0<8,8,1>UD {align1};
+mov (8) g38.0<1>UD g101.0<8,8,1>UD {align1};
+mov (8) g40.0<1>UD g102.0<8,8,1>UD {align1};
+mov (8) g42.0<1>UD g103.0<8,8,1>UD {align1};
+
+/*backward---Y---second vector */
+asr (2) g115.14<1>W g1.26<2,2,1>W 1W {align1};
+add (2) g115.0<1>D g116.0<2,2,1>D g115.14<2,2,1>W {align1};
+and (1) g115.4<1>UD g115.4<1,1,1>UD 0xFFFFFFFEUD {align1};
+mov(1) g115.8<1>UD 0x1fUD  { align1 }; //read 1 line, 32 columns.
+and.nz (1) null g2.20<1,1,1>UD 0x8UD {align1};
+(f0) add (1) g115.4<1>D g115.4<1,1,1>D 1D {align1};
+define(`surface',`7')
+define(`mv1',`g1.26')
+define(`mv2',`g1.28')
+include(`motion_field_y_igd.g4i')
+
+avg.sat (16) g28.0<1>UW g52.0<16,16,1>UW g28.0<16,16,1>UW {align1};
+avg.sat (16) g29.0<1>UW g53.0<16,16,1>UW g96.0<16,16,1>UW {align1};
+avg.sat (16) g30.0<1>UW g54.0<16,16,1>UW g30.0<16,16,1>UW {align1};
+avg.sat (16) g31.0<1>UW g55.0<16,16,1>UW g97.0<16,16,1>UW {align1};
+avg.sat (16) g32.0<1>UW g56.0<16,16,1>UW g32.0<16,16,1>UW {align1};
+avg.sat (16) g33.0<1>UW g57.0<16,16,1>UW g98.0<16,16,1>UW {align1};
+avg.sat (16) g34.0<1>UW g58.0<16,16,1>UW g34.0<16,16,1>UW {align1};
+avg.sat (16) g35.0<1>UW g59.0<16,16,1>UW g99.0<16,16,1>UW {align1};
+avg.sat (16) g36.0<1>UW g60.0<16,16,1>UW g36.0<16,16,1>UW {align1};
+avg.sat (16) g37.0<1>UW g61.0<16,16,1>UW g100.0<16,16,1>UW {align1};
+avg.sat (16) g38.0<1>UW g62.0<16,16,1>UW g38.0<16,16,1>UW {align1};
+avg.sat (16) g39.0<1>UW g63.0<16,16,1>UW g101.0<16,16,1>UW {align1};
+avg.sat (16) g40.0<1>UW g64.0<16,16,1>UW g40.0<16,16,1>UW {align1};
+avg.sat (16) g41.0<1>UW g65.0<16,16,1>UW g102.0<16,16,1>UW {align1};
+avg.sat (16) g42.0<1>UW g66.0<16,16,1>UW g42.0<16,16,1>UW {align1};
+avg.sat (16) g43.0<1>UW g67.0<16,16,1>UW g103.0<16,16,1>UW {align1};
+
+/*backward---UV---first vector */
+mov(1) g115.8<1>UD 0x007000fUD  { align1 };
+asr (2) g115.14<1>W g1.18<2,2,1>W 2W {align1};
+asr (2) g115.0<1>D g116.0<2,2,1>D 1D {align1};
+add (2) g115.0<1>D g115.0<2,2,1>D g115.14<2,2,1>W {align1};
+and (1) g115.4<1>UD g115.4<1,1,1>UD 0xFFFFFFFEUD {align1};
+and.nz (1) null g1.31<1,1,1>UB 0x2UW {align1};
+(f0) add (1) g115.4<1>UD g115.4<1,1,1>UD 1UD {align1};
+define(`surface_u',`8')
+define(`surface_v',`9')
+define(`mv1',`g1.18')
+define(`mv2',`g1.20')
+include(`motion_field_uv_igd.g4i')
+mov (8) g44.0<1>UW g78.0<8,8,1>UW {align1};
+mov (8) g45.0<1>UW g79.0<8,8,1>UW {align1};
+mov (8) g46.0<1>UW g80.0<8,8,1>UW {align1};
+mov (8) g47.0<1>UW g81.0<8,8,1>UW {align1};
+mov (8) g48.0<1>UW g82.0<8,8,1>UW {align1};
+mov (8) g49.0<1>UW g83.0<8,8,1>UW {align1};
+mov (8) g50.0<1>UW g84.0<8,8,1>UW {align1};
+mov (8) g51.0<1>UW g85.0<8,8,1>UW {align1};
+
+/*backward---UV---second vector */
+asr (2) g115.14<1>W g1.26<2,2,1>W 2W {align1};
+asr (2) g115.0<1>D g116.0<2,2,1>D 1D {align1};
+add (2) g115.0<1>D g115.0<2,2,1>D g115.14<2,2,1>W {align1};
+and (1) g115.4<1>UD g115.4<1,1,1>UD 0xFFFFFFFEUD {align1};
+and.nz (1) null g1.31<1,1,1>UB 0x8UW {align1};
+(f0) add (1) g115.4<1>UD g115.4<1,1,1>UD 1UD {align1};
+define(`mv1',`g1.26')
+define(`mv2',`g1.28')
+include(`motion_field_uv_igd.g4i')
+mov (8) g44.16<1>UW g78.0<8,8,1>UW {align1};
+mov (8) g45.16<1>UW g79.0<8,8,1>UW {align1};
+mov (8) g46.16<1>UW g80.0<8,8,1>UW {align1};
+mov (8) g47.16<1>UW g81.0<8,8,1>UW {align1};
+mov (8) g48.16<1>UW g82.0<8,8,1>UW {align1};
+mov (8) g49.16<1>UW g83.0<8,8,1>UW {align1};
+mov (8) g50.16<1>UW g84.0<8,8,1>UW {align1};
+mov (8) g51.16<1>UW g85.0<8,8,1>UW {align1};
+
+avg.sat (16) g44.0<1>UW g68.0<16,16,1>UW g44.0<16,16,1>UW {align1};
+avg.sat (16) g45.0<1>UW g69.0<16,16,1>UW g45.0<16,16,1>UW {align1};
+avg.sat (16) g46.0<1>UW g70.0<16,16,1>UW g46.0<16,16,1>UW {align1};
+avg.sat (16) g47.0<1>UW g71.0<16,16,1>UW g47.0<16,16,1>UW {align1};
+avg.sat (16) g48.0<1>UW g72.0<16,16,1>UW g48.0<16,16,1>UW {align1};
+avg.sat (16) g49.0<1>UW g73.0<16,16,1>UW g49.0<16,16,1>UW {align1};
+avg.sat (16) g50.0<1>UW g74.0<16,16,1>UW g50.0<16,16,1>UW {align1};
+avg.sat (16) g51.0<1>UW g75.0<16,16,1>UW g51.0<16,16,1>UW {align1};
+
+include(`addidct.g4i')
+
+//send (16) 0 acc0<1>UW g0<8,8,1>UW 
+//	thread_spawner(0, 0, 0) mlen 1 rlen 0 { align1 EOT};
diff --git a/src/xvmc/shader/mc/dual_prime_igd.g4b b/src/xvmc/shader/mc/dual_prime_igd.g4b
new file mode 100644
index 0000000..6477d06
--- /dev/null
+++ b/src/xvmc/shader/mc/dual_prime_igd.g4b
@@ -0,0 +1,1142 @@
+   { 0x00600001, 0x29800021, 0x008d0020, 0x00000000 },
+   { 0x02000005, 0x20000c3c, 0x00210040, 0x00000001 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x00000030 },
+   { 0x00000040, 0x20480c21, 0x00210988, 0x00000000 },
+   { 0x00800031, 0x20601c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x20801c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x20a01c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x20c01c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x20e01c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x21001c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x21201c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x21401c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x21601c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x21801c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x21a01c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x21c01c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x21e01c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x22001c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x22201c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x22401c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x22601c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x22801c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x22a01c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x22c01c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x22e01c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x23001c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x23201c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x23401c21, 0x00b10040, 0x04110203 },
+   { 0x02000005, 0x20002d3c, 0x0021098c, 0x00200020 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x00000008 },
+   { 0x00600001, 0x20600169, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x20800169, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x20a00169, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x20c00169, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x20e00169, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x21000169, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x21200169, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x21400169, 0x00000000, 0x00000000 },
+   { 0x02000005, 0x20002d3c, 0x0021002c, 0x00100010 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x00000008 },
+   { 0x00600001, 0x20700169, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x20900169, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x20b00169, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x20d00169, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x20f00169, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x21100169, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x21300169, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x21500169, 0x00000000, 0x00000000 },
+   { 0x02000005, 0x20002d3c, 0x0021002c, 0x00080008 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x00000008 },
+   { 0x00600001, 0x21600169, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x21800169, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x21a00169, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x21c00169, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x21e00169, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x22000169, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x22200169, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x22400169, 0x00000000, 0x00000000 },
+   { 0x02000005, 0x20002d3c, 0x0021002c, 0x00040004 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x00000008 },
+   { 0x00600001, 0x21700169, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x21900169, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x21b00169, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x21d00169, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x21f00169, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x22100169, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x22300169, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x22500169, 0x00000000, 0x00000000 },
+   { 0x02000005, 0x20002d3c, 0x0021002c, 0x00020002 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x00000004 },
+   { 0x00800001, 0x22600169, 0x00000000, 0x00000000 },
+   { 0x00800001, 0x22800169, 0x00000000, 0x00000000 },
+   { 0x00800001, 0x22a00169, 0x00000000, 0x00000000 },
+   { 0x00800001, 0x22c00169, 0x00000000, 0x00000000 },
+   { 0x02000005, 0x20002d3c, 0x0021002c, 0x00010001 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x00000004 },
+   { 0x00800001, 0x22e00169, 0x00000000, 0x00000000 },
+   { 0x00800001, 0x23000169, 0x00000000, 0x00000000 },
+   { 0x00800001, 0x23200169, 0x00000000, 0x00000000 },
+   { 0x00800001, 0x23400169, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x2e600021, 0x008d0020, 0x00000000 },
+   { 0x00600001, 0x2e800021, 0x008d0020, 0x00000000 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0007001f },
+   { 0x0020000c, 0x2e6e3dad, 0x0045002e, 0x00010001 },
+   { 0x00200040, 0x2e6034a5, 0x00450e80, 0x00450e6e },
+   { 0x00000005, 0x2e640c21, 0x00210e64, 0xfffffffe },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
+   { 0x02000005, 0x20002e3c, 0x0021003f, 0x00010001 },
+   { 0x00010040, 0x2e641ca5, 0x00210e64, 0x00000001 },
+   { 0x01000005, 0x20002d3c, 0x0021002e, 0x00010001 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x00000045 },
+   { 0x01000005, 0x20002d3c, 0x00210030, 0x00010001 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x0000002f },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
+   { 0x00800031, 0x29c01d29, 0x008d0e60, 0x0411a004 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00800031, 0x2a001d29, 0x008d0e60, 0x0411a004 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00800031, 0x2a401d29, 0x008d0e60, 0x0411a004 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00800031, 0x2a801d29, 0x008d0e60, 0x0411a004 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0007001f },
+   { 0x00800031, 0x2ac01d29, 0x008d0e60, 0x0418a004 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
+   { 0x00800031, 0x2bc01d29, 0x008d0e60, 0x0411a004 },
+   { 0x00800040, 0x2c004629, 0x00b109c0, 0x00b10a00 },
+   { 0x00800040, 0x2c204629, 0x00b10a00, 0x00b10a40 },
+   { 0x00800040, 0x2c404629, 0x00b10a40, 0x00b10a80 },
+   { 0x00800040, 0x2c604629, 0x00b10a80, 0x00b10ac0 },
+   { 0x00800040, 0x2c804629, 0x00b10ac0, 0x00b10b00 },
+   { 0x00800040, 0x2ca04629, 0x00b10b00, 0x00b10b40 },
+   { 0x00800040, 0x2cc04629, 0x00b10b40, 0x00b10b80 },
+   { 0x00800040, 0x2ce04629, 0x00b10b80, 0x00b10bc0 },
+   { 0x00800040, 0x2c004529, 0x00b10c00, 0x00b109c1 },
+   { 0x00800040, 0x2c204529, 0x00b10c20, 0x00b10a01 },
+   { 0x00800040, 0x2c404529, 0x00b10c40, 0x00b10a41 },
+   { 0x00800040, 0x2c604529, 0x00b10c60, 0x00b10a81 },
+   { 0x00800040, 0x2c804529, 0x00b10c80, 0x00b10ac1 },
+   { 0x00800040, 0x2ca04529, 0x00b10ca0, 0x00b10b01 },
+   { 0x00800040, 0x2cc04529, 0x00b10cc0, 0x00b10b41 },
+   { 0x00800040, 0x2ce04529, 0x00b10ce0, 0x00b10b81 },
+   { 0x00800040, 0x2c004529, 0x00b10c00, 0x00b10a01 },
+   { 0x00800040, 0x2c204529, 0x00b10c20, 0x00b10a41 },
+   { 0x00800040, 0x2c404529, 0x00b10c40, 0x00b10a81 },
+   { 0x00800040, 0x2c604529, 0x00b10c60, 0x00b10ac1 },
+   { 0x00800040, 0x2c804529, 0x00b10c80, 0x00b10b01 },
+   { 0x00800040, 0x2ca04529, 0x00b10ca0, 0x00b10b41 },
+   { 0x00800040, 0x2cc04529, 0x00b10cc0, 0x00b10b81 },
+   { 0x00800040, 0x2ce04529, 0x00b10ce0, 0x00b10bc1 },
+   { 0x00800008, 0x2c002d29, 0x00b10c00, 0x00020002 },
+   { 0x00800008, 0x2c202d29, 0x00b10c20, 0x00020002 },
+   { 0x00800008, 0x2c402d29, 0x00b10c40, 0x00020002 },
+   { 0x00800008, 0x2c602d29, 0x00b10c60, 0x00020002 },
+   { 0x00800008, 0x2c802d29, 0x00b10c80, 0x00020002 },
+   { 0x00800008, 0x2ca02d29, 0x00b10ca0, 0x00020002 },
+   { 0x00800008, 0x2cc02d29, 0x00b10cc0, 0x00020002 },
+   { 0x00800008, 0x2ce02d29, 0x00b10ce0, 0x00020002 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000040 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
+   { 0x00800031, 0x29c01d29, 0x008d0e60, 0x0411a004 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00800031, 0x2a001d29, 0x008d0e60, 0x0411a004 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00800031, 0x2a401d29, 0x008d0e60, 0x0411a004 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00800031, 0x2a801d29, 0x008d0e60, 0x0411a004 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0007001f },
+   { 0x00800031, 0x2ac01d29, 0x008d0e60, 0x0418a004 },
+   { 0x80800042, 0x2c004629, 0x00b109c0, 0x00b109c1 },
+   { 0x80800042, 0x2c204629, 0x00b10a00, 0x00b10a01 },
+   { 0x80800042, 0x2c404629, 0x00b10a40, 0x00b10a41 },
+   { 0x80800042, 0x2c604629, 0x00b10a80, 0x00b10a81 },
+   { 0x80800042, 0x2c804629, 0x00b10ac0, 0x00b10ac1 },
+   { 0x80800042, 0x2ca04629, 0x00b10b00, 0x00b10b01 },
+   { 0x80800042, 0x2cc04629, 0x00b10b40, 0x00b10b41 },
+   { 0x80800042, 0x2ce04629, 0x00b10b80, 0x00b10b81 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x0000002c },
+   { 0x01000005, 0x20002d3c, 0x00210030, 0x00010001 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x00000017 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
+   { 0x00800031, 0x29c01d29, 0x008d0e60, 0x0411a004 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00800031, 0x2a001d29, 0x008d0e60, 0x0411a004 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00800031, 0x2a401d29, 0x008d0e60, 0x0411a004 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00800031, 0x2a801d29, 0x008d0e60, 0x0411a004 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0007001f },
+   { 0x00800031, 0x2ac01d29, 0x008d0e60, 0x0418a004 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
+   { 0x00800031, 0x2bc01d29, 0x008d0e60, 0x0411a004 },
+   { 0x80800042, 0x2c004629, 0x00b109c0, 0x00b10a00 },
+   { 0x80800042, 0x2c204629, 0x00b10a00, 0x00b10a40 },
+   { 0x80800042, 0x2c404629, 0x00b10a40, 0x00b10a80 },
+   { 0x80800042, 0x2c604629, 0x00b10a80, 0x00b10ac0 },
+   { 0x80800042, 0x2c804629, 0x00b10ac0, 0x00b10b00 },
+   { 0x80800042, 0x2ca04629, 0x00b10b00, 0x00b10b40 },
+   { 0x80800042, 0x2cc04629, 0x00b10b40, 0x00b10b80 },
+   { 0x80800042, 0x2ce04629, 0x00b10b80, 0x00b10bc0 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000013 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
+   { 0x00800031, 0x29c01d29, 0x008d0e60, 0x0411a004 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00800031, 0x2a001d29, 0x008d0e60, 0x0411a004 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00800031, 0x2a401d29, 0x008d0e60, 0x0411a004 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00800031, 0x2a801d29, 0x008d0e60, 0x0411a004 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0007001f },
+   { 0x00800031, 0x2ac01d29, 0x008d0e60, 0x0418a004 },
+   { 0x00800001, 0x2c000229, 0x00b109c0, 0x00000000 },
+   { 0x00800001, 0x2c200229, 0x00b10a00, 0x00000000 },
+   { 0x00800001, 0x2c400229, 0x00b10a40, 0x00000000 },
+   { 0x00800001, 0x2c600229, 0x00b10a80, 0x00000000 },
+   { 0x00800001, 0x2c800229, 0x00b10ac0, 0x00000000 },
+   { 0x00800001, 0x2ca00229, 0x00b10b00, 0x00000000 },
+   { 0x00800001, 0x2cc00229, 0x00b10b40, 0x00000000 },
+   { 0x00800001, 0x2ce00229, 0x00b10b80, 0x00000000 },
+   { 0x00600001, 0x26800021, 0x008d0c00, 0x00000000 },
+   { 0x00600001, 0x26c00021, 0x008d0c20, 0x00000000 },
+   { 0x00600001, 0x27000021, 0x008d0c40, 0x00000000 },
+   { 0x00600001, 0x27400021, 0x008d0c60, 0x00000000 },
+   { 0x00600001, 0x27800021, 0x008d0c80, 0x00000000 },
+   { 0x00600001, 0x27c00021, 0x008d0ca0, 0x00000000 },
+   { 0x00600001, 0x28000021, 0x008d0cc0, 0x00000000 },
+   { 0x00600001, 0x28400021, 0x008d0ce0, 0x00000000 },
+   { 0x0020000c, 0x2e6e3dad, 0x00450036, 0x00010001 },
+   { 0x00200040, 0x2e6034a5, 0x00450e80, 0x00450e6e },
+   { 0x00000005, 0x2e640c21, 0x00210e64, 0xfffffffe },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
+   { 0x02000005, 0x20000e3c, 0x0021003f, 0x00000004 },
+   { 0x00010040, 0x2e641ca5, 0x00210e64, 0x00000001 },
+   { 0x01000005, 0x20002d3c, 0x00210036, 0x00010001 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x00000045 },
+   { 0x01000005, 0x20002d3c, 0x00210038, 0x00010001 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x0000002f },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
+   { 0x00800031, 0x29c01d29, 0x008d0e60, 0x0411a004 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00800031, 0x2a001d29, 0x008d0e60, 0x0411a004 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00800031, 0x2a401d29, 0x008d0e60, 0x0411a004 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00800031, 0x2a801d29, 0x008d0e60, 0x0411a004 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0007001f },
+   { 0x00800031, 0x2ac01d29, 0x008d0e60, 0x0418a004 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
+   { 0x00800031, 0x2bc01d29, 0x008d0e60, 0x0411a004 },
+   { 0x00800040, 0x2c004629, 0x00b109c0, 0x00b10a00 },
+   { 0x00800040, 0x2c204629, 0x00b10a00, 0x00b10a40 },
+   { 0x00800040, 0x2c404629, 0x00b10a40, 0x00b10a80 },
+   { 0x00800040, 0x2c604629, 0x00b10a80, 0x00b10ac0 },
+   { 0x00800040, 0x2c804629, 0x00b10ac0, 0x00b10b00 },
+   { 0x00800040, 0x2ca04629, 0x00b10b00, 0x00b10b40 },
+   { 0x00800040, 0x2cc04629, 0x00b10b40, 0x00b10b80 },
+   { 0x00800040, 0x2ce04629, 0x00b10b80, 0x00b10bc0 },
+   { 0x00800040, 0x2c004529, 0x00b10c00, 0x00b109c1 },
+   { 0x00800040, 0x2c204529, 0x00b10c20, 0x00b10a01 },
+   { 0x00800040, 0x2c404529, 0x00b10c40, 0x00b10a41 },
+   { 0x00800040, 0x2c604529, 0x00b10c60, 0x00b10a81 },
+   { 0x00800040, 0x2c804529, 0x00b10c80, 0x00b10ac1 },
+   { 0x00800040, 0x2ca04529, 0x00b10ca0, 0x00b10b01 },
+   { 0x00800040, 0x2cc04529, 0x00b10cc0, 0x00b10b41 },
+   { 0x00800040, 0x2ce04529, 0x00b10ce0, 0x00b10b81 },
+   { 0x00800040, 0x2c004529, 0x00b10c00, 0x00b10a01 },
+   { 0x00800040, 0x2c204529, 0x00b10c20, 0x00b10a41 },
+   { 0x00800040, 0x2c404529, 0x00b10c40, 0x00b10a81 },
+   { 0x00800040, 0x2c604529, 0x00b10c60, 0x00b10ac1 },
+   { 0x00800040, 0x2c804529, 0x00b10c80, 0x00b10b01 },
+   { 0x00800040, 0x2ca04529, 0x00b10ca0, 0x00b10b41 },
+   { 0x00800040, 0x2cc04529, 0x00b10cc0, 0x00b10b81 },
+   { 0x00800040, 0x2ce04529, 0x00b10ce0, 0x00b10bc1 },
+   { 0x00800008, 0x2c002d29, 0x00b10c00, 0x00020002 },
+   { 0x00800008, 0x2c202d29, 0x00b10c20, 0x00020002 },
+   { 0x00800008, 0x2c402d29, 0x00b10c40, 0x00020002 },
+   { 0x00800008, 0x2c602d29, 0x00b10c60, 0x00020002 },
+   { 0x00800008, 0x2c802d29, 0x00b10c80, 0x00020002 },
+   { 0x00800008, 0x2ca02d29, 0x00b10ca0, 0x00020002 },
+   { 0x00800008, 0x2cc02d29, 0x00b10cc0, 0x00020002 },
+   { 0x00800008, 0x2ce02d29, 0x00b10ce0, 0x00020002 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000040 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
+   { 0x00800031, 0x29c01d29, 0x008d0e60, 0x0411a004 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00800031, 0x2a001d29, 0x008d0e60, 0x0411a004 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00800031, 0x2a401d29, 0x008d0e60, 0x0411a004 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00800031, 0x2a801d29, 0x008d0e60, 0x0411a004 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0007001f },
+   { 0x00800031, 0x2ac01d29, 0x008d0e60, 0x0418a004 },
+   { 0x80800042, 0x2c004629, 0x00b109c0, 0x00b109c1 },
+   { 0x80800042, 0x2c204629, 0x00b10a00, 0x00b10a01 },
+   { 0x80800042, 0x2c404629, 0x00b10a40, 0x00b10a41 },
+   { 0x80800042, 0x2c604629, 0x00b10a80, 0x00b10a81 },
+   { 0x80800042, 0x2c804629, 0x00b10ac0, 0x00b10ac1 },
+   { 0x80800042, 0x2ca04629, 0x00b10b00, 0x00b10b01 },
+   { 0x80800042, 0x2cc04629, 0x00b10b40, 0x00b10b41 },
+   { 0x80800042, 0x2ce04629, 0x00b10b80, 0x00b10b81 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x0000002c },
+   { 0x01000005, 0x20002d3c, 0x00210038, 0x00010001 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x00000017 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
+   { 0x00800031, 0x29c01d29, 0x008d0e60, 0x0411a004 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00800031, 0x2a001d29, 0x008d0e60, 0x0411a004 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00800031, 0x2a401d29, 0x008d0e60, 0x0411a004 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00800031, 0x2a801d29, 0x008d0e60, 0x0411a004 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0007001f },
+   { 0x00800031, 0x2ac01d29, 0x008d0e60, 0x0418a004 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
+   { 0x00800031, 0x2bc01d29, 0x008d0e60, 0x0411a004 },
+   { 0x80800042, 0x2c004629, 0x00b109c0, 0x00b10a00 },
+   { 0x80800042, 0x2c204629, 0x00b10a00, 0x00b10a40 },
+   { 0x80800042, 0x2c404629, 0x00b10a40, 0x00b10a80 },
+   { 0x80800042, 0x2c604629, 0x00b10a80, 0x00b10ac0 },
+   { 0x80800042, 0x2c804629, 0x00b10ac0, 0x00b10b00 },
+   { 0x80800042, 0x2ca04629, 0x00b10b00, 0x00b10b40 },
+   { 0x80800042, 0x2cc04629, 0x00b10b40, 0x00b10b80 },
+   { 0x80800042, 0x2ce04629, 0x00b10b80, 0x00b10bc0 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000013 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
+   { 0x00800031, 0x29c01d29, 0x008d0e60, 0x0411a004 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00800031, 0x2a001d29, 0x008d0e60, 0x0411a004 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00800031, 0x2a401d29, 0x008d0e60, 0x0411a004 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00800031, 0x2a801d29, 0x008d0e60, 0x0411a004 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0007001f },
+   { 0x00800031, 0x2ac01d29, 0x008d0e60, 0x0418a004 },
+   { 0x00800001, 0x2c000229, 0x00b109c0, 0x00000000 },
+   { 0x00800001, 0x2c200229, 0x00b10a00, 0x00000000 },
+   { 0x00800001, 0x2c400229, 0x00b10a40, 0x00000000 },
+   { 0x00800001, 0x2c600229, 0x00b10a80, 0x00000000 },
+   { 0x00800001, 0x2c800229, 0x00b10ac0, 0x00000000 },
+   { 0x00800001, 0x2ca00229, 0x00b10b00, 0x00000000 },
+   { 0x00800001, 0x2cc00229, 0x00b10b40, 0x00000000 },
+   { 0x00800001, 0x2ce00229, 0x00b10b80, 0x00000000 },
+   { 0x00600001, 0x26a00021, 0x008d0c00, 0x00000000 },
+   { 0x00600001, 0x26e00021, 0x008d0c20, 0x00000000 },
+   { 0x00600001, 0x27200021, 0x008d0c40, 0x00000000 },
+   { 0x00600001, 0x27600021, 0x008d0c60, 0x00000000 },
+   { 0x00600001, 0x27a00021, 0x008d0c80, 0x00000000 },
+   { 0x00600001, 0x27e00021, 0x008d0ca0, 0x00000000 },
+   { 0x00600001, 0x28200021, 0x008d0cc0, 0x00000000 },
+   { 0x00600001, 0x28600021, 0x008d0ce0, 0x00000000 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0007000f },
+   { 0x0020000c, 0x2e6e3dad, 0x0045002e, 0x00020002 },
+   { 0x0020000c, 0x2e601ca5, 0x00450e80, 0x00000001 },
+   { 0x00200040, 0x2e6034a5, 0x00450e60, 0x00450e6e },
+   { 0x00000005, 0x2e640c21, 0x00210e64, 0xfffffffe },
+   { 0x02000005, 0x20002e3c, 0x0021003f, 0x00010001 },
+   { 0x00010040, 0x2e640c21, 0x00210e64, 0x00000001 },
+   { 0x01000005, 0x20002d3c, 0x0021002e, 0x00020002 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x00000036 },
+   { 0x01000005, 0x20002d3c, 0x00210030, 0x00020002 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x00000028 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0007000f },
+   { 0x00800031, 0x2ac01d29, 0x00ad0e60, 0x0414a005 },
+   { 0x00800031, 0x2b601d29, 0x00ad0e60, 0x0414a006 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0001000f },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 },
+   { 0x00800031, 0x2b401d29, 0x00ad0e60, 0x0411a005 },
+   { 0x00800031, 0x2be01d29, 0x00ad0e60, 0x0411a006 },
+   { 0x00800040, 0x29c04629, 0x00ad0ac0, 0x00ad0ae0 },
+   { 0x00800040, 0x29e04629, 0x00ad0ae0, 0x00ad0b00 },
+   { 0x00800040, 0x2a004629, 0x00ad0b00, 0x00ad0b20 },
+   { 0x00800040, 0x2a204629, 0x00ad0b20, 0x00ad0b40 },
+   { 0x00800040, 0x29c04529, 0x00ad09c0, 0x00ad0ac1 },
+   { 0x00800040, 0x29e04529, 0x00ad09e0, 0x00ad0ae1 },
+   { 0x00800040, 0x2a004529, 0x00ad0a00, 0x00ad0b01 },
+   { 0x00800040, 0x2a204529, 0x00ad0a20, 0x00ad0b21 },
+   { 0x00800040, 0x29c04529, 0x00ad09c0, 0x00ad0ae1 },
+   { 0x00800040, 0x29e04529, 0x00ad09e0, 0x00ad0b01 },
+   { 0x00800040, 0x2a004529, 0x00ad0a00, 0x00ad0b21 },
+   { 0x00800040, 0x2a204529, 0x00ad0a20, 0x00ad0b41 },
+   { 0x00800040, 0x2a404629, 0x00ad0b60, 0x00ad0b80 },
+   { 0x00800040, 0x2a604629, 0x00ad0b80, 0x00ad0ba0 },
+   { 0x00800040, 0x2a804629, 0x00ad0ba0, 0x00ad0bc0 },
+   { 0x00800040, 0x2aa04629, 0x00ad0bc0, 0x00ad0be0 },
+   { 0x00800040, 0x2a404529, 0x00ad0a40, 0x00ad0b61 },
+   { 0x00800040, 0x2a604529, 0x00ad0a60, 0x00ad0b81 },
+   { 0x00800040, 0x2a804529, 0x00ad0a80, 0x00ad0ba1 },
+   { 0x00800040, 0x2aa04529, 0x00ad0aa0, 0x00ad0bc1 },
+   { 0x00800040, 0x2a404529, 0x00ad0a40, 0x00ad0b81 },
+   { 0x00800040, 0x2a604529, 0x00ad0a60, 0x00ad0ba1 },
+   { 0x00800040, 0x2a804529, 0x00ad0a80, 0x00ad0bc1 },
+   { 0x00800040, 0x2aa04529, 0x00ad0aa0, 0x00ad0be1 },
+   { 0x80800008, 0x29c02d29, 0x00b109c0, 0x00020002 },
+   { 0x80800008, 0x29e02d29, 0x00b109e0, 0x00020002 },
+   { 0x80800008, 0x2a002d29, 0x00b10a00, 0x00020002 },
+   { 0x80800008, 0x2a202d29, 0x00b10a20, 0x00020002 },
+   { 0x80800008, 0x2a402d29, 0x00b10a40, 0x00020002 },
+   { 0x80800008, 0x2a602d29, 0x00b10a60, 0x00020002 },
+   { 0x80800008, 0x2a802d29, 0x00b10a80, 0x00020002 },
+   { 0x80800008, 0x2aa02d29, 0x00b10aa0, 0x00020002 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000028 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0007000f },
+   { 0x00800031, 0x2ac01d29, 0x00ad0e60, 0x0414a005 },
+   { 0x00800031, 0x2b601d29, 0x00ad0e60, 0x0414a006 },
+   { 0x80800042, 0x29c04629, 0x00ad0ac0, 0x00ad0ac1 },
+   { 0x80800042, 0x29e04629, 0x00ad0ae0, 0x00ad0ae1 },
+   { 0x80800042, 0x2a004629, 0x00ad0b00, 0x00ad0b01 },
+   { 0x80800042, 0x2a204629, 0x00ad0b20, 0x00ad0b21 },
+   { 0x80800042, 0x2a404629, 0x00ad0b60, 0x00ad0b61 },
+   { 0x80800042, 0x2a604629, 0x00ad0b80, 0x00ad0b81 },
+   { 0x80800042, 0x2a804629, 0x00ad0ba0, 0x00ad0ba1 },
+   { 0x80800042, 0x2aa04629, 0x00ad0bc0, 0x00ad0bc1 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x0000001c },
+   { 0x01000005, 0x20002d3c, 0x00210030, 0x00020002 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x0000000f },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0007000f },
+   { 0x00800031, 0x2ac01d29, 0x00ad0e60, 0x0414a005 },
+   { 0x00800031, 0x2b601d29, 0x00ad0e60, 0x0414a006 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0000000f },
+   { 0x00800031, 0x2b401d29, 0x00ad0e60, 0x0411a005 },
+   { 0x00800031, 0x2be01d29, 0x00ad0e60, 0x0411a006 },
+   { 0x80800042, 0x29c04629, 0x00ad0ac0, 0x00ad0ae0 },
+   { 0x80800042, 0x29e04629, 0x00ad0ae0, 0x00ad0b00 },
+   { 0x80800042, 0x2a004629, 0x00ad0b00, 0x00ad0b20 },
+   { 0x80800042, 0x2a204629, 0x00ad0b20, 0x00ad0b40 },
+   { 0x80800042, 0x2a404629, 0x00ad0b60, 0x00ad0b80 },
+   { 0x80800042, 0x2a604629, 0x00ad0b80, 0x00ad0ba0 },
+   { 0x80800042, 0x2a804629, 0x00ad0ba0, 0x00ad0bc0 },
+   { 0x80800042, 0x2aa04629, 0x00ad0bc0, 0x00ad0be0 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x0000000b },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0007000f },
+   { 0x00800031, 0x2ac01d29, 0x00ad0e60, 0x0414a005 },
+   { 0x00800031, 0x2b601d29, 0x00ad0e60, 0x0414a006 },
+   { 0x00800001, 0x29c00229, 0x00ad0ac0, 0x00000000 },
+   { 0x00800001, 0x29e00229, 0x00ad0ae0, 0x00000000 },
+   { 0x00800001, 0x2a000229, 0x00ad0b00, 0x00000000 },
+   { 0x00800001, 0x2a200229, 0x00ad0b20, 0x00000000 },
+   { 0x00800001, 0x2a400229, 0x00ad0b60, 0x00000000 },
+   { 0x00800001, 0x2a600229, 0x00ad0b80, 0x00000000 },
+   { 0x00800001, 0x2a800229, 0x00ad0ba0, 0x00000000 },
+   { 0x00800001, 0x2aa00229, 0x00ad0bc0, 0x00000000 },
+   { 0x00600001, 0x28800129, 0x008d09c0, 0x00000000 },
+   { 0x00600001, 0x28a00129, 0x008d09e0, 0x00000000 },
+   { 0x00600001, 0x28c00129, 0x008d0a00, 0x00000000 },
+   { 0x00600001, 0x28e00129, 0x008d0a20, 0x00000000 },
+   { 0x00600001, 0x29000129, 0x008d0a40, 0x00000000 },
+   { 0x00600001, 0x29200129, 0x008d0a60, 0x00000000 },
+   { 0x00600001, 0x29400129, 0x008d0a80, 0x00000000 },
+   { 0x00600001, 0x29600129, 0x008d0aa0, 0x00000000 },
+   { 0x0020000c, 0x2e6e3dad, 0x00450036, 0x00020002 },
+   { 0x0020000c, 0x2e601ca5, 0x00450e80, 0x00000001 },
+   { 0x00200040, 0x2e6034a5, 0x00450e60, 0x00450e6e },
+   { 0x00000005, 0x2e640c21, 0x00210e64, 0xfffffffe },
+   { 0x02000005, 0x20002e3c, 0x0021003f, 0x00040004 },
+   { 0x00010040, 0x2e640c21, 0x00210e64, 0x00000001 },
+   { 0x01000005, 0x20002d3c, 0x00210038, 0x00020002 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x00000036 },
+   { 0x01000005, 0x20002d3c, 0x0021003a, 0x00020002 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x00000028 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0007000f },
+   { 0x00800031, 0x2ac01d29, 0x00ad0e60, 0x0414a005 },
+   { 0x00800031, 0x2b601d29, 0x00ad0e60, 0x0414a006 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0001000f },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 },
+   { 0x00800031, 0x2b401d29, 0x00ad0e60, 0x0411a005 },
+   { 0x00800031, 0x2be01d29, 0x00ad0e60, 0x0411a006 },
+   { 0x00800040, 0x29c04629, 0x00ad0ac0, 0x00ad0ae0 },
+   { 0x00800040, 0x29e04629, 0x00ad0ae0, 0x00ad0b00 },
+   { 0x00800040, 0x2a004629, 0x00ad0b00, 0x00ad0b20 },
+   { 0x00800040, 0x2a204629, 0x00ad0b20, 0x00ad0b40 },
+   { 0x00800040, 0x29c04529, 0x00ad09c0, 0x00ad0ac1 },
+   { 0x00800040, 0x29e04529, 0x00ad09e0, 0x00ad0ae1 },
+   { 0x00800040, 0x2a004529, 0x00ad0a00, 0x00ad0b01 },
+   { 0x00800040, 0x2a204529, 0x00ad0a20, 0x00ad0b21 },
+   { 0x00800040, 0x29c04529, 0x00ad09c0, 0x00ad0ae1 },
+   { 0x00800040, 0x29e04529, 0x00ad09e0, 0x00ad0b01 },
+   { 0x00800040, 0x2a004529, 0x00ad0a00, 0x00ad0b21 },
+   { 0x00800040, 0x2a204529, 0x00ad0a20, 0x00ad0b41 },
+   { 0x00800040, 0x2a404629, 0x00ad0b60, 0x00ad0b80 },
+   { 0x00800040, 0x2a604629, 0x00ad0b80, 0x00ad0ba0 },
+   { 0x00800040, 0x2a804629, 0x00ad0ba0, 0x00ad0bc0 },
+   { 0x00800040, 0x2aa04629, 0x00ad0bc0, 0x00ad0be0 },
+   { 0x00800040, 0x2a404529, 0x00ad0a40, 0x00ad0b61 },
+   { 0x00800040, 0x2a604529, 0x00ad0a60, 0x00ad0b81 },
+   { 0x00800040, 0x2a804529, 0x00ad0a80, 0x00ad0ba1 },
+   { 0x00800040, 0x2aa04529, 0x00ad0aa0, 0x00ad0bc1 },
+   { 0x00800040, 0x2a404529, 0x00ad0a40, 0x00ad0b81 },
+   { 0x00800040, 0x2a604529, 0x00ad0a60, 0x00ad0ba1 },
+   { 0x00800040, 0x2a804529, 0x00ad0a80, 0x00ad0bc1 },
+   { 0x00800040, 0x2aa04529, 0x00ad0aa0, 0x00ad0be1 },
+   { 0x80800008, 0x29c02d29, 0x00b109c0, 0x00020002 },
+   { 0x80800008, 0x29e02d29, 0x00b109e0, 0x00020002 },
+   { 0x80800008, 0x2a002d29, 0x00b10a00, 0x00020002 },
+   { 0x80800008, 0x2a202d29, 0x00b10a20, 0x00020002 },
+   { 0x80800008, 0x2a402d29, 0x00b10a40, 0x00020002 },
+   { 0x80800008, 0x2a602d29, 0x00b10a60, 0x00020002 },
+   { 0x80800008, 0x2a802d29, 0x00b10a80, 0x00020002 },
+   { 0x80800008, 0x2aa02d29, 0x00b10aa0, 0x00020002 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000028 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0007000f },
+   { 0x00800031, 0x2ac01d29, 0x00ad0e60, 0x0414a005 },
+   { 0x00800031, 0x2b601d29, 0x00ad0e60, 0x0414a006 },
+   { 0x80800042, 0x29c04629, 0x00ad0ac0, 0x00ad0ac1 },
+   { 0x80800042, 0x29e04629, 0x00ad0ae0, 0x00ad0ae1 },
+   { 0x80800042, 0x2a004629, 0x00ad0b00, 0x00ad0b01 },
+   { 0x80800042, 0x2a204629, 0x00ad0b20, 0x00ad0b21 },
+   { 0x80800042, 0x2a404629, 0x00ad0b60, 0x00ad0b61 },
+   { 0x80800042, 0x2a604629, 0x00ad0b80, 0x00ad0b81 },
+   { 0x80800042, 0x2a804629, 0x00ad0ba0, 0x00ad0ba1 },
+   { 0x80800042, 0x2aa04629, 0x00ad0bc0, 0x00ad0bc1 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x0000001c },
+   { 0x01000005, 0x20002d3c, 0x0021003a, 0x00020002 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x0000000f },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0007000f },
+   { 0x00800031, 0x2ac01d29, 0x00ad0e60, 0x0414a005 },
+   { 0x00800031, 0x2b601d29, 0x00ad0e60, 0x0414a006 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0000000f },
+   { 0x00800031, 0x2b401d29, 0x00ad0e60, 0x0411a005 },
+   { 0x00800031, 0x2be01d29, 0x00ad0e60, 0x0411a006 },
+   { 0x80800042, 0x29c04629, 0x00ad0ac0, 0x00ad0ae0 },
+   { 0x80800042, 0x29e04629, 0x00ad0ae0, 0x00ad0b00 },
+   { 0x80800042, 0x2a004629, 0x00ad0b00, 0x00ad0b20 },
+   { 0x80800042, 0x2a204629, 0x00ad0b20, 0x00ad0b40 },
+   { 0x80800042, 0x2a404629, 0x00ad0b60, 0x00ad0b80 },
+   { 0x80800042, 0x2a604629, 0x00ad0b80, 0x00ad0ba0 },
+   { 0x80800042, 0x2a804629, 0x00ad0ba0, 0x00ad0bc0 },
+   { 0x80800042, 0x2aa04629, 0x00ad0bc0, 0x00ad0be0 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x0000000b },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0007000f },
+   { 0x00800031, 0x2ac01d29, 0x00ad0e60, 0x0414a005 },
+   { 0x00800031, 0x2b601d29, 0x00ad0e60, 0x0414a006 },
+   { 0x00800001, 0x29c00229, 0x00ad0ac0, 0x00000000 },
+   { 0x00800001, 0x29e00229, 0x00ad0ae0, 0x00000000 },
+   { 0x00800001, 0x2a000229, 0x00ad0b00, 0x00000000 },
+   { 0x00800001, 0x2a200229, 0x00ad0b20, 0x00000000 },
+   { 0x00800001, 0x2a400229, 0x00ad0b60, 0x00000000 },
+   { 0x00800001, 0x2a600229, 0x00ad0b80, 0x00000000 },
+   { 0x00800001, 0x2a800229, 0x00ad0ba0, 0x00000000 },
+   { 0x00800001, 0x2aa00229, 0x00ad0bc0, 0x00000000 },
+   { 0x00600001, 0x28900129, 0x008d09c0, 0x00000000 },
+   { 0x00600001, 0x28b00129, 0x008d09e0, 0x00000000 },
+   { 0x00600001, 0x28d00129, 0x008d0a00, 0x00000000 },
+   { 0x00600001, 0x28f00129, 0x008d0a20, 0x00000000 },
+   { 0x00600001, 0x29100129, 0x008d0a40, 0x00000000 },
+   { 0x00600001, 0x29300129, 0x008d0a60, 0x00000000 },
+   { 0x00600001, 0x29500129, 0x008d0a80, 0x00000000 },
+   { 0x00600001, 0x29700129, 0x008d0aa0, 0x00000000 },
+   { 0x00600001, 0x20200021, 0x008d0e80, 0x00000000 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0007001f },
+   { 0x00000001, 0x20280061, 0x00000000, 0x0007000f },
+   { 0x0020000c, 0x2e6e3dad, 0x00450032, 0x00010001 },
+   { 0x00200040, 0x2e6034a5, 0x00450e80, 0x00450e6e },
+   { 0x00000005, 0x2e640c21, 0x00210e64, 0xfffffffe },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
+   { 0x02000005, 0x20002e3c, 0x0021003f, 0x00020002 },
+   { 0x00010040, 0x2e641ca5, 0x00210e64, 0x00000001 },
+   { 0x01000005, 0x20002d3c, 0x00210032, 0x00010001 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x00000045 },
+   { 0x01000005, 0x20002d3c, 0x00210034, 0x00010001 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x0000002f },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
+   { 0x00800031, 0x29c01d29, 0x008d0e60, 0x0411a007 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00800031, 0x2a001d29, 0x008d0e60, 0x0411a007 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00800031, 0x2a401d29, 0x008d0e60, 0x0411a007 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00800031, 0x2a801d29, 0x008d0e60, 0x0411a007 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0007001f },
+   { 0x00800031, 0x2ac01d29, 0x008d0e60, 0x0418a007 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
+   { 0x00800031, 0x2bc01d29, 0x008d0e60, 0x0411a007 },
+   { 0x00800040, 0x2c004629, 0x00b109c0, 0x00b10a00 },
+   { 0x00800040, 0x2c204629, 0x00b10a00, 0x00b10a40 },
+   { 0x00800040, 0x2c404629, 0x00b10a40, 0x00b10a80 },
+   { 0x00800040, 0x2c604629, 0x00b10a80, 0x00b10ac0 },
+   { 0x00800040, 0x2c804629, 0x00b10ac0, 0x00b10b00 },
+   { 0x00800040, 0x2ca04629, 0x00b10b00, 0x00b10b40 },
+   { 0x00800040, 0x2cc04629, 0x00b10b40, 0x00b10b80 },
+   { 0x00800040, 0x2ce04629, 0x00b10b80, 0x00b10bc0 },
+   { 0x00800040, 0x2c004529, 0x00b10c00, 0x00b109c1 },
+   { 0x00800040, 0x2c204529, 0x00b10c20, 0x00b10a01 },
+   { 0x00800040, 0x2c404529, 0x00b10c40, 0x00b10a41 },
+   { 0x00800040, 0x2c604529, 0x00b10c60, 0x00b10a81 },
+   { 0x00800040, 0x2c804529, 0x00b10c80, 0x00b10ac1 },
+   { 0x00800040, 0x2ca04529, 0x00b10ca0, 0x00b10b01 },
+   { 0x00800040, 0x2cc04529, 0x00b10cc0, 0x00b10b41 },
+   { 0x00800040, 0x2ce04529, 0x00b10ce0, 0x00b10b81 },
+   { 0x00800040, 0x2c004529, 0x00b10c00, 0x00b10a01 },
+   { 0x00800040, 0x2c204529, 0x00b10c20, 0x00b10a41 },
+   { 0x00800040, 0x2c404529, 0x00b10c40, 0x00b10a81 },
+   { 0x00800040, 0x2c604529, 0x00b10c60, 0x00b10ac1 },
+   { 0x00800040, 0x2c804529, 0x00b10c80, 0x00b10b01 },
+   { 0x00800040, 0x2ca04529, 0x00b10ca0, 0x00b10b41 },
+   { 0x00800040, 0x2cc04529, 0x00b10cc0, 0x00b10b81 },
+   { 0x00800040, 0x2ce04529, 0x00b10ce0, 0x00b10bc1 },
+   { 0x00800008, 0x2c002d29, 0x00b10c00, 0x00020002 },
+   { 0x00800008, 0x2c202d29, 0x00b10c20, 0x00020002 },
+   { 0x00800008, 0x2c402d29, 0x00b10c40, 0x00020002 },
+   { 0x00800008, 0x2c602d29, 0x00b10c60, 0x00020002 },
+   { 0x00800008, 0x2c802d29, 0x00b10c80, 0x00020002 },
+   { 0x00800008, 0x2ca02d29, 0x00b10ca0, 0x00020002 },
+   { 0x00800008, 0x2cc02d29, 0x00b10cc0, 0x00020002 },
+   { 0x00800008, 0x2ce02d29, 0x00b10ce0, 0x00020002 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000040 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
+   { 0x00800031, 0x29c01d29, 0x008d0e60, 0x0411a007 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00800031, 0x2a001d29, 0x008d0e60, 0x0411a007 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00800031, 0x2a401d29, 0x008d0e60, 0x0411a007 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00800031, 0x2a801d29, 0x008d0e60, 0x0411a007 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0007001f },
+   { 0x00800031, 0x2ac01d29, 0x008d0e60, 0x0418a007 },
+   { 0x80800042, 0x2c004629, 0x00b109c0, 0x00b109c1 },
+   { 0x80800042, 0x2c204629, 0x00b10a00, 0x00b10a01 },
+   { 0x80800042, 0x2c404629, 0x00b10a40, 0x00b10a41 },
+   { 0x80800042, 0x2c604629, 0x00b10a80, 0x00b10a81 },
+   { 0x80800042, 0x2c804629, 0x00b10ac0, 0x00b10ac1 },
+   { 0x80800042, 0x2ca04629, 0x00b10b00, 0x00b10b01 },
+   { 0x80800042, 0x2cc04629, 0x00b10b40, 0x00b10b41 },
+   { 0x80800042, 0x2ce04629, 0x00b10b80, 0x00b10b81 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x0000002c },
+   { 0x01000005, 0x20002d3c, 0x00210034, 0x00010001 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x00000017 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
+   { 0x00800031, 0x29c01d29, 0x008d0e60, 0x0411a007 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00800031, 0x2a001d29, 0x008d0e60, 0x0411a007 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00800031, 0x2a401d29, 0x008d0e60, 0x0411a007 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00800031, 0x2a801d29, 0x008d0e60, 0x0411a007 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0007001f },
+   { 0x00800031, 0x2ac01d29, 0x008d0e60, 0x0418a007 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
+   { 0x00800031, 0x2bc01d29, 0x008d0e60, 0x0411a007 },
+   { 0x80800042, 0x2c004629, 0x00b109c0, 0x00b10a00 },
+   { 0x80800042, 0x2c204629, 0x00b10a00, 0x00b10a40 },
+   { 0x80800042, 0x2c404629, 0x00b10a40, 0x00b10a80 },
+   { 0x80800042, 0x2c604629, 0x00b10a80, 0x00b10ac0 },
+   { 0x80800042, 0x2c804629, 0x00b10ac0, 0x00b10b00 },
+   { 0x80800042, 0x2ca04629, 0x00b10b00, 0x00b10b40 },
+   { 0x80800042, 0x2cc04629, 0x00b10b40, 0x00b10b80 },
+   { 0x80800042, 0x2ce04629, 0x00b10b80, 0x00b10bc0 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000013 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
+   { 0x00800031, 0x29c01d29, 0x008d0e60, 0x0411a007 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00800031, 0x2a001d29, 0x008d0e60, 0x0411a007 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00800031, 0x2a401d29, 0x008d0e60, 0x0411a007 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00800031, 0x2a801d29, 0x008d0e60, 0x0411a007 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0007001f },
+   { 0x00800031, 0x2ac01d29, 0x008d0e60, 0x0418a007 },
+   { 0x00800001, 0x2c000229, 0x00b109c0, 0x00000000 },
+   { 0x00800001, 0x2c200229, 0x00b10a00, 0x00000000 },
+   { 0x00800001, 0x2c400229, 0x00b10a40, 0x00000000 },
+   { 0x00800001, 0x2c600229, 0x00b10a80, 0x00000000 },
+   { 0x00800001, 0x2c800229, 0x00b10ac0, 0x00000000 },
+   { 0x00800001, 0x2ca00229, 0x00b10b00, 0x00000000 },
+   { 0x00800001, 0x2cc00229, 0x00b10b40, 0x00000000 },
+   { 0x00800001, 0x2ce00229, 0x00b10b80, 0x00000000 },
+   { 0x00600001, 0x23800021, 0x008d0c00, 0x00000000 },
+   { 0x00600001, 0x23c00021, 0x008d0c20, 0x00000000 },
+   { 0x00600001, 0x24000021, 0x008d0c40, 0x00000000 },
+   { 0x00600001, 0x24400021, 0x008d0c60, 0x00000000 },
+   { 0x00600001, 0x24800021, 0x008d0c80, 0x00000000 },
+   { 0x00600001, 0x24c00021, 0x008d0ca0, 0x00000000 },
+   { 0x00600001, 0x25000021, 0x008d0cc0, 0x00000000 },
+   { 0x00600001, 0x25400021, 0x008d0ce0, 0x00000000 },
+   { 0x0020000c, 0x2e6e3dad, 0x0045003a, 0x00010001 },
+   { 0x00200040, 0x2e6034a5, 0x00450e80, 0x00450e6e },
+   { 0x00000005, 0x2e640c21, 0x00210e64, 0xfffffffe },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
+   { 0x02000005, 0x20000c3c, 0x00210054, 0x00000008 },
+   { 0x00010040, 0x2e641ca5, 0x00210e64, 0x00000001 },
+   { 0x01000005, 0x20002d3c, 0x0021003a, 0x00010001 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x00000045 },
+   { 0x01000005, 0x20002d3c, 0x0021003c, 0x00010001 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x0000002f },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
+   { 0x00800031, 0x29c01d29, 0x008d0e60, 0x0411a007 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00800031, 0x2a001d29, 0x008d0e60, 0x0411a007 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00800031, 0x2a401d29, 0x008d0e60, 0x0411a007 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00800031, 0x2a801d29, 0x008d0e60, 0x0411a007 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0007001f },
+   { 0x00800031, 0x2ac01d29, 0x008d0e60, 0x0418a007 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
+   { 0x00800031, 0x2bc01d29, 0x008d0e60, 0x0411a007 },
+   { 0x00800040, 0x2c004629, 0x00b109c0, 0x00b10a00 },
+   { 0x00800040, 0x2c204629, 0x00b10a00, 0x00b10a40 },
+   { 0x00800040, 0x2c404629, 0x00b10a40, 0x00b10a80 },
+   { 0x00800040, 0x2c604629, 0x00b10a80, 0x00b10ac0 },
+   { 0x00800040, 0x2c804629, 0x00b10ac0, 0x00b10b00 },
+   { 0x00800040, 0x2ca04629, 0x00b10b00, 0x00b10b40 },
+   { 0x00800040, 0x2cc04629, 0x00b10b40, 0x00b10b80 },
+   { 0x00800040, 0x2ce04629, 0x00b10b80, 0x00b10bc0 },
+   { 0x00800040, 0x2c004529, 0x00b10c00, 0x00b109c1 },
+   { 0x00800040, 0x2c204529, 0x00b10c20, 0x00b10a01 },
+   { 0x00800040, 0x2c404529, 0x00b10c40, 0x00b10a41 },
+   { 0x00800040, 0x2c604529, 0x00b10c60, 0x00b10a81 },
+   { 0x00800040, 0x2c804529, 0x00b10c80, 0x00b10ac1 },
+   { 0x00800040, 0x2ca04529, 0x00b10ca0, 0x00b10b01 },
+   { 0x00800040, 0x2cc04529, 0x00b10cc0, 0x00b10b41 },
+   { 0x00800040, 0x2ce04529, 0x00b10ce0, 0x00b10b81 },
+   { 0x00800040, 0x2c004529, 0x00b10c00, 0x00b10a01 },
+   { 0x00800040, 0x2c204529, 0x00b10c20, 0x00b10a41 },
+   { 0x00800040, 0x2c404529, 0x00b10c40, 0x00b10a81 },
+   { 0x00800040, 0x2c604529, 0x00b10c60, 0x00b10ac1 },
+   { 0x00800040, 0x2c804529, 0x00b10c80, 0x00b10b01 },
+   { 0x00800040, 0x2ca04529, 0x00b10ca0, 0x00b10b41 },
+   { 0x00800040, 0x2cc04529, 0x00b10cc0, 0x00b10b81 },
+   { 0x00800040, 0x2ce04529, 0x00b10ce0, 0x00b10bc1 },
+   { 0x00800008, 0x2c002d29, 0x00b10c00, 0x00020002 },
+   { 0x00800008, 0x2c202d29, 0x00b10c20, 0x00020002 },
+   { 0x00800008, 0x2c402d29, 0x00b10c40, 0x00020002 },
+   { 0x00800008, 0x2c602d29, 0x00b10c60, 0x00020002 },
+   { 0x00800008, 0x2c802d29, 0x00b10c80, 0x00020002 },
+   { 0x00800008, 0x2ca02d29, 0x00b10ca0, 0x00020002 },
+   { 0x00800008, 0x2cc02d29, 0x00b10cc0, 0x00020002 },
+   { 0x00800008, 0x2ce02d29, 0x00b10ce0, 0x00020002 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000040 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
+   { 0x00800031, 0x29c01d29, 0x008d0e60, 0x0411a007 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00800031, 0x2a001d29, 0x008d0e60, 0x0411a007 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00800031, 0x2a401d29, 0x008d0e60, 0x0411a007 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00800031, 0x2a801d29, 0x008d0e60, 0x0411a007 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0007001f },
+   { 0x00800031, 0x2ac01d29, 0x008d0e60, 0x0418a007 },
+   { 0x80800042, 0x2c004629, 0x00b109c0, 0x00b109c1 },
+   { 0x80800042, 0x2c204629, 0x00b10a00, 0x00b10a01 },
+   { 0x80800042, 0x2c404629, 0x00b10a40, 0x00b10a41 },
+   { 0x80800042, 0x2c604629, 0x00b10a80, 0x00b10a81 },
+   { 0x80800042, 0x2c804629, 0x00b10ac0, 0x00b10ac1 },
+   { 0x80800042, 0x2ca04629, 0x00b10b00, 0x00b10b01 },
+   { 0x80800042, 0x2cc04629, 0x00b10b40, 0x00b10b41 },
+   { 0x80800042, 0x2ce04629, 0x00b10b80, 0x00b10b81 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x0000002c },
+   { 0x01000005, 0x20002d3c, 0x0021003c, 0x00010001 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x00000017 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
+   { 0x00800031, 0x29c01d29, 0x008d0e60, 0x0411a007 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00800031, 0x2a001d29, 0x008d0e60, 0x0411a007 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00800031, 0x2a401d29, 0x008d0e60, 0x0411a007 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00800031, 0x2a801d29, 0x008d0e60, 0x0411a007 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0007001f },
+   { 0x00800031, 0x2ac01d29, 0x008d0e60, 0x0418a007 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
+   { 0x00800031, 0x2bc01d29, 0x008d0e60, 0x0411a007 },
+   { 0x80800042, 0x2c004629, 0x00b109c0, 0x00b10a00 },
+   { 0x80800042, 0x2c204629, 0x00b10a00, 0x00b10a40 },
+   { 0x80800042, 0x2c404629, 0x00b10a40, 0x00b10a80 },
+   { 0x80800042, 0x2c604629, 0x00b10a80, 0x00b10ac0 },
+   { 0x80800042, 0x2c804629, 0x00b10ac0, 0x00b10b00 },
+   { 0x80800042, 0x2ca04629, 0x00b10b00, 0x00b10b40 },
+   { 0x80800042, 0x2cc04629, 0x00b10b40, 0x00b10b80 },
+   { 0x80800042, 0x2ce04629, 0x00b10b80, 0x00b10bc0 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000013 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
+   { 0x00800031, 0x29c01d29, 0x008d0e60, 0x0411a007 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00800031, 0x2a001d29, 0x008d0e60, 0x0411a007 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00800031, 0x2a401d29, 0x008d0e60, 0x0411a007 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00800031, 0x2a801d29, 0x008d0e60, 0x0411a007 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0007001f },
+   { 0x00800031, 0x2ac01d29, 0x008d0e60, 0x0418a007 },
+   { 0x00800001, 0x2c000229, 0x00b109c0, 0x00000000 },
+   { 0x00800001, 0x2c200229, 0x00b10a00, 0x00000000 },
+   { 0x00800001, 0x2c400229, 0x00b10a40, 0x00000000 },
+   { 0x00800001, 0x2c600229, 0x00b10a80, 0x00000000 },
+   { 0x00800001, 0x2c800229, 0x00b10ac0, 0x00000000 },
+   { 0x00800001, 0x2ca00229, 0x00b10b00, 0x00000000 },
+   { 0x00800001, 0x2cc00229, 0x00b10b40, 0x00000000 },
+   { 0x00800001, 0x2ce00229, 0x00b10b80, 0x00000000 },
+   { 0x80800042, 0x23802529, 0x00b10680, 0x00b10380 },
+   { 0x80800042, 0x23a02529, 0x00b106a0, 0x00b10c00 },
+   { 0x80800042, 0x23c02529, 0x00b106c0, 0x00b103c0 },
+   { 0x80800042, 0x23e02529, 0x00b106e0, 0x00b10c20 },
+   { 0x80800042, 0x24002529, 0x00b10700, 0x00b10400 },
+   { 0x80800042, 0x24202529, 0x00b10720, 0x00b10c40 },
+   { 0x80800042, 0x24402529, 0x00b10740, 0x00b10440 },
+   { 0x80800042, 0x24602529, 0x00b10760, 0x00b10c60 },
+   { 0x80800042, 0x24802529, 0x00b10780, 0x00b10480 },
+   { 0x80800042, 0x24a02529, 0x00b107a0, 0x00b10c80 },
+   { 0x80800042, 0x24c02529, 0x00b107c0, 0x00b104c0 },
+   { 0x80800042, 0x24e02529, 0x00b107e0, 0x00b10ca0 },
+   { 0x80800042, 0x25002529, 0x00b10800, 0x00b10500 },
+   { 0x80800042, 0x25202529, 0x00b10820, 0x00b10cc0 },
+   { 0x80800042, 0x25402529, 0x00b10840, 0x00b10540 },
+   { 0x80800042, 0x25602529, 0x00b10860, 0x00b10ce0 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0007000f },
+   { 0x0020000c, 0x2e6e3dad, 0x00450032, 0x00020002 },
+   { 0x0020000c, 0x2e601ca5, 0x00450e80, 0x00000001 },
+   { 0x00200040, 0x2e6034a5, 0x00450e60, 0x00450e6e },
+   { 0x00000005, 0x2e640c21, 0x00210e64, 0xfffffffe },
+   { 0x02000005, 0x20002e3c, 0x0021003f, 0x00020002 },
+   { 0x00010040, 0x2e640c21, 0x00210e64, 0x00000001 },
+   { 0x01000005, 0x20002d3c, 0x00210032, 0x00020002 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x00000036 },
+   { 0x01000005, 0x20002d3c, 0x00210034, 0x00020002 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x00000028 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0007000f },
+   { 0x00800031, 0x2ac01d29, 0x00ad0e60, 0x0414a008 },
+   { 0x00800031, 0x2b601d29, 0x00ad0e60, 0x0414a009 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0001000f },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 },
+   { 0x00800031, 0x2b401d29, 0x00ad0e60, 0x0411a008 },
+   { 0x00800031, 0x2be01d29, 0x00ad0e60, 0x0411a009 },
+   { 0x00800040, 0x29c04629, 0x00ad0ac0, 0x00ad0ae0 },
+   { 0x00800040, 0x29e04629, 0x00ad0ae0, 0x00ad0b00 },
+   { 0x00800040, 0x2a004629, 0x00ad0b00, 0x00ad0b20 },
+   { 0x00800040, 0x2a204629, 0x00ad0b20, 0x00ad0b40 },
+   { 0x00800040, 0x29c04529, 0x00ad09c0, 0x00ad0ac1 },
+   { 0x00800040, 0x29e04529, 0x00ad09e0, 0x00ad0ae1 },
+   { 0x00800040, 0x2a004529, 0x00ad0a00, 0x00ad0b01 },
+   { 0x00800040, 0x2a204529, 0x00ad0a20, 0x00ad0b21 },
+   { 0x00800040, 0x29c04529, 0x00ad09c0, 0x00ad0ae1 },
+   { 0x00800040, 0x29e04529, 0x00ad09e0, 0x00ad0b01 },
+   { 0x00800040, 0x2a004529, 0x00ad0a00, 0x00ad0b21 },
+   { 0x00800040, 0x2a204529, 0x00ad0a20, 0x00ad0b41 },
+   { 0x00800040, 0x2a404629, 0x00ad0b60, 0x00ad0b80 },
+   { 0x00800040, 0x2a604629, 0x00ad0b80, 0x00ad0ba0 },
+   { 0x00800040, 0x2a804629, 0x00ad0ba0, 0x00ad0bc0 },
+   { 0x00800040, 0x2aa04629, 0x00ad0bc0, 0x00ad0be0 },
+   { 0x00800040, 0x2a404529, 0x00ad0a40, 0x00ad0b61 },
+   { 0x00800040, 0x2a604529, 0x00ad0a60, 0x00ad0b81 },
+   { 0x00800040, 0x2a804529, 0x00ad0a80, 0x00ad0ba1 },
+   { 0x00800040, 0x2aa04529, 0x00ad0aa0, 0x00ad0bc1 },
+   { 0x00800040, 0x2a404529, 0x00ad0a40, 0x00ad0b81 },
+   { 0x00800040, 0x2a604529, 0x00ad0a60, 0x00ad0ba1 },
+   { 0x00800040, 0x2a804529, 0x00ad0a80, 0x00ad0bc1 },
+   { 0x00800040, 0x2aa04529, 0x00ad0aa0, 0x00ad0be1 },
+   { 0x80800008, 0x29c02d29, 0x00b109c0, 0x00020002 },
+   { 0x80800008, 0x29e02d29, 0x00b109e0, 0x00020002 },
+   { 0x80800008, 0x2a002d29, 0x00b10a00, 0x00020002 },
+   { 0x80800008, 0x2a202d29, 0x00b10a20, 0x00020002 },
+   { 0x80800008, 0x2a402d29, 0x00b10a40, 0x00020002 },
+   { 0x80800008, 0x2a602d29, 0x00b10a60, 0x00020002 },
+   { 0x80800008, 0x2a802d29, 0x00b10a80, 0x00020002 },
+   { 0x80800008, 0x2aa02d29, 0x00b10aa0, 0x00020002 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000028 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0007000f },
+   { 0x00800031, 0x2ac01d29, 0x00ad0e60, 0x0414a008 },
+   { 0x00800031, 0x2b601d29, 0x00ad0e60, 0x0414a009 },
+   { 0x80800042, 0x29c04629, 0x00ad0ac0, 0x00ad0ac1 },
+   { 0x80800042, 0x29e04629, 0x00ad0ae0, 0x00ad0ae1 },
+   { 0x80800042, 0x2a004629, 0x00ad0b00, 0x00ad0b01 },
+   { 0x80800042, 0x2a204629, 0x00ad0b20, 0x00ad0b21 },
+   { 0x80800042, 0x2a404629, 0x00ad0b60, 0x00ad0b61 },
+   { 0x80800042, 0x2a604629, 0x00ad0b80, 0x00ad0b81 },
+   { 0x80800042, 0x2a804629, 0x00ad0ba0, 0x00ad0ba1 },
+   { 0x80800042, 0x2aa04629, 0x00ad0bc0, 0x00ad0bc1 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x0000001c },
+   { 0x01000005, 0x20002d3c, 0x00210034, 0x00020002 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x0000000f },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0007000f },
+   { 0x00800031, 0x2ac01d29, 0x00ad0e60, 0x0414a008 },
+   { 0x00800031, 0x2b601d29, 0x00ad0e60, 0x0414a009 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0000000f },
+   { 0x00800031, 0x2b401d29, 0x00ad0e60, 0x0411a008 },
+   { 0x00800031, 0x2be01d29, 0x00ad0e60, 0x0411a009 },
+   { 0x80800042, 0x29c04629, 0x00ad0ac0, 0x00ad0ae0 },
+   { 0x80800042, 0x29e04629, 0x00ad0ae0, 0x00ad0b00 },
+   { 0x80800042, 0x2a004629, 0x00ad0b00, 0x00ad0b20 },
+   { 0x80800042, 0x2a204629, 0x00ad0b20, 0x00ad0b40 },
+   { 0x80800042, 0x2a404629, 0x00ad0b60, 0x00ad0b80 },
+   { 0x80800042, 0x2a604629, 0x00ad0b80, 0x00ad0ba0 },
+   { 0x80800042, 0x2a804629, 0x00ad0ba0, 0x00ad0bc0 },
+   { 0x80800042, 0x2aa04629, 0x00ad0bc0, 0x00ad0be0 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x0000000b },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0007000f },
+   { 0x00800031, 0x2ac01d29, 0x00ad0e60, 0x0414a008 },
+   { 0x00800031, 0x2b601d29, 0x00ad0e60, 0x0414a009 },
+   { 0x00800001, 0x29c00229, 0x00ad0ac0, 0x00000000 },
+   { 0x00800001, 0x29e00229, 0x00ad0ae0, 0x00000000 },
+   { 0x00800001, 0x2a000229, 0x00ad0b00, 0x00000000 },
+   { 0x00800001, 0x2a200229, 0x00ad0b20, 0x00000000 },
+   { 0x00800001, 0x2a400229, 0x00ad0b60, 0x00000000 },
+   { 0x00800001, 0x2a600229, 0x00ad0b80, 0x00000000 },
+   { 0x00800001, 0x2a800229, 0x00ad0ba0, 0x00000000 },
+   { 0x00800001, 0x2aa00229, 0x00ad0bc0, 0x00000000 },
+   { 0x00600001, 0x25800129, 0x008d09c0, 0x00000000 },
+   { 0x00600001, 0x25a00129, 0x008d09e0, 0x00000000 },
+   { 0x00600001, 0x25c00129, 0x008d0a00, 0x00000000 },
+   { 0x00600001, 0x25e00129, 0x008d0a20, 0x00000000 },
+   { 0x00600001, 0x26000129, 0x008d0a40, 0x00000000 },
+   { 0x00600001, 0x26200129, 0x008d0a60, 0x00000000 },
+   { 0x00600001, 0x26400129, 0x008d0a80, 0x00000000 },
+   { 0x00600001, 0x26600129, 0x008d0aa0, 0x00000000 },
+   { 0x0020000c, 0x2e6e3dad, 0x0045003a, 0x00020002 },
+   { 0x0020000c, 0x2e601ca5, 0x00450e80, 0x00000001 },
+   { 0x00200040, 0x2e6034a5, 0x00450e60, 0x00450e6e },
+   { 0x00000005, 0x2e640c21, 0x00210e64, 0xfffffffe },
+   { 0x02000005, 0x20002e3c, 0x0021003f, 0x00080008 },
+   { 0x00010040, 0x2e640c21, 0x00210e64, 0x00000001 },
+   { 0x01000005, 0x20002d3c, 0x0021003a, 0x00020002 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x00000036 },
+   { 0x01000005, 0x20002d3c, 0x0021003c, 0x00020002 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x00000028 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0007000f },
+   { 0x00800031, 0x2ac01d29, 0x00ad0e60, 0x0414a008 },
+   { 0x00800031, 0x2b601d29, 0x00ad0e60, 0x0414a009 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0001000f },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 },
+   { 0x00800031, 0x2b401d29, 0x00ad0e60, 0x0411a008 },
+   { 0x00800031, 0x2be01d29, 0x00ad0e60, 0x0411a009 },
+   { 0x00800040, 0x29c04629, 0x00ad0ac0, 0x00ad0ae0 },
+   { 0x00800040, 0x29e04629, 0x00ad0ae0, 0x00ad0b00 },
+   { 0x00800040, 0x2a004629, 0x00ad0b00, 0x00ad0b20 },
+   { 0x00800040, 0x2a204629, 0x00ad0b20, 0x00ad0b40 },
+   { 0x00800040, 0x29c04529, 0x00ad09c0, 0x00ad0ac1 },
+   { 0x00800040, 0x29e04529, 0x00ad09e0, 0x00ad0ae1 },
+   { 0x00800040, 0x2a004529, 0x00ad0a00, 0x00ad0b01 },
+   { 0x00800040, 0x2a204529, 0x00ad0a20, 0x00ad0b21 },
+   { 0x00800040, 0x29c04529, 0x00ad09c0, 0x00ad0ae1 },
+   { 0x00800040, 0x29e04529, 0x00ad09e0, 0x00ad0b01 },
+   { 0x00800040, 0x2a004529, 0x00ad0a00, 0x00ad0b21 },
+   { 0x00800040, 0x2a204529, 0x00ad0a20, 0x00ad0b41 },
+   { 0x00800040, 0x2a404629, 0x00ad0b60, 0x00ad0b80 },
+   { 0x00800040, 0x2a604629, 0x00ad0b80, 0x00ad0ba0 },
+   { 0x00800040, 0x2a804629, 0x00ad0ba0, 0x00ad0bc0 },
+   { 0x00800040, 0x2aa04629, 0x00ad0bc0, 0x00ad0be0 },
+   { 0x00800040, 0x2a404529, 0x00ad0a40, 0x00ad0b61 },
+   { 0x00800040, 0x2a604529, 0x00ad0a60, 0x00ad0b81 },
+   { 0x00800040, 0x2a804529, 0x00ad0a80, 0x00ad0ba1 },
+   { 0x00800040, 0x2aa04529, 0x00ad0aa0, 0x00ad0bc1 },
+   { 0x00800040, 0x2a404529, 0x00ad0a40, 0x00ad0b81 },
+   { 0x00800040, 0x2a604529, 0x00ad0a60, 0x00ad0ba1 },
+   { 0x00800040, 0x2a804529, 0x00ad0a80, 0x00ad0bc1 },
+   { 0x00800040, 0x2aa04529, 0x00ad0aa0, 0x00ad0be1 },
+   { 0x80800008, 0x29c02d29, 0x00b109c0, 0x00020002 },
+   { 0x80800008, 0x29e02d29, 0x00b109e0, 0x00020002 },
+   { 0x80800008, 0x2a002d29, 0x00b10a00, 0x00020002 },
+   { 0x80800008, 0x2a202d29, 0x00b10a20, 0x00020002 },
+   { 0x80800008, 0x2a402d29, 0x00b10a40, 0x00020002 },
+   { 0x80800008, 0x2a602d29, 0x00b10a60, 0x00020002 },
+   { 0x80800008, 0x2a802d29, 0x00b10a80, 0x00020002 },
+   { 0x80800008, 0x2aa02d29, 0x00b10aa0, 0x00020002 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000028 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0007000f },
+   { 0x00800031, 0x2ac01d29, 0x00ad0e60, 0x0414a008 },
+   { 0x00800031, 0x2b601d29, 0x00ad0e60, 0x0414a009 },
+   { 0x80800042, 0x29c04629, 0x00ad0ac0, 0x00ad0ac1 },
+   { 0x80800042, 0x29e04629, 0x00ad0ae0, 0x00ad0ae1 },
+   { 0x80800042, 0x2a004629, 0x00ad0b00, 0x00ad0b01 },
+   { 0x80800042, 0x2a204629, 0x00ad0b20, 0x00ad0b21 },
+   { 0x80800042, 0x2a404629, 0x00ad0b60, 0x00ad0b61 },
+   { 0x80800042, 0x2a604629, 0x00ad0b80, 0x00ad0b81 },
+   { 0x80800042, 0x2a804629, 0x00ad0ba0, 0x00ad0ba1 },
+   { 0x80800042, 0x2aa04629, 0x00ad0bc0, 0x00ad0bc1 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x0000001c },
+   { 0x01000005, 0x20002d3c, 0x0021003c, 0x00020002 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x0000000f },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0007000f },
+   { 0x00800031, 0x2ac01d29, 0x00ad0e60, 0x0414a008 },
+   { 0x00800031, 0x2b601d29, 0x00ad0e60, 0x0414a009 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0000000f },
+   { 0x00800031, 0x2b401d29, 0x00ad0e60, 0x0411a008 },
+   { 0x00800031, 0x2be01d29, 0x00ad0e60, 0x0411a009 },
+   { 0x80800042, 0x29c04629, 0x00ad0ac0, 0x00ad0ae0 },
+   { 0x80800042, 0x29e04629, 0x00ad0ae0, 0x00ad0b00 },
+   { 0x80800042, 0x2a004629, 0x00ad0b00, 0x00ad0b20 },
+   { 0x80800042, 0x2a204629, 0x00ad0b20, 0x00ad0b40 },
+   { 0x80800042, 0x2a404629, 0x00ad0b60, 0x00ad0b80 },
+   { 0x80800042, 0x2a604629, 0x00ad0b80, 0x00ad0ba0 },
+   { 0x80800042, 0x2a804629, 0x00ad0ba0, 0x00ad0bc0 },
+   { 0x80800042, 0x2aa04629, 0x00ad0bc0, 0x00ad0be0 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x0000000b },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0007000f },
+   { 0x00800031, 0x2ac01d29, 0x00ad0e60, 0x0414a008 },
+   { 0x00800031, 0x2b601d29, 0x00ad0e60, 0x0414a009 },
+   { 0x00800001, 0x29c00229, 0x00ad0ac0, 0x00000000 },
+   { 0x00800001, 0x29e00229, 0x00ad0ae0, 0x00000000 },
+   { 0x00800001, 0x2a000229, 0x00ad0b00, 0x00000000 },
+   { 0x00800001, 0x2a200229, 0x00ad0b20, 0x00000000 },
+   { 0x00800001, 0x2a400229, 0x00ad0b60, 0x00000000 },
+   { 0x00800001, 0x2a600229, 0x00ad0b80, 0x00000000 },
+   { 0x00800001, 0x2a800229, 0x00ad0ba0, 0x00000000 },
+   { 0x00800001, 0x2aa00229, 0x00ad0bc0, 0x00000000 },
+   { 0x00600001, 0x25900129, 0x008d09c0, 0x00000000 },
+   { 0x00600001, 0x25b00129, 0x008d09e0, 0x00000000 },
+   { 0x00600001, 0x25d00129, 0x008d0a00, 0x00000000 },
+   { 0x00600001, 0x25f00129, 0x008d0a20, 0x00000000 },
+   { 0x00600001, 0x26100129, 0x008d0a40, 0x00000000 },
+   { 0x00600001, 0x26300129, 0x008d0a60, 0x00000000 },
+   { 0x00600001, 0x26500129, 0x008d0a80, 0x00000000 },
+   { 0x00600001, 0x26700129, 0x008d0aa0, 0x00000000 },
+   { 0x80800042, 0x25802529, 0x00b10880, 0x00b10580 },
+   { 0x80800042, 0x25a02529, 0x00b108a0, 0x00b105a0 },
+   { 0x80800042, 0x25c02529, 0x00b108c0, 0x00b105c0 },
+   { 0x80800042, 0x25e02529, 0x00b108e0, 0x00b105e0 },
+   { 0x80800042, 0x26002529, 0x00b10900, 0x00b10600 },
+   { 0x80800042, 0x26202529, 0x00b10920, 0x00b10620 },
+   { 0x80800042, 0x26402529, 0x00b10940, 0x00b10640 },
+   { 0x80800042, 0x26602529, 0x00b10960, 0x00b10660 },
+   { 0x00600001, 0x20200021, 0x008d0980, 0x00000000 },
+   { 0x00800001, 0x458101f1, 0x00000000, 0x00000000 },
+   { 0x00800001, 0x45a101f1, 0x00000000, 0x00000000 },
+   { 0x00800001, 0x45c101f1, 0x00000000, 0x00000000 },
+   { 0x00800001, 0x45e101f1, 0x00000000, 0x00000000 },
+   { 0x00800001, 0x460101f1, 0x00000000, 0x00000000 },
+   { 0x00800001, 0x462101f1, 0x00000000, 0x00000000 },
+   { 0x00800001, 0x464101f1, 0x00000000, 0x00000000 },
+   { 0x00800001, 0x466101f1, 0x00000000, 0x00000000 },
+   { 0x02000005, 0x20002e3c, 0x0021003e, 0x00010001 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x00000011 },
+   { 0x00800040, 0x238045ad, 0x00b10060, 0x00b20380 },
+   { 0x00800040, 0x23a045ad, 0x00b10080, 0x00b203a0 },
+   { 0x00800040, 0x23c045ad, 0x00b100a0, 0x00b203c0 },
+   { 0x00800040, 0x23e045ad, 0x00b100c0, 0x00b203e0 },
+   { 0x00800040, 0x240045ad, 0x00b100e0, 0x00b20400 },
+   { 0x00800040, 0x242045ad, 0x00b10100, 0x00b20420 },
+   { 0x00800040, 0x244045ad, 0x00b10120, 0x00b20440 },
+   { 0x00800040, 0x246045ad, 0x00b10140, 0x00b20460 },
+   { 0x00800040, 0x248045ad, 0x00b10160, 0x00b20480 },
+   { 0x00800040, 0x24a045ad, 0x00b10180, 0x00b204a0 },
+   { 0x00800040, 0x24c045ad, 0x00b101a0, 0x00b204c0 },
+   { 0x00800040, 0x24e045ad, 0x00b101c0, 0x00b204e0 },
+   { 0x00800040, 0x250045ad, 0x00b101e0, 0x00b20500 },
+   { 0x00800040, 0x252045ad, 0x00b10200, 0x00b20520 },
+   { 0x00800040, 0x254045ad, 0x00b10220, 0x00b20540 },
+   { 0x00800040, 0x256045ad, 0x00b10240, 0x00b20560 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000010 },
+   { 0x00800040, 0x238045ad, 0x00b10060, 0x00b20380 },
+   { 0x00800040, 0x23a045ad, 0x00b10160, 0x00b203a0 },
+   { 0x00800040, 0x23c045ad, 0x00b10080, 0x00b203c0 },
+   { 0x00800040, 0x23e045ad, 0x00b10180, 0x00b203e0 },
+   { 0x00800040, 0x240045ad, 0x00b100a0, 0x00b20400 },
+   { 0x00800040, 0x242045ad, 0x00b101a0, 0x00b20420 },
+   { 0x00800040, 0x244045ad, 0x00b100c0, 0x00b20440 },
+   { 0x00800040, 0x246045ad, 0x00b101c0, 0x00b20460 },
+   { 0x00800040, 0x248045ad, 0x00b100e0, 0x00b20480 },
+   { 0x00800040, 0x24a045ad, 0x00b101e0, 0x00b204a0 },
+   { 0x00800040, 0x24c045ad, 0x00b10100, 0x00b204c0 },
+   { 0x00800040, 0x24e045ad, 0x00b10200, 0x00b204e0 },
+   { 0x00800040, 0x250045ad, 0x00b10120, 0x00b20500 },
+   { 0x00800040, 0x252045ad, 0x00b10220, 0x00b20520 },
+   { 0x00800040, 0x254045ad, 0x00b10140, 0x00b20540 },
+   { 0x00800040, 0x256045ad, 0x00b10240, 0x00b20560 },
+   { 0x00000001, 0x20280061, 0x00000000, 0x000f000f },
+   { 0x80800001, 0x438001b1, 0x00b10380, 0x00000000 },
+   { 0x80800001, 0x43a001b1, 0x00b103a0, 0x00000000 },
+   { 0x80800001, 0x43c001b1, 0x00b103c0, 0x00000000 },
+   { 0x80800001, 0x43e001b1, 0x00b103e0, 0x00000000 },
+   { 0x80800001, 0x440001b1, 0x00b10400, 0x00000000 },
+   { 0x80800001, 0x442001b1, 0x00b10420, 0x00000000 },
+   { 0x80800001, 0x444001b1, 0x00b10440, 0x00000000 },
+   { 0x80800001, 0x446001b1, 0x00b10460, 0x00000000 },
+   { 0x80800001, 0x448001b1, 0x00b10480, 0x00000000 },
+   { 0x80800001, 0x44a001b1, 0x00b104a0, 0x00000000 },
+   { 0x80800001, 0x44c001b1, 0x00b104c0, 0x00000000 },
+   { 0x80800001, 0x44e001b1, 0x00b104e0, 0x00000000 },
+   { 0x80800001, 0x450001b1, 0x00b10500, 0x00000000 },
+   { 0x80800001, 0x452001b1, 0x00b10520, 0x00000000 },
+   { 0x80800001, 0x454001b1, 0x00b10540, 0x00000000 },
+   { 0x80800001, 0x456001b1, 0x00b10560, 0x00000000 },
+   { 0x00800001, 0x20200232, 0x00b20380, 0x00000000 },
+   { 0x00800001, 0x20300232, 0x00b203a0, 0x00000000 },
+   { 0x00800001, 0x20400232, 0x00b203c0, 0x00000000 },
+   { 0x00800001, 0x20500232, 0x00b203e0, 0x00000000 },
+   { 0x00800001, 0x20600232, 0x00b20400, 0x00000000 },
+   { 0x00800001, 0x20700232, 0x00b20420, 0x00000000 },
+   { 0x00800001, 0x20800232, 0x00b20440, 0x00000000 },
+   { 0x00800001, 0x20900232, 0x00b20460, 0x00000000 },
+   { 0x00800001, 0x20a00232, 0x00b20480, 0x00000000 },
+   { 0x00800001, 0x20b00232, 0x00b204a0, 0x00000000 },
+   { 0x00800001, 0x20c00232, 0x00b204c0, 0x00000000 },
+   { 0x00800001, 0x20d00232, 0x00b204e0, 0x00000000 },
+   { 0x00800001, 0x20e00232, 0x00b20500, 0x00000000 },
+   { 0x00800001, 0x20f00232, 0x00b20520, 0x00000000 },
+   { 0x00800001, 0x21000232, 0x00b20540, 0x00000000 },
+   { 0x00800001, 0x21100232, 0x00b20560, 0x00000000 },
+   { 0x00800031, 0x24001d28, 0x008d0020, 0x05902000 },
+   { 0x00000001, 0x20280061, 0x00000000, 0x00070007 },
+   { 0x00200008, 0x20201c21, 0x00450020, 0x00000001 },
+   { 0x00800040, 0x258025a9, 0x00b10260, 0x00b10580 },
+   { 0x00800040, 0x25a025a9, 0x00b10280, 0x00b105a0 },
+   { 0x00800040, 0x25c025a9, 0x00b102a0, 0x00b105c0 },
+   { 0x00800040, 0x25e025a9, 0x00b102c0, 0x00b105e0 },
+   { 0x80800001, 0x45800131, 0x00b10580, 0x00000000 },
+   { 0x80800001, 0x45a00131, 0x00b105a0, 0x00000000 },
+   { 0x80800001, 0x45c00131, 0x00b105c0, 0x00000000 },
+   { 0x80800001, 0x45e00131, 0x00b105e0, 0x00000000 },
+   { 0x00800001, 0x20200232, 0x00b20580, 0x00000000 },
+   { 0x00800001, 0x20300232, 0x00b205a0, 0x00000000 },
+   { 0x00800001, 0x20400232, 0x00b205c0, 0x00000000 },
+   { 0x00800001, 0x20500232, 0x00b205e0, 0x00000000 },
+   { 0x00800031, 0x24001d28, 0x008d0020, 0x05302001 },
+   { 0x00800040, 0x260025a9, 0x00b102e0, 0x00b10600 },
+   { 0x00800040, 0x262025a9, 0x00b10300, 0x00b10620 },
+   { 0x00800040, 0x264025a9, 0x00b10320, 0x00b10640 },
+   { 0x00800040, 0x266025a9, 0x00b10340, 0x00b10660 },
+   { 0x80800001, 0x46000131, 0x00b10600, 0x00000000 },
+   { 0x80800001, 0x46200131, 0x00b10620, 0x00000000 },
+   { 0x80800001, 0x46400131, 0x00b10640, 0x00000000 },
+   { 0x80800001, 0x46600131, 0x00b10660, 0x00000000 },
+   { 0x00800001, 0x20200232, 0x00b20600, 0x00000000 },
+   { 0x00800001, 0x20300232, 0x00b20620, 0x00000000 },
+   { 0x00800001, 0x20400232, 0x00b20640, 0x00000000 },
+   { 0x00800001, 0x20500232, 0x00b20660, 0x00000000 },
+   { 0x00800031, 0x24001d28, 0x008d0020, 0x05302002 },
+   { 0x00800031, 0x24001d28, 0x008d0000, 0x87100000 },
diff --git a/src/xvmc/shader/mc/field_backward.g4a b/src/xvmc/shader/mc/field_backward.g4a
new file mode 100644
index 0000000..8c721c6
--- /dev/null
+++ b/src/xvmc/shader/mc/field_backward.g4a
@@ -0,0 +1,124 @@
+/*
+ * Copyright © 2008 Intel Corporation
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice (including the next
+ * paragraph) shall be included in all copies or substantial portions of the
+ * Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
+ * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+ * SOFTWARE.
+ *
+ * Author:
+ *    Zou Nan hai <nanhai.zou at intel.com>
+ *    Zhang Hua jun <huajun.zhang at intel.com>
+ *    Xing Dong sheng <dongsheng.xing at intel.com>
+ *
+ */
+mov (8) g76.0<1>UD g1.0<8,8,1>UD {align1};
+//mov (8) g77.0<1>UD g2.0<8,8,1>UD {align1};
+
+include(`block_clear.g4i')
+
+mov (8) g115.0<1>UD g1.0<8,8,1>UD {align1};
+mov (8) g116.0<1>UD g1.0<8,8,1>UD {align1};
+/*Y buffer*/
+mov(1) g115.8<1>UD 0x007001fUD  { align1 };
+mov(1) g1.8<1>UD 0x007000fUD  { align1 };
+/*first vector*/
+asr (2) g115.14<1>W g1.18<2,2,1>W 1W {align1};
+add (2) g115.0<1>D g116.0<2,2,1>D g115.14<2,2,1>W {align1};
+and (1) g115.4<1>UD g115.4<1,1,1>UD 0xFFFFFFFEUD {align1};
+mov(1) g115.8<1>UD 0x1fUD  { align1 }; //read 1 line, 32 columns.
+
+and.nz (1) null g1.31<1,1,1>UB 0x2UW {align1};
+(f0) add (1) g115.4<1>D g115.4<1,1,1>D 1D {align1};
+define(`surface',`7')
+define(`mv1',`g1.18')
+define(`mv2',`g1.20')
+include(`motion_field_y.g4i')
+mov (8) g28.0<1>UD g96.0<8,8,1>UD {align1};
+mov (8) g30.0<1>UD g97.0<8,8,1>UD {align1};
+mov (8) g32.0<1>UD g98.0<8,8,1>UD {align1};
+mov (8) g34.0<1>UD g99.0<8,8,1>UD {align1};
+mov (8) g36.0<1>UD g100.0<8,8,1>UD {align1};
+mov (8) g38.0<1>UD g101.0<8,8,1>UD {align1};
+mov (8) g40.0<1>UD g102.0<8,8,1>UD {align1};
+mov (8) g42.0<1>UD g103.0<8,8,1>UD {align1};
+/*second vector*/
+asr (2) g115.14<1>W g1.26<2,2,1>W 1W {align1};
+add (2) g115.0<1>D g116.0<2,2,1>D g115.14<2,2,1>W {align1};
+and (1) g115.4<1>UD g115.4<1,1,1>UD 0xFFFFFFFEUD {align1};
+mov(1) g115.8<1>UD 0x1fUD  { align1 }; //read 1 line, 32 columns.
+
+and.nz (1) null g1.31<1,1,1>UB 0x8UW {align1};
+(f0) add (1) g115.4<1>D g115.4<1,1,1>D 1D {align1};
+define(`surface',`7')
+define(`mv1',`g1.26')
+define(`mv2',`g1.28')
+include(`motion_field_y.g4i')
+mov (8) g29.0<1>UD g96.0<8,8,1>UD {align1};
+mov (8) g31.0<1>UD g97.0<8,8,1>UD {align1};
+mov (8) g33.0<1>UD g98.0<8,8,1>UD {align1};
+mov (8) g35.0<1>UD g99.0<8,8,1>UD {align1};
+mov (8) g37.0<1>UD g100.0<8,8,1>UD {align1};
+mov (8) g39.0<1>UD g101.0<8,8,1>UD {align1};
+mov (8) g41.0<1>UD g102.0<8,8,1>UD {align1};
+mov (8) g43.0<1>UD g103.0<8,8,1>UD {align1};
+/*U buffer, V buffer*/
+mov(1) g115.8<1>UD 0x007000fUD  { align1 };
+/*first vector*/
+asr (2) g115.14<1>W g1.18<2,2,1>W 2W {align1};
+asr (2) g115.0<1>D g116.0<2,2,1>D 1D {align1};
+add (2) g115.0<1>D g115.0<2,2,1>D g115.14<2,2,1>W {align1};
+and (1) g115.4<1>UD g115.4<1,1,1>UD 0xFFFFFFFEUD {align1};
+
+and.nz (1) null g1.31<1,1,1>UB 0x2UW {align1};
+(f0) add (1) g115.4<1>UD g115.4<1,1,1>UD 1UD {align1};
+define(`surface_u',`8')
+define(`surface_v',`9')
+define(`mv1',`g1.18')
+define(`mv2',`g1.20')
+include(`motion_field_uv.g4i')
+mov (8) g44.0<1>UW g78.0<8,8,1>UW {align1};
+mov (8) g45.0<1>UW g79.0<8,8,1>UW {align1};
+mov (8) g46.0<1>UW g80.0<8,8,1>UW {align1};
+mov (8) g47.0<1>UW g81.0<8,8,1>UW {align1};
+mov (8) g48.0<1>UW g82.0<8,8,1>UW {align1};
+mov (8) g49.0<1>UW g83.0<8,8,1>UW {align1};
+mov (8) g50.0<1>UW g84.0<8,8,1>UW {align1};
+mov (8) g51.0<1>UW g85.0<8,8,1>UW {align1};
+/*second vector*/
+asr (2) g115.14<1>W g1.26<2,2,1>W 2W {align1};
+asr (2) g115.0<1>D g116.0<2,2,1>D 1D {align1};
+add (2) g115.0<1>D g115.0<2,2,1>D g115.14<2,2,1>W {align1};
+and (1) g115.4<1>UD g115.4<1,1,1>UD 0xFFFFFFFEUD {align1};
+
+and.nz (1) null g1.31<1,1,1>UB 0x8UW {align1};
+(f0) add (1) g115.4<1>UD g115.4<1,1,1>UD 1UD {align1};
+define(`mv1',`g1.26')
+define(`mv2',`g1.28')
+include(`motion_field_uv.g4i')
+mov (8) g44.16<1>UW g78.0<8,8,1>UW {align1};
+mov (8) g45.16<1>UW g79.0<8,8,1>UW {align1};
+mov (8) g46.16<1>UW g80.0<8,8,1>UW {align1};
+mov (8) g47.16<1>UW g81.0<8,8,1>UW {align1};
+mov (8) g48.16<1>UW g82.0<8,8,1>UW {align1};
+mov (8) g49.16<1>UW g83.0<8,8,1>UW {align1};
+mov (8) g50.16<1>UW g84.0<8,8,1>UW {align1};
+mov (8) g51.16<1>UW g85.0<8,8,1>UW {align1};
+
+include(`addidct.g4i')
+//send (16) 0 acc0<1>UW g0<8,8,1>UW 
+//	thread_spawner(0, 0, 0) mlen 1 rlen 0 { align1 EOT};
diff --git a/src/xvmc/shader/mc/field_backward.g4b b/src/xvmc/shader/mc/field_backward.g4b
new file mode 100644
index 0000000..cce7d45
--- /dev/null
+++ b/src/xvmc/shader/mc/field_backward.g4b
@@ -0,0 +1,1341 @@
+   { 0x00600001, 0x29800021, 0x008d0020, 0x00000000 },
+   { 0x02000005, 0x20000c3c, 0x00210040, 0x00000001 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x00000030 },
+   { 0x00000040, 0x20480c21, 0x00210988, 0x00000000 },
+   { 0x00800031, 0x20601c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x20801c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x20a01c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x20c01c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x20e01c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x21001c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x21201c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x21401c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x21601c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x21801c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x21a01c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x21c01c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x21e01c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x22001c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x22201c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x22401c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x22601c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x22801c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x22a01c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x22c01c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x22e01c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x23001c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x23201c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x23401c21, 0x00b10040, 0x04110203 },
+   { 0x02000005, 0x20002d3c, 0x0021098c, 0x00200020 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x00000008 },
+   { 0x00600001, 0x20600169, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x20800169, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x20a00169, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x20c00169, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x20e00169, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x21000169, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x21200169, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x21400169, 0x00000000, 0x00000000 },
+   { 0x02000005, 0x20002d3c, 0x0021002c, 0x00100010 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x00000008 },
+   { 0x00600001, 0x20700169, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x20900169, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x20b00169, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x20d00169, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x20f00169, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x21100169, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x21300169, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x21500169, 0x00000000, 0x00000000 },
+   { 0x02000005, 0x20002d3c, 0x0021002c, 0x00080008 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x00000008 },
+   { 0x00600001, 0x21600169, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x21800169, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x21a00169, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x21c00169, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x21e00169, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x22000169, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x22200169, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x22400169, 0x00000000, 0x00000000 },
+   { 0x02000005, 0x20002d3c, 0x0021002c, 0x00040004 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x00000008 },
+   { 0x00600001, 0x21700169, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x21900169, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x21b00169, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x21d00169, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x21f00169, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x22100169, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x22300169, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x22500169, 0x00000000, 0x00000000 },
+   { 0x02000005, 0x20002d3c, 0x0021002c, 0x00020002 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x00000004 },
+   { 0x00800001, 0x22600169, 0x00000000, 0x00000000 },
+   { 0x00800001, 0x22800169, 0x00000000, 0x00000000 },
+   { 0x00800001, 0x22a00169, 0x00000000, 0x00000000 },
+   { 0x00800001, 0x22c00169, 0x00000000, 0x00000000 },
+   { 0x02000005, 0x20002d3c, 0x0021002c, 0x00010001 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x00000004 },
+   { 0x00800001, 0x22e00169, 0x00000000, 0x00000000 },
+   { 0x00800001, 0x23000169, 0x00000000, 0x00000000 },
+   { 0x00800001, 0x23200169, 0x00000000, 0x00000000 },
+   { 0x00800001, 0x23400169, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x2e600021, 0x008d0020, 0x00000000 },
+   { 0x00600001, 0x2e800021, 0x008d0020, 0x00000000 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0007001f },
+   { 0x00000001, 0x20280061, 0x00000000, 0x0007000f },
+   { 0x0020000c, 0x2e6e3dad, 0x00450032, 0x00010001 },
+   { 0x00200040, 0x2e6034a5, 0x00450e80, 0x00450e6e },
+   { 0x00000005, 0x2e640c21, 0x00210e64, 0xfffffffe },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
+   { 0x02000005, 0x20002e3c, 0x0021003f, 0x00020002 },
+   { 0x00010040, 0x2e641ca5, 0x00210e64, 0x00000001 },
+   { 0x01000005, 0x20002d3c, 0x00210032, 0x00010001 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x000000b1 },
+   { 0x01000005, 0x20002d3c, 0x00210034, 0x00010001 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x0000007d },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
+   { 0x00800031, 0x29c01d29, 0x008d0e60, 0x0411a007 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00800031, 0x2a001d29, 0x008d0e60, 0x0411a007 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00800031, 0x2a401d29, 0x008d0e60, 0x0411a007 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00800031, 0x2a801d29, 0x008d0e60, 0x0411a007 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0007001f },
+   { 0x00800031, 0x2ac01d29, 0x008d0e60, 0x0418a007 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
+   { 0x00800031, 0x2bc01d29, 0x008d0e60, 0x0411a007 },
+   { 0x00000005, 0x20580c21, 0x00210e60, 0x00000003 },
+   { 0x00000041, 0x20580c21, 0x00210058, 0x00000019 },
+   { 0x00000020, 0x34001400, 0x00001400, 0x00210058 },
+   { 0x00800040, 0x2c004629, 0x00b109c0, 0x00b10a00 },
+   { 0x00800040, 0x2c204629, 0x00b10a00, 0x00b10a40 },
+   { 0x00800040, 0x2c404629, 0x00b10a40, 0x00b10a80 },
+   { 0x00800040, 0x2c604629, 0x00b10a80, 0x00b10ac0 },
+   { 0x00800040, 0x2c804629, 0x00b10ac0, 0x00b10b00 },
+   { 0x00800040, 0x2ca04629, 0x00b10b00, 0x00b10b40 },
+   { 0x00800040, 0x2cc04629, 0x00b10b40, 0x00b10b80 },
+   { 0x00800040, 0x2ce04629, 0x00b10b80, 0x00b10bc0 },
+   { 0x00800040, 0x2c004529, 0x00b10c00, 0x00b109c1 },
+   { 0x00800040, 0x2c204529, 0x00b10c20, 0x00b10a01 },
+   { 0x00800040, 0x2c404529, 0x00b10c40, 0x00b10a41 },
+   { 0x00800040, 0x2c604529, 0x00b10c60, 0x00b10a81 },
+   { 0x00800040, 0x2c804529, 0x00b10c80, 0x00b10ac1 },
+   { 0x00800040, 0x2ca04529, 0x00b10ca0, 0x00b10b01 },
+   { 0x00800040, 0x2cc04529, 0x00b10cc0, 0x00b10b41 },
+   { 0x00800040, 0x2ce04529, 0x00b10ce0, 0x00b10b81 },
+   { 0x00800040, 0x2c004529, 0x00b10c00, 0x00b10a01 },
+   { 0x00800040, 0x2c204529, 0x00b10c20, 0x00b10a41 },
+   { 0x00800040, 0x2c404529, 0x00b10c40, 0x00b10a81 },
+   { 0x00800040, 0x2c604529, 0x00b10c60, 0x00b10ac1 },
+   { 0x00800040, 0x2c804529, 0x00b10c80, 0x00b10b01 },
+   { 0x00800040, 0x2ca04529, 0x00b10ca0, 0x00b10b41 },
+   { 0x00800040, 0x2cc04529, 0x00b10cc0, 0x00b10b81 },
+   { 0x00800040, 0x2ce04529, 0x00b10ce0, 0x00b10bc1 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x0000004a },
+   { 0x00800040, 0x2c004629, 0x00b109c1, 0x00b10a01 },
+   { 0x00800040, 0x2c204629, 0x00b10a01, 0x00b10a41 },
+   { 0x00800040, 0x2c404629, 0x00b10a41, 0x00b10a81 },
+   { 0x00800040, 0x2c604629, 0x00b10a81, 0x00b10ac1 },
+   { 0x00800040, 0x2c804629, 0x00b10ac1, 0x00b10b01 },
+   { 0x00800040, 0x2ca04629, 0x00b10b01, 0x00b10b41 },
+   { 0x00800040, 0x2cc04629, 0x00b10b41, 0x00b10b81 },
+   { 0x00800040, 0x2ce04629, 0x00b10b81, 0x00b10bc1 },
+   { 0x00800040, 0x2c004529, 0x00b10c00, 0x00b109c2 },
+   { 0x00800040, 0x2c204529, 0x00b10c20, 0x00b10a02 },
+   { 0x00800040, 0x2c404529, 0x00b10c40, 0x00b10a42 },
+   { 0x00800040, 0x2c604529, 0x00b10c60, 0x00b10a82 },
+   { 0x00800040, 0x2c804529, 0x00b10c80, 0x00b10ac2 },
+   { 0x00800040, 0x2ca04529, 0x00b10ca0, 0x00b10b02 },
+   { 0x00800040, 0x2cc04529, 0x00b10cc0, 0x00b10b42 },
+   { 0x00800040, 0x2ce04529, 0x00b10ce0, 0x00b10b82 },
+   { 0x00800040, 0x2c004529, 0x00b10c00, 0x00b10a02 },
+   { 0x00800040, 0x2c204529, 0x00b10c20, 0x00b10a42 },
+   { 0x00800040, 0x2c404529, 0x00b10c40, 0x00b10a82 },
+   { 0x00800040, 0x2c604529, 0x00b10c60, 0x00b10ac2 },
+   { 0x00800040, 0x2c804529, 0x00b10c80, 0x00b10b02 },
+   { 0x00800040, 0x2ca04529, 0x00b10ca0, 0x00b10b42 },
+   { 0x00800040, 0x2cc04529, 0x00b10cc0, 0x00b10b82 },
+   { 0x00800040, 0x2ce04529, 0x00b10ce0, 0x00b10bc2 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000031 },
+   { 0x00800040, 0x2c004629, 0x00b109c2, 0x00b10a02 },
+   { 0x00800040, 0x2c204629, 0x00b10a02, 0x00b10a42 },
+   { 0x00800040, 0x2c404629, 0x00b10a42, 0x00b10a82 },
+   { 0x00800040, 0x2c604629, 0x00b10a82, 0x00b10ac2 },
+   { 0x00800040, 0x2c804629, 0x00b10ac2, 0x00b10b02 },
+   { 0x00800040, 0x2ca04629, 0x00b10b02, 0x00b10b42 },
+   { 0x00800040, 0x2cc04629, 0x00b10b42, 0x00b10b82 },
+   { 0x00800040, 0x2ce04629, 0x00b10b82, 0x00b10bc2 },
+   { 0x00800040, 0x2c004529, 0x00b10c00, 0x00b109c3 },
+   { 0x00800040, 0x2c204529, 0x00b10c20, 0x00b10a03 },
+   { 0x00800040, 0x2c404529, 0x00b10c40, 0x00b10a43 },
+   { 0x00800040, 0x2c604529, 0x00b10c60, 0x00b10a83 },
+   { 0x00800040, 0x2c804529, 0x00b10c80, 0x00b10ac3 },
+   { 0x00800040, 0x2ca04529, 0x00b10ca0, 0x00b10b03 },
+   { 0x00800040, 0x2cc04529, 0x00b10cc0, 0x00b10b43 },
+   { 0x00800040, 0x2ce04529, 0x00b10ce0, 0x00b10b83 },
+   { 0x00800040, 0x2c004529, 0x00b10c00, 0x00b10a03 },
+   { 0x00800040, 0x2c204529, 0x00b10c20, 0x00b10a43 },
+   { 0x00800040, 0x2c404529, 0x00b10c40, 0x00b10a83 },
+   { 0x00800040, 0x2c604529, 0x00b10c60, 0x00b10ac3 },
+   { 0x00800040, 0x2c804529, 0x00b10c80, 0x00b10b03 },
+   { 0x00800040, 0x2ca04529, 0x00b10ca0, 0x00b10b43 },
+   { 0x00800040, 0x2cc04529, 0x00b10cc0, 0x00b10b83 },
+   { 0x00800040, 0x2ce04529, 0x00b10ce0, 0x00b10bc3 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000018 },
+   { 0x00800040, 0x2c004629, 0x00b109c3, 0x00b10a03 },
+   { 0x00800040, 0x2c204629, 0x00b10a03, 0x00b10a43 },
+   { 0x00800040, 0x2c404629, 0x00b10a43, 0x00b10a83 },
+   { 0x00800040, 0x2c604629, 0x00b10a83, 0x00b10ac3 },
+   { 0x00800040, 0x2c804629, 0x00b10ac3, 0x00b10b03 },
+   { 0x00800040, 0x2ca04629, 0x00b10b03, 0x00b10b43 },
+   { 0x00800040, 0x2cc04629, 0x00b10b43, 0x00b10b83 },
+   { 0x00800040, 0x2ce04629, 0x00b10b83, 0x00b10bc3 },
+   { 0x00800040, 0x2c004529, 0x00b10c00, 0x00b109c4 },
+   { 0x00800040, 0x2c204529, 0x00b10c20, 0x00b10a04 },
+   { 0x00800040, 0x2c404529, 0x00b10c40, 0x00b10a44 },
+   { 0x00800040, 0x2c604529, 0x00b10c60, 0x00b10a84 },
+   { 0x00800040, 0x2c804529, 0x00b10c80, 0x00b10ac4 },
+   { 0x00800040, 0x2ca04529, 0x00b10ca0, 0x00b10b04 },
+   { 0x00800040, 0x2cc04529, 0x00b10cc0, 0x00b10b44 },
+   { 0x00800040, 0x2ce04529, 0x00b10ce0, 0x00b10b84 },
+   { 0x00800040, 0x2c004529, 0x00b10c00, 0x00b10a04 },
+   { 0x00800040, 0x2c204529, 0x00b10c20, 0x00b10a44 },
+   { 0x00800040, 0x2c404529, 0x00b10c40, 0x00b10a84 },
+   { 0x00800040, 0x2c604529, 0x00b10c60, 0x00b10ac4 },
+   { 0x00800040, 0x2c804529, 0x00b10c80, 0x00b10b04 },
+   { 0x00800040, 0x2ca04529, 0x00b10ca0, 0x00b10b44 },
+   { 0x00800040, 0x2cc04529, 0x00b10cc0, 0x00b10b84 },
+   { 0x00800040, 0x2ce04529, 0x00b10ce0, 0x00b10bc4 },
+   { 0x00800008, 0x2c002d29, 0x00b10c00, 0x00020002 },
+   { 0x00800008, 0x2c202d29, 0x00b10c20, 0x00020002 },
+   { 0x00800008, 0x2c402d29, 0x00b10c40, 0x00020002 },
+   { 0x00800008, 0x2c602d29, 0x00b10c60, 0x00020002 },
+   { 0x00800008, 0x2c802d29, 0x00b10c80, 0x00020002 },
+   { 0x00800008, 0x2ca02d29, 0x00b10ca0, 0x00020002 },
+   { 0x00800008, 0x2cc02d29, 0x00b10cc0, 0x00020002 },
+   { 0x00800008, 0x2ce02d29, 0x00b10ce0, 0x00020002 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x0000009a },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
+   { 0x00800031, 0x29c01d29, 0x008d0e60, 0x0411a007 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00800031, 0x2a001d29, 0x008d0e60, 0x0411a007 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00800031, 0x2a401d29, 0x008d0e60, 0x0411a007 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00800031, 0x2a801d29, 0x008d0e60, 0x0411a007 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0007001f },
+   { 0x00800031, 0x2ac01d29, 0x008d0e60, 0x0418a007 },
+   { 0x00000005, 0x20580c21, 0x00210e60, 0x00000003 },
+   { 0x00000041, 0x20580c21, 0x00210058, 0x00000009 },
+   { 0x00000020, 0x34001400, 0x00001400, 0x00210058 },
+   { 0x80800042, 0x2c004629, 0x00b109c0, 0x00b109c1 },
+   { 0x80800042, 0x2c204629, 0x00b10a00, 0x00b10a01 },
+   { 0x80800042, 0x2c404629, 0x00b10a40, 0x00b10a41 },
+   { 0x80800042, 0x2c604629, 0x00b10a80, 0x00b10a81 },
+   { 0x80800042, 0x2c804629, 0x00b10ac0, 0x00b10ac1 },
+   { 0x80800042, 0x2ca04629, 0x00b10b00, 0x00b10b01 },
+   { 0x80800042, 0x2cc04629, 0x00b10b40, 0x00b10b41 },
+   { 0x80800042, 0x2ce04629, 0x00b10b80, 0x00b10b81 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x0000001a },
+   { 0x80800042, 0x2c004629, 0x00b109c1, 0x00b109c2 },
+   { 0x80800042, 0x2c204629, 0x00b10a01, 0x00b10a02 },
+   { 0x80800042, 0x2c404629, 0x00b10a41, 0x00b10a42 },
+   { 0x80800042, 0x2c604629, 0x00b10a81, 0x00b10a82 },
+   { 0x80800042, 0x2c804629, 0x00b10ac1, 0x00b10ac2 },
+   { 0x80800042, 0x2ca04629, 0x00b10b01, 0x00b10b02 },
+   { 0x80800042, 0x2cc04629, 0x00b10b41, 0x00b10b42 },
+   { 0x80800042, 0x2ce04629, 0x00b10b81, 0x00b10b82 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000011 },
+   { 0x80800042, 0x2c004629, 0x00b109c2, 0x00b109c3 },
+   { 0x80800042, 0x2c204629, 0x00b10a02, 0x00b10a03 },
+   { 0x80800042, 0x2c404629, 0x00b10a42, 0x00b10a43 },
+   { 0x80800042, 0x2c604629, 0x00b10a82, 0x00b10a83 },
+   { 0x80800042, 0x2c804629, 0x00b10ac2, 0x00b10ac3 },
+   { 0x80800042, 0x2ca04629, 0x00b10b02, 0x00b10b03 },
+   { 0x80800042, 0x2cc04629, 0x00b10b42, 0x00b10b43 },
+   { 0x80800042, 0x2ce04629, 0x00b10b82, 0x00b10b83 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000008 },
+   { 0x80800042, 0x2c004629, 0x00b109c3, 0x00b109c4 },
+   { 0x80800042, 0x2c204629, 0x00b10a03, 0x00b10a04 },
+   { 0x80800042, 0x2c404629, 0x00b10a43, 0x00b10a44 },
+   { 0x80800042, 0x2c604629, 0x00b10a83, 0x00b10a84 },
+   { 0x80800042, 0x2c804629, 0x00b10ac3, 0x00b10ac4 },
+   { 0x80800042, 0x2ca04629, 0x00b10b03, 0x00b10b04 },
+   { 0x80800042, 0x2cc04629, 0x00b10b43, 0x00b10b44 },
+   { 0x80800042, 0x2ce04629, 0x00b10b83, 0x00b10b84 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000068 },
+   { 0x01000005, 0x20002d3c, 0x00210034, 0x00010001 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x00000035 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
+   { 0x00800031, 0x29c01d29, 0x008d0e60, 0x0411a007 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00800031, 0x2a001d29, 0x008d0e60, 0x0411a007 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00800031, 0x2a401d29, 0x008d0e60, 0x0411a007 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00800031, 0x2a801d29, 0x008d0e60, 0x0411a007 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0007001f },
+   { 0x00800031, 0x2ac01d29, 0x008d0e60, 0x0418a007 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
+   { 0x00800031, 0x2bc01d29, 0x008d0e60, 0x0411a007 },
+   { 0x00000005, 0x20580c21, 0x00210e60, 0x00000003 },
+   { 0x00000041, 0x20580c21, 0x00210058, 0x00000009 },
+   { 0x00000020, 0x34001400, 0x00001400, 0x00210058 },
+   { 0x80800042, 0x2c004629, 0x00b109c0, 0x00b10a00 },
+   { 0x80800042, 0x2c204629, 0x00b10a00, 0x00b10a40 },
+   { 0x80800042, 0x2c404629, 0x00b10a40, 0x00b10a80 },
+   { 0x80800042, 0x2c604629, 0x00b10a80, 0x00b10ac0 },
+   { 0x80800042, 0x2c804629, 0x00b10ac0, 0x00b10b00 },
+   { 0x80800042, 0x2ca04629, 0x00b10b00, 0x00b10b40 },
+   { 0x80800042, 0x2cc04629, 0x00b10b40, 0x00b10b80 },
+   { 0x80800042, 0x2ce04629, 0x00b10b80, 0x00b10bc0 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x0000001a },
+   { 0x80800042, 0x2c004629, 0x00b109c1, 0x00b10a01 },
+   { 0x80800042, 0x2c204629, 0x00b10a01, 0x00b10a41 },
+   { 0x80800042, 0x2c404629, 0x00b10a41, 0x00b10a81 },
+   { 0x80800042, 0x2c604629, 0x00b10a81, 0x00b10ac1 },
+   { 0x80800042, 0x2c804629, 0x00b10ac1, 0x00b10b01 },
+   { 0x80800042, 0x2ca04629, 0x00b10b01, 0x00b10b41 },
+   { 0x80800042, 0x2cc04629, 0x00b10b41, 0x00b10b81 },
+   { 0x80800042, 0x2ce04629, 0x00b10b81, 0x00b10bc1 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000011 },
+   { 0x80800042, 0x2c004629, 0x00b109c2, 0x00b10a02 },
+   { 0x80800042, 0x2c204629, 0x00b10a02, 0x00b10a42 },
+   { 0x80800042, 0x2c404629, 0x00b10a42, 0x00b10a82 },
+   { 0x80800042, 0x2c604629, 0x00b10a82, 0x00b10ac2 },
+   { 0x80800042, 0x2c804629, 0x00b10ac2, 0x00b10b02 },
+   { 0x80800042, 0x2ca04629, 0x00b10b02, 0x00b10b42 },
+   { 0x80800042, 0x2cc04629, 0x00b10b42, 0x00b10b82 },
+   { 0x80800042, 0x2ce04629, 0x00b10b82, 0x00b10bc2 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000008 },
+   { 0x80800042, 0x2c004629, 0x00b109c3, 0x00b10a03 },
+   { 0x80800042, 0x2c204629, 0x00b10a03, 0x00b10a43 },
+   { 0x80800042, 0x2c404629, 0x00b10a43, 0x00b10a83 },
+   { 0x80800042, 0x2c604629, 0x00b10a83, 0x00b10ac3 },
+   { 0x80800042, 0x2c804629, 0x00b10ac3, 0x00b10b03 },
+   { 0x80800042, 0x2ca04629, 0x00b10b03, 0x00b10b43 },
+   { 0x80800042, 0x2cc04629, 0x00b10b43, 0x00b10b83 },
+   { 0x80800042, 0x2ce04629, 0x00b10b83, 0x00b10bc3 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000031 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
+   { 0x00800031, 0x29c01d29, 0x008d0e60, 0x0411a007 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00800031, 0x2a001d29, 0x008d0e60, 0x0411a007 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00800031, 0x2a401d29, 0x008d0e60, 0x0411a007 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00800031, 0x2a801d29, 0x008d0e60, 0x0411a007 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0007001f },
+   { 0x00800031, 0x2ac01d29, 0x008d0e60, 0x0418a007 },
+   { 0x00000005, 0x20580c21, 0x00210e60, 0x00000003 },
+   { 0x00000041, 0x20580c21, 0x00210058, 0x00000009 },
+   { 0x00000020, 0x34001400, 0x00001400, 0x00210058 },
+   { 0x00800001, 0x2c000229, 0x00b109c0, 0x00000000 },
+   { 0x00800001, 0x2c200229, 0x00b10a00, 0x00000000 },
+   { 0x00800001, 0x2c400229, 0x00b10a40, 0x00000000 },
+   { 0x00800001, 0x2c600229, 0x00b10a80, 0x00000000 },
+   { 0x00800001, 0x2c800229, 0x00b10ac0, 0x00000000 },
+   { 0x00800001, 0x2ca00229, 0x00b10b00, 0x00000000 },
+   { 0x00800001, 0x2cc00229, 0x00b10b40, 0x00000000 },
+   { 0x00800001, 0x2ce00229, 0x00b10b80, 0x00000000 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x0000001a },
+   { 0x00800001, 0x2c000229, 0x00b109c1, 0x00000000 },
+   { 0x00800001, 0x2c200229, 0x00b10a01, 0x00000000 },
+   { 0x00800001, 0x2c400229, 0x00b10a41, 0x00000000 },
+   { 0x00800001, 0x2c600229, 0x00b10a81, 0x00000000 },
+   { 0x00800001, 0x2c800229, 0x00b10ac1, 0x00000000 },
+   { 0x00800001, 0x2ca00229, 0x00b10b01, 0x00000000 },
+   { 0x00800001, 0x2cc00229, 0x00b10b41, 0x00000000 },
+   { 0x00800001, 0x2ce00229, 0x00b10b81, 0x00000000 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000011 },
+   { 0x00800001, 0x2c000229, 0x00b109c2, 0x00000000 },
+   { 0x00800001, 0x2c200229, 0x00b10a02, 0x00000000 },
+   { 0x00800001, 0x2c400229, 0x00b10a42, 0x00000000 },
+   { 0x00800001, 0x2c600229, 0x00b10a82, 0x00000000 },
+   { 0x00800001, 0x2c800229, 0x00b10ac2, 0x00000000 },
+   { 0x00800001, 0x2ca00229, 0x00b10b02, 0x00000000 },
+   { 0x00800001, 0x2cc00229, 0x00b10b42, 0x00000000 },
+   { 0x00800001, 0x2ce00229, 0x00b10b82, 0x00000000 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000008 },
+   { 0x00800001, 0x2c000229, 0x00b109c3, 0x00000000 },
+   { 0x00800001, 0x2c200229, 0x00b10a03, 0x00000000 },
+   { 0x00800001, 0x2c400229, 0x00b10a43, 0x00000000 },
+   { 0x00800001, 0x2c600229, 0x00b10a83, 0x00000000 },
+   { 0x00800001, 0x2c800229, 0x00b10ac3, 0x00000000 },
+   { 0x00800001, 0x2ca00229, 0x00b10b03, 0x00000000 },
+   { 0x00800001, 0x2cc00229, 0x00b10b43, 0x00000000 },
+   { 0x00800001, 0x2ce00229, 0x00b10b83, 0x00000000 },
+   { 0x00600001, 0x23800021, 0x008d0c00, 0x00000000 },
+   { 0x00600001, 0x23c00021, 0x008d0c20, 0x00000000 },
+   { 0x00600001, 0x24000021, 0x008d0c40, 0x00000000 },
+   { 0x00600001, 0x24400021, 0x008d0c60, 0x00000000 },
+   { 0x00600001, 0x24800021, 0x008d0c80, 0x00000000 },
+   { 0x00600001, 0x24c00021, 0x008d0ca0, 0x00000000 },
+   { 0x00600001, 0x25000021, 0x008d0cc0, 0x00000000 },
+   { 0x00600001, 0x25400021, 0x008d0ce0, 0x00000000 },
+   { 0x0020000c, 0x2e6e3dad, 0x0045003a, 0x00010001 },
+   { 0x00200040, 0x2e6034a5, 0x00450e80, 0x00450e6e },
+   { 0x00000005, 0x2e640c21, 0x00210e64, 0xfffffffe },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
+   { 0x02000005, 0x20002e3c, 0x0021003f, 0x00080008 },
+   { 0x00010040, 0x2e641ca5, 0x00210e64, 0x00000001 },
+   { 0x01000005, 0x20002d3c, 0x0021003a, 0x00010001 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x000000b1 },
+   { 0x01000005, 0x20002d3c, 0x0021003c, 0x00010001 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x0000007d },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
+   { 0x00800031, 0x29c01d29, 0x008d0e60, 0x0411a007 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00800031, 0x2a001d29, 0x008d0e60, 0x0411a007 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00800031, 0x2a401d29, 0x008d0e60, 0x0411a007 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00800031, 0x2a801d29, 0x008d0e60, 0x0411a007 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0007001f },
+   { 0x00800031, 0x2ac01d29, 0x008d0e60, 0x0418a007 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
+   { 0x00800031, 0x2bc01d29, 0x008d0e60, 0x0411a007 },
+   { 0x00000005, 0x20580c21, 0x00210e60, 0x00000003 },
+   { 0x00000041, 0x20580c21, 0x00210058, 0x00000019 },
+   { 0x00000020, 0x34001400, 0x00001400, 0x00210058 },
+   { 0x00800040, 0x2c004629, 0x00b109c0, 0x00b10a00 },
+   { 0x00800040, 0x2c204629, 0x00b10a00, 0x00b10a40 },
+   { 0x00800040, 0x2c404629, 0x00b10a40, 0x00b10a80 },
+   { 0x00800040, 0x2c604629, 0x00b10a80, 0x00b10ac0 },
+   { 0x00800040, 0x2c804629, 0x00b10ac0, 0x00b10b00 },
+   { 0x00800040, 0x2ca04629, 0x00b10b00, 0x00b10b40 },
+   { 0x00800040, 0x2cc04629, 0x00b10b40, 0x00b10b80 },
+   { 0x00800040, 0x2ce04629, 0x00b10b80, 0x00b10bc0 },
+   { 0x00800040, 0x2c004529, 0x00b10c00, 0x00b109c1 },
+   { 0x00800040, 0x2c204529, 0x00b10c20, 0x00b10a01 },
+   { 0x00800040, 0x2c404529, 0x00b10c40, 0x00b10a41 },
+   { 0x00800040, 0x2c604529, 0x00b10c60, 0x00b10a81 },
+   { 0x00800040, 0x2c804529, 0x00b10c80, 0x00b10ac1 },
+   { 0x00800040, 0x2ca04529, 0x00b10ca0, 0x00b10b01 },
+   { 0x00800040, 0x2cc04529, 0x00b10cc0, 0x00b10b41 },
+   { 0x00800040, 0x2ce04529, 0x00b10ce0, 0x00b10b81 },
+   { 0x00800040, 0x2c004529, 0x00b10c00, 0x00b10a01 },
+   { 0x00800040, 0x2c204529, 0x00b10c20, 0x00b10a41 },
+   { 0x00800040, 0x2c404529, 0x00b10c40, 0x00b10a81 },
+   { 0x00800040, 0x2c604529, 0x00b10c60, 0x00b10ac1 },
+   { 0x00800040, 0x2c804529, 0x00b10c80, 0x00b10b01 },
+   { 0x00800040, 0x2ca04529, 0x00b10ca0, 0x00b10b41 },
+   { 0x00800040, 0x2cc04529, 0x00b10cc0, 0x00b10b81 },
+   { 0x00800040, 0x2ce04529, 0x00b10ce0, 0x00b10bc1 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x0000004a },
+   { 0x00800040, 0x2c004629, 0x00b109c1, 0x00b10a01 },
+   { 0x00800040, 0x2c204629, 0x00b10a01, 0x00b10a41 },
+   { 0x00800040, 0x2c404629, 0x00b10a41, 0x00b10a81 },
+   { 0x00800040, 0x2c604629, 0x00b10a81, 0x00b10ac1 },
+   { 0x00800040, 0x2c804629, 0x00b10ac1, 0x00b10b01 },
+   { 0x00800040, 0x2ca04629, 0x00b10b01, 0x00b10b41 },
+   { 0x00800040, 0x2cc04629, 0x00b10b41, 0x00b10b81 },
+   { 0x00800040, 0x2ce04629, 0x00b10b81, 0x00b10bc1 },
+   { 0x00800040, 0x2c004529, 0x00b10c00, 0x00b109c2 },
+   { 0x00800040, 0x2c204529, 0x00b10c20, 0x00b10a02 },
+   { 0x00800040, 0x2c404529, 0x00b10c40, 0x00b10a42 },
+   { 0x00800040, 0x2c604529, 0x00b10c60, 0x00b10a82 },
+   { 0x00800040, 0x2c804529, 0x00b10c80, 0x00b10ac2 },
+   { 0x00800040, 0x2ca04529, 0x00b10ca0, 0x00b10b02 },
+   { 0x00800040, 0x2cc04529, 0x00b10cc0, 0x00b10b42 },
+   { 0x00800040, 0x2ce04529, 0x00b10ce0, 0x00b10b82 },
+   { 0x00800040, 0x2c004529, 0x00b10c00, 0x00b10a02 },
+   { 0x00800040, 0x2c204529, 0x00b10c20, 0x00b10a42 },
+   { 0x00800040, 0x2c404529, 0x00b10c40, 0x00b10a82 },
+   { 0x00800040, 0x2c604529, 0x00b10c60, 0x00b10ac2 },
+   { 0x00800040, 0x2c804529, 0x00b10c80, 0x00b10b02 },
+   { 0x00800040, 0x2ca04529, 0x00b10ca0, 0x00b10b42 },
+   { 0x00800040, 0x2cc04529, 0x00b10cc0, 0x00b10b82 },
+   { 0x00800040, 0x2ce04529, 0x00b10ce0, 0x00b10bc2 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000031 },
+   { 0x00800040, 0x2c004629, 0x00b109c2, 0x00b10a02 },
+   { 0x00800040, 0x2c204629, 0x00b10a02, 0x00b10a42 },
+   { 0x00800040, 0x2c404629, 0x00b10a42, 0x00b10a82 },
+   { 0x00800040, 0x2c604629, 0x00b10a82, 0x00b10ac2 },
+   { 0x00800040, 0x2c804629, 0x00b10ac2, 0x00b10b02 },
+   { 0x00800040, 0x2ca04629, 0x00b10b02, 0x00b10b42 },
+   { 0x00800040, 0x2cc04629, 0x00b10b42, 0x00b10b82 },
+   { 0x00800040, 0x2ce04629, 0x00b10b82, 0x00b10bc2 },
+   { 0x00800040, 0x2c004529, 0x00b10c00, 0x00b109c3 },
+   { 0x00800040, 0x2c204529, 0x00b10c20, 0x00b10a03 },
+   { 0x00800040, 0x2c404529, 0x00b10c40, 0x00b10a43 },
+   { 0x00800040, 0x2c604529, 0x00b10c60, 0x00b10a83 },
+   { 0x00800040, 0x2c804529, 0x00b10c80, 0x00b10ac3 },
+   { 0x00800040, 0x2ca04529, 0x00b10ca0, 0x00b10b03 },
+   { 0x00800040, 0x2cc04529, 0x00b10cc0, 0x00b10b43 },
+   { 0x00800040, 0x2ce04529, 0x00b10ce0, 0x00b10b83 },
+   { 0x00800040, 0x2c004529, 0x00b10c00, 0x00b10a03 },
+   { 0x00800040, 0x2c204529, 0x00b10c20, 0x00b10a43 },
+   { 0x00800040, 0x2c404529, 0x00b10c40, 0x00b10a83 },
+   { 0x00800040, 0x2c604529, 0x00b10c60, 0x00b10ac3 },
+   { 0x00800040, 0x2c804529, 0x00b10c80, 0x00b10b03 },
+   { 0x00800040, 0x2ca04529, 0x00b10ca0, 0x00b10b43 },
+   { 0x00800040, 0x2cc04529, 0x00b10cc0, 0x00b10b83 },
+   { 0x00800040, 0x2ce04529, 0x00b10ce0, 0x00b10bc3 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000018 },
+   { 0x00800040, 0x2c004629, 0x00b109c3, 0x00b10a03 },
+   { 0x00800040, 0x2c204629, 0x00b10a03, 0x00b10a43 },
+   { 0x00800040, 0x2c404629, 0x00b10a43, 0x00b10a83 },
+   { 0x00800040, 0x2c604629, 0x00b10a83, 0x00b10ac3 },
+   { 0x00800040, 0x2c804629, 0x00b10ac3, 0x00b10b03 },
+   { 0x00800040, 0x2ca04629, 0x00b10b03, 0x00b10b43 },
+   { 0x00800040, 0x2cc04629, 0x00b10b43, 0x00b10b83 },
+   { 0x00800040, 0x2ce04629, 0x00b10b83, 0x00b10bc3 },
+   { 0x00800040, 0x2c004529, 0x00b10c00, 0x00b109c4 },
+   { 0x00800040, 0x2c204529, 0x00b10c20, 0x00b10a04 },
+   { 0x00800040, 0x2c404529, 0x00b10c40, 0x00b10a44 },
+   { 0x00800040, 0x2c604529, 0x00b10c60, 0x00b10a84 },
+   { 0x00800040, 0x2c804529, 0x00b10c80, 0x00b10ac4 },
+   { 0x00800040, 0x2ca04529, 0x00b10ca0, 0x00b10b04 },
+   { 0x00800040, 0x2cc04529, 0x00b10cc0, 0x00b10b44 },
+   { 0x00800040, 0x2ce04529, 0x00b10ce0, 0x00b10b84 },
+   { 0x00800040, 0x2c004529, 0x00b10c00, 0x00b10a04 },
+   { 0x00800040, 0x2c204529, 0x00b10c20, 0x00b10a44 },
+   { 0x00800040, 0x2c404529, 0x00b10c40, 0x00b10a84 },
+   { 0x00800040, 0x2c604529, 0x00b10c60, 0x00b10ac4 },
+   { 0x00800040, 0x2c804529, 0x00b10c80, 0x00b10b04 },
+   { 0x00800040, 0x2ca04529, 0x00b10ca0, 0x00b10b44 },
+   { 0x00800040, 0x2cc04529, 0x00b10cc0, 0x00b10b84 },
+   { 0x00800040, 0x2ce04529, 0x00b10ce0, 0x00b10bc4 },
+   { 0x00800008, 0x2c002d29, 0x00b10c00, 0x00020002 },
+   { 0x00800008, 0x2c202d29, 0x00b10c20, 0x00020002 },
+   { 0x00800008, 0x2c402d29, 0x00b10c40, 0x00020002 },
+   { 0x00800008, 0x2c602d29, 0x00b10c60, 0x00020002 },
+   { 0x00800008, 0x2c802d29, 0x00b10c80, 0x00020002 },
+   { 0x00800008, 0x2ca02d29, 0x00b10ca0, 0x00020002 },
+   { 0x00800008, 0x2cc02d29, 0x00b10cc0, 0x00020002 },
+   { 0x00800008, 0x2ce02d29, 0x00b10ce0, 0x00020002 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x0000009a },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
+   { 0x00800031, 0x29c01d29, 0x008d0e60, 0x0411a007 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00800031, 0x2a001d29, 0x008d0e60, 0x0411a007 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00800031, 0x2a401d29, 0x008d0e60, 0x0411a007 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00800031, 0x2a801d29, 0x008d0e60, 0x0411a007 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0007001f },
+   { 0x00800031, 0x2ac01d29, 0x008d0e60, 0x0418a007 },
+   { 0x00000005, 0x20580c21, 0x00210e60, 0x00000003 },
+   { 0x00000041, 0x20580c21, 0x00210058, 0x00000009 },
+   { 0x00000020, 0x34001400, 0x00001400, 0x00210058 },
+   { 0x80800042, 0x2c004629, 0x00b109c0, 0x00b109c1 },
+   { 0x80800042, 0x2c204629, 0x00b10a00, 0x00b10a01 },
+   { 0x80800042, 0x2c404629, 0x00b10a40, 0x00b10a41 },
+   { 0x80800042, 0x2c604629, 0x00b10a80, 0x00b10a81 },
+   { 0x80800042, 0x2c804629, 0x00b10ac0, 0x00b10ac1 },
+   { 0x80800042, 0x2ca04629, 0x00b10b00, 0x00b10b01 },
+   { 0x80800042, 0x2cc04629, 0x00b10b40, 0x00b10b41 },
+   { 0x80800042, 0x2ce04629, 0x00b10b80, 0x00b10b81 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x0000001a },
+   { 0x80800042, 0x2c004629, 0x00b109c1, 0x00b109c2 },
+   { 0x80800042, 0x2c204629, 0x00b10a01, 0x00b10a02 },
+   { 0x80800042, 0x2c404629, 0x00b10a41, 0x00b10a42 },
+   { 0x80800042, 0x2c604629, 0x00b10a81, 0x00b10a82 },
+   { 0x80800042, 0x2c804629, 0x00b10ac1, 0x00b10ac2 },
+   { 0x80800042, 0x2ca04629, 0x00b10b01, 0x00b10b02 },
+   { 0x80800042, 0x2cc04629, 0x00b10b41, 0x00b10b42 },
+   { 0x80800042, 0x2ce04629, 0x00b10b81, 0x00b10b82 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000011 },
+   { 0x80800042, 0x2c004629, 0x00b109c2, 0x00b109c3 },
+   { 0x80800042, 0x2c204629, 0x00b10a02, 0x00b10a03 },
+   { 0x80800042, 0x2c404629, 0x00b10a42, 0x00b10a43 },
+   { 0x80800042, 0x2c604629, 0x00b10a82, 0x00b10a83 },
+   { 0x80800042, 0x2c804629, 0x00b10ac2, 0x00b10ac3 },
+   { 0x80800042, 0x2ca04629, 0x00b10b02, 0x00b10b03 },
+   { 0x80800042, 0x2cc04629, 0x00b10b42, 0x00b10b43 },
+   { 0x80800042, 0x2ce04629, 0x00b10b82, 0x00b10b83 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000008 },
+   { 0x80800042, 0x2c004629, 0x00b109c3, 0x00b109c4 },
+   { 0x80800042, 0x2c204629, 0x00b10a03, 0x00b10a04 },
+   { 0x80800042, 0x2c404629, 0x00b10a43, 0x00b10a44 },
+   { 0x80800042, 0x2c604629, 0x00b10a83, 0x00b10a84 },
+   { 0x80800042, 0x2c804629, 0x00b10ac3, 0x00b10ac4 },
+   { 0x80800042, 0x2ca04629, 0x00b10b03, 0x00b10b04 },
+   { 0x80800042, 0x2cc04629, 0x00b10b43, 0x00b10b44 },
+   { 0x80800042, 0x2ce04629, 0x00b10b83, 0x00b10b84 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000068 },
+   { 0x01000005, 0x20002d3c, 0x0021003c, 0x00010001 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x00000035 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
+   { 0x00800031, 0x29c01d29, 0x008d0e60, 0x0411a007 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00800031, 0x2a001d29, 0x008d0e60, 0x0411a007 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00800031, 0x2a401d29, 0x008d0e60, 0x0411a007 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00800031, 0x2a801d29, 0x008d0e60, 0x0411a007 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0007001f },
+   { 0x00800031, 0x2ac01d29, 0x008d0e60, 0x0418a007 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
+   { 0x00800031, 0x2bc01d29, 0x008d0e60, 0x0411a007 },
+   { 0x00000005, 0x20580c21, 0x00210e60, 0x00000003 },
+   { 0x00000041, 0x20580c21, 0x00210058, 0x00000009 },
+   { 0x00000020, 0x34001400, 0x00001400, 0x00210058 },
+   { 0x80800042, 0x2c004629, 0x00b109c0, 0x00b10a00 },
+   { 0x80800042, 0x2c204629, 0x00b10a00, 0x00b10a40 },
+   { 0x80800042, 0x2c404629, 0x00b10a40, 0x00b10a80 },
+   { 0x80800042, 0x2c604629, 0x00b10a80, 0x00b10ac0 },
+   { 0x80800042, 0x2c804629, 0x00b10ac0, 0x00b10b00 },
+   { 0x80800042, 0x2ca04629, 0x00b10b00, 0x00b10b40 },
+   { 0x80800042, 0x2cc04629, 0x00b10b40, 0x00b10b80 },
+   { 0x80800042, 0x2ce04629, 0x00b10b80, 0x00b10bc0 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x0000001a },
+   { 0x80800042, 0x2c004629, 0x00b109c1, 0x00b10a01 },
+   { 0x80800042, 0x2c204629, 0x00b10a01, 0x00b10a41 },
+   { 0x80800042, 0x2c404629, 0x00b10a41, 0x00b10a81 },
+   { 0x80800042, 0x2c604629, 0x00b10a81, 0x00b10ac1 },
+   { 0x80800042, 0x2c804629, 0x00b10ac1, 0x00b10b01 },
+   { 0x80800042, 0x2ca04629, 0x00b10b01, 0x00b10b41 },
+   { 0x80800042, 0x2cc04629, 0x00b10b41, 0x00b10b81 },
+   { 0x80800042, 0x2ce04629, 0x00b10b81, 0x00b10bc1 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000011 },
+   { 0x80800042, 0x2c004629, 0x00b109c2, 0x00b10a02 },
+   { 0x80800042, 0x2c204629, 0x00b10a02, 0x00b10a42 },
+   { 0x80800042, 0x2c404629, 0x00b10a42, 0x00b10a82 },
+   { 0x80800042, 0x2c604629, 0x00b10a82, 0x00b10ac2 },
+   { 0x80800042, 0x2c804629, 0x00b10ac2, 0x00b10b02 },
+   { 0x80800042, 0x2ca04629, 0x00b10b02, 0x00b10b42 },
+   { 0x80800042, 0x2cc04629, 0x00b10b42, 0x00b10b82 },
+   { 0x80800042, 0x2ce04629, 0x00b10b82, 0x00b10bc2 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000008 },
+   { 0x80800042, 0x2c004629, 0x00b109c3, 0x00b10a03 },
+   { 0x80800042, 0x2c204629, 0x00b10a03, 0x00b10a43 },
+   { 0x80800042, 0x2c404629, 0x00b10a43, 0x00b10a83 },
+   { 0x80800042, 0x2c604629, 0x00b10a83, 0x00b10ac3 },
+   { 0x80800042, 0x2c804629, 0x00b10ac3, 0x00b10b03 },
+   { 0x80800042, 0x2ca04629, 0x00b10b03, 0x00b10b43 },
+   { 0x80800042, 0x2cc04629, 0x00b10b43, 0x00b10b83 },
+   { 0x80800042, 0x2ce04629, 0x00b10b83, 0x00b10bc3 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000031 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
+   { 0x00800031, 0x29c01d29, 0x008d0e60, 0x0411a007 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00800031, 0x2a001d29, 0x008d0e60, 0x0411a007 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00800031, 0x2a401d29, 0x008d0e60, 0x0411a007 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00800031, 0x2a801d29, 0x008d0e60, 0x0411a007 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0007001f },
+   { 0x00800031, 0x2ac01d29, 0x008d0e60, 0x0418a007 },
+   { 0x00000005, 0x20580c21, 0x00210e60, 0x00000003 },
+   { 0x00000041, 0x20580c21, 0x00210058, 0x00000009 },
+   { 0x00000020, 0x34001400, 0x00001400, 0x00210058 },
+   { 0x00800001, 0x2c000229, 0x00b109c0, 0x00000000 },
+   { 0x00800001, 0x2c200229, 0x00b10a00, 0x00000000 },
+   { 0x00800001, 0x2c400229, 0x00b10a40, 0x00000000 },
+   { 0x00800001, 0x2c600229, 0x00b10a80, 0x00000000 },
+   { 0x00800001, 0x2c800229, 0x00b10ac0, 0x00000000 },
+   { 0x00800001, 0x2ca00229, 0x00b10b00, 0x00000000 },
+   { 0x00800001, 0x2cc00229, 0x00b10b40, 0x00000000 },
+   { 0x00800001, 0x2ce00229, 0x00b10b80, 0x00000000 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x0000001a },
+   { 0x00800001, 0x2c000229, 0x00b109c1, 0x00000000 },
+   { 0x00800001, 0x2c200229, 0x00b10a01, 0x00000000 },
+   { 0x00800001, 0x2c400229, 0x00b10a41, 0x00000000 },
+   { 0x00800001, 0x2c600229, 0x00b10a81, 0x00000000 },
+   { 0x00800001, 0x2c800229, 0x00b10ac1, 0x00000000 },
+   { 0x00800001, 0x2ca00229, 0x00b10b01, 0x00000000 },
+   { 0x00800001, 0x2cc00229, 0x00b10b41, 0x00000000 },
+   { 0x00800001, 0x2ce00229, 0x00b10b81, 0x00000000 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000011 },
+   { 0x00800001, 0x2c000229, 0x00b109c2, 0x00000000 },
+   { 0x00800001, 0x2c200229, 0x00b10a02, 0x00000000 },
+   { 0x00800001, 0x2c400229, 0x00b10a42, 0x00000000 },
+   { 0x00800001, 0x2c600229, 0x00b10a82, 0x00000000 },
+   { 0x00800001, 0x2c800229, 0x00b10ac2, 0x00000000 },
+   { 0x00800001, 0x2ca00229, 0x00b10b02, 0x00000000 },
+   { 0x00800001, 0x2cc00229, 0x00b10b42, 0x00000000 },
+   { 0x00800001, 0x2ce00229, 0x00b10b82, 0x00000000 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000008 },
+   { 0x00800001, 0x2c000229, 0x00b109c3, 0x00000000 },
+   { 0x00800001, 0x2c200229, 0x00b10a03, 0x00000000 },
+   { 0x00800001, 0x2c400229, 0x00b10a43, 0x00000000 },
+   { 0x00800001, 0x2c600229, 0x00b10a83, 0x00000000 },
+   { 0x00800001, 0x2c800229, 0x00b10ac3, 0x00000000 },
+   { 0x00800001, 0x2ca00229, 0x00b10b03, 0x00000000 },
+   { 0x00800001, 0x2cc00229, 0x00b10b43, 0x00000000 },
+   { 0x00800001, 0x2ce00229, 0x00b10b83, 0x00000000 },
+   { 0x00600001, 0x23a00021, 0x008d0c00, 0x00000000 },
+   { 0x00600001, 0x23e00021, 0x008d0c20, 0x00000000 },
+   { 0x00600001, 0x24200021, 0x008d0c40, 0x00000000 },
+   { 0x00600001, 0x24600021, 0x008d0c60, 0x00000000 },
+   { 0x00600001, 0x24a00021, 0x008d0c80, 0x00000000 },
+   { 0x00600001, 0x24e00021, 0x008d0ca0, 0x00000000 },
+   { 0x00600001, 0x25200021, 0x008d0cc0, 0x00000000 },
+   { 0x00600001, 0x25600021, 0x008d0ce0, 0x00000000 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0007000f },
+   { 0x0020000c, 0x2e6e3dad, 0x00450032, 0x00020002 },
+   { 0x0020000c, 0x2e601ca5, 0x00450e80, 0x00000001 },
+   { 0x00200040, 0x2e6034a5, 0x00450e60, 0x00450e6e },
+   { 0x00000005, 0x2e640c21, 0x00210e64, 0xfffffffe },
+   { 0x02000005, 0x20002e3c, 0x0021003f, 0x00020002 },
+   { 0x00010040, 0x2e640c21, 0x00210e64, 0x00000001 },
+   { 0x01000005, 0x20002d3c, 0x00210032, 0x00020002 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x000000a2 },
+   { 0x01000005, 0x20002d3c, 0x00210034, 0x00020002 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x00000076 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0007000f },
+   { 0x00800031, 0x2ac01d29, 0x00ad0e60, 0x0414a008 },
+   { 0x00800031, 0x2b601d29, 0x00ad0e60, 0x0414a009 },
+   { 0x00000005, 0x20580c21, 0x00210e60, 0x00000003 },
+   { 0x00000041, 0x20580c21, 0x00210058, 0x00000019 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0001000f },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 },
+   { 0x00800031, 0x2b401d29, 0x00ad0e60, 0x0411a008 },
+   { 0x00800031, 0x2be01d29, 0x00ad0e60, 0x0411a009 },
+   { 0x00000020, 0x34001400, 0x00001400, 0x00210058 },
+   { 0x00800040, 0x29c04629, 0x00ad0ac0, 0x00ad0ae0 },
+   { 0x00800040, 0x29e04629, 0x00ad0ae0, 0x00ad0b00 },
+   { 0x00800040, 0x2a004629, 0x00ad0b00, 0x00ad0b20 },
+   { 0x00800040, 0x2a204629, 0x00ad0b20, 0x00ad0b40 },
+   { 0x00800040, 0x29c04529, 0x00ad09c0, 0x00ad0ac1 },
+   { 0x00800040, 0x29e04529, 0x00ad09e0, 0x00ad0ae1 },
+   { 0x00800040, 0x2a004529, 0x00ad0a00, 0x00ad0b01 },
+   { 0x00800040, 0x2a204529, 0x00ad0a20, 0x00ad0b21 },
+   { 0x00800040, 0x29c04529, 0x00ad09c0, 0x00ad0ae1 },
+   { 0x00800040, 0x29e04529, 0x00ad09e0, 0x00ad0b01 },
+   { 0x00800040, 0x2a004529, 0x00ad0a00, 0x00ad0b21 },
+   { 0x00800040, 0x2a204529, 0x00ad0a20, 0x00ad0b41 },
+   { 0x00800040, 0x2a404629, 0x00ad0b60, 0x00ad0b80 },
+   { 0x00800040, 0x2a604629, 0x00ad0b80, 0x00ad0ba0 },
+   { 0x00800040, 0x2a804629, 0x00ad0ba0, 0x00ad0bc0 },
+   { 0x00800040, 0x2aa04629, 0x00ad0bc0, 0x00ad0be0 },
+   { 0x00800040, 0x2a404529, 0x00ad0a40, 0x00ad0b61 },
+   { 0x00800040, 0x2a604529, 0x00ad0a60, 0x00ad0b81 },
+   { 0x00800040, 0x2a804529, 0x00ad0a80, 0x00ad0ba1 },
+   { 0x00800040, 0x2aa04529, 0x00ad0aa0, 0x00ad0bc1 },
+   { 0x00800040, 0x2a404529, 0x00ad0a40, 0x00ad0b81 },
+   { 0x00800040, 0x2a604529, 0x00ad0a60, 0x00ad0ba1 },
+   { 0x00800040, 0x2a804529, 0x00ad0a80, 0x00ad0bc1 },
+   { 0x00800040, 0x2aa04529, 0x00ad0aa0, 0x00ad0be1 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x0000004a },
+   { 0x00800040, 0x29c04629, 0x00ad0ac1, 0x00ad0ae1 },
+   { 0x00800040, 0x29e04629, 0x00ad0ae1, 0x00ad0b01 },
+   { 0x00800040, 0x2a004629, 0x00ad0b01, 0x00ad0b21 },
+   { 0x00800040, 0x2a204629, 0x00ad0b21, 0x00ad0b41 },
+   { 0x00800040, 0x29c04529, 0x00ad09c0, 0x00ad0ac2 },
+   { 0x00800040, 0x29e04529, 0x00ad09e0, 0x00ad0ae2 },
+   { 0x00800040, 0x2a004529, 0x00ad0a00, 0x00ad0b02 },
+   { 0x00800040, 0x2a204529, 0x00ad0a20, 0x00ad0b22 },
+   { 0x00800040, 0x29c04529, 0x00ad09c0, 0x00ad0ae2 },
+   { 0x00800040, 0x29e04529, 0x00ad09e0, 0x00ad0b02 },
+   { 0x00800040, 0x2a004529, 0x00ad0a00, 0x00ad0b22 },
+   { 0x00800040, 0x2a204529, 0x00ad0a20, 0x00ad0b42 },
+   { 0x00800040, 0x2a404629, 0x00ad0b61, 0x00ad0b81 },
+   { 0x00800040, 0x2a604629, 0x00ad0b81, 0x00ad0ba1 },
+   { 0x00800040, 0x2a804629, 0x00ad0ba1, 0x00ad0bc1 },
+   { 0x00800040, 0x2aa04629, 0x00ad0bc1, 0x00ad0be1 },
+   { 0x00800040, 0x2a404529, 0x00ad0a40, 0x00ad0b62 },
+   { 0x00800040, 0x2a604529, 0x00ad0a60, 0x00ad0b82 },
+   { 0x00800040, 0x2a804529, 0x00ad0a80, 0x00ad0ba2 },
+   { 0x00800040, 0x2aa04529, 0x00ad0aa0, 0x00ad0bc2 },
+   { 0x00800040, 0x2a404529, 0x00ad0a40, 0x00ad0b82 },
+   { 0x00800040, 0x2a604529, 0x00ad0a60, 0x00ad0ba2 },
+   { 0x00800040, 0x2a804529, 0x00ad0a80, 0x00ad0bc2 },
+   { 0x00800040, 0x2aa04529, 0x00ad0aa0, 0x00ad0be2 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000031 },
+   { 0x00800040, 0x29c04629, 0x00ad0ac2, 0x00ad0ae2 },
+   { 0x00800040, 0x29e04629, 0x00ad0ae2, 0x00ad0b02 },
+   { 0x00800040, 0x2a004629, 0x00ad0b02, 0x00ad0b22 },
+   { 0x00800040, 0x2a204629, 0x00ad0b22, 0x00ad0b42 },
+   { 0x00800040, 0x29c04529, 0x00ad09c0, 0x00ad0ac3 },
+   { 0x00800040, 0x29e04529, 0x00ad09e0, 0x00ad0ae3 },
+   { 0x00800040, 0x2a004529, 0x00ad0a00, 0x00ad0b03 },
+   { 0x00800040, 0x2a204529, 0x00ad0a20, 0x00ad0b23 },
+   { 0x00800040, 0x29c04529, 0x00ad09c0, 0x00ad0ae3 },
+   { 0x00800040, 0x29e04529, 0x00ad09e0, 0x00ad0b03 },
+   { 0x00800040, 0x2a004529, 0x00ad0a00, 0x00ad0b23 },
+   { 0x00800040, 0x2a204529, 0x00ad0a20, 0x00ad0b43 },
+   { 0x00800040, 0x2a404629, 0x00ad0b62, 0x00ad0b82 },
+   { 0x00800040, 0x2a604629, 0x00ad0b82, 0x00ad0ba2 },
+   { 0x00800040, 0x2a804629, 0x00ad0ba2, 0x00ad0bc2 },
+   { 0x00800040, 0x2aa04629, 0x00ad0bc2, 0x00ad0be2 },
+   { 0x00800040, 0x2a404529, 0x00ad0a40, 0x00ad0b63 },
+   { 0x00800040, 0x2a604529, 0x00ad0a60, 0x00ad0b83 },
+   { 0x00800040, 0x2a804529, 0x00ad0a80, 0x00ad0ba3 },
+   { 0x00800040, 0x2aa04529, 0x00ad0aa0, 0x00ad0bc3 },
+   { 0x00800040, 0x2a404529, 0x00ad0a40, 0x00ad0b83 },
+   { 0x00800040, 0x2a604529, 0x00ad0a60, 0x00ad0ba3 },
+   { 0x00800040, 0x2a804529, 0x00ad0a80, 0x00ad0bc3 },
+   { 0x00800040, 0x2aa04529, 0x00ad0aa0, 0x00ad0be3 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000018 },
+   { 0x00800040, 0x29c04629, 0x00ad0ac3, 0x00ad0ae3 },
+   { 0x00800040, 0x29e04629, 0x00ad0ae3, 0x00ad0b03 },
+   { 0x00800040, 0x2a004629, 0x00ad0b03, 0x00ad0b23 },
+   { 0x00800040, 0x2a204629, 0x00ad0b23, 0x00ad0b43 },
+   { 0x00800040, 0x29c04529, 0x00ad09c0, 0x00ad0ac4 },
+   { 0x00800040, 0x29e04529, 0x00ad09e0, 0x00ad0ae4 },
+   { 0x00800040, 0x2a004529, 0x00ad0a00, 0x00ad0b04 },
+   { 0x00800040, 0x2a204529, 0x00ad0a20, 0x00ad0b24 },
+   { 0x00800040, 0x29c04529, 0x00ad09c0, 0x00ad0ae4 },
+   { 0x00800040, 0x29e04529, 0x00ad09e0, 0x00ad0b04 },
+   { 0x00800040, 0x2a004529, 0x00ad0a00, 0x00ad0b24 },
+   { 0x00800040, 0x2a204529, 0x00ad0a20, 0x00ad0b44 },
+   { 0x00800040, 0x2a404629, 0x00ad0b63, 0x00ad0b83 },
+   { 0x00800040, 0x2a604629, 0x00ad0b83, 0x00ad0ba3 },
+   { 0x00800040, 0x2a804629, 0x00ad0ba3, 0x00ad0bc3 },
+   { 0x00800040, 0x2aa04629, 0x00ad0bc3, 0x00ad0be3 },
+   { 0x00800040, 0x2a404529, 0x00ad0a40, 0x00ad0b64 },
+   { 0x00800040, 0x2a604529, 0x00ad0a60, 0x00ad0b84 },
+   { 0x00800040, 0x2a804529, 0x00ad0a80, 0x00ad0ba4 },
+   { 0x00800040, 0x2aa04529, 0x00ad0aa0, 0x00ad0bc4 },
+   { 0x00800040, 0x2a404529, 0x00ad0a40, 0x00ad0b84 },
+   { 0x00800040, 0x2a604529, 0x00ad0a60, 0x00ad0ba4 },
+   { 0x00800040, 0x2a804529, 0x00ad0a80, 0x00ad0bc4 },
+   { 0x00800040, 0x2aa04529, 0x00ad0aa0, 0x00ad0be4 },
+   { 0x80800008, 0x29c02d29, 0x00b109c0, 0x00020002 },
+   { 0x80800008, 0x29e02d29, 0x00b109e0, 0x00020002 },
+   { 0x80800008, 0x2a002d29, 0x00b10a00, 0x00020002 },
+   { 0x80800008, 0x2a202d29, 0x00b10a20, 0x00020002 },
+   { 0x80800008, 0x2a402d29, 0x00b10a40, 0x00020002 },
+   { 0x80800008, 0x2a602d29, 0x00b10a60, 0x00020002 },
+   { 0x80800008, 0x2a802d29, 0x00b10a80, 0x00020002 },
+   { 0x80800008, 0x2aa02d29, 0x00b10aa0, 0x00020002 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000082 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0007000f },
+   { 0x00800031, 0x2ac01d29, 0x00ad0e60, 0x0414a008 },
+   { 0x00800031, 0x2b601d29, 0x00ad0e60, 0x0414a009 },
+   { 0x00000005, 0x20580c21, 0x00210e60, 0x00000003 },
+   { 0x00000041, 0x20580c21, 0x00210058, 0x00000009 },
+   { 0x00000020, 0x34001400, 0x00001400, 0x00210058 },
+   { 0x80800042, 0x29c04629, 0x00ad0ac0, 0x00ad0ac1 },
+   { 0x80800042, 0x29e04629, 0x00ad0ae0, 0x00ad0ae1 },
+   { 0x80800042, 0x2a004629, 0x00ad0b00, 0x00ad0b01 },
+   { 0x80800042, 0x2a204629, 0x00ad0b20, 0x00ad0b21 },
+   { 0x80800042, 0x2a404629, 0x00ad0b60, 0x00ad0b61 },
+   { 0x80800042, 0x2a604629, 0x00ad0b80, 0x00ad0b81 },
+   { 0x80800042, 0x2a804629, 0x00ad0ba0, 0x00ad0ba1 },
+   { 0x80800042, 0x2aa04629, 0x00ad0bc0, 0x00ad0bc1 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x0000001a },
+   { 0x80800042, 0x29c04629, 0x00ad0ac1, 0x00ad0ac2 },
+   { 0x80800042, 0x29e04629, 0x00ad0ae1, 0x00ad0ae2 },
+   { 0x80800042, 0x2a004629, 0x00ad0b01, 0x00ad0b02 },
+   { 0x80800042, 0x2a204629, 0x00ad0b21, 0x00ad0b22 },
+   { 0x80800042, 0x2a404629, 0x00ad0b61, 0x00ad0b62 },
+   { 0x80800042, 0x2a604629, 0x00ad0b81, 0x00ad0b82 },
+   { 0x80800042, 0x2a804629, 0x00ad0ba1, 0x00ad0ba2 },
+   { 0x80800042, 0x2aa04629, 0x00ad0bc1, 0x00ad0bc2 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000011 },
+   { 0x80800042, 0x29c04629, 0x00ad0ac2, 0x00ad0ac3 },
+   { 0x80800042, 0x29e04629, 0x00ad0ae2, 0x00ad0ae3 },
+   { 0x80800042, 0x2a004629, 0x00ad0b02, 0x00ad0b03 },
+   { 0x80800042, 0x2a204629, 0x00ad0b22, 0x00ad0b23 },
+   { 0x80800042, 0x2a404629, 0x00ad0b62, 0x00ad0b63 },
+   { 0x80800042, 0x2a604629, 0x00ad0b82, 0x00ad0b83 },
+   { 0x80800042, 0x2a804629, 0x00ad0ba2, 0x00ad0ba3 },
+   { 0x80800042, 0x2aa04629, 0x00ad0bc2, 0x00ad0bc3 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000008 },
+   { 0x80800042, 0x29c04629, 0x00ad0ac3, 0x00ad0ac4 },
+   { 0x80800042, 0x29e04629, 0x00ad0ae3, 0x00ad0ae4 },
+   { 0x80800042, 0x2a004629, 0x00ad0b03, 0x00ad0b04 },
+   { 0x80800042, 0x2a204629, 0x00ad0b23, 0x00ad0b24 },
+   { 0x80800042, 0x2a404629, 0x00ad0b63, 0x00ad0b64 },
+   { 0x80800042, 0x2a604629, 0x00ad0b83, 0x00ad0b84 },
+   { 0x80800042, 0x2a804629, 0x00ad0ba3, 0x00ad0ba4 },
+   { 0x80800042, 0x2aa04629, 0x00ad0bc3, 0x00ad0bc4 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000058 },
+   { 0x01000005, 0x20002d3c, 0x00210034, 0x00020002 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x0000002d },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0007000f },
+   { 0x00800031, 0x2ac01d29, 0x00ad0e60, 0x0414a008 },
+   { 0x00800031, 0x2b601d29, 0x00ad0e60, 0x0414a009 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0000000f },
+   { 0x00800031, 0x2b401d29, 0x00ad0e60, 0x0411a008 },
+   { 0x00800031, 0x2be01d29, 0x00ad0e60, 0x0411a009 },
+   { 0x00000005, 0x20580c21, 0x00210e60, 0x00000003 },
+   { 0x00000041, 0x20580c21, 0x00210058, 0x00000009 },
+   { 0x00000020, 0x34001400, 0x00001400, 0x00210058 },
+   { 0x80800042, 0x29c04629, 0x00ad0ac0, 0x00ad0ae0 },
+   { 0x80800042, 0x29e04629, 0x00ad0ae0, 0x00ad0b00 },
+   { 0x80800042, 0x2a004629, 0x00ad0b00, 0x00ad0b20 },
+   { 0x80800042, 0x2a204629, 0x00ad0b20, 0x00ad0b40 },
+   { 0x80800042, 0x2a404629, 0x00ad0b60, 0x00ad0b80 },
+   { 0x80800042, 0x2a604629, 0x00ad0b80, 0x00ad0ba0 },
+   { 0x80800042, 0x2a804629, 0x00ad0ba0, 0x00ad0bc0 },
+   { 0x80800042, 0x2aa04629, 0x00ad0bc0, 0x00ad0be0 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x0000001a },
+   { 0x80800042, 0x29c04629, 0x00ad0ac1, 0x00ad0ae1 },
+   { 0x80800042, 0x29e04629, 0x00ad0ae1, 0x00ad0b01 },
+   { 0x80800042, 0x2a004629, 0x00ad0b01, 0x00ad0b21 },
+   { 0x80800042, 0x2a204629, 0x00ad0b21, 0x00ad0b41 },
+   { 0x80800042, 0x2a404629, 0x00ad0b61, 0x00ad0b81 },
+   { 0x80800042, 0x2a604629, 0x00ad0b81, 0x00ad0ba1 },
+   { 0x80800042, 0x2a804629, 0x00ad0ba1, 0x00ad0bc1 },
+   { 0x80800042, 0x2aa04629, 0x00ad0bc1, 0x00ad0be1 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000011 },
+   { 0x80800042, 0x29c04629, 0x00ad0ac2, 0x00ad0ae2 },
+   { 0x80800042, 0x29e04629, 0x00ad0ae2, 0x00ad0b02 },
+   { 0x80800042, 0x2a004629, 0x00ad0b02, 0x00ad0b22 },
+   { 0x80800042, 0x2a204629, 0x00ad0b22, 0x00ad0b42 },
+   { 0x80800042, 0x2a404629, 0x00ad0b62, 0x00ad0b82 },
+   { 0x80800042, 0x2a604629, 0x00ad0b82, 0x00ad0ba2 },
+   { 0x80800042, 0x2a804629, 0x00ad0ba2, 0x00ad0bc2 },
+   { 0x80800042, 0x2aa04629, 0x00ad0bc2, 0x00ad0be2 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000008 },
+   { 0x80800042, 0x29c04629, 0x00ad0ac3, 0x00ad0ac3 },
+   { 0x80800042, 0x29e04629, 0x00ad0ae3, 0x00ad0ae3 },
+   { 0x80800042, 0x2a004629, 0x00ad0b03, 0x00ad0b03 },
+   { 0x80800042, 0x2a204629, 0x00ad0b23, 0x00ad0b23 },
+   { 0x80800042, 0x2a404629, 0x00ad0b63, 0x00ad0b63 },
+   { 0x80800042, 0x2a604629, 0x00ad0b83, 0x00ad0b83 },
+   { 0x80800042, 0x2a804629, 0x00ad0ba3, 0x00ad0ba3 },
+   { 0x80800042, 0x2aa04629, 0x00ad0bc3, 0x00ad0bc3 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000029 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0007000f },
+   { 0x00800031, 0x2ac01d29, 0x00ad0e60, 0x0414a008 },
+   { 0x00800031, 0x2b601d29, 0x00ad0e60, 0x0414a009 },
+   { 0x00000005, 0x20580c21, 0x00210e60, 0x00000003 },
+   { 0x00000041, 0x20580c21, 0x00210058, 0x00000009 },
+   { 0x00000020, 0x34001400, 0x00001400, 0x00210058 },
+   { 0x00800001, 0x29c00229, 0x00ad0ac0, 0x00000000 },
+   { 0x00800001, 0x29e00229, 0x00ad0ae0, 0x00000000 },
+   { 0x00800001, 0x2a000229, 0x00ad0b00, 0x00000000 },
+   { 0x00800001, 0x2a200229, 0x00ad0b20, 0x00000000 },
+   { 0x00800001, 0x2a400229, 0x00ad0b60, 0x00000000 },
+   { 0x00800001, 0x2a600229, 0x00ad0b80, 0x00000000 },
+   { 0x00800001, 0x2a800229, 0x00ad0ba0, 0x00000000 },
+   { 0x00800001, 0x2aa00229, 0x00ad0bc0, 0x00000000 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x0000001a },
+   { 0x00800001, 0x29c00229, 0x00ad0ac1, 0x00000000 },
+   { 0x00800001, 0x29e00229, 0x00ad0ae1, 0x00000000 },
+   { 0x00800001, 0x2a000229, 0x00ad0b01, 0x00000000 },
+   { 0x00800001, 0x2a200229, 0x00ad0b21, 0x00000000 },
+   { 0x00800001, 0x2a400229, 0x00ad0b61, 0x00000000 },
+   { 0x00800001, 0x2a600229, 0x00ad0b81, 0x00000000 },
+   { 0x00800001, 0x2a800229, 0x00ad0ba1, 0x00000000 },
+   { 0x00800001, 0x2aa00229, 0x00ad0bc1, 0x00000000 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000011 },
+   { 0x00800001, 0x29c00229, 0x00ad0ac2, 0x00000000 },
+   { 0x00800001, 0x29e00229, 0x00ad0ae2, 0x00000000 },
+   { 0x00800001, 0x2a000229, 0x00ad0b02, 0x00000000 },
+   { 0x00800001, 0x2a200229, 0x00ad0b22, 0x00000000 },
+   { 0x00800001, 0x2a400229, 0x00ad0b62, 0x00000000 },
+   { 0x00800001, 0x2a600229, 0x00ad0b82, 0x00000000 },
+   { 0x00800001, 0x2a800229, 0x00ad0ba2, 0x00000000 },
+   { 0x00800001, 0x2aa00229, 0x00ad0bc2, 0x00000000 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000008 },
+   { 0x00800001, 0x29c00229, 0x00ad0ac3, 0x00000000 },
+   { 0x00800001, 0x29e00229, 0x00ad0ae3, 0x00000000 },
+   { 0x00800001, 0x2a000229, 0x00ad0b03, 0x00000000 },
+   { 0x00800001, 0x2a200229, 0x00ad0b23, 0x00000000 },
+   { 0x00800001, 0x2a400229, 0x00ad0b63, 0x00000000 },
+   { 0x00800001, 0x2a600229, 0x00ad0b83, 0x00000000 },
+   { 0x00800001, 0x2a800229, 0x00ad0ba3, 0x00000000 },
+   { 0x00800001, 0x2aa00229, 0x00ad0bc3, 0x00000000 },
+   { 0x00600001, 0x25800129, 0x008d09c0, 0x00000000 },
+   { 0x00600001, 0x25a00129, 0x008d09e0, 0x00000000 },
+   { 0x00600001, 0x25c00129, 0x008d0a00, 0x00000000 },
+   { 0x00600001, 0x25e00129, 0x008d0a20, 0x00000000 },
+   { 0x00600001, 0x26000129, 0x008d0a40, 0x00000000 },
+   { 0x00600001, 0x26200129, 0x008d0a60, 0x00000000 },
+   { 0x00600001, 0x26400129, 0x008d0a80, 0x00000000 },
+   { 0x00600001, 0x26600129, 0x008d0aa0, 0x00000000 },
+   { 0x0020000c, 0x2e6e3dad, 0x0045003a, 0x00020002 },
+   { 0x0020000c, 0x2e601ca5, 0x00450e80, 0x00000001 },
+   { 0x00200040, 0x2e6034a5, 0x00450e60, 0x00450e6e },
+   { 0x00000005, 0x2e640c21, 0x00210e64, 0xfffffffe },
+   { 0x02000005, 0x20002e3c, 0x0021003f, 0x00080008 },
+   { 0x00010040, 0x2e640c21, 0x00210e64, 0x00000001 },
+   { 0x01000005, 0x20002d3c, 0x0021003a, 0x00020002 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x000000a2 },
+   { 0x01000005, 0x20002d3c, 0x0021003c, 0x00020002 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x00000076 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0007000f },
+   { 0x00800031, 0x2ac01d29, 0x00ad0e60, 0x0414a008 },
+   { 0x00800031, 0x2b601d29, 0x00ad0e60, 0x0414a009 },
+   { 0x00000005, 0x20580c21, 0x00210e60, 0x00000003 },
+   { 0x00000041, 0x20580c21, 0x00210058, 0x00000019 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0001000f },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 },
+   { 0x00800031, 0x2b401d29, 0x00ad0e60, 0x0411a008 },
+   { 0x00800031, 0x2be01d29, 0x00ad0e60, 0x0411a009 },
+   { 0x00000020, 0x34001400, 0x00001400, 0x00210058 },
+   { 0x00800040, 0x29c04629, 0x00ad0ac0, 0x00ad0ae0 },
+   { 0x00800040, 0x29e04629, 0x00ad0ae0, 0x00ad0b00 },
+   { 0x00800040, 0x2a004629, 0x00ad0b00, 0x00ad0b20 },
+   { 0x00800040, 0x2a204629, 0x00ad0b20, 0x00ad0b40 },
+   { 0x00800040, 0x29c04529, 0x00ad09c0, 0x00ad0ac1 },
+   { 0x00800040, 0x29e04529, 0x00ad09e0, 0x00ad0ae1 },
+   { 0x00800040, 0x2a004529, 0x00ad0a00, 0x00ad0b01 },
+   { 0x00800040, 0x2a204529, 0x00ad0a20, 0x00ad0b21 },
+   { 0x00800040, 0x29c04529, 0x00ad09c0, 0x00ad0ae1 },
+   { 0x00800040, 0x29e04529, 0x00ad09e0, 0x00ad0b01 },
+   { 0x00800040, 0x2a004529, 0x00ad0a00, 0x00ad0b21 },
+   { 0x00800040, 0x2a204529, 0x00ad0a20, 0x00ad0b41 },
+   { 0x00800040, 0x2a404629, 0x00ad0b60, 0x00ad0b80 },
+   { 0x00800040, 0x2a604629, 0x00ad0b80, 0x00ad0ba0 },
+   { 0x00800040, 0x2a804629, 0x00ad0ba0, 0x00ad0bc0 },
+   { 0x00800040, 0x2aa04629, 0x00ad0bc0, 0x00ad0be0 },
+   { 0x00800040, 0x2a404529, 0x00ad0a40, 0x00ad0b61 },
+   { 0x00800040, 0x2a604529, 0x00ad0a60, 0x00ad0b81 },
+   { 0x00800040, 0x2a804529, 0x00ad0a80, 0x00ad0ba1 },
+   { 0x00800040, 0x2aa04529, 0x00ad0aa0, 0x00ad0bc1 },
+   { 0x00800040, 0x2a404529, 0x00ad0a40, 0x00ad0b81 },
+   { 0x00800040, 0x2a604529, 0x00ad0a60, 0x00ad0ba1 },
+   { 0x00800040, 0x2a804529, 0x00ad0a80, 0x00ad0bc1 },
+   { 0x00800040, 0x2aa04529, 0x00ad0aa0, 0x00ad0be1 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x0000004a },
+   { 0x00800040, 0x29c04629, 0x00ad0ac1, 0x00ad0ae1 },
+   { 0x00800040, 0x29e04629, 0x00ad0ae1, 0x00ad0b01 },
+   { 0x00800040, 0x2a004629, 0x00ad0b01, 0x00ad0b21 },
+   { 0x00800040, 0x2a204629, 0x00ad0b21, 0x00ad0b41 },
+   { 0x00800040, 0x29c04529, 0x00ad09c0, 0x00ad0ac2 },
+   { 0x00800040, 0x29e04529, 0x00ad09e0, 0x00ad0ae2 },
+   { 0x00800040, 0x2a004529, 0x00ad0a00, 0x00ad0b02 },
+   { 0x00800040, 0x2a204529, 0x00ad0a20, 0x00ad0b22 },
+   { 0x00800040, 0x29c04529, 0x00ad09c0, 0x00ad0ae2 },
+   { 0x00800040, 0x29e04529, 0x00ad09e0, 0x00ad0b02 },
+   { 0x00800040, 0x2a004529, 0x00ad0a00, 0x00ad0b22 },
+   { 0x00800040, 0x2a204529, 0x00ad0a20, 0x00ad0b42 },
+   { 0x00800040, 0x2a404629, 0x00ad0b61, 0x00ad0b81 },
+   { 0x00800040, 0x2a604629, 0x00ad0b81, 0x00ad0ba1 },
+   { 0x00800040, 0x2a804629, 0x00ad0ba1, 0x00ad0bc1 },
+   { 0x00800040, 0x2aa04629, 0x00ad0bc1, 0x00ad0be1 },
+   { 0x00800040, 0x2a404529, 0x00ad0a40, 0x00ad0b62 },
+   { 0x00800040, 0x2a604529, 0x00ad0a60, 0x00ad0b82 },
+   { 0x00800040, 0x2a804529, 0x00ad0a80, 0x00ad0ba2 },
+   { 0x00800040, 0x2aa04529, 0x00ad0aa0, 0x00ad0bc2 },
+   { 0x00800040, 0x2a404529, 0x00ad0a40, 0x00ad0b82 },
+   { 0x00800040, 0x2a604529, 0x00ad0a60, 0x00ad0ba2 },
+   { 0x00800040, 0x2a804529, 0x00ad0a80, 0x00ad0bc2 },
+   { 0x00800040, 0x2aa04529, 0x00ad0aa0, 0x00ad0be2 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000031 },
+   { 0x00800040, 0x29c04629, 0x00ad0ac2, 0x00ad0ae2 },
+   { 0x00800040, 0x29e04629, 0x00ad0ae2, 0x00ad0b02 },
+   { 0x00800040, 0x2a004629, 0x00ad0b02, 0x00ad0b22 },
+   { 0x00800040, 0x2a204629, 0x00ad0b22, 0x00ad0b42 },
+   { 0x00800040, 0x29c04529, 0x00ad09c0, 0x00ad0ac3 },
+   { 0x00800040, 0x29e04529, 0x00ad09e0, 0x00ad0ae3 },
+   { 0x00800040, 0x2a004529, 0x00ad0a00, 0x00ad0b03 },
+   { 0x00800040, 0x2a204529, 0x00ad0a20, 0x00ad0b23 },
+   { 0x00800040, 0x29c04529, 0x00ad09c0, 0x00ad0ae3 },
+   { 0x00800040, 0x29e04529, 0x00ad09e0, 0x00ad0b03 },
+   { 0x00800040, 0x2a004529, 0x00ad0a00, 0x00ad0b23 },
+   { 0x00800040, 0x2a204529, 0x00ad0a20, 0x00ad0b43 },
+   { 0x00800040, 0x2a404629, 0x00ad0b62, 0x00ad0b82 },
+   { 0x00800040, 0x2a604629, 0x00ad0b82, 0x00ad0ba2 },
+   { 0x00800040, 0x2a804629, 0x00ad0ba2, 0x00ad0bc2 },
+   { 0x00800040, 0x2aa04629, 0x00ad0bc2, 0x00ad0be2 },
+   { 0x00800040, 0x2a404529, 0x00ad0a40, 0x00ad0b63 },
+   { 0x00800040, 0x2a604529, 0x00ad0a60, 0x00ad0b83 },
+   { 0x00800040, 0x2a804529, 0x00ad0a80, 0x00ad0ba3 },
+   { 0x00800040, 0x2aa04529, 0x00ad0aa0, 0x00ad0bc3 },
+   { 0x00800040, 0x2a404529, 0x00ad0a40, 0x00ad0b83 },
+   { 0x00800040, 0x2a604529, 0x00ad0a60, 0x00ad0ba3 },
+   { 0x00800040, 0x2a804529, 0x00ad0a80, 0x00ad0bc3 },
+   { 0x00800040, 0x2aa04529, 0x00ad0aa0, 0x00ad0be3 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000018 },
+   { 0x00800040, 0x29c04629, 0x00ad0ac3, 0x00ad0ae3 },
+   { 0x00800040, 0x29e04629, 0x00ad0ae3, 0x00ad0b03 },
+   { 0x00800040, 0x2a004629, 0x00ad0b03, 0x00ad0b23 },
+   { 0x00800040, 0x2a204629, 0x00ad0b23, 0x00ad0b43 },
+   { 0x00800040, 0x29c04529, 0x00ad09c0, 0x00ad0ac4 },
+   { 0x00800040, 0x29e04529, 0x00ad09e0, 0x00ad0ae4 },
+   { 0x00800040, 0x2a004529, 0x00ad0a00, 0x00ad0b04 },
+   { 0x00800040, 0x2a204529, 0x00ad0a20, 0x00ad0b24 },
+   { 0x00800040, 0x29c04529, 0x00ad09c0, 0x00ad0ae4 },
+   { 0x00800040, 0x29e04529, 0x00ad09e0, 0x00ad0b04 },
+   { 0x00800040, 0x2a004529, 0x00ad0a00, 0x00ad0b24 },
+   { 0x00800040, 0x2a204529, 0x00ad0a20, 0x00ad0b44 },
+   { 0x00800040, 0x2a404629, 0x00ad0b63, 0x00ad0b83 },
+   { 0x00800040, 0x2a604629, 0x00ad0b83, 0x00ad0ba3 },
+   { 0x00800040, 0x2a804629, 0x00ad0ba3, 0x00ad0bc3 },
+   { 0x00800040, 0x2aa04629, 0x00ad0bc3, 0x00ad0be3 },
+   { 0x00800040, 0x2a404529, 0x00ad0a40, 0x00ad0b64 },
+   { 0x00800040, 0x2a604529, 0x00ad0a60, 0x00ad0b84 },
+   { 0x00800040, 0x2a804529, 0x00ad0a80, 0x00ad0ba4 },
+   { 0x00800040, 0x2aa04529, 0x00ad0aa0, 0x00ad0bc4 },
+   { 0x00800040, 0x2a404529, 0x00ad0a40, 0x00ad0b84 },
+   { 0x00800040, 0x2a604529, 0x00ad0a60, 0x00ad0ba4 },
+   { 0x00800040, 0x2a804529, 0x00ad0a80, 0x00ad0bc4 },
+   { 0x00800040, 0x2aa04529, 0x00ad0aa0, 0x00ad0be4 },
+   { 0x80800008, 0x29c02d29, 0x00b109c0, 0x00020002 },
+   { 0x80800008, 0x29e02d29, 0x00b109e0, 0x00020002 },
+   { 0x80800008, 0x2a002d29, 0x00b10a00, 0x00020002 },
+   { 0x80800008, 0x2a202d29, 0x00b10a20, 0x00020002 },
+   { 0x80800008, 0x2a402d29, 0x00b10a40, 0x00020002 },
+   { 0x80800008, 0x2a602d29, 0x00b10a60, 0x00020002 },
+   { 0x80800008, 0x2a802d29, 0x00b10a80, 0x00020002 },
+   { 0x80800008, 0x2aa02d29, 0x00b10aa0, 0x00020002 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000082 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0007000f },
+   { 0x00800031, 0x2ac01d29, 0x00ad0e60, 0x0414a008 },
+   { 0x00800031, 0x2b601d29, 0x00ad0e60, 0x0414a009 },
+   { 0x00000005, 0x20580c21, 0x00210e60, 0x00000003 },
+   { 0x00000041, 0x20580c21, 0x00210058, 0x00000009 },
+   { 0x00000020, 0x34001400, 0x00001400, 0x00210058 },
+   { 0x80800042, 0x29c04629, 0x00ad0ac0, 0x00ad0ac1 },
+   { 0x80800042, 0x29e04629, 0x00ad0ae0, 0x00ad0ae1 },
+   { 0x80800042, 0x2a004629, 0x00ad0b00, 0x00ad0b01 },
+   { 0x80800042, 0x2a204629, 0x00ad0b20, 0x00ad0b21 },
+   { 0x80800042, 0x2a404629, 0x00ad0b60, 0x00ad0b61 },
+   { 0x80800042, 0x2a604629, 0x00ad0b80, 0x00ad0b81 },
+   { 0x80800042, 0x2a804629, 0x00ad0ba0, 0x00ad0ba1 },
+   { 0x80800042, 0x2aa04629, 0x00ad0bc0, 0x00ad0bc1 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x0000001a },
+   { 0x80800042, 0x29c04629, 0x00ad0ac1, 0x00ad0ac2 },
+   { 0x80800042, 0x29e04629, 0x00ad0ae1, 0x00ad0ae2 },
+   { 0x80800042, 0x2a004629, 0x00ad0b01, 0x00ad0b02 },
+   { 0x80800042, 0x2a204629, 0x00ad0b21, 0x00ad0b22 },
+   { 0x80800042, 0x2a404629, 0x00ad0b61, 0x00ad0b62 },
+   { 0x80800042, 0x2a604629, 0x00ad0b81, 0x00ad0b82 },
+   { 0x80800042, 0x2a804629, 0x00ad0ba1, 0x00ad0ba2 },
+   { 0x80800042, 0x2aa04629, 0x00ad0bc1, 0x00ad0bc2 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000011 },
+   { 0x80800042, 0x29c04629, 0x00ad0ac2, 0x00ad0ac3 },
+   { 0x80800042, 0x29e04629, 0x00ad0ae2, 0x00ad0ae3 },
+   { 0x80800042, 0x2a004629, 0x00ad0b02, 0x00ad0b03 },
+   { 0x80800042, 0x2a204629, 0x00ad0b22, 0x00ad0b23 },
+   { 0x80800042, 0x2a404629, 0x00ad0b62, 0x00ad0b63 },
+   { 0x80800042, 0x2a604629, 0x00ad0b82, 0x00ad0b83 },
+   { 0x80800042, 0x2a804629, 0x00ad0ba2, 0x00ad0ba3 },
+   { 0x80800042, 0x2aa04629, 0x00ad0bc2, 0x00ad0bc3 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000008 },
+   { 0x80800042, 0x29c04629, 0x00ad0ac3, 0x00ad0ac4 },
+   { 0x80800042, 0x29e04629, 0x00ad0ae3, 0x00ad0ae4 },
+   { 0x80800042, 0x2a004629, 0x00ad0b03, 0x00ad0b04 },
+   { 0x80800042, 0x2a204629, 0x00ad0b23, 0x00ad0b24 },
+   { 0x80800042, 0x2a404629, 0x00ad0b63, 0x00ad0b64 },
+   { 0x80800042, 0x2a604629, 0x00ad0b83, 0x00ad0b84 },
+   { 0x80800042, 0x2a804629, 0x00ad0ba3, 0x00ad0ba4 },
+   { 0x80800042, 0x2aa04629, 0x00ad0bc3, 0x00ad0bc4 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000058 },
+   { 0x01000005, 0x20002d3c, 0x0021003c, 0x00020002 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x0000002d },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0007000f },
+   { 0x00800031, 0x2ac01d29, 0x00ad0e60, 0x0414a008 },
+   { 0x00800031, 0x2b601d29, 0x00ad0e60, 0x0414a009 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0000000f },
+   { 0x00800031, 0x2b401d29, 0x00ad0e60, 0x0411a008 },
+   { 0x00800031, 0x2be01d29, 0x00ad0e60, 0x0411a009 },
+   { 0x00000005, 0x20580c21, 0x00210e60, 0x00000003 },
+   { 0x00000041, 0x20580c21, 0x00210058, 0x00000009 },
+   { 0x00000020, 0x34001400, 0x00001400, 0x00210058 },
+   { 0x80800042, 0x29c04629, 0x00ad0ac0, 0x00ad0ae0 },
+   { 0x80800042, 0x29e04629, 0x00ad0ae0, 0x00ad0b00 },
+   { 0x80800042, 0x2a004629, 0x00ad0b00, 0x00ad0b20 },
+   { 0x80800042, 0x2a204629, 0x00ad0b20, 0x00ad0b40 },
+   { 0x80800042, 0x2a404629, 0x00ad0b60, 0x00ad0b80 },
+   { 0x80800042, 0x2a604629, 0x00ad0b80, 0x00ad0ba0 },
+   { 0x80800042, 0x2a804629, 0x00ad0ba0, 0x00ad0bc0 },
+   { 0x80800042, 0x2aa04629, 0x00ad0bc0, 0x00ad0be0 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x0000001a },
+   { 0x80800042, 0x29c04629, 0x00ad0ac1, 0x00ad0ae1 },
+   { 0x80800042, 0x29e04629, 0x00ad0ae1, 0x00ad0b01 },
+   { 0x80800042, 0x2a004629, 0x00ad0b01, 0x00ad0b21 },
+   { 0x80800042, 0x2a204629, 0x00ad0b21, 0x00ad0b41 },
+   { 0x80800042, 0x2a404629, 0x00ad0b61, 0x00ad0b81 },
+   { 0x80800042, 0x2a604629, 0x00ad0b81, 0x00ad0ba1 },
+   { 0x80800042, 0x2a804629, 0x00ad0ba1, 0x00ad0bc1 },
+   { 0x80800042, 0x2aa04629, 0x00ad0bc1, 0x00ad0be1 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000011 },
+   { 0x80800042, 0x29c04629, 0x00ad0ac2, 0x00ad0ae2 },
+   { 0x80800042, 0x29e04629, 0x00ad0ae2, 0x00ad0b02 },
+   { 0x80800042, 0x2a004629, 0x00ad0b02, 0x00ad0b22 },
+   { 0x80800042, 0x2a204629, 0x00ad0b22, 0x00ad0b42 },
+   { 0x80800042, 0x2a404629, 0x00ad0b62, 0x00ad0b82 },
+   { 0x80800042, 0x2a604629, 0x00ad0b82, 0x00ad0ba2 },
+   { 0x80800042, 0x2a804629, 0x00ad0ba2, 0x00ad0bc2 },
+   { 0x80800042, 0x2aa04629, 0x00ad0bc2, 0x00ad0be2 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000008 },
+   { 0x80800042, 0x29c04629, 0x00ad0ac3, 0x00ad0ac3 },
+   { 0x80800042, 0x29e04629, 0x00ad0ae3, 0x00ad0ae3 },
+   { 0x80800042, 0x2a004629, 0x00ad0b03, 0x00ad0b03 },
+   { 0x80800042, 0x2a204629, 0x00ad0b23, 0x00ad0b23 },
+   { 0x80800042, 0x2a404629, 0x00ad0b63, 0x00ad0b63 },
+   { 0x80800042, 0x2a604629, 0x00ad0b83, 0x00ad0b83 },
+   { 0x80800042, 0x2a804629, 0x00ad0ba3, 0x00ad0ba3 },
+   { 0x80800042, 0x2aa04629, 0x00ad0bc3, 0x00ad0bc3 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000029 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0007000f },
+   { 0x00800031, 0x2ac01d29, 0x00ad0e60, 0x0414a008 },
+   { 0x00800031, 0x2b601d29, 0x00ad0e60, 0x0414a009 },
+   { 0x00000005, 0x20580c21, 0x00210e60, 0x00000003 },
+   { 0x00000041, 0x20580c21, 0x00210058, 0x00000009 },
+   { 0x00000020, 0x34001400, 0x00001400, 0x00210058 },
+   { 0x00800001, 0x29c00229, 0x00ad0ac0, 0x00000000 },
+   { 0x00800001, 0x29e00229, 0x00ad0ae0, 0x00000000 },
+   { 0x00800001, 0x2a000229, 0x00ad0b00, 0x00000000 },
+   { 0x00800001, 0x2a200229, 0x00ad0b20, 0x00000000 },
+   { 0x00800001, 0x2a400229, 0x00ad0b60, 0x00000000 },
+   { 0x00800001, 0x2a600229, 0x00ad0b80, 0x00000000 },
+   { 0x00800001, 0x2a800229, 0x00ad0ba0, 0x00000000 },
+   { 0x00800001, 0x2aa00229, 0x00ad0bc0, 0x00000000 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x0000001a },
+   { 0x00800001, 0x29c00229, 0x00ad0ac1, 0x00000000 },
+   { 0x00800001, 0x29e00229, 0x00ad0ae1, 0x00000000 },
+   { 0x00800001, 0x2a000229, 0x00ad0b01, 0x00000000 },
+   { 0x00800001, 0x2a200229, 0x00ad0b21, 0x00000000 },
+   { 0x00800001, 0x2a400229, 0x00ad0b61, 0x00000000 },
+   { 0x00800001, 0x2a600229, 0x00ad0b81, 0x00000000 },
+   { 0x00800001, 0x2a800229, 0x00ad0ba1, 0x00000000 },
+   { 0x00800001, 0x2aa00229, 0x00ad0bc1, 0x00000000 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000011 },
+   { 0x00800001, 0x29c00229, 0x00ad0ac2, 0x00000000 },
+   { 0x00800001, 0x29e00229, 0x00ad0ae2, 0x00000000 },
+   { 0x00800001, 0x2a000229, 0x00ad0b02, 0x00000000 },
+   { 0x00800001, 0x2a200229, 0x00ad0b22, 0x00000000 },
+   { 0x00800001, 0x2a400229, 0x00ad0b62, 0x00000000 },
+   { 0x00800001, 0x2a600229, 0x00ad0b82, 0x00000000 },
+   { 0x00800001, 0x2a800229, 0x00ad0ba2, 0x00000000 },
+   { 0x00800001, 0x2aa00229, 0x00ad0bc2, 0x00000000 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000008 },
+   { 0x00800001, 0x29c00229, 0x00ad0ac3, 0x00000000 },
+   { 0x00800001, 0x29e00229, 0x00ad0ae3, 0x00000000 },
+   { 0x00800001, 0x2a000229, 0x00ad0b03, 0x00000000 },
+   { 0x00800001, 0x2a200229, 0x00ad0b23, 0x00000000 },
+   { 0x00800001, 0x2a400229, 0x00ad0b63, 0x00000000 },
+   { 0x00800001, 0x2a600229, 0x00ad0b83, 0x00000000 },
+   { 0x00800001, 0x2a800229, 0x00ad0ba3, 0x00000000 },
+   { 0x00800001, 0x2aa00229, 0x00ad0bc3, 0x00000000 },
+   { 0x00600001, 0x25900129, 0x008d09c0, 0x00000000 },
+   { 0x00600001, 0x25b00129, 0x008d09e0, 0x00000000 },
+   { 0x00600001, 0x25d00129, 0x008d0a00, 0x00000000 },
+   { 0x00600001, 0x25f00129, 0x008d0a20, 0x00000000 },
+   { 0x00600001, 0x26100129, 0x008d0a40, 0x00000000 },
+   { 0x00600001, 0x26300129, 0x008d0a60, 0x00000000 },
+   { 0x00600001, 0x26500129, 0x008d0a80, 0x00000000 },
+   { 0x00600001, 0x26700129, 0x008d0aa0, 0x00000000 },
+   { 0x00600001, 0x20200021, 0x008d0980, 0x00000000 },
+   { 0x00800001, 0x458101f1, 0x00000000, 0x00000000 },
+   { 0x00800001, 0x45a101f1, 0x00000000, 0x00000000 },
+   { 0x00800001, 0x45c101f1, 0x00000000, 0x00000000 },
+   { 0x00800001, 0x45e101f1, 0x00000000, 0x00000000 },
+   { 0x00800001, 0x460101f1, 0x00000000, 0x00000000 },
+   { 0x00800001, 0x462101f1, 0x00000000, 0x00000000 },
+   { 0x00800001, 0x464101f1, 0x00000000, 0x00000000 },
+   { 0x00800001, 0x466101f1, 0x00000000, 0x00000000 },
+   { 0x02000005, 0x20002e3c, 0x0021003e, 0x00010001 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x00000011 },
+   { 0x00800040, 0x238045ad, 0x00b10060, 0x00b20380 },
+   { 0x00800040, 0x23a045ad, 0x00b10080, 0x00b203a0 },
+   { 0x00800040, 0x23c045ad, 0x00b100a0, 0x00b203c0 },
+   { 0x00800040, 0x23e045ad, 0x00b100c0, 0x00b203e0 },
+   { 0x00800040, 0x240045ad, 0x00b100e0, 0x00b20400 },
+   { 0x00800040, 0x242045ad, 0x00b10100, 0x00b20420 },
+   { 0x00800040, 0x244045ad, 0x00b10120, 0x00b20440 },
+   { 0x00800040, 0x246045ad, 0x00b10140, 0x00b20460 },
+   { 0x00800040, 0x248045ad, 0x00b10160, 0x00b20480 },
+   { 0x00800040, 0x24a045ad, 0x00b10180, 0x00b204a0 },
+   { 0x00800040, 0x24c045ad, 0x00b101a0, 0x00b204c0 },
+   { 0x00800040, 0x24e045ad, 0x00b101c0, 0x00b204e0 },
+   { 0x00800040, 0x250045ad, 0x00b101e0, 0x00b20500 },
+   { 0x00800040, 0x252045ad, 0x00b10200, 0x00b20520 },
+   { 0x00800040, 0x254045ad, 0x00b10220, 0x00b20540 },
+   { 0x00800040, 0x256045ad, 0x00b10240, 0x00b20560 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000010 },
+   { 0x00800040, 0x238045ad, 0x00b10060, 0x00b20380 },
+   { 0x00800040, 0x23a045ad, 0x00b10160, 0x00b203a0 },
+   { 0x00800040, 0x23c045ad, 0x00b10080, 0x00b203c0 },
+   { 0x00800040, 0x23e045ad, 0x00b10180, 0x00b203e0 },
+   { 0x00800040, 0x240045ad, 0x00b100a0, 0x00b20400 },
+   { 0x00800040, 0x242045ad, 0x00b101a0, 0x00b20420 },
+   { 0x00800040, 0x244045ad, 0x00b100c0, 0x00b20440 },
+   { 0x00800040, 0x246045ad, 0x00b101c0, 0x00b20460 },
+   { 0x00800040, 0x248045ad, 0x00b100e0, 0x00b20480 },
+   { 0x00800040, 0x24a045ad, 0x00b101e0, 0x00b204a0 },
+   { 0x00800040, 0x24c045ad, 0x00b10100, 0x00b204c0 },
+   { 0x00800040, 0x24e045ad, 0x00b10200, 0x00b204e0 },
+   { 0x00800040, 0x250045ad, 0x00b10120, 0x00b20500 },
+   { 0x00800040, 0x252045ad, 0x00b10220, 0x00b20520 },
+   { 0x00800040, 0x254045ad, 0x00b10140, 0x00b20540 },
+   { 0x00800040, 0x256045ad, 0x00b10240, 0x00b20560 },
+   { 0x00000001, 0x20280061, 0x00000000, 0x000f000f },
+   { 0x80800001, 0x438001b1, 0x00b10380, 0x00000000 },
+   { 0x80800001, 0x43a001b1, 0x00b103a0, 0x00000000 },
+   { 0x80800001, 0x43c001b1, 0x00b103c0, 0x00000000 },
+   { 0x80800001, 0x43e001b1, 0x00b103e0, 0x00000000 },
+   { 0x80800001, 0x440001b1, 0x00b10400, 0x00000000 },
+   { 0x80800001, 0x442001b1, 0x00b10420, 0x00000000 },
+   { 0x80800001, 0x444001b1, 0x00b10440, 0x00000000 },
+   { 0x80800001, 0x446001b1, 0x00b10460, 0x00000000 },
+   { 0x80800001, 0x448001b1, 0x00b10480, 0x00000000 },
+   { 0x80800001, 0x44a001b1, 0x00b104a0, 0x00000000 },
+   { 0x80800001, 0x44c001b1, 0x00b104c0, 0x00000000 },
+   { 0x80800001, 0x44e001b1, 0x00b104e0, 0x00000000 },
+   { 0x80800001, 0x450001b1, 0x00b10500, 0x00000000 },
+   { 0x80800001, 0x452001b1, 0x00b10520, 0x00000000 },
+   { 0x80800001, 0x454001b1, 0x00b10540, 0x00000000 },
+   { 0x80800001, 0x456001b1, 0x00b10560, 0x00000000 },
+   { 0x00800001, 0x20200232, 0x00b20380, 0x00000000 },
+   { 0x00800001, 0x20300232, 0x00b203a0, 0x00000000 },
+   { 0x00800001, 0x20400232, 0x00b203c0, 0x00000000 },
+   { 0x00800001, 0x20500232, 0x00b203e0, 0x00000000 },
+   { 0x00800001, 0x20600232, 0x00b20400, 0x00000000 },
+   { 0x00800001, 0x20700232, 0x00b20420, 0x00000000 },
+   { 0x00800001, 0x20800232, 0x00b20440, 0x00000000 },
+   { 0x00800001, 0x20900232, 0x00b20460, 0x00000000 },
+   { 0x00800001, 0x20a00232, 0x00b20480, 0x00000000 },
+   { 0x00800001, 0x20b00232, 0x00b204a0, 0x00000000 },
+   { 0x00800001, 0x20c00232, 0x00b204c0, 0x00000000 },
+   { 0x00800001, 0x20d00232, 0x00b204e0, 0x00000000 },
+   { 0x00800001, 0x20e00232, 0x00b20500, 0x00000000 },
+   { 0x00800001, 0x20f00232, 0x00b20520, 0x00000000 },
+   { 0x00800001, 0x21000232, 0x00b20540, 0x00000000 },
+   { 0x00800001, 0x21100232, 0x00b20560, 0x00000000 },
+   { 0x00800031, 0x24001d28, 0x008d0020, 0x05902000 },
+   { 0x00000001, 0x20280061, 0x00000000, 0x00070007 },
+   { 0x00200008, 0x20201c21, 0x00450020, 0x00000001 },
+   { 0x00800040, 0x258025a9, 0x00b10260, 0x00b10580 },
+   { 0x00800040, 0x25a025a9, 0x00b10280, 0x00b105a0 },
+   { 0x00800040, 0x25c025a9, 0x00b102a0, 0x00b105c0 },
+   { 0x00800040, 0x25e025a9, 0x00b102c0, 0x00b105e0 },
+   { 0x80800001, 0x45800131, 0x00b10580, 0x00000000 },
+   { 0x80800001, 0x45a00131, 0x00b105a0, 0x00000000 },
+   { 0x80800001, 0x45c00131, 0x00b105c0, 0x00000000 },
+   { 0x80800001, 0x45e00131, 0x00b105e0, 0x00000000 },
+   { 0x00800001, 0x20200232, 0x00b20580, 0x00000000 },
+   { 0x00800001, 0x20300232, 0x00b205a0, 0x00000000 },
+   { 0x00800001, 0x20400232, 0x00b205c0, 0x00000000 },
+   { 0x00800001, 0x20500232, 0x00b205e0, 0x00000000 },
+   { 0x00800031, 0x24001d28, 0x008d0020, 0x05302001 },
+   { 0x00800040, 0x260025a9, 0x00b102e0, 0x00b10600 },
+   { 0x00800040, 0x262025a9, 0x00b10300, 0x00b10620 },
+   { 0x00800040, 0x264025a9, 0x00b10320, 0x00b10640 },
+   { 0x00800040, 0x266025a9, 0x00b10340, 0x00b10660 },
+   { 0x80800001, 0x46000131, 0x00b10600, 0x00000000 },
+   { 0x80800001, 0x46200131, 0x00b10620, 0x00000000 },
+   { 0x80800001, 0x46400131, 0x00b10640, 0x00000000 },
+   { 0x80800001, 0x46600131, 0x00b10660, 0x00000000 },
+   { 0x00800001, 0x20200232, 0x00b20600, 0x00000000 },
+   { 0x00800001, 0x20300232, 0x00b20620, 0x00000000 },
+   { 0x00800001, 0x20400232, 0x00b20640, 0x00000000 },
+   { 0x00800001, 0x20500232, 0x00b20660, 0x00000000 },
+   { 0x00800031, 0x24001d28, 0x008d0020, 0x05302002 },
+   { 0x00800031, 0x24001d28, 0x008d0000, 0x87100000 },
diff --git a/src/xvmc/shader/mc/field_backward_igd.g4a b/src/xvmc/shader/mc/field_backward_igd.g4a
new file mode 100644
index 0000000..d01b8dc
--- /dev/null
+++ b/src/xvmc/shader/mc/field_backward_igd.g4a
@@ -0,0 +1,124 @@
+/*
+ * Copyright © 2008 Intel Corporation
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice (including the next
+ * paragraph) shall be included in all copies or substantial portions of the
+ * Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
+ * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+ * SOFTWARE.
+ *
+ * Author:
+ *    Zou Nan hai <nanhai.zou at intel.com>
+ *    Zhang Hua jun <huajun.zhang at intel.com>
+ *    Xing Dong sheng <dongsheng.xing at intel.com>
+ *
+ */
+mov (8) g76.0<1>UD g1.0<8,8,1>UD {align1};
+//mov (8) g77.0<1>UD g2.0<8,8,1>UD {align1};
+
+include(`block_clear.g4i')
+
+mov (8) g115.0<1>UD g1.0<8,8,1>UD {align1};
+mov (8) g116.0<1>UD g1.0<8,8,1>UD {align1};
+/*Y buffer*/
+mov(1) g115.8<1>UD 0x007001fUD  { align1 };
+mov(1) g1.8<1>UD 0x007000fUD  { align1 };
+/*first vector*/
+asr (2) g115.14<1>W g1.18<2,2,1>W 1W {align1};
+add (2) g115.0<1>D g116.0<2,2,1>D g115.14<2,2,1>W {align1};
+and (1) g115.4<1>UD g115.4<1,1,1>UD 0xFFFFFFFEUD {align1};
+mov(1) g115.8<1>UD 0x1fUD  { align1 }; //read 1 line, 32 columns.
+
+and.nz (1) null g1.31<1,1,1>UB 0x2UW {align1};
+(f0) add (1) g115.4<1>D g115.4<1,1,1>D 1D {align1};
+define(`surface',`7')
+define(`mv1',`g1.18')
+define(`mv2',`g1.20')
+include(`motion_field_y_igd.g4i')
+mov (8) g28.0<1>UD g96.0<8,8,1>UD {align1};
+mov (8) g30.0<1>UD g97.0<8,8,1>UD {align1};
+mov (8) g32.0<1>UD g98.0<8,8,1>UD {align1};
+mov (8) g34.0<1>UD g99.0<8,8,1>UD {align1};
+mov (8) g36.0<1>UD g100.0<8,8,1>UD {align1};
+mov (8) g38.0<1>UD g101.0<8,8,1>UD {align1};
+mov (8) g40.0<1>UD g102.0<8,8,1>UD {align1};
+mov (8) g42.0<1>UD g103.0<8,8,1>UD {align1};
+/*second vector*/
+asr (2) g115.14<1>W g1.26<2,2,1>W 1W {align1};
+add (2) g115.0<1>D g116.0<2,2,1>D g115.14<2,2,1>W {align1};
+and (1) g115.4<1>UD g115.4<1,1,1>UD 0xFFFFFFFEUD {align1};
+mov(1) g115.8<1>UD 0x1fUD  { align1 }; //read 1 line, 32 columns.
+
+and.nz (1) null g1.31<1,1,1>UB 0x8UW {align1};
+(f0) add (1) g115.4<1>D g115.4<1,1,1>D 1D {align1};
+define(`surface',`7')
+define(`mv1',`g1.26')
+define(`mv2',`g1.28')
+include(`motion_field_y_igd.g4i')
+mov (8) g29.0<1>UD g96.0<8,8,1>UD {align1};
+mov (8) g31.0<1>UD g97.0<8,8,1>UD {align1};
+mov (8) g33.0<1>UD g98.0<8,8,1>UD {align1};
+mov (8) g35.0<1>UD g99.0<8,8,1>UD {align1};
+mov (8) g37.0<1>UD g100.0<8,8,1>UD {align1};
+mov (8) g39.0<1>UD g101.0<8,8,1>UD {align1};
+mov (8) g41.0<1>UD g102.0<8,8,1>UD {align1};
+mov (8) g43.0<1>UD g103.0<8,8,1>UD {align1};
+/*U buffer, V buffer*/
+mov(1) g115.8<1>UD 0x007000fUD  { align1 };
+/*first vector*/
+asr (2) g115.14<1>W g1.18<2,2,1>W 2W {align1};
+asr (2) g115.0<1>D g116.0<2,2,1>D 1D {align1};
+add (2) g115.0<1>D g115.0<2,2,1>D g115.14<2,2,1>W {align1};
+and (1) g115.4<1>UD g115.4<1,1,1>UD 0xFFFFFFFEUD {align1};
+
+and.nz (1) null g1.31<1,1,1>UB 0x2UW {align1};
+(f0) add (1) g115.4<1>UD g115.4<1,1,1>UD 1UD {align1};
+define(`surface_u',`8')
+define(`surface_v',`9')
+define(`mv1',`g1.18')
+define(`mv2',`g1.20')
+include(`motion_field_uv_igd.g4i')
+mov (8) g44.0<1>UW g78.0<8,8,1>UW {align1};
+mov (8) g45.0<1>UW g79.0<8,8,1>UW {align1};
+mov (8) g46.0<1>UW g80.0<8,8,1>UW {align1};
+mov (8) g47.0<1>UW g81.0<8,8,1>UW {align1};
+mov (8) g48.0<1>UW g82.0<8,8,1>UW {align1};
+mov (8) g49.0<1>UW g83.0<8,8,1>UW {align1};
+mov (8) g50.0<1>UW g84.0<8,8,1>UW {align1};
+mov (8) g51.0<1>UW g85.0<8,8,1>UW {align1};
+/*second vector*/
+asr (2) g115.14<1>W g1.26<2,2,1>W 2W {align1};
+asr (2) g115.0<1>D g116.0<2,2,1>D 1D {align1};
+add (2) g115.0<1>D g115.0<2,2,1>D g115.14<2,2,1>W {align1};
+and (1) g115.4<1>UD g115.4<1,1,1>UD 0xFFFFFFFEUD {align1};
+
+and.nz (1) null g1.31<1,1,1>UB 0x8UW {align1};
+(f0) add (1) g115.4<1>UD g115.4<1,1,1>UD 1UD {align1};
+define(`mv1',`g1.26')
+define(`mv2',`g1.28')
+include(`motion_field_uv_igd.g4i')
+mov (8) g44.16<1>UW g78.0<8,8,1>UW {align1};
+mov (8) g45.16<1>UW g79.0<8,8,1>UW {align1};
+mov (8) g46.16<1>UW g80.0<8,8,1>UW {align1};
+mov (8) g47.16<1>UW g81.0<8,8,1>UW {align1};
+mov (8) g48.16<1>UW g82.0<8,8,1>UW {align1};
+mov (8) g49.16<1>UW g83.0<8,8,1>UW {align1};
+mov (8) g50.16<1>UW g84.0<8,8,1>UW {align1};
+mov (8) g51.16<1>UW g85.0<8,8,1>UW {align1};
+
+include(`addidct.g4i')
+//send (16) 0 acc0<1>UW g0<8,8,1>UW 
+//	thread_spawner(0, 0, 0) mlen 1 rlen 0 { align1 EOT};
diff --git a/src/xvmc/shader/mc/field_backward_igd.g4b b/src/xvmc/shader/mc/field_backward_igd.g4b
new file mode 100644
index 0000000..7382a87
--- /dev/null
+++ b/src/xvmc/shader/mc/field_backward_igd.g4b
@@ -0,0 +1,669 @@
+   { 0x00600001, 0x29800021, 0x008d0020, 0x00000000 },
+   { 0x02000005, 0x20000c3c, 0x00210040, 0x00000001 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x00000030 },
+   { 0x00000040, 0x20480c21, 0x00210988, 0x00000000 },
+   { 0x00800031, 0x20601c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x20801c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x20a01c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x20c01c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x20e01c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x21001c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x21201c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x21401c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x21601c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x21801c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x21a01c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x21c01c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x21e01c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x22001c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x22201c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x22401c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x22601c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x22801c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x22a01c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x22c01c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x22e01c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x23001c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x23201c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x23401c21, 0x00b10040, 0x04110203 },
+   { 0x02000005, 0x20002d3c, 0x0021098c, 0x00200020 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x00000008 },
+   { 0x00600001, 0x20600169, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x20800169, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x20a00169, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x20c00169, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x20e00169, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x21000169, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x21200169, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x21400169, 0x00000000, 0x00000000 },
+   { 0x02000005, 0x20002d3c, 0x0021002c, 0x00100010 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x00000008 },
+   { 0x00600001, 0x20700169, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x20900169, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x20b00169, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x20d00169, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x20f00169, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x21100169, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x21300169, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x21500169, 0x00000000, 0x00000000 },
+   { 0x02000005, 0x20002d3c, 0x0021002c, 0x00080008 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x00000008 },
+   { 0x00600001, 0x21600169, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x21800169, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x21a00169, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x21c00169, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x21e00169, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x22000169, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x22200169, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x22400169, 0x00000000, 0x00000000 },
+   { 0x02000005, 0x20002d3c, 0x0021002c, 0x00040004 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x00000008 },
+   { 0x00600001, 0x21700169, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x21900169, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x21b00169, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x21d00169, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x21f00169, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x22100169, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x22300169, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x22500169, 0x00000000, 0x00000000 },
+   { 0x02000005, 0x20002d3c, 0x0021002c, 0x00020002 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x00000004 },
+   { 0x00800001, 0x22600169, 0x00000000, 0x00000000 },
+   { 0x00800001, 0x22800169, 0x00000000, 0x00000000 },
+   { 0x00800001, 0x22a00169, 0x00000000, 0x00000000 },
+   { 0x00800001, 0x22c00169, 0x00000000, 0x00000000 },
+   { 0x02000005, 0x20002d3c, 0x0021002c, 0x00010001 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x00000004 },
+   { 0x00800001, 0x22e00169, 0x00000000, 0x00000000 },
+   { 0x00800001, 0x23000169, 0x00000000, 0x00000000 },
+   { 0x00800001, 0x23200169, 0x00000000, 0x00000000 },
+   { 0x00800001, 0x23400169, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x2e600021, 0x008d0020, 0x00000000 },
+   { 0x00600001, 0x2e800021, 0x008d0020, 0x00000000 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0007001f },
+   { 0x00000001, 0x20280061, 0x00000000, 0x0007000f },
+   { 0x0020000c, 0x2e6e3dad, 0x00450032, 0x00010001 },
+   { 0x00200040, 0x2e6034a5, 0x00450e80, 0x00450e6e },
+   { 0x00000005, 0x2e640c21, 0x00210e64, 0xfffffffe },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
+   { 0x02000005, 0x20002e3c, 0x0021003f, 0x00020002 },
+   { 0x00010040, 0x2e641ca5, 0x00210e64, 0x00000001 },
+   { 0x01000005, 0x20002d3c, 0x00210032, 0x00010001 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x00000045 },
+   { 0x01000005, 0x20002d3c, 0x00210034, 0x00010001 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x0000002f },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
+   { 0x00800031, 0x29c01d29, 0x008d0e60, 0x0411a007 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00800031, 0x2a001d29, 0x008d0e60, 0x0411a007 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00800031, 0x2a401d29, 0x008d0e60, 0x0411a007 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00800031, 0x2a801d29, 0x008d0e60, 0x0411a007 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0007001f },
+   { 0x00800031, 0x2ac01d29, 0x008d0e60, 0x0418a007 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
+   { 0x00800031, 0x2bc01d29, 0x008d0e60, 0x0411a007 },
+   { 0x00800040, 0x2c004629, 0x00b109c0, 0x00b10a00 },
+   { 0x00800040, 0x2c204629, 0x00b10a00, 0x00b10a40 },
+   { 0x00800040, 0x2c404629, 0x00b10a40, 0x00b10a80 },
+   { 0x00800040, 0x2c604629, 0x00b10a80, 0x00b10ac0 },
+   { 0x00800040, 0x2c804629, 0x00b10ac0, 0x00b10b00 },
+   { 0x00800040, 0x2ca04629, 0x00b10b00, 0x00b10b40 },
+   { 0x00800040, 0x2cc04629, 0x00b10b40, 0x00b10b80 },
+   { 0x00800040, 0x2ce04629, 0x00b10b80, 0x00b10bc0 },
+   { 0x00800040, 0x2c004529, 0x00b10c00, 0x00b109c1 },
+   { 0x00800040, 0x2c204529, 0x00b10c20, 0x00b10a01 },
+   { 0x00800040, 0x2c404529, 0x00b10c40, 0x00b10a41 },
+   { 0x00800040, 0x2c604529, 0x00b10c60, 0x00b10a81 },
+   { 0x00800040, 0x2c804529, 0x00b10c80, 0x00b10ac1 },
+   { 0x00800040, 0x2ca04529, 0x00b10ca0, 0x00b10b01 },
+   { 0x00800040, 0x2cc04529, 0x00b10cc0, 0x00b10b41 },
+   { 0x00800040, 0x2ce04529, 0x00b10ce0, 0x00b10b81 },
+   { 0x00800040, 0x2c004529, 0x00b10c00, 0x00b10a01 },
+   { 0x00800040, 0x2c204529, 0x00b10c20, 0x00b10a41 },
+   { 0x00800040, 0x2c404529, 0x00b10c40, 0x00b10a81 },
+   { 0x00800040, 0x2c604529, 0x00b10c60, 0x00b10ac1 },
+   { 0x00800040, 0x2c804529, 0x00b10c80, 0x00b10b01 },
+   { 0x00800040, 0x2ca04529, 0x00b10ca0, 0x00b10b41 },
+   { 0x00800040, 0x2cc04529, 0x00b10cc0, 0x00b10b81 },
+   { 0x00800040, 0x2ce04529, 0x00b10ce0, 0x00b10bc1 },
+   { 0x00800008, 0x2c002d29, 0x00b10c00, 0x00020002 },
+   { 0x00800008, 0x2c202d29, 0x00b10c20, 0x00020002 },
+   { 0x00800008, 0x2c402d29, 0x00b10c40, 0x00020002 },
+   { 0x00800008, 0x2c602d29, 0x00b10c60, 0x00020002 },
+   { 0x00800008, 0x2c802d29, 0x00b10c80, 0x00020002 },
+   { 0x00800008, 0x2ca02d29, 0x00b10ca0, 0x00020002 },
+   { 0x00800008, 0x2cc02d29, 0x00b10cc0, 0x00020002 },
+   { 0x00800008, 0x2ce02d29, 0x00b10ce0, 0x00020002 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000040 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
+   { 0x00800031, 0x29c01d29, 0x008d0e60, 0x0411a007 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00800031, 0x2a001d29, 0x008d0e60, 0x0411a007 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00800031, 0x2a401d29, 0x008d0e60, 0x0411a007 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00800031, 0x2a801d29, 0x008d0e60, 0x0411a007 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0007001f },
+   { 0x00800031, 0x2ac01d29, 0x008d0e60, 0x0418a007 },
+   { 0x80800042, 0x2c004629, 0x00b109c0, 0x00b109c1 },
+   { 0x80800042, 0x2c204629, 0x00b10a00, 0x00b10a01 },
+   { 0x80800042, 0x2c404629, 0x00b10a40, 0x00b10a41 },
+   { 0x80800042, 0x2c604629, 0x00b10a80, 0x00b10a81 },
+   { 0x80800042, 0x2c804629, 0x00b10ac0, 0x00b10ac1 },
+   { 0x80800042, 0x2ca04629, 0x00b10b00, 0x00b10b01 },
+   { 0x80800042, 0x2cc04629, 0x00b10b40, 0x00b10b41 },
+   { 0x80800042, 0x2ce04629, 0x00b10b80, 0x00b10b81 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x0000002c },
+   { 0x01000005, 0x20002d3c, 0x00210034, 0x00010001 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x00000017 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
+   { 0x00800031, 0x29c01d29, 0x008d0e60, 0x0411a007 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00800031, 0x2a001d29, 0x008d0e60, 0x0411a007 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00800031, 0x2a401d29, 0x008d0e60, 0x0411a007 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00800031, 0x2a801d29, 0x008d0e60, 0x0411a007 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0007001f },
+   { 0x00800031, 0x2ac01d29, 0x008d0e60, 0x0418a007 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
+   { 0x00800031, 0x2bc01d29, 0x008d0e60, 0x0411a007 },
+   { 0x80800042, 0x2c004629, 0x00b109c0, 0x00b10a00 },
+   { 0x80800042, 0x2c204629, 0x00b10a00, 0x00b10a40 },
+   { 0x80800042, 0x2c404629, 0x00b10a40, 0x00b10a80 },
+   { 0x80800042, 0x2c604629, 0x00b10a80, 0x00b10ac0 },
+   { 0x80800042, 0x2c804629, 0x00b10ac0, 0x00b10b00 },
+   { 0x80800042, 0x2ca04629, 0x00b10b00, 0x00b10b40 },
+   { 0x80800042, 0x2cc04629, 0x00b10b40, 0x00b10b80 },
+   { 0x80800042, 0x2ce04629, 0x00b10b80, 0x00b10bc0 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000013 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
+   { 0x00800031, 0x29c01d29, 0x008d0e60, 0x0411a007 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00800031, 0x2a001d29, 0x008d0e60, 0x0411a007 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00800031, 0x2a401d29, 0x008d0e60, 0x0411a007 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00800031, 0x2a801d29, 0x008d0e60, 0x0411a007 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0007001f },
+   { 0x00800031, 0x2ac01d29, 0x008d0e60, 0x0418a007 },
+   { 0x00800001, 0x2c000229, 0x00b109c0, 0x00000000 },
+   { 0x00800001, 0x2c200229, 0x00b10a00, 0x00000000 },
+   { 0x00800001, 0x2c400229, 0x00b10a40, 0x00000000 },
+   { 0x00800001, 0x2c600229, 0x00b10a80, 0x00000000 },
+   { 0x00800001, 0x2c800229, 0x00b10ac0, 0x00000000 },
+   { 0x00800001, 0x2ca00229, 0x00b10b00, 0x00000000 },
+   { 0x00800001, 0x2cc00229, 0x00b10b40, 0x00000000 },
+   { 0x00800001, 0x2ce00229, 0x00b10b80, 0x00000000 },
+   { 0x00600001, 0x23800021, 0x008d0c00, 0x00000000 },
+   { 0x00600001, 0x23c00021, 0x008d0c20, 0x00000000 },
+   { 0x00600001, 0x24000021, 0x008d0c40, 0x00000000 },
+   { 0x00600001, 0x24400021, 0x008d0c60, 0x00000000 },
+   { 0x00600001, 0x24800021, 0x008d0c80, 0x00000000 },
+   { 0x00600001, 0x24c00021, 0x008d0ca0, 0x00000000 },
+   { 0x00600001, 0x25000021, 0x008d0cc0, 0x00000000 },
+   { 0x00600001, 0x25400021, 0x008d0ce0, 0x00000000 },
+   { 0x0020000c, 0x2e6e3dad, 0x0045003a, 0x00010001 },
+   { 0x00200040, 0x2e6034a5, 0x00450e80, 0x00450e6e },
+   { 0x00000005, 0x2e640c21, 0x00210e64, 0xfffffffe },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
+   { 0x02000005, 0x20002e3c, 0x0021003f, 0x00080008 },
+   { 0x00010040, 0x2e641ca5, 0x00210e64, 0x00000001 },
+   { 0x01000005, 0x20002d3c, 0x0021003a, 0x00010001 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x00000045 },
+   { 0x01000005, 0x20002d3c, 0x0021003c, 0x00010001 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x0000002f },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
+   { 0x00800031, 0x29c01d29, 0x008d0e60, 0x0411a007 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00800031, 0x2a001d29, 0x008d0e60, 0x0411a007 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00800031, 0x2a401d29, 0x008d0e60, 0x0411a007 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00800031, 0x2a801d29, 0x008d0e60, 0x0411a007 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0007001f },
+   { 0x00800031, 0x2ac01d29, 0x008d0e60, 0x0418a007 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
+   { 0x00800031, 0x2bc01d29, 0x008d0e60, 0x0411a007 },
+   { 0x00800040, 0x2c004629, 0x00b109c0, 0x00b10a00 },
+   { 0x00800040, 0x2c204629, 0x00b10a00, 0x00b10a40 },
+   { 0x00800040, 0x2c404629, 0x00b10a40, 0x00b10a80 },
+   { 0x00800040, 0x2c604629, 0x00b10a80, 0x00b10ac0 },
+   { 0x00800040, 0x2c804629, 0x00b10ac0, 0x00b10b00 },
+   { 0x00800040, 0x2ca04629, 0x00b10b00, 0x00b10b40 },
+   { 0x00800040, 0x2cc04629, 0x00b10b40, 0x00b10b80 },
+   { 0x00800040, 0x2ce04629, 0x00b10b80, 0x00b10bc0 },
+   { 0x00800040, 0x2c004529, 0x00b10c00, 0x00b109c1 },
+   { 0x00800040, 0x2c204529, 0x00b10c20, 0x00b10a01 },
+   { 0x00800040, 0x2c404529, 0x00b10c40, 0x00b10a41 },
+   { 0x00800040, 0x2c604529, 0x00b10c60, 0x00b10a81 },
+   { 0x00800040, 0x2c804529, 0x00b10c80, 0x00b10ac1 },
+   { 0x00800040, 0x2ca04529, 0x00b10ca0, 0x00b10b01 },
+   { 0x00800040, 0x2cc04529, 0x00b10cc0, 0x00b10b41 },
+   { 0x00800040, 0x2ce04529, 0x00b10ce0, 0x00b10b81 },
+   { 0x00800040, 0x2c004529, 0x00b10c00, 0x00b10a01 },
+   { 0x00800040, 0x2c204529, 0x00b10c20, 0x00b10a41 },
+   { 0x00800040, 0x2c404529, 0x00b10c40, 0x00b10a81 },
+   { 0x00800040, 0x2c604529, 0x00b10c60, 0x00b10ac1 },
+   { 0x00800040, 0x2c804529, 0x00b10c80, 0x00b10b01 },
+   { 0x00800040, 0x2ca04529, 0x00b10ca0, 0x00b10b41 },
+   { 0x00800040, 0x2cc04529, 0x00b10cc0, 0x00b10b81 },
+   { 0x00800040, 0x2ce04529, 0x00b10ce0, 0x00b10bc1 },
+   { 0x00800008, 0x2c002d29, 0x00b10c00, 0x00020002 },
+   { 0x00800008, 0x2c202d29, 0x00b10c20, 0x00020002 },
+   { 0x00800008, 0x2c402d29, 0x00b10c40, 0x00020002 },
+   { 0x00800008, 0x2c602d29, 0x00b10c60, 0x00020002 },
+   { 0x00800008, 0x2c802d29, 0x00b10c80, 0x00020002 },
+   { 0x00800008, 0x2ca02d29, 0x00b10ca0, 0x00020002 },
+   { 0x00800008, 0x2cc02d29, 0x00b10cc0, 0x00020002 },
+   { 0x00800008, 0x2ce02d29, 0x00b10ce0, 0x00020002 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000040 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
+   { 0x00800031, 0x29c01d29, 0x008d0e60, 0x0411a007 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00800031, 0x2a001d29, 0x008d0e60, 0x0411a007 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00800031, 0x2a401d29, 0x008d0e60, 0x0411a007 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00800031, 0x2a801d29, 0x008d0e60, 0x0411a007 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0007001f },
+   { 0x00800031, 0x2ac01d29, 0x008d0e60, 0x0418a007 },
+   { 0x80800042, 0x2c004629, 0x00b109c0, 0x00b109c1 },
+   { 0x80800042, 0x2c204629, 0x00b10a00, 0x00b10a01 },
+   { 0x80800042, 0x2c404629, 0x00b10a40, 0x00b10a41 },
+   { 0x80800042, 0x2c604629, 0x00b10a80, 0x00b10a81 },
+   { 0x80800042, 0x2c804629, 0x00b10ac0, 0x00b10ac1 },
+   { 0x80800042, 0x2ca04629, 0x00b10b00, 0x00b10b01 },
+   { 0x80800042, 0x2cc04629, 0x00b10b40, 0x00b10b41 },
+   { 0x80800042, 0x2ce04629, 0x00b10b80, 0x00b10b81 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x0000002c },
+   { 0x01000005, 0x20002d3c, 0x0021003c, 0x00010001 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x00000017 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
+   { 0x00800031, 0x29c01d29, 0x008d0e60, 0x0411a007 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00800031, 0x2a001d29, 0x008d0e60, 0x0411a007 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00800031, 0x2a401d29, 0x008d0e60, 0x0411a007 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00800031, 0x2a801d29, 0x008d0e60, 0x0411a007 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0007001f },
+   { 0x00800031, 0x2ac01d29, 0x008d0e60, 0x0418a007 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
+   { 0x00800031, 0x2bc01d29, 0x008d0e60, 0x0411a007 },
+   { 0x80800042, 0x2c004629, 0x00b109c0, 0x00b10a00 },
+   { 0x80800042, 0x2c204629, 0x00b10a00, 0x00b10a40 },
+   { 0x80800042, 0x2c404629, 0x00b10a40, 0x00b10a80 },
+   { 0x80800042, 0x2c604629, 0x00b10a80, 0x00b10ac0 },
+   { 0x80800042, 0x2c804629, 0x00b10ac0, 0x00b10b00 },
+   { 0x80800042, 0x2ca04629, 0x00b10b00, 0x00b10b40 },
+   { 0x80800042, 0x2cc04629, 0x00b10b40, 0x00b10b80 },
+   { 0x80800042, 0x2ce04629, 0x00b10b80, 0x00b10bc0 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000013 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
+   { 0x00800031, 0x29c01d29, 0x008d0e60, 0x0411a007 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00800031, 0x2a001d29, 0x008d0e60, 0x0411a007 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00800031, 0x2a401d29, 0x008d0e60, 0x0411a007 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00800031, 0x2a801d29, 0x008d0e60, 0x0411a007 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0007001f },
+   { 0x00800031, 0x2ac01d29, 0x008d0e60, 0x0418a007 },
+   { 0x00800001, 0x2c000229, 0x00b109c0, 0x00000000 },
+   { 0x00800001, 0x2c200229, 0x00b10a00, 0x00000000 },
+   { 0x00800001, 0x2c400229, 0x00b10a40, 0x00000000 },
+   { 0x00800001, 0x2c600229, 0x00b10a80, 0x00000000 },
+   { 0x00800001, 0x2c800229, 0x00b10ac0, 0x00000000 },
+   { 0x00800001, 0x2ca00229, 0x00b10b00, 0x00000000 },
+   { 0x00800001, 0x2cc00229, 0x00b10b40, 0x00000000 },
+   { 0x00800001, 0x2ce00229, 0x00b10b80, 0x00000000 },
+   { 0x00600001, 0x23a00021, 0x008d0c00, 0x00000000 },
+   { 0x00600001, 0x23e00021, 0x008d0c20, 0x00000000 },
+   { 0x00600001, 0x24200021, 0x008d0c40, 0x00000000 },
+   { 0x00600001, 0x24600021, 0x008d0c60, 0x00000000 },
+   { 0x00600001, 0x24a00021, 0x008d0c80, 0x00000000 },
+   { 0x00600001, 0x24e00021, 0x008d0ca0, 0x00000000 },
+   { 0x00600001, 0x25200021, 0x008d0cc0, 0x00000000 },
+   { 0x00600001, 0x25600021, 0x008d0ce0, 0x00000000 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0007000f },
+   { 0x0020000c, 0x2e6e3dad, 0x00450032, 0x00020002 },
+   { 0x0020000c, 0x2e601ca5, 0x00450e80, 0x00000001 },
+   { 0x00200040, 0x2e6034a5, 0x00450e60, 0x00450e6e },
+   { 0x00000005, 0x2e640c21, 0x00210e64, 0xfffffffe },
+   { 0x02000005, 0x20002e3c, 0x0021003f, 0x00020002 },
+   { 0x00010040, 0x2e640c21, 0x00210e64, 0x00000001 },
+   { 0x01000005, 0x20002d3c, 0x00210032, 0x00020002 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x00000036 },
+   { 0x01000005, 0x20002d3c, 0x00210034, 0x00020002 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x00000028 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0007000f },
+   { 0x00800031, 0x2ac01d29, 0x00ad0e60, 0x0414a008 },
+   { 0x00800031, 0x2b601d29, 0x00ad0e60, 0x0414a009 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0001000f },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 },
+   { 0x00800031, 0x2b401d29, 0x00ad0e60, 0x0411a008 },
+   { 0x00800031, 0x2be01d29, 0x00ad0e60, 0x0411a009 },
+   { 0x00800040, 0x29c04629, 0x00ad0ac0, 0x00ad0ae0 },
+   { 0x00800040, 0x29e04629, 0x00ad0ae0, 0x00ad0b00 },
+   { 0x00800040, 0x2a004629, 0x00ad0b00, 0x00ad0b20 },
+   { 0x00800040, 0x2a204629, 0x00ad0b20, 0x00ad0b40 },
+   { 0x00800040, 0x29c04529, 0x00ad09c0, 0x00ad0ac1 },
+   { 0x00800040, 0x29e04529, 0x00ad09e0, 0x00ad0ae1 },
+   { 0x00800040, 0x2a004529, 0x00ad0a00, 0x00ad0b01 },
+   { 0x00800040, 0x2a204529, 0x00ad0a20, 0x00ad0b21 },
+   { 0x00800040, 0x29c04529, 0x00ad09c0, 0x00ad0ae1 },
+   { 0x00800040, 0x29e04529, 0x00ad09e0, 0x00ad0b01 },
+   { 0x00800040, 0x2a004529, 0x00ad0a00, 0x00ad0b21 },
+   { 0x00800040, 0x2a204529, 0x00ad0a20, 0x00ad0b41 },
+   { 0x00800040, 0x2a404629, 0x00ad0b60, 0x00ad0b80 },
+   { 0x00800040, 0x2a604629, 0x00ad0b80, 0x00ad0ba0 },
+   { 0x00800040, 0x2a804629, 0x00ad0ba0, 0x00ad0bc0 },
+   { 0x00800040, 0x2aa04629, 0x00ad0bc0, 0x00ad0be0 },
+   { 0x00800040, 0x2a404529, 0x00ad0a40, 0x00ad0b61 },
+   { 0x00800040, 0x2a604529, 0x00ad0a60, 0x00ad0b81 },
+   { 0x00800040, 0x2a804529, 0x00ad0a80, 0x00ad0ba1 },
+   { 0x00800040, 0x2aa04529, 0x00ad0aa0, 0x00ad0bc1 },
+   { 0x00800040, 0x2a404529, 0x00ad0a40, 0x00ad0b81 },
+   { 0x00800040, 0x2a604529, 0x00ad0a60, 0x00ad0ba1 },
+   { 0x00800040, 0x2a804529, 0x00ad0a80, 0x00ad0bc1 },
+   { 0x00800040, 0x2aa04529, 0x00ad0aa0, 0x00ad0be1 },
+   { 0x80800008, 0x29c02d29, 0x00b109c0, 0x00020002 },
+   { 0x80800008, 0x29e02d29, 0x00b109e0, 0x00020002 },
+   { 0x80800008, 0x2a002d29, 0x00b10a00, 0x00020002 },
+   { 0x80800008, 0x2a202d29, 0x00b10a20, 0x00020002 },
+   { 0x80800008, 0x2a402d29, 0x00b10a40, 0x00020002 },
+   { 0x80800008, 0x2a602d29, 0x00b10a60, 0x00020002 },
+   { 0x80800008, 0x2a802d29, 0x00b10a80, 0x00020002 },
+   { 0x80800008, 0x2aa02d29, 0x00b10aa0, 0x00020002 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000028 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0007000f },
+   { 0x00800031, 0x2ac01d29, 0x00ad0e60, 0x0414a008 },
+   { 0x00800031, 0x2b601d29, 0x00ad0e60, 0x0414a009 },
+   { 0x80800042, 0x29c04629, 0x00ad0ac0, 0x00ad0ac1 },
+   { 0x80800042, 0x29e04629, 0x00ad0ae0, 0x00ad0ae1 },
+   { 0x80800042, 0x2a004629, 0x00ad0b00, 0x00ad0b01 },
+   { 0x80800042, 0x2a204629, 0x00ad0b20, 0x00ad0b21 },
+   { 0x80800042, 0x2a404629, 0x00ad0b60, 0x00ad0b61 },
+   { 0x80800042, 0x2a604629, 0x00ad0b80, 0x00ad0b81 },
+   { 0x80800042, 0x2a804629, 0x00ad0ba0, 0x00ad0ba1 },
+   { 0x80800042, 0x2aa04629, 0x00ad0bc0, 0x00ad0bc1 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x0000001c },
+   { 0x01000005, 0x20002d3c, 0x00210034, 0x00020002 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x0000000f },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0007000f },
+   { 0x00800031, 0x2ac01d29, 0x00ad0e60, 0x0414a008 },
+   { 0x00800031, 0x2b601d29, 0x00ad0e60, 0x0414a009 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0000000f },
+   { 0x00800031, 0x2b401d29, 0x00ad0e60, 0x0411a008 },
+   { 0x00800031, 0x2be01d29, 0x00ad0e60, 0x0411a009 },
+   { 0x80800042, 0x29c04629, 0x00ad0ac0, 0x00ad0ae0 },
+   { 0x80800042, 0x29e04629, 0x00ad0ae0, 0x00ad0b00 },
+   { 0x80800042, 0x2a004629, 0x00ad0b00, 0x00ad0b20 },
+   { 0x80800042, 0x2a204629, 0x00ad0b20, 0x00ad0b40 },
+   { 0x80800042, 0x2a404629, 0x00ad0b60, 0x00ad0b80 },
+   { 0x80800042, 0x2a604629, 0x00ad0b80, 0x00ad0ba0 },
+   { 0x80800042, 0x2a804629, 0x00ad0ba0, 0x00ad0bc0 },
+   { 0x80800042, 0x2aa04629, 0x00ad0bc0, 0x00ad0be0 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x0000000b },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0007000f },
+   { 0x00800031, 0x2ac01d29, 0x00ad0e60, 0x0414a008 },
+   { 0x00800031, 0x2b601d29, 0x00ad0e60, 0x0414a009 },
+   { 0x00800001, 0x29c00229, 0x00ad0ac0, 0x00000000 },
+   { 0x00800001, 0x29e00229, 0x00ad0ae0, 0x00000000 },
+   { 0x00800001, 0x2a000229, 0x00ad0b00, 0x00000000 },
+   { 0x00800001, 0x2a200229, 0x00ad0b20, 0x00000000 },
+   { 0x00800001, 0x2a400229, 0x00ad0b60, 0x00000000 },
+   { 0x00800001, 0x2a600229, 0x00ad0b80, 0x00000000 },
+   { 0x00800001, 0x2a800229, 0x00ad0ba0, 0x00000000 },
+   { 0x00800001, 0x2aa00229, 0x00ad0bc0, 0x00000000 },
+   { 0x00600001, 0x25800129, 0x008d09c0, 0x00000000 },
+   { 0x00600001, 0x25a00129, 0x008d09e0, 0x00000000 },
+   { 0x00600001, 0x25c00129, 0x008d0a00, 0x00000000 },
+   { 0x00600001, 0x25e00129, 0x008d0a20, 0x00000000 },
+   { 0x00600001, 0x26000129, 0x008d0a40, 0x00000000 },
+   { 0x00600001, 0x26200129, 0x008d0a60, 0x00000000 },
+   { 0x00600001, 0x26400129, 0x008d0a80, 0x00000000 },
+   { 0x00600001, 0x26600129, 0x008d0aa0, 0x00000000 },
+   { 0x0020000c, 0x2e6e3dad, 0x0045003a, 0x00020002 },
+   { 0x0020000c, 0x2e601ca5, 0x00450e80, 0x00000001 },
+   { 0x00200040, 0x2e6034a5, 0x00450e60, 0x00450e6e },
+   { 0x00000005, 0x2e640c21, 0x00210e64, 0xfffffffe },
+   { 0x02000005, 0x20002e3c, 0x0021003f, 0x00080008 },
+   { 0x00010040, 0x2e640c21, 0x00210e64, 0x00000001 },
+   { 0x01000005, 0x20002d3c, 0x0021003a, 0x00020002 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x00000036 },
+   { 0x01000005, 0x20002d3c, 0x0021003c, 0x00020002 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x00000028 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0007000f },
+   { 0x00800031, 0x2ac01d29, 0x00ad0e60, 0x0414a008 },
+   { 0x00800031, 0x2b601d29, 0x00ad0e60, 0x0414a009 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0001000f },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 },
+   { 0x00800031, 0x2b401d29, 0x00ad0e60, 0x0411a008 },
+   { 0x00800031, 0x2be01d29, 0x00ad0e60, 0x0411a009 },
+   { 0x00800040, 0x29c04629, 0x00ad0ac0, 0x00ad0ae0 },
+   { 0x00800040, 0x29e04629, 0x00ad0ae0, 0x00ad0b00 },
+   { 0x00800040, 0x2a004629, 0x00ad0b00, 0x00ad0b20 },
+   { 0x00800040, 0x2a204629, 0x00ad0b20, 0x00ad0b40 },
+   { 0x00800040, 0x29c04529, 0x00ad09c0, 0x00ad0ac1 },
+   { 0x00800040, 0x29e04529, 0x00ad09e0, 0x00ad0ae1 },
+   { 0x00800040, 0x2a004529, 0x00ad0a00, 0x00ad0b01 },
+   { 0x00800040, 0x2a204529, 0x00ad0a20, 0x00ad0b21 },
+   { 0x00800040, 0x29c04529, 0x00ad09c0, 0x00ad0ae1 },
+   { 0x00800040, 0x29e04529, 0x00ad09e0, 0x00ad0b01 },
+   { 0x00800040, 0x2a004529, 0x00ad0a00, 0x00ad0b21 },
+   { 0x00800040, 0x2a204529, 0x00ad0a20, 0x00ad0b41 },
+   { 0x00800040, 0x2a404629, 0x00ad0b60, 0x00ad0b80 },
+   { 0x00800040, 0x2a604629, 0x00ad0b80, 0x00ad0ba0 },
+   { 0x00800040, 0x2a804629, 0x00ad0ba0, 0x00ad0bc0 },
+   { 0x00800040, 0x2aa04629, 0x00ad0bc0, 0x00ad0be0 },
+   { 0x00800040, 0x2a404529, 0x00ad0a40, 0x00ad0b61 },
+   { 0x00800040, 0x2a604529, 0x00ad0a60, 0x00ad0b81 },
+   { 0x00800040, 0x2a804529, 0x00ad0a80, 0x00ad0ba1 },
+   { 0x00800040, 0x2aa04529, 0x00ad0aa0, 0x00ad0bc1 },
+   { 0x00800040, 0x2a404529, 0x00ad0a40, 0x00ad0b81 },
+   { 0x00800040, 0x2a604529, 0x00ad0a60, 0x00ad0ba1 },
+   { 0x00800040, 0x2a804529, 0x00ad0a80, 0x00ad0bc1 },
+   { 0x00800040, 0x2aa04529, 0x00ad0aa0, 0x00ad0be1 },
+   { 0x80800008, 0x29c02d29, 0x00b109c0, 0x00020002 },
+   { 0x80800008, 0x29e02d29, 0x00b109e0, 0x00020002 },
+   { 0x80800008, 0x2a002d29, 0x00b10a00, 0x00020002 },
+   { 0x80800008, 0x2a202d29, 0x00b10a20, 0x00020002 },
+   { 0x80800008, 0x2a402d29, 0x00b10a40, 0x00020002 },
+   { 0x80800008, 0x2a602d29, 0x00b10a60, 0x00020002 },
+   { 0x80800008, 0x2a802d29, 0x00b10a80, 0x00020002 },
+   { 0x80800008, 0x2aa02d29, 0x00b10aa0, 0x00020002 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000028 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0007000f },
+   { 0x00800031, 0x2ac01d29, 0x00ad0e60, 0x0414a008 },
+   { 0x00800031, 0x2b601d29, 0x00ad0e60, 0x0414a009 },
+   { 0x80800042, 0x29c04629, 0x00ad0ac0, 0x00ad0ac1 },
+   { 0x80800042, 0x29e04629, 0x00ad0ae0, 0x00ad0ae1 },
+   { 0x80800042, 0x2a004629, 0x00ad0b00, 0x00ad0b01 },
+   { 0x80800042, 0x2a204629, 0x00ad0b20, 0x00ad0b21 },
+   { 0x80800042, 0x2a404629, 0x00ad0b60, 0x00ad0b61 },
+   { 0x80800042, 0x2a604629, 0x00ad0b80, 0x00ad0b81 },
+   { 0x80800042, 0x2a804629, 0x00ad0ba0, 0x00ad0ba1 },
+   { 0x80800042, 0x2aa04629, 0x00ad0bc0, 0x00ad0bc1 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x0000001c },
+   { 0x01000005, 0x20002d3c, 0x0021003c, 0x00020002 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x0000000f },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0007000f },
+   { 0x00800031, 0x2ac01d29, 0x00ad0e60, 0x0414a008 },
+   { 0x00800031, 0x2b601d29, 0x00ad0e60, 0x0414a009 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0000000f },
+   { 0x00800031, 0x2b401d29, 0x00ad0e60, 0x0411a008 },
+   { 0x00800031, 0x2be01d29, 0x00ad0e60, 0x0411a009 },
+   { 0x80800042, 0x29c04629, 0x00ad0ac0, 0x00ad0ae0 },
+   { 0x80800042, 0x29e04629, 0x00ad0ae0, 0x00ad0b00 },
+   { 0x80800042, 0x2a004629, 0x00ad0b00, 0x00ad0b20 },
+   { 0x80800042, 0x2a204629, 0x00ad0b20, 0x00ad0b40 },
+   { 0x80800042, 0x2a404629, 0x00ad0b60, 0x00ad0b80 },
+   { 0x80800042, 0x2a604629, 0x00ad0b80, 0x00ad0ba0 },
+   { 0x80800042, 0x2a804629, 0x00ad0ba0, 0x00ad0bc0 },
+   { 0x80800042, 0x2aa04629, 0x00ad0bc0, 0x00ad0be0 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x0000000b },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0007000f },
+   { 0x00800031, 0x2ac01d29, 0x00ad0e60, 0x0414a008 },
+   { 0x00800031, 0x2b601d29, 0x00ad0e60, 0x0414a009 },
+   { 0x00800001, 0x29c00229, 0x00ad0ac0, 0x00000000 },
+   { 0x00800001, 0x29e00229, 0x00ad0ae0, 0x00000000 },
+   { 0x00800001, 0x2a000229, 0x00ad0b00, 0x00000000 },
+   { 0x00800001, 0x2a200229, 0x00ad0b20, 0x00000000 },
+   { 0x00800001, 0x2a400229, 0x00ad0b60, 0x00000000 },
+   { 0x00800001, 0x2a600229, 0x00ad0b80, 0x00000000 },
+   { 0x00800001, 0x2a800229, 0x00ad0ba0, 0x00000000 },
+   { 0x00800001, 0x2aa00229, 0x00ad0bc0, 0x00000000 },
+   { 0x00600001, 0x25900129, 0x008d09c0, 0x00000000 },
+   { 0x00600001, 0x25b00129, 0x008d09e0, 0x00000000 },
+   { 0x00600001, 0x25d00129, 0x008d0a00, 0x00000000 },
+   { 0x00600001, 0x25f00129, 0x008d0a20, 0x00000000 },
+   { 0x00600001, 0x26100129, 0x008d0a40, 0x00000000 },
+   { 0x00600001, 0x26300129, 0x008d0a60, 0x00000000 },
+   { 0x00600001, 0x26500129, 0x008d0a80, 0x00000000 },
+   { 0x00600001, 0x26700129, 0x008d0aa0, 0x00000000 },
+   { 0x00600001, 0x20200021, 0x008d0980, 0x00000000 },
+   { 0x00800001, 0x458101f1, 0x00000000, 0x00000000 },
+   { 0x00800001, 0x45a101f1, 0x00000000, 0x00000000 },
+   { 0x00800001, 0x45c101f1, 0x00000000, 0x00000000 },
+   { 0x00800001, 0x45e101f1, 0x00000000, 0x00000000 },
+   { 0x00800001, 0x460101f1, 0x00000000, 0x00000000 },
+   { 0x00800001, 0x462101f1, 0x00000000, 0x00000000 },
+   { 0x00800001, 0x464101f1, 0x00000000, 0x00000000 },
+   { 0x00800001, 0x466101f1, 0x00000000, 0x00000000 },
+   { 0x02000005, 0x20002e3c, 0x0021003e, 0x00010001 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x00000011 },
+   { 0x00800040, 0x238045ad, 0x00b10060, 0x00b20380 },
+   { 0x00800040, 0x23a045ad, 0x00b10080, 0x00b203a0 },
+   { 0x00800040, 0x23c045ad, 0x00b100a0, 0x00b203c0 },
+   { 0x00800040, 0x23e045ad, 0x00b100c0, 0x00b203e0 },
+   { 0x00800040, 0x240045ad, 0x00b100e0, 0x00b20400 },
+   { 0x00800040, 0x242045ad, 0x00b10100, 0x00b20420 },
+   { 0x00800040, 0x244045ad, 0x00b10120, 0x00b20440 },
+   { 0x00800040, 0x246045ad, 0x00b10140, 0x00b20460 },
+   { 0x00800040, 0x248045ad, 0x00b10160, 0x00b20480 },
+   { 0x00800040, 0x24a045ad, 0x00b10180, 0x00b204a0 },
+   { 0x00800040, 0x24c045ad, 0x00b101a0, 0x00b204c0 },
+   { 0x00800040, 0x24e045ad, 0x00b101c0, 0x00b204e0 },
+   { 0x00800040, 0x250045ad, 0x00b101e0, 0x00b20500 },
+   { 0x00800040, 0x252045ad, 0x00b10200, 0x00b20520 },
+   { 0x00800040, 0x254045ad, 0x00b10220, 0x00b20540 },
+   { 0x00800040, 0x256045ad, 0x00b10240, 0x00b20560 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000010 },
+   { 0x00800040, 0x238045ad, 0x00b10060, 0x00b20380 },
+   { 0x00800040, 0x23a045ad, 0x00b10160, 0x00b203a0 },
+   { 0x00800040, 0x23c045ad, 0x00b10080, 0x00b203c0 },
+   { 0x00800040, 0x23e045ad, 0x00b10180, 0x00b203e0 },
+   { 0x00800040, 0x240045ad, 0x00b100a0, 0x00b20400 },
+   { 0x00800040, 0x242045ad, 0x00b101a0, 0x00b20420 },
+   { 0x00800040, 0x244045ad, 0x00b100c0, 0x00b20440 },
+   { 0x00800040, 0x246045ad, 0x00b101c0, 0x00b20460 },
+   { 0x00800040, 0x248045ad, 0x00b100e0, 0x00b20480 },
+   { 0x00800040, 0x24a045ad, 0x00b101e0, 0x00b204a0 },
+   { 0x00800040, 0x24c045ad, 0x00b10100, 0x00b204c0 },
+   { 0x00800040, 0x24e045ad, 0x00b10200, 0x00b204e0 },
+   { 0x00800040, 0x250045ad, 0x00b10120, 0x00b20500 },
+   { 0x00800040, 0x252045ad, 0x00b10220, 0x00b20520 },
+   { 0x00800040, 0x254045ad, 0x00b10140, 0x00b20540 },
+   { 0x00800040, 0x256045ad, 0x00b10240, 0x00b20560 },
+   { 0x00000001, 0x20280061, 0x00000000, 0x000f000f },
+   { 0x80800001, 0x438001b1, 0x00b10380, 0x00000000 },
+   { 0x80800001, 0x43a001b1, 0x00b103a0, 0x00000000 },
+   { 0x80800001, 0x43c001b1, 0x00b103c0, 0x00000000 },
+   { 0x80800001, 0x43e001b1, 0x00b103e0, 0x00000000 },
+   { 0x80800001, 0x440001b1, 0x00b10400, 0x00000000 },
+   { 0x80800001, 0x442001b1, 0x00b10420, 0x00000000 },
+   { 0x80800001, 0x444001b1, 0x00b10440, 0x00000000 },
+   { 0x80800001, 0x446001b1, 0x00b10460, 0x00000000 },
+   { 0x80800001, 0x448001b1, 0x00b10480, 0x00000000 },
+   { 0x80800001, 0x44a001b1, 0x00b104a0, 0x00000000 },
+   { 0x80800001, 0x44c001b1, 0x00b104c0, 0x00000000 },
+   { 0x80800001, 0x44e001b1, 0x00b104e0, 0x00000000 },
+   { 0x80800001, 0x450001b1, 0x00b10500, 0x00000000 },
+   { 0x80800001, 0x452001b1, 0x00b10520, 0x00000000 },
+   { 0x80800001, 0x454001b1, 0x00b10540, 0x00000000 },
+   { 0x80800001, 0x456001b1, 0x00b10560, 0x00000000 },
+   { 0x00800001, 0x20200232, 0x00b20380, 0x00000000 },
+   { 0x00800001, 0x20300232, 0x00b203a0, 0x00000000 },
+   { 0x00800001, 0x20400232, 0x00b203c0, 0x00000000 },
+   { 0x00800001, 0x20500232, 0x00b203e0, 0x00000000 },
+   { 0x00800001, 0x20600232, 0x00b20400, 0x00000000 },
+   { 0x00800001, 0x20700232, 0x00b20420, 0x00000000 },
+   { 0x00800001, 0x20800232, 0x00b20440, 0x00000000 },
+   { 0x00800001, 0x20900232, 0x00b20460, 0x00000000 },
+   { 0x00800001, 0x20a00232, 0x00b20480, 0x00000000 },
+   { 0x00800001, 0x20b00232, 0x00b204a0, 0x00000000 },
+   { 0x00800001, 0x20c00232, 0x00b204c0, 0x00000000 },
+   { 0x00800001, 0x20d00232, 0x00b204e0, 0x00000000 },
+   { 0x00800001, 0x20e00232, 0x00b20500, 0x00000000 },
+   { 0x00800001, 0x20f00232, 0x00b20520, 0x00000000 },
+   { 0x00800001, 0x21000232, 0x00b20540, 0x00000000 },
+   { 0x00800001, 0x21100232, 0x00b20560, 0x00000000 },
+   { 0x00800031, 0x24001d28, 0x008d0020, 0x05902000 },
+   { 0x00000001, 0x20280061, 0x00000000, 0x00070007 },
+   { 0x00200008, 0x20201c21, 0x00450020, 0x00000001 },
+   { 0x00800040, 0x258025a9, 0x00b10260, 0x00b10580 },
+   { 0x00800040, 0x25a025a9, 0x00b10280, 0x00b105a0 },
+   { 0x00800040, 0x25c025a9, 0x00b102a0, 0x00b105c0 },
+   { 0x00800040, 0x25e025a9, 0x00b102c0, 0x00b105e0 },
+   { 0x80800001, 0x45800131, 0x00b10580, 0x00000000 },
+   { 0x80800001, 0x45a00131, 0x00b105a0, 0x00000000 },
+   { 0x80800001, 0x45c00131, 0x00b105c0, 0x00000000 },
+   { 0x80800001, 0x45e00131, 0x00b105e0, 0x00000000 },
+   { 0x00800001, 0x20200232, 0x00b20580, 0x00000000 },
+   { 0x00800001, 0x20300232, 0x00b205a0, 0x00000000 },
+   { 0x00800001, 0x20400232, 0x00b205c0, 0x00000000 },
+   { 0x00800001, 0x20500232, 0x00b205e0, 0x00000000 },
+   { 0x00800031, 0x24001d28, 0x008d0020, 0x05302001 },
+   { 0x00800040, 0x260025a9, 0x00b102e0, 0x00b10600 },
+   { 0x00800040, 0x262025a9, 0x00b10300, 0x00b10620 },
+   { 0x00800040, 0x264025a9, 0x00b10320, 0x00b10640 },
+   { 0x00800040, 0x266025a9, 0x00b10340, 0x00b10660 },
+   { 0x80800001, 0x46000131, 0x00b10600, 0x00000000 },
+   { 0x80800001, 0x46200131, 0x00b10620, 0x00000000 },
+   { 0x80800001, 0x46400131, 0x00b10640, 0x00000000 },
+   { 0x80800001, 0x46600131, 0x00b10660, 0x00000000 },
+   { 0x00800001, 0x20200232, 0x00b20600, 0x00000000 },
+   { 0x00800001, 0x20300232, 0x00b20620, 0x00000000 },
+   { 0x00800001, 0x20400232, 0x00b20640, 0x00000000 },
+   { 0x00800001, 0x20500232, 0x00b20660, 0x00000000 },
+   { 0x00800031, 0x24001d28, 0x008d0020, 0x05302002 },
+   { 0x00800031, 0x24001d28, 0x008d0000, 0x87100000 },
diff --git a/src/xvmc/shader/mc/field_f_b.g4a b/src/xvmc/shader/mc/field_f_b.g4a
new file mode 100644
index 0000000..7066a75
--- /dev/null
+++ b/src/xvmc/shader/mc/field_f_b.g4a
@@ -0,0 +1,223 @@
+/*
+ * Copyright © 2008 Intel Corporation
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice (including the next
+ * paragraph) shall be included in all copies or substantial portions of the
+ * Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
+ * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+ * SOFTWARE.
+ *
+ * Author:
+ *    Zou Nan hai <nanhai.zou at intel.com>
+ *    Zhang Hua jun <huajun.zhang at intel.com>
+ *    Xing Dong sheng <dongsheng.xing at intel.com>
+ *
+ */
+mov (8) g76.0<1>UD g1.0<8,8,1>UD {align1};
+//mov (8) g77.0<1>UD g2.0<8,8,1>UD {align1};
+
+include(`block_clear.g4i')
+mov (8) g115.0<1>UD g1.0<8,8,1>UD {align1};
+mov (8) g116.0<1>UD g1.0<8,8,1>UD {align1};
+
+/* forward---Y---first vector*/
+mov(1) g115.8<1>UD 0x007001fUD  { align1 };
+asr (2) g115.14<1>W g1.14<2,2,1>W 1W {align1};
+add (2) g115.0<1>D g116.0<2,2,1>D g115.14<2,2,1>W {align1};
+and (1) g115.4<1>UD g115.4<1,1,1>UD 0xFFFFFFFEUD {align1};
+mov(1) g115.8<1>UD 0x1fUD  { align1 }; //read 1 line, 32 columns.
+and.nz (1) null g1.31<1,1,1>UB 0x1UW {align1};
+(f0) add (1) g115.4<1>D g115.4<1,1,1>D 1D {align1};
+define(`surface',`4')
+define(`mv1',`g1.14')
+define(`mv2',`g1.16')
+include(`motion_field_y.g4i')
+mov (8) g52.0<1>UD g96.0<8,8,1>UD {align1};
+mov (8) g54.0<1>UD g97.0<8,8,1>UD {align1};
+mov (8) g56.0<1>UD g98.0<8,8,1>UD {align1};
+mov (8) g58.0<1>UD g99.0<8,8,1>UD {align1};
+mov (8) g60.0<1>UD g100.0<8,8,1>UD {align1};
+mov (8) g62.0<1>UD g101.0<8,8,1>UD {align1};
+mov (8) g64.0<1>UD g102.0<8,8,1>UD {align1};
+mov (8) g66.0<1>UD g103.0<8,8,1>UD {align1};
+
+/*forward---Y---second vector*/
+asr (2) g115.14<1>W g1.22<2,2,1>W 1W {align1};
+add (2) g115.0<1>D g116.0<2,2,1>D g115.14<2,2,1>W {align1};
+and (1) g115.4<1>UD g115.4<1,1,1>UD 0xFFFFFFFEUD {align1};
+mov(1) g115.8<1>UD 0x1fUD { align1 }; //read 1 line, 32 columns.
+and.nz (1) null g1.31<1,1,1>UB 0x4UD {align1};
+(f0) add (1) g115.4<1>D g115.4<1,1,1>D 1D {align1};
+define(`surface',`4')
+define(`mv1',`g1.22')
+define(`mv2',`g1.24')
+include(`motion_field_y.g4i')
+mov (8) g53.0<1>UD g96.0<8,8,1>UD {align1};
+mov (8) g55.0<1>UD g97.0<8,8,1>UD {align1};
+mov (8) g57.0<1>UD g98.0<8,8,1>UD {align1};
+mov (8) g59.0<1>UD g99.0<8,8,1>UD {align1};
+mov (8) g61.0<1>UD g100.0<8,8,1>UD {align1};
+mov (8) g63.0<1>UD g101.0<8,8,1>UD {align1};
+mov (8) g65.0<1>UD g102.0<8,8,1>UD {align1};
+mov (8) g67.0<1>UD g103.0<8,8,1>UD {align1};
+
+/*forward---UV---first vector*/
+mov(1) g115.8<1>UD 0x007000fUD  { align1 };
+asr (2) g115.14<1>W g1.14<2,2,1>W 2W {align1};
+asr (2) g115.0<1>D g116.0<2,2,1>D 1D {align1};
+add (2) g115.0<1>D g115.0<2,2,1>D g115.14<2,2,1>W {align1};
+and (1) g115.4<1>UD g115.4<1,1,1>UD 0xFFFFFFFEUD {align1};
+and.nz (1) null g1.31<1,1,1>UB 0x1UW {align1};
+(f0) add (1) g115.4<1>UD g115.4<1,1,1>UD 1UD {align1};
+define(`surface_u',`5')
+define(`surface_v',`6')
+define(`mv1',`g1.14')
+define(`mv2',`g1.16')
+include(`motion_field_uv.g4i')
+mov (8) g68.0<1>UW g78.0<8,8,1>UW {align1};
+mov (8) g69.0<1>UW g79.0<8,8,1>UW {align1};
+mov (8) g70.0<1>UW g80.0<8,8,1>UW {align1};
+mov (8) g71.0<1>UW g81.0<8,8,1>UW {align1};
+mov (8) g72.0<1>UW g82.0<8,8,1>UW {align1};
+mov (8) g73.0<1>UW g83.0<8,8,1>UW {align1};
+mov (8) g74.0<1>UW g84.0<8,8,1>UW {align1};
+mov (8) g75.0<1>UW g85.0<8,8,1>UW {align1};
+
+/*forward---UV---second vector */
+asr (2) g115.14<1>W g1.22<2,2,1>W 2W {align1};
+asr (2) g115.0<1>D g116.0<2,2,1>D 1D {align1};
+add (2) g115.0<1>D g115.0<2,2,1>D g115.14<2,2,1>W {align1};
+and (1) g115.4<1>UD g115.4<1,1,1>UD 0xFFFFFFFEUD {align1};
+and.nz (1) null g1.31<1,1,1>UB 0x4UW {align1};
+(f0) add (1) g115.4<1>UD g115.4<1,1,1>UD 1UD {align1};
+define(`mv1',`g1.24')
+define(`mv2',`g1.26')
+include(`motion_field_uv.g4i')
+mov (8) g68.16<1>UW g78.0<8,8,1>UW {align1};
+mov (8) g69.16<1>UW g79.0<8,8,1>UW {align1};
+mov (8) g70.16<1>UW g80.0<8,8,1>UW {align1};
+mov (8) g71.16<1>UW g81.0<8,8,1>UW {align1};
+mov (8) g72.16<1>UW g82.0<8,8,1>UW {align1};
+mov (8) g73.16<1>UW g83.0<8,8,1>UW {align1};
+mov (8) g74.16<1>UW g84.0<8,8,1>UW {align1};
+mov (8) g75.16<1>UW g85.0<8,8,1>UW {align1};
+
+/*backward---Y---first vector */
+mov(8) g1.0<1>UD g116.0<8,8,1>UD {align1};
+mov(1) g115.8<1>UD 0x007001fUD  { align1 };
+mov(1) g1.8<1>UD 0x007000fUD  { align1 };
+asr (2) g115.14<1>W g1.18<2,2,1>W 1W {align1};
+add (2) g115.0<1>D g116.0<2,2,1>D g115.14<2,2,1>W {align1};
+and (1) g115.4<1>UD g115.4<1,1,1>UD 0xFFFFFFFEUD {align1};
+mov(1) g115.8<1>UD 0x1fUD  { align1 }; //read 1 line, 32 columns.
+and.nz (1) null g1.31<1,1,1>UB 0x2UW {align1};
+(f0) add (1) g115.4<1>D g115.4<1,1,1>D 1D {align1};
+define(`surface',`7')
+define(`mv1',`g1.18')
+define(`mv2',`g1.20')
+include(`motion_field_y.g4i')
+mov (8) g28.0<1>UD g96.0<8,8,1>UD {align1};
+mov (8) g30.0<1>UD g97.0<8,8,1>UD {align1};
+mov (8) g32.0<1>UD g98.0<8,8,1>UD {align1};
+mov (8) g34.0<1>UD g99.0<8,8,1>UD {align1};
+mov (8) g36.0<1>UD g100.0<8,8,1>UD {align1};
+mov (8) g38.0<1>UD g101.0<8,8,1>UD {align1};
+mov (8) g40.0<1>UD g102.0<8,8,1>UD {align1};
+mov (8) g42.0<1>UD g103.0<8,8,1>UD {align1};
+
+/*backward---Y---second vector */
+asr (2) g115.14<1>W g1.26<2,2,1>W 1W {align1};
+add (2) g115.0<1>D g116.0<2,2,1>D g115.14<2,2,1>W {align1};
+and (1) g115.4<1>UD g115.4<1,1,1>UD 0xFFFFFFFEUD {align1};
+mov(1) g115.8<1>UD 0x1fUD  { align1 }; //read 1 line, 32 columns.
+and.nz (1) null g2.20<1,1,1>UD 0x8UD {align1};
+(f0) add (1) g115.4<1>D g115.4<1,1,1>D 1D {align1};
+define(`surface',`7')
+define(`mv1',`g1.26')
+define(`mv2',`g1.28')
+include(`motion_field_y.g4i')
+
+avg.sat (16) g28.0<1>UW g52.0<16,16,1>UW g28.0<16,16,1>UW {align1};
+avg.sat (16) g29.0<1>UW g53.0<16,16,1>UW g96.0<16,16,1>UW {align1};
+avg.sat (16) g30.0<1>UW g54.0<16,16,1>UW g30.0<16,16,1>UW {align1};
+avg.sat (16) g31.0<1>UW g55.0<16,16,1>UW g97.0<16,16,1>UW {align1};
+avg.sat (16) g32.0<1>UW g56.0<16,16,1>UW g32.0<16,16,1>UW {align1};
+avg.sat (16) g33.0<1>UW g57.0<16,16,1>UW g98.0<16,16,1>UW {align1};
+avg.sat (16) g34.0<1>UW g58.0<16,16,1>UW g34.0<16,16,1>UW {align1};
+avg.sat (16) g35.0<1>UW g59.0<16,16,1>UW g99.0<16,16,1>UW {align1};
+avg.sat (16) g36.0<1>UW g60.0<16,16,1>UW g36.0<16,16,1>UW {align1};
+avg.sat (16) g37.0<1>UW g61.0<16,16,1>UW g100.0<16,16,1>UW {align1};
+avg.sat (16) g38.0<1>UW g62.0<16,16,1>UW g38.0<16,16,1>UW {align1};
+avg.sat (16) g39.0<1>UW g63.0<16,16,1>UW g101.0<16,16,1>UW {align1};
+avg.sat (16) g40.0<1>UW g64.0<16,16,1>UW g40.0<16,16,1>UW {align1};
+avg.sat (16) g41.0<1>UW g65.0<16,16,1>UW g102.0<16,16,1>UW {align1};
+avg.sat (16) g42.0<1>UW g66.0<16,16,1>UW g42.0<16,16,1>UW {align1};
+avg.sat (16) g43.0<1>UW g67.0<16,16,1>UW g103.0<16,16,1>UW {align1};
+
+/*backward---UV---first vector */
+mov(1) g115.8<1>UD 0x007000fUD  { align1 };
+asr (2) g115.14<1>W g1.18<2,2,1>W 2W {align1};
+asr (2) g115.0<1>D g116.0<2,2,1>D 1D {align1};
+add (2) g115.0<1>D g115.0<2,2,1>D g115.14<2,2,1>W {align1};
+and (1) g115.4<1>UD g115.4<1,1,1>UD 0xFFFFFFFEUD {align1};
+and.nz (1) null g1.31<1,1,1>UB 0x2UW {align1};
+(f0) add (1) g115.4<1>UD g115.4<1,1,1>UD 1UD {align1};
+define(`surface_u',`8')
+define(`surface_v',`9')
+define(`mv1',`g1.18')
+define(`mv2',`g1.20')
+include(`motion_field_uv.g4i')
+mov (8) g44.0<1>UW g78.0<8,8,1>UW {align1};
+mov (8) g45.0<1>UW g79.0<8,8,1>UW {align1};
+mov (8) g46.0<1>UW g80.0<8,8,1>UW {align1};
+mov (8) g47.0<1>UW g81.0<8,8,1>UW {align1};
+mov (8) g48.0<1>UW g82.0<8,8,1>UW {align1};
+mov (8) g49.0<1>UW g83.0<8,8,1>UW {align1};
+mov (8) g50.0<1>UW g84.0<8,8,1>UW {align1};
+mov (8) g51.0<1>UW g85.0<8,8,1>UW {align1};
+
+/*backward---UV---second vector */
+asr (2) g115.14<1>W g1.26<2,2,1>W 2W {align1};
+asr (2) g115.0<1>D g116.0<2,2,1>D 1D {align1};
+add (2) g115.0<1>D g115.0<2,2,1>D g115.14<2,2,1>W {align1};
+and (1) g115.4<1>UD g115.4<1,1,1>UD 0xFFFFFFFEUD {align1};
+and.nz (1) null g1.31<1,1,1>UB 0x8UW {align1};
+(f0) add (1) g115.4<1>UD g115.4<1,1,1>UD 1UD {align1};
+define(`mv1',`g1.26')
+define(`mv2',`g1.28')
+include(`motion_field_uv.g4i')
+mov (8) g44.16<1>UW g78.0<8,8,1>UW {align1};
+mov (8) g45.16<1>UW g79.0<8,8,1>UW {align1};
+mov (8) g46.16<1>UW g80.0<8,8,1>UW {align1};
+mov (8) g47.16<1>UW g81.0<8,8,1>UW {align1};
+mov (8) g48.16<1>UW g82.0<8,8,1>UW {align1};
+mov (8) g49.16<1>UW g83.0<8,8,1>UW {align1};
+mov (8) g50.16<1>UW g84.0<8,8,1>UW {align1};
+mov (8) g51.16<1>UW g85.0<8,8,1>UW {align1};
+
+avg.sat (16) g44.0<1>UW g68.0<16,16,1>UW g44.0<16,16,1>UW {align1};
+avg.sat (16) g45.0<1>UW g69.0<16,16,1>UW g45.0<16,16,1>UW {align1};
+avg.sat (16) g46.0<1>UW g70.0<16,16,1>UW g46.0<16,16,1>UW {align1};
+avg.sat (16) g47.0<1>UW g71.0<16,16,1>UW g47.0<16,16,1>UW {align1};
+avg.sat (16) g48.0<1>UW g72.0<16,16,1>UW g48.0<16,16,1>UW {align1};
+avg.sat (16) g49.0<1>UW g73.0<16,16,1>UW g49.0<16,16,1>UW {align1};
+avg.sat (16) g50.0<1>UW g74.0<16,16,1>UW g50.0<16,16,1>UW {align1};
+avg.sat (16) g51.0<1>UW g75.0<16,16,1>UW g51.0<16,16,1>UW {align1};
+
+include(`addidct.g4i')
+
+//send (16) 0 acc0<1>UW g0<8,8,1>UW 
+//	thread_spawner(0, 0, 0) mlen 1 rlen 0 { align1 EOT};
diff --git a/src/xvmc/shader/mc/field_f_b.g4b b/src/xvmc/shader/mc/field_f_b.g4b
new file mode 100644
index 0000000..4a1eb4b
--- /dev/null
+++ b/src/xvmc/shader/mc/field_f_b.g4b
@@ -0,0 +1,2486 @@
+   { 0x00600001, 0x29800021, 0x008d0020, 0x00000000 },
+   { 0x02000005, 0x20000c3c, 0x00210040, 0x00000001 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x00000030 },
+   { 0x00000040, 0x20480c21, 0x00210988, 0x00000000 },
+   { 0x00800031, 0x20601c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x20801c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x20a01c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x20c01c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x20e01c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x21001c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x21201c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x21401c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x21601c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x21801c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x21a01c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x21c01c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x21e01c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x22001c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x22201c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x22401c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x22601c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x22801c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x22a01c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x22c01c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x22e01c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x23001c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x23201c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x23401c21, 0x00b10040, 0x04110203 },
+   { 0x02000005, 0x20002d3c, 0x0021098c, 0x00200020 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x00000008 },
+   { 0x00600001, 0x20600169, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x20800169, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x20a00169, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x20c00169, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x20e00169, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x21000169, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x21200169, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x21400169, 0x00000000, 0x00000000 },
+   { 0x02000005, 0x20002d3c, 0x0021002c, 0x00100010 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x00000008 },
+   { 0x00600001, 0x20700169, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x20900169, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x20b00169, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x20d00169, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x20f00169, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x21100169, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x21300169, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x21500169, 0x00000000, 0x00000000 },
+   { 0x02000005, 0x20002d3c, 0x0021002c, 0x00080008 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x00000008 },
+   { 0x00600001, 0x21600169, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x21800169, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x21a00169, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x21c00169, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x21e00169, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x22000169, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x22200169, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x22400169, 0x00000000, 0x00000000 },
+   { 0x02000005, 0x20002d3c, 0x0021002c, 0x00040004 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x00000008 },
+   { 0x00600001, 0x21700169, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x21900169, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x21b00169, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x21d00169, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x21f00169, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x22100169, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x22300169, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x22500169, 0x00000000, 0x00000000 },
+   { 0x02000005, 0x20002d3c, 0x0021002c, 0x00020002 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x00000004 },
+   { 0x00800001, 0x22600169, 0x00000000, 0x00000000 },
+   { 0x00800001, 0x22800169, 0x00000000, 0x00000000 },
+   { 0x00800001, 0x22a00169, 0x00000000, 0x00000000 },
+   { 0x00800001, 0x22c00169, 0x00000000, 0x00000000 },
+   { 0x02000005, 0x20002d3c, 0x0021002c, 0x00010001 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x00000004 },
+   { 0x00800001, 0x22e00169, 0x00000000, 0x00000000 },
+   { 0x00800001, 0x23000169, 0x00000000, 0x00000000 },
+   { 0x00800001, 0x23200169, 0x00000000, 0x00000000 },
+   { 0x00800001, 0x23400169, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x2e600021, 0x008d0020, 0x00000000 },
+   { 0x00600001, 0x2e800021, 0x008d0020, 0x00000000 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0007001f },
+   { 0x0020000c, 0x2e6e3dad, 0x0045002e, 0x00010001 },
+   { 0x00200040, 0x2e6034a5, 0x00450e80, 0x00450e6e },
+   { 0x00000005, 0x2e640c21, 0x00210e64, 0xfffffffe },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
+   { 0x02000005, 0x20002e3c, 0x0021003f, 0x00010001 },
+   { 0x00010040, 0x2e641ca5, 0x00210e64, 0x00000001 },
+   { 0x01000005, 0x20002d3c, 0x0021002e, 0x00010001 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x000000b1 },
+   { 0x01000005, 0x20002d3c, 0x00210030, 0x00010001 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x0000007d },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
+   { 0x00800031, 0x29c01d29, 0x008d0e60, 0x0411a004 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00800031, 0x2a001d29, 0x008d0e60, 0x0411a004 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00800031, 0x2a401d29, 0x008d0e60, 0x0411a004 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00800031, 0x2a801d29, 0x008d0e60, 0x0411a004 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0007001f },
+   { 0x00800031, 0x2ac01d29, 0x008d0e60, 0x0418a004 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
+   { 0x00800031, 0x2bc01d29, 0x008d0e60, 0x0411a004 },
+   { 0x00000005, 0x20580c21, 0x00210e60, 0x00000003 },
+   { 0x00000041, 0x20580c21, 0x00210058, 0x00000019 },
+   { 0x00000020, 0x34001400, 0x00001400, 0x00210058 },
+   { 0x00800040, 0x2c004629, 0x00b109c0, 0x00b10a00 },
+   { 0x00800040, 0x2c204629, 0x00b10a00, 0x00b10a40 },
+   { 0x00800040, 0x2c404629, 0x00b10a40, 0x00b10a80 },
+   { 0x00800040, 0x2c604629, 0x00b10a80, 0x00b10ac0 },
+   { 0x00800040, 0x2c804629, 0x00b10ac0, 0x00b10b00 },
+   { 0x00800040, 0x2ca04629, 0x00b10b00, 0x00b10b40 },
+   { 0x00800040, 0x2cc04629, 0x00b10b40, 0x00b10b80 },
+   { 0x00800040, 0x2ce04629, 0x00b10b80, 0x00b10bc0 },
+   { 0x00800040, 0x2c004529, 0x00b10c00, 0x00b109c1 },
+   { 0x00800040, 0x2c204529, 0x00b10c20, 0x00b10a01 },
+   { 0x00800040, 0x2c404529, 0x00b10c40, 0x00b10a41 },
+   { 0x00800040, 0x2c604529, 0x00b10c60, 0x00b10a81 },
+   { 0x00800040, 0x2c804529, 0x00b10c80, 0x00b10ac1 },
+   { 0x00800040, 0x2ca04529, 0x00b10ca0, 0x00b10b01 },
+   { 0x00800040, 0x2cc04529, 0x00b10cc0, 0x00b10b41 },
+   { 0x00800040, 0x2ce04529, 0x00b10ce0, 0x00b10b81 },
+   { 0x00800040, 0x2c004529, 0x00b10c00, 0x00b10a01 },
+   { 0x00800040, 0x2c204529, 0x00b10c20, 0x00b10a41 },
+   { 0x00800040, 0x2c404529, 0x00b10c40, 0x00b10a81 },
+   { 0x00800040, 0x2c604529, 0x00b10c60, 0x00b10ac1 },
+   { 0x00800040, 0x2c804529, 0x00b10c80, 0x00b10b01 },
+   { 0x00800040, 0x2ca04529, 0x00b10ca0, 0x00b10b41 },
+   { 0x00800040, 0x2cc04529, 0x00b10cc0, 0x00b10b81 },
+   { 0x00800040, 0x2ce04529, 0x00b10ce0, 0x00b10bc1 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x0000004a },
+   { 0x00800040, 0x2c004629, 0x00b109c1, 0x00b10a01 },
+   { 0x00800040, 0x2c204629, 0x00b10a01, 0x00b10a41 },
+   { 0x00800040, 0x2c404629, 0x00b10a41, 0x00b10a81 },
+   { 0x00800040, 0x2c604629, 0x00b10a81, 0x00b10ac1 },
+   { 0x00800040, 0x2c804629, 0x00b10ac1, 0x00b10b01 },
+   { 0x00800040, 0x2ca04629, 0x00b10b01, 0x00b10b41 },
+   { 0x00800040, 0x2cc04629, 0x00b10b41, 0x00b10b81 },
+   { 0x00800040, 0x2ce04629, 0x00b10b81, 0x00b10bc1 },
+   { 0x00800040, 0x2c004529, 0x00b10c00, 0x00b109c2 },
+   { 0x00800040, 0x2c204529, 0x00b10c20, 0x00b10a02 },
+   { 0x00800040, 0x2c404529, 0x00b10c40, 0x00b10a42 },
+   { 0x00800040, 0x2c604529, 0x00b10c60, 0x00b10a82 },
+   { 0x00800040, 0x2c804529, 0x00b10c80, 0x00b10ac2 },
+   { 0x00800040, 0x2ca04529, 0x00b10ca0, 0x00b10b02 },
+   { 0x00800040, 0x2cc04529, 0x00b10cc0, 0x00b10b42 },
+   { 0x00800040, 0x2ce04529, 0x00b10ce0, 0x00b10b82 },
+   { 0x00800040, 0x2c004529, 0x00b10c00, 0x00b10a02 },
+   { 0x00800040, 0x2c204529, 0x00b10c20, 0x00b10a42 },
+   { 0x00800040, 0x2c404529, 0x00b10c40, 0x00b10a82 },
+   { 0x00800040, 0x2c604529, 0x00b10c60, 0x00b10ac2 },
+   { 0x00800040, 0x2c804529, 0x00b10c80, 0x00b10b02 },
+   { 0x00800040, 0x2ca04529, 0x00b10ca0, 0x00b10b42 },
+   { 0x00800040, 0x2cc04529, 0x00b10cc0, 0x00b10b82 },
+   { 0x00800040, 0x2ce04529, 0x00b10ce0, 0x00b10bc2 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000031 },
+   { 0x00800040, 0x2c004629, 0x00b109c2, 0x00b10a02 },
+   { 0x00800040, 0x2c204629, 0x00b10a02, 0x00b10a42 },
+   { 0x00800040, 0x2c404629, 0x00b10a42, 0x00b10a82 },
+   { 0x00800040, 0x2c604629, 0x00b10a82, 0x00b10ac2 },
+   { 0x00800040, 0x2c804629, 0x00b10ac2, 0x00b10b02 },
+   { 0x00800040, 0x2ca04629, 0x00b10b02, 0x00b10b42 },
+   { 0x00800040, 0x2cc04629, 0x00b10b42, 0x00b10b82 },
+   { 0x00800040, 0x2ce04629, 0x00b10b82, 0x00b10bc2 },
+   { 0x00800040, 0x2c004529, 0x00b10c00, 0x00b109c3 },
+   { 0x00800040, 0x2c204529, 0x00b10c20, 0x00b10a03 },
+   { 0x00800040, 0x2c404529, 0x00b10c40, 0x00b10a43 },
+   { 0x00800040, 0x2c604529, 0x00b10c60, 0x00b10a83 },
+   { 0x00800040, 0x2c804529, 0x00b10c80, 0x00b10ac3 },
+   { 0x00800040, 0x2ca04529, 0x00b10ca0, 0x00b10b03 },
+   { 0x00800040, 0x2cc04529, 0x00b10cc0, 0x00b10b43 },
+   { 0x00800040, 0x2ce04529, 0x00b10ce0, 0x00b10b83 },
+   { 0x00800040, 0x2c004529, 0x00b10c00, 0x00b10a03 },
+   { 0x00800040, 0x2c204529, 0x00b10c20, 0x00b10a43 },
+   { 0x00800040, 0x2c404529, 0x00b10c40, 0x00b10a83 },
+   { 0x00800040, 0x2c604529, 0x00b10c60, 0x00b10ac3 },
+   { 0x00800040, 0x2c804529, 0x00b10c80, 0x00b10b03 },
+   { 0x00800040, 0x2ca04529, 0x00b10ca0, 0x00b10b43 },
+   { 0x00800040, 0x2cc04529, 0x00b10cc0, 0x00b10b83 },
+   { 0x00800040, 0x2ce04529, 0x00b10ce0, 0x00b10bc3 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000018 },
+   { 0x00800040, 0x2c004629, 0x00b109c3, 0x00b10a03 },
+   { 0x00800040, 0x2c204629, 0x00b10a03, 0x00b10a43 },
+   { 0x00800040, 0x2c404629, 0x00b10a43, 0x00b10a83 },
+   { 0x00800040, 0x2c604629, 0x00b10a83, 0x00b10ac3 },
+   { 0x00800040, 0x2c804629, 0x00b10ac3, 0x00b10b03 },
+   { 0x00800040, 0x2ca04629, 0x00b10b03, 0x00b10b43 },
+   { 0x00800040, 0x2cc04629, 0x00b10b43, 0x00b10b83 },
+   { 0x00800040, 0x2ce04629, 0x00b10b83, 0x00b10bc3 },
+   { 0x00800040, 0x2c004529, 0x00b10c00, 0x00b109c4 },
+   { 0x00800040, 0x2c204529, 0x00b10c20, 0x00b10a04 },
+   { 0x00800040, 0x2c404529, 0x00b10c40, 0x00b10a44 },
+   { 0x00800040, 0x2c604529, 0x00b10c60, 0x00b10a84 },
+   { 0x00800040, 0x2c804529, 0x00b10c80, 0x00b10ac4 },
+   { 0x00800040, 0x2ca04529, 0x00b10ca0, 0x00b10b04 },
+   { 0x00800040, 0x2cc04529, 0x00b10cc0, 0x00b10b44 },
+   { 0x00800040, 0x2ce04529, 0x00b10ce0, 0x00b10b84 },
+   { 0x00800040, 0x2c004529, 0x00b10c00, 0x00b10a04 },
+   { 0x00800040, 0x2c204529, 0x00b10c20, 0x00b10a44 },
+   { 0x00800040, 0x2c404529, 0x00b10c40, 0x00b10a84 },
+   { 0x00800040, 0x2c604529, 0x00b10c60, 0x00b10ac4 },
+   { 0x00800040, 0x2c804529, 0x00b10c80, 0x00b10b04 },
+   { 0x00800040, 0x2ca04529, 0x00b10ca0, 0x00b10b44 },
+   { 0x00800040, 0x2cc04529, 0x00b10cc0, 0x00b10b84 },
+   { 0x00800040, 0x2ce04529, 0x00b10ce0, 0x00b10bc4 },
+   { 0x00800008, 0x2c002d29, 0x00b10c00, 0x00020002 },
+   { 0x00800008, 0x2c202d29, 0x00b10c20, 0x00020002 },
+   { 0x00800008, 0x2c402d29, 0x00b10c40, 0x00020002 },
+   { 0x00800008, 0x2c602d29, 0x00b10c60, 0x00020002 },
+   { 0x00800008, 0x2c802d29, 0x00b10c80, 0x00020002 },
+   { 0x00800008, 0x2ca02d29, 0x00b10ca0, 0x00020002 },
+   { 0x00800008, 0x2cc02d29, 0x00b10cc0, 0x00020002 },
+   { 0x00800008, 0x2ce02d29, 0x00b10ce0, 0x00020002 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x0000009a },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
+   { 0x00800031, 0x29c01d29, 0x008d0e60, 0x0411a004 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00800031, 0x2a001d29, 0x008d0e60, 0x0411a004 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00800031, 0x2a401d29, 0x008d0e60, 0x0411a004 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00800031, 0x2a801d29, 0x008d0e60, 0x0411a004 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0007001f },
+   { 0x00800031, 0x2ac01d29, 0x008d0e60, 0x0418a004 },
+   { 0x00000005, 0x20580c21, 0x00210e60, 0x00000003 },
+   { 0x00000041, 0x20580c21, 0x00210058, 0x00000009 },
+   { 0x00000020, 0x34001400, 0x00001400, 0x00210058 },
+   { 0x80800042, 0x2c004629, 0x00b109c0, 0x00b109c1 },
+   { 0x80800042, 0x2c204629, 0x00b10a00, 0x00b10a01 },
+   { 0x80800042, 0x2c404629, 0x00b10a40, 0x00b10a41 },
+   { 0x80800042, 0x2c604629, 0x00b10a80, 0x00b10a81 },
+   { 0x80800042, 0x2c804629, 0x00b10ac0, 0x00b10ac1 },
+   { 0x80800042, 0x2ca04629, 0x00b10b00, 0x00b10b01 },
+   { 0x80800042, 0x2cc04629, 0x00b10b40, 0x00b10b41 },
+   { 0x80800042, 0x2ce04629, 0x00b10b80, 0x00b10b81 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x0000001a },
+   { 0x80800042, 0x2c004629, 0x00b109c1, 0x00b109c2 },
+   { 0x80800042, 0x2c204629, 0x00b10a01, 0x00b10a02 },
+   { 0x80800042, 0x2c404629, 0x00b10a41, 0x00b10a42 },
+   { 0x80800042, 0x2c604629, 0x00b10a81, 0x00b10a82 },
+   { 0x80800042, 0x2c804629, 0x00b10ac1, 0x00b10ac2 },
+   { 0x80800042, 0x2ca04629, 0x00b10b01, 0x00b10b02 },
+   { 0x80800042, 0x2cc04629, 0x00b10b41, 0x00b10b42 },
+   { 0x80800042, 0x2ce04629, 0x00b10b81, 0x00b10b82 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000011 },
+   { 0x80800042, 0x2c004629, 0x00b109c2, 0x00b109c3 },
+   { 0x80800042, 0x2c204629, 0x00b10a02, 0x00b10a03 },
+   { 0x80800042, 0x2c404629, 0x00b10a42, 0x00b10a43 },
+   { 0x80800042, 0x2c604629, 0x00b10a82, 0x00b10a83 },
+   { 0x80800042, 0x2c804629, 0x00b10ac2, 0x00b10ac3 },
+   { 0x80800042, 0x2ca04629, 0x00b10b02, 0x00b10b03 },
+   { 0x80800042, 0x2cc04629, 0x00b10b42, 0x00b10b43 },
+   { 0x80800042, 0x2ce04629, 0x00b10b82, 0x00b10b83 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000008 },
+   { 0x80800042, 0x2c004629, 0x00b109c3, 0x00b109c4 },
+   { 0x80800042, 0x2c204629, 0x00b10a03, 0x00b10a04 },
+   { 0x80800042, 0x2c404629, 0x00b10a43, 0x00b10a44 },
+   { 0x80800042, 0x2c604629, 0x00b10a83, 0x00b10a84 },
+   { 0x80800042, 0x2c804629, 0x00b10ac3, 0x00b10ac4 },
+   { 0x80800042, 0x2ca04629, 0x00b10b03, 0x00b10b04 },
+   { 0x80800042, 0x2cc04629, 0x00b10b43, 0x00b10b44 },
+   { 0x80800042, 0x2ce04629, 0x00b10b83, 0x00b10b84 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000068 },
+   { 0x01000005, 0x20002d3c, 0x00210030, 0x00010001 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x00000035 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
+   { 0x00800031, 0x29c01d29, 0x008d0e60, 0x0411a004 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00800031, 0x2a001d29, 0x008d0e60, 0x0411a004 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00800031, 0x2a401d29, 0x008d0e60, 0x0411a004 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00800031, 0x2a801d29, 0x008d0e60, 0x0411a004 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0007001f },
+   { 0x00800031, 0x2ac01d29, 0x008d0e60, 0x0418a004 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
+   { 0x00800031, 0x2bc01d29, 0x008d0e60, 0x0411a004 },
+   { 0x00000005, 0x20580c21, 0x00210e60, 0x00000003 },
+   { 0x00000041, 0x20580c21, 0x00210058, 0x00000009 },
+   { 0x00000020, 0x34001400, 0x00001400, 0x00210058 },
+   { 0x80800042, 0x2c004629, 0x00b109c0, 0x00b10a00 },
+   { 0x80800042, 0x2c204629, 0x00b10a00, 0x00b10a40 },
+   { 0x80800042, 0x2c404629, 0x00b10a40, 0x00b10a80 },
+   { 0x80800042, 0x2c604629, 0x00b10a80, 0x00b10ac0 },
+   { 0x80800042, 0x2c804629, 0x00b10ac0, 0x00b10b00 },
+   { 0x80800042, 0x2ca04629, 0x00b10b00, 0x00b10b40 },
+   { 0x80800042, 0x2cc04629, 0x00b10b40, 0x00b10b80 },
+   { 0x80800042, 0x2ce04629, 0x00b10b80, 0x00b10bc0 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x0000001a },
+   { 0x80800042, 0x2c004629, 0x00b109c1, 0x00b10a01 },
+   { 0x80800042, 0x2c204629, 0x00b10a01, 0x00b10a41 },
+   { 0x80800042, 0x2c404629, 0x00b10a41, 0x00b10a81 },
+   { 0x80800042, 0x2c604629, 0x00b10a81, 0x00b10ac1 },
+   { 0x80800042, 0x2c804629, 0x00b10ac1, 0x00b10b01 },
+   { 0x80800042, 0x2ca04629, 0x00b10b01, 0x00b10b41 },
+   { 0x80800042, 0x2cc04629, 0x00b10b41, 0x00b10b81 },
+   { 0x80800042, 0x2ce04629, 0x00b10b81, 0x00b10bc1 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000011 },
+   { 0x80800042, 0x2c004629, 0x00b109c2, 0x00b10a02 },
+   { 0x80800042, 0x2c204629, 0x00b10a02, 0x00b10a42 },
+   { 0x80800042, 0x2c404629, 0x00b10a42, 0x00b10a82 },
+   { 0x80800042, 0x2c604629, 0x00b10a82, 0x00b10ac2 },
+   { 0x80800042, 0x2c804629, 0x00b10ac2, 0x00b10b02 },
+   { 0x80800042, 0x2ca04629, 0x00b10b02, 0x00b10b42 },
+   { 0x80800042, 0x2cc04629, 0x00b10b42, 0x00b10b82 },
+   { 0x80800042, 0x2ce04629, 0x00b10b82, 0x00b10bc2 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000008 },
+   { 0x80800042, 0x2c004629, 0x00b109c3, 0x00b10a03 },
+   { 0x80800042, 0x2c204629, 0x00b10a03, 0x00b10a43 },
+   { 0x80800042, 0x2c404629, 0x00b10a43, 0x00b10a83 },
+   { 0x80800042, 0x2c604629, 0x00b10a83, 0x00b10ac3 },
+   { 0x80800042, 0x2c804629, 0x00b10ac3, 0x00b10b03 },
+   { 0x80800042, 0x2ca04629, 0x00b10b03, 0x00b10b43 },
+   { 0x80800042, 0x2cc04629, 0x00b10b43, 0x00b10b83 },
+   { 0x80800042, 0x2ce04629, 0x00b10b83, 0x00b10bc3 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000031 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
+   { 0x00800031, 0x29c01d29, 0x008d0e60, 0x0411a004 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00800031, 0x2a001d29, 0x008d0e60, 0x0411a004 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00800031, 0x2a401d29, 0x008d0e60, 0x0411a004 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00800031, 0x2a801d29, 0x008d0e60, 0x0411a004 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0007001f },
+   { 0x00800031, 0x2ac01d29, 0x008d0e60, 0x0418a004 },
+   { 0x00000005, 0x20580c21, 0x00210e60, 0x00000003 },
+   { 0x00000041, 0x20580c21, 0x00210058, 0x00000009 },
+   { 0x00000020, 0x34001400, 0x00001400, 0x00210058 },
+   { 0x00800001, 0x2c000229, 0x00b109c0, 0x00000000 },
+   { 0x00800001, 0x2c200229, 0x00b10a00, 0x00000000 },
+   { 0x00800001, 0x2c400229, 0x00b10a40, 0x00000000 },
+   { 0x00800001, 0x2c600229, 0x00b10a80, 0x00000000 },
+   { 0x00800001, 0x2c800229, 0x00b10ac0, 0x00000000 },
+   { 0x00800001, 0x2ca00229, 0x00b10b00, 0x00000000 },
+   { 0x00800001, 0x2cc00229, 0x00b10b40, 0x00000000 },
+   { 0x00800001, 0x2ce00229, 0x00b10b80, 0x00000000 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x0000001a },
+   { 0x00800001, 0x2c000229, 0x00b109c1, 0x00000000 },
+   { 0x00800001, 0x2c200229, 0x00b10a01, 0x00000000 },
+   { 0x00800001, 0x2c400229, 0x00b10a41, 0x00000000 },
+   { 0x00800001, 0x2c600229, 0x00b10a81, 0x00000000 },
+   { 0x00800001, 0x2c800229, 0x00b10ac1, 0x00000000 },
+   { 0x00800001, 0x2ca00229, 0x00b10b01, 0x00000000 },
+   { 0x00800001, 0x2cc00229, 0x00b10b41, 0x00000000 },
+   { 0x00800001, 0x2ce00229, 0x00b10b81, 0x00000000 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000011 },
+   { 0x00800001, 0x2c000229, 0x00b109c2, 0x00000000 },
+   { 0x00800001, 0x2c200229, 0x00b10a02, 0x00000000 },
+   { 0x00800001, 0x2c400229, 0x00b10a42, 0x00000000 },
+   { 0x00800001, 0x2c600229, 0x00b10a82, 0x00000000 },
+   { 0x00800001, 0x2c800229, 0x00b10ac2, 0x00000000 },
+   { 0x00800001, 0x2ca00229, 0x00b10b02, 0x00000000 },
+   { 0x00800001, 0x2cc00229, 0x00b10b42, 0x00000000 },
+   { 0x00800001, 0x2ce00229, 0x00b10b82, 0x00000000 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000008 },
+   { 0x00800001, 0x2c000229, 0x00b109c3, 0x00000000 },
+   { 0x00800001, 0x2c200229, 0x00b10a03, 0x00000000 },
+   { 0x00800001, 0x2c400229, 0x00b10a43, 0x00000000 },
+   { 0x00800001, 0x2c600229, 0x00b10a83, 0x00000000 },
+   { 0x00800001, 0x2c800229, 0x00b10ac3, 0x00000000 },
+   { 0x00800001, 0x2ca00229, 0x00b10b03, 0x00000000 },
+   { 0x00800001, 0x2cc00229, 0x00b10b43, 0x00000000 },
+   { 0x00800001, 0x2ce00229, 0x00b10b83, 0x00000000 },
+   { 0x00600001, 0x26800021, 0x008d0c00, 0x00000000 },
+   { 0x00600001, 0x26c00021, 0x008d0c20, 0x00000000 },
+   { 0x00600001, 0x27000021, 0x008d0c40, 0x00000000 },
+   { 0x00600001, 0x27400021, 0x008d0c60, 0x00000000 },
+   { 0x00600001, 0x27800021, 0x008d0c80, 0x00000000 },
+   { 0x00600001, 0x27c00021, 0x008d0ca0, 0x00000000 },
+   { 0x00600001, 0x28000021, 0x008d0cc0, 0x00000000 },
+   { 0x00600001, 0x28400021, 0x008d0ce0, 0x00000000 },
+   { 0x0020000c, 0x2e6e3dad, 0x00450036, 0x00010001 },
+   { 0x00200040, 0x2e6034a5, 0x00450e80, 0x00450e6e },
+   { 0x00000005, 0x2e640c21, 0x00210e64, 0xfffffffe },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
+   { 0x02000005, 0x20000e3c, 0x0021003f, 0x00000004 },
+   { 0x00010040, 0x2e641ca5, 0x00210e64, 0x00000001 },
+   { 0x01000005, 0x20002d3c, 0x00210036, 0x00010001 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x000000b1 },
+   { 0x01000005, 0x20002d3c, 0x00210038, 0x00010001 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x0000007d },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
+   { 0x00800031, 0x29c01d29, 0x008d0e60, 0x0411a004 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00800031, 0x2a001d29, 0x008d0e60, 0x0411a004 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00800031, 0x2a401d29, 0x008d0e60, 0x0411a004 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00800031, 0x2a801d29, 0x008d0e60, 0x0411a004 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0007001f },
+   { 0x00800031, 0x2ac01d29, 0x008d0e60, 0x0418a004 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
+   { 0x00800031, 0x2bc01d29, 0x008d0e60, 0x0411a004 },
+   { 0x00000005, 0x20580c21, 0x00210e60, 0x00000003 },
+   { 0x00000041, 0x20580c21, 0x00210058, 0x00000019 },
+   { 0x00000020, 0x34001400, 0x00001400, 0x00210058 },
+   { 0x00800040, 0x2c004629, 0x00b109c0, 0x00b10a00 },
+   { 0x00800040, 0x2c204629, 0x00b10a00, 0x00b10a40 },
+   { 0x00800040, 0x2c404629, 0x00b10a40, 0x00b10a80 },
+   { 0x00800040, 0x2c604629, 0x00b10a80, 0x00b10ac0 },
+   { 0x00800040, 0x2c804629, 0x00b10ac0, 0x00b10b00 },
+   { 0x00800040, 0x2ca04629, 0x00b10b00, 0x00b10b40 },
+   { 0x00800040, 0x2cc04629, 0x00b10b40, 0x00b10b80 },
+   { 0x00800040, 0x2ce04629, 0x00b10b80, 0x00b10bc0 },
+   { 0x00800040, 0x2c004529, 0x00b10c00, 0x00b109c1 },
+   { 0x00800040, 0x2c204529, 0x00b10c20, 0x00b10a01 },
+   { 0x00800040, 0x2c404529, 0x00b10c40, 0x00b10a41 },
+   { 0x00800040, 0x2c604529, 0x00b10c60, 0x00b10a81 },
+   { 0x00800040, 0x2c804529, 0x00b10c80, 0x00b10ac1 },
+   { 0x00800040, 0x2ca04529, 0x00b10ca0, 0x00b10b01 },
+   { 0x00800040, 0x2cc04529, 0x00b10cc0, 0x00b10b41 },
+   { 0x00800040, 0x2ce04529, 0x00b10ce0, 0x00b10b81 },
+   { 0x00800040, 0x2c004529, 0x00b10c00, 0x00b10a01 },
+   { 0x00800040, 0x2c204529, 0x00b10c20, 0x00b10a41 },
+   { 0x00800040, 0x2c404529, 0x00b10c40, 0x00b10a81 },
+   { 0x00800040, 0x2c604529, 0x00b10c60, 0x00b10ac1 },
+   { 0x00800040, 0x2c804529, 0x00b10c80, 0x00b10b01 },
+   { 0x00800040, 0x2ca04529, 0x00b10ca0, 0x00b10b41 },
+   { 0x00800040, 0x2cc04529, 0x00b10cc0, 0x00b10b81 },
+   { 0x00800040, 0x2ce04529, 0x00b10ce0, 0x00b10bc1 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x0000004a },
+   { 0x00800040, 0x2c004629, 0x00b109c1, 0x00b10a01 },
+   { 0x00800040, 0x2c204629, 0x00b10a01, 0x00b10a41 },
+   { 0x00800040, 0x2c404629, 0x00b10a41, 0x00b10a81 },
+   { 0x00800040, 0x2c604629, 0x00b10a81, 0x00b10ac1 },
+   { 0x00800040, 0x2c804629, 0x00b10ac1, 0x00b10b01 },
+   { 0x00800040, 0x2ca04629, 0x00b10b01, 0x00b10b41 },
+   { 0x00800040, 0x2cc04629, 0x00b10b41, 0x00b10b81 },
+   { 0x00800040, 0x2ce04629, 0x00b10b81, 0x00b10bc1 },
+   { 0x00800040, 0x2c004529, 0x00b10c00, 0x00b109c2 },
+   { 0x00800040, 0x2c204529, 0x00b10c20, 0x00b10a02 },
+   { 0x00800040, 0x2c404529, 0x00b10c40, 0x00b10a42 },
+   { 0x00800040, 0x2c604529, 0x00b10c60, 0x00b10a82 },
+   { 0x00800040, 0x2c804529, 0x00b10c80, 0x00b10ac2 },
+   { 0x00800040, 0x2ca04529, 0x00b10ca0, 0x00b10b02 },
+   { 0x00800040, 0x2cc04529, 0x00b10cc0, 0x00b10b42 },
+   { 0x00800040, 0x2ce04529, 0x00b10ce0, 0x00b10b82 },
+   { 0x00800040, 0x2c004529, 0x00b10c00, 0x00b10a02 },
+   { 0x00800040, 0x2c204529, 0x00b10c20, 0x00b10a42 },
+   { 0x00800040, 0x2c404529, 0x00b10c40, 0x00b10a82 },
+   { 0x00800040, 0x2c604529, 0x00b10c60, 0x00b10ac2 },
+   { 0x00800040, 0x2c804529, 0x00b10c80, 0x00b10b02 },
+   { 0x00800040, 0x2ca04529, 0x00b10ca0, 0x00b10b42 },
+   { 0x00800040, 0x2cc04529, 0x00b10cc0, 0x00b10b82 },
+   { 0x00800040, 0x2ce04529, 0x00b10ce0, 0x00b10bc2 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000031 },
+   { 0x00800040, 0x2c004629, 0x00b109c2, 0x00b10a02 },
+   { 0x00800040, 0x2c204629, 0x00b10a02, 0x00b10a42 },
+   { 0x00800040, 0x2c404629, 0x00b10a42, 0x00b10a82 },
+   { 0x00800040, 0x2c604629, 0x00b10a82, 0x00b10ac2 },
+   { 0x00800040, 0x2c804629, 0x00b10ac2, 0x00b10b02 },
+   { 0x00800040, 0x2ca04629, 0x00b10b02, 0x00b10b42 },
+   { 0x00800040, 0x2cc04629, 0x00b10b42, 0x00b10b82 },
+   { 0x00800040, 0x2ce04629, 0x00b10b82, 0x00b10bc2 },
+   { 0x00800040, 0x2c004529, 0x00b10c00, 0x00b109c3 },
+   { 0x00800040, 0x2c204529, 0x00b10c20, 0x00b10a03 },
+   { 0x00800040, 0x2c404529, 0x00b10c40, 0x00b10a43 },
+   { 0x00800040, 0x2c604529, 0x00b10c60, 0x00b10a83 },
+   { 0x00800040, 0x2c804529, 0x00b10c80, 0x00b10ac3 },
+   { 0x00800040, 0x2ca04529, 0x00b10ca0, 0x00b10b03 },
+   { 0x00800040, 0x2cc04529, 0x00b10cc0, 0x00b10b43 },
+   { 0x00800040, 0x2ce04529, 0x00b10ce0, 0x00b10b83 },
+   { 0x00800040, 0x2c004529, 0x00b10c00, 0x00b10a03 },
+   { 0x00800040, 0x2c204529, 0x00b10c20, 0x00b10a43 },
+   { 0x00800040, 0x2c404529, 0x00b10c40, 0x00b10a83 },
+   { 0x00800040, 0x2c604529, 0x00b10c60, 0x00b10ac3 },
+   { 0x00800040, 0x2c804529, 0x00b10c80, 0x00b10b03 },
+   { 0x00800040, 0x2ca04529, 0x00b10ca0, 0x00b10b43 },
+   { 0x00800040, 0x2cc04529, 0x00b10cc0, 0x00b10b83 },
+   { 0x00800040, 0x2ce04529, 0x00b10ce0, 0x00b10bc3 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000018 },
+   { 0x00800040, 0x2c004629, 0x00b109c3, 0x00b10a03 },
+   { 0x00800040, 0x2c204629, 0x00b10a03, 0x00b10a43 },
+   { 0x00800040, 0x2c404629, 0x00b10a43, 0x00b10a83 },
+   { 0x00800040, 0x2c604629, 0x00b10a83, 0x00b10ac3 },
+   { 0x00800040, 0x2c804629, 0x00b10ac3, 0x00b10b03 },
+   { 0x00800040, 0x2ca04629, 0x00b10b03, 0x00b10b43 },
+   { 0x00800040, 0x2cc04629, 0x00b10b43, 0x00b10b83 },
+   { 0x00800040, 0x2ce04629, 0x00b10b83, 0x00b10bc3 },
+   { 0x00800040, 0x2c004529, 0x00b10c00, 0x00b109c4 },
+   { 0x00800040, 0x2c204529, 0x00b10c20, 0x00b10a04 },
+   { 0x00800040, 0x2c404529, 0x00b10c40, 0x00b10a44 },
+   { 0x00800040, 0x2c604529, 0x00b10c60, 0x00b10a84 },
+   { 0x00800040, 0x2c804529, 0x00b10c80, 0x00b10ac4 },
+   { 0x00800040, 0x2ca04529, 0x00b10ca0, 0x00b10b04 },
+   { 0x00800040, 0x2cc04529, 0x00b10cc0, 0x00b10b44 },
+   { 0x00800040, 0x2ce04529, 0x00b10ce0, 0x00b10b84 },
+   { 0x00800040, 0x2c004529, 0x00b10c00, 0x00b10a04 },
+   { 0x00800040, 0x2c204529, 0x00b10c20, 0x00b10a44 },
+   { 0x00800040, 0x2c404529, 0x00b10c40, 0x00b10a84 },
+   { 0x00800040, 0x2c604529, 0x00b10c60, 0x00b10ac4 },
+   { 0x00800040, 0x2c804529, 0x00b10c80, 0x00b10b04 },
+   { 0x00800040, 0x2ca04529, 0x00b10ca0, 0x00b10b44 },
+   { 0x00800040, 0x2cc04529, 0x00b10cc0, 0x00b10b84 },
+   { 0x00800040, 0x2ce04529, 0x00b10ce0, 0x00b10bc4 },
+   { 0x00800008, 0x2c002d29, 0x00b10c00, 0x00020002 },
+   { 0x00800008, 0x2c202d29, 0x00b10c20, 0x00020002 },
+   { 0x00800008, 0x2c402d29, 0x00b10c40, 0x00020002 },
+   { 0x00800008, 0x2c602d29, 0x00b10c60, 0x00020002 },
+   { 0x00800008, 0x2c802d29, 0x00b10c80, 0x00020002 },
+   { 0x00800008, 0x2ca02d29, 0x00b10ca0, 0x00020002 },
+   { 0x00800008, 0x2cc02d29, 0x00b10cc0, 0x00020002 },
+   { 0x00800008, 0x2ce02d29, 0x00b10ce0, 0x00020002 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x0000009a },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
+   { 0x00800031, 0x29c01d29, 0x008d0e60, 0x0411a004 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00800031, 0x2a001d29, 0x008d0e60, 0x0411a004 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00800031, 0x2a401d29, 0x008d0e60, 0x0411a004 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00800031, 0x2a801d29, 0x008d0e60, 0x0411a004 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0007001f },
+   { 0x00800031, 0x2ac01d29, 0x008d0e60, 0x0418a004 },
+   { 0x00000005, 0x20580c21, 0x00210e60, 0x00000003 },
+   { 0x00000041, 0x20580c21, 0x00210058, 0x00000009 },
+   { 0x00000020, 0x34001400, 0x00001400, 0x00210058 },
+   { 0x80800042, 0x2c004629, 0x00b109c0, 0x00b109c1 },
+   { 0x80800042, 0x2c204629, 0x00b10a00, 0x00b10a01 },
+   { 0x80800042, 0x2c404629, 0x00b10a40, 0x00b10a41 },
+   { 0x80800042, 0x2c604629, 0x00b10a80, 0x00b10a81 },
+   { 0x80800042, 0x2c804629, 0x00b10ac0, 0x00b10ac1 },
+   { 0x80800042, 0x2ca04629, 0x00b10b00, 0x00b10b01 },
+   { 0x80800042, 0x2cc04629, 0x00b10b40, 0x00b10b41 },
+   { 0x80800042, 0x2ce04629, 0x00b10b80, 0x00b10b81 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x0000001a },
+   { 0x80800042, 0x2c004629, 0x00b109c1, 0x00b109c2 },
+   { 0x80800042, 0x2c204629, 0x00b10a01, 0x00b10a02 },
+   { 0x80800042, 0x2c404629, 0x00b10a41, 0x00b10a42 },
+   { 0x80800042, 0x2c604629, 0x00b10a81, 0x00b10a82 },
+   { 0x80800042, 0x2c804629, 0x00b10ac1, 0x00b10ac2 },
+   { 0x80800042, 0x2ca04629, 0x00b10b01, 0x00b10b02 },
+   { 0x80800042, 0x2cc04629, 0x00b10b41, 0x00b10b42 },
+   { 0x80800042, 0x2ce04629, 0x00b10b81, 0x00b10b82 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000011 },
+   { 0x80800042, 0x2c004629, 0x00b109c2, 0x00b109c3 },
+   { 0x80800042, 0x2c204629, 0x00b10a02, 0x00b10a03 },
+   { 0x80800042, 0x2c404629, 0x00b10a42, 0x00b10a43 },
+   { 0x80800042, 0x2c604629, 0x00b10a82, 0x00b10a83 },
+   { 0x80800042, 0x2c804629, 0x00b10ac2, 0x00b10ac3 },
+   { 0x80800042, 0x2ca04629, 0x00b10b02, 0x00b10b03 },
+   { 0x80800042, 0x2cc04629, 0x00b10b42, 0x00b10b43 },
+   { 0x80800042, 0x2ce04629, 0x00b10b82, 0x00b10b83 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000008 },
+   { 0x80800042, 0x2c004629, 0x00b109c3, 0x00b109c4 },
+   { 0x80800042, 0x2c204629, 0x00b10a03, 0x00b10a04 },
+   { 0x80800042, 0x2c404629, 0x00b10a43, 0x00b10a44 },
+   { 0x80800042, 0x2c604629, 0x00b10a83, 0x00b10a84 },
+   { 0x80800042, 0x2c804629, 0x00b10ac3, 0x00b10ac4 },
+   { 0x80800042, 0x2ca04629, 0x00b10b03, 0x00b10b04 },
+   { 0x80800042, 0x2cc04629, 0x00b10b43, 0x00b10b44 },
+   { 0x80800042, 0x2ce04629, 0x00b10b83, 0x00b10b84 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000068 },
+   { 0x01000005, 0x20002d3c, 0x00210038, 0x00010001 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x00000035 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
+   { 0x00800031, 0x29c01d29, 0x008d0e60, 0x0411a004 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00800031, 0x2a001d29, 0x008d0e60, 0x0411a004 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00800031, 0x2a401d29, 0x008d0e60, 0x0411a004 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00800031, 0x2a801d29, 0x008d0e60, 0x0411a004 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0007001f },
+   { 0x00800031, 0x2ac01d29, 0x008d0e60, 0x0418a004 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
+   { 0x00800031, 0x2bc01d29, 0x008d0e60, 0x0411a004 },
+   { 0x00000005, 0x20580c21, 0x00210e60, 0x00000003 },
+   { 0x00000041, 0x20580c21, 0x00210058, 0x00000009 },
+   { 0x00000020, 0x34001400, 0x00001400, 0x00210058 },
+   { 0x80800042, 0x2c004629, 0x00b109c0, 0x00b10a00 },
+   { 0x80800042, 0x2c204629, 0x00b10a00, 0x00b10a40 },
+   { 0x80800042, 0x2c404629, 0x00b10a40, 0x00b10a80 },
+   { 0x80800042, 0x2c604629, 0x00b10a80, 0x00b10ac0 },
+   { 0x80800042, 0x2c804629, 0x00b10ac0, 0x00b10b00 },
+   { 0x80800042, 0x2ca04629, 0x00b10b00, 0x00b10b40 },
+   { 0x80800042, 0x2cc04629, 0x00b10b40, 0x00b10b80 },
+   { 0x80800042, 0x2ce04629, 0x00b10b80, 0x00b10bc0 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x0000001a },
+   { 0x80800042, 0x2c004629, 0x00b109c1, 0x00b10a01 },
+   { 0x80800042, 0x2c204629, 0x00b10a01, 0x00b10a41 },
+   { 0x80800042, 0x2c404629, 0x00b10a41, 0x00b10a81 },
+   { 0x80800042, 0x2c604629, 0x00b10a81, 0x00b10ac1 },
+   { 0x80800042, 0x2c804629, 0x00b10ac1, 0x00b10b01 },
+   { 0x80800042, 0x2ca04629, 0x00b10b01, 0x00b10b41 },
+   { 0x80800042, 0x2cc04629, 0x00b10b41, 0x00b10b81 },
+   { 0x80800042, 0x2ce04629, 0x00b10b81, 0x00b10bc1 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000011 },
+   { 0x80800042, 0x2c004629, 0x00b109c2, 0x00b10a02 },
+   { 0x80800042, 0x2c204629, 0x00b10a02, 0x00b10a42 },
+   { 0x80800042, 0x2c404629, 0x00b10a42, 0x00b10a82 },
+   { 0x80800042, 0x2c604629, 0x00b10a82, 0x00b10ac2 },
+   { 0x80800042, 0x2c804629, 0x00b10ac2, 0x00b10b02 },
+   { 0x80800042, 0x2ca04629, 0x00b10b02, 0x00b10b42 },
+   { 0x80800042, 0x2cc04629, 0x00b10b42, 0x00b10b82 },
+   { 0x80800042, 0x2ce04629, 0x00b10b82, 0x00b10bc2 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000008 },
+   { 0x80800042, 0x2c004629, 0x00b109c3, 0x00b10a03 },
+   { 0x80800042, 0x2c204629, 0x00b10a03, 0x00b10a43 },
+   { 0x80800042, 0x2c404629, 0x00b10a43, 0x00b10a83 },
+   { 0x80800042, 0x2c604629, 0x00b10a83, 0x00b10ac3 },
+   { 0x80800042, 0x2c804629, 0x00b10ac3, 0x00b10b03 },
+   { 0x80800042, 0x2ca04629, 0x00b10b03, 0x00b10b43 },
+   { 0x80800042, 0x2cc04629, 0x00b10b43, 0x00b10b83 },
+   { 0x80800042, 0x2ce04629, 0x00b10b83, 0x00b10bc3 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000031 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
+   { 0x00800031, 0x29c01d29, 0x008d0e60, 0x0411a004 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00800031, 0x2a001d29, 0x008d0e60, 0x0411a004 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00800031, 0x2a401d29, 0x008d0e60, 0x0411a004 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00800031, 0x2a801d29, 0x008d0e60, 0x0411a004 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0007001f },
+   { 0x00800031, 0x2ac01d29, 0x008d0e60, 0x0418a004 },
+   { 0x00000005, 0x20580c21, 0x00210e60, 0x00000003 },
+   { 0x00000041, 0x20580c21, 0x00210058, 0x00000009 },
+   { 0x00000020, 0x34001400, 0x00001400, 0x00210058 },
+   { 0x00800001, 0x2c000229, 0x00b109c0, 0x00000000 },
+   { 0x00800001, 0x2c200229, 0x00b10a00, 0x00000000 },
+   { 0x00800001, 0x2c400229, 0x00b10a40, 0x00000000 },
+   { 0x00800001, 0x2c600229, 0x00b10a80, 0x00000000 },
+   { 0x00800001, 0x2c800229, 0x00b10ac0, 0x00000000 },
+   { 0x00800001, 0x2ca00229, 0x00b10b00, 0x00000000 },
+   { 0x00800001, 0x2cc00229, 0x00b10b40, 0x00000000 },
+   { 0x00800001, 0x2ce00229, 0x00b10b80, 0x00000000 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x0000001a },
+   { 0x00800001, 0x2c000229, 0x00b109c1, 0x00000000 },
+   { 0x00800001, 0x2c200229, 0x00b10a01, 0x00000000 },
+   { 0x00800001, 0x2c400229, 0x00b10a41, 0x00000000 },
+   { 0x00800001, 0x2c600229, 0x00b10a81, 0x00000000 },
+   { 0x00800001, 0x2c800229, 0x00b10ac1, 0x00000000 },
+   { 0x00800001, 0x2ca00229, 0x00b10b01, 0x00000000 },
+   { 0x00800001, 0x2cc00229, 0x00b10b41, 0x00000000 },
+   { 0x00800001, 0x2ce00229, 0x00b10b81, 0x00000000 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000011 },
+   { 0x00800001, 0x2c000229, 0x00b109c2, 0x00000000 },
+   { 0x00800001, 0x2c200229, 0x00b10a02, 0x00000000 },
+   { 0x00800001, 0x2c400229, 0x00b10a42, 0x00000000 },
+   { 0x00800001, 0x2c600229, 0x00b10a82, 0x00000000 },
+   { 0x00800001, 0x2c800229, 0x00b10ac2, 0x00000000 },
+   { 0x00800001, 0x2ca00229, 0x00b10b02, 0x00000000 },
+   { 0x00800001, 0x2cc00229, 0x00b10b42, 0x00000000 },
+   { 0x00800001, 0x2ce00229, 0x00b10b82, 0x00000000 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000008 },
+   { 0x00800001, 0x2c000229, 0x00b109c3, 0x00000000 },
+   { 0x00800001, 0x2c200229, 0x00b10a03, 0x00000000 },
+   { 0x00800001, 0x2c400229, 0x00b10a43, 0x00000000 },
+   { 0x00800001, 0x2c600229, 0x00b10a83, 0x00000000 },
+   { 0x00800001, 0x2c800229, 0x00b10ac3, 0x00000000 },
+   { 0x00800001, 0x2ca00229, 0x00b10b03, 0x00000000 },
+   { 0x00800001, 0x2cc00229, 0x00b10b43, 0x00000000 },
+   { 0x00800001, 0x2ce00229, 0x00b10b83, 0x00000000 },
+   { 0x00600001, 0x26a00021, 0x008d0c00, 0x00000000 },
+   { 0x00600001, 0x26e00021, 0x008d0c20, 0x00000000 },
+   { 0x00600001, 0x27200021, 0x008d0c40, 0x00000000 },
+   { 0x00600001, 0x27600021, 0x008d0c60, 0x00000000 },
+   { 0x00600001, 0x27a00021, 0x008d0c80, 0x00000000 },
+   { 0x00600001, 0x27e00021, 0x008d0ca0, 0x00000000 },
+   { 0x00600001, 0x28200021, 0x008d0cc0, 0x00000000 },
+   { 0x00600001, 0x28600021, 0x008d0ce0, 0x00000000 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0007000f },
+   { 0x0020000c, 0x2e6e3dad, 0x0045002e, 0x00020002 },
+   { 0x0020000c, 0x2e601ca5, 0x00450e80, 0x00000001 },
+   { 0x00200040, 0x2e6034a5, 0x00450e60, 0x00450e6e },
+   { 0x00000005, 0x2e640c21, 0x00210e64, 0xfffffffe },
+   { 0x02000005, 0x20002e3c, 0x0021003f, 0x00010001 },
+   { 0x00010040, 0x2e640c21, 0x00210e64, 0x00000001 },
+   { 0x01000005, 0x20002d3c, 0x0021002e, 0x00020002 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x000000a2 },
+   { 0x01000005, 0x20002d3c, 0x00210030, 0x00020002 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x00000076 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0007000f },
+   { 0x00800031, 0x2ac01d29, 0x00ad0e60, 0x0414a005 },
+   { 0x00800031, 0x2b601d29, 0x00ad0e60, 0x0414a006 },
+   { 0x00000005, 0x20580c21, 0x00210e60, 0x00000003 },
+   { 0x00000041, 0x20580c21, 0x00210058, 0x00000019 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0001000f },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 },
+   { 0x00800031, 0x2b401d29, 0x00ad0e60, 0x0411a005 },
+   { 0x00800031, 0x2be01d29, 0x00ad0e60, 0x0411a006 },
+   { 0x00000020, 0x34001400, 0x00001400, 0x00210058 },
+   { 0x00800040, 0x29c04629, 0x00ad0ac0, 0x00ad0ae0 },
+   { 0x00800040, 0x29e04629, 0x00ad0ae0, 0x00ad0b00 },
+   { 0x00800040, 0x2a004629, 0x00ad0b00, 0x00ad0b20 },
+   { 0x00800040, 0x2a204629, 0x00ad0b20, 0x00ad0b40 },
+   { 0x00800040, 0x29c04529, 0x00ad09c0, 0x00ad0ac1 },
+   { 0x00800040, 0x29e04529, 0x00ad09e0, 0x00ad0ae1 },
+   { 0x00800040, 0x2a004529, 0x00ad0a00, 0x00ad0b01 },
+   { 0x00800040, 0x2a204529, 0x00ad0a20, 0x00ad0b21 },
+   { 0x00800040, 0x29c04529, 0x00ad09c0, 0x00ad0ae1 },
+   { 0x00800040, 0x29e04529, 0x00ad09e0, 0x00ad0b01 },
+   { 0x00800040, 0x2a004529, 0x00ad0a00, 0x00ad0b21 },
+   { 0x00800040, 0x2a204529, 0x00ad0a20, 0x00ad0b41 },
+   { 0x00800040, 0x2a404629, 0x00ad0b60, 0x00ad0b80 },
+   { 0x00800040, 0x2a604629, 0x00ad0b80, 0x00ad0ba0 },
+   { 0x00800040, 0x2a804629, 0x00ad0ba0, 0x00ad0bc0 },
+   { 0x00800040, 0x2aa04629, 0x00ad0bc0, 0x00ad0be0 },
+   { 0x00800040, 0x2a404529, 0x00ad0a40, 0x00ad0b61 },
+   { 0x00800040, 0x2a604529, 0x00ad0a60, 0x00ad0b81 },
+   { 0x00800040, 0x2a804529, 0x00ad0a80, 0x00ad0ba1 },
+   { 0x00800040, 0x2aa04529, 0x00ad0aa0, 0x00ad0bc1 },
+   { 0x00800040, 0x2a404529, 0x00ad0a40, 0x00ad0b81 },
+   { 0x00800040, 0x2a604529, 0x00ad0a60, 0x00ad0ba1 },
+   { 0x00800040, 0x2a804529, 0x00ad0a80, 0x00ad0bc1 },
+   { 0x00800040, 0x2aa04529, 0x00ad0aa0, 0x00ad0be1 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x0000004a },
+   { 0x00800040, 0x29c04629, 0x00ad0ac1, 0x00ad0ae1 },
+   { 0x00800040, 0x29e04629, 0x00ad0ae1, 0x00ad0b01 },
+   { 0x00800040, 0x2a004629, 0x00ad0b01, 0x00ad0b21 },
+   { 0x00800040, 0x2a204629, 0x00ad0b21, 0x00ad0b41 },
+   { 0x00800040, 0x29c04529, 0x00ad09c0, 0x00ad0ac2 },
+   { 0x00800040, 0x29e04529, 0x00ad09e0, 0x00ad0ae2 },
+   { 0x00800040, 0x2a004529, 0x00ad0a00, 0x00ad0b02 },
+   { 0x00800040, 0x2a204529, 0x00ad0a20, 0x00ad0b22 },
+   { 0x00800040, 0x29c04529, 0x00ad09c0, 0x00ad0ae2 },
+   { 0x00800040, 0x29e04529, 0x00ad09e0, 0x00ad0b02 },
+   { 0x00800040, 0x2a004529, 0x00ad0a00, 0x00ad0b22 },
+   { 0x00800040, 0x2a204529, 0x00ad0a20, 0x00ad0b42 },
+   { 0x00800040, 0x2a404629, 0x00ad0b61, 0x00ad0b81 },
+   { 0x00800040, 0x2a604629, 0x00ad0b81, 0x00ad0ba1 },
+   { 0x00800040, 0x2a804629, 0x00ad0ba1, 0x00ad0bc1 },
+   { 0x00800040, 0x2aa04629, 0x00ad0bc1, 0x00ad0be1 },
+   { 0x00800040, 0x2a404529, 0x00ad0a40, 0x00ad0b62 },
+   { 0x00800040, 0x2a604529, 0x00ad0a60, 0x00ad0b82 },
+   { 0x00800040, 0x2a804529, 0x00ad0a80, 0x00ad0ba2 },
+   { 0x00800040, 0x2aa04529, 0x00ad0aa0, 0x00ad0bc2 },
+   { 0x00800040, 0x2a404529, 0x00ad0a40, 0x00ad0b82 },
+   { 0x00800040, 0x2a604529, 0x00ad0a60, 0x00ad0ba2 },
+   { 0x00800040, 0x2a804529, 0x00ad0a80, 0x00ad0bc2 },
+   { 0x00800040, 0x2aa04529, 0x00ad0aa0, 0x00ad0be2 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000031 },
+   { 0x00800040, 0x29c04629, 0x00ad0ac2, 0x00ad0ae2 },
+   { 0x00800040, 0x29e04629, 0x00ad0ae2, 0x00ad0b02 },
+   { 0x00800040, 0x2a004629, 0x00ad0b02, 0x00ad0b22 },
+   { 0x00800040, 0x2a204629, 0x00ad0b22, 0x00ad0b42 },
+   { 0x00800040, 0x29c04529, 0x00ad09c0, 0x00ad0ac3 },
+   { 0x00800040, 0x29e04529, 0x00ad09e0, 0x00ad0ae3 },
+   { 0x00800040, 0x2a004529, 0x00ad0a00, 0x00ad0b03 },
+   { 0x00800040, 0x2a204529, 0x00ad0a20, 0x00ad0b23 },
+   { 0x00800040, 0x29c04529, 0x00ad09c0, 0x00ad0ae3 },
+   { 0x00800040, 0x29e04529, 0x00ad09e0, 0x00ad0b03 },
+   { 0x00800040, 0x2a004529, 0x00ad0a00, 0x00ad0b23 },
+   { 0x00800040, 0x2a204529, 0x00ad0a20, 0x00ad0b43 },
+   { 0x00800040, 0x2a404629, 0x00ad0b62, 0x00ad0b82 },
+   { 0x00800040, 0x2a604629, 0x00ad0b82, 0x00ad0ba2 },
+   { 0x00800040, 0x2a804629, 0x00ad0ba2, 0x00ad0bc2 },
+   { 0x00800040, 0x2aa04629, 0x00ad0bc2, 0x00ad0be2 },
+   { 0x00800040, 0x2a404529, 0x00ad0a40, 0x00ad0b63 },
+   { 0x00800040, 0x2a604529, 0x00ad0a60, 0x00ad0b83 },
+   { 0x00800040, 0x2a804529, 0x00ad0a80, 0x00ad0ba3 },
+   { 0x00800040, 0x2aa04529, 0x00ad0aa0, 0x00ad0bc3 },
+   { 0x00800040, 0x2a404529, 0x00ad0a40, 0x00ad0b83 },
+   { 0x00800040, 0x2a604529, 0x00ad0a60, 0x00ad0ba3 },
+   { 0x00800040, 0x2a804529, 0x00ad0a80, 0x00ad0bc3 },
+   { 0x00800040, 0x2aa04529, 0x00ad0aa0, 0x00ad0be3 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000018 },
+   { 0x00800040, 0x29c04629, 0x00ad0ac3, 0x00ad0ae3 },
+   { 0x00800040, 0x29e04629, 0x00ad0ae3, 0x00ad0b03 },
+   { 0x00800040, 0x2a004629, 0x00ad0b03, 0x00ad0b23 },
+   { 0x00800040, 0x2a204629, 0x00ad0b23, 0x00ad0b43 },
+   { 0x00800040, 0x29c04529, 0x00ad09c0, 0x00ad0ac4 },
+   { 0x00800040, 0x29e04529, 0x00ad09e0, 0x00ad0ae4 },
+   { 0x00800040, 0x2a004529, 0x00ad0a00, 0x00ad0b04 },
+   { 0x00800040, 0x2a204529, 0x00ad0a20, 0x00ad0b24 },
+   { 0x00800040, 0x29c04529, 0x00ad09c0, 0x00ad0ae4 },
+   { 0x00800040, 0x29e04529, 0x00ad09e0, 0x00ad0b04 },
+   { 0x00800040, 0x2a004529, 0x00ad0a00, 0x00ad0b24 },
+   { 0x00800040, 0x2a204529, 0x00ad0a20, 0x00ad0b44 },
+   { 0x00800040, 0x2a404629, 0x00ad0b63, 0x00ad0b83 },
+   { 0x00800040, 0x2a604629, 0x00ad0b83, 0x00ad0ba3 },
+   { 0x00800040, 0x2a804629, 0x00ad0ba3, 0x00ad0bc3 },
+   { 0x00800040, 0x2aa04629, 0x00ad0bc3, 0x00ad0be3 },
+   { 0x00800040, 0x2a404529, 0x00ad0a40, 0x00ad0b64 },
+   { 0x00800040, 0x2a604529, 0x00ad0a60, 0x00ad0b84 },
+   { 0x00800040, 0x2a804529, 0x00ad0a80, 0x00ad0ba4 },
+   { 0x00800040, 0x2aa04529, 0x00ad0aa0, 0x00ad0bc4 },
+   { 0x00800040, 0x2a404529, 0x00ad0a40, 0x00ad0b84 },
+   { 0x00800040, 0x2a604529, 0x00ad0a60, 0x00ad0ba4 },
+   { 0x00800040, 0x2a804529, 0x00ad0a80, 0x00ad0bc4 },
+   { 0x00800040, 0x2aa04529, 0x00ad0aa0, 0x00ad0be4 },
+   { 0x80800008, 0x29c02d29, 0x00b109c0, 0x00020002 },
+   { 0x80800008, 0x29e02d29, 0x00b109e0, 0x00020002 },
+   { 0x80800008, 0x2a002d29, 0x00b10a00, 0x00020002 },
+   { 0x80800008, 0x2a202d29, 0x00b10a20, 0x00020002 },
+   { 0x80800008, 0x2a402d29, 0x00b10a40, 0x00020002 },
+   { 0x80800008, 0x2a602d29, 0x00b10a60, 0x00020002 },
+   { 0x80800008, 0x2a802d29, 0x00b10a80, 0x00020002 },
+   { 0x80800008, 0x2aa02d29, 0x00b10aa0, 0x00020002 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000082 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0007000f },
+   { 0x00800031, 0x2ac01d29, 0x00ad0e60, 0x0414a005 },
+   { 0x00800031, 0x2b601d29, 0x00ad0e60, 0x0414a006 },
+   { 0x00000005, 0x20580c21, 0x00210e60, 0x00000003 },
+   { 0x00000041, 0x20580c21, 0x00210058, 0x00000009 },
+   { 0x00000020, 0x34001400, 0x00001400, 0x00210058 },
+   { 0x80800042, 0x29c04629, 0x00ad0ac0, 0x00ad0ac1 },
+   { 0x80800042, 0x29e04629, 0x00ad0ae0, 0x00ad0ae1 },
+   { 0x80800042, 0x2a004629, 0x00ad0b00, 0x00ad0b01 },
+   { 0x80800042, 0x2a204629, 0x00ad0b20, 0x00ad0b21 },
+   { 0x80800042, 0x2a404629, 0x00ad0b60, 0x00ad0b61 },
+   { 0x80800042, 0x2a604629, 0x00ad0b80, 0x00ad0b81 },
+   { 0x80800042, 0x2a804629, 0x00ad0ba0, 0x00ad0ba1 },
+   { 0x80800042, 0x2aa04629, 0x00ad0bc0, 0x00ad0bc1 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x0000001a },
+   { 0x80800042, 0x29c04629, 0x00ad0ac1, 0x00ad0ac2 },
+   { 0x80800042, 0x29e04629, 0x00ad0ae1, 0x00ad0ae2 },
+   { 0x80800042, 0x2a004629, 0x00ad0b01, 0x00ad0b02 },
+   { 0x80800042, 0x2a204629, 0x00ad0b21, 0x00ad0b22 },
+   { 0x80800042, 0x2a404629, 0x00ad0b61, 0x00ad0b62 },
+   { 0x80800042, 0x2a604629, 0x00ad0b81, 0x00ad0b82 },
+   { 0x80800042, 0x2a804629, 0x00ad0ba1, 0x00ad0ba2 },
+   { 0x80800042, 0x2aa04629, 0x00ad0bc1, 0x00ad0bc2 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000011 },
+   { 0x80800042, 0x29c04629, 0x00ad0ac2, 0x00ad0ac3 },
+   { 0x80800042, 0x29e04629, 0x00ad0ae2, 0x00ad0ae3 },
+   { 0x80800042, 0x2a004629, 0x00ad0b02, 0x00ad0b03 },
+   { 0x80800042, 0x2a204629, 0x00ad0b22, 0x00ad0b23 },
+   { 0x80800042, 0x2a404629, 0x00ad0b62, 0x00ad0b63 },
+   { 0x80800042, 0x2a604629, 0x00ad0b82, 0x00ad0b83 },
+   { 0x80800042, 0x2a804629, 0x00ad0ba2, 0x00ad0ba3 },
+   { 0x80800042, 0x2aa04629, 0x00ad0bc2, 0x00ad0bc3 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000008 },
+   { 0x80800042, 0x29c04629, 0x00ad0ac3, 0x00ad0ac4 },
+   { 0x80800042, 0x29e04629, 0x00ad0ae3, 0x00ad0ae4 },
+   { 0x80800042, 0x2a004629, 0x00ad0b03, 0x00ad0b04 },
+   { 0x80800042, 0x2a204629, 0x00ad0b23, 0x00ad0b24 },
+   { 0x80800042, 0x2a404629, 0x00ad0b63, 0x00ad0b64 },
+   { 0x80800042, 0x2a604629, 0x00ad0b83, 0x00ad0b84 },
+   { 0x80800042, 0x2a804629, 0x00ad0ba3, 0x00ad0ba4 },
+   { 0x80800042, 0x2aa04629, 0x00ad0bc3, 0x00ad0bc4 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000058 },
+   { 0x01000005, 0x20002d3c, 0x00210030, 0x00020002 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x0000002d },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0007000f },
+   { 0x00800031, 0x2ac01d29, 0x00ad0e60, 0x0414a005 },
+   { 0x00800031, 0x2b601d29, 0x00ad0e60, 0x0414a006 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0000000f },
+   { 0x00800031, 0x2b401d29, 0x00ad0e60, 0x0411a005 },
+   { 0x00800031, 0x2be01d29, 0x00ad0e60, 0x0411a006 },
+   { 0x00000005, 0x20580c21, 0x00210e60, 0x00000003 },
+   { 0x00000041, 0x20580c21, 0x00210058, 0x00000009 },
+   { 0x00000020, 0x34001400, 0x00001400, 0x00210058 },
+   { 0x80800042, 0x29c04629, 0x00ad0ac0, 0x00ad0ae0 },
+   { 0x80800042, 0x29e04629, 0x00ad0ae0, 0x00ad0b00 },
+   { 0x80800042, 0x2a004629, 0x00ad0b00, 0x00ad0b20 },
+   { 0x80800042, 0x2a204629, 0x00ad0b20, 0x00ad0b40 },
+   { 0x80800042, 0x2a404629, 0x00ad0b60, 0x00ad0b80 },
+   { 0x80800042, 0x2a604629, 0x00ad0b80, 0x00ad0ba0 },
+   { 0x80800042, 0x2a804629, 0x00ad0ba0, 0x00ad0bc0 },
+   { 0x80800042, 0x2aa04629, 0x00ad0bc0, 0x00ad0be0 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x0000001a },
+   { 0x80800042, 0x29c04629, 0x00ad0ac1, 0x00ad0ae1 },
+   { 0x80800042, 0x29e04629, 0x00ad0ae1, 0x00ad0b01 },
+   { 0x80800042, 0x2a004629, 0x00ad0b01, 0x00ad0b21 },
+   { 0x80800042, 0x2a204629, 0x00ad0b21, 0x00ad0b41 },
+   { 0x80800042, 0x2a404629, 0x00ad0b61, 0x00ad0b81 },
+   { 0x80800042, 0x2a604629, 0x00ad0b81, 0x00ad0ba1 },
+   { 0x80800042, 0x2a804629, 0x00ad0ba1, 0x00ad0bc1 },
+   { 0x80800042, 0x2aa04629, 0x00ad0bc1, 0x00ad0be1 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000011 },
+   { 0x80800042, 0x29c04629, 0x00ad0ac2, 0x00ad0ae2 },
+   { 0x80800042, 0x29e04629, 0x00ad0ae2, 0x00ad0b02 },
+   { 0x80800042, 0x2a004629, 0x00ad0b02, 0x00ad0b22 },
+   { 0x80800042, 0x2a204629, 0x00ad0b22, 0x00ad0b42 },
+   { 0x80800042, 0x2a404629, 0x00ad0b62, 0x00ad0b82 },
+   { 0x80800042, 0x2a604629, 0x00ad0b82, 0x00ad0ba2 },
+   { 0x80800042, 0x2a804629, 0x00ad0ba2, 0x00ad0bc2 },
+   { 0x80800042, 0x2aa04629, 0x00ad0bc2, 0x00ad0be2 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000008 },
+   { 0x80800042, 0x29c04629, 0x00ad0ac3, 0x00ad0ac3 },
+   { 0x80800042, 0x29e04629, 0x00ad0ae3, 0x00ad0ae3 },
+   { 0x80800042, 0x2a004629, 0x00ad0b03, 0x00ad0b03 },
+   { 0x80800042, 0x2a204629, 0x00ad0b23, 0x00ad0b23 },
+   { 0x80800042, 0x2a404629, 0x00ad0b63, 0x00ad0b63 },
+   { 0x80800042, 0x2a604629, 0x00ad0b83, 0x00ad0b83 },
+   { 0x80800042, 0x2a804629, 0x00ad0ba3, 0x00ad0ba3 },
+   { 0x80800042, 0x2aa04629, 0x00ad0bc3, 0x00ad0bc3 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000029 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0007000f },
+   { 0x00800031, 0x2ac01d29, 0x00ad0e60, 0x0414a005 },
+   { 0x00800031, 0x2b601d29, 0x00ad0e60, 0x0414a006 },
+   { 0x00000005, 0x20580c21, 0x00210e60, 0x00000003 },
+   { 0x00000041, 0x20580c21, 0x00210058, 0x00000009 },
+   { 0x00000020, 0x34001400, 0x00001400, 0x00210058 },
+   { 0x00800001, 0x29c00229, 0x00ad0ac0, 0x00000000 },
+   { 0x00800001, 0x29e00229, 0x00ad0ae0, 0x00000000 },
+   { 0x00800001, 0x2a000229, 0x00ad0b00, 0x00000000 },
+   { 0x00800001, 0x2a200229, 0x00ad0b20, 0x00000000 },
+   { 0x00800001, 0x2a400229, 0x00ad0b60, 0x00000000 },
+   { 0x00800001, 0x2a600229, 0x00ad0b80, 0x00000000 },
+   { 0x00800001, 0x2a800229, 0x00ad0ba0, 0x00000000 },
+   { 0x00800001, 0x2aa00229, 0x00ad0bc0, 0x00000000 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x0000001a },
+   { 0x00800001, 0x29c00229, 0x00ad0ac1, 0x00000000 },
+   { 0x00800001, 0x29e00229, 0x00ad0ae1, 0x00000000 },
+   { 0x00800001, 0x2a000229, 0x00ad0b01, 0x00000000 },
+   { 0x00800001, 0x2a200229, 0x00ad0b21, 0x00000000 },
+   { 0x00800001, 0x2a400229, 0x00ad0b61, 0x00000000 },
+   { 0x00800001, 0x2a600229, 0x00ad0b81, 0x00000000 },
+   { 0x00800001, 0x2a800229, 0x00ad0ba1, 0x00000000 },
+   { 0x00800001, 0x2aa00229, 0x00ad0bc1, 0x00000000 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000011 },
+   { 0x00800001, 0x29c00229, 0x00ad0ac2, 0x00000000 },
+   { 0x00800001, 0x29e00229, 0x00ad0ae2, 0x00000000 },
+   { 0x00800001, 0x2a000229, 0x00ad0b02, 0x00000000 },
+   { 0x00800001, 0x2a200229, 0x00ad0b22, 0x00000000 },
+   { 0x00800001, 0x2a400229, 0x00ad0b62, 0x00000000 },
+   { 0x00800001, 0x2a600229, 0x00ad0b82, 0x00000000 },
+   { 0x00800001, 0x2a800229, 0x00ad0ba2, 0x00000000 },
+   { 0x00800001, 0x2aa00229, 0x00ad0bc2, 0x00000000 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000008 },
+   { 0x00800001, 0x29c00229, 0x00ad0ac3, 0x00000000 },
+   { 0x00800001, 0x29e00229, 0x00ad0ae3, 0x00000000 },
+   { 0x00800001, 0x2a000229, 0x00ad0b03, 0x00000000 },
+   { 0x00800001, 0x2a200229, 0x00ad0b23, 0x00000000 },
+   { 0x00800001, 0x2a400229, 0x00ad0b63, 0x00000000 },
+   { 0x00800001, 0x2a600229, 0x00ad0b83, 0x00000000 },
+   { 0x00800001, 0x2a800229, 0x00ad0ba3, 0x00000000 },
+   { 0x00800001, 0x2aa00229, 0x00ad0bc3, 0x00000000 },
+   { 0x00600001, 0x28800129, 0x008d09c0, 0x00000000 },
+   { 0x00600001, 0x28a00129, 0x008d09e0, 0x00000000 },
+   { 0x00600001, 0x28c00129, 0x008d0a00, 0x00000000 },
+   { 0x00600001, 0x28e00129, 0x008d0a20, 0x00000000 },
+   { 0x00600001, 0x29000129, 0x008d0a40, 0x00000000 },
+   { 0x00600001, 0x29200129, 0x008d0a60, 0x00000000 },
+   { 0x00600001, 0x29400129, 0x008d0a80, 0x00000000 },
+   { 0x00600001, 0x29600129, 0x008d0aa0, 0x00000000 },
+   { 0x0020000c, 0x2e6e3dad, 0x00450036, 0x00020002 },
+   { 0x0020000c, 0x2e601ca5, 0x00450e80, 0x00000001 },
+   { 0x00200040, 0x2e6034a5, 0x00450e60, 0x00450e6e },
+   { 0x00000005, 0x2e640c21, 0x00210e64, 0xfffffffe },
+   { 0x02000005, 0x20002e3c, 0x0021003f, 0x00040004 },
+   { 0x00010040, 0x2e640c21, 0x00210e64, 0x00000001 },
+   { 0x01000005, 0x20002d3c, 0x00210038, 0x00020002 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x000000a2 },
+   { 0x01000005, 0x20002d3c, 0x0021003a, 0x00020002 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x00000076 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0007000f },
+   { 0x00800031, 0x2ac01d29, 0x00ad0e60, 0x0414a005 },
+   { 0x00800031, 0x2b601d29, 0x00ad0e60, 0x0414a006 },
+   { 0x00000005, 0x20580c21, 0x00210e60, 0x00000003 },
+   { 0x00000041, 0x20580c21, 0x00210058, 0x00000019 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0001000f },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 },
+   { 0x00800031, 0x2b401d29, 0x00ad0e60, 0x0411a005 },
+   { 0x00800031, 0x2be01d29, 0x00ad0e60, 0x0411a006 },
+   { 0x00000020, 0x34001400, 0x00001400, 0x00210058 },
+   { 0x00800040, 0x29c04629, 0x00ad0ac0, 0x00ad0ae0 },
+   { 0x00800040, 0x29e04629, 0x00ad0ae0, 0x00ad0b00 },
+   { 0x00800040, 0x2a004629, 0x00ad0b00, 0x00ad0b20 },
+   { 0x00800040, 0x2a204629, 0x00ad0b20, 0x00ad0b40 },
+   { 0x00800040, 0x29c04529, 0x00ad09c0, 0x00ad0ac1 },
+   { 0x00800040, 0x29e04529, 0x00ad09e0, 0x00ad0ae1 },
+   { 0x00800040, 0x2a004529, 0x00ad0a00, 0x00ad0b01 },
+   { 0x00800040, 0x2a204529, 0x00ad0a20, 0x00ad0b21 },
+   { 0x00800040, 0x29c04529, 0x00ad09c0, 0x00ad0ae1 },
+   { 0x00800040, 0x29e04529, 0x00ad09e0, 0x00ad0b01 },
+   { 0x00800040, 0x2a004529, 0x00ad0a00, 0x00ad0b21 },
+   { 0x00800040, 0x2a204529, 0x00ad0a20, 0x00ad0b41 },
+   { 0x00800040, 0x2a404629, 0x00ad0b60, 0x00ad0b80 },
+   { 0x00800040, 0x2a604629, 0x00ad0b80, 0x00ad0ba0 },
+   { 0x00800040, 0x2a804629, 0x00ad0ba0, 0x00ad0bc0 },
+   { 0x00800040, 0x2aa04629, 0x00ad0bc0, 0x00ad0be0 },
+   { 0x00800040, 0x2a404529, 0x00ad0a40, 0x00ad0b61 },
+   { 0x00800040, 0x2a604529, 0x00ad0a60, 0x00ad0b81 },
+   { 0x00800040, 0x2a804529, 0x00ad0a80, 0x00ad0ba1 },
+   { 0x00800040, 0x2aa04529, 0x00ad0aa0, 0x00ad0bc1 },
+   { 0x00800040, 0x2a404529, 0x00ad0a40, 0x00ad0b81 },
+   { 0x00800040, 0x2a604529, 0x00ad0a60, 0x00ad0ba1 },
+   { 0x00800040, 0x2a804529, 0x00ad0a80, 0x00ad0bc1 },
+   { 0x00800040, 0x2aa04529, 0x00ad0aa0, 0x00ad0be1 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x0000004a },
+   { 0x00800040, 0x29c04629, 0x00ad0ac1, 0x00ad0ae1 },
+   { 0x00800040, 0x29e04629, 0x00ad0ae1, 0x00ad0b01 },
+   { 0x00800040, 0x2a004629, 0x00ad0b01, 0x00ad0b21 },
+   { 0x00800040, 0x2a204629, 0x00ad0b21, 0x00ad0b41 },
+   { 0x00800040, 0x29c04529, 0x00ad09c0, 0x00ad0ac2 },
+   { 0x00800040, 0x29e04529, 0x00ad09e0, 0x00ad0ae2 },
+   { 0x00800040, 0x2a004529, 0x00ad0a00, 0x00ad0b02 },
+   { 0x00800040, 0x2a204529, 0x00ad0a20, 0x00ad0b22 },
+   { 0x00800040, 0x29c04529, 0x00ad09c0, 0x00ad0ae2 },
+   { 0x00800040, 0x29e04529, 0x00ad09e0, 0x00ad0b02 },
+   { 0x00800040, 0x2a004529, 0x00ad0a00, 0x00ad0b22 },
+   { 0x00800040, 0x2a204529, 0x00ad0a20, 0x00ad0b42 },
+   { 0x00800040, 0x2a404629, 0x00ad0b61, 0x00ad0b81 },
+   { 0x00800040, 0x2a604629, 0x00ad0b81, 0x00ad0ba1 },
+   { 0x00800040, 0x2a804629, 0x00ad0ba1, 0x00ad0bc1 },
+   { 0x00800040, 0x2aa04629, 0x00ad0bc1, 0x00ad0be1 },
+   { 0x00800040, 0x2a404529, 0x00ad0a40, 0x00ad0b62 },
+   { 0x00800040, 0x2a604529, 0x00ad0a60, 0x00ad0b82 },
+   { 0x00800040, 0x2a804529, 0x00ad0a80, 0x00ad0ba2 },
+   { 0x00800040, 0x2aa04529, 0x00ad0aa0, 0x00ad0bc2 },
+   { 0x00800040, 0x2a404529, 0x00ad0a40, 0x00ad0b82 },
+   { 0x00800040, 0x2a604529, 0x00ad0a60, 0x00ad0ba2 },
+   { 0x00800040, 0x2a804529, 0x00ad0a80, 0x00ad0bc2 },
+   { 0x00800040, 0x2aa04529, 0x00ad0aa0, 0x00ad0be2 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000031 },
+   { 0x00800040, 0x29c04629, 0x00ad0ac2, 0x00ad0ae2 },
+   { 0x00800040, 0x29e04629, 0x00ad0ae2, 0x00ad0b02 },
+   { 0x00800040, 0x2a004629, 0x00ad0b02, 0x00ad0b22 },
+   { 0x00800040, 0x2a204629, 0x00ad0b22, 0x00ad0b42 },
+   { 0x00800040, 0x29c04529, 0x00ad09c0, 0x00ad0ac3 },
+   { 0x00800040, 0x29e04529, 0x00ad09e0, 0x00ad0ae3 },
+   { 0x00800040, 0x2a004529, 0x00ad0a00, 0x00ad0b03 },
+   { 0x00800040, 0x2a204529, 0x00ad0a20, 0x00ad0b23 },
+   { 0x00800040, 0x29c04529, 0x00ad09c0, 0x00ad0ae3 },
+   { 0x00800040, 0x29e04529, 0x00ad09e0, 0x00ad0b03 },
+   { 0x00800040, 0x2a004529, 0x00ad0a00, 0x00ad0b23 },
+   { 0x00800040, 0x2a204529, 0x00ad0a20, 0x00ad0b43 },
+   { 0x00800040, 0x2a404629, 0x00ad0b62, 0x00ad0b82 },
+   { 0x00800040, 0x2a604629, 0x00ad0b82, 0x00ad0ba2 },
+   { 0x00800040, 0x2a804629, 0x00ad0ba2, 0x00ad0bc2 },
+   { 0x00800040, 0x2aa04629, 0x00ad0bc2, 0x00ad0be2 },
+   { 0x00800040, 0x2a404529, 0x00ad0a40, 0x00ad0b63 },
+   { 0x00800040, 0x2a604529, 0x00ad0a60, 0x00ad0b83 },
+   { 0x00800040, 0x2a804529, 0x00ad0a80, 0x00ad0ba3 },
+   { 0x00800040, 0x2aa04529, 0x00ad0aa0, 0x00ad0bc3 },
+   { 0x00800040, 0x2a404529, 0x00ad0a40, 0x00ad0b83 },
+   { 0x00800040, 0x2a604529, 0x00ad0a60, 0x00ad0ba3 },
+   { 0x00800040, 0x2a804529, 0x00ad0a80, 0x00ad0bc3 },
+   { 0x00800040, 0x2aa04529, 0x00ad0aa0, 0x00ad0be3 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000018 },
+   { 0x00800040, 0x29c04629, 0x00ad0ac3, 0x00ad0ae3 },
+   { 0x00800040, 0x29e04629, 0x00ad0ae3, 0x00ad0b03 },
+   { 0x00800040, 0x2a004629, 0x00ad0b03, 0x00ad0b23 },
+   { 0x00800040, 0x2a204629, 0x00ad0b23, 0x00ad0b43 },
+   { 0x00800040, 0x29c04529, 0x00ad09c0, 0x00ad0ac4 },
+   { 0x00800040, 0x29e04529, 0x00ad09e0, 0x00ad0ae4 },
+   { 0x00800040, 0x2a004529, 0x00ad0a00, 0x00ad0b04 },
+   { 0x00800040, 0x2a204529, 0x00ad0a20, 0x00ad0b24 },
+   { 0x00800040, 0x29c04529, 0x00ad09c0, 0x00ad0ae4 },
+   { 0x00800040, 0x29e04529, 0x00ad09e0, 0x00ad0b04 },
+   { 0x00800040, 0x2a004529, 0x00ad0a00, 0x00ad0b24 },
+   { 0x00800040, 0x2a204529, 0x00ad0a20, 0x00ad0b44 },
+   { 0x00800040, 0x2a404629, 0x00ad0b63, 0x00ad0b83 },
+   { 0x00800040, 0x2a604629, 0x00ad0b83, 0x00ad0ba3 },
+   { 0x00800040, 0x2a804629, 0x00ad0ba3, 0x00ad0bc3 },
+   { 0x00800040, 0x2aa04629, 0x00ad0bc3, 0x00ad0be3 },
+   { 0x00800040, 0x2a404529, 0x00ad0a40, 0x00ad0b64 },
+   { 0x00800040, 0x2a604529, 0x00ad0a60, 0x00ad0b84 },
+   { 0x00800040, 0x2a804529, 0x00ad0a80, 0x00ad0ba4 },
+   { 0x00800040, 0x2aa04529, 0x00ad0aa0, 0x00ad0bc4 },
+   { 0x00800040, 0x2a404529, 0x00ad0a40, 0x00ad0b84 },
+   { 0x00800040, 0x2a604529, 0x00ad0a60, 0x00ad0ba4 },
+   { 0x00800040, 0x2a804529, 0x00ad0a80, 0x00ad0bc4 },
+   { 0x00800040, 0x2aa04529, 0x00ad0aa0, 0x00ad0be4 },
+   { 0x80800008, 0x29c02d29, 0x00b109c0, 0x00020002 },
+   { 0x80800008, 0x29e02d29, 0x00b109e0, 0x00020002 },
+   { 0x80800008, 0x2a002d29, 0x00b10a00, 0x00020002 },
+   { 0x80800008, 0x2a202d29, 0x00b10a20, 0x00020002 },
+   { 0x80800008, 0x2a402d29, 0x00b10a40, 0x00020002 },
+   { 0x80800008, 0x2a602d29, 0x00b10a60, 0x00020002 },
+   { 0x80800008, 0x2a802d29, 0x00b10a80, 0x00020002 },
+   { 0x80800008, 0x2aa02d29, 0x00b10aa0, 0x00020002 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000082 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0007000f },
+   { 0x00800031, 0x2ac01d29, 0x00ad0e60, 0x0414a005 },
+   { 0x00800031, 0x2b601d29, 0x00ad0e60, 0x0414a006 },
+   { 0x00000005, 0x20580c21, 0x00210e60, 0x00000003 },
+   { 0x00000041, 0x20580c21, 0x00210058, 0x00000009 },
+   { 0x00000020, 0x34001400, 0x00001400, 0x00210058 },
+   { 0x80800042, 0x29c04629, 0x00ad0ac0, 0x00ad0ac1 },
+   { 0x80800042, 0x29e04629, 0x00ad0ae0, 0x00ad0ae1 },
+   { 0x80800042, 0x2a004629, 0x00ad0b00, 0x00ad0b01 },
+   { 0x80800042, 0x2a204629, 0x00ad0b20, 0x00ad0b21 },
+   { 0x80800042, 0x2a404629, 0x00ad0b60, 0x00ad0b61 },
+   { 0x80800042, 0x2a604629, 0x00ad0b80, 0x00ad0b81 },
+   { 0x80800042, 0x2a804629, 0x00ad0ba0, 0x00ad0ba1 },
+   { 0x80800042, 0x2aa04629, 0x00ad0bc0, 0x00ad0bc1 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x0000001a },
+   { 0x80800042, 0x29c04629, 0x00ad0ac1, 0x00ad0ac2 },
+   { 0x80800042, 0x29e04629, 0x00ad0ae1, 0x00ad0ae2 },
+   { 0x80800042, 0x2a004629, 0x00ad0b01, 0x00ad0b02 },
+   { 0x80800042, 0x2a204629, 0x00ad0b21, 0x00ad0b22 },
+   { 0x80800042, 0x2a404629, 0x00ad0b61, 0x00ad0b62 },
+   { 0x80800042, 0x2a604629, 0x00ad0b81, 0x00ad0b82 },
+   { 0x80800042, 0x2a804629, 0x00ad0ba1, 0x00ad0ba2 },
+   { 0x80800042, 0x2aa04629, 0x00ad0bc1, 0x00ad0bc2 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000011 },
+   { 0x80800042, 0x29c04629, 0x00ad0ac2, 0x00ad0ac3 },
+   { 0x80800042, 0x29e04629, 0x00ad0ae2, 0x00ad0ae3 },
+   { 0x80800042, 0x2a004629, 0x00ad0b02, 0x00ad0b03 },
+   { 0x80800042, 0x2a204629, 0x00ad0b22, 0x00ad0b23 },
+   { 0x80800042, 0x2a404629, 0x00ad0b62, 0x00ad0b63 },
+   { 0x80800042, 0x2a604629, 0x00ad0b82, 0x00ad0b83 },
+   { 0x80800042, 0x2a804629, 0x00ad0ba2, 0x00ad0ba3 },
+   { 0x80800042, 0x2aa04629, 0x00ad0bc2, 0x00ad0bc3 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000008 },
+   { 0x80800042, 0x29c04629, 0x00ad0ac3, 0x00ad0ac4 },
+   { 0x80800042, 0x29e04629, 0x00ad0ae3, 0x00ad0ae4 },
+   { 0x80800042, 0x2a004629, 0x00ad0b03, 0x00ad0b04 },
+   { 0x80800042, 0x2a204629, 0x00ad0b23, 0x00ad0b24 },
+   { 0x80800042, 0x2a404629, 0x00ad0b63, 0x00ad0b64 },
+   { 0x80800042, 0x2a604629, 0x00ad0b83, 0x00ad0b84 },
+   { 0x80800042, 0x2a804629, 0x00ad0ba3, 0x00ad0ba4 },
+   { 0x80800042, 0x2aa04629, 0x00ad0bc3, 0x00ad0bc4 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000058 },
+   { 0x01000005, 0x20002d3c, 0x0021003a, 0x00020002 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x0000002d },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0007000f },
+   { 0x00800031, 0x2ac01d29, 0x00ad0e60, 0x0414a005 },
+   { 0x00800031, 0x2b601d29, 0x00ad0e60, 0x0414a006 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0000000f },
+   { 0x00800031, 0x2b401d29, 0x00ad0e60, 0x0411a005 },
+   { 0x00800031, 0x2be01d29, 0x00ad0e60, 0x0411a006 },
+   { 0x00000005, 0x20580c21, 0x00210e60, 0x00000003 },
+   { 0x00000041, 0x20580c21, 0x00210058, 0x00000009 },
+   { 0x00000020, 0x34001400, 0x00001400, 0x00210058 },
+   { 0x80800042, 0x29c04629, 0x00ad0ac0, 0x00ad0ae0 },
+   { 0x80800042, 0x29e04629, 0x00ad0ae0, 0x00ad0b00 },
+   { 0x80800042, 0x2a004629, 0x00ad0b00, 0x00ad0b20 },
+   { 0x80800042, 0x2a204629, 0x00ad0b20, 0x00ad0b40 },
+   { 0x80800042, 0x2a404629, 0x00ad0b60, 0x00ad0b80 },
+   { 0x80800042, 0x2a604629, 0x00ad0b80, 0x00ad0ba0 },
+   { 0x80800042, 0x2a804629, 0x00ad0ba0, 0x00ad0bc0 },
+   { 0x80800042, 0x2aa04629, 0x00ad0bc0, 0x00ad0be0 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x0000001a },
+   { 0x80800042, 0x29c04629, 0x00ad0ac1, 0x00ad0ae1 },
+   { 0x80800042, 0x29e04629, 0x00ad0ae1, 0x00ad0b01 },
+   { 0x80800042, 0x2a004629, 0x00ad0b01, 0x00ad0b21 },
+   { 0x80800042, 0x2a204629, 0x00ad0b21, 0x00ad0b41 },
+   { 0x80800042, 0x2a404629, 0x00ad0b61, 0x00ad0b81 },
+   { 0x80800042, 0x2a604629, 0x00ad0b81, 0x00ad0ba1 },
+   { 0x80800042, 0x2a804629, 0x00ad0ba1, 0x00ad0bc1 },
+   { 0x80800042, 0x2aa04629, 0x00ad0bc1, 0x00ad0be1 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000011 },
+   { 0x80800042, 0x29c04629, 0x00ad0ac2, 0x00ad0ae2 },
+   { 0x80800042, 0x29e04629, 0x00ad0ae2, 0x00ad0b02 },
+   { 0x80800042, 0x2a004629, 0x00ad0b02, 0x00ad0b22 },
+   { 0x80800042, 0x2a204629, 0x00ad0b22, 0x00ad0b42 },
+   { 0x80800042, 0x2a404629, 0x00ad0b62, 0x00ad0b82 },
+   { 0x80800042, 0x2a604629, 0x00ad0b82, 0x00ad0ba2 },
+   { 0x80800042, 0x2a804629, 0x00ad0ba2, 0x00ad0bc2 },
+   { 0x80800042, 0x2aa04629, 0x00ad0bc2, 0x00ad0be2 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000008 },
+   { 0x80800042, 0x29c04629, 0x00ad0ac3, 0x00ad0ac3 },
+   { 0x80800042, 0x29e04629, 0x00ad0ae3, 0x00ad0ae3 },
+   { 0x80800042, 0x2a004629, 0x00ad0b03, 0x00ad0b03 },
+   { 0x80800042, 0x2a204629, 0x00ad0b23, 0x00ad0b23 },
+   { 0x80800042, 0x2a404629, 0x00ad0b63, 0x00ad0b63 },
+   { 0x80800042, 0x2a604629, 0x00ad0b83, 0x00ad0b83 },
+   { 0x80800042, 0x2a804629, 0x00ad0ba3, 0x00ad0ba3 },
+   { 0x80800042, 0x2aa04629, 0x00ad0bc3, 0x00ad0bc3 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000029 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0007000f },
+   { 0x00800031, 0x2ac01d29, 0x00ad0e60, 0x0414a005 },
+   { 0x00800031, 0x2b601d29, 0x00ad0e60, 0x0414a006 },
+   { 0x00000005, 0x20580c21, 0x00210e60, 0x00000003 },
+   { 0x00000041, 0x20580c21, 0x00210058, 0x00000009 },
+   { 0x00000020, 0x34001400, 0x00001400, 0x00210058 },
+   { 0x00800001, 0x29c00229, 0x00ad0ac0, 0x00000000 },
+   { 0x00800001, 0x29e00229, 0x00ad0ae0, 0x00000000 },
+   { 0x00800001, 0x2a000229, 0x00ad0b00, 0x00000000 },
+   { 0x00800001, 0x2a200229, 0x00ad0b20, 0x00000000 },
+   { 0x00800001, 0x2a400229, 0x00ad0b60, 0x00000000 },
+   { 0x00800001, 0x2a600229, 0x00ad0b80, 0x00000000 },
+   { 0x00800001, 0x2a800229, 0x00ad0ba0, 0x00000000 },
+   { 0x00800001, 0x2aa00229, 0x00ad0bc0, 0x00000000 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x0000001a },
+   { 0x00800001, 0x29c00229, 0x00ad0ac1, 0x00000000 },
+   { 0x00800001, 0x29e00229, 0x00ad0ae1, 0x00000000 },
+   { 0x00800001, 0x2a000229, 0x00ad0b01, 0x00000000 },
+   { 0x00800001, 0x2a200229, 0x00ad0b21, 0x00000000 },
+   { 0x00800001, 0x2a400229, 0x00ad0b61, 0x00000000 },
+   { 0x00800001, 0x2a600229, 0x00ad0b81, 0x00000000 },
+   { 0x00800001, 0x2a800229, 0x00ad0ba1, 0x00000000 },
+   { 0x00800001, 0x2aa00229, 0x00ad0bc1, 0x00000000 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000011 },
+   { 0x00800001, 0x29c00229, 0x00ad0ac2, 0x00000000 },
+   { 0x00800001, 0x29e00229, 0x00ad0ae2, 0x00000000 },
+   { 0x00800001, 0x2a000229, 0x00ad0b02, 0x00000000 },
+   { 0x00800001, 0x2a200229, 0x00ad0b22, 0x00000000 },
+   { 0x00800001, 0x2a400229, 0x00ad0b62, 0x00000000 },
+   { 0x00800001, 0x2a600229, 0x00ad0b82, 0x00000000 },
+   { 0x00800001, 0x2a800229, 0x00ad0ba2, 0x00000000 },
+   { 0x00800001, 0x2aa00229, 0x00ad0bc2, 0x00000000 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000008 },
+   { 0x00800001, 0x29c00229, 0x00ad0ac3, 0x00000000 },
+   { 0x00800001, 0x29e00229, 0x00ad0ae3, 0x00000000 },
+   { 0x00800001, 0x2a000229, 0x00ad0b03, 0x00000000 },
+   { 0x00800001, 0x2a200229, 0x00ad0b23, 0x00000000 },
+   { 0x00800001, 0x2a400229, 0x00ad0b63, 0x00000000 },
+   { 0x00800001, 0x2a600229, 0x00ad0b83, 0x00000000 },
+   { 0x00800001, 0x2a800229, 0x00ad0ba3, 0x00000000 },
+   { 0x00800001, 0x2aa00229, 0x00ad0bc3, 0x00000000 },
+   { 0x00600001, 0x28900129, 0x008d09c0, 0x00000000 },
+   { 0x00600001, 0x28b00129, 0x008d09e0, 0x00000000 },
+   { 0x00600001, 0x28d00129, 0x008d0a00, 0x00000000 },
+   { 0x00600001, 0x28f00129, 0x008d0a20, 0x00000000 },
+   { 0x00600001, 0x29100129, 0x008d0a40, 0x00000000 },
+   { 0x00600001, 0x29300129, 0x008d0a60, 0x00000000 },
+   { 0x00600001, 0x29500129, 0x008d0a80, 0x00000000 },
+   { 0x00600001, 0x29700129, 0x008d0aa0, 0x00000000 },
+   { 0x00600001, 0x20200021, 0x008d0e80, 0x00000000 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0007001f },
+   { 0x00000001, 0x20280061, 0x00000000, 0x0007000f },
+   { 0x0020000c, 0x2e6e3dad, 0x00450032, 0x00010001 },
+   { 0x00200040, 0x2e6034a5, 0x00450e80, 0x00450e6e },
+   { 0x00000005, 0x2e640c21, 0x00210e64, 0xfffffffe },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
+   { 0x02000005, 0x20002e3c, 0x0021003f, 0x00020002 },
+   { 0x00010040, 0x2e641ca5, 0x00210e64, 0x00000001 },
+   { 0x01000005, 0x20002d3c, 0x00210032, 0x00010001 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x000000b1 },
+   { 0x01000005, 0x20002d3c, 0x00210034, 0x00010001 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x0000007d },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
+   { 0x00800031, 0x29c01d29, 0x008d0e60, 0x0411a007 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00800031, 0x2a001d29, 0x008d0e60, 0x0411a007 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00800031, 0x2a401d29, 0x008d0e60, 0x0411a007 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00800031, 0x2a801d29, 0x008d0e60, 0x0411a007 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0007001f },
+   { 0x00800031, 0x2ac01d29, 0x008d0e60, 0x0418a007 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
+   { 0x00800031, 0x2bc01d29, 0x008d0e60, 0x0411a007 },
+   { 0x00000005, 0x20580c21, 0x00210e60, 0x00000003 },
+   { 0x00000041, 0x20580c21, 0x00210058, 0x00000019 },
+   { 0x00000020, 0x34001400, 0x00001400, 0x00210058 },
+   { 0x00800040, 0x2c004629, 0x00b109c0, 0x00b10a00 },
+   { 0x00800040, 0x2c204629, 0x00b10a00, 0x00b10a40 },
+   { 0x00800040, 0x2c404629, 0x00b10a40, 0x00b10a80 },
+   { 0x00800040, 0x2c604629, 0x00b10a80, 0x00b10ac0 },
+   { 0x00800040, 0x2c804629, 0x00b10ac0, 0x00b10b00 },
+   { 0x00800040, 0x2ca04629, 0x00b10b00, 0x00b10b40 },
+   { 0x00800040, 0x2cc04629, 0x00b10b40, 0x00b10b80 },
+   { 0x00800040, 0x2ce04629, 0x00b10b80, 0x00b10bc0 },
+   { 0x00800040, 0x2c004529, 0x00b10c00, 0x00b109c1 },
+   { 0x00800040, 0x2c204529, 0x00b10c20, 0x00b10a01 },
+   { 0x00800040, 0x2c404529, 0x00b10c40, 0x00b10a41 },
+   { 0x00800040, 0x2c604529, 0x00b10c60, 0x00b10a81 },
+   { 0x00800040, 0x2c804529, 0x00b10c80, 0x00b10ac1 },
+   { 0x00800040, 0x2ca04529, 0x00b10ca0, 0x00b10b01 },
+   { 0x00800040, 0x2cc04529, 0x00b10cc0, 0x00b10b41 },
+   { 0x00800040, 0x2ce04529, 0x00b10ce0, 0x00b10b81 },
+   { 0x00800040, 0x2c004529, 0x00b10c00, 0x00b10a01 },
+   { 0x00800040, 0x2c204529, 0x00b10c20, 0x00b10a41 },
+   { 0x00800040, 0x2c404529, 0x00b10c40, 0x00b10a81 },
+   { 0x00800040, 0x2c604529, 0x00b10c60, 0x00b10ac1 },
+   { 0x00800040, 0x2c804529, 0x00b10c80, 0x00b10b01 },
+   { 0x00800040, 0x2ca04529, 0x00b10ca0, 0x00b10b41 },
+   { 0x00800040, 0x2cc04529, 0x00b10cc0, 0x00b10b81 },
+   { 0x00800040, 0x2ce04529, 0x00b10ce0, 0x00b10bc1 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x0000004a },
+   { 0x00800040, 0x2c004629, 0x00b109c1, 0x00b10a01 },
+   { 0x00800040, 0x2c204629, 0x00b10a01, 0x00b10a41 },
+   { 0x00800040, 0x2c404629, 0x00b10a41, 0x00b10a81 },
+   { 0x00800040, 0x2c604629, 0x00b10a81, 0x00b10ac1 },
+   { 0x00800040, 0x2c804629, 0x00b10ac1, 0x00b10b01 },
+   { 0x00800040, 0x2ca04629, 0x00b10b01, 0x00b10b41 },
+   { 0x00800040, 0x2cc04629, 0x00b10b41, 0x00b10b81 },
+   { 0x00800040, 0x2ce04629, 0x00b10b81, 0x00b10bc1 },
+   { 0x00800040, 0x2c004529, 0x00b10c00, 0x00b109c2 },
+   { 0x00800040, 0x2c204529, 0x00b10c20, 0x00b10a02 },
+   { 0x00800040, 0x2c404529, 0x00b10c40, 0x00b10a42 },
+   { 0x00800040, 0x2c604529, 0x00b10c60, 0x00b10a82 },
+   { 0x00800040, 0x2c804529, 0x00b10c80, 0x00b10ac2 },
+   { 0x00800040, 0x2ca04529, 0x00b10ca0, 0x00b10b02 },
+   { 0x00800040, 0x2cc04529, 0x00b10cc0, 0x00b10b42 },
+   { 0x00800040, 0x2ce04529, 0x00b10ce0, 0x00b10b82 },
+   { 0x00800040, 0x2c004529, 0x00b10c00, 0x00b10a02 },
+   { 0x00800040, 0x2c204529, 0x00b10c20, 0x00b10a42 },
+   { 0x00800040, 0x2c404529, 0x00b10c40, 0x00b10a82 },
+   { 0x00800040, 0x2c604529, 0x00b10c60, 0x00b10ac2 },
+   { 0x00800040, 0x2c804529, 0x00b10c80, 0x00b10b02 },
+   { 0x00800040, 0x2ca04529, 0x00b10ca0, 0x00b10b42 },
+   { 0x00800040, 0x2cc04529, 0x00b10cc0, 0x00b10b82 },
+   { 0x00800040, 0x2ce04529, 0x00b10ce0, 0x00b10bc2 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000031 },
+   { 0x00800040, 0x2c004629, 0x00b109c2, 0x00b10a02 },
+   { 0x00800040, 0x2c204629, 0x00b10a02, 0x00b10a42 },
+   { 0x00800040, 0x2c404629, 0x00b10a42, 0x00b10a82 },
+   { 0x00800040, 0x2c604629, 0x00b10a82, 0x00b10ac2 },
+   { 0x00800040, 0x2c804629, 0x00b10ac2, 0x00b10b02 },
+   { 0x00800040, 0x2ca04629, 0x00b10b02, 0x00b10b42 },
+   { 0x00800040, 0x2cc04629, 0x00b10b42, 0x00b10b82 },
+   { 0x00800040, 0x2ce04629, 0x00b10b82, 0x00b10bc2 },
+   { 0x00800040, 0x2c004529, 0x00b10c00, 0x00b109c3 },
+   { 0x00800040, 0x2c204529, 0x00b10c20, 0x00b10a03 },
+   { 0x00800040, 0x2c404529, 0x00b10c40, 0x00b10a43 },
+   { 0x00800040, 0x2c604529, 0x00b10c60, 0x00b10a83 },
+   { 0x00800040, 0x2c804529, 0x00b10c80, 0x00b10ac3 },
+   { 0x00800040, 0x2ca04529, 0x00b10ca0, 0x00b10b03 },
+   { 0x00800040, 0x2cc04529, 0x00b10cc0, 0x00b10b43 },
+   { 0x00800040, 0x2ce04529, 0x00b10ce0, 0x00b10b83 },
+   { 0x00800040, 0x2c004529, 0x00b10c00, 0x00b10a03 },
+   { 0x00800040, 0x2c204529, 0x00b10c20, 0x00b10a43 },
+   { 0x00800040, 0x2c404529, 0x00b10c40, 0x00b10a83 },
+   { 0x00800040, 0x2c604529, 0x00b10c60, 0x00b10ac3 },
+   { 0x00800040, 0x2c804529, 0x00b10c80, 0x00b10b03 },
+   { 0x00800040, 0x2ca04529, 0x00b10ca0, 0x00b10b43 },
+   { 0x00800040, 0x2cc04529, 0x00b10cc0, 0x00b10b83 },
+   { 0x00800040, 0x2ce04529, 0x00b10ce0, 0x00b10bc3 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000018 },
+   { 0x00800040, 0x2c004629, 0x00b109c3, 0x00b10a03 },
+   { 0x00800040, 0x2c204629, 0x00b10a03, 0x00b10a43 },
+   { 0x00800040, 0x2c404629, 0x00b10a43, 0x00b10a83 },
+   { 0x00800040, 0x2c604629, 0x00b10a83, 0x00b10ac3 },
+   { 0x00800040, 0x2c804629, 0x00b10ac3, 0x00b10b03 },
+   { 0x00800040, 0x2ca04629, 0x00b10b03, 0x00b10b43 },
+   { 0x00800040, 0x2cc04629, 0x00b10b43, 0x00b10b83 },
+   { 0x00800040, 0x2ce04629, 0x00b10b83, 0x00b10bc3 },
+   { 0x00800040, 0x2c004529, 0x00b10c00, 0x00b109c4 },
+   { 0x00800040, 0x2c204529, 0x00b10c20, 0x00b10a04 },
+   { 0x00800040, 0x2c404529, 0x00b10c40, 0x00b10a44 },
+   { 0x00800040, 0x2c604529, 0x00b10c60, 0x00b10a84 },
+   { 0x00800040, 0x2c804529, 0x00b10c80, 0x00b10ac4 },
+   { 0x00800040, 0x2ca04529, 0x00b10ca0, 0x00b10b04 },
+   { 0x00800040, 0x2cc04529, 0x00b10cc0, 0x00b10b44 },
+   { 0x00800040, 0x2ce04529, 0x00b10ce0, 0x00b10b84 },
+   { 0x00800040, 0x2c004529, 0x00b10c00, 0x00b10a04 },
+   { 0x00800040, 0x2c204529, 0x00b10c20, 0x00b10a44 },
+   { 0x00800040, 0x2c404529, 0x00b10c40, 0x00b10a84 },
+   { 0x00800040, 0x2c604529, 0x00b10c60, 0x00b10ac4 },
+   { 0x00800040, 0x2c804529, 0x00b10c80, 0x00b10b04 },
+   { 0x00800040, 0x2ca04529, 0x00b10ca0, 0x00b10b44 },
+   { 0x00800040, 0x2cc04529, 0x00b10cc0, 0x00b10b84 },
+   { 0x00800040, 0x2ce04529, 0x00b10ce0, 0x00b10bc4 },
+   { 0x00800008, 0x2c002d29, 0x00b10c00, 0x00020002 },
+   { 0x00800008, 0x2c202d29, 0x00b10c20, 0x00020002 },
+   { 0x00800008, 0x2c402d29, 0x00b10c40, 0x00020002 },
+   { 0x00800008, 0x2c602d29, 0x00b10c60, 0x00020002 },
+   { 0x00800008, 0x2c802d29, 0x00b10c80, 0x00020002 },
+   { 0x00800008, 0x2ca02d29, 0x00b10ca0, 0x00020002 },
+   { 0x00800008, 0x2cc02d29, 0x00b10cc0, 0x00020002 },
+   { 0x00800008, 0x2ce02d29, 0x00b10ce0, 0x00020002 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x0000009a },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
+   { 0x00800031, 0x29c01d29, 0x008d0e60, 0x0411a007 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00800031, 0x2a001d29, 0x008d0e60, 0x0411a007 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00800031, 0x2a401d29, 0x008d0e60, 0x0411a007 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00800031, 0x2a801d29, 0x008d0e60, 0x0411a007 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0007001f },
+   { 0x00800031, 0x2ac01d29, 0x008d0e60, 0x0418a007 },
+   { 0x00000005, 0x20580c21, 0x00210e60, 0x00000003 },
+   { 0x00000041, 0x20580c21, 0x00210058, 0x00000009 },
+   { 0x00000020, 0x34001400, 0x00001400, 0x00210058 },
+   { 0x80800042, 0x2c004629, 0x00b109c0, 0x00b109c1 },
+   { 0x80800042, 0x2c204629, 0x00b10a00, 0x00b10a01 },
+   { 0x80800042, 0x2c404629, 0x00b10a40, 0x00b10a41 },
+   { 0x80800042, 0x2c604629, 0x00b10a80, 0x00b10a81 },
+   { 0x80800042, 0x2c804629, 0x00b10ac0, 0x00b10ac1 },
+   { 0x80800042, 0x2ca04629, 0x00b10b00, 0x00b10b01 },
+   { 0x80800042, 0x2cc04629, 0x00b10b40, 0x00b10b41 },
+   { 0x80800042, 0x2ce04629, 0x00b10b80, 0x00b10b81 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x0000001a },
+   { 0x80800042, 0x2c004629, 0x00b109c1, 0x00b109c2 },
+   { 0x80800042, 0x2c204629, 0x00b10a01, 0x00b10a02 },
+   { 0x80800042, 0x2c404629, 0x00b10a41, 0x00b10a42 },
+   { 0x80800042, 0x2c604629, 0x00b10a81, 0x00b10a82 },
+   { 0x80800042, 0x2c804629, 0x00b10ac1, 0x00b10ac2 },
+   { 0x80800042, 0x2ca04629, 0x00b10b01, 0x00b10b02 },
+   { 0x80800042, 0x2cc04629, 0x00b10b41, 0x00b10b42 },
+   { 0x80800042, 0x2ce04629, 0x00b10b81, 0x00b10b82 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000011 },
+   { 0x80800042, 0x2c004629, 0x00b109c2, 0x00b109c3 },
+   { 0x80800042, 0x2c204629, 0x00b10a02, 0x00b10a03 },
+   { 0x80800042, 0x2c404629, 0x00b10a42, 0x00b10a43 },
+   { 0x80800042, 0x2c604629, 0x00b10a82, 0x00b10a83 },
+   { 0x80800042, 0x2c804629, 0x00b10ac2, 0x00b10ac3 },
+   { 0x80800042, 0x2ca04629, 0x00b10b02, 0x00b10b03 },
+   { 0x80800042, 0x2cc04629, 0x00b10b42, 0x00b10b43 },
+   { 0x80800042, 0x2ce04629, 0x00b10b82, 0x00b10b83 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000008 },
+   { 0x80800042, 0x2c004629, 0x00b109c3, 0x00b109c4 },
+   { 0x80800042, 0x2c204629, 0x00b10a03, 0x00b10a04 },
+   { 0x80800042, 0x2c404629, 0x00b10a43, 0x00b10a44 },
+   { 0x80800042, 0x2c604629, 0x00b10a83, 0x00b10a84 },
+   { 0x80800042, 0x2c804629, 0x00b10ac3, 0x00b10ac4 },
+   { 0x80800042, 0x2ca04629, 0x00b10b03, 0x00b10b04 },
+   { 0x80800042, 0x2cc04629, 0x00b10b43, 0x00b10b44 },
+   { 0x80800042, 0x2ce04629, 0x00b10b83, 0x00b10b84 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000068 },
+   { 0x01000005, 0x20002d3c, 0x00210034, 0x00010001 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x00000035 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
+   { 0x00800031, 0x29c01d29, 0x008d0e60, 0x0411a007 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00800031, 0x2a001d29, 0x008d0e60, 0x0411a007 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00800031, 0x2a401d29, 0x008d0e60, 0x0411a007 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00800031, 0x2a801d29, 0x008d0e60, 0x0411a007 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0007001f },
+   { 0x00800031, 0x2ac01d29, 0x008d0e60, 0x0418a007 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
+   { 0x00800031, 0x2bc01d29, 0x008d0e60, 0x0411a007 },
+   { 0x00000005, 0x20580c21, 0x00210e60, 0x00000003 },
+   { 0x00000041, 0x20580c21, 0x00210058, 0x00000009 },
+   { 0x00000020, 0x34001400, 0x00001400, 0x00210058 },
+   { 0x80800042, 0x2c004629, 0x00b109c0, 0x00b10a00 },
+   { 0x80800042, 0x2c204629, 0x00b10a00, 0x00b10a40 },
+   { 0x80800042, 0x2c404629, 0x00b10a40, 0x00b10a80 },
+   { 0x80800042, 0x2c604629, 0x00b10a80, 0x00b10ac0 },
+   { 0x80800042, 0x2c804629, 0x00b10ac0, 0x00b10b00 },
+   { 0x80800042, 0x2ca04629, 0x00b10b00, 0x00b10b40 },
+   { 0x80800042, 0x2cc04629, 0x00b10b40, 0x00b10b80 },
+   { 0x80800042, 0x2ce04629, 0x00b10b80, 0x00b10bc0 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x0000001a },
+   { 0x80800042, 0x2c004629, 0x00b109c1, 0x00b10a01 },
+   { 0x80800042, 0x2c204629, 0x00b10a01, 0x00b10a41 },
+   { 0x80800042, 0x2c404629, 0x00b10a41, 0x00b10a81 },
+   { 0x80800042, 0x2c604629, 0x00b10a81, 0x00b10ac1 },
+   { 0x80800042, 0x2c804629, 0x00b10ac1, 0x00b10b01 },
+   { 0x80800042, 0x2ca04629, 0x00b10b01, 0x00b10b41 },
+   { 0x80800042, 0x2cc04629, 0x00b10b41, 0x00b10b81 },
+   { 0x80800042, 0x2ce04629, 0x00b10b81, 0x00b10bc1 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000011 },
+   { 0x80800042, 0x2c004629, 0x00b109c2, 0x00b10a02 },
+   { 0x80800042, 0x2c204629, 0x00b10a02, 0x00b10a42 },
+   { 0x80800042, 0x2c404629, 0x00b10a42, 0x00b10a82 },
+   { 0x80800042, 0x2c604629, 0x00b10a82, 0x00b10ac2 },
+   { 0x80800042, 0x2c804629, 0x00b10ac2, 0x00b10b02 },
+   { 0x80800042, 0x2ca04629, 0x00b10b02, 0x00b10b42 },
+   { 0x80800042, 0x2cc04629, 0x00b10b42, 0x00b10b82 },
+   { 0x80800042, 0x2ce04629, 0x00b10b82, 0x00b10bc2 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000008 },
+   { 0x80800042, 0x2c004629, 0x00b109c3, 0x00b10a03 },
+   { 0x80800042, 0x2c204629, 0x00b10a03, 0x00b10a43 },
+   { 0x80800042, 0x2c404629, 0x00b10a43, 0x00b10a83 },
+   { 0x80800042, 0x2c604629, 0x00b10a83, 0x00b10ac3 },
+   { 0x80800042, 0x2c804629, 0x00b10ac3, 0x00b10b03 },
+   { 0x80800042, 0x2ca04629, 0x00b10b03, 0x00b10b43 },
+   { 0x80800042, 0x2cc04629, 0x00b10b43, 0x00b10b83 },
+   { 0x80800042, 0x2ce04629, 0x00b10b83, 0x00b10bc3 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000031 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
+   { 0x00800031, 0x29c01d29, 0x008d0e60, 0x0411a007 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00800031, 0x2a001d29, 0x008d0e60, 0x0411a007 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00800031, 0x2a401d29, 0x008d0e60, 0x0411a007 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00800031, 0x2a801d29, 0x008d0e60, 0x0411a007 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0007001f },
+   { 0x00800031, 0x2ac01d29, 0x008d0e60, 0x0418a007 },
+   { 0x00000005, 0x20580c21, 0x00210e60, 0x00000003 },
+   { 0x00000041, 0x20580c21, 0x00210058, 0x00000009 },
+   { 0x00000020, 0x34001400, 0x00001400, 0x00210058 },
+   { 0x00800001, 0x2c000229, 0x00b109c0, 0x00000000 },
+   { 0x00800001, 0x2c200229, 0x00b10a00, 0x00000000 },
+   { 0x00800001, 0x2c400229, 0x00b10a40, 0x00000000 },
+   { 0x00800001, 0x2c600229, 0x00b10a80, 0x00000000 },
+   { 0x00800001, 0x2c800229, 0x00b10ac0, 0x00000000 },
+   { 0x00800001, 0x2ca00229, 0x00b10b00, 0x00000000 },
+   { 0x00800001, 0x2cc00229, 0x00b10b40, 0x00000000 },
+   { 0x00800001, 0x2ce00229, 0x00b10b80, 0x00000000 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x0000001a },
+   { 0x00800001, 0x2c000229, 0x00b109c1, 0x00000000 },
+   { 0x00800001, 0x2c200229, 0x00b10a01, 0x00000000 },
+   { 0x00800001, 0x2c400229, 0x00b10a41, 0x00000000 },
+   { 0x00800001, 0x2c600229, 0x00b10a81, 0x00000000 },
+   { 0x00800001, 0x2c800229, 0x00b10ac1, 0x00000000 },
+   { 0x00800001, 0x2ca00229, 0x00b10b01, 0x00000000 },
+   { 0x00800001, 0x2cc00229, 0x00b10b41, 0x00000000 },
+   { 0x00800001, 0x2ce00229, 0x00b10b81, 0x00000000 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000011 },
+   { 0x00800001, 0x2c000229, 0x00b109c2, 0x00000000 },
+   { 0x00800001, 0x2c200229, 0x00b10a02, 0x00000000 },
+   { 0x00800001, 0x2c400229, 0x00b10a42, 0x00000000 },
+   { 0x00800001, 0x2c600229, 0x00b10a82, 0x00000000 },
+   { 0x00800001, 0x2c800229, 0x00b10ac2, 0x00000000 },
+   { 0x00800001, 0x2ca00229, 0x00b10b02, 0x00000000 },
+   { 0x00800001, 0x2cc00229, 0x00b10b42, 0x00000000 },
+   { 0x00800001, 0x2ce00229, 0x00b10b82, 0x00000000 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000008 },
+   { 0x00800001, 0x2c000229, 0x00b109c3, 0x00000000 },
+   { 0x00800001, 0x2c200229, 0x00b10a03, 0x00000000 },
+   { 0x00800001, 0x2c400229, 0x00b10a43, 0x00000000 },
+   { 0x00800001, 0x2c600229, 0x00b10a83, 0x00000000 },
+   { 0x00800001, 0x2c800229, 0x00b10ac3, 0x00000000 },
+   { 0x00800001, 0x2ca00229, 0x00b10b03, 0x00000000 },
+   { 0x00800001, 0x2cc00229, 0x00b10b43, 0x00000000 },
+   { 0x00800001, 0x2ce00229, 0x00b10b83, 0x00000000 },
+   { 0x00600001, 0x23800021, 0x008d0c00, 0x00000000 },
+   { 0x00600001, 0x23c00021, 0x008d0c20, 0x00000000 },
+   { 0x00600001, 0x24000021, 0x008d0c40, 0x00000000 },
+   { 0x00600001, 0x24400021, 0x008d0c60, 0x00000000 },
+   { 0x00600001, 0x24800021, 0x008d0c80, 0x00000000 },
+   { 0x00600001, 0x24c00021, 0x008d0ca0, 0x00000000 },
+   { 0x00600001, 0x25000021, 0x008d0cc0, 0x00000000 },
+   { 0x00600001, 0x25400021, 0x008d0ce0, 0x00000000 },
+   { 0x0020000c, 0x2e6e3dad, 0x0045003a, 0x00010001 },
+   { 0x00200040, 0x2e6034a5, 0x00450e80, 0x00450e6e },
+   { 0x00000005, 0x2e640c21, 0x00210e64, 0xfffffffe },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
+   { 0x02000005, 0x20000c3c, 0x00210054, 0x00000008 },
+   { 0x00010040, 0x2e641ca5, 0x00210e64, 0x00000001 },
+   { 0x01000005, 0x20002d3c, 0x0021003a, 0x00010001 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x000000b1 },
+   { 0x01000005, 0x20002d3c, 0x0021003c, 0x00010001 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x0000007d },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
+   { 0x00800031, 0x29c01d29, 0x008d0e60, 0x0411a007 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00800031, 0x2a001d29, 0x008d0e60, 0x0411a007 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00800031, 0x2a401d29, 0x008d0e60, 0x0411a007 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00800031, 0x2a801d29, 0x008d0e60, 0x0411a007 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0007001f },
+   { 0x00800031, 0x2ac01d29, 0x008d0e60, 0x0418a007 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
+   { 0x00800031, 0x2bc01d29, 0x008d0e60, 0x0411a007 },
+   { 0x00000005, 0x20580c21, 0x00210e60, 0x00000003 },
+   { 0x00000041, 0x20580c21, 0x00210058, 0x00000019 },
+   { 0x00000020, 0x34001400, 0x00001400, 0x00210058 },
+   { 0x00800040, 0x2c004629, 0x00b109c0, 0x00b10a00 },
+   { 0x00800040, 0x2c204629, 0x00b10a00, 0x00b10a40 },
+   { 0x00800040, 0x2c404629, 0x00b10a40, 0x00b10a80 },
+   { 0x00800040, 0x2c604629, 0x00b10a80, 0x00b10ac0 },
+   { 0x00800040, 0x2c804629, 0x00b10ac0, 0x00b10b00 },
+   { 0x00800040, 0x2ca04629, 0x00b10b00, 0x00b10b40 },
+   { 0x00800040, 0x2cc04629, 0x00b10b40, 0x00b10b80 },
+   { 0x00800040, 0x2ce04629, 0x00b10b80, 0x00b10bc0 },
+   { 0x00800040, 0x2c004529, 0x00b10c00, 0x00b109c1 },
+   { 0x00800040, 0x2c204529, 0x00b10c20, 0x00b10a01 },
+   { 0x00800040, 0x2c404529, 0x00b10c40, 0x00b10a41 },
+   { 0x00800040, 0x2c604529, 0x00b10c60, 0x00b10a81 },
+   { 0x00800040, 0x2c804529, 0x00b10c80, 0x00b10ac1 },
+   { 0x00800040, 0x2ca04529, 0x00b10ca0, 0x00b10b01 },
+   { 0x00800040, 0x2cc04529, 0x00b10cc0, 0x00b10b41 },
+   { 0x00800040, 0x2ce04529, 0x00b10ce0, 0x00b10b81 },
+   { 0x00800040, 0x2c004529, 0x00b10c00, 0x00b10a01 },
+   { 0x00800040, 0x2c204529, 0x00b10c20, 0x00b10a41 },
+   { 0x00800040, 0x2c404529, 0x00b10c40, 0x00b10a81 },
+   { 0x00800040, 0x2c604529, 0x00b10c60, 0x00b10ac1 },
+   { 0x00800040, 0x2c804529, 0x00b10c80, 0x00b10b01 },
+   { 0x00800040, 0x2ca04529, 0x00b10ca0, 0x00b10b41 },
+   { 0x00800040, 0x2cc04529, 0x00b10cc0, 0x00b10b81 },
+   { 0x00800040, 0x2ce04529, 0x00b10ce0, 0x00b10bc1 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x0000004a },
+   { 0x00800040, 0x2c004629, 0x00b109c1, 0x00b10a01 },
+   { 0x00800040, 0x2c204629, 0x00b10a01, 0x00b10a41 },
+   { 0x00800040, 0x2c404629, 0x00b10a41, 0x00b10a81 },
+   { 0x00800040, 0x2c604629, 0x00b10a81, 0x00b10ac1 },
+   { 0x00800040, 0x2c804629, 0x00b10ac1, 0x00b10b01 },
+   { 0x00800040, 0x2ca04629, 0x00b10b01, 0x00b10b41 },
+   { 0x00800040, 0x2cc04629, 0x00b10b41, 0x00b10b81 },
+   { 0x00800040, 0x2ce04629, 0x00b10b81, 0x00b10bc1 },
+   { 0x00800040, 0x2c004529, 0x00b10c00, 0x00b109c2 },
+   { 0x00800040, 0x2c204529, 0x00b10c20, 0x00b10a02 },
+   { 0x00800040, 0x2c404529, 0x00b10c40, 0x00b10a42 },
+   { 0x00800040, 0x2c604529, 0x00b10c60, 0x00b10a82 },
+   { 0x00800040, 0x2c804529, 0x00b10c80, 0x00b10ac2 },
+   { 0x00800040, 0x2ca04529, 0x00b10ca0, 0x00b10b02 },
+   { 0x00800040, 0x2cc04529, 0x00b10cc0, 0x00b10b42 },
+   { 0x00800040, 0x2ce04529, 0x00b10ce0, 0x00b10b82 },
+   { 0x00800040, 0x2c004529, 0x00b10c00, 0x00b10a02 },
+   { 0x00800040, 0x2c204529, 0x00b10c20, 0x00b10a42 },
+   { 0x00800040, 0x2c404529, 0x00b10c40, 0x00b10a82 },
+   { 0x00800040, 0x2c604529, 0x00b10c60, 0x00b10ac2 },
+   { 0x00800040, 0x2c804529, 0x00b10c80, 0x00b10b02 },
+   { 0x00800040, 0x2ca04529, 0x00b10ca0, 0x00b10b42 },
+   { 0x00800040, 0x2cc04529, 0x00b10cc0, 0x00b10b82 },
+   { 0x00800040, 0x2ce04529, 0x00b10ce0, 0x00b10bc2 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000031 },
+   { 0x00800040, 0x2c004629, 0x00b109c2, 0x00b10a02 },
+   { 0x00800040, 0x2c204629, 0x00b10a02, 0x00b10a42 },
+   { 0x00800040, 0x2c404629, 0x00b10a42, 0x00b10a82 },
+   { 0x00800040, 0x2c604629, 0x00b10a82, 0x00b10ac2 },
+   { 0x00800040, 0x2c804629, 0x00b10ac2, 0x00b10b02 },
+   { 0x00800040, 0x2ca04629, 0x00b10b02, 0x00b10b42 },
+   { 0x00800040, 0x2cc04629, 0x00b10b42, 0x00b10b82 },
+   { 0x00800040, 0x2ce04629, 0x00b10b82, 0x00b10bc2 },
+   { 0x00800040, 0x2c004529, 0x00b10c00, 0x00b109c3 },
+   { 0x00800040, 0x2c204529, 0x00b10c20, 0x00b10a03 },
+   { 0x00800040, 0x2c404529, 0x00b10c40, 0x00b10a43 },
+   { 0x00800040, 0x2c604529, 0x00b10c60, 0x00b10a83 },
+   { 0x00800040, 0x2c804529, 0x00b10c80, 0x00b10ac3 },
+   { 0x00800040, 0x2ca04529, 0x00b10ca0, 0x00b10b03 },
+   { 0x00800040, 0x2cc04529, 0x00b10cc0, 0x00b10b43 },
+   { 0x00800040, 0x2ce04529, 0x00b10ce0, 0x00b10b83 },
+   { 0x00800040, 0x2c004529, 0x00b10c00, 0x00b10a03 },
+   { 0x00800040, 0x2c204529, 0x00b10c20, 0x00b10a43 },
+   { 0x00800040, 0x2c404529, 0x00b10c40, 0x00b10a83 },
+   { 0x00800040, 0x2c604529, 0x00b10c60, 0x00b10ac3 },
+   { 0x00800040, 0x2c804529, 0x00b10c80, 0x00b10b03 },
+   { 0x00800040, 0x2ca04529, 0x00b10ca0, 0x00b10b43 },
+   { 0x00800040, 0x2cc04529, 0x00b10cc0, 0x00b10b83 },
+   { 0x00800040, 0x2ce04529, 0x00b10ce0, 0x00b10bc3 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000018 },
+   { 0x00800040, 0x2c004629, 0x00b109c3, 0x00b10a03 },
+   { 0x00800040, 0x2c204629, 0x00b10a03, 0x00b10a43 },
+   { 0x00800040, 0x2c404629, 0x00b10a43, 0x00b10a83 },
+   { 0x00800040, 0x2c604629, 0x00b10a83, 0x00b10ac3 },
+   { 0x00800040, 0x2c804629, 0x00b10ac3, 0x00b10b03 },
+   { 0x00800040, 0x2ca04629, 0x00b10b03, 0x00b10b43 },
+   { 0x00800040, 0x2cc04629, 0x00b10b43, 0x00b10b83 },
+   { 0x00800040, 0x2ce04629, 0x00b10b83, 0x00b10bc3 },
+   { 0x00800040, 0x2c004529, 0x00b10c00, 0x00b109c4 },
+   { 0x00800040, 0x2c204529, 0x00b10c20, 0x00b10a04 },
+   { 0x00800040, 0x2c404529, 0x00b10c40, 0x00b10a44 },
+   { 0x00800040, 0x2c604529, 0x00b10c60, 0x00b10a84 },
+   { 0x00800040, 0x2c804529, 0x00b10c80, 0x00b10ac4 },
+   { 0x00800040, 0x2ca04529, 0x00b10ca0, 0x00b10b04 },
+   { 0x00800040, 0x2cc04529, 0x00b10cc0, 0x00b10b44 },
+   { 0x00800040, 0x2ce04529, 0x00b10ce0, 0x00b10b84 },
+   { 0x00800040, 0x2c004529, 0x00b10c00, 0x00b10a04 },
+   { 0x00800040, 0x2c204529, 0x00b10c20, 0x00b10a44 },
+   { 0x00800040, 0x2c404529, 0x00b10c40, 0x00b10a84 },
+   { 0x00800040, 0x2c604529, 0x00b10c60, 0x00b10ac4 },
+   { 0x00800040, 0x2c804529, 0x00b10c80, 0x00b10b04 },
+   { 0x00800040, 0x2ca04529, 0x00b10ca0, 0x00b10b44 },
+   { 0x00800040, 0x2cc04529, 0x00b10cc0, 0x00b10b84 },
+   { 0x00800040, 0x2ce04529, 0x00b10ce0, 0x00b10bc4 },
+   { 0x00800008, 0x2c002d29, 0x00b10c00, 0x00020002 },
+   { 0x00800008, 0x2c202d29, 0x00b10c20, 0x00020002 },
+   { 0x00800008, 0x2c402d29, 0x00b10c40, 0x00020002 },
+   { 0x00800008, 0x2c602d29, 0x00b10c60, 0x00020002 },
+   { 0x00800008, 0x2c802d29, 0x00b10c80, 0x00020002 },
+   { 0x00800008, 0x2ca02d29, 0x00b10ca0, 0x00020002 },
+   { 0x00800008, 0x2cc02d29, 0x00b10cc0, 0x00020002 },
+   { 0x00800008, 0x2ce02d29, 0x00b10ce0, 0x00020002 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x0000009a },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
+   { 0x00800031, 0x29c01d29, 0x008d0e60, 0x0411a007 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00800031, 0x2a001d29, 0x008d0e60, 0x0411a007 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00800031, 0x2a401d29, 0x008d0e60, 0x0411a007 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00800031, 0x2a801d29, 0x008d0e60, 0x0411a007 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0007001f },
+   { 0x00800031, 0x2ac01d29, 0x008d0e60, 0x0418a007 },
+   { 0x00000005, 0x20580c21, 0x00210e60, 0x00000003 },
+   { 0x00000041, 0x20580c21, 0x00210058, 0x00000009 },
+   { 0x00000020, 0x34001400, 0x00001400, 0x00210058 },
+   { 0x80800042, 0x2c004629, 0x00b109c0, 0x00b109c1 },
+   { 0x80800042, 0x2c204629, 0x00b10a00, 0x00b10a01 },
+   { 0x80800042, 0x2c404629, 0x00b10a40, 0x00b10a41 },
+   { 0x80800042, 0x2c604629, 0x00b10a80, 0x00b10a81 },
+   { 0x80800042, 0x2c804629, 0x00b10ac0, 0x00b10ac1 },
+   { 0x80800042, 0x2ca04629, 0x00b10b00, 0x00b10b01 },
+   { 0x80800042, 0x2cc04629, 0x00b10b40, 0x00b10b41 },
+   { 0x80800042, 0x2ce04629, 0x00b10b80, 0x00b10b81 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x0000001a },
+   { 0x80800042, 0x2c004629, 0x00b109c1, 0x00b109c2 },
+   { 0x80800042, 0x2c204629, 0x00b10a01, 0x00b10a02 },
+   { 0x80800042, 0x2c404629, 0x00b10a41, 0x00b10a42 },
+   { 0x80800042, 0x2c604629, 0x00b10a81, 0x00b10a82 },
+   { 0x80800042, 0x2c804629, 0x00b10ac1, 0x00b10ac2 },
+   { 0x80800042, 0x2ca04629, 0x00b10b01, 0x00b10b02 },
+   { 0x80800042, 0x2cc04629, 0x00b10b41, 0x00b10b42 },
+   { 0x80800042, 0x2ce04629, 0x00b10b81, 0x00b10b82 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000011 },
+   { 0x80800042, 0x2c004629, 0x00b109c2, 0x00b109c3 },
+   { 0x80800042, 0x2c204629, 0x00b10a02, 0x00b10a03 },
+   { 0x80800042, 0x2c404629, 0x00b10a42, 0x00b10a43 },
+   { 0x80800042, 0x2c604629, 0x00b10a82, 0x00b10a83 },
+   { 0x80800042, 0x2c804629, 0x00b10ac2, 0x00b10ac3 },
+   { 0x80800042, 0x2ca04629, 0x00b10b02, 0x00b10b03 },
+   { 0x80800042, 0x2cc04629, 0x00b10b42, 0x00b10b43 },
+   { 0x80800042, 0x2ce04629, 0x00b10b82, 0x00b10b83 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000008 },
+   { 0x80800042, 0x2c004629, 0x00b109c3, 0x00b109c4 },
+   { 0x80800042, 0x2c204629, 0x00b10a03, 0x00b10a04 },
+   { 0x80800042, 0x2c404629, 0x00b10a43, 0x00b10a44 },
+   { 0x80800042, 0x2c604629, 0x00b10a83, 0x00b10a84 },
+   { 0x80800042, 0x2c804629, 0x00b10ac3, 0x00b10ac4 },
+   { 0x80800042, 0x2ca04629, 0x00b10b03, 0x00b10b04 },
+   { 0x80800042, 0x2cc04629, 0x00b10b43, 0x00b10b44 },
+   { 0x80800042, 0x2ce04629, 0x00b10b83, 0x00b10b84 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000068 },
+   { 0x01000005, 0x20002d3c, 0x0021003c, 0x00010001 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x00000035 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
+   { 0x00800031, 0x29c01d29, 0x008d0e60, 0x0411a007 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00800031, 0x2a001d29, 0x008d0e60, 0x0411a007 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00800031, 0x2a401d29, 0x008d0e60, 0x0411a007 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00800031, 0x2a801d29, 0x008d0e60, 0x0411a007 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0007001f },
+   { 0x00800031, 0x2ac01d29, 0x008d0e60, 0x0418a007 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
+   { 0x00800031, 0x2bc01d29, 0x008d0e60, 0x0411a007 },
+   { 0x00000005, 0x20580c21, 0x00210e60, 0x00000003 },
+   { 0x00000041, 0x20580c21, 0x00210058, 0x00000009 },
+   { 0x00000020, 0x34001400, 0x00001400, 0x00210058 },
+   { 0x80800042, 0x2c004629, 0x00b109c0, 0x00b10a00 },
+   { 0x80800042, 0x2c204629, 0x00b10a00, 0x00b10a40 },
+   { 0x80800042, 0x2c404629, 0x00b10a40, 0x00b10a80 },
+   { 0x80800042, 0x2c604629, 0x00b10a80, 0x00b10ac0 },
+   { 0x80800042, 0x2c804629, 0x00b10ac0, 0x00b10b00 },
+   { 0x80800042, 0x2ca04629, 0x00b10b00, 0x00b10b40 },
+   { 0x80800042, 0x2cc04629, 0x00b10b40, 0x00b10b80 },
+   { 0x80800042, 0x2ce04629, 0x00b10b80, 0x00b10bc0 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x0000001a },
+   { 0x80800042, 0x2c004629, 0x00b109c1, 0x00b10a01 },
+   { 0x80800042, 0x2c204629, 0x00b10a01, 0x00b10a41 },
+   { 0x80800042, 0x2c404629, 0x00b10a41, 0x00b10a81 },
+   { 0x80800042, 0x2c604629, 0x00b10a81, 0x00b10ac1 },
+   { 0x80800042, 0x2c804629, 0x00b10ac1, 0x00b10b01 },
+   { 0x80800042, 0x2ca04629, 0x00b10b01, 0x00b10b41 },
+   { 0x80800042, 0x2cc04629, 0x00b10b41, 0x00b10b81 },
+   { 0x80800042, 0x2ce04629, 0x00b10b81, 0x00b10bc1 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000011 },
+   { 0x80800042, 0x2c004629, 0x00b109c2, 0x00b10a02 },
+   { 0x80800042, 0x2c204629, 0x00b10a02, 0x00b10a42 },
+   { 0x80800042, 0x2c404629, 0x00b10a42, 0x00b10a82 },
+   { 0x80800042, 0x2c604629, 0x00b10a82, 0x00b10ac2 },
+   { 0x80800042, 0x2c804629, 0x00b10ac2, 0x00b10b02 },
+   { 0x80800042, 0x2ca04629, 0x00b10b02, 0x00b10b42 },
+   { 0x80800042, 0x2cc04629, 0x00b10b42, 0x00b10b82 },
+   { 0x80800042, 0x2ce04629, 0x00b10b82, 0x00b10bc2 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000008 },
+   { 0x80800042, 0x2c004629, 0x00b109c3, 0x00b10a03 },
+   { 0x80800042, 0x2c204629, 0x00b10a03, 0x00b10a43 },
+   { 0x80800042, 0x2c404629, 0x00b10a43, 0x00b10a83 },
+   { 0x80800042, 0x2c604629, 0x00b10a83, 0x00b10ac3 },
+   { 0x80800042, 0x2c804629, 0x00b10ac3, 0x00b10b03 },
+   { 0x80800042, 0x2ca04629, 0x00b10b03, 0x00b10b43 },
+   { 0x80800042, 0x2cc04629, 0x00b10b43, 0x00b10b83 },
+   { 0x80800042, 0x2ce04629, 0x00b10b83, 0x00b10bc3 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000031 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
+   { 0x00800031, 0x29c01d29, 0x008d0e60, 0x0411a007 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00800031, 0x2a001d29, 0x008d0e60, 0x0411a007 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00800031, 0x2a401d29, 0x008d0e60, 0x0411a007 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00800031, 0x2a801d29, 0x008d0e60, 0x0411a007 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0007001f },
+   { 0x00800031, 0x2ac01d29, 0x008d0e60, 0x0418a007 },
+   { 0x00000005, 0x20580c21, 0x00210e60, 0x00000003 },
+   { 0x00000041, 0x20580c21, 0x00210058, 0x00000009 },
+   { 0x00000020, 0x34001400, 0x00001400, 0x00210058 },
+   { 0x00800001, 0x2c000229, 0x00b109c0, 0x00000000 },
+   { 0x00800001, 0x2c200229, 0x00b10a00, 0x00000000 },
+   { 0x00800001, 0x2c400229, 0x00b10a40, 0x00000000 },
+   { 0x00800001, 0x2c600229, 0x00b10a80, 0x00000000 },
+   { 0x00800001, 0x2c800229, 0x00b10ac0, 0x00000000 },
+   { 0x00800001, 0x2ca00229, 0x00b10b00, 0x00000000 },
+   { 0x00800001, 0x2cc00229, 0x00b10b40, 0x00000000 },
+   { 0x00800001, 0x2ce00229, 0x00b10b80, 0x00000000 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x0000001a },
+   { 0x00800001, 0x2c000229, 0x00b109c1, 0x00000000 },
+   { 0x00800001, 0x2c200229, 0x00b10a01, 0x00000000 },
+   { 0x00800001, 0x2c400229, 0x00b10a41, 0x00000000 },
+   { 0x00800001, 0x2c600229, 0x00b10a81, 0x00000000 },
+   { 0x00800001, 0x2c800229, 0x00b10ac1, 0x00000000 },
+   { 0x00800001, 0x2ca00229, 0x00b10b01, 0x00000000 },
+   { 0x00800001, 0x2cc00229, 0x00b10b41, 0x00000000 },
+   { 0x00800001, 0x2ce00229, 0x00b10b81, 0x00000000 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000011 },
+   { 0x00800001, 0x2c000229, 0x00b109c2, 0x00000000 },
+   { 0x00800001, 0x2c200229, 0x00b10a02, 0x00000000 },
+   { 0x00800001, 0x2c400229, 0x00b10a42, 0x00000000 },
+   { 0x00800001, 0x2c600229, 0x00b10a82, 0x00000000 },
+   { 0x00800001, 0x2c800229, 0x00b10ac2, 0x00000000 },
+   { 0x00800001, 0x2ca00229, 0x00b10b02, 0x00000000 },
+   { 0x00800001, 0x2cc00229, 0x00b10b42, 0x00000000 },
+   { 0x00800001, 0x2ce00229, 0x00b10b82, 0x00000000 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000008 },
+   { 0x00800001, 0x2c000229, 0x00b109c3, 0x00000000 },
+   { 0x00800001, 0x2c200229, 0x00b10a03, 0x00000000 },
+   { 0x00800001, 0x2c400229, 0x00b10a43, 0x00000000 },
+   { 0x00800001, 0x2c600229, 0x00b10a83, 0x00000000 },
+   { 0x00800001, 0x2c800229, 0x00b10ac3, 0x00000000 },
+   { 0x00800001, 0x2ca00229, 0x00b10b03, 0x00000000 },
+   { 0x00800001, 0x2cc00229, 0x00b10b43, 0x00000000 },
+   { 0x00800001, 0x2ce00229, 0x00b10b83, 0x00000000 },
+   { 0x80800042, 0x23802529, 0x00b10680, 0x00b10380 },
+   { 0x80800042, 0x23a02529, 0x00b106a0, 0x00b10c00 },
+   { 0x80800042, 0x23c02529, 0x00b106c0, 0x00b103c0 },
+   { 0x80800042, 0x23e02529, 0x00b106e0, 0x00b10c20 },
+   { 0x80800042, 0x24002529, 0x00b10700, 0x00b10400 },
+   { 0x80800042, 0x24202529, 0x00b10720, 0x00b10c40 },
+   { 0x80800042, 0x24402529, 0x00b10740, 0x00b10440 },
+   { 0x80800042, 0x24602529, 0x00b10760, 0x00b10c60 },
+   { 0x80800042, 0x24802529, 0x00b10780, 0x00b10480 },
+   { 0x80800042, 0x24a02529, 0x00b107a0, 0x00b10c80 },
+   { 0x80800042, 0x24c02529, 0x00b107c0, 0x00b104c0 },
+   { 0x80800042, 0x24e02529, 0x00b107e0, 0x00b10ca0 },
+   { 0x80800042, 0x25002529, 0x00b10800, 0x00b10500 },
+   { 0x80800042, 0x25202529, 0x00b10820, 0x00b10cc0 },
+   { 0x80800042, 0x25402529, 0x00b10840, 0x00b10540 },
+   { 0x80800042, 0x25602529, 0x00b10860, 0x00b10ce0 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0007000f },
+   { 0x0020000c, 0x2e6e3dad, 0x00450032, 0x00020002 },
+   { 0x0020000c, 0x2e601ca5, 0x00450e80, 0x00000001 },
+   { 0x00200040, 0x2e6034a5, 0x00450e60, 0x00450e6e },
+   { 0x00000005, 0x2e640c21, 0x00210e64, 0xfffffffe },
+   { 0x02000005, 0x20002e3c, 0x0021003f, 0x00020002 },
+   { 0x00010040, 0x2e640c21, 0x00210e64, 0x00000001 },
+   { 0x01000005, 0x20002d3c, 0x00210032, 0x00020002 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x000000a2 },
+   { 0x01000005, 0x20002d3c, 0x00210034, 0x00020002 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x00000076 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0007000f },
+   { 0x00800031, 0x2ac01d29, 0x00ad0e60, 0x0414a008 },
+   { 0x00800031, 0x2b601d29, 0x00ad0e60, 0x0414a009 },
+   { 0x00000005, 0x20580c21, 0x00210e60, 0x00000003 },
+   { 0x00000041, 0x20580c21, 0x00210058, 0x00000019 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0001000f },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 },
+   { 0x00800031, 0x2b401d29, 0x00ad0e60, 0x0411a008 },
+   { 0x00800031, 0x2be01d29, 0x00ad0e60, 0x0411a009 },
+   { 0x00000020, 0x34001400, 0x00001400, 0x00210058 },
+   { 0x00800040, 0x29c04629, 0x00ad0ac0, 0x00ad0ae0 },
+   { 0x00800040, 0x29e04629, 0x00ad0ae0, 0x00ad0b00 },
+   { 0x00800040, 0x2a004629, 0x00ad0b00, 0x00ad0b20 },
+   { 0x00800040, 0x2a204629, 0x00ad0b20, 0x00ad0b40 },
+   { 0x00800040, 0x29c04529, 0x00ad09c0, 0x00ad0ac1 },
+   { 0x00800040, 0x29e04529, 0x00ad09e0, 0x00ad0ae1 },
+   { 0x00800040, 0x2a004529, 0x00ad0a00, 0x00ad0b01 },
+   { 0x00800040, 0x2a204529, 0x00ad0a20, 0x00ad0b21 },
+   { 0x00800040, 0x29c04529, 0x00ad09c0, 0x00ad0ae1 },
+   { 0x00800040, 0x29e04529, 0x00ad09e0, 0x00ad0b01 },
+   { 0x00800040, 0x2a004529, 0x00ad0a00, 0x00ad0b21 },
+   { 0x00800040, 0x2a204529, 0x00ad0a20, 0x00ad0b41 },
+   { 0x00800040, 0x2a404629, 0x00ad0b60, 0x00ad0b80 },
+   { 0x00800040, 0x2a604629, 0x00ad0b80, 0x00ad0ba0 },
+   { 0x00800040, 0x2a804629, 0x00ad0ba0, 0x00ad0bc0 },
+   { 0x00800040, 0x2aa04629, 0x00ad0bc0, 0x00ad0be0 },
+   { 0x00800040, 0x2a404529, 0x00ad0a40, 0x00ad0b61 },
+   { 0x00800040, 0x2a604529, 0x00ad0a60, 0x00ad0b81 },
+   { 0x00800040, 0x2a804529, 0x00ad0a80, 0x00ad0ba1 },
+   { 0x00800040, 0x2aa04529, 0x00ad0aa0, 0x00ad0bc1 },
+   { 0x00800040, 0x2a404529, 0x00ad0a40, 0x00ad0b81 },
+   { 0x00800040, 0x2a604529, 0x00ad0a60, 0x00ad0ba1 },
+   { 0x00800040, 0x2a804529, 0x00ad0a80, 0x00ad0bc1 },
+   { 0x00800040, 0x2aa04529, 0x00ad0aa0, 0x00ad0be1 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x0000004a },
+   { 0x00800040, 0x29c04629, 0x00ad0ac1, 0x00ad0ae1 },
+   { 0x00800040, 0x29e04629, 0x00ad0ae1, 0x00ad0b01 },
+   { 0x00800040, 0x2a004629, 0x00ad0b01, 0x00ad0b21 },
+   { 0x00800040, 0x2a204629, 0x00ad0b21, 0x00ad0b41 },
+   { 0x00800040, 0x29c04529, 0x00ad09c0, 0x00ad0ac2 },
+   { 0x00800040, 0x29e04529, 0x00ad09e0, 0x00ad0ae2 },
+   { 0x00800040, 0x2a004529, 0x00ad0a00, 0x00ad0b02 },
+   { 0x00800040, 0x2a204529, 0x00ad0a20, 0x00ad0b22 },
+   { 0x00800040, 0x29c04529, 0x00ad09c0, 0x00ad0ae2 },
+   { 0x00800040, 0x29e04529, 0x00ad09e0, 0x00ad0b02 },
+   { 0x00800040, 0x2a004529, 0x00ad0a00, 0x00ad0b22 },
+   { 0x00800040, 0x2a204529, 0x00ad0a20, 0x00ad0b42 },
+   { 0x00800040, 0x2a404629, 0x00ad0b61, 0x00ad0b81 },
+   { 0x00800040, 0x2a604629, 0x00ad0b81, 0x00ad0ba1 },
+   { 0x00800040, 0x2a804629, 0x00ad0ba1, 0x00ad0bc1 },
+   { 0x00800040, 0x2aa04629, 0x00ad0bc1, 0x00ad0be1 },
+   { 0x00800040, 0x2a404529, 0x00ad0a40, 0x00ad0b62 },
+   { 0x00800040, 0x2a604529, 0x00ad0a60, 0x00ad0b82 },
+   { 0x00800040, 0x2a804529, 0x00ad0a80, 0x00ad0ba2 },
+   { 0x00800040, 0x2aa04529, 0x00ad0aa0, 0x00ad0bc2 },
+   { 0x00800040, 0x2a404529, 0x00ad0a40, 0x00ad0b82 },
+   { 0x00800040, 0x2a604529, 0x00ad0a60, 0x00ad0ba2 },
+   { 0x00800040, 0x2a804529, 0x00ad0a80, 0x00ad0bc2 },
+   { 0x00800040, 0x2aa04529, 0x00ad0aa0, 0x00ad0be2 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000031 },
+   { 0x00800040, 0x29c04629, 0x00ad0ac2, 0x00ad0ae2 },
+   { 0x00800040, 0x29e04629, 0x00ad0ae2, 0x00ad0b02 },
+   { 0x00800040, 0x2a004629, 0x00ad0b02, 0x00ad0b22 },
+   { 0x00800040, 0x2a204629, 0x00ad0b22, 0x00ad0b42 },
+   { 0x00800040, 0x29c04529, 0x00ad09c0, 0x00ad0ac3 },
+   { 0x00800040, 0x29e04529, 0x00ad09e0, 0x00ad0ae3 },
+   { 0x00800040, 0x2a004529, 0x00ad0a00, 0x00ad0b03 },
+   { 0x00800040, 0x2a204529, 0x00ad0a20, 0x00ad0b23 },
+   { 0x00800040, 0x29c04529, 0x00ad09c0, 0x00ad0ae3 },
+   { 0x00800040, 0x29e04529, 0x00ad09e0, 0x00ad0b03 },
+   { 0x00800040, 0x2a004529, 0x00ad0a00, 0x00ad0b23 },
+   { 0x00800040, 0x2a204529, 0x00ad0a20, 0x00ad0b43 },
+   { 0x00800040, 0x2a404629, 0x00ad0b62, 0x00ad0b82 },
+   { 0x00800040, 0x2a604629, 0x00ad0b82, 0x00ad0ba2 },
+   { 0x00800040, 0x2a804629, 0x00ad0ba2, 0x00ad0bc2 },
+   { 0x00800040, 0x2aa04629, 0x00ad0bc2, 0x00ad0be2 },
+   { 0x00800040, 0x2a404529, 0x00ad0a40, 0x00ad0b63 },
+   { 0x00800040, 0x2a604529, 0x00ad0a60, 0x00ad0b83 },
+   { 0x00800040, 0x2a804529, 0x00ad0a80, 0x00ad0ba3 },
+   { 0x00800040, 0x2aa04529, 0x00ad0aa0, 0x00ad0bc3 },
+   { 0x00800040, 0x2a404529, 0x00ad0a40, 0x00ad0b83 },
+   { 0x00800040, 0x2a604529, 0x00ad0a60, 0x00ad0ba3 },
+   { 0x00800040, 0x2a804529, 0x00ad0a80, 0x00ad0bc3 },
+   { 0x00800040, 0x2aa04529, 0x00ad0aa0, 0x00ad0be3 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000018 },
+   { 0x00800040, 0x29c04629, 0x00ad0ac3, 0x00ad0ae3 },
+   { 0x00800040, 0x29e04629, 0x00ad0ae3, 0x00ad0b03 },
+   { 0x00800040, 0x2a004629, 0x00ad0b03, 0x00ad0b23 },
+   { 0x00800040, 0x2a204629, 0x00ad0b23, 0x00ad0b43 },
+   { 0x00800040, 0x29c04529, 0x00ad09c0, 0x00ad0ac4 },
+   { 0x00800040, 0x29e04529, 0x00ad09e0, 0x00ad0ae4 },
+   { 0x00800040, 0x2a004529, 0x00ad0a00, 0x00ad0b04 },
+   { 0x00800040, 0x2a204529, 0x00ad0a20, 0x00ad0b24 },
+   { 0x00800040, 0x29c04529, 0x00ad09c0, 0x00ad0ae4 },
+   { 0x00800040, 0x29e04529, 0x00ad09e0, 0x00ad0b04 },
+   { 0x00800040, 0x2a004529, 0x00ad0a00, 0x00ad0b24 },
+   { 0x00800040, 0x2a204529, 0x00ad0a20, 0x00ad0b44 },
+   { 0x00800040, 0x2a404629, 0x00ad0b63, 0x00ad0b83 },
+   { 0x00800040, 0x2a604629, 0x00ad0b83, 0x00ad0ba3 },
+   { 0x00800040, 0x2a804629, 0x00ad0ba3, 0x00ad0bc3 },
+   { 0x00800040, 0x2aa04629, 0x00ad0bc3, 0x00ad0be3 },
+   { 0x00800040, 0x2a404529, 0x00ad0a40, 0x00ad0b64 },
+   { 0x00800040, 0x2a604529, 0x00ad0a60, 0x00ad0b84 },
+   { 0x00800040, 0x2a804529, 0x00ad0a80, 0x00ad0ba4 },
+   { 0x00800040, 0x2aa04529, 0x00ad0aa0, 0x00ad0bc4 },
+   { 0x00800040, 0x2a404529, 0x00ad0a40, 0x00ad0b84 },
+   { 0x00800040, 0x2a604529, 0x00ad0a60, 0x00ad0ba4 },
+   { 0x00800040, 0x2a804529, 0x00ad0a80, 0x00ad0bc4 },
+   { 0x00800040, 0x2aa04529, 0x00ad0aa0, 0x00ad0be4 },
+   { 0x80800008, 0x29c02d29, 0x00b109c0, 0x00020002 },
+   { 0x80800008, 0x29e02d29, 0x00b109e0, 0x00020002 },
+   { 0x80800008, 0x2a002d29, 0x00b10a00, 0x00020002 },
+   { 0x80800008, 0x2a202d29, 0x00b10a20, 0x00020002 },
+   { 0x80800008, 0x2a402d29, 0x00b10a40, 0x00020002 },
+   { 0x80800008, 0x2a602d29, 0x00b10a60, 0x00020002 },
+   { 0x80800008, 0x2a802d29, 0x00b10a80, 0x00020002 },
+   { 0x80800008, 0x2aa02d29, 0x00b10aa0, 0x00020002 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000082 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0007000f },
+   { 0x00800031, 0x2ac01d29, 0x00ad0e60, 0x0414a008 },
+   { 0x00800031, 0x2b601d29, 0x00ad0e60, 0x0414a009 },
+   { 0x00000005, 0x20580c21, 0x00210e60, 0x00000003 },
+   { 0x00000041, 0x20580c21, 0x00210058, 0x00000009 },
+   { 0x00000020, 0x34001400, 0x00001400, 0x00210058 },
+   { 0x80800042, 0x29c04629, 0x00ad0ac0, 0x00ad0ac1 },
+   { 0x80800042, 0x29e04629, 0x00ad0ae0, 0x00ad0ae1 },
+   { 0x80800042, 0x2a004629, 0x00ad0b00, 0x00ad0b01 },
+   { 0x80800042, 0x2a204629, 0x00ad0b20, 0x00ad0b21 },
+   { 0x80800042, 0x2a404629, 0x00ad0b60, 0x00ad0b61 },
+   { 0x80800042, 0x2a604629, 0x00ad0b80, 0x00ad0b81 },
+   { 0x80800042, 0x2a804629, 0x00ad0ba0, 0x00ad0ba1 },
+   { 0x80800042, 0x2aa04629, 0x00ad0bc0, 0x00ad0bc1 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x0000001a },
+   { 0x80800042, 0x29c04629, 0x00ad0ac1, 0x00ad0ac2 },
+   { 0x80800042, 0x29e04629, 0x00ad0ae1, 0x00ad0ae2 },
+   { 0x80800042, 0x2a004629, 0x00ad0b01, 0x00ad0b02 },
+   { 0x80800042, 0x2a204629, 0x00ad0b21, 0x00ad0b22 },
+   { 0x80800042, 0x2a404629, 0x00ad0b61, 0x00ad0b62 },
+   { 0x80800042, 0x2a604629, 0x00ad0b81, 0x00ad0b82 },
+   { 0x80800042, 0x2a804629, 0x00ad0ba1, 0x00ad0ba2 },
+   { 0x80800042, 0x2aa04629, 0x00ad0bc1, 0x00ad0bc2 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000011 },
+   { 0x80800042, 0x29c04629, 0x00ad0ac2, 0x00ad0ac3 },
+   { 0x80800042, 0x29e04629, 0x00ad0ae2, 0x00ad0ae3 },
+   { 0x80800042, 0x2a004629, 0x00ad0b02, 0x00ad0b03 },
+   { 0x80800042, 0x2a204629, 0x00ad0b22, 0x00ad0b23 },
+   { 0x80800042, 0x2a404629, 0x00ad0b62, 0x00ad0b63 },
+   { 0x80800042, 0x2a604629, 0x00ad0b82, 0x00ad0b83 },
+   { 0x80800042, 0x2a804629, 0x00ad0ba2, 0x00ad0ba3 },
+   { 0x80800042, 0x2aa04629, 0x00ad0bc2, 0x00ad0bc3 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000008 },
+   { 0x80800042, 0x29c04629, 0x00ad0ac3, 0x00ad0ac4 },
+   { 0x80800042, 0x29e04629, 0x00ad0ae3, 0x00ad0ae4 },
+   { 0x80800042, 0x2a004629, 0x00ad0b03, 0x00ad0b04 },
+   { 0x80800042, 0x2a204629, 0x00ad0b23, 0x00ad0b24 },
+   { 0x80800042, 0x2a404629, 0x00ad0b63, 0x00ad0b64 },
+   { 0x80800042, 0x2a604629, 0x00ad0b83, 0x00ad0b84 },
+   { 0x80800042, 0x2a804629, 0x00ad0ba3, 0x00ad0ba4 },
+   { 0x80800042, 0x2aa04629, 0x00ad0bc3, 0x00ad0bc4 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000058 },
+   { 0x01000005, 0x20002d3c, 0x00210034, 0x00020002 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x0000002d },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0007000f },
+   { 0x00800031, 0x2ac01d29, 0x00ad0e60, 0x0414a008 },
+   { 0x00800031, 0x2b601d29, 0x00ad0e60, 0x0414a009 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0000000f },
+   { 0x00800031, 0x2b401d29, 0x00ad0e60, 0x0411a008 },
+   { 0x00800031, 0x2be01d29, 0x00ad0e60, 0x0411a009 },
+   { 0x00000005, 0x20580c21, 0x00210e60, 0x00000003 },
+   { 0x00000041, 0x20580c21, 0x00210058, 0x00000009 },
+   { 0x00000020, 0x34001400, 0x00001400, 0x00210058 },
+   { 0x80800042, 0x29c04629, 0x00ad0ac0, 0x00ad0ae0 },
+   { 0x80800042, 0x29e04629, 0x00ad0ae0, 0x00ad0b00 },
+   { 0x80800042, 0x2a004629, 0x00ad0b00, 0x00ad0b20 },
+   { 0x80800042, 0x2a204629, 0x00ad0b20, 0x00ad0b40 },
+   { 0x80800042, 0x2a404629, 0x00ad0b60, 0x00ad0b80 },
+   { 0x80800042, 0x2a604629, 0x00ad0b80, 0x00ad0ba0 },
+   { 0x80800042, 0x2a804629, 0x00ad0ba0, 0x00ad0bc0 },
+   { 0x80800042, 0x2aa04629, 0x00ad0bc0, 0x00ad0be0 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x0000001a },
+   { 0x80800042, 0x29c04629, 0x00ad0ac1, 0x00ad0ae1 },
+   { 0x80800042, 0x29e04629, 0x00ad0ae1, 0x00ad0b01 },
+   { 0x80800042, 0x2a004629, 0x00ad0b01, 0x00ad0b21 },
+   { 0x80800042, 0x2a204629, 0x00ad0b21, 0x00ad0b41 },
+   { 0x80800042, 0x2a404629, 0x00ad0b61, 0x00ad0b81 },
+   { 0x80800042, 0x2a604629, 0x00ad0b81, 0x00ad0ba1 },
+   { 0x80800042, 0x2a804629, 0x00ad0ba1, 0x00ad0bc1 },
+   { 0x80800042, 0x2aa04629, 0x00ad0bc1, 0x00ad0be1 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000011 },
+   { 0x80800042, 0x29c04629, 0x00ad0ac2, 0x00ad0ae2 },
+   { 0x80800042, 0x29e04629, 0x00ad0ae2, 0x00ad0b02 },
+   { 0x80800042, 0x2a004629, 0x00ad0b02, 0x00ad0b22 },
+   { 0x80800042, 0x2a204629, 0x00ad0b22, 0x00ad0b42 },
+   { 0x80800042, 0x2a404629, 0x00ad0b62, 0x00ad0b82 },
+   { 0x80800042, 0x2a604629, 0x00ad0b82, 0x00ad0ba2 },
+   { 0x80800042, 0x2a804629, 0x00ad0ba2, 0x00ad0bc2 },
+   { 0x80800042, 0x2aa04629, 0x00ad0bc2, 0x00ad0be2 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000008 },
+   { 0x80800042, 0x29c04629, 0x00ad0ac3, 0x00ad0ac3 },
+   { 0x80800042, 0x29e04629, 0x00ad0ae3, 0x00ad0ae3 },
+   { 0x80800042, 0x2a004629, 0x00ad0b03, 0x00ad0b03 },
+   { 0x80800042, 0x2a204629, 0x00ad0b23, 0x00ad0b23 },
+   { 0x80800042, 0x2a404629, 0x00ad0b63, 0x00ad0b63 },
+   { 0x80800042, 0x2a604629, 0x00ad0b83, 0x00ad0b83 },
+   { 0x80800042, 0x2a804629, 0x00ad0ba3, 0x00ad0ba3 },
+   { 0x80800042, 0x2aa04629, 0x00ad0bc3, 0x00ad0bc3 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000029 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0007000f },
+   { 0x00800031, 0x2ac01d29, 0x00ad0e60, 0x0414a008 },
+   { 0x00800031, 0x2b601d29, 0x00ad0e60, 0x0414a009 },
+   { 0x00000005, 0x20580c21, 0x00210e60, 0x00000003 },
+   { 0x00000041, 0x20580c21, 0x00210058, 0x00000009 },
+   { 0x00000020, 0x34001400, 0x00001400, 0x00210058 },
+   { 0x00800001, 0x29c00229, 0x00ad0ac0, 0x00000000 },
+   { 0x00800001, 0x29e00229, 0x00ad0ae0, 0x00000000 },
+   { 0x00800001, 0x2a000229, 0x00ad0b00, 0x00000000 },
+   { 0x00800001, 0x2a200229, 0x00ad0b20, 0x00000000 },
+   { 0x00800001, 0x2a400229, 0x00ad0b60, 0x00000000 },
+   { 0x00800001, 0x2a600229, 0x00ad0b80, 0x00000000 },
+   { 0x00800001, 0x2a800229, 0x00ad0ba0, 0x00000000 },
+   { 0x00800001, 0x2aa00229, 0x00ad0bc0, 0x00000000 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x0000001a },
+   { 0x00800001, 0x29c00229, 0x00ad0ac1, 0x00000000 },
+   { 0x00800001, 0x29e00229, 0x00ad0ae1, 0x00000000 },
+   { 0x00800001, 0x2a000229, 0x00ad0b01, 0x00000000 },
+   { 0x00800001, 0x2a200229, 0x00ad0b21, 0x00000000 },
+   { 0x00800001, 0x2a400229, 0x00ad0b61, 0x00000000 },
+   { 0x00800001, 0x2a600229, 0x00ad0b81, 0x00000000 },
+   { 0x00800001, 0x2a800229, 0x00ad0ba1, 0x00000000 },
+   { 0x00800001, 0x2aa00229, 0x00ad0bc1, 0x00000000 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000011 },
+   { 0x00800001, 0x29c00229, 0x00ad0ac2, 0x00000000 },
+   { 0x00800001, 0x29e00229, 0x00ad0ae2, 0x00000000 },
+   { 0x00800001, 0x2a000229, 0x00ad0b02, 0x00000000 },
+   { 0x00800001, 0x2a200229, 0x00ad0b22, 0x00000000 },
+   { 0x00800001, 0x2a400229, 0x00ad0b62, 0x00000000 },
+   { 0x00800001, 0x2a600229, 0x00ad0b82, 0x00000000 },
+   { 0x00800001, 0x2a800229, 0x00ad0ba2, 0x00000000 },
+   { 0x00800001, 0x2aa00229, 0x00ad0bc2, 0x00000000 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000008 },
+   { 0x00800001, 0x29c00229, 0x00ad0ac3, 0x00000000 },
+   { 0x00800001, 0x29e00229, 0x00ad0ae3, 0x00000000 },
+   { 0x00800001, 0x2a000229, 0x00ad0b03, 0x00000000 },
+   { 0x00800001, 0x2a200229, 0x00ad0b23, 0x00000000 },
+   { 0x00800001, 0x2a400229, 0x00ad0b63, 0x00000000 },
+   { 0x00800001, 0x2a600229, 0x00ad0b83, 0x00000000 },
+   { 0x00800001, 0x2a800229, 0x00ad0ba3, 0x00000000 },
+   { 0x00800001, 0x2aa00229, 0x00ad0bc3, 0x00000000 },
+   { 0x00600001, 0x25800129, 0x008d09c0, 0x00000000 },
+   { 0x00600001, 0x25a00129, 0x008d09e0, 0x00000000 },
+   { 0x00600001, 0x25c00129, 0x008d0a00, 0x00000000 },
+   { 0x00600001, 0x25e00129, 0x008d0a20, 0x00000000 },
+   { 0x00600001, 0x26000129, 0x008d0a40, 0x00000000 },
+   { 0x00600001, 0x26200129, 0x008d0a60, 0x00000000 },
+   { 0x00600001, 0x26400129, 0x008d0a80, 0x00000000 },
+   { 0x00600001, 0x26600129, 0x008d0aa0, 0x00000000 },
+   { 0x0020000c, 0x2e6e3dad, 0x0045003a, 0x00020002 },
+   { 0x0020000c, 0x2e601ca5, 0x00450e80, 0x00000001 },
+   { 0x00200040, 0x2e6034a5, 0x00450e60, 0x00450e6e },
+   { 0x00000005, 0x2e640c21, 0x00210e64, 0xfffffffe },
+   { 0x02000005, 0x20002e3c, 0x0021003f, 0x00080008 },
+   { 0x00010040, 0x2e640c21, 0x00210e64, 0x00000001 },
+   { 0x01000005, 0x20002d3c, 0x0021003a, 0x00020002 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x000000a2 },
+   { 0x01000005, 0x20002d3c, 0x0021003c, 0x00020002 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x00000076 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0007000f },
+   { 0x00800031, 0x2ac01d29, 0x00ad0e60, 0x0414a008 },
+   { 0x00800031, 0x2b601d29, 0x00ad0e60, 0x0414a009 },
+   { 0x00000005, 0x20580c21, 0x00210e60, 0x00000003 },
+   { 0x00000041, 0x20580c21, 0x00210058, 0x00000019 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0001000f },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 },
+   { 0x00800031, 0x2b401d29, 0x00ad0e60, 0x0411a008 },
+   { 0x00800031, 0x2be01d29, 0x00ad0e60, 0x0411a009 },
+   { 0x00000020, 0x34001400, 0x00001400, 0x00210058 },
+   { 0x00800040, 0x29c04629, 0x00ad0ac0, 0x00ad0ae0 },
+   { 0x00800040, 0x29e04629, 0x00ad0ae0, 0x00ad0b00 },
+   { 0x00800040, 0x2a004629, 0x00ad0b00, 0x00ad0b20 },
+   { 0x00800040, 0x2a204629, 0x00ad0b20, 0x00ad0b40 },
+   { 0x00800040, 0x29c04529, 0x00ad09c0, 0x00ad0ac1 },
+   { 0x00800040, 0x29e04529, 0x00ad09e0, 0x00ad0ae1 },
+   { 0x00800040, 0x2a004529, 0x00ad0a00, 0x00ad0b01 },
+   { 0x00800040, 0x2a204529, 0x00ad0a20, 0x00ad0b21 },
+   { 0x00800040, 0x29c04529, 0x00ad09c0, 0x00ad0ae1 },
+   { 0x00800040, 0x29e04529, 0x00ad09e0, 0x00ad0b01 },
+   { 0x00800040, 0x2a004529, 0x00ad0a00, 0x00ad0b21 },
+   { 0x00800040, 0x2a204529, 0x00ad0a20, 0x00ad0b41 },
+   { 0x00800040, 0x2a404629, 0x00ad0b60, 0x00ad0b80 },
+   { 0x00800040, 0x2a604629, 0x00ad0b80, 0x00ad0ba0 },
+   { 0x00800040, 0x2a804629, 0x00ad0ba0, 0x00ad0bc0 },
+   { 0x00800040, 0x2aa04629, 0x00ad0bc0, 0x00ad0be0 },
+   { 0x00800040, 0x2a404529, 0x00ad0a40, 0x00ad0b61 },
+   { 0x00800040, 0x2a604529, 0x00ad0a60, 0x00ad0b81 },
+   { 0x00800040, 0x2a804529, 0x00ad0a80, 0x00ad0ba1 },
+   { 0x00800040, 0x2aa04529, 0x00ad0aa0, 0x00ad0bc1 },
+   { 0x00800040, 0x2a404529, 0x00ad0a40, 0x00ad0b81 },
+   { 0x00800040, 0x2a604529, 0x00ad0a60, 0x00ad0ba1 },
+   { 0x00800040, 0x2a804529, 0x00ad0a80, 0x00ad0bc1 },
+   { 0x00800040, 0x2aa04529, 0x00ad0aa0, 0x00ad0be1 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x0000004a },
+   { 0x00800040, 0x29c04629, 0x00ad0ac1, 0x00ad0ae1 },
+   { 0x00800040, 0x29e04629, 0x00ad0ae1, 0x00ad0b01 },
+   { 0x00800040, 0x2a004629, 0x00ad0b01, 0x00ad0b21 },
+   { 0x00800040, 0x2a204629, 0x00ad0b21, 0x00ad0b41 },
+   { 0x00800040, 0x29c04529, 0x00ad09c0, 0x00ad0ac2 },
+   { 0x00800040, 0x29e04529, 0x00ad09e0, 0x00ad0ae2 },
+   { 0x00800040, 0x2a004529, 0x00ad0a00, 0x00ad0b02 },
+   { 0x00800040, 0x2a204529, 0x00ad0a20, 0x00ad0b22 },
+   { 0x00800040, 0x29c04529, 0x00ad09c0, 0x00ad0ae2 },
+   { 0x00800040, 0x29e04529, 0x00ad09e0, 0x00ad0b02 },
+   { 0x00800040, 0x2a004529, 0x00ad0a00, 0x00ad0b22 },
+   { 0x00800040, 0x2a204529, 0x00ad0a20, 0x00ad0b42 },
+   { 0x00800040, 0x2a404629, 0x00ad0b61, 0x00ad0b81 },
+   { 0x00800040, 0x2a604629, 0x00ad0b81, 0x00ad0ba1 },
+   { 0x00800040, 0x2a804629, 0x00ad0ba1, 0x00ad0bc1 },
+   { 0x00800040, 0x2aa04629, 0x00ad0bc1, 0x00ad0be1 },
+   { 0x00800040, 0x2a404529, 0x00ad0a40, 0x00ad0b62 },
+   { 0x00800040, 0x2a604529, 0x00ad0a60, 0x00ad0b82 },
+   { 0x00800040, 0x2a804529, 0x00ad0a80, 0x00ad0ba2 },
+   { 0x00800040, 0x2aa04529, 0x00ad0aa0, 0x00ad0bc2 },
+   { 0x00800040, 0x2a404529, 0x00ad0a40, 0x00ad0b82 },
+   { 0x00800040, 0x2a604529, 0x00ad0a60, 0x00ad0ba2 },
+   { 0x00800040, 0x2a804529, 0x00ad0a80, 0x00ad0bc2 },
+   { 0x00800040, 0x2aa04529, 0x00ad0aa0, 0x00ad0be2 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000031 },
+   { 0x00800040, 0x29c04629, 0x00ad0ac2, 0x00ad0ae2 },
+   { 0x00800040, 0x29e04629, 0x00ad0ae2, 0x00ad0b02 },
+   { 0x00800040, 0x2a004629, 0x00ad0b02, 0x00ad0b22 },
+   { 0x00800040, 0x2a204629, 0x00ad0b22, 0x00ad0b42 },
+   { 0x00800040, 0x29c04529, 0x00ad09c0, 0x00ad0ac3 },
+   { 0x00800040, 0x29e04529, 0x00ad09e0, 0x00ad0ae3 },
+   { 0x00800040, 0x2a004529, 0x00ad0a00, 0x00ad0b03 },
+   { 0x00800040, 0x2a204529, 0x00ad0a20, 0x00ad0b23 },
+   { 0x00800040, 0x29c04529, 0x00ad09c0, 0x00ad0ae3 },
+   { 0x00800040, 0x29e04529, 0x00ad09e0, 0x00ad0b03 },
+   { 0x00800040, 0x2a004529, 0x00ad0a00, 0x00ad0b23 },
+   { 0x00800040, 0x2a204529, 0x00ad0a20, 0x00ad0b43 },
+   { 0x00800040, 0x2a404629, 0x00ad0b62, 0x00ad0b82 },
+   { 0x00800040, 0x2a604629, 0x00ad0b82, 0x00ad0ba2 },
+   { 0x00800040, 0x2a804629, 0x00ad0ba2, 0x00ad0bc2 },
+   { 0x00800040, 0x2aa04629, 0x00ad0bc2, 0x00ad0be2 },
+   { 0x00800040, 0x2a404529, 0x00ad0a40, 0x00ad0b63 },
+   { 0x00800040, 0x2a604529, 0x00ad0a60, 0x00ad0b83 },
+   { 0x00800040, 0x2a804529, 0x00ad0a80, 0x00ad0ba3 },
+   { 0x00800040, 0x2aa04529, 0x00ad0aa0, 0x00ad0bc3 },
+   { 0x00800040, 0x2a404529, 0x00ad0a40, 0x00ad0b83 },
+   { 0x00800040, 0x2a604529, 0x00ad0a60, 0x00ad0ba3 },
+   { 0x00800040, 0x2a804529, 0x00ad0a80, 0x00ad0bc3 },
+   { 0x00800040, 0x2aa04529, 0x00ad0aa0, 0x00ad0be3 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000018 },
+   { 0x00800040, 0x29c04629, 0x00ad0ac3, 0x00ad0ae3 },
+   { 0x00800040, 0x29e04629, 0x00ad0ae3, 0x00ad0b03 },
+   { 0x00800040, 0x2a004629, 0x00ad0b03, 0x00ad0b23 },
+   { 0x00800040, 0x2a204629, 0x00ad0b23, 0x00ad0b43 },
+   { 0x00800040, 0x29c04529, 0x00ad09c0, 0x00ad0ac4 },
+   { 0x00800040, 0x29e04529, 0x00ad09e0, 0x00ad0ae4 },
+   { 0x00800040, 0x2a004529, 0x00ad0a00, 0x00ad0b04 },
+   { 0x00800040, 0x2a204529, 0x00ad0a20, 0x00ad0b24 },
+   { 0x00800040, 0x29c04529, 0x00ad09c0, 0x00ad0ae4 },
+   { 0x00800040, 0x29e04529, 0x00ad09e0, 0x00ad0b04 },
+   { 0x00800040, 0x2a004529, 0x00ad0a00, 0x00ad0b24 },
+   { 0x00800040, 0x2a204529, 0x00ad0a20, 0x00ad0b44 },
+   { 0x00800040, 0x2a404629, 0x00ad0b63, 0x00ad0b83 },
+   { 0x00800040, 0x2a604629, 0x00ad0b83, 0x00ad0ba3 },
+   { 0x00800040, 0x2a804629, 0x00ad0ba3, 0x00ad0bc3 },
+   { 0x00800040, 0x2aa04629, 0x00ad0bc3, 0x00ad0be3 },
+   { 0x00800040, 0x2a404529, 0x00ad0a40, 0x00ad0b64 },
+   { 0x00800040, 0x2a604529, 0x00ad0a60, 0x00ad0b84 },
+   { 0x00800040, 0x2a804529, 0x00ad0a80, 0x00ad0ba4 },
+   { 0x00800040, 0x2aa04529, 0x00ad0aa0, 0x00ad0bc4 },
+   { 0x00800040, 0x2a404529, 0x00ad0a40, 0x00ad0b84 },
+   { 0x00800040, 0x2a604529, 0x00ad0a60, 0x00ad0ba4 },
+   { 0x00800040, 0x2a804529, 0x00ad0a80, 0x00ad0bc4 },
+   { 0x00800040, 0x2aa04529, 0x00ad0aa0, 0x00ad0be4 },
+   { 0x80800008, 0x29c02d29, 0x00b109c0, 0x00020002 },
+   { 0x80800008, 0x29e02d29, 0x00b109e0, 0x00020002 },
+   { 0x80800008, 0x2a002d29, 0x00b10a00, 0x00020002 },
+   { 0x80800008, 0x2a202d29, 0x00b10a20, 0x00020002 },
+   { 0x80800008, 0x2a402d29, 0x00b10a40, 0x00020002 },
+   { 0x80800008, 0x2a602d29, 0x00b10a60, 0x00020002 },
+   { 0x80800008, 0x2a802d29, 0x00b10a80, 0x00020002 },
+   { 0x80800008, 0x2aa02d29, 0x00b10aa0, 0x00020002 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000082 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0007000f },
+   { 0x00800031, 0x2ac01d29, 0x00ad0e60, 0x0414a008 },
+   { 0x00800031, 0x2b601d29, 0x00ad0e60, 0x0414a009 },
+   { 0x00000005, 0x20580c21, 0x00210e60, 0x00000003 },
+   { 0x00000041, 0x20580c21, 0x00210058, 0x00000009 },
+   { 0x00000020, 0x34001400, 0x00001400, 0x00210058 },
+   { 0x80800042, 0x29c04629, 0x00ad0ac0, 0x00ad0ac1 },
+   { 0x80800042, 0x29e04629, 0x00ad0ae0, 0x00ad0ae1 },
+   { 0x80800042, 0x2a004629, 0x00ad0b00, 0x00ad0b01 },
+   { 0x80800042, 0x2a204629, 0x00ad0b20, 0x00ad0b21 },
+   { 0x80800042, 0x2a404629, 0x00ad0b60, 0x00ad0b61 },
+   { 0x80800042, 0x2a604629, 0x00ad0b80, 0x00ad0b81 },
+   { 0x80800042, 0x2a804629, 0x00ad0ba0, 0x00ad0ba1 },
+   { 0x80800042, 0x2aa04629, 0x00ad0bc0, 0x00ad0bc1 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x0000001a },
+   { 0x80800042, 0x29c04629, 0x00ad0ac1, 0x00ad0ac2 },
+   { 0x80800042, 0x29e04629, 0x00ad0ae1, 0x00ad0ae2 },
+   { 0x80800042, 0x2a004629, 0x00ad0b01, 0x00ad0b02 },
+   { 0x80800042, 0x2a204629, 0x00ad0b21, 0x00ad0b22 },
+   { 0x80800042, 0x2a404629, 0x00ad0b61, 0x00ad0b62 },
+   { 0x80800042, 0x2a604629, 0x00ad0b81, 0x00ad0b82 },
+   { 0x80800042, 0x2a804629, 0x00ad0ba1, 0x00ad0ba2 },
+   { 0x80800042, 0x2aa04629, 0x00ad0bc1, 0x00ad0bc2 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000011 },
+   { 0x80800042, 0x29c04629, 0x00ad0ac2, 0x00ad0ac3 },
+   { 0x80800042, 0x29e04629, 0x00ad0ae2, 0x00ad0ae3 },
+   { 0x80800042, 0x2a004629, 0x00ad0b02, 0x00ad0b03 },
+   { 0x80800042, 0x2a204629, 0x00ad0b22, 0x00ad0b23 },
+   { 0x80800042, 0x2a404629, 0x00ad0b62, 0x00ad0b63 },
+   { 0x80800042, 0x2a604629, 0x00ad0b82, 0x00ad0b83 },
+   { 0x80800042, 0x2a804629, 0x00ad0ba2, 0x00ad0ba3 },
+   { 0x80800042, 0x2aa04629, 0x00ad0bc2, 0x00ad0bc3 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000008 },
+   { 0x80800042, 0x29c04629, 0x00ad0ac3, 0x00ad0ac4 },
+   { 0x80800042, 0x29e04629, 0x00ad0ae3, 0x00ad0ae4 },
+   { 0x80800042, 0x2a004629, 0x00ad0b03, 0x00ad0b04 },
+   { 0x80800042, 0x2a204629, 0x00ad0b23, 0x00ad0b24 },
+   { 0x80800042, 0x2a404629, 0x00ad0b63, 0x00ad0b64 },
+   { 0x80800042, 0x2a604629, 0x00ad0b83, 0x00ad0b84 },
+   { 0x80800042, 0x2a804629, 0x00ad0ba3, 0x00ad0ba4 },
+   { 0x80800042, 0x2aa04629, 0x00ad0bc3, 0x00ad0bc4 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000058 },
+   { 0x01000005, 0x20002d3c, 0x0021003c, 0x00020002 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x0000002d },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0007000f },
+   { 0x00800031, 0x2ac01d29, 0x00ad0e60, 0x0414a008 },
+   { 0x00800031, 0x2b601d29, 0x00ad0e60, 0x0414a009 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0000000f },
+   { 0x00800031, 0x2b401d29, 0x00ad0e60, 0x0411a008 },
+   { 0x00800031, 0x2be01d29, 0x00ad0e60, 0x0411a009 },
+   { 0x00000005, 0x20580c21, 0x00210e60, 0x00000003 },
+   { 0x00000041, 0x20580c21, 0x00210058, 0x00000009 },
+   { 0x00000020, 0x34001400, 0x00001400, 0x00210058 },
+   { 0x80800042, 0x29c04629, 0x00ad0ac0, 0x00ad0ae0 },
+   { 0x80800042, 0x29e04629, 0x00ad0ae0, 0x00ad0b00 },
+   { 0x80800042, 0x2a004629, 0x00ad0b00, 0x00ad0b20 },
+   { 0x80800042, 0x2a204629, 0x00ad0b20, 0x00ad0b40 },
+   { 0x80800042, 0x2a404629, 0x00ad0b60, 0x00ad0b80 },
+   { 0x80800042, 0x2a604629, 0x00ad0b80, 0x00ad0ba0 },
+   { 0x80800042, 0x2a804629, 0x00ad0ba0, 0x00ad0bc0 },
+   { 0x80800042, 0x2aa04629, 0x00ad0bc0, 0x00ad0be0 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x0000001a },
+   { 0x80800042, 0x29c04629, 0x00ad0ac1, 0x00ad0ae1 },
+   { 0x80800042, 0x29e04629, 0x00ad0ae1, 0x00ad0b01 },
+   { 0x80800042, 0x2a004629, 0x00ad0b01, 0x00ad0b21 },
+   { 0x80800042, 0x2a204629, 0x00ad0b21, 0x00ad0b41 },
+   { 0x80800042, 0x2a404629, 0x00ad0b61, 0x00ad0b81 },
+   { 0x80800042, 0x2a604629, 0x00ad0b81, 0x00ad0ba1 },
+   { 0x80800042, 0x2a804629, 0x00ad0ba1, 0x00ad0bc1 },
+   { 0x80800042, 0x2aa04629, 0x00ad0bc1, 0x00ad0be1 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000011 },
+   { 0x80800042, 0x29c04629, 0x00ad0ac2, 0x00ad0ae2 },
+   { 0x80800042, 0x29e04629, 0x00ad0ae2, 0x00ad0b02 },
+   { 0x80800042, 0x2a004629, 0x00ad0b02, 0x00ad0b22 },
+   { 0x80800042, 0x2a204629, 0x00ad0b22, 0x00ad0b42 },
+   { 0x80800042, 0x2a404629, 0x00ad0b62, 0x00ad0b82 },
+   { 0x80800042, 0x2a604629, 0x00ad0b82, 0x00ad0ba2 },
+   { 0x80800042, 0x2a804629, 0x00ad0ba2, 0x00ad0bc2 },
+   { 0x80800042, 0x2aa04629, 0x00ad0bc2, 0x00ad0be2 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000008 },
+   { 0x80800042, 0x29c04629, 0x00ad0ac3, 0x00ad0ac3 },
+   { 0x80800042, 0x29e04629, 0x00ad0ae3, 0x00ad0ae3 },
+   { 0x80800042, 0x2a004629, 0x00ad0b03, 0x00ad0b03 },
+   { 0x80800042, 0x2a204629, 0x00ad0b23, 0x00ad0b23 },
+   { 0x80800042, 0x2a404629, 0x00ad0b63, 0x00ad0b63 },
+   { 0x80800042, 0x2a604629, 0x00ad0b83, 0x00ad0b83 },
+   { 0x80800042, 0x2a804629, 0x00ad0ba3, 0x00ad0ba3 },
+   { 0x80800042, 0x2aa04629, 0x00ad0bc3, 0x00ad0bc3 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000029 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0007000f },
+   { 0x00800031, 0x2ac01d29, 0x00ad0e60, 0x0414a008 },
+   { 0x00800031, 0x2b601d29, 0x00ad0e60, 0x0414a009 },
+   { 0x00000005, 0x20580c21, 0x00210e60, 0x00000003 },
+   { 0x00000041, 0x20580c21, 0x00210058, 0x00000009 },
+   { 0x00000020, 0x34001400, 0x00001400, 0x00210058 },
+   { 0x00800001, 0x29c00229, 0x00ad0ac0, 0x00000000 },
+   { 0x00800001, 0x29e00229, 0x00ad0ae0, 0x00000000 },
+   { 0x00800001, 0x2a000229, 0x00ad0b00, 0x00000000 },
+   { 0x00800001, 0x2a200229, 0x00ad0b20, 0x00000000 },
+   { 0x00800001, 0x2a400229, 0x00ad0b60, 0x00000000 },
+   { 0x00800001, 0x2a600229, 0x00ad0b80, 0x00000000 },
+   { 0x00800001, 0x2a800229, 0x00ad0ba0, 0x00000000 },
+   { 0x00800001, 0x2aa00229, 0x00ad0bc0, 0x00000000 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x0000001a },
+   { 0x00800001, 0x29c00229, 0x00ad0ac1, 0x00000000 },
+   { 0x00800001, 0x29e00229, 0x00ad0ae1, 0x00000000 },
+   { 0x00800001, 0x2a000229, 0x00ad0b01, 0x00000000 },
+   { 0x00800001, 0x2a200229, 0x00ad0b21, 0x00000000 },
+   { 0x00800001, 0x2a400229, 0x00ad0b61, 0x00000000 },
+   { 0x00800001, 0x2a600229, 0x00ad0b81, 0x00000000 },
+   { 0x00800001, 0x2a800229, 0x00ad0ba1, 0x00000000 },
+   { 0x00800001, 0x2aa00229, 0x00ad0bc1, 0x00000000 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000011 },
+   { 0x00800001, 0x29c00229, 0x00ad0ac2, 0x00000000 },
+   { 0x00800001, 0x29e00229, 0x00ad0ae2, 0x00000000 },
+   { 0x00800001, 0x2a000229, 0x00ad0b02, 0x00000000 },
+   { 0x00800001, 0x2a200229, 0x00ad0b22, 0x00000000 },
+   { 0x00800001, 0x2a400229, 0x00ad0b62, 0x00000000 },
+   { 0x00800001, 0x2a600229, 0x00ad0b82, 0x00000000 },
+   { 0x00800001, 0x2a800229, 0x00ad0ba2, 0x00000000 },
+   { 0x00800001, 0x2aa00229, 0x00ad0bc2, 0x00000000 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000008 },
+   { 0x00800001, 0x29c00229, 0x00ad0ac3, 0x00000000 },
+   { 0x00800001, 0x29e00229, 0x00ad0ae3, 0x00000000 },
+   { 0x00800001, 0x2a000229, 0x00ad0b03, 0x00000000 },
+   { 0x00800001, 0x2a200229, 0x00ad0b23, 0x00000000 },
+   { 0x00800001, 0x2a400229, 0x00ad0b63, 0x00000000 },
+   { 0x00800001, 0x2a600229, 0x00ad0b83, 0x00000000 },
+   { 0x00800001, 0x2a800229, 0x00ad0ba3, 0x00000000 },
+   { 0x00800001, 0x2aa00229, 0x00ad0bc3, 0x00000000 },
+   { 0x00600001, 0x25900129, 0x008d09c0, 0x00000000 },
+   { 0x00600001, 0x25b00129, 0x008d09e0, 0x00000000 },
+   { 0x00600001, 0x25d00129, 0x008d0a00, 0x00000000 },
+   { 0x00600001, 0x25f00129, 0x008d0a20, 0x00000000 },
+   { 0x00600001, 0x26100129, 0x008d0a40, 0x00000000 },
+   { 0x00600001, 0x26300129, 0x008d0a60, 0x00000000 },
+   { 0x00600001, 0x26500129, 0x008d0a80, 0x00000000 },
+   { 0x00600001, 0x26700129, 0x008d0aa0, 0x00000000 },
+   { 0x80800042, 0x25802529, 0x00b10880, 0x00b10580 },
+   { 0x80800042, 0x25a02529, 0x00b108a0, 0x00b105a0 },
+   { 0x80800042, 0x25c02529, 0x00b108c0, 0x00b105c0 },
+   { 0x80800042, 0x25e02529, 0x00b108e0, 0x00b105e0 },
+   { 0x80800042, 0x26002529, 0x00b10900, 0x00b10600 },
+   { 0x80800042, 0x26202529, 0x00b10920, 0x00b10620 },
+   { 0x80800042, 0x26402529, 0x00b10940, 0x00b10640 },
+   { 0x80800042, 0x26602529, 0x00b10960, 0x00b10660 },
+   { 0x00600001, 0x20200021, 0x008d0980, 0x00000000 },
+   { 0x00800001, 0x458101f1, 0x00000000, 0x00000000 },
+   { 0x00800001, 0x45a101f1, 0x00000000, 0x00000000 },
+   { 0x00800001, 0x45c101f1, 0x00000000, 0x00000000 },
+   { 0x00800001, 0x45e101f1, 0x00000000, 0x00000000 },
+   { 0x00800001, 0x460101f1, 0x00000000, 0x00000000 },
+   { 0x00800001, 0x462101f1, 0x00000000, 0x00000000 },
+   { 0x00800001, 0x464101f1, 0x00000000, 0x00000000 },
+   { 0x00800001, 0x466101f1, 0x00000000, 0x00000000 },
+   { 0x02000005, 0x20002e3c, 0x0021003e, 0x00010001 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x00000011 },
+   { 0x00800040, 0x238045ad, 0x00b10060, 0x00b20380 },
+   { 0x00800040, 0x23a045ad, 0x00b10080, 0x00b203a0 },
+   { 0x00800040, 0x23c045ad, 0x00b100a0, 0x00b203c0 },
+   { 0x00800040, 0x23e045ad, 0x00b100c0, 0x00b203e0 },
+   { 0x00800040, 0x240045ad, 0x00b100e0, 0x00b20400 },
+   { 0x00800040, 0x242045ad, 0x00b10100, 0x00b20420 },
+   { 0x00800040, 0x244045ad, 0x00b10120, 0x00b20440 },
+   { 0x00800040, 0x246045ad, 0x00b10140, 0x00b20460 },
+   { 0x00800040, 0x248045ad, 0x00b10160, 0x00b20480 },
+   { 0x00800040, 0x24a045ad, 0x00b10180, 0x00b204a0 },
+   { 0x00800040, 0x24c045ad, 0x00b101a0, 0x00b204c0 },
+   { 0x00800040, 0x24e045ad, 0x00b101c0, 0x00b204e0 },
+   { 0x00800040, 0x250045ad, 0x00b101e0, 0x00b20500 },
+   { 0x00800040, 0x252045ad, 0x00b10200, 0x00b20520 },
+   { 0x00800040, 0x254045ad, 0x00b10220, 0x00b20540 },
+   { 0x00800040, 0x256045ad, 0x00b10240, 0x00b20560 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000010 },
+   { 0x00800040, 0x238045ad, 0x00b10060, 0x00b20380 },
+   { 0x00800040, 0x23a045ad, 0x00b10160, 0x00b203a0 },
+   { 0x00800040, 0x23c045ad, 0x00b10080, 0x00b203c0 },
+   { 0x00800040, 0x23e045ad, 0x00b10180, 0x00b203e0 },
+   { 0x00800040, 0x240045ad, 0x00b100a0, 0x00b20400 },
+   { 0x00800040, 0x242045ad, 0x00b101a0, 0x00b20420 },
+   { 0x00800040, 0x244045ad, 0x00b100c0, 0x00b20440 },
+   { 0x00800040, 0x246045ad, 0x00b101c0, 0x00b20460 },
+   { 0x00800040, 0x248045ad, 0x00b100e0, 0x00b20480 },
+   { 0x00800040, 0x24a045ad, 0x00b101e0, 0x00b204a0 },
+   { 0x00800040, 0x24c045ad, 0x00b10100, 0x00b204c0 },
+   { 0x00800040, 0x24e045ad, 0x00b10200, 0x00b204e0 },
+   { 0x00800040, 0x250045ad, 0x00b10120, 0x00b20500 },
+   { 0x00800040, 0x252045ad, 0x00b10220, 0x00b20520 },
+   { 0x00800040, 0x254045ad, 0x00b10140, 0x00b20540 },
+   { 0x00800040, 0x256045ad, 0x00b10240, 0x00b20560 },
+   { 0x00000001, 0x20280061, 0x00000000, 0x000f000f },
+   { 0x80800001, 0x438001b1, 0x00b10380, 0x00000000 },
+   { 0x80800001, 0x43a001b1, 0x00b103a0, 0x00000000 },
+   { 0x80800001, 0x43c001b1, 0x00b103c0, 0x00000000 },
+   { 0x80800001, 0x43e001b1, 0x00b103e0, 0x00000000 },
+   { 0x80800001, 0x440001b1, 0x00b10400, 0x00000000 },
+   { 0x80800001, 0x442001b1, 0x00b10420, 0x00000000 },
+   { 0x80800001, 0x444001b1, 0x00b10440, 0x00000000 },
+   { 0x80800001, 0x446001b1, 0x00b10460, 0x00000000 },
+   { 0x80800001, 0x448001b1, 0x00b10480, 0x00000000 },
+   { 0x80800001, 0x44a001b1, 0x00b104a0, 0x00000000 },
+   { 0x80800001, 0x44c001b1, 0x00b104c0, 0x00000000 },
+   { 0x80800001, 0x44e001b1, 0x00b104e0, 0x00000000 },
+   { 0x80800001, 0x450001b1, 0x00b10500, 0x00000000 },
+   { 0x80800001, 0x452001b1, 0x00b10520, 0x00000000 },
+   { 0x80800001, 0x454001b1, 0x00b10540, 0x00000000 },
+   { 0x80800001, 0x456001b1, 0x00b10560, 0x00000000 },
+   { 0x00800001, 0x20200232, 0x00b20380, 0x00000000 },
+   { 0x00800001, 0x20300232, 0x00b203a0, 0x00000000 },
+   { 0x00800001, 0x20400232, 0x00b203c0, 0x00000000 },
+   { 0x00800001, 0x20500232, 0x00b203e0, 0x00000000 },
+   { 0x00800001, 0x20600232, 0x00b20400, 0x00000000 },
+   { 0x00800001, 0x20700232, 0x00b20420, 0x00000000 },
+   { 0x00800001, 0x20800232, 0x00b20440, 0x00000000 },
+   { 0x00800001, 0x20900232, 0x00b20460, 0x00000000 },
+   { 0x00800001, 0x20a00232, 0x00b20480, 0x00000000 },
+   { 0x00800001, 0x20b00232, 0x00b204a0, 0x00000000 },
+   { 0x00800001, 0x20c00232, 0x00b204c0, 0x00000000 },
+   { 0x00800001, 0x20d00232, 0x00b204e0, 0x00000000 },
+   { 0x00800001, 0x20e00232, 0x00b20500, 0x00000000 },
+   { 0x00800001, 0x20f00232, 0x00b20520, 0x00000000 },
+   { 0x00800001, 0x21000232, 0x00b20540, 0x00000000 },
+   { 0x00800001, 0x21100232, 0x00b20560, 0x00000000 },
+   { 0x00800031, 0x24001d28, 0x008d0020, 0x05902000 },
+   { 0x00000001, 0x20280061, 0x00000000, 0x00070007 },
+   { 0x00200008, 0x20201c21, 0x00450020, 0x00000001 },
+   { 0x00800040, 0x258025a9, 0x00b10260, 0x00b10580 },
+   { 0x00800040, 0x25a025a9, 0x00b10280, 0x00b105a0 },
+   { 0x00800040, 0x25c025a9, 0x00b102a0, 0x00b105c0 },
+   { 0x00800040, 0x25e025a9, 0x00b102c0, 0x00b105e0 },
+   { 0x80800001, 0x45800131, 0x00b10580, 0x00000000 },
+   { 0x80800001, 0x45a00131, 0x00b105a0, 0x00000000 },
+   { 0x80800001, 0x45c00131, 0x00b105c0, 0x00000000 },
+   { 0x80800001, 0x45e00131, 0x00b105e0, 0x00000000 },
+   { 0x00800001, 0x20200232, 0x00b20580, 0x00000000 },
+   { 0x00800001, 0x20300232, 0x00b205a0, 0x00000000 },
+   { 0x00800001, 0x20400232, 0x00b205c0, 0x00000000 },
+   { 0x00800001, 0x20500232, 0x00b205e0, 0x00000000 },
+   { 0x00800031, 0x24001d28, 0x008d0020, 0x05302001 },
+   { 0x00800040, 0x260025a9, 0x00b102e0, 0x00b10600 },
+   { 0x00800040, 0x262025a9, 0x00b10300, 0x00b10620 },
+   { 0x00800040, 0x264025a9, 0x00b10320, 0x00b10640 },
+   { 0x00800040, 0x266025a9, 0x00b10340, 0x00b10660 },
+   { 0x80800001, 0x46000131, 0x00b10600, 0x00000000 },
+   { 0x80800001, 0x46200131, 0x00b10620, 0x00000000 },
+   { 0x80800001, 0x46400131, 0x00b10640, 0x00000000 },
+   { 0x80800001, 0x46600131, 0x00b10660, 0x00000000 },
+   { 0x00800001, 0x20200232, 0x00b20600, 0x00000000 },
+   { 0x00800001, 0x20300232, 0x00b20620, 0x00000000 },
+   { 0x00800001, 0x20400232, 0x00b20640, 0x00000000 },
+   { 0x00800001, 0x20500232, 0x00b20660, 0x00000000 },
+   { 0x00800031, 0x24001d28, 0x008d0020, 0x05302002 },
+   { 0x00800031, 0x24001d28, 0x008d0000, 0x87100000 },
diff --git a/src/xvmc/shader/mc/field_f_b_igd.g4a b/src/xvmc/shader/mc/field_f_b_igd.g4a
new file mode 100644
index 0000000..e741244
--- /dev/null
+++ b/src/xvmc/shader/mc/field_f_b_igd.g4a
@@ -0,0 +1,223 @@
+/*
+ * Copyright © 2008 Intel Corporation
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice (including the next
+ * paragraph) shall be included in all copies or substantial portions of the
+ * Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
+ * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+ * SOFTWARE.
+ *
+ * Author:
+ *    Zou Nan hai <nanhai.zou at intel.com>
+ *    Zhang Hua jun <huajun.zhang at intel.com>
+ *    Xing Dong sheng <dongsheng.xing at intel.com>
+ *
+ */
+mov (8) g76.0<1>UD g1.0<8,8,1>UD {align1};
+//mov (8) g77.0<1>UD g2.0<8,8,1>UD {align1};
+
+include(`block_clear.g4i')
+mov (8) g115.0<1>UD g1.0<8,8,1>UD {align1};
+mov (8) g116.0<1>UD g1.0<8,8,1>UD {align1};
+
+/* forward---Y---first vector*/
+mov(1) g115.8<1>UD 0x007001fUD  { align1 };
+asr (2) g115.14<1>W g1.14<2,2,1>W 1W {align1};
+add (2) g115.0<1>D g116.0<2,2,1>D g115.14<2,2,1>W {align1};
+and (1) g115.4<1>UD g115.4<1,1,1>UD 0xFFFFFFFEUD {align1};
+mov(1) g115.8<1>UD 0x1fUD  { align1 }; //read 1 line, 32 columns.
+and.nz (1) null g1.31<1,1,1>UB 0x1UW {align1};
+(f0) add (1) g115.4<1>D g115.4<1,1,1>D 1D {align1};
+define(`surface',`4')
+define(`mv1',`g1.14')
+define(`mv2',`g1.16')
+include(`motion_field_y_igd.g4i')
+mov (8) g52.0<1>UD g96.0<8,8,1>UD {align1};
+mov (8) g54.0<1>UD g97.0<8,8,1>UD {align1};
+mov (8) g56.0<1>UD g98.0<8,8,1>UD {align1};
+mov (8) g58.0<1>UD g99.0<8,8,1>UD {align1};
+mov (8) g60.0<1>UD g100.0<8,8,1>UD {align1};
+mov (8) g62.0<1>UD g101.0<8,8,1>UD {align1};
+mov (8) g64.0<1>UD g102.0<8,8,1>UD {align1};
+mov (8) g66.0<1>UD g103.0<8,8,1>UD {align1};
+
+/*forward---Y---second vector*/
+asr (2) g115.14<1>W g1.22<2,2,1>W 1W {align1};
+add (2) g115.0<1>D g116.0<2,2,1>D g115.14<2,2,1>W {align1};
+and (1) g115.4<1>UD g115.4<1,1,1>UD 0xFFFFFFFEUD {align1};
+mov(1) g115.8<1>UD 0x1fUD { align1 }; //read 1 line, 32 columns.
+and.nz (1) null g1.31<1,1,1>UB 0x4UD {align1};
+(f0) add (1) g115.4<1>D g115.4<1,1,1>D 1D {align1};
+define(`surface',`4')
+define(`mv1',`g1.22')
+define(`mv2',`g1.24')
+include(`motion_field_y_igd.g4i')
+mov (8) g53.0<1>UD g96.0<8,8,1>UD {align1};
+mov (8) g55.0<1>UD g97.0<8,8,1>UD {align1};
+mov (8) g57.0<1>UD g98.0<8,8,1>UD {align1};
+mov (8) g59.0<1>UD g99.0<8,8,1>UD {align1};
+mov (8) g61.0<1>UD g100.0<8,8,1>UD {align1};
+mov (8) g63.0<1>UD g101.0<8,8,1>UD {align1};
+mov (8) g65.0<1>UD g102.0<8,8,1>UD {align1};
+mov (8) g67.0<1>UD g103.0<8,8,1>UD {align1};
+
+/*forward---UV---first vector*/
+mov(1) g115.8<1>UD 0x007000fUD  { align1 };
+asr (2) g115.14<1>W g1.14<2,2,1>W 2W {align1};
+asr (2) g115.0<1>D g116.0<2,2,1>D 1D {align1};
+add (2) g115.0<1>D g115.0<2,2,1>D g115.14<2,2,1>W {align1};
+and (1) g115.4<1>UD g115.4<1,1,1>UD 0xFFFFFFFEUD {align1};
+and.nz (1) null g1.31<1,1,1>UB 0x1UW {align1};
+(f0) add (1) g115.4<1>UD g115.4<1,1,1>UD 1UD {align1};
+define(`surface_u',`5')
+define(`surface_v',`6')
+define(`mv1',`g1.14')
+define(`mv2',`g1.16')
+include(`motion_field_uv_igd.g4i')
+mov (8) g68.0<1>UW g78.0<8,8,1>UW {align1};
+mov (8) g69.0<1>UW g79.0<8,8,1>UW {align1};
+mov (8) g70.0<1>UW g80.0<8,8,1>UW {align1};
+mov (8) g71.0<1>UW g81.0<8,8,1>UW {align1};
+mov (8) g72.0<1>UW g82.0<8,8,1>UW {align1};
+mov (8) g73.0<1>UW g83.0<8,8,1>UW {align1};
+mov (8) g74.0<1>UW g84.0<8,8,1>UW {align1};
+mov (8) g75.0<1>UW g85.0<8,8,1>UW {align1};
+
+/*forward---UV---second vector */
+asr (2) g115.14<1>W g1.22<2,2,1>W 2W {align1};
+asr (2) g115.0<1>D g116.0<2,2,1>D 1D {align1};
+add (2) g115.0<1>D g115.0<2,2,1>D g115.14<2,2,1>W {align1};
+and (1) g115.4<1>UD g115.4<1,1,1>UD 0xFFFFFFFEUD {align1};
+and.nz (1) null g1.31<1,1,1>UB 0x4UW {align1};
+(f0) add (1) g115.4<1>UD g115.4<1,1,1>UD 1UD {align1};
+define(`mv1',`g1.24')
+define(`mv2',`g1.26')
+include(`motion_field_uv_igd.g4i')
+mov (8) g68.16<1>UW g78.0<8,8,1>UW {align1};
+mov (8) g69.16<1>UW g79.0<8,8,1>UW {align1};
+mov (8) g70.16<1>UW g80.0<8,8,1>UW {align1};
+mov (8) g71.16<1>UW g81.0<8,8,1>UW {align1};
+mov (8) g72.16<1>UW g82.0<8,8,1>UW {align1};
+mov (8) g73.16<1>UW g83.0<8,8,1>UW {align1};
+mov (8) g74.16<1>UW g84.0<8,8,1>UW {align1};
+mov (8) g75.16<1>UW g85.0<8,8,1>UW {align1};
+
+/*backward---Y---first vector */
+mov(8) g1.0<1>UD g116.0<8,8,1>UD {align1};
+mov(1) g115.8<1>UD 0x007001fUD  { align1 };
+mov(1) g1.8<1>UD 0x007000fUD  { align1 };
+asr (2) g115.14<1>W g1.18<2,2,1>W 1W {align1};
+add (2) g115.0<1>D g116.0<2,2,1>D g115.14<2,2,1>W {align1};
+and (1) g115.4<1>UD g115.4<1,1,1>UD 0xFFFFFFFEUD {align1};
+mov(1) g115.8<1>UD 0x1fUD  { align1 }; //read 1 line, 32 columns.
+and.nz (1) null g1.31<1,1,1>UB 0x2UW {align1};
+(f0) add (1) g115.4<1>D g115.4<1,1,1>D 1D {align1};
+define(`surface',`7')
+define(`mv1',`g1.18')
+define(`mv2',`g1.20')
+include(`motion_field_y_igd.g4i')
+mov (8) g28.0<1>UD g96.0<8,8,1>UD {align1};
+mov (8) g30.0<1>UD g97.0<8,8,1>UD {align1};
+mov (8) g32.0<1>UD g98.0<8,8,1>UD {align1};
+mov (8) g34.0<1>UD g99.0<8,8,1>UD {align1};
+mov (8) g36.0<1>UD g100.0<8,8,1>UD {align1};
+mov (8) g38.0<1>UD g101.0<8,8,1>UD {align1};
+mov (8) g40.0<1>UD g102.0<8,8,1>UD {align1};
+mov (8) g42.0<1>UD g103.0<8,8,1>UD {align1};
+
+/*backward---Y---second vector */
+asr (2) g115.14<1>W g1.26<2,2,1>W 1W {align1};
+add (2) g115.0<1>D g116.0<2,2,1>D g115.14<2,2,1>W {align1};
+and (1) g115.4<1>UD g115.4<1,1,1>UD 0xFFFFFFFEUD {align1};
+mov(1) g115.8<1>UD 0x1fUD  { align1 }; //read 1 line, 32 columns.
+and.nz (1) null g2.20<1,1,1>UD 0x8UD {align1};
+(f0) add (1) g115.4<1>D g115.4<1,1,1>D 1D {align1};
+define(`surface',`7')
+define(`mv1',`g1.26')
+define(`mv2',`g1.28')
+include(`motion_field_y_igd.g4i')
+
+avg.sat (16) g28.0<1>UW g52.0<16,16,1>UW g28.0<16,16,1>UW {align1};
+avg.sat (16) g29.0<1>UW g53.0<16,16,1>UW g96.0<16,16,1>UW {align1};
+avg.sat (16) g30.0<1>UW g54.0<16,16,1>UW g30.0<16,16,1>UW {align1};
+avg.sat (16) g31.0<1>UW g55.0<16,16,1>UW g97.0<16,16,1>UW {align1};
+avg.sat (16) g32.0<1>UW g56.0<16,16,1>UW g32.0<16,16,1>UW {align1};
+avg.sat (16) g33.0<1>UW g57.0<16,16,1>UW g98.0<16,16,1>UW {align1};
+avg.sat (16) g34.0<1>UW g58.0<16,16,1>UW g34.0<16,16,1>UW {align1};
+avg.sat (16) g35.0<1>UW g59.0<16,16,1>UW g99.0<16,16,1>UW {align1};
+avg.sat (16) g36.0<1>UW g60.0<16,16,1>UW g36.0<16,16,1>UW {align1};
+avg.sat (16) g37.0<1>UW g61.0<16,16,1>UW g100.0<16,16,1>UW {align1};
+avg.sat (16) g38.0<1>UW g62.0<16,16,1>UW g38.0<16,16,1>UW {align1};
+avg.sat (16) g39.0<1>UW g63.0<16,16,1>UW g101.0<16,16,1>UW {align1};
+avg.sat (16) g40.0<1>UW g64.0<16,16,1>UW g40.0<16,16,1>UW {align1};
+avg.sat (16) g41.0<1>UW g65.0<16,16,1>UW g102.0<16,16,1>UW {align1};
+avg.sat (16) g42.0<1>UW g66.0<16,16,1>UW g42.0<16,16,1>UW {align1};
+avg.sat (16) g43.0<1>UW g67.0<16,16,1>UW g103.0<16,16,1>UW {align1};
+
+/*backward---UV---first vector */
+mov(1) g115.8<1>UD 0x007000fUD  { align1 };
+asr (2) g115.14<1>W g1.18<2,2,1>W 2W {align1};
+asr (2) g115.0<1>D g116.0<2,2,1>D 1D {align1};
+add (2) g115.0<1>D g115.0<2,2,1>D g115.14<2,2,1>W {align1};
+and (1) g115.4<1>UD g115.4<1,1,1>UD 0xFFFFFFFEUD {align1};
+and.nz (1) null g1.31<1,1,1>UB 0x2UW {align1};
+(f0) add (1) g115.4<1>UD g115.4<1,1,1>UD 1UD {align1};
+define(`surface_u',`8')
+define(`surface_v',`9')
+define(`mv1',`g1.18')
+define(`mv2',`g1.20')
+include(`motion_field_uv_igd.g4i')
+mov (8) g44.0<1>UW g78.0<8,8,1>UW {align1};
+mov (8) g45.0<1>UW g79.0<8,8,1>UW {align1};
+mov (8) g46.0<1>UW g80.0<8,8,1>UW {align1};
+mov (8) g47.0<1>UW g81.0<8,8,1>UW {align1};
+mov (8) g48.0<1>UW g82.0<8,8,1>UW {align1};
+mov (8) g49.0<1>UW g83.0<8,8,1>UW {align1};
+mov (8) g50.0<1>UW g84.0<8,8,1>UW {align1};
+mov (8) g51.0<1>UW g85.0<8,8,1>UW {align1};
+
+/*backward---UV---second vector */
+asr (2) g115.14<1>W g1.26<2,2,1>W 2W {align1};
+asr (2) g115.0<1>D g116.0<2,2,1>D 1D {align1};
+add (2) g115.0<1>D g115.0<2,2,1>D g115.14<2,2,1>W {align1};
+and (1) g115.4<1>UD g115.4<1,1,1>UD 0xFFFFFFFEUD {align1};
+and.nz (1) null g1.31<1,1,1>UB 0x8UW {align1};
+(f0) add (1) g115.4<1>UD g115.4<1,1,1>UD 1UD {align1};
+define(`mv1',`g1.26')
+define(`mv2',`g1.28')
+include(`motion_field_uv_igd.g4i')
+mov (8) g44.16<1>UW g78.0<8,8,1>UW {align1};
+mov (8) g45.16<1>UW g79.0<8,8,1>UW {align1};
+mov (8) g46.16<1>UW g80.0<8,8,1>UW {align1};
+mov (8) g47.16<1>UW g81.0<8,8,1>UW {align1};
+mov (8) g48.16<1>UW g82.0<8,8,1>UW {align1};
+mov (8) g49.16<1>UW g83.0<8,8,1>UW {align1};
+mov (8) g50.16<1>UW g84.0<8,8,1>UW {align1};
+mov (8) g51.16<1>UW g85.0<8,8,1>UW {align1};
+
+avg.sat (16) g44.0<1>UW g68.0<16,16,1>UW g44.0<16,16,1>UW {align1};
+avg.sat (16) g45.0<1>UW g69.0<16,16,1>UW g45.0<16,16,1>UW {align1};
+avg.sat (16) g46.0<1>UW g70.0<16,16,1>UW g46.0<16,16,1>UW {align1};
+avg.sat (16) g47.0<1>UW g71.0<16,16,1>UW g47.0<16,16,1>UW {align1};
+avg.sat (16) g48.0<1>UW g72.0<16,16,1>UW g48.0<16,16,1>UW {align1};
+avg.sat (16) g49.0<1>UW g73.0<16,16,1>UW g49.0<16,16,1>UW {align1};
+avg.sat (16) g50.0<1>UW g74.0<16,16,1>UW g50.0<16,16,1>UW {align1};
+avg.sat (16) g51.0<1>UW g75.0<16,16,1>UW g51.0<16,16,1>UW {align1};
+
+include(`addidct.g4i')
+
+//send (16) 0 acc0<1>UW g0<8,8,1>UW 
+//	thread_spawner(0, 0, 0) mlen 1 rlen 0 { align1 EOT};
diff --git a/src/xvmc/shader/mc/field_f_b_igd.g4b b/src/xvmc/shader/mc/field_f_b_igd.g4b
new file mode 100644
index 0000000..6477d06
--- /dev/null
+++ b/src/xvmc/shader/mc/field_f_b_igd.g4b
@@ -0,0 +1,1142 @@
+   { 0x00600001, 0x29800021, 0x008d0020, 0x00000000 },
+   { 0x02000005, 0x20000c3c, 0x00210040, 0x00000001 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x00000030 },
+   { 0x00000040, 0x20480c21, 0x00210988, 0x00000000 },
+   { 0x00800031, 0x20601c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x20801c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x20a01c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x20c01c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x20e01c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x21001c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x21201c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x21401c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x21601c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x21801c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x21a01c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x21c01c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x21e01c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x22001c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x22201c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x22401c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x22601c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x22801c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x22a01c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x22c01c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x22e01c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x23001c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x23201c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x23401c21, 0x00b10040, 0x04110203 },
+   { 0x02000005, 0x20002d3c, 0x0021098c, 0x00200020 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x00000008 },
+   { 0x00600001, 0x20600169, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x20800169, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x20a00169, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x20c00169, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x20e00169, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x21000169, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x21200169, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x21400169, 0x00000000, 0x00000000 },
+   { 0x02000005, 0x20002d3c, 0x0021002c, 0x00100010 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x00000008 },
+   { 0x00600001, 0x20700169, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x20900169, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x20b00169, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x20d00169, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x20f00169, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x21100169, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x21300169, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x21500169, 0x00000000, 0x00000000 },
+   { 0x02000005, 0x20002d3c, 0x0021002c, 0x00080008 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x00000008 },
+   { 0x00600001, 0x21600169, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x21800169, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x21a00169, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x21c00169, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x21e00169, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x22000169, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x22200169, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x22400169, 0x00000000, 0x00000000 },
+   { 0x02000005, 0x20002d3c, 0x0021002c, 0x00040004 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x00000008 },
+   { 0x00600001, 0x21700169, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x21900169, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x21b00169, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x21d00169, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x21f00169, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x22100169, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x22300169, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x22500169, 0x00000000, 0x00000000 },
+   { 0x02000005, 0x20002d3c, 0x0021002c, 0x00020002 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x00000004 },
+   { 0x00800001, 0x22600169, 0x00000000, 0x00000000 },
+   { 0x00800001, 0x22800169, 0x00000000, 0x00000000 },
+   { 0x00800001, 0x22a00169, 0x00000000, 0x00000000 },
+   { 0x00800001, 0x22c00169, 0x00000000, 0x00000000 },
+   { 0x02000005, 0x20002d3c, 0x0021002c, 0x00010001 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x00000004 },
+   { 0x00800001, 0x22e00169, 0x00000000, 0x00000000 },
+   { 0x00800001, 0x23000169, 0x00000000, 0x00000000 },
+   { 0x00800001, 0x23200169, 0x00000000, 0x00000000 },
+   { 0x00800001, 0x23400169, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x2e600021, 0x008d0020, 0x00000000 },
+   { 0x00600001, 0x2e800021, 0x008d0020, 0x00000000 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0007001f },
+   { 0x0020000c, 0x2e6e3dad, 0x0045002e, 0x00010001 },
+   { 0x00200040, 0x2e6034a5, 0x00450e80, 0x00450e6e },
+   { 0x00000005, 0x2e640c21, 0x00210e64, 0xfffffffe },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
+   { 0x02000005, 0x20002e3c, 0x0021003f, 0x00010001 },
+   { 0x00010040, 0x2e641ca5, 0x00210e64, 0x00000001 },
+   { 0x01000005, 0x20002d3c, 0x0021002e, 0x00010001 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x00000045 },
+   { 0x01000005, 0x20002d3c, 0x00210030, 0x00010001 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x0000002f },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
+   { 0x00800031, 0x29c01d29, 0x008d0e60, 0x0411a004 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00800031, 0x2a001d29, 0x008d0e60, 0x0411a004 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00800031, 0x2a401d29, 0x008d0e60, 0x0411a004 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00800031, 0x2a801d29, 0x008d0e60, 0x0411a004 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0007001f },
+   { 0x00800031, 0x2ac01d29, 0x008d0e60, 0x0418a004 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
+   { 0x00800031, 0x2bc01d29, 0x008d0e60, 0x0411a004 },
+   { 0x00800040, 0x2c004629, 0x00b109c0, 0x00b10a00 },
+   { 0x00800040, 0x2c204629, 0x00b10a00, 0x00b10a40 },
+   { 0x00800040, 0x2c404629, 0x00b10a40, 0x00b10a80 },
+   { 0x00800040, 0x2c604629, 0x00b10a80, 0x00b10ac0 },
+   { 0x00800040, 0x2c804629, 0x00b10ac0, 0x00b10b00 },
+   { 0x00800040, 0x2ca04629, 0x00b10b00, 0x00b10b40 },
+   { 0x00800040, 0x2cc04629, 0x00b10b40, 0x00b10b80 },
+   { 0x00800040, 0x2ce04629, 0x00b10b80, 0x00b10bc0 },
+   { 0x00800040, 0x2c004529, 0x00b10c00, 0x00b109c1 },
+   { 0x00800040, 0x2c204529, 0x00b10c20, 0x00b10a01 },
+   { 0x00800040, 0x2c404529, 0x00b10c40, 0x00b10a41 },
+   { 0x00800040, 0x2c604529, 0x00b10c60, 0x00b10a81 },
+   { 0x00800040, 0x2c804529, 0x00b10c80, 0x00b10ac1 },
+   { 0x00800040, 0x2ca04529, 0x00b10ca0, 0x00b10b01 },
+   { 0x00800040, 0x2cc04529, 0x00b10cc0, 0x00b10b41 },
+   { 0x00800040, 0x2ce04529, 0x00b10ce0, 0x00b10b81 },
+   { 0x00800040, 0x2c004529, 0x00b10c00, 0x00b10a01 },
+   { 0x00800040, 0x2c204529, 0x00b10c20, 0x00b10a41 },
+   { 0x00800040, 0x2c404529, 0x00b10c40, 0x00b10a81 },
+   { 0x00800040, 0x2c604529, 0x00b10c60, 0x00b10ac1 },
+   { 0x00800040, 0x2c804529, 0x00b10c80, 0x00b10b01 },
+   { 0x00800040, 0x2ca04529, 0x00b10ca0, 0x00b10b41 },
+   { 0x00800040, 0x2cc04529, 0x00b10cc0, 0x00b10b81 },
+   { 0x00800040, 0x2ce04529, 0x00b10ce0, 0x00b10bc1 },
+   { 0x00800008, 0x2c002d29, 0x00b10c00, 0x00020002 },
+   { 0x00800008, 0x2c202d29, 0x00b10c20, 0x00020002 },
+   { 0x00800008, 0x2c402d29, 0x00b10c40, 0x00020002 },
+   { 0x00800008, 0x2c602d29, 0x00b10c60, 0x00020002 },
+   { 0x00800008, 0x2c802d29, 0x00b10c80, 0x00020002 },
+   { 0x00800008, 0x2ca02d29, 0x00b10ca0, 0x00020002 },
+   { 0x00800008, 0x2cc02d29, 0x00b10cc0, 0x00020002 },
+   { 0x00800008, 0x2ce02d29, 0x00b10ce0, 0x00020002 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000040 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
+   { 0x00800031, 0x29c01d29, 0x008d0e60, 0x0411a004 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00800031, 0x2a001d29, 0x008d0e60, 0x0411a004 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00800031, 0x2a401d29, 0x008d0e60, 0x0411a004 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00800031, 0x2a801d29, 0x008d0e60, 0x0411a004 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0007001f },
+   { 0x00800031, 0x2ac01d29, 0x008d0e60, 0x0418a004 },
+   { 0x80800042, 0x2c004629, 0x00b109c0, 0x00b109c1 },
+   { 0x80800042, 0x2c204629, 0x00b10a00, 0x00b10a01 },
+   { 0x80800042, 0x2c404629, 0x00b10a40, 0x00b10a41 },
+   { 0x80800042, 0x2c604629, 0x00b10a80, 0x00b10a81 },
+   { 0x80800042, 0x2c804629, 0x00b10ac0, 0x00b10ac1 },
+   { 0x80800042, 0x2ca04629, 0x00b10b00, 0x00b10b01 },
+   { 0x80800042, 0x2cc04629, 0x00b10b40, 0x00b10b41 },
+   { 0x80800042, 0x2ce04629, 0x00b10b80, 0x00b10b81 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x0000002c },
+   { 0x01000005, 0x20002d3c, 0x00210030, 0x00010001 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x00000017 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
+   { 0x00800031, 0x29c01d29, 0x008d0e60, 0x0411a004 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00800031, 0x2a001d29, 0x008d0e60, 0x0411a004 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00800031, 0x2a401d29, 0x008d0e60, 0x0411a004 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00800031, 0x2a801d29, 0x008d0e60, 0x0411a004 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0007001f },
+   { 0x00800031, 0x2ac01d29, 0x008d0e60, 0x0418a004 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
+   { 0x00800031, 0x2bc01d29, 0x008d0e60, 0x0411a004 },
+   { 0x80800042, 0x2c004629, 0x00b109c0, 0x00b10a00 },
+   { 0x80800042, 0x2c204629, 0x00b10a00, 0x00b10a40 },
+   { 0x80800042, 0x2c404629, 0x00b10a40, 0x00b10a80 },
+   { 0x80800042, 0x2c604629, 0x00b10a80, 0x00b10ac0 },
+   { 0x80800042, 0x2c804629, 0x00b10ac0, 0x00b10b00 },
+   { 0x80800042, 0x2ca04629, 0x00b10b00, 0x00b10b40 },
+   { 0x80800042, 0x2cc04629, 0x00b10b40, 0x00b10b80 },
+   { 0x80800042, 0x2ce04629, 0x00b10b80, 0x00b10bc0 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000013 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
+   { 0x00800031, 0x29c01d29, 0x008d0e60, 0x0411a004 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00800031, 0x2a001d29, 0x008d0e60, 0x0411a004 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00800031, 0x2a401d29, 0x008d0e60, 0x0411a004 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00800031, 0x2a801d29, 0x008d0e60, 0x0411a004 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0007001f },
+   { 0x00800031, 0x2ac01d29, 0x008d0e60, 0x0418a004 },
+   { 0x00800001, 0x2c000229, 0x00b109c0, 0x00000000 },
+   { 0x00800001, 0x2c200229, 0x00b10a00, 0x00000000 },
+   { 0x00800001, 0x2c400229, 0x00b10a40, 0x00000000 },
+   { 0x00800001, 0x2c600229, 0x00b10a80, 0x00000000 },
+   { 0x00800001, 0x2c800229, 0x00b10ac0, 0x00000000 },
+   { 0x00800001, 0x2ca00229, 0x00b10b00, 0x00000000 },
+   { 0x00800001, 0x2cc00229, 0x00b10b40, 0x00000000 },
+   { 0x00800001, 0x2ce00229, 0x00b10b80, 0x00000000 },
+   { 0x00600001, 0x26800021, 0x008d0c00, 0x00000000 },
+   { 0x00600001, 0x26c00021, 0x008d0c20, 0x00000000 },
+   { 0x00600001, 0x27000021, 0x008d0c40, 0x00000000 },
+   { 0x00600001, 0x27400021, 0x008d0c60, 0x00000000 },
+   { 0x00600001, 0x27800021, 0x008d0c80, 0x00000000 },
+   { 0x00600001, 0x27c00021, 0x008d0ca0, 0x00000000 },
+   { 0x00600001, 0x28000021, 0x008d0cc0, 0x00000000 },
+   { 0x00600001, 0x28400021, 0x008d0ce0, 0x00000000 },
+   { 0x0020000c, 0x2e6e3dad, 0x00450036, 0x00010001 },
+   { 0x00200040, 0x2e6034a5, 0x00450e80, 0x00450e6e },
+   { 0x00000005, 0x2e640c21, 0x00210e64, 0xfffffffe },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
+   { 0x02000005, 0x20000e3c, 0x0021003f, 0x00000004 },
+   { 0x00010040, 0x2e641ca5, 0x00210e64, 0x00000001 },
+   { 0x01000005, 0x20002d3c, 0x00210036, 0x00010001 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x00000045 },
+   { 0x01000005, 0x20002d3c, 0x00210038, 0x00010001 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x0000002f },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
+   { 0x00800031, 0x29c01d29, 0x008d0e60, 0x0411a004 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00800031, 0x2a001d29, 0x008d0e60, 0x0411a004 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00800031, 0x2a401d29, 0x008d0e60, 0x0411a004 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00800031, 0x2a801d29, 0x008d0e60, 0x0411a004 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0007001f },
+   { 0x00800031, 0x2ac01d29, 0x008d0e60, 0x0418a004 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
+   { 0x00800031, 0x2bc01d29, 0x008d0e60, 0x0411a004 },
+   { 0x00800040, 0x2c004629, 0x00b109c0, 0x00b10a00 },
+   { 0x00800040, 0x2c204629, 0x00b10a00, 0x00b10a40 },
+   { 0x00800040, 0x2c404629, 0x00b10a40, 0x00b10a80 },
+   { 0x00800040, 0x2c604629, 0x00b10a80, 0x00b10ac0 },
+   { 0x00800040, 0x2c804629, 0x00b10ac0, 0x00b10b00 },
+   { 0x00800040, 0x2ca04629, 0x00b10b00, 0x00b10b40 },
+   { 0x00800040, 0x2cc04629, 0x00b10b40, 0x00b10b80 },
+   { 0x00800040, 0x2ce04629, 0x00b10b80, 0x00b10bc0 },
+   { 0x00800040, 0x2c004529, 0x00b10c00, 0x00b109c1 },
+   { 0x00800040, 0x2c204529, 0x00b10c20, 0x00b10a01 },
+   { 0x00800040, 0x2c404529, 0x00b10c40, 0x00b10a41 },
+   { 0x00800040, 0x2c604529, 0x00b10c60, 0x00b10a81 },
+   { 0x00800040, 0x2c804529, 0x00b10c80, 0x00b10ac1 },
+   { 0x00800040, 0x2ca04529, 0x00b10ca0, 0x00b10b01 },
+   { 0x00800040, 0x2cc04529, 0x00b10cc0, 0x00b10b41 },
+   { 0x00800040, 0x2ce04529, 0x00b10ce0, 0x00b10b81 },
+   { 0x00800040, 0x2c004529, 0x00b10c00, 0x00b10a01 },
+   { 0x00800040, 0x2c204529, 0x00b10c20, 0x00b10a41 },
+   { 0x00800040, 0x2c404529, 0x00b10c40, 0x00b10a81 },
+   { 0x00800040, 0x2c604529, 0x00b10c60, 0x00b10ac1 },
+   { 0x00800040, 0x2c804529, 0x00b10c80, 0x00b10b01 },
+   { 0x00800040, 0x2ca04529, 0x00b10ca0, 0x00b10b41 },
+   { 0x00800040, 0x2cc04529, 0x00b10cc0, 0x00b10b81 },
+   { 0x00800040, 0x2ce04529, 0x00b10ce0, 0x00b10bc1 },
+   { 0x00800008, 0x2c002d29, 0x00b10c00, 0x00020002 },
+   { 0x00800008, 0x2c202d29, 0x00b10c20, 0x00020002 },
+   { 0x00800008, 0x2c402d29, 0x00b10c40, 0x00020002 },
+   { 0x00800008, 0x2c602d29, 0x00b10c60, 0x00020002 },
+   { 0x00800008, 0x2c802d29, 0x00b10c80, 0x00020002 },
+   { 0x00800008, 0x2ca02d29, 0x00b10ca0, 0x00020002 },
+   { 0x00800008, 0x2cc02d29, 0x00b10cc0, 0x00020002 },
+   { 0x00800008, 0x2ce02d29, 0x00b10ce0, 0x00020002 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000040 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
+   { 0x00800031, 0x29c01d29, 0x008d0e60, 0x0411a004 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00800031, 0x2a001d29, 0x008d0e60, 0x0411a004 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00800031, 0x2a401d29, 0x008d0e60, 0x0411a004 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00800031, 0x2a801d29, 0x008d0e60, 0x0411a004 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0007001f },
+   { 0x00800031, 0x2ac01d29, 0x008d0e60, 0x0418a004 },
+   { 0x80800042, 0x2c004629, 0x00b109c0, 0x00b109c1 },
+   { 0x80800042, 0x2c204629, 0x00b10a00, 0x00b10a01 },
+   { 0x80800042, 0x2c404629, 0x00b10a40, 0x00b10a41 },
+   { 0x80800042, 0x2c604629, 0x00b10a80, 0x00b10a81 },
+   { 0x80800042, 0x2c804629, 0x00b10ac0, 0x00b10ac1 },
+   { 0x80800042, 0x2ca04629, 0x00b10b00, 0x00b10b01 },
+   { 0x80800042, 0x2cc04629, 0x00b10b40, 0x00b10b41 },
+   { 0x80800042, 0x2ce04629, 0x00b10b80, 0x00b10b81 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x0000002c },
+   { 0x01000005, 0x20002d3c, 0x00210038, 0x00010001 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x00000017 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
+   { 0x00800031, 0x29c01d29, 0x008d0e60, 0x0411a004 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00800031, 0x2a001d29, 0x008d0e60, 0x0411a004 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00800031, 0x2a401d29, 0x008d0e60, 0x0411a004 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00800031, 0x2a801d29, 0x008d0e60, 0x0411a004 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0007001f },
+   { 0x00800031, 0x2ac01d29, 0x008d0e60, 0x0418a004 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
+   { 0x00800031, 0x2bc01d29, 0x008d0e60, 0x0411a004 },
+   { 0x80800042, 0x2c004629, 0x00b109c0, 0x00b10a00 },
+   { 0x80800042, 0x2c204629, 0x00b10a00, 0x00b10a40 },
+   { 0x80800042, 0x2c404629, 0x00b10a40, 0x00b10a80 },
+   { 0x80800042, 0x2c604629, 0x00b10a80, 0x00b10ac0 },
+   { 0x80800042, 0x2c804629, 0x00b10ac0, 0x00b10b00 },
+   { 0x80800042, 0x2ca04629, 0x00b10b00, 0x00b10b40 },
+   { 0x80800042, 0x2cc04629, 0x00b10b40, 0x00b10b80 },
+   { 0x80800042, 0x2ce04629, 0x00b10b80, 0x00b10bc0 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000013 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
+   { 0x00800031, 0x29c01d29, 0x008d0e60, 0x0411a004 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00800031, 0x2a001d29, 0x008d0e60, 0x0411a004 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00800031, 0x2a401d29, 0x008d0e60, 0x0411a004 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00800031, 0x2a801d29, 0x008d0e60, 0x0411a004 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0007001f },
+   { 0x00800031, 0x2ac01d29, 0x008d0e60, 0x0418a004 },
+   { 0x00800001, 0x2c000229, 0x00b109c0, 0x00000000 },
+   { 0x00800001, 0x2c200229, 0x00b10a00, 0x00000000 },
+   { 0x00800001, 0x2c400229, 0x00b10a40, 0x00000000 },
+   { 0x00800001, 0x2c600229, 0x00b10a80, 0x00000000 },
+   { 0x00800001, 0x2c800229, 0x00b10ac0, 0x00000000 },
+   { 0x00800001, 0x2ca00229, 0x00b10b00, 0x00000000 },
+   { 0x00800001, 0x2cc00229, 0x00b10b40, 0x00000000 },
+   { 0x00800001, 0x2ce00229, 0x00b10b80, 0x00000000 },
+   { 0x00600001, 0x26a00021, 0x008d0c00, 0x00000000 },
+   { 0x00600001, 0x26e00021, 0x008d0c20, 0x00000000 },
+   { 0x00600001, 0x27200021, 0x008d0c40, 0x00000000 },
+   { 0x00600001, 0x27600021, 0x008d0c60, 0x00000000 },
+   { 0x00600001, 0x27a00021, 0x008d0c80, 0x00000000 },
+   { 0x00600001, 0x27e00021, 0x008d0ca0, 0x00000000 },
+   { 0x00600001, 0x28200021, 0x008d0cc0, 0x00000000 },
+   { 0x00600001, 0x28600021, 0x008d0ce0, 0x00000000 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0007000f },
+   { 0x0020000c, 0x2e6e3dad, 0x0045002e, 0x00020002 },
+   { 0x0020000c, 0x2e601ca5, 0x00450e80, 0x00000001 },
+   { 0x00200040, 0x2e6034a5, 0x00450e60, 0x00450e6e },
+   { 0x00000005, 0x2e640c21, 0x00210e64, 0xfffffffe },
+   { 0x02000005, 0x20002e3c, 0x0021003f, 0x00010001 },
+   { 0x00010040, 0x2e640c21, 0x00210e64, 0x00000001 },
+   { 0x01000005, 0x20002d3c, 0x0021002e, 0x00020002 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x00000036 },
+   { 0x01000005, 0x20002d3c, 0x00210030, 0x00020002 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x00000028 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0007000f },
+   { 0x00800031, 0x2ac01d29, 0x00ad0e60, 0x0414a005 },
+   { 0x00800031, 0x2b601d29, 0x00ad0e60, 0x0414a006 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0001000f },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 },
+   { 0x00800031, 0x2b401d29, 0x00ad0e60, 0x0411a005 },
+   { 0x00800031, 0x2be01d29, 0x00ad0e60, 0x0411a006 },
+   { 0x00800040, 0x29c04629, 0x00ad0ac0, 0x00ad0ae0 },
+   { 0x00800040, 0x29e04629, 0x00ad0ae0, 0x00ad0b00 },
+   { 0x00800040, 0x2a004629, 0x00ad0b00, 0x00ad0b20 },
+   { 0x00800040, 0x2a204629, 0x00ad0b20, 0x00ad0b40 },
+   { 0x00800040, 0x29c04529, 0x00ad09c0, 0x00ad0ac1 },
+   { 0x00800040, 0x29e04529, 0x00ad09e0, 0x00ad0ae1 },
+   { 0x00800040, 0x2a004529, 0x00ad0a00, 0x00ad0b01 },
+   { 0x00800040, 0x2a204529, 0x00ad0a20, 0x00ad0b21 },
+   { 0x00800040, 0x29c04529, 0x00ad09c0, 0x00ad0ae1 },
+   { 0x00800040, 0x29e04529, 0x00ad09e0, 0x00ad0b01 },
+   { 0x00800040, 0x2a004529, 0x00ad0a00, 0x00ad0b21 },
+   { 0x00800040, 0x2a204529, 0x00ad0a20, 0x00ad0b41 },
+   { 0x00800040, 0x2a404629, 0x00ad0b60, 0x00ad0b80 },
+   { 0x00800040, 0x2a604629, 0x00ad0b80, 0x00ad0ba0 },
+   { 0x00800040, 0x2a804629, 0x00ad0ba0, 0x00ad0bc0 },
+   { 0x00800040, 0x2aa04629, 0x00ad0bc0, 0x00ad0be0 },
+   { 0x00800040, 0x2a404529, 0x00ad0a40, 0x00ad0b61 },
+   { 0x00800040, 0x2a604529, 0x00ad0a60, 0x00ad0b81 },
+   { 0x00800040, 0x2a804529, 0x00ad0a80, 0x00ad0ba1 },
+   { 0x00800040, 0x2aa04529, 0x00ad0aa0, 0x00ad0bc1 },
+   { 0x00800040, 0x2a404529, 0x00ad0a40, 0x00ad0b81 },
+   { 0x00800040, 0x2a604529, 0x00ad0a60, 0x00ad0ba1 },
+   { 0x00800040, 0x2a804529, 0x00ad0a80, 0x00ad0bc1 },
+   { 0x00800040, 0x2aa04529, 0x00ad0aa0, 0x00ad0be1 },
+   { 0x80800008, 0x29c02d29, 0x00b109c0, 0x00020002 },
+   { 0x80800008, 0x29e02d29, 0x00b109e0, 0x00020002 },
+   { 0x80800008, 0x2a002d29, 0x00b10a00, 0x00020002 },
+   { 0x80800008, 0x2a202d29, 0x00b10a20, 0x00020002 },
+   { 0x80800008, 0x2a402d29, 0x00b10a40, 0x00020002 },
+   { 0x80800008, 0x2a602d29, 0x00b10a60, 0x00020002 },
+   { 0x80800008, 0x2a802d29, 0x00b10a80, 0x00020002 },
+   { 0x80800008, 0x2aa02d29, 0x00b10aa0, 0x00020002 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000028 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0007000f },
+   { 0x00800031, 0x2ac01d29, 0x00ad0e60, 0x0414a005 },
+   { 0x00800031, 0x2b601d29, 0x00ad0e60, 0x0414a006 },
+   { 0x80800042, 0x29c04629, 0x00ad0ac0, 0x00ad0ac1 },
+   { 0x80800042, 0x29e04629, 0x00ad0ae0, 0x00ad0ae1 },
+   { 0x80800042, 0x2a004629, 0x00ad0b00, 0x00ad0b01 },
+   { 0x80800042, 0x2a204629, 0x00ad0b20, 0x00ad0b21 },
+   { 0x80800042, 0x2a404629, 0x00ad0b60, 0x00ad0b61 },
+   { 0x80800042, 0x2a604629, 0x00ad0b80, 0x00ad0b81 },
+   { 0x80800042, 0x2a804629, 0x00ad0ba0, 0x00ad0ba1 },
+   { 0x80800042, 0x2aa04629, 0x00ad0bc0, 0x00ad0bc1 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x0000001c },
+   { 0x01000005, 0x20002d3c, 0x00210030, 0x00020002 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x0000000f },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0007000f },
+   { 0x00800031, 0x2ac01d29, 0x00ad0e60, 0x0414a005 },
+   { 0x00800031, 0x2b601d29, 0x00ad0e60, 0x0414a006 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0000000f },
+   { 0x00800031, 0x2b401d29, 0x00ad0e60, 0x0411a005 },
+   { 0x00800031, 0x2be01d29, 0x00ad0e60, 0x0411a006 },
+   { 0x80800042, 0x29c04629, 0x00ad0ac0, 0x00ad0ae0 },
+   { 0x80800042, 0x29e04629, 0x00ad0ae0, 0x00ad0b00 },
+   { 0x80800042, 0x2a004629, 0x00ad0b00, 0x00ad0b20 },
+   { 0x80800042, 0x2a204629, 0x00ad0b20, 0x00ad0b40 },
+   { 0x80800042, 0x2a404629, 0x00ad0b60, 0x00ad0b80 },
+   { 0x80800042, 0x2a604629, 0x00ad0b80, 0x00ad0ba0 },
+   { 0x80800042, 0x2a804629, 0x00ad0ba0, 0x00ad0bc0 },
+   { 0x80800042, 0x2aa04629, 0x00ad0bc0, 0x00ad0be0 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x0000000b },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0007000f },
+   { 0x00800031, 0x2ac01d29, 0x00ad0e60, 0x0414a005 },
+   { 0x00800031, 0x2b601d29, 0x00ad0e60, 0x0414a006 },
+   { 0x00800001, 0x29c00229, 0x00ad0ac0, 0x00000000 },
+   { 0x00800001, 0x29e00229, 0x00ad0ae0, 0x00000000 },
+   { 0x00800001, 0x2a000229, 0x00ad0b00, 0x00000000 },
+   { 0x00800001, 0x2a200229, 0x00ad0b20, 0x00000000 },
+   { 0x00800001, 0x2a400229, 0x00ad0b60, 0x00000000 },
+   { 0x00800001, 0x2a600229, 0x00ad0b80, 0x00000000 },
+   { 0x00800001, 0x2a800229, 0x00ad0ba0, 0x00000000 },
+   { 0x00800001, 0x2aa00229, 0x00ad0bc0, 0x00000000 },
+   { 0x00600001, 0x28800129, 0x008d09c0, 0x00000000 },
+   { 0x00600001, 0x28a00129, 0x008d09e0, 0x00000000 },
+   { 0x00600001, 0x28c00129, 0x008d0a00, 0x00000000 },
+   { 0x00600001, 0x28e00129, 0x008d0a20, 0x00000000 },
+   { 0x00600001, 0x29000129, 0x008d0a40, 0x00000000 },
+   { 0x00600001, 0x29200129, 0x008d0a60, 0x00000000 },
+   { 0x00600001, 0x29400129, 0x008d0a80, 0x00000000 },
+   { 0x00600001, 0x29600129, 0x008d0aa0, 0x00000000 },
+   { 0x0020000c, 0x2e6e3dad, 0x00450036, 0x00020002 },
+   { 0x0020000c, 0x2e601ca5, 0x00450e80, 0x00000001 },
+   { 0x00200040, 0x2e6034a5, 0x00450e60, 0x00450e6e },
+   { 0x00000005, 0x2e640c21, 0x00210e64, 0xfffffffe },
+   { 0x02000005, 0x20002e3c, 0x0021003f, 0x00040004 },
+   { 0x00010040, 0x2e640c21, 0x00210e64, 0x00000001 },
+   { 0x01000005, 0x20002d3c, 0x00210038, 0x00020002 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x00000036 },
+   { 0x01000005, 0x20002d3c, 0x0021003a, 0x00020002 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x00000028 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0007000f },
+   { 0x00800031, 0x2ac01d29, 0x00ad0e60, 0x0414a005 },
+   { 0x00800031, 0x2b601d29, 0x00ad0e60, 0x0414a006 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0001000f },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 },
+   { 0x00800031, 0x2b401d29, 0x00ad0e60, 0x0411a005 },
+   { 0x00800031, 0x2be01d29, 0x00ad0e60, 0x0411a006 },
+   { 0x00800040, 0x29c04629, 0x00ad0ac0, 0x00ad0ae0 },
+   { 0x00800040, 0x29e04629, 0x00ad0ae0, 0x00ad0b00 },
+   { 0x00800040, 0x2a004629, 0x00ad0b00, 0x00ad0b20 },
+   { 0x00800040, 0x2a204629, 0x00ad0b20, 0x00ad0b40 },
+   { 0x00800040, 0x29c04529, 0x00ad09c0, 0x00ad0ac1 },
+   { 0x00800040, 0x29e04529, 0x00ad09e0, 0x00ad0ae1 },
+   { 0x00800040, 0x2a004529, 0x00ad0a00, 0x00ad0b01 },
+   { 0x00800040, 0x2a204529, 0x00ad0a20, 0x00ad0b21 },
+   { 0x00800040, 0x29c04529, 0x00ad09c0, 0x00ad0ae1 },
+   { 0x00800040, 0x29e04529, 0x00ad09e0, 0x00ad0b01 },
+   { 0x00800040, 0x2a004529, 0x00ad0a00, 0x00ad0b21 },
+   { 0x00800040, 0x2a204529, 0x00ad0a20, 0x00ad0b41 },
+   { 0x00800040, 0x2a404629, 0x00ad0b60, 0x00ad0b80 },
+   { 0x00800040, 0x2a604629, 0x00ad0b80, 0x00ad0ba0 },
+   { 0x00800040, 0x2a804629, 0x00ad0ba0, 0x00ad0bc0 },
+   { 0x00800040, 0x2aa04629, 0x00ad0bc0, 0x00ad0be0 },
+   { 0x00800040, 0x2a404529, 0x00ad0a40, 0x00ad0b61 },
+   { 0x00800040, 0x2a604529, 0x00ad0a60, 0x00ad0b81 },
+   { 0x00800040, 0x2a804529, 0x00ad0a80, 0x00ad0ba1 },
+   { 0x00800040, 0x2aa04529, 0x00ad0aa0, 0x00ad0bc1 },
+   { 0x00800040, 0x2a404529, 0x00ad0a40, 0x00ad0b81 },
+   { 0x00800040, 0x2a604529, 0x00ad0a60, 0x00ad0ba1 },
+   { 0x00800040, 0x2a804529, 0x00ad0a80, 0x00ad0bc1 },
+   { 0x00800040, 0x2aa04529, 0x00ad0aa0, 0x00ad0be1 },
+   { 0x80800008, 0x29c02d29, 0x00b109c0, 0x00020002 },
+   { 0x80800008, 0x29e02d29, 0x00b109e0, 0x00020002 },
+   { 0x80800008, 0x2a002d29, 0x00b10a00, 0x00020002 },
+   { 0x80800008, 0x2a202d29, 0x00b10a20, 0x00020002 },
+   { 0x80800008, 0x2a402d29, 0x00b10a40, 0x00020002 },
+   { 0x80800008, 0x2a602d29, 0x00b10a60, 0x00020002 },
+   { 0x80800008, 0x2a802d29, 0x00b10a80, 0x00020002 },
+   { 0x80800008, 0x2aa02d29, 0x00b10aa0, 0x00020002 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000028 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0007000f },
+   { 0x00800031, 0x2ac01d29, 0x00ad0e60, 0x0414a005 },
+   { 0x00800031, 0x2b601d29, 0x00ad0e60, 0x0414a006 },
+   { 0x80800042, 0x29c04629, 0x00ad0ac0, 0x00ad0ac1 },
+   { 0x80800042, 0x29e04629, 0x00ad0ae0, 0x00ad0ae1 },
+   { 0x80800042, 0x2a004629, 0x00ad0b00, 0x00ad0b01 },
+   { 0x80800042, 0x2a204629, 0x00ad0b20, 0x00ad0b21 },
+   { 0x80800042, 0x2a404629, 0x00ad0b60, 0x00ad0b61 },
+   { 0x80800042, 0x2a604629, 0x00ad0b80, 0x00ad0b81 },
+   { 0x80800042, 0x2a804629, 0x00ad0ba0, 0x00ad0ba1 },
+   { 0x80800042, 0x2aa04629, 0x00ad0bc0, 0x00ad0bc1 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x0000001c },
+   { 0x01000005, 0x20002d3c, 0x0021003a, 0x00020002 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x0000000f },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0007000f },
+   { 0x00800031, 0x2ac01d29, 0x00ad0e60, 0x0414a005 },
+   { 0x00800031, 0x2b601d29, 0x00ad0e60, 0x0414a006 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0000000f },
+   { 0x00800031, 0x2b401d29, 0x00ad0e60, 0x0411a005 },
+   { 0x00800031, 0x2be01d29, 0x00ad0e60, 0x0411a006 },
+   { 0x80800042, 0x29c04629, 0x00ad0ac0, 0x00ad0ae0 },
+   { 0x80800042, 0x29e04629, 0x00ad0ae0, 0x00ad0b00 },
+   { 0x80800042, 0x2a004629, 0x00ad0b00, 0x00ad0b20 },
+   { 0x80800042, 0x2a204629, 0x00ad0b20, 0x00ad0b40 },
+   { 0x80800042, 0x2a404629, 0x00ad0b60, 0x00ad0b80 },
+   { 0x80800042, 0x2a604629, 0x00ad0b80, 0x00ad0ba0 },
+   { 0x80800042, 0x2a804629, 0x00ad0ba0, 0x00ad0bc0 },
+   { 0x80800042, 0x2aa04629, 0x00ad0bc0, 0x00ad0be0 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x0000000b },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0007000f },
+   { 0x00800031, 0x2ac01d29, 0x00ad0e60, 0x0414a005 },
+   { 0x00800031, 0x2b601d29, 0x00ad0e60, 0x0414a006 },
+   { 0x00800001, 0x29c00229, 0x00ad0ac0, 0x00000000 },
+   { 0x00800001, 0x29e00229, 0x00ad0ae0, 0x00000000 },
+   { 0x00800001, 0x2a000229, 0x00ad0b00, 0x00000000 },
+   { 0x00800001, 0x2a200229, 0x00ad0b20, 0x00000000 },
+   { 0x00800001, 0x2a400229, 0x00ad0b60, 0x00000000 },
+   { 0x00800001, 0x2a600229, 0x00ad0b80, 0x00000000 },
+   { 0x00800001, 0x2a800229, 0x00ad0ba0, 0x00000000 },
+   { 0x00800001, 0x2aa00229, 0x00ad0bc0, 0x00000000 },
+   { 0x00600001, 0x28900129, 0x008d09c0, 0x00000000 },
+   { 0x00600001, 0x28b00129, 0x008d09e0, 0x00000000 },
+   { 0x00600001, 0x28d00129, 0x008d0a00, 0x00000000 },
+   { 0x00600001, 0x28f00129, 0x008d0a20, 0x00000000 },
+   { 0x00600001, 0x29100129, 0x008d0a40, 0x00000000 },
+   { 0x00600001, 0x29300129, 0x008d0a60, 0x00000000 },
+   { 0x00600001, 0x29500129, 0x008d0a80, 0x00000000 },
+   { 0x00600001, 0x29700129, 0x008d0aa0, 0x00000000 },
+   { 0x00600001, 0x20200021, 0x008d0e80, 0x00000000 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0007001f },
+   { 0x00000001, 0x20280061, 0x00000000, 0x0007000f },
+   { 0x0020000c, 0x2e6e3dad, 0x00450032, 0x00010001 },
+   { 0x00200040, 0x2e6034a5, 0x00450e80, 0x00450e6e },
+   { 0x00000005, 0x2e640c21, 0x00210e64, 0xfffffffe },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
+   { 0x02000005, 0x20002e3c, 0x0021003f, 0x00020002 },
+   { 0x00010040, 0x2e641ca5, 0x00210e64, 0x00000001 },
+   { 0x01000005, 0x20002d3c, 0x00210032, 0x00010001 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x00000045 },
+   { 0x01000005, 0x20002d3c, 0x00210034, 0x00010001 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x0000002f },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
+   { 0x00800031, 0x29c01d29, 0x008d0e60, 0x0411a007 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00800031, 0x2a001d29, 0x008d0e60, 0x0411a007 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00800031, 0x2a401d29, 0x008d0e60, 0x0411a007 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00800031, 0x2a801d29, 0x008d0e60, 0x0411a007 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0007001f },
+   { 0x00800031, 0x2ac01d29, 0x008d0e60, 0x0418a007 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
+   { 0x00800031, 0x2bc01d29, 0x008d0e60, 0x0411a007 },
+   { 0x00800040, 0x2c004629, 0x00b109c0, 0x00b10a00 },
+   { 0x00800040, 0x2c204629, 0x00b10a00, 0x00b10a40 },
+   { 0x00800040, 0x2c404629, 0x00b10a40, 0x00b10a80 },
+   { 0x00800040, 0x2c604629, 0x00b10a80, 0x00b10ac0 },
+   { 0x00800040, 0x2c804629, 0x00b10ac0, 0x00b10b00 },
+   { 0x00800040, 0x2ca04629, 0x00b10b00, 0x00b10b40 },
+   { 0x00800040, 0x2cc04629, 0x00b10b40, 0x00b10b80 },
+   { 0x00800040, 0x2ce04629, 0x00b10b80, 0x00b10bc0 },
+   { 0x00800040, 0x2c004529, 0x00b10c00, 0x00b109c1 },
+   { 0x00800040, 0x2c204529, 0x00b10c20, 0x00b10a01 },
+   { 0x00800040, 0x2c404529, 0x00b10c40, 0x00b10a41 },
+   { 0x00800040, 0x2c604529, 0x00b10c60, 0x00b10a81 },
+   { 0x00800040, 0x2c804529, 0x00b10c80, 0x00b10ac1 },
+   { 0x00800040, 0x2ca04529, 0x00b10ca0, 0x00b10b01 },
+   { 0x00800040, 0x2cc04529, 0x00b10cc0, 0x00b10b41 },
+   { 0x00800040, 0x2ce04529, 0x00b10ce0, 0x00b10b81 },
+   { 0x00800040, 0x2c004529, 0x00b10c00, 0x00b10a01 },
+   { 0x00800040, 0x2c204529, 0x00b10c20, 0x00b10a41 },
+   { 0x00800040, 0x2c404529, 0x00b10c40, 0x00b10a81 },
+   { 0x00800040, 0x2c604529, 0x00b10c60, 0x00b10ac1 },
+   { 0x00800040, 0x2c804529, 0x00b10c80, 0x00b10b01 },
+   { 0x00800040, 0x2ca04529, 0x00b10ca0, 0x00b10b41 },
+   { 0x00800040, 0x2cc04529, 0x00b10cc0, 0x00b10b81 },
+   { 0x00800040, 0x2ce04529, 0x00b10ce0, 0x00b10bc1 },
+   { 0x00800008, 0x2c002d29, 0x00b10c00, 0x00020002 },
+   { 0x00800008, 0x2c202d29, 0x00b10c20, 0x00020002 },
+   { 0x00800008, 0x2c402d29, 0x00b10c40, 0x00020002 },
+   { 0x00800008, 0x2c602d29, 0x00b10c60, 0x00020002 },
+   { 0x00800008, 0x2c802d29, 0x00b10c80, 0x00020002 },
+   { 0x00800008, 0x2ca02d29, 0x00b10ca0, 0x00020002 },
+   { 0x00800008, 0x2cc02d29, 0x00b10cc0, 0x00020002 },
+   { 0x00800008, 0x2ce02d29, 0x00b10ce0, 0x00020002 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000040 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
+   { 0x00800031, 0x29c01d29, 0x008d0e60, 0x0411a007 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00800031, 0x2a001d29, 0x008d0e60, 0x0411a007 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00800031, 0x2a401d29, 0x008d0e60, 0x0411a007 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00800031, 0x2a801d29, 0x008d0e60, 0x0411a007 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0007001f },
+   { 0x00800031, 0x2ac01d29, 0x008d0e60, 0x0418a007 },
+   { 0x80800042, 0x2c004629, 0x00b109c0, 0x00b109c1 },
+   { 0x80800042, 0x2c204629, 0x00b10a00, 0x00b10a01 },
+   { 0x80800042, 0x2c404629, 0x00b10a40, 0x00b10a41 },
+   { 0x80800042, 0x2c604629, 0x00b10a80, 0x00b10a81 },
+   { 0x80800042, 0x2c804629, 0x00b10ac0, 0x00b10ac1 },
+   { 0x80800042, 0x2ca04629, 0x00b10b00, 0x00b10b01 },
+   { 0x80800042, 0x2cc04629, 0x00b10b40, 0x00b10b41 },
+   { 0x80800042, 0x2ce04629, 0x00b10b80, 0x00b10b81 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x0000002c },
+   { 0x01000005, 0x20002d3c, 0x00210034, 0x00010001 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x00000017 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
+   { 0x00800031, 0x29c01d29, 0x008d0e60, 0x0411a007 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00800031, 0x2a001d29, 0x008d0e60, 0x0411a007 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00800031, 0x2a401d29, 0x008d0e60, 0x0411a007 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00800031, 0x2a801d29, 0x008d0e60, 0x0411a007 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0007001f },
+   { 0x00800031, 0x2ac01d29, 0x008d0e60, 0x0418a007 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
+   { 0x00800031, 0x2bc01d29, 0x008d0e60, 0x0411a007 },
+   { 0x80800042, 0x2c004629, 0x00b109c0, 0x00b10a00 },
+   { 0x80800042, 0x2c204629, 0x00b10a00, 0x00b10a40 },
+   { 0x80800042, 0x2c404629, 0x00b10a40, 0x00b10a80 },
+   { 0x80800042, 0x2c604629, 0x00b10a80, 0x00b10ac0 },
+   { 0x80800042, 0x2c804629, 0x00b10ac0, 0x00b10b00 },
+   { 0x80800042, 0x2ca04629, 0x00b10b00, 0x00b10b40 },
+   { 0x80800042, 0x2cc04629, 0x00b10b40, 0x00b10b80 },
+   { 0x80800042, 0x2ce04629, 0x00b10b80, 0x00b10bc0 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000013 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
+   { 0x00800031, 0x29c01d29, 0x008d0e60, 0x0411a007 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00800031, 0x2a001d29, 0x008d0e60, 0x0411a007 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00800031, 0x2a401d29, 0x008d0e60, 0x0411a007 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00800031, 0x2a801d29, 0x008d0e60, 0x0411a007 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0007001f },
+   { 0x00800031, 0x2ac01d29, 0x008d0e60, 0x0418a007 },
+   { 0x00800001, 0x2c000229, 0x00b109c0, 0x00000000 },
+   { 0x00800001, 0x2c200229, 0x00b10a00, 0x00000000 },
+   { 0x00800001, 0x2c400229, 0x00b10a40, 0x00000000 },
+   { 0x00800001, 0x2c600229, 0x00b10a80, 0x00000000 },
+   { 0x00800001, 0x2c800229, 0x00b10ac0, 0x00000000 },
+   { 0x00800001, 0x2ca00229, 0x00b10b00, 0x00000000 },
+   { 0x00800001, 0x2cc00229, 0x00b10b40, 0x00000000 },
+   { 0x00800001, 0x2ce00229, 0x00b10b80, 0x00000000 },
+   { 0x00600001, 0x23800021, 0x008d0c00, 0x00000000 },
+   { 0x00600001, 0x23c00021, 0x008d0c20, 0x00000000 },
+   { 0x00600001, 0x24000021, 0x008d0c40, 0x00000000 },
+   { 0x00600001, 0x24400021, 0x008d0c60, 0x00000000 },
+   { 0x00600001, 0x24800021, 0x008d0c80, 0x00000000 },
+   { 0x00600001, 0x24c00021, 0x008d0ca0, 0x00000000 },
+   { 0x00600001, 0x25000021, 0x008d0cc0, 0x00000000 },
+   { 0x00600001, 0x25400021, 0x008d0ce0, 0x00000000 },
+   { 0x0020000c, 0x2e6e3dad, 0x0045003a, 0x00010001 },
+   { 0x00200040, 0x2e6034a5, 0x00450e80, 0x00450e6e },
+   { 0x00000005, 0x2e640c21, 0x00210e64, 0xfffffffe },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
+   { 0x02000005, 0x20000c3c, 0x00210054, 0x00000008 },
+   { 0x00010040, 0x2e641ca5, 0x00210e64, 0x00000001 },
+   { 0x01000005, 0x20002d3c, 0x0021003a, 0x00010001 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x00000045 },
+   { 0x01000005, 0x20002d3c, 0x0021003c, 0x00010001 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x0000002f },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
+   { 0x00800031, 0x29c01d29, 0x008d0e60, 0x0411a007 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00800031, 0x2a001d29, 0x008d0e60, 0x0411a007 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00800031, 0x2a401d29, 0x008d0e60, 0x0411a007 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00800031, 0x2a801d29, 0x008d0e60, 0x0411a007 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0007001f },
+   { 0x00800031, 0x2ac01d29, 0x008d0e60, 0x0418a007 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
+   { 0x00800031, 0x2bc01d29, 0x008d0e60, 0x0411a007 },
+   { 0x00800040, 0x2c004629, 0x00b109c0, 0x00b10a00 },
+   { 0x00800040, 0x2c204629, 0x00b10a00, 0x00b10a40 },
+   { 0x00800040, 0x2c404629, 0x00b10a40, 0x00b10a80 },
+   { 0x00800040, 0x2c604629, 0x00b10a80, 0x00b10ac0 },
+   { 0x00800040, 0x2c804629, 0x00b10ac0, 0x00b10b00 },
+   { 0x00800040, 0x2ca04629, 0x00b10b00, 0x00b10b40 },
+   { 0x00800040, 0x2cc04629, 0x00b10b40, 0x00b10b80 },
+   { 0x00800040, 0x2ce04629, 0x00b10b80, 0x00b10bc0 },
+   { 0x00800040, 0x2c004529, 0x00b10c00, 0x00b109c1 },
+   { 0x00800040, 0x2c204529, 0x00b10c20, 0x00b10a01 },
+   { 0x00800040, 0x2c404529, 0x00b10c40, 0x00b10a41 },
+   { 0x00800040, 0x2c604529, 0x00b10c60, 0x00b10a81 },
+   { 0x00800040, 0x2c804529, 0x00b10c80, 0x00b10ac1 },
+   { 0x00800040, 0x2ca04529, 0x00b10ca0, 0x00b10b01 },
+   { 0x00800040, 0x2cc04529, 0x00b10cc0, 0x00b10b41 },
+   { 0x00800040, 0x2ce04529, 0x00b10ce0, 0x00b10b81 },
+   { 0x00800040, 0x2c004529, 0x00b10c00, 0x00b10a01 },
+   { 0x00800040, 0x2c204529, 0x00b10c20, 0x00b10a41 },
+   { 0x00800040, 0x2c404529, 0x00b10c40, 0x00b10a81 },
+   { 0x00800040, 0x2c604529, 0x00b10c60, 0x00b10ac1 },
+   { 0x00800040, 0x2c804529, 0x00b10c80, 0x00b10b01 },
+   { 0x00800040, 0x2ca04529, 0x00b10ca0, 0x00b10b41 },
+   { 0x00800040, 0x2cc04529, 0x00b10cc0, 0x00b10b81 },
+   { 0x00800040, 0x2ce04529, 0x00b10ce0, 0x00b10bc1 },
+   { 0x00800008, 0x2c002d29, 0x00b10c00, 0x00020002 },
+   { 0x00800008, 0x2c202d29, 0x00b10c20, 0x00020002 },
+   { 0x00800008, 0x2c402d29, 0x00b10c40, 0x00020002 },
+   { 0x00800008, 0x2c602d29, 0x00b10c60, 0x00020002 },
+   { 0x00800008, 0x2c802d29, 0x00b10c80, 0x00020002 },
+   { 0x00800008, 0x2ca02d29, 0x00b10ca0, 0x00020002 },
+   { 0x00800008, 0x2cc02d29, 0x00b10cc0, 0x00020002 },
+   { 0x00800008, 0x2ce02d29, 0x00b10ce0, 0x00020002 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000040 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
+   { 0x00800031, 0x29c01d29, 0x008d0e60, 0x0411a007 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00800031, 0x2a001d29, 0x008d0e60, 0x0411a007 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00800031, 0x2a401d29, 0x008d0e60, 0x0411a007 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00800031, 0x2a801d29, 0x008d0e60, 0x0411a007 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0007001f },
+   { 0x00800031, 0x2ac01d29, 0x008d0e60, 0x0418a007 },
+   { 0x80800042, 0x2c004629, 0x00b109c0, 0x00b109c1 },
+   { 0x80800042, 0x2c204629, 0x00b10a00, 0x00b10a01 },
+   { 0x80800042, 0x2c404629, 0x00b10a40, 0x00b10a41 },
+   { 0x80800042, 0x2c604629, 0x00b10a80, 0x00b10a81 },
+   { 0x80800042, 0x2c804629, 0x00b10ac0, 0x00b10ac1 },
+   { 0x80800042, 0x2ca04629, 0x00b10b00, 0x00b10b01 },
+   { 0x80800042, 0x2cc04629, 0x00b10b40, 0x00b10b41 },
+   { 0x80800042, 0x2ce04629, 0x00b10b80, 0x00b10b81 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x0000002c },
+   { 0x01000005, 0x20002d3c, 0x0021003c, 0x00010001 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x00000017 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
+   { 0x00800031, 0x29c01d29, 0x008d0e60, 0x0411a007 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00800031, 0x2a001d29, 0x008d0e60, 0x0411a007 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00800031, 0x2a401d29, 0x008d0e60, 0x0411a007 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00800031, 0x2a801d29, 0x008d0e60, 0x0411a007 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0007001f },
+   { 0x00800031, 0x2ac01d29, 0x008d0e60, 0x0418a007 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
+   { 0x00800031, 0x2bc01d29, 0x008d0e60, 0x0411a007 },
+   { 0x80800042, 0x2c004629, 0x00b109c0, 0x00b10a00 },
+   { 0x80800042, 0x2c204629, 0x00b10a00, 0x00b10a40 },
+   { 0x80800042, 0x2c404629, 0x00b10a40, 0x00b10a80 },
+   { 0x80800042, 0x2c604629, 0x00b10a80, 0x00b10ac0 },
+   { 0x80800042, 0x2c804629, 0x00b10ac0, 0x00b10b00 },
+   { 0x80800042, 0x2ca04629, 0x00b10b00, 0x00b10b40 },
+   { 0x80800042, 0x2cc04629, 0x00b10b40, 0x00b10b80 },
+   { 0x80800042, 0x2ce04629, 0x00b10b80, 0x00b10bc0 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000013 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
+   { 0x00800031, 0x29c01d29, 0x008d0e60, 0x0411a007 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00800031, 0x2a001d29, 0x008d0e60, 0x0411a007 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00800031, 0x2a401d29, 0x008d0e60, 0x0411a007 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00800031, 0x2a801d29, 0x008d0e60, 0x0411a007 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0007001f },
+   { 0x00800031, 0x2ac01d29, 0x008d0e60, 0x0418a007 },
+   { 0x00800001, 0x2c000229, 0x00b109c0, 0x00000000 },
+   { 0x00800001, 0x2c200229, 0x00b10a00, 0x00000000 },
+   { 0x00800001, 0x2c400229, 0x00b10a40, 0x00000000 },
+   { 0x00800001, 0x2c600229, 0x00b10a80, 0x00000000 },
+   { 0x00800001, 0x2c800229, 0x00b10ac0, 0x00000000 },
+   { 0x00800001, 0x2ca00229, 0x00b10b00, 0x00000000 },
+   { 0x00800001, 0x2cc00229, 0x00b10b40, 0x00000000 },
+   { 0x00800001, 0x2ce00229, 0x00b10b80, 0x00000000 },
+   { 0x80800042, 0x23802529, 0x00b10680, 0x00b10380 },
+   { 0x80800042, 0x23a02529, 0x00b106a0, 0x00b10c00 },
+   { 0x80800042, 0x23c02529, 0x00b106c0, 0x00b103c0 },
+   { 0x80800042, 0x23e02529, 0x00b106e0, 0x00b10c20 },
+   { 0x80800042, 0x24002529, 0x00b10700, 0x00b10400 },
+   { 0x80800042, 0x24202529, 0x00b10720, 0x00b10c40 },
+   { 0x80800042, 0x24402529, 0x00b10740, 0x00b10440 },
+   { 0x80800042, 0x24602529, 0x00b10760, 0x00b10c60 },
+   { 0x80800042, 0x24802529, 0x00b10780, 0x00b10480 },
+   { 0x80800042, 0x24a02529, 0x00b107a0, 0x00b10c80 },
+   { 0x80800042, 0x24c02529, 0x00b107c0, 0x00b104c0 },
+   { 0x80800042, 0x24e02529, 0x00b107e0, 0x00b10ca0 },
+   { 0x80800042, 0x25002529, 0x00b10800, 0x00b10500 },
+   { 0x80800042, 0x25202529, 0x00b10820, 0x00b10cc0 },
+   { 0x80800042, 0x25402529, 0x00b10840, 0x00b10540 },
+   { 0x80800042, 0x25602529, 0x00b10860, 0x00b10ce0 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0007000f },
+   { 0x0020000c, 0x2e6e3dad, 0x00450032, 0x00020002 },
+   { 0x0020000c, 0x2e601ca5, 0x00450e80, 0x00000001 },
+   { 0x00200040, 0x2e6034a5, 0x00450e60, 0x00450e6e },
+   { 0x00000005, 0x2e640c21, 0x00210e64, 0xfffffffe },
+   { 0x02000005, 0x20002e3c, 0x0021003f, 0x00020002 },
+   { 0x00010040, 0x2e640c21, 0x00210e64, 0x00000001 },
+   { 0x01000005, 0x20002d3c, 0x00210032, 0x00020002 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x00000036 },
+   { 0x01000005, 0x20002d3c, 0x00210034, 0x00020002 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x00000028 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0007000f },
+   { 0x00800031, 0x2ac01d29, 0x00ad0e60, 0x0414a008 },
+   { 0x00800031, 0x2b601d29, 0x00ad0e60, 0x0414a009 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0001000f },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 },
+   { 0x00800031, 0x2b401d29, 0x00ad0e60, 0x0411a008 },
+   { 0x00800031, 0x2be01d29, 0x00ad0e60, 0x0411a009 },
+   { 0x00800040, 0x29c04629, 0x00ad0ac0, 0x00ad0ae0 },
+   { 0x00800040, 0x29e04629, 0x00ad0ae0, 0x00ad0b00 },
+   { 0x00800040, 0x2a004629, 0x00ad0b00, 0x00ad0b20 },
+   { 0x00800040, 0x2a204629, 0x00ad0b20, 0x00ad0b40 },
+   { 0x00800040, 0x29c04529, 0x00ad09c0, 0x00ad0ac1 },
+   { 0x00800040, 0x29e04529, 0x00ad09e0, 0x00ad0ae1 },
+   { 0x00800040, 0x2a004529, 0x00ad0a00, 0x00ad0b01 },
+   { 0x00800040, 0x2a204529, 0x00ad0a20, 0x00ad0b21 },
+   { 0x00800040, 0x29c04529, 0x00ad09c0, 0x00ad0ae1 },
+   { 0x00800040, 0x29e04529, 0x00ad09e0, 0x00ad0b01 },
+   { 0x00800040, 0x2a004529, 0x00ad0a00, 0x00ad0b21 },
+   { 0x00800040, 0x2a204529, 0x00ad0a20, 0x00ad0b41 },
+   { 0x00800040, 0x2a404629, 0x00ad0b60, 0x00ad0b80 },
+   { 0x00800040, 0x2a604629, 0x00ad0b80, 0x00ad0ba0 },
+   { 0x00800040, 0x2a804629, 0x00ad0ba0, 0x00ad0bc0 },
+   { 0x00800040, 0x2aa04629, 0x00ad0bc0, 0x00ad0be0 },
+   { 0x00800040, 0x2a404529, 0x00ad0a40, 0x00ad0b61 },
+   { 0x00800040, 0x2a604529, 0x00ad0a60, 0x00ad0b81 },
+   { 0x00800040, 0x2a804529, 0x00ad0a80, 0x00ad0ba1 },
+   { 0x00800040, 0x2aa04529, 0x00ad0aa0, 0x00ad0bc1 },
+   { 0x00800040, 0x2a404529, 0x00ad0a40, 0x00ad0b81 },
+   { 0x00800040, 0x2a604529, 0x00ad0a60, 0x00ad0ba1 },
+   { 0x00800040, 0x2a804529, 0x00ad0a80, 0x00ad0bc1 },
+   { 0x00800040, 0x2aa04529, 0x00ad0aa0, 0x00ad0be1 },
+   { 0x80800008, 0x29c02d29, 0x00b109c0, 0x00020002 },
+   { 0x80800008, 0x29e02d29, 0x00b109e0, 0x00020002 },
+   { 0x80800008, 0x2a002d29, 0x00b10a00, 0x00020002 },
+   { 0x80800008, 0x2a202d29, 0x00b10a20, 0x00020002 },
+   { 0x80800008, 0x2a402d29, 0x00b10a40, 0x00020002 },
+   { 0x80800008, 0x2a602d29, 0x00b10a60, 0x00020002 },
+   { 0x80800008, 0x2a802d29, 0x00b10a80, 0x00020002 },
+   { 0x80800008, 0x2aa02d29, 0x00b10aa0, 0x00020002 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000028 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0007000f },
+   { 0x00800031, 0x2ac01d29, 0x00ad0e60, 0x0414a008 },
+   { 0x00800031, 0x2b601d29, 0x00ad0e60, 0x0414a009 },
+   { 0x80800042, 0x29c04629, 0x00ad0ac0, 0x00ad0ac1 },
+   { 0x80800042, 0x29e04629, 0x00ad0ae0, 0x00ad0ae1 },
+   { 0x80800042, 0x2a004629, 0x00ad0b00, 0x00ad0b01 },
+   { 0x80800042, 0x2a204629, 0x00ad0b20, 0x00ad0b21 },
+   { 0x80800042, 0x2a404629, 0x00ad0b60, 0x00ad0b61 },
+   { 0x80800042, 0x2a604629, 0x00ad0b80, 0x00ad0b81 },
+   { 0x80800042, 0x2a804629, 0x00ad0ba0, 0x00ad0ba1 },
+   { 0x80800042, 0x2aa04629, 0x00ad0bc0, 0x00ad0bc1 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x0000001c },
+   { 0x01000005, 0x20002d3c, 0x00210034, 0x00020002 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x0000000f },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0007000f },
+   { 0x00800031, 0x2ac01d29, 0x00ad0e60, 0x0414a008 },
+   { 0x00800031, 0x2b601d29, 0x00ad0e60, 0x0414a009 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0000000f },
+   { 0x00800031, 0x2b401d29, 0x00ad0e60, 0x0411a008 },
+   { 0x00800031, 0x2be01d29, 0x00ad0e60, 0x0411a009 },
+   { 0x80800042, 0x29c04629, 0x00ad0ac0, 0x00ad0ae0 },
+   { 0x80800042, 0x29e04629, 0x00ad0ae0, 0x00ad0b00 },
+   { 0x80800042, 0x2a004629, 0x00ad0b00, 0x00ad0b20 },
+   { 0x80800042, 0x2a204629, 0x00ad0b20, 0x00ad0b40 },
+   { 0x80800042, 0x2a404629, 0x00ad0b60, 0x00ad0b80 },
+   { 0x80800042, 0x2a604629, 0x00ad0b80, 0x00ad0ba0 },
+   { 0x80800042, 0x2a804629, 0x00ad0ba0, 0x00ad0bc0 },
+   { 0x80800042, 0x2aa04629, 0x00ad0bc0, 0x00ad0be0 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x0000000b },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0007000f },
+   { 0x00800031, 0x2ac01d29, 0x00ad0e60, 0x0414a008 },
+   { 0x00800031, 0x2b601d29, 0x00ad0e60, 0x0414a009 },
+   { 0x00800001, 0x29c00229, 0x00ad0ac0, 0x00000000 },
+   { 0x00800001, 0x29e00229, 0x00ad0ae0, 0x00000000 },
+   { 0x00800001, 0x2a000229, 0x00ad0b00, 0x00000000 },
+   { 0x00800001, 0x2a200229, 0x00ad0b20, 0x00000000 },
+   { 0x00800001, 0x2a400229, 0x00ad0b60, 0x00000000 },
+   { 0x00800001, 0x2a600229, 0x00ad0b80, 0x00000000 },
+   { 0x00800001, 0x2a800229, 0x00ad0ba0, 0x00000000 },
+   { 0x00800001, 0x2aa00229, 0x00ad0bc0, 0x00000000 },
+   { 0x00600001, 0x25800129, 0x008d09c0, 0x00000000 },
+   { 0x00600001, 0x25a00129, 0x008d09e0, 0x00000000 },
+   { 0x00600001, 0x25c00129, 0x008d0a00, 0x00000000 },
+   { 0x00600001, 0x25e00129, 0x008d0a20, 0x00000000 },
+   { 0x00600001, 0x26000129, 0x008d0a40, 0x00000000 },
+   { 0x00600001, 0x26200129, 0x008d0a60, 0x00000000 },
+   { 0x00600001, 0x26400129, 0x008d0a80, 0x00000000 },
+   { 0x00600001, 0x26600129, 0x008d0aa0, 0x00000000 },
+   { 0x0020000c, 0x2e6e3dad, 0x0045003a, 0x00020002 },
+   { 0x0020000c, 0x2e601ca5, 0x00450e80, 0x00000001 },
+   { 0x00200040, 0x2e6034a5, 0x00450e60, 0x00450e6e },
+   { 0x00000005, 0x2e640c21, 0x00210e64, 0xfffffffe },
+   { 0x02000005, 0x20002e3c, 0x0021003f, 0x00080008 },
+   { 0x00010040, 0x2e640c21, 0x00210e64, 0x00000001 },
+   { 0x01000005, 0x20002d3c, 0x0021003a, 0x00020002 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x00000036 },
+   { 0x01000005, 0x20002d3c, 0x0021003c, 0x00020002 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x00000028 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0007000f },
+   { 0x00800031, 0x2ac01d29, 0x00ad0e60, 0x0414a008 },
+   { 0x00800031, 0x2b601d29, 0x00ad0e60, 0x0414a009 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0001000f },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 },
+   { 0x00800031, 0x2b401d29, 0x00ad0e60, 0x0411a008 },
+   { 0x00800031, 0x2be01d29, 0x00ad0e60, 0x0411a009 },
+   { 0x00800040, 0x29c04629, 0x00ad0ac0, 0x00ad0ae0 },
+   { 0x00800040, 0x29e04629, 0x00ad0ae0, 0x00ad0b00 },
+   { 0x00800040, 0x2a004629, 0x00ad0b00, 0x00ad0b20 },
+   { 0x00800040, 0x2a204629, 0x00ad0b20, 0x00ad0b40 },
+   { 0x00800040, 0x29c04529, 0x00ad09c0, 0x00ad0ac1 },
+   { 0x00800040, 0x29e04529, 0x00ad09e0, 0x00ad0ae1 },
+   { 0x00800040, 0x2a004529, 0x00ad0a00, 0x00ad0b01 },
+   { 0x00800040, 0x2a204529, 0x00ad0a20, 0x00ad0b21 },
+   { 0x00800040, 0x29c04529, 0x00ad09c0, 0x00ad0ae1 },
+   { 0x00800040, 0x29e04529, 0x00ad09e0, 0x00ad0b01 },
+   { 0x00800040, 0x2a004529, 0x00ad0a00, 0x00ad0b21 },
+   { 0x00800040, 0x2a204529, 0x00ad0a20, 0x00ad0b41 },
+   { 0x00800040, 0x2a404629, 0x00ad0b60, 0x00ad0b80 },
+   { 0x00800040, 0x2a604629, 0x00ad0b80, 0x00ad0ba0 },
+   { 0x00800040, 0x2a804629, 0x00ad0ba0, 0x00ad0bc0 },
+   { 0x00800040, 0x2aa04629, 0x00ad0bc0, 0x00ad0be0 },
+   { 0x00800040, 0x2a404529, 0x00ad0a40, 0x00ad0b61 },
+   { 0x00800040, 0x2a604529, 0x00ad0a60, 0x00ad0b81 },
+   { 0x00800040, 0x2a804529, 0x00ad0a80, 0x00ad0ba1 },
+   { 0x00800040, 0x2aa04529, 0x00ad0aa0, 0x00ad0bc1 },
+   { 0x00800040, 0x2a404529, 0x00ad0a40, 0x00ad0b81 },
+   { 0x00800040, 0x2a604529, 0x00ad0a60, 0x00ad0ba1 },
+   { 0x00800040, 0x2a804529, 0x00ad0a80, 0x00ad0bc1 },
+   { 0x00800040, 0x2aa04529, 0x00ad0aa0, 0x00ad0be1 },
+   { 0x80800008, 0x29c02d29, 0x00b109c0, 0x00020002 },
+   { 0x80800008, 0x29e02d29, 0x00b109e0, 0x00020002 },
+   { 0x80800008, 0x2a002d29, 0x00b10a00, 0x00020002 },
+   { 0x80800008, 0x2a202d29, 0x00b10a20, 0x00020002 },
+   { 0x80800008, 0x2a402d29, 0x00b10a40, 0x00020002 },
+   { 0x80800008, 0x2a602d29, 0x00b10a60, 0x00020002 },
+   { 0x80800008, 0x2a802d29, 0x00b10a80, 0x00020002 },
+   { 0x80800008, 0x2aa02d29, 0x00b10aa0, 0x00020002 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000028 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0007000f },
+   { 0x00800031, 0x2ac01d29, 0x00ad0e60, 0x0414a008 },
+   { 0x00800031, 0x2b601d29, 0x00ad0e60, 0x0414a009 },
+   { 0x80800042, 0x29c04629, 0x00ad0ac0, 0x00ad0ac1 },
+   { 0x80800042, 0x29e04629, 0x00ad0ae0, 0x00ad0ae1 },
+   { 0x80800042, 0x2a004629, 0x00ad0b00, 0x00ad0b01 },
+   { 0x80800042, 0x2a204629, 0x00ad0b20, 0x00ad0b21 },
+   { 0x80800042, 0x2a404629, 0x00ad0b60, 0x00ad0b61 },
+   { 0x80800042, 0x2a604629, 0x00ad0b80, 0x00ad0b81 },
+   { 0x80800042, 0x2a804629, 0x00ad0ba0, 0x00ad0ba1 },
+   { 0x80800042, 0x2aa04629, 0x00ad0bc0, 0x00ad0bc1 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x0000001c },
+   { 0x01000005, 0x20002d3c, 0x0021003c, 0x00020002 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x0000000f },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0007000f },
+   { 0x00800031, 0x2ac01d29, 0x00ad0e60, 0x0414a008 },
+   { 0x00800031, 0x2b601d29, 0x00ad0e60, 0x0414a009 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0000000f },
+   { 0x00800031, 0x2b401d29, 0x00ad0e60, 0x0411a008 },
+   { 0x00800031, 0x2be01d29, 0x00ad0e60, 0x0411a009 },
+   { 0x80800042, 0x29c04629, 0x00ad0ac0, 0x00ad0ae0 },
+   { 0x80800042, 0x29e04629, 0x00ad0ae0, 0x00ad0b00 },
+   { 0x80800042, 0x2a004629, 0x00ad0b00, 0x00ad0b20 },
+   { 0x80800042, 0x2a204629, 0x00ad0b20, 0x00ad0b40 },
+   { 0x80800042, 0x2a404629, 0x00ad0b60, 0x00ad0b80 },
+   { 0x80800042, 0x2a604629, 0x00ad0b80, 0x00ad0ba0 },
+   { 0x80800042, 0x2a804629, 0x00ad0ba0, 0x00ad0bc0 },
+   { 0x80800042, 0x2aa04629, 0x00ad0bc0, 0x00ad0be0 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x0000000b },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0007000f },
+   { 0x00800031, 0x2ac01d29, 0x00ad0e60, 0x0414a008 },
+   { 0x00800031, 0x2b601d29, 0x00ad0e60, 0x0414a009 },
+   { 0x00800001, 0x29c00229, 0x00ad0ac0, 0x00000000 },
+   { 0x00800001, 0x29e00229, 0x00ad0ae0, 0x00000000 },
+   { 0x00800001, 0x2a000229, 0x00ad0b00, 0x00000000 },
+   { 0x00800001, 0x2a200229, 0x00ad0b20, 0x00000000 },
+   { 0x00800001, 0x2a400229, 0x00ad0b60, 0x00000000 },
+   { 0x00800001, 0x2a600229, 0x00ad0b80, 0x00000000 },
+   { 0x00800001, 0x2a800229, 0x00ad0ba0, 0x00000000 },
+   { 0x00800001, 0x2aa00229, 0x00ad0bc0, 0x00000000 },
+   { 0x00600001, 0x25900129, 0x008d09c0, 0x00000000 },
+   { 0x00600001, 0x25b00129, 0x008d09e0, 0x00000000 },
+   { 0x00600001, 0x25d00129, 0x008d0a00, 0x00000000 },
+   { 0x00600001, 0x25f00129, 0x008d0a20, 0x00000000 },
+   { 0x00600001, 0x26100129, 0x008d0a40, 0x00000000 },
+   { 0x00600001, 0x26300129, 0x008d0a60, 0x00000000 },
+   { 0x00600001, 0x26500129, 0x008d0a80, 0x00000000 },
+   { 0x00600001, 0x26700129, 0x008d0aa0, 0x00000000 },
+   { 0x80800042, 0x25802529, 0x00b10880, 0x00b10580 },
+   { 0x80800042, 0x25a02529, 0x00b108a0, 0x00b105a0 },
+   { 0x80800042, 0x25c02529, 0x00b108c0, 0x00b105c0 },
+   { 0x80800042, 0x25e02529, 0x00b108e0, 0x00b105e0 },
+   { 0x80800042, 0x26002529, 0x00b10900, 0x00b10600 },
+   { 0x80800042, 0x26202529, 0x00b10920, 0x00b10620 },
+   { 0x80800042, 0x26402529, 0x00b10940, 0x00b10640 },
+   { 0x80800042, 0x26602529, 0x00b10960, 0x00b10660 },
+   { 0x00600001, 0x20200021, 0x008d0980, 0x00000000 },
+   { 0x00800001, 0x458101f1, 0x00000000, 0x00000000 },
+   { 0x00800001, 0x45a101f1, 0x00000000, 0x00000000 },
+   { 0x00800001, 0x45c101f1, 0x00000000, 0x00000000 },
+   { 0x00800001, 0x45e101f1, 0x00000000, 0x00000000 },
+   { 0x00800001, 0x460101f1, 0x00000000, 0x00000000 },
+   { 0x00800001, 0x462101f1, 0x00000000, 0x00000000 },
+   { 0x00800001, 0x464101f1, 0x00000000, 0x00000000 },
+   { 0x00800001, 0x466101f1, 0x00000000, 0x00000000 },
+   { 0x02000005, 0x20002e3c, 0x0021003e, 0x00010001 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x00000011 },
+   { 0x00800040, 0x238045ad, 0x00b10060, 0x00b20380 },
+   { 0x00800040, 0x23a045ad, 0x00b10080, 0x00b203a0 },
+   { 0x00800040, 0x23c045ad, 0x00b100a0, 0x00b203c0 },
+   { 0x00800040, 0x23e045ad, 0x00b100c0, 0x00b203e0 },
+   { 0x00800040, 0x240045ad, 0x00b100e0, 0x00b20400 },
+   { 0x00800040, 0x242045ad, 0x00b10100, 0x00b20420 },
+   { 0x00800040, 0x244045ad, 0x00b10120, 0x00b20440 },
+   { 0x00800040, 0x246045ad, 0x00b10140, 0x00b20460 },
+   { 0x00800040, 0x248045ad, 0x00b10160, 0x00b20480 },
+   { 0x00800040, 0x24a045ad, 0x00b10180, 0x00b204a0 },
+   { 0x00800040, 0x24c045ad, 0x00b101a0, 0x00b204c0 },
+   { 0x00800040, 0x24e045ad, 0x00b101c0, 0x00b204e0 },
+   { 0x00800040, 0x250045ad, 0x00b101e0, 0x00b20500 },
+   { 0x00800040, 0x252045ad, 0x00b10200, 0x00b20520 },
+   { 0x00800040, 0x254045ad, 0x00b10220, 0x00b20540 },
+   { 0x00800040, 0x256045ad, 0x00b10240, 0x00b20560 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000010 },
+   { 0x00800040, 0x238045ad, 0x00b10060, 0x00b20380 },
+   { 0x00800040, 0x23a045ad, 0x00b10160, 0x00b203a0 },
+   { 0x00800040, 0x23c045ad, 0x00b10080, 0x00b203c0 },
+   { 0x00800040, 0x23e045ad, 0x00b10180, 0x00b203e0 },
+   { 0x00800040, 0x240045ad, 0x00b100a0, 0x00b20400 },
+   { 0x00800040, 0x242045ad, 0x00b101a0, 0x00b20420 },
+   { 0x00800040, 0x244045ad, 0x00b100c0, 0x00b20440 },
+   { 0x00800040, 0x246045ad, 0x00b101c0, 0x00b20460 },
+   { 0x00800040, 0x248045ad, 0x00b100e0, 0x00b20480 },
+   { 0x00800040, 0x24a045ad, 0x00b101e0, 0x00b204a0 },
+   { 0x00800040, 0x24c045ad, 0x00b10100, 0x00b204c0 },
+   { 0x00800040, 0x24e045ad, 0x00b10200, 0x00b204e0 },
+   { 0x00800040, 0x250045ad, 0x00b10120, 0x00b20500 },
+   { 0x00800040, 0x252045ad, 0x00b10220, 0x00b20520 },
+   { 0x00800040, 0x254045ad, 0x00b10140, 0x00b20540 },
+   { 0x00800040, 0x256045ad, 0x00b10240, 0x00b20560 },
+   { 0x00000001, 0x20280061, 0x00000000, 0x000f000f },
+   { 0x80800001, 0x438001b1, 0x00b10380, 0x00000000 },
+   { 0x80800001, 0x43a001b1, 0x00b103a0, 0x00000000 },
+   { 0x80800001, 0x43c001b1, 0x00b103c0, 0x00000000 },
+   { 0x80800001, 0x43e001b1, 0x00b103e0, 0x00000000 },
+   { 0x80800001, 0x440001b1, 0x00b10400, 0x00000000 },
+   { 0x80800001, 0x442001b1, 0x00b10420, 0x00000000 },
+   { 0x80800001, 0x444001b1, 0x00b10440, 0x00000000 },
+   { 0x80800001, 0x446001b1, 0x00b10460, 0x00000000 },
+   { 0x80800001, 0x448001b1, 0x00b10480, 0x00000000 },
+   { 0x80800001, 0x44a001b1, 0x00b104a0, 0x00000000 },
+   { 0x80800001, 0x44c001b1, 0x00b104c0, 0x00000000 },
+   { 0x80800001, 0x44e001b1, 0x00b104e0, 0x00000000 },
+   { 0x80800001, 0x450001b1, 0x00b10500, 0x00000000 },
+   { 0x80800001, 0x452001b1, 0x00b10520, 0x00000000 },
+   { 0x80800001, 0x454001b1, 0x00b10540, 0x00000000 },
+   { 0x80800001, 0x456001b1, 0x00b10560, 0x00000000 },
+   { 0x00800001, 0x20200232, 0x00b20380, 0x00000000 },
+   { 0x00800001, 0x20300232, 0x00b203a0, 0x00000000 },
+   { 0x00800001, 0x20400232, 0x00b203c0, 0x00000000 },
+   { 0x00800001, 0x20500232, 0x00b203e0, 0x00000000 },
+   { 0x00800001, 0x20600232, 0x00b20400, 0x00000000 },
+   { 0x00800001, 0x20700232, 0x00b20420, 0x00000000 },
+   { 0x00800001, 0x20800232, 0x00b20440, 0x00000000 },
+   { 0x00800001, 0x20900232, 0x00b20460, 0x00000000 },
+   { 0x00800001, 0x20a00232, 0x00b20480, 0x00000000 },
+   { 0x00800001, 0x20b00232, 0x00b204a0, 0x00000000 },
+   { 0x00800001, 0x20c00232, 0x00b204c0, 0x00000000 },
+   { 0x00800001, 0x20d00232, 0x00b204e0, 0x00000000 },
+   { 0x00800001, 0x20e00232, 0x00b20500, 0x00000000 },
+   { 0x00800001, 0x20f00232, 0x00b20520, 0x00000000 },
+   { 0x00800001, 0x21000232, 0x00b20540, 0x00000000 },
+   { 0x00800001, 0x21100232, 0x00b20560, 0x00000000 },
+   { 0x00800031, 0x24001d28, 0x008d0020, 0x05902000 },
+   { 0x00000001, 0x20280061, 0x00000000, 0x00070007 },
+   { 0x00200008, 0x20201c21, 0x00450020, 0x00000001 },
+   { 0x00800040, 0x258025a9, 0x00b10260, 0x00b10580 },
+   { 0x00800040, 0x25a025a9, 0x00b10280, 0x00b105a0 },
+   { 0x00800040, 0x25c025a9, 0x00b102a0, 0x00b105c0 },
+   { 0x00800040, 0x25e025a9, 0x00b102c0, 0x00b105e0 },
+   { 0x80800001, 0x45800131, 0x00b10580, 0x00000000 },
+   { 0x80800001, 0x45a00131, 0x00b105a0, 0x00000000 },
+   { 0x80800001, 0x45c00131, 0x00b105c0, 0x00000000 },
+   { 0x80800001, 0x45e00131, 0x00b105e0, 0x00000000 },
+   { 0x00800001, 0x20200232, 0x00b20580, 0x00000000 },
+   { 0x00800001, 0x20300232, 0x00b205a0, 0x00000000 },
+   { 0x00800001, 0x20400232, 0x00b205c0, 0x00000000 },
+   { 0x00800001, 0x20500232, 0x00b205e0, 0x00000000 },
+   { 0x00800031, 0x24001d28, 0x008d0020, 0x05302001 },
+   { 0x00800040, 0x260025a9, 0x00b102e0, 0x00b10600 },
+   { 0x00800040, 0x262025a9, 0x00b10300, 0x00b10620 },
+   { 0x00800040, 0x264025a9, 0x00b10320, 0x00b10640 },
+   { 0x00800040, 0x266025a9, 0x00b10340, 0x00b10660 },
+   { 0x80800001, 0x46000131, 0x00b10600, 0x00000000 },
+   { 0x80800001, 0x46200131, 0x00b10620, 0x00000000 },
+   { 0x80800001, 0x46400131, 0x00b10640, 0x00000000 },
+   { 0x80800001, 0x46600131, 0x00b10660, 0x00000000 },
+   { 0x00800001, 0x20200232, 0x00b20600, 0x00000000 },
+   { 0x00800001, 0x20300232, 0x00b20620, 0x00000000 },
+   { 0x00800001, 0x20400232, 0x00b20640, 0x00000000 },
+   { 0x00800001, 0x20500232, 0x00b20660, 0x00000000 },
+   { 0x00800031, 0x24001d28, 0x008d0020, 0x05302002 },
+   { 0x00800031, 0x24001d28, 0x008d0000, 0x87100000 },
diff --git a/src/xvmc/shader/mc/field_forward.g4a b/src/xvmc/shader/mc/field_forward.g4a
new file mode 100644
index 0000000..f5595ee
--- /dev/null
+++ b/src/xvmc/shader/mc/field_forward.g4a
@@ -0,0 +1,121 @@
+/*
+ * Copyright © 2008 Intel Corporation
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice (including the next
+ * paragraph) shall be included in all copies or substantial portions of the
+ * Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
+ * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+ * SOFTWARE.
+ *
+ * Author:
+ *    Zou Nan hai <nanhai.zou at intel.com>
+ *    Zhang Hua jun <huajun.zhang at intel.com>
+ *    Xing Dong sheng <dongsheng.xing at intel.com>
+ *
+ */
+mov (8) g76.0<1>UD g1.0<8,8,1>UD {align1};
+//mov (8) g77.0<1>UD g2.0<8,8,1>UD {align1};
+
+include(`block_clear.g4i')
+mov (8) g115.0<1>UD g1.0<8,8,1>UD {align1};
+mov (8) g116.0<1>UD g1.0<8,8,1>UD {align1};
+/*Y buffer*/
+mov(1) g1.8<1>UD 0x007000fUD  { align1 };
+asr (2) g115.14<1>W g1.14<2,2,1>W 1UW {align1};
+add (2) g115.0<1>UD g116.0<2,2,1>UD g115.14<2,2,1>W {align1};
+and (1) g115.4<1>UD g115.4<1,1,1>UD 0xFFFFFFFEUD {align1};
+mov (1) g115.8<1>UD 0x1fUD  { align1 }; //read 1 line, 32 columns.
+/*first vector*/
+and.nz (1) null g1.31<1,1,1>UB 0x1UW {align1};
+(f0) add (1) g115.4<1>UD g115.4<1,1,1>UD 1UD {align1};
+define(`surface',`4')
+define(`mv1',`g1.14')
+define(`mv2',`g1.16')
+include(`motion_field_y.g4i')
+mov (8) g28.0<1>UD g96.0<8,8,1>UD {align1};
+mov (8) g30.0<1>UD g97.0<8,8,1>UD {align1};
+mov (8) g32.0<1>UD g98.0<8,8,1>UD {align1};
+mov (8) g34.0<1>UD g99.0<8,8,1>UD {align1};
+mov (8) g36.0<1>UD g100.0<8,8,1>UD {align1};
+mov (8) g38.0<1>UD g101.0<8,8,1>UD {align1};
+mov (8) g40.0<1>UD g102.0<8,8,1>UD {align1};
+mov (8) g42.0<1>UD g103.0<8,8,1>UD {align1};
+/*second vector*/
+asr (2) g115.14<1>W g1.22<2,2,1>W 1UW {align1};
+add (2) g115.0<1>UD g116.0<2,2,1>UD g115.14<2,2,1>W {align1};
+and (1) g115.4<1>UD g115.4<1,1,1>UD 0xFFFFFFFEUD {align1};
+mov (1) g115.8<1>UD 0x1fUD { align1 };              //read 1 line, 32 columns.
+
+and.nz (1) null g1.31<1,1,1>UB 0x4UW {align1};
+(f0) add (1) g115.4<1>UD g115.4<1,1,1>UD 1UD {align1};
+define(`surface',`4')
+define(`mv1',`g1.22')
+define(`mv2',`g1.24')
+include(`motion_field_y.g4i')
+mov (8) g29.0<1>UD g96.0<8,8,1>UD {align1};
+mov (8) g31.0<1>UD g97.0<8,8,1>UD {align1};
+mov (8) g33.0<1>UD g98.0<8,8,1>UD {align1};
+mov (8) g35.0<1>UD g99.0<8,8,1>UD {align1};
+mov (8) g37.0<1>UD g100.0<8,8,1>UD {align1};
+mov (8) g39.0<1>UD g101.0<8,8,1>UD {align1};
+mov (8) g41.0<1>UD g102.0<8,8,1>UD {align1};
+mov (8) g43.0<1>UD g103.0<8,8,1>UD {align1};
+/*U buffer,  V buffer*/
+/*first vector*/
+mov(1) g115.8<1>UD 0x007000fUD  { align1 };
+asr (2) g115.14<1>W g1.14<2,2,1>W 2UW {align1};
+asr (2) g115.0<1>D g116.0<2,2,1>D 1D {align1};
+add (2) g115.0<1>D g115.0<2,2,1>D g115.14<2,2,1>W {align1};
+and (1) g115.4<1>UD g115.4<1,1,1>UD 0xFFFFFFFEUD {align1};
+
+and.nz (1) null g1.31<1,1,1>UB 0x1UW {align1};
+(f0) add (1) g115.4<1>UD g115.4<1,1,1>UD 1UD {align1};
+define(`surface_u',`5')
+define(`surface_v',`6')
+define(`mv1',`g1.14')
+define(`mv2',`g1.16')
+include(`motion_field_uv.g4i')
+mov (8) g44.0<1>UW g78.0<8,8,1>UW {align1};
+mov (8) g45.0<1>UW g79.0<8,8,1>UW {align1};
+mov (8) g46.0<1>UW g80.0<8,8,1>UW {align1};
+mov (8) g47.0<1>UW g81.0<8,8,1>UW {align1};
+mov (8) g48.0<1>UW g82.0<8,8,1>UW {align1};
+mov (8) g49.0<1>UW g83.0<8,8,1>UW {align1};
+mov (8) g50.0<1>UW g84.0<8,8,1>UW {align1};
+mov (8) g51.0<1>UW g85.0<8,8,1>UW {align1};
+/*second vector*/
+asr (2) g115.14<1>W g1.22<2,2,1>W 2UW {align1};
+asr (2) g115.0<1>D g116.0<2,2,1>D 1D {align1};
+add (2) g115.0<1>D g115.0<2,2,1>D g115.14<2,2,1>W {align1};
+and (1) g115.4<1>UD g115.4<1,1,1>UD 0xFFFFFFFEUD {align1};
+
+and.nz (1) null g1.31<1,1,1>UB 0x4UW {align1};
+(f0) add (1) g115.4<1>UD g115.4<1,1,1>UD 1UD {align1};
+define(`mv1',`g1.22')
+define(`mv2',`g1.24')
+include(`motion_field_uv.g4i')
+mov (8) g44.16<1>UW g78.0<8,8,1>UW {align1};
+mov (8) g45.16<1>UW g79.0<8,8,1>UW {align1};
+mov (8) g46.16<1>UW g80.0<8,8,1>UW {align1};
+mov (8) g47.16<1>UW g81.0<8,8,1>UW {align1};
+mov (8) g48.16<1>UW g82.0<8,8,1>UW {align1};
+mov (8) g49.16<1>UW g83.0<8,8,1>UW {align1};
+mov (8) g50.16<1>UW g84.0<8,8,1>UW {align1};
+mov (8) g51.16<1>UW g85.0<8,8,1>UW {align1};
+
+include(`addidct.g4i')
+//send (16) 0 acc0<1>UW g0<8,8,1>UW 
+//	thread_spawner(0, 0, 0) mlen 1 rlen 0 { align1 EOT};
diff --git a/src/xvmc/shader/mc/field_forward.g4b b/src/xvmc/shader/mc/field_forward.g4b
new file mode 100644
index 0000000..3514c86
--- /dev/null
+++ b/src/xvmc/shader/mc/field_forward.g4b
@@ -0,0 +1,1340 @@
+   { 0x00600001, 0x29800021, 0x008d0020, 0x00000000 },
+   { 0x02000005, 0x20000c3c, 0x00210040, 0x00000001 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x00000030 },
+   { 0x00000040, 0x20480c21, 0x00210988, 0x00000000 },
+   { 0x00800031, 0x20601c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x20801c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x20a01c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x20c01c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x20e01c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x21001c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x21201c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x21401c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x21601c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x21801c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x21a01c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x21c01c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x21e01c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x22001c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x22201c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x22401c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x22601c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x22801c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x22a01c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x22c01c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x22e01c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x23001c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x23201c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x23401c21, 0x00b10040, 0x04110203 },
+   { 0x02000005, 0x20002d3c, 0x0021098c, 0x00200020 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x00000008 },
+   { 0x00600001, 0x20600169, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x20800169, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x20a00169, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x20c00169, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x20e00169, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x21000169, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x21200169, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x21400169, 0x00000000, 0x00000000 },
+   { 0x02000005, 0x20002d3c, 0x0021002c, 0x00100010 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x00000008 },
+   { 0x00600001, 0x20700169, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x20900169, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x20b00169, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x20d00169, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x20f00169, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x21100169, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x21300169, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x21500169, 0x00000000, 0x00000000 },
+   { 0x02000005, 0x20002d3c, 0x0021002c, 0x00080008 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x00000008 },
+   { 0x00600001, 0x21600169, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x21800169, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x21a00169, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x21c00169, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x21e00169, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x22000169, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x22200169, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x22400169, 0x00000000, 0x00000000 },
+   { 0x02000005, 0x20002d3c, 0x0021002c, 0x00040004 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x00000008 },
+   { 0x00600001, 0x21700169, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x21900169, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x21b00169, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x21d00169, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x21f00169, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x22100169, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x22300169, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x22500169, 0x00000000, 0x00000000 },
+   { 0x02000005, 0x20002d3c, 0x0021002c, 0x00020002 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x00000004 },
+   { 0x00800001, 0x22600169, 0x00000000, 0x00000000 },
+   { 0x00800001, 0x22800169, 0x00000000, 0x00000000 },
+   { 0x00800001, 0x22a00169, 0x00000000, 0x00000000 },
+   { 0x00800001, 0x22c00169, 0x00000000, 0x00000000 },
+   { 0x02000005, 0x20002d3c, 0x0021002c, 0x00010001 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x00000004 },
+   { 0x00800001, 0x22e00169, 0x00000000, 0x00000000 },
+   { 0x00800001, 0x23000169, 0x00000000, 0x00000000 },
+   { 0x00800001, 0x23200169, 0x00000000, 0x00000000 },
+   { 0x00800001, 0x23400169, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x2e600021, 0x008d0020, 0x00000000 },
+   { 0x00600001, 0x2e800021, 0x008d0020, 0x00000000 },
+   { 0x00000001, 0x20280061, 0x00000000, 0x0007000f },
+   { 0x0020000c, 0x2e6e2dad, 0x0045002e, 0x00010001 },
+   { 0x00200040, 0x2e603421, 0x00450e80, 0x00450e6e },
+   { 0x00000005, 0x2e640c21, 0x00210e64, 0xfffffffe },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
+   { 0x02000005, 0x20002e3c, 0x0021003f, 0x00010001 },
+   { 0x00010040, 0x2e640c21, 0x00210e64, 0x00000001 },
+   { 0x01000005, 0x20002d3c, 0x0021002e, 0x00010001 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x000000b1 },
+   { 0x01000005, 0x20002d3c, 0x00210030, 0x00010001 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x0000007d },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
+   { 0x00800031, 0x29c01d29, 0x008d0e60, 0x0411a004 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00800031, 0x2a001d29, 0x008d0e60, 0x0411a004 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00800031, 0x2a401d29, 0x008d0e60, 0x0411a004 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00800031, 0x2a801d29, 0x008d0e60, 0x0411a004 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0007001f },
+   { 0x00800031, 0x2ac01d29, 0x008d0e60, 0x0418a004 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
+   { 0x00800031, 0x2bc01d29, 0x008d0e60, 0x0411a004 },
+   { 0x00000005, 0x20580c21, 0x00210e60, 0x00000003 },
+   { 0x00000041, 0x20580c21, 0x00210058, 0x00000019 },
+   { 0x00000020, 0x34001400, 0x00001400, 0x00210058 },
+   { 0x00800040, 0x2c004629, 0x00b109c0, 0x00b10a00 },
+   { 0x00800040, 0x2c204629, 0x00b10a00, 0x00b10a40 },
+   { 0x00800040, 0x2c404629, 0x00b10a40, 0x00b10a80 },
+   { 0x00800040, 0x2c604629, 0x00b10a80, 0x00b10ac0 },
+   { 0x00800040, 0x2c804629, 0x00b10ac0, 0x00b10b00 },
+   { 0x00800040, 0x2ca04629, 0x00b10b00, 0x00b10b40 },
+   { 0x00800040, 0x2cc04629, 0x00b10b40, 0x00b10b80 },
+   { 0x00800040, 0x2ce04629, 0x00b10b80, 0x00b10bc0 },
+   { 0x00800040, 0x2c004529, 0x00b10c00, 0x00b109c1 },
+   { 0x00800040, 0x2c204529, 0x00b10c20, 0x00b10a01 },
+   { 0x00800040, 0x2c404529, 0x00b10c40, 0x00b10a41 },
+   { 0x00800040, 0x2c604529, 0x00b10c60, 0x00b10a81 },
+   { 0x00800040, 0x2c804529, 0x00b10c80, 0x00b10ac1 },
+   { 0x00800040, 0x2ca04529, 0x00b10ca0, 0x00b10b01 },
+   { 0x00800040, 0x2cc04529, 0x00b10cc0, 0x00b10b41 },
+   { 0x00800040, 0x2ce04529, 0x00b10ce0, 0x00b10b81 },
+   { 0x00800040, 0x2c004529, 0x00b10c00, 0x00b10a01 },
+   { 0x00800040, 0x2c204529, 0x00b10c20, 0x00b10a41 },
+   { 0x00800040, 0x2c404529, 0x00b10c40, 0x00b10a81 },
+   { 0x00800040, 0x2c604529, 0x00b10c60, 0x00b10ac1 },
+   { 0x00800040, 0x2c804529, 0x00b10c80, 0x00b10b01 },
+   { 0x00800040, 0x2ca04529, 0x00b10ca0, 0x00b10b41 },
+   { 0x00800040, 0x2cc04529, 0x00b10cc0, 0x00b10b81 },
+   { 0x00800040, 0x2ce04529, 0x00b10ce0, 0x00b10bc1 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x0000004a },
+   { 0x00800040, 0x2c004629, 0x00b109c1, 0x00b10a01 },
+   { 0x00800040, 0x2c204629, 0x00b10a01, 0x00b10a41 },
+   { 0x00800040, 0x2c404629, 0x00b10a41, 0x00b10a81 },
+   { 0x00800040, 0x2c604629, 0x00b10a81, 0x00b10ac1 },
+   { 0x00800040, 0x2c804629, 0x00b10ac1, 0x00b10b01 },
+   { 0x00800040, 0x2ca04629, 0x00b10b01, 0x00b10b41 },
+   { 0x00800040, 0x2cc04629, 0x00b10b41, 0x00b10b81 },
+   { 0x00800040, 0x2ce04629, 0x00b10b81, 0x00b10bc1 },
+   { 0x00800040, 0x2c004529, 0x00b10c00, 0x00b109c2 },
+   { 0x00800040, 0x2c204529, 0x00b10c20, 0x00b10a02 },
+   { 0x00800040, 0x2c404529, 0x00b10c40, 0x00b10a42 },
+   { 0x00800040, 0x2c604529, 0x00b10c60, 0x00b10a82 },
+   { 0x00800040, 0x2c804529, 0x00b10c80, 0x00b10ac2 },
+   { 0x00800040, 0x2ca04529, 0x00b10ca0, 0x00b10b02 },
+   { 0x00800040, 0x2cc04529, 0x00b10cc0, 0x00b10b42 },
+   { 0x00800040, 0x2ce04529, 0x00b10ce0, 0x00b10b82 },
+   { 0x00800040, 0x2c004529, 0x00b10c00, 0x00b10a02 },
+   { 0x00800040, 0x2c204529, 0x00b10c20, 0x00b10a42 },
+   { 0x00800040, 0x2c404529, 0x00b10c40, 0x00b10a82 },
+   { 0x00800040, 0x2c604529, 0x00b10c60, 0x00b10ac2 },
+   { 0x00800040, 0x2c804529, 0x00b10c80, 0x00b10b02 },
+   { 0x00800040, 0x2ca04529, 0x00b10ca0, 0x00b10b42 },
+   { 0x00800040, 0x2cc04529, 0x00b10cc0, 0x00b10b82 },
+   { 0x00800040, 0x2ce04529, 0x00b10ce0, 0x00b10bc2 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000031 },
+   { 0x00800040, 0x2c004629, 0x00b109c2, 0x00b10a02 },
+   { 0x00800040, 0x2c204629, 0x00b10a02, 0x00b10a42 },
+   { 0x00800040, 0x2c404629, 0x00b10a42, 0x00b10a82 },
+   { 0x00800040, 0x2c604629, 0x00b10a82, 0x00b10ac2 },
+   { 0x00800040, 0x2c804629, 0x00b10ac2, 0x00b10b02 },
+   { 0x00800040, 0x2ca04629, 0x00b10b02, 0x00b10b42 },
+   { 0x00800040, 0x2cc04629, 0x00b10b42, 0x00b10b82 },
+   { 0x00800040, 0x2ce04629, 0x00b10b82, 0x00b10bc2 },
+   { 0x00800040, 0x2c004529, 0x00b10c00, 0x00b109c3 },
+   { 0x00800040, 0x2c204529, 0x00b10c20, 0x00b10a03 },
+   { 0x00800040, 0x2c404529, 0x00b10c40, 0x00b10a43 },
+   { 0x00800040, 0x2c604529, 0x00b10c60, 0x00b10a83 },
+   { 0x00800040, 0x2c804529, 0x00b10c80, 0x00b10ac3 },
+   { 0x00800040, 0x2ca04529, 0x00b10ca0, 0x00b10b03 },
+   { 0x00800040, 0x2cc04529, 0x00b10cc0, 0x00b10b43 },
+   { 0x00800040, 0x2ce04529, 0x00b10ce0, 0x00b10b83 },
+   { 0x00800040, 0x2c004529, 0x00b10c00, 0x00b10a03 },
+   { 0x00800040, 0x2c204529, 0x00b10c20, 0x00b10a43 },
+   { 0x00800040, 0x2c404529, 0x00b10c40, 0x00b10a83 },
+   { 0x00800040, 0x2c604529, 0x00b10c60, 0x00b10ac3 },
+   { 0x00800040, 0x2c804529, 0x00b10c80, 0x00b10b03 },
+   { 0x00800040, 0x2ca04529, 0x00b10ca0, 0x00b10b43 },
+   { 0x00800040, 0x2cc04529, 0x00b10cc0, 0x00b10b83 },
+   { 0x00800040, 0x2ce04529, 0x00b10ce0, 0x00b10bc3 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000018 },
+   { 0x00800040, 0x2c004629, 0x00b109c3, 0x00b10a03 },
+   { 0x00800040, 0x2c204629, 0x00b10a03, 0x00b10a43 },
+   { 0x00800040, 0x2c404629, 0x00b10a43, 0x00b10a83 },
+   { 0x00800040, 0x2c604629, 0x00b10a83, 0x00b10ac3 },
+   { 0x00800040, 0x2c804629, 0x00b10ac3, 0x00b10b03 },
+   { 0x00800040, 0x2ca04629, 0x00b10b03, 0x00b10b43 },
+   { 0x00800040, 0x2cc04629, 0x00b10b43, 0x00b10b83 },
+   { 0x00800040, 0x2ce04629, 0x00b10b83, 0x00b10bc3 },
+   { 0x00800040, 0x2c004529, 0x00b10c00, 0x00b109c4 },
+   { 0x00800040, 0x2c204529, 0x00b10c20, 0x00b10a04 },
+   { 0x00800040, 0x2c404529, 0x00b10c40, 0x00b10a44 },
+   { 0x00800040, 0x2c604529, 0x00b10c60, 0x00b10a84 },
+   { 0x00800040, 0x2c804529, 0x00b10c80, 0x00b10ac4 },
+   { 0x00800040, 0x2ca04529, 0x00b10ca0, 0x00b10b04 },
+   { 0x00800040, 0x2cc04529, 0x00b10cc0, 0x00b10b44 },
+   { 0x00800040, 0x2ce04529, 0x00b10ce0, 0x00b10b84 },
+   { 0x00800040, 0x2c004529, 0x00b10c00, 0x00b10a04 },
+   { 0x00800040, 0x2c204529, 0x00b10c20, 0x00b10a44 },
+   { 0x00800040, 0x2c404529, 0x00b10c40, 0x00b10a84 },
+   { 0x00800040, 0x2c604529, 0x00b10c60, 0x00b10ac4 },
+   { 0x00800040, 0x2c804529, 0x00b10c80, 0x00b10b04 },
+   { 0x00800040, 0x2ca04529, 0x00b10ca0, 0x00b10b44 },
+   { 0x00800040, 0x2cc04529, 0x00b10cc0, 0x00b10b84 },
+   { 0x00800040, 0x2ce04529, 0x00b10ce0, 0x00b10bc4 },
+   { 0x00800008, 0x2c002d29, 0x00b10c00, 0x00020002 },
+   { 0x00800008, 0x2c202d29, 0x00b10c20, 0x00020002 },
+   { 0x00800008, 0x2c402d29, 0x00b10c40, 0x00020002 },
+   { 0x00800008, 0x2c602d29, 0x00b10c60, 0x00020002 },
+   { 0x00800008, 0x2c802d29, 0x00b10c80, 0x00020002 },
+   { 0x00800008, 0x2ca02d29, 0x00b10ca0, 0x00020002 },
+   { 0x00800008, 0x2cc02d29, 0x00b10cc0, 0x00020002 },
+   { 0x00800008, 0x2ce02d29, 0x00b10ce0, 0x00020002 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x0000009a },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
+   { 0x00800031, 0x29c01d29, 0x008d0e60, 0x0411a004 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00800031, 0x2a001d29, 0x008d0e60, 0x0411a004 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00800031, 0x2a401d29, 0x008d0e60, 0x0411a004 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00800031, 0x2a801d29, 0x008d0e60, 0x0411a004 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0007001f },
+   { 0x00800031, 0x2ac01d29, 0x008d0e60, 0x0418a004 },
+   { 0x00000005, 0x20580c21, 0x00210e60, 0x00000003 },
+   { 0x00000041, 0x20580c21, 0x00210058, 0x00000009 },
+   { 0x00000020, 0x34001400, 0x00001400, 0x00210058 },
+   { 0x80800042, 0x2c004629, 0x00b109c0, 0x00b109c1 },
+   { 0x80800042, 0x2c204629, 0x00b10a00, 0x00b10a01 },
+   { 0x80800042, 0x2c404629, 0x00b10a40, 0x00b10a41 },
+   { 0x80800042, 0x2c604629, 0x00b10a80, 0x00b10a81 },
+   { 0x80800042, 0x2c804629, 0x00b10ac0, 0x00b10ac1 },
+   { 0x80800042, 0x2ca04629, 0x00b10b00, 0x00b10b01 },
+   { 0x80800042, 0x2cc04629, 0x00b10b40, 0x00b10b41 },
+   { 0x80800042, 0x2ce04629, 0x00b10b80, 0x00b10b81 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x0000001a },
+   { 0x80800042, 0x2c004629, 0x00b109c1, 0x00b109c2 },
+   { 0x80800042, 0x2c204629, 0x00b10a01, 0x00b10a02 },
+   { 0x80800042, 0x2c404629, 0x00b10a41, 0x00b10a42 },
+   { 0x80800042, 0x2c604629, 0x00b10a81, 0x00b10a82 },
+   { 0x80800042, 0x2c804629, 0x00b10ac1, 0x00b10ac2 },
+   { 0x80800042, 0x2ca04629, 0x00b10b01, 0x00b10b02 },
+   { 0x80800042, 0x2cc04629, 0x00b10b41, 0x00b10b42 },
+   { 0x80800042, 0x2ce04629, 0x00b10b81, 0x00b10b82 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000011 },
+   { 0x80800042, 0x2c004629, 0x00b109c2, 0x00b109c3 },
+   { 0x80800042, 0x2c204629, 0x00b10a02, 0x00b10a03 },
+   { 0x80800042, 0x2c404629, 0x00b10a42, 0x00b10a43 },
+   { 0x80800042, 0x2c604629, 0x00b10a82, 0x00b10a83 },
+   { 0x80800042, 0x2c804629, 0x00b10ac2, 0x00b10ac3 },
+   { 0x80800042, 0x2ca04629, 0x00b10b02, 0x00b10b03 },
+   { 0x80800042, 0x2cc04629, 0x00b10b42, 0x00b10b43 },
+   { 0x80800042, 0x2ce04629, 0x00b10b82, 0x00b10b83 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000008 },
+   { 0x80800042, 0x2c004629, 0x00b109c3, 0x00b109c4 },
+   { 0x80800042, 0x2c204629, 0x00b10a03, 0x00b10a04 },
+   { 0x80800042, 0x2c404629, 0x00b10a43, 0x00b10a44 },
+   { 0x80800042, 0x2c604629, 0x00b10a83, 0x00b10a84 },
+   { 0x80800042, 0x2c804629, 0x00b10ac3, 0x00b10ac4 },
+   { 0x80800042, 0x2ca04629, 0x00b10b03, 0x00b10b04 },
+   { 0x80800042, 0x2cc04629, 0x00b10b43, 0x00b10b44 },
+   { 0x80800042, 0x2ce04629, 0x00b10b83, 0x00b10b84 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000068 },
+   { 0x01000005, 0x20002d3c, 0x00210030, 0x00010001 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x00000035 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
+   { 0x00800031, 0x29c01d29, 0x008d0e60, 0x0411a004 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00800031, 0x2a001d29, 0x008d0e60, 0x0411a004 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00800031, 0x2a401d29, 0x008d0e60, 0x0411a004 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00800031, 0x2a801d29, 0x008d0e60, 0x0411a004 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0007001f },
+   { 0x00800031, 0x2ac01d29, 0x008d0e60, 0x0418a004 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
+   { 0x00800031, 0x2bc01d29, 0x008d0e60, 0x0411a004 },
+   { 0x00000005, 0x20580c21, 0x00210e60, 0x00000003 },
+   { 0x00000041, 0x20580c21, 0x00210058, 0x00000009 },
+   { 0x00000020, 0x34001400, 0x00001400, 0x00210058 },
+   { 0x80800042, 0x2c004629, 0x00b109c0, 0x00b10a00 },
+   { 0x80800042, 0x2c204629, 0x00b10a00, 0x00b10a40 },
+   { 0x80800042, 0x2c404629, 0x00b10a40, 0x00b10a80 },
+   { 0x80800042, 0x2c604629, 0x00b10a80, 0x00b10ac0 },
+   { 0x80800042, 0x2c804629, 0x00b10ac0, 0x00b10b00 },
+   { 0x80800042, 0x2ca04629, 0x00b10b00, 0x00b10b40 },
+   { 0x80800042, 0x2cc04629, 0x00b10b40, 0x00b10b80 },
+   { 0x80800042, 0x2ce04629, 0x00b10b80, 0x00b10bc0 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x0000001a },
+   { 0x80800042, 0x2c004629, 0x00b109c1, 0x00b10a01 },
+   { 0x80800042, 0x2c204629, 0x00b10a01, 0x00b10a41 },
+   { 0x80800042, 0x2c404629, 0x00b10a41, 0x00b10a81 },
+   { 0x80800042, 0x2c604629, 0x00b10a81, 0x00b10ac1 },
+   { 0x80800042, 0x2c804629, 0x00b10ac1, 0x00b10b01 },
+   { 0x80800042, 0x2ca04629, 0x00b10b01, 0x00b10b41 },
+   { 0x80800042, 0x2cc04629, 0x00b10b41, 0x00b10b81 },
+   { 0x80800042, 0x2ce04629, 0x00b10b81, 0x00b10bc1 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000011 },
+   { 0x80800042, 0x2c004629, 0x00b109c2, 0x00b10a02 },
+   { 0x80800042, 0x2c204629, 0x00b10a02, 0x00b10a42 },
+   { 0x80800042, 0x2c404629, 0x00b10a42, 0x00b10a82 },
+   { 0x80800042, 0x2c604629, 0x00b10a82, 0x00b10ac2 },
+   { 0x80800042, 0x2c804629, 0x00b10ac2, 0x00b10b02 },
+   { 0x80800042, 0x2ca04629, 0x00b10b02, 0x00b10b42 },
+   { 0x80800042, 0x2cc04629, 0x00b10b42, 0x00b10b82 },
+   { 0x80800042, 0x2ce04629, 0x00b10b82, 0x00b10bc2 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000008 },
+   { 0x80800042, 0x2c004629, 0x00b109c3, 0x00b10a03 },
+   { 0x80800042, 0x2c204629, 0x00b10a03, 0x00b10a43 },
+   { 0x80800042, 0x2c404629, 0x00b10a43, 0x00b10a83 },
+   { 0x80800042, 0x2c604629, 0x00b10a83, 0x00b10ac3 },
+   { 0x80800042, 0x2c804629, 0x00b10ac3, 0x00b10b03 },
+   { 0x80800042, 0x2ca04629, 0x00b10b03, 0x00b10b43 },
+   { 0x80800042, 0x2cc04629, 0x00b10b43, 0x00b10b83 },
+   { 0x80800042, 0x2ce04629, 0x00b10b83, 0x00b10bc3 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000031 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
+   { 0x00800031, 0x29c01d29, 0x008d0e60, 0x0411a004 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00800031, 0x2a001d29, 0x008d0e60, 0x0411a004 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00800031, 0x2a401d29, 0x008d0e60, 0x0411a004 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00800031, 0x2a801d29, 0x008d0e60, 0x0411a004 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0007001f },
+   { 0x00800031, 0x2ac01d29, 0x008d0e60, 0x0418a004 },
+   { 0x00000005, 0x20580c21, 0x00210e60, 0x00000003 },
+   { 0x00000041, 0x20580c21, 0x00210058, 0x00000009 },
+   { 0x00000020, 0x34001400, 0x00001400, 0x00210058 },
+   { 0x00800001, 0x2c000229, 0x00b109c0, 0x00000000 },
+   { 0x00800001, 0x2c200229, 0x00b10a00, 0x00000000 },
+   { 0x00800001, 0x2c400229, 0x00b10a40, 0x00000000 },
+   { 0x00800001, 0x2c600229, 0x00b10a80, 0x00000000 },
+   { 0x00800001, 0x2c800229, 0x00b10ac0, 0x00000000 },
+   { 0x00800001, 0x2ca00229, 0x00b10b00, 0x00000000 },
+   { 0x00800001, 0x2cc00229, 0x00b10b40, 0x00000000 },
+   { 0x00800001, 0x2ce00229, 0x00b10b80, 0x00000000 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x0000001a },
+   { 0x00800001, 0x2c000229, 0x00b109c1, 0x00000000 },
+   { 0x00800001, 0x2c200229, 0x00b10a01, 0x00000000 },
+   { 0x00800001, 0x2c400229, 0x00b10a41, 0x00000000 },
+   { 0x00800001, 0x2c600229, 0x00b10a81, 0x00000000 },
+   { 0x00800001, 0x2c800229, 0x00b10ac1, 0x00000000 },
+   { 0x00800001, 0x2ca00229, 0x00b10b01, 0x00000000 },
+   { 0x00800001, 0x2cc00229, 0x00b10b41, 0x00000000 },
+   { 0x00800001, 0x2ce00229, 0x00b10b81, 0x00000000 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000011 },
+   { 0x00800001, 0x2c000229, 0x00b109c2, 0x00000000 },
+   { 0x00800001, 0x2c200229, 0x00b10a02, 0x00000000 },
+   { 0x00800001, 0x2c400229, 0x00b10a42, 0x00000000 },
+   { 0x00800001, 0x2c600229, 0x00b10a82, 0x00000000 },
+   { 0x00800001, 0x2c800229, 0x00b10ac2, 0x00000000 },
+   { 0x00800001, 0x2ca00229, 0x00b10b02, 0x00000000 },
+   { 0x00800001, 0x2cc00229, 0x00b10b42, 0x00000000 },
+   { 0x00800001, 0x2ce00229, 0x00b10b82, 0x00000000 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000008 },
+   { 0x00800001, 0x2c000229, 0x00b109c3, 0x00000000 },
+   { 0x00800001, 0x2c200229, 0x00b10a03, 0x00000000 },
+   { 0x00800001, 0x2c400229, 0x00b10a43, 0x00000000 },
+   { 0x00800001, 0x2c600229, 0x00b10a83, 0x00000000 },
+   { 0x00800001, 0x2c800229, 0x00b10ac3, 0x00000000 },
+   { 0x00800001, 0x2ca00229, 0x00b10b03, 0x00000000 },
+   { 0x00800001, 0x2cc00229, 0x00b10b43, 0x00000000 },
+   { 0x00800001, 0x2ce00229, 0x00b10b83, 0x00000000 },
+   { 0x00600001, 0x23800021, 0x008d0c00, 0x00000000 },
+   { 0x00600001, 0x23c00021, 0x008d0c20, 0x00000000 },
+   { 0x00600001, 0x24000021, 0x008d0c40, 0x00000000 },
+   { 0x00600001, 0x24400021, 0x008d0c60, 0x00000000 },
+   { 0x00600001, 0x24800021, 0x008d0c80, 0x00000000 },
+   { 0x00600001, 0x24c00021, 0x008d0ca0, 0x00000000 },
+   { 0x00600001, 0x25000021, 0x008d0cc0, 0x00000000 },
+   { 0x00600001, 0x25400021, 0x008d0ce0, 0x00000000 },
+   { 0x0020000c, 0x2e6e2dad, 0x00450036, 0x00010001 },
+   { 0x00200040, 0x2e603421, 0x00450e80, 0x00450e6e },
+   { 0x00000005, 0x2e640c21, 0x00210e64, 0xfffffffe },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
+   { 0x02000005, 0x20002e3c, 0x0021003f, 0x00040004 },
+   { 0x00010040, 0x2e640c21, 0x00210e64, 0x00000001 },
+   { 0x01000005, 0x20002d3c, 0x00210036, 0x00010001 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x000000b1 },
+   { 0x01000005, 0x20002d3c, 0x00210038, 0x00010001 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x0000007d },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
+   { 0x00800031, 0x29c01d29, 0x008d0e60, 0x0411a004 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00800031, 0x2a001d29, 0x008d0e60, 0x0411a004 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00800031, 0x2a401d29, 0x008d0e60, 0x0411a004 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00800031, 0x2a801d29, 0x008d0e60, 0x0411a004 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0007001f },
+   { 0x00800031, 0x2ac01d29, 0x008d0e60, 0x0418a004 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
+   { 0x00800031, 0x2bc01d29, 0x008d0e60, 0x0411a004 },
+   { 0x00000005, 0x20580c21, 0x00210e60, 0x00000003 },
+   { 0x00000041, 0x20580c21, 0x00210058, 0x00000019 },
+   { 0x00000020, 0x34001400, 0x00001400, 0x00210058 },
+   { 0x00800040, 0x2c004629, 0x00b109c0, 0x00b10a00 },
+   { 0x00800040, 0x2c204629, 0x00b10a00, 0x00b10a40 },
+   { 0x00800040, 0x2c404629, 0x00b10a40, 0x00b10a80 },
+   { 0x00800040, 0x2c604629, 0x00b10a80, 0x00b10ac0 },
+   { 0x00800040, 0x2c804629, 0x00b10ac0, 0x00b10b00 },
+   { 0x00800040, 0x2ca04629, 0x00b10b00, 0x00b10b40 },
+   { 0x00800040, 0x2cc04629, 0x00b10b40, 0x00b10b80 },
+   { 0x00800040, 0x2ce04629, 0x00b10b80, 0x00b10bc0 },
+   { 0x00800040, 0x2c004529, 0x00b10c00, 0x00b109c1 },
+   { 0x00800040, 0x2c204529, 0x00b10c20, 0x00b10a01 },
+   { 0x00800040, 0x2c404529, 0x00b10c40, 0x00b10a41 },
+   { 0x00800040, 0x2c604529, 0x00b10c60, 0x00b10a81 },
+   { 0x00800040, 0x2c804529, 0x00b10c80, 0x00b10ac1 },
+   { 0x00800040, 0x2ca04529, 0x00b10ca0, 0x00b10b01 },
+   { 0x00800040, 0x2cc04529, 0x00b10cc0, 0x00b10b41 },
+   { 0x00800040, 0x2ce04529, 0x00b10ce0, 0x00b10b81 },
+   { 0x00800040, 0x2c004529, 0x00b10c00, 0x00b10a01 },
+   { 0x00800040, 0x2c204529, 0x00b10c20, 0x00b10a41 },
+   { 0x00800040, 0x2c404529, 0x00b10c40, 0x00b10a81 },
+   { 0x00800040, 0x2c604529, 0x00b10c60, 0x00b10ac1 },
+   { 0x00800040, 0x2c804529, 0x00b10c80, 0x00b10b01 },
+   { 0x00800040, 0x2ca04529, 0x00b10ca0, 0x00b10b41 },
+   { 0x00800040, 0x2cc04529, 0x00b10cc0, 0x00b10b81 },
+   { 0x00800040, 0x2ce04529, 0x00b10ce0, 0x00b10bc1 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x0000004a },
+   { 0x00800040, 0x2c004629, 0x00b109c1, 0x00b10a01 },
+   { 0x00800040, 0x2c204629, 0x00b10a01, 0x00b10a41 },
+   { 0x00800040, 0x2c404629, 0x00b10a41, 0x00b10a81 },
+   { 0x00800040, 0x2c604629, 0x00b10a81, 0x00b10ac1 },
+   { 0x00800040, 0x2c804629, 0x00b10ac1, 0x00b10b01 },
+   { 0x00800040, 0x2ca04629, 0x00b10b01, 0x00b10b41 },
+   { 0x00800040, 0x2cc04629, 0x00b10b41, 0x00b10b81 },
+   { 0x00800040, 0x2ce04629, 0x00b10b81, 0x00b10bc1 },
+   { 0x00800040, 0x2c004529, 0x00b10c00, 0x00b109c2 },
+   { 0x00800040, 0x2c204529, 0x00b10c20, 0x00b10a02 },
+   { 0x00800040, 0x2c404529, 0x00b10c40, 0x00b10a42 },
+   { 0x00800040, 0x2c604529, 0x00b10c60, 0x00b10a82 },
+   { 0x00800040, 0x2c804529, 0x00b10c80, 0x00b10ac2 },
+   { 0x00800040, 0x2ca04529, 0x00b10ca0, 0x00b10b02 },
+   { 0x00800040, 0x2cc04529, 0x00b10cc0, 0x00b10b42 },
+   { 0x00800040, 0x2ce04529, 0x00b10ce0, 0x00b10b82 },
+   { 0x00800040, 0x2c004529, 0x00b10c00, 0x00b10a02 },
+   { 0x00800040, 0x2c204529, 0x00b10c20, 0x00b10a42 },
+   { 0x00800040, 0x2c404529, 0x00b10c40, 0x00b10a82 },
+   { 0x00800040, 0x2c604529, 0x00b10c60, 0x00b10ac2 },
+   { 0x00800040, 0x2c804529, 0x00b10c80, 0x00b10b02 },
+   { 0x00800040, 0x2ca04529, 0x00b10ca0, 0x00b10b42 },
+   { 0x00800040, 0x2cc04529, 0x00b10cc0, 0x00b10b82 },
+   { 0x00800040, 0x2ce04529, 0x00b10ce0, 0x00b10bc2 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000031 },
+   { 0x00800040, 0x2c004629, 0x00b109c2, 0x00b10a02 },
+   { 0x00800040, 0x2c204629, 0x00b10a02, 0x00b10a42 },
+   { 0x00800040, 0x2c404629, 0x00b10a42, 0x00b10a82 },
+   { 0x00800040, 0x2c604629, 0x00b10a82, 0x00b10ac2 },
+   { 0x00800040, 0x2c804629, 0x00b10ac2, 0x00b10b02 },
+   { 0x00800040, 0x2ca04629, 0x00b10b02, 0x00b10b42 },
+   { 0x00800040, 0x2cc04629, 0x00b10b42, 0x00b10b82 },
+   { 0x00800040, 0x2ce04629, 0x00b10b82, 0x00b10bc2 },
+   { 0x00800040, 0x2c004529, 0x00b10c00, 0x00b109c3 },
+   { 0x00800040, 0x2c204529, 0x00b10c20, 0x00b10a03 },
+   { 0x00800040, 0x2c404529, 0x00b10c40, 0x00b10a43 },
+   { 0x00800040, 0x2c604529, 0x00b10c60, 0x00b10a83 },
+   { 0x00800040, 0x2c804529, 0x00b10c80, 0x00b10ac3 },
+   { 0x00800040, 0x2ca04529, 0x00b10ca0, 0x00b10b03 },
+   { 0x00800040, 0x2cc04529, 0x00b10cc0, 0x00b10b43 },
+   { 0x00800040, 0x2ce04529, 0x00b10ce0, 0x00b10b83 },
+   { 0x00800040, 0x2c004529, 0x00b10c00, 0x00b10a03 },
+   { 0x00800040, 0x2c204529, 0x00b10c20, 0x00b10a43 },
+   { 0x00800040, 0x2c404529, 0x00b10c40, 0x00b10a83 },
+   { 0x00800040, 0x2c604529, 0x00b10c60, 0x00b10ac3 },
+   { 0x00800040, 0x2c804529, 0x00b10c80, 0x00b10b03 },
+   { 0x00800040, 0x2ca04529, 0x00b10ca0, 0x00b10b43 },
+   { 0x00800040, 0x2cc04529, 0x00b10cc0, 0x00b10b83 },
+   { 0x00800040, 0x2ce04529, 0x00b10ce0, 0x00b10bc3 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000018 },
+   { 0x00800040, 0x2c004629, 0x00b109c3, 0x00b10a03 },
+   { 0x00800040, 0x2c204629, 0x00b10a03, 0x00b10a43 },
+   { 0x00800040, 0x2c404629, 0x00b10a43, 0x00b10a83 },
+   { 0x00800040, 0x2c604629, 0x00b10a83, 0x00b10ac3 },
+   { 0x00800040, 0x2c804629, 0x00b10ac3, 0x00b10b03 },
+   { 0x00800040, 0x2ca04629, 0x00b10b03, 0x00b10b43 },
+   { 0x00800040, 0x2cc04629, 0x00b10b43, 0x00b10b83 },
+   { 0x00800040, 0x2ce04629, 0x00b10b83, 0x00b10bc3 },
+   { 0x00800040, 0x2c004529, 0x00b10c00, 0x00b109c4 },
+   { 0x00800040, 0x2c204529, 0x00b10c20, 0x00b10a04 },
+   { 0x00800040, 0x2c404529, 0x00b10c40, 0x00b10a44 },
+   { 0x00800040, 0x2c604529, 0x00b10c60, 0x00b10a84 },
+   { 0x00800040, 0x2c804529, 0x00b10c80, 0x00b10ac4 },
+   { 0x00800040, 0x2ca04529, 0x00b10ca0, 0x00b10b04 },
+   { 0x00800040, 0x2cc04529, 0x00b10cc0, 0x00b10b44 },
+   { 0x00800040, 0x2ce04529, 0x00b10ce0, 0x00b10b84 },
+   { 0x00800040, 0x2c004529, 0x00b10c00, 0x00b10a04 },
+   { 0x00800040, 0x2c204529, 0x00b10c20, 0x00b10a44 },
+   { 0x00800040, 0x2c404529, 0x00b10c40, 0x00b10a84 },
+   { 0x00800040, 0x2c604529, 0x00b10c60, 0x00b10ac4 },
+   { 0x00800040, 0x2c804529, 0x00b10c80, 0x00b10b04 },
+   { 0x00800040, 0x2ca04529, 0x00b10ca0, 0x00b10b44 },
+   { 0x00800040, 0x2cc04529, 0x00b10cc0, 0x00b10b84 },
+   { 0x00800040, 0x2ce04529, 0x00b10ce0, 0x00b10bc4 },
+   { 0x00800008, 0x2c002d29, 0x00b10c00, 0x00020002 },
+   { 0x00800008, 0x2c202d29, 0x00b10c20, 0x00020002 },
+   { 0x00800008, 0x2c402d29, 0x00b10c40, 0x00020002 },
+   { 0x00800008, 0x2c602d29, 0x00b10c60, 0x00020002 },
+   { 0x00800008, 0x2c802d29, 0x00b10c80, 0x00020002 },
+   { 0x00800008, 0x2ca02d29, 0x00b10ca0, 0x00020002 },
+   { 0x00800008, 0x2cc02d29, 0x00b10cc0, 0x00020002 },
+   { 0x00800008, 0x2ce02d29, 0x00b10ce0, 0x00020002 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x0000009a },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
+   { 0x00800031, 0x29c01d29, 0x008d0e60, 0x0411a004 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00800031, 0x2a001d29, 0x008d0e60, 0x0411a004 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00800031, 0x2a401d29, 0x008d0e60, 0x0411a004 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00800031, 0x2a801d29, 0x008d0e60, 0x0411a004 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0007001f },
+   { 0x00800031, 0x2ac01d29, 0x008d0e60, 0x0418a004 },
+   { 0x00000005, 0x20580c21, 0x00210e60, 0x00000003 },
+   { 0x00000041, 0x20580c21, 0x00210058, 0x00000009 },
+   { 0x00000020, 0x34001400, 0x00001400, 0x00210058 },
+   { 0x80800042, 0x2c004629, 0x00b109c0, 0x00b109c1 },
+   { 0x80800042, 0x2c204629, 0x00b10a00, 0x00b10a01 },
+   { 0x80800042, 0x2c404629, 0x00b10a40, 0x00b10a41 },
+   { 0x80800042, 0x2c604629, 0x00b10a80, 0x00b10a81 },
+   { 0x80800042, 0x2c804629, 0x00b10ac0, 0x00b10ac1 },
+   { 0x80800042, 0x2ca04629, 0x00b10b00, 0x00b10b01 },
+   { 0x80800042, 0x2cc04629, 0x00b10b40, 0x00b10b41 },
+   { 0x80800042, 0x2ce04629, 0x00b10b80, 0x00b10b81 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x0000001a },
+   { 0x80800042, 0x2c004629, 0x00b109c1, 0x00b109c2 },
+   { 0x80800042, 0x2c204629, 0x00b10a01, 0x00b10a02 },
+   { 0x80800042, 0x2c404629, 0x00b10a41, 0x00b10a42 },
+   { 0x80800042, 0x2c604629, 0x00b10a81, 0x00b10a82 },
+   { 0x80800042, 0x2c804629, 0x00b10ac1, 0x00b10ac2 },
+   { 0x80800042, 0x2ca04629, 0x00b10b01, 0x00b10b02 },
+   { 0x80800042, 0x2cc04629, 0x00b10b41, 0x00b10b42 },
+   { 0x80800042, 0x2ce04629, 0x00b10b81, 0x00b10b82 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000011 },
+   { 0x80800042, 0x2c004629, 0x00b109c2, 0x00b109c3 },
+   { 0x80800042, 0x2c204629, 0x00b10a02, 0x00b10a03 },
+   { 0x80800042, 0x2c404629, 0x00b10a42, 0x00b10a43 },
+   { 0x80800042, 0x2c604629, 0x00b10a82, 0x00b10a83 },
+   { 0x80800042, 0x2c804629, 0x00b10ac2, 0x00b10ac3 },
+   { 0x80800042, 0x2ca04629, 0x00b10b02, 0x00b10b03 },
+   { 0x80800042, 0x2cc04629, 0x00b10b42, 0x00b10b43 },
+   { 0x80800042, 0x2ce04629, 0x00b10b82, 0x00b10b83 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000008 },
+   { 0x80800042, 0x2c004629, 0x00b109c3, 0x00b109c4 },
+   { 0x80800042, 0x2c204629, 0x00b10a03, 0x00b10a04 },
+   { 0x80800042, 0x2c404629, 0x00b10a43, 0x00b10a44 },
+   { 0x80800042, 0x2c604629, 0x00b10a83, 0x00b10a84 },
+   { 0x80800042, 0x2c804629, 0x00b10ac3, 0x00b10ac4 },
+   { 0x80800042, 0x2ca04629, 0x00b10b03, 0x00b10b04 },
+   { 0x80800042, 0x2cc04629, 0x00b10b43, 0x00b10b44 },
+   { 0x80800042, 0x2ce04629, 0x00b10b83, 0x00b10b84 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000068 },
+   { 0x01000005, 0x20002d3c, 0x00210038, 0x00010001 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x00000035 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
+   { 0x00800031, 0x29c01d29, 0x008d0e60, 0x0411a004 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00800031, 0x2a001d29, 0x008d0e60, 0x0411a004 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00800031, 0x2a401d29, 0x008d0e60, 0x0411a004 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00800031, 0x2a801d29, 0x008d0e60, 0x0411a004 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0007001f },
+   { 0x00800031, 0x2ac01d29, 0x008d0e60, 0x0418a004 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
+   { 0x00800031, 0x2bc01d29, 0x008d0e60, 0x0411a004 },
+   { 0x00000005, 0x20580c21, 0x00210e60, 0x00000003 },
+   { 0x00000041, 0x20580c21, 0x00210058, 0x00000009 },
+   { 0x00000020, 0x34001400, 0x00001400, 0x00210058 },
+   { 0x80800042, 0x2c004629, 0x00b109c0, 0x00b10a00 },
+   { 0x80800042, 0x2c204629, 0x00b10a00, 0x00b10a40 },
+   { 0x80800042, 0x2c404629, 0x00b10a40, 0x00b10a80 },
+   { 0x80800042, 0x2c604629, 0x00b10a80, 0x00b10ac0 },
+   { 0x80800042, 0x2c804629, 0x00b10ac0, 0x00b10b00 },
+   { 0x80800042, 0x2ca04629, 0x00b10b00, 0x00b10b40 },
+   { 0x80800042, 0x2cc04629, 0x00b10b40, 0x00b10b80 },
+   { 0x80800042, 0x2ce04629, 0x00b10b80, 0x00b10bc0 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x0000001a },
+   { 0x80800042, 0x2c004629, 0x00b109c1, 0x00b10a01 },
+   { 0x80800042, 0x2c204629, 0x00b10a01, 0x00b10a41 },
+   { 0x80800042, 0x2c404629, 0x00b10a41, 0x00b10a81 },
+   { 0x80800042, 0x2c604629, 0x00b10a81, 0x00b10ac1 },
+   { 0x80800042, 0x2c804629, 0x00b10ac1, 0x00b10b01 },
+   { 0x80800042, 0x2ca04629, 0x00b10b01, 0x00b10b41 },
+   { 0x80800042, 0x2cc04629, 0x00b10b41, 0x00b10b81 },
+   { 0x80800042, 0x2ce04629, 0x00b10b81, 0x00b10bc1 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000011 },
+   { 0x80800042, 0x2c004629, 0x00b109c2, 0x00b10a02 },
+   { 0x80800042, 0x2c204629, 0x00b10a02, 0x00b10a42 },
+   { 0x80800042, 0x2c404629, 0x00b10a42, 0x00b10a82 },
+   { 0x80800042, 0x2c604629, 0x00b10a82, 0x00b10ac2 },
+   { 0x80800042, 0x2c804629, 0x00b10ac2, 0x00b10b02 },
+   { 0x80800042, 0x2ca04629, 0x00b10b02, 0x00b10b42 },
+   { 0x80800042, 0x2cc04629, 0x00b10b42, 0x00b10b82 },
+   { 0x80800042, 0x2ce04629, 0x00b10b82, 0x00b10bc2 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000008 },
+   { 0x80800042, 0x2c004629, 0x00b109c3, 0x00b10a03 },
+   { 0x80800042, 0x2c204629, 0x00b10a03, 0x00b10a43 },
+   { 0x80800042, 0x2c404629, 0x00b10a43, 0x00b10a83 },
+   { 0x80800042, 0x2c604629, 0x00b10a83, 0x00b10ac3 },
+   { 0x80800042, 0x2c804629, 0x00b10ac3, 0x00b10b03 },
+   { 0x80800042, 0x2ca04629, 0x00b10b03, 0x00b10b43 },
+   { 0x80800042, 0x2cc04629, 0x00b10b43, 0x00b10b83 },
+   { 0x80800042, 0x2ce04629, 0x00b10b83, 0x00b10bc3 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000031 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
+   { 0x00800031, 0x29c01d29, 0x008d0e60, 0x0411a004 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00800031, 0x2a001d29, 0x008d0e60, 0x0411a004 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00800031, 0x2a401d29, 0x008d0e60, 0x0411a004 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00800031, 0x2a801d29, 0x008d0e60, 0x0411a004 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0007001f },
+   { 0x00800031, 0x2ac01d29, 0x008d0e60, 0x0418a004 },
+   { 0x00000005, 0x20580c21, 0x00210e60, 0x00000003 },
+   { 0x00000041, 0x20580c21, 0x00210058, 0x00000009 },
+   { 0x00000020, 0x34001400, 0x00001400, 0x00210058 },
+   { 0x00800001, 0x2c000229, 0x00b109c0, 0x00000000 },
+   { 0x00800001, 0x2c200229, 0x00b10a00, 0x00000000 },
+   { 0x00800001, 0x2c400229, 0x00b10a40, 0x00000000 },
+   { 0x00800001, 0x2c600229, 0x00b10a80, 0x00000000 },
+   { 0x00800001, 0x2c800229, 0x00b10ac0, 0x00000000 },
+   { 0x00800001, 0x2ca00229, 0x00b10b00, 0x00000000 },
+   { 0x00800001, 0x2cc00229, 0x00b10b40, 0x00000000 },
+   { 0x00800001, 0x2ce00229, 0x00b10b80, 0x00000000 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x0000001a },
+   { 0x00800001, 0x2c000229, 0x00b109c1, 0x00000000 },
+   { 0x00800001, 0x2c200229, 0x00b10a01, 0x00000000 },
+   { 0x00800001, 0x2c400229, 0x00b10a41, 0x00000000 },
+   { 0x00800001, 0x2c600229, 0x00b10a81, 0x00000000 },
+   { 0x00800001, 0x2c800229, 0x00b10ac1, 0x00000000 },
+   { 0x00800001, 0x2ca00229, 0x00b10b01, 0x00000000 },
+   { 0x00800001, 0x2cc00229, 0x00b10b41, 0x00000000 },
+   { 0x00800001, 0x2ce00229, 0x00b10b81, 0x00000000 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000011 },
+   { 0x00800001, 0x2c000229, 0x00b109c2, 0x00000000 },
+   { 0x00800001, 0x2c200229, 0x00b10a02, 0x00000000 },
+   { 0x00800001, 0x2c400229, 0x00b10a42, 0x00000000 },
+   { 0x00800001, 0x2c600229, 0x00b10a82, 0x00000000 },
+   { 0x00800001, 0x2c800229, 0x00b10ac2, 0x00000000 },
+   { 0x00800001, 0x2ca00229, 0x00b10b02, 0x00000000 },
+   { 0x00800001, 0x2cc00229, 0x00b10b42, 0x00000000 },
+   { 0x00800001, 0x2ce00229, 0x00b10b82, 0x00000000 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000008 },
+   { 0x00800001, 0x2c000229, 0x00b109c3, 0x00000000 },
+   { 0x00800001, 0x2c200229, 0x00b10a03, 0x00000000 },
+   { 0x00800001, 0x2c400229, 0x00b10a43, 0x00000000 },
+   { 0x00800001, 0x2c600229, 0x00b10a83, 0x00000000 },
+   { 0x00800001, 0x2c800229, 0x00b10ac3, 0x00000000 },
+   { 0x00800001, 0x2ca00229, 0x00b10b03, 0x00000000 },
+   { 0x00800001, 0x2cc00229, 0x00b10b43, 0x00000000 },
+   { 0x00800001, 0x2ce00229, 0x00b10b83, 0x00000000 },
+   { 0x00600001, 0x23a00021, 0x008d0c00, 0x00000000 },
+   { 0x00600001, 0x23e00021, 0x008d0c20, 0x00000000 },
+   { 0x00600001, 0x24200021, 0x008d0c40, 0x00000000 },
+   { 0x00600001, 0x24600021, 0x008d0c60, 0x00000000 },
+   { 0x00600001, 0x24a00021, 0x008d0c80, 0x00000000 },
+   { 0x00600001, 0x24e00021, 0x008d0ca0, 0x00000000 },
+   { 0x00600001, 0x25200021, 0x008d0cc0, 0x00000000 },
+   { 0x00600001, 0x25600021, 0x008d0ce0, 0x00000000 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0007000f },
+   { 0x0020000c, 0x2e6e2dad, 0x0045002e, 0x00020002 },
+   { 0x0020000c, 0x2e601ca5, 0x00450e80, 0x00000001 },
+   { 0x00200040, 0x2e6034a5, 0x00450e60, 0x00450e6e },
+   { 0x00000005, 0x2e640c21, 0x00210e64, 0xfffffffe },
+   { 0x02000005, 0x20002e3c, 0x0021003f, 0x00010001 },
+   { 0x00010040, 0x2e640c21, 0x00210e64, 0x00000001 },
+   { 0x01000005, 0x20002d3c, 0x0021002e, 0x00020002 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x000000a2 },
+   { 0x01000005, 0x20002d3c, 0x00210030, 0x00020002 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x00000076 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0007000f },
+   { 0x00800031, 0x2ac01d29, 0x00ad0e60, 0x0414a005 },
+   { 0x00800031, 0x2b601d29, 0x00ad0e60, 0x0414a006 },
+   { 0x00000005, 0x20580c21, 0x00210e60, 0x00000003 },
+   { 0x00000041, 0x20580c21, 0x00210058, 0x00000019 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0001000f },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 },
+   { 0x00800031, 0x2b401d29, 0x00ad0e60, 0x0411a005 },
+   { 0x00800031, 0x2be01d29, 0x00ad0e60, 0x0411a006 },
+   { 0x00000020, 0x34001400, 0x00001400, 0x00210058 },
+   { 0x00800040, 0x29c04629, 0x00ad0ac0, 0x00ad0ae0 },
+   { 0x00800040, 0x29e04629, 0x00ad0ae0, 0x00ad0b00 },
+   { 0x00800040, 0x2a004629, 0x00ad0b00, 0x00ad0b20 },
+   { 0x00800040, 0x2a204629, 0x00ad0b20, 0x00ad0b40 },
+   { 0x00800040, 0x29c04529, 0x00ad09c0, 0x00ad0ac1 },
+   { 0x00800040, 0x29e04529, 0x00ad09e0, 0x00ad0ae1 },
+   { 0x00800040, 0x2a004529, 0x00ad0a00, 0x00ad0b01 },
+   { 0x00800040, 0x2a204529, 0x00ad0a20, 0x00ad0b21 },
+   { 0x00800040, 0x29c04529, 0x00ad09c0, 0x00ad0ae1 },
+   { 0x00800040, 0x29e04529, 0x00ad09e0, 0x00ad0b01 },
+   { 0x00800040, 0x2a004529, 0x00ad0a00, 0x00ad0b21 },
+   { 0x00800040, 0x2a204529, 0x00ad0a20, 0x00ad0b41 },
+   { 0x00800040, 0x2a404629, 0x00ad0b60, 0x00ad0b80 },
+   { 0x00800040, 0x2a604629, 0x00ad0b80, 0x00ad0ba0 },
+   { 0x00800040, 0x2a804629, 0x00ad0ba0, 0x00ad0bc0 },
+   { 0x00800040, 0x2aa04629, 0x00ad0bc0, 0x00ad0be0 },
+   { 0x00800040, 0x2a404529, 0x00ad0a40, 0x00ad0b61 },
+   { 0x00800040, 0x2a604529, 0x00ad0a60, 0x00ad0b81 },
+   { 0x00800040, 0x2a804529, 0x00ad0a80, 0x00ad0ba1 },
+   { 0x00800040, 0x2aa04529, 0x00ad0aa0, 0x00ad0bc1 },
+   { 0x00800040, 0x2a404529, 0x00ad0a40, 0x00ad0b81 },
+   { 0x00800040, 0x2a604529, 0x00ad0a60, 0x00ad0ba1 },
+   { 0x00800040, 0x2a804529, 0x00ad0a80, 0x00ad0bc1 },
+   { 0x00800040, 0x2aa04529, 0x00ad0aa0, 0x00ad0be1 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x0000004a },
+   { 0x00800040, 0x29c04629, 0x00ad0ac1, 0x00ad0ae1 },
+   { 0x00800040, 0x29e04629, 0x00ad0ae1, 0x00ad0b01 },
+   { 0x00800040, 0x2a004629, 0x00ad0b01, 0x00ad0b21 },
+   { 0x00800040, 0x2a204629, 0x00ad0b21, 0x00ad0b41 },
+   { 0x00800040, 0x29c04529, 0x00ad09c0, 0x00ad0ac2 },
+   { 0x00800040, 0x29e04529, 0x00ad09e0, 0x00ad0ae2 },
+   { 0x00800040, 0x2a004529, 0x00ad0a00, 0x00ad0b02 },
+   { 0x00800040, 0x2a204529, 0x00ad0a20, 0x00ad0b22 },
+   { 0x00800040, 0x29c04529, 0x00ad09c0, 0x00ad0ae2 },
+   { 0x00800040, 0x29e04529, 0x00ad09e0, 0x00ad0b02 },
+   { 0x00800040, 0x2a004529, 0x00ad0a00, 0x00ad0b22 },
+   { 0x00800040, 0x2a204529, 0x00ad0a20, 0x00ad0b42 },
+   { 0x00800040, 0x2a404629, 0x00ad0b61, 0x00ad0b81 },
+   { 0x00800040, 0x2a604629, 0x00ad0b81, 0x00ad0ba1 },
+   { 0x00800040, 0x2a804629, 0x00ad0ba1, 0x00ad0bc1 },
+   { 0x00800040, 0x2aa04629, 0x00ad0bc1, 0x00ad0be1 },
+   { 0x00800040, 0x2a404529, 0x00ad0a40, 0x00ad0b62 },
+   { 0x00800040, 0x2a604529, 0x00ad0a60, 0x00ad0b82 },
+   { 0x00800040, 0x2a804529, 0x00ad0a80, 0x00ad0ba2 },
+   { 0x00800040, 0x2aa04529, 0x00ad0aa0, 0x00ad0bc2 },
+   { 0x00800040, 0x2a404529, 0x00ad0a40, 0x00ad0b82 },
+   { 0x00800040, 0x2a604529, 0x00ad0a60, 0x00ad0ba2 },
+   { 0x00800040, 0x2a804529, 0x00ad0a80, 0x00ad0bc2 },
+   { 0x00800040, 0x2aa04529, 0x00ad0aa0, 0x00ad0be2 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000031 },
+   { 0x00800040, 0x29c04629, 0x00ad0ac2, 0x00ad0ae2 },
+   { 0x00800040, 0x29e04629, 0x00ad0ae2, 0x00ad0b02 },
+   { 0x00800040, 0x2a004629, 0x00ad0b02, 0x00ad0b22 },
+   { 0x00800040, 0x2a204629, 0x00ad0b22, 0x00ad0b42 },
+   { 0x00800040, 0x29c04529, 0x00ad09c0, 0x00ad0ac3 },
+   { 0x00800040, 0x29e04529, 0x00ad09e0, 0x00ad0ae3 },
+   { 0x00800040, 0x2a004529, 0x00ad0a00, 0x00ad0b03 },
+   { 0x00800040, 0x2a204529, 0x00ad0a20, 0x00ad0b23 },
+   { 0x00800040, 0x29c04529, 0x00ad09c0, 0x00ad0ae3 },
+   { 0x00800040, 0x29e04529, 0x00ad09e0, 0x00ad0b03 },
+   { 0x00800040, 0x2a004529, 0x00ad0a00, 0x00ad0b23 },
+   { 0x00800040, 0x2a204529, 0x00ad0a20, 0x00ad0b43 },
+   { 0x00800040, 0x2a404629, 0x00ad0b62, 0x00ad0b82 },
+   { 0x00800040, 0x2a604629, 0x00ad0b82, 0x00ad0ba2 },
+   { 0x00800040, 0x2a804629, 0x00ad0ba2, 0x00ad0bc2 },
+   { 0x00800040, 0x2aa04629, 0x00ad0bc2, 0x00ad0be2 },
+   { 0x00800040, 0x2a404529, 0x00ad0a40, 0x00ad0b63 },
+   { 0x00800040, 0x2a604529, 0x00ad0a60, 0x00ad0b83 },
+   { 0x00800040, 0x2a804529, 0x00ad0a80, 0x00ad0ba3 },
+   { 0x00800040, 0x2aa04529, 0x00ad0aa0, 0x00ad0bc3 },
+   { 0x00800040, 0x2a404529, 0x00ad0a40, 0x00ad0b83 },
+   { 0x00800040, 0x2a604529, 0x00ad0a60, 0x00ad0ba3 },
+   { 0x00800040, 0x2a804529, 0x00ad0a80, 0x00ad0bc3 },
+   { 0x00800040, 0x2aa04529, 0x00ad0aa0, 0x00ad0be3 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000018 },
+   { 0x00800040, 0x29c04629, 0x00ad0ac3, 0x00ad0ae3 },
+   { 0x00800040, 0x29e04629, 0x00ad0ae3, 0x00ad0b03 },
+   { 0x00800040, 0x2a004629, 0x00ad0b03, 0x00ad0b23 },
+   { 0x00800040, 0x2a204629, 0x00ad0b23, 0x00ad0b43 },
+   { 0x00800040, 0x29c04529, 0x00ad09c0, 0x00ad0ac4 },
+   { 0x00800040, 0x29e04529, 0x00ad09e0, 0x00ad0ae4 },
+   { 0x00800040, 0x2a004529, 0x00ad0a00, 0x00ad0b04 },
+   { 0x00800040, 0x2a204529, 0x00ad0a20, 0x00ad0b24 },
+   { 0x00800040, 0x29c04529, 0x00ad09c0, 0x00ad0ae4 },
+   { 0x00800040, 0x29e04529, 0x00ad09e0, 0x00ad0b04 },
+   { 0x00800040, 0x2a004529, 0x00ad0a00, 0x00ad0b24 },
+   { 0x00800040, 0x2a204529, 0x00ad0a20, 0x00ad0b44 },
+   { 0x00800040, 0x2a404629, 0x00ad0b63, 0x00ad0b83 },
+   { 0x00800040, 0x2a604629, 0x00ad0b83, 0x00ad0ba3 },
+   { 0x00800040, 0x2a804629, 0x00ad0ba3, 0x00ad0bc3 },
+   { 0x00800040, 0x2aa04629, 0x00ad0bc3, 0x00ad0be3 },
+   { 0x00800040, 0x2a404529, 0x00ad0a40, 0x00ad0b64 },
+   { 0x00800040, 0x2a604529, 0x00ad0a60, 0x00ad0b84 },
+   { 0x00800040, 0x2a804529, 0x00ad0a80, 0x00ad0ba4 },
+   { 0x00800040, 0x2aa04529, 0x00ad0aa0, 0x00ad0bc4 },
+   { 0x00800040, 0x2a404529, 0x00ad0a40, 0x00ad0b84 },
+   { 0x00800040, 0x2a604529, 0x00ad0a60, 0x00ad0ba4 },
+   { 0x00800040, 0x2a804529, 0x00ad0a80, 0x00ad0bc4 },
+   { 0x00800040, 0x2aa04529, 0x00ad0aa0, 0x00ad0be4 },
+   { 0x80800008, 0x29c02d29, 0x00b109c0, 0x00020002 },
+   { 0x80800008, 0x29e02d29, 0x00b109e0, 0x00020002 },
+   { 0x80800008, 0x2a002d29, 0x00b10a00, 0x00020002 },
+   { 0x80800008, 0x2a202d29, 0x00b10a20, 0x00020002 },
+   { 0x80800008, 0x2a402d29, 0x00b10a40, 0x00020002 },
+   { 0x80800008, 0x2a602d29, 0x00b10a60, 0x00020002 },
+   { 0x80800008, 0x2a802d29, 0x00b10a80, 0x00020002 },
+   { 0x80800008, 0x2aa02d29, 0x00b10aa0, 0x00020002 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000082 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0007000f },
+   { 0x00800031, 0x2ac01d29, 0x00ad0e60, 0x0414a005 },
+   { 0x00800031, 0x2b601d29, 0x00ad0e60, 0x0414a006 },
+   { 0x00000005, 0x20580c21, 0x00210e60, 0x00000003 },
+   { 0x00000041, 0x20580c21, 0x00210058, 0x00000009 },
+   { 0x00000020, 0x34001400, 0x00001400, 0x00210058 },
+   { 0x80800042, 0x29c04629, 0x00ad0ac0, 0x00ad0ac1 },
+   { 0x80800042, 0x29e04629, 0x00ad0ae0, 0x00ad0ae1 },
+   { 0x80800042, 0x2a004629, 0x00ad0b00, 0x00ad0b01 },
+   { 0x80800042, 0x2a204629, 0x00ad0b20, 0x00ad0b21 },
+   { 0x80800042, 0x2a404629, 0x00ad0b60, 0x00ad0b61 },
+   { 0x80800042, 0x2a604629, 0x00ad0b80, 0x00ad0b81 },
+   { 0x80800042, 0x2a804629, 0x00ad0ba0, 0x00ad0ba1 },
+   { 0x80800042, 0x2aa04629, 0x00ad0bc0, 0x00ad0bc1 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x0000001a },
+   { 0x80800042, 0x29c04629, 0x00ad0ac1, 0x00ad0ac2 },
+   { 0x80800042, 0x29e04629, 0x00ad0ae1, 0x00ad0ae2 },
+   { 0x80800042, 0x2a004629, 0x00ad0b01, 0x00ad0b02 },
+   { 0x80800042, 0x2a204629, 0x00ad0b21, 0x00ad0b22 },
+   { 0x80800042, 0x2a404629, 0x00ad0b61, 0x00ad0b62 },
+   { 0x80800042, 0x2a604629, 0x00ad0b81, 0x00ad0b82 },
+   { 0x80800042, 0x2a804629, 0x00ad0ba1, 0x00ad0ba2 },
+   { 0x80800042, 0x2aa04629, 0x00ad0bc1, 0x00ad0bc2 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000011 },
+   { 0x80800042, 0x29c04629, 0x00ad0ac2, 0x00ad0ac3 },
+   { 0x80800042, 0x29e04629, 0x00ad0ae2, 0x00ad0ae3 },
+   { 0x80800042, 0x2a004629, 0x00ad0b02, 0x00ad0b03 },
+   { 0x80800042, 0x2a204629, 0x00ad0b22, 0x00ad0b23 },
+   { 0x80800042, 0x2a404629, 0x00ad0b62, 0x00ad0b63 },
+   { 0x80800042, 0x2a604629, 0x00ad0b82, 0x00ad0b83 },
+   { 0x80800042, 0x2a804629, 0x00ad0ba2, 0x00ad0ba3 },
+   { 0x80800042, 0x2aa04629, 0x00ad0bc2, 0x00ad0bc3 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000008 },
+   { 0x80800042, 0x29c04629, 0x00ad0ac3, 0x00ad0ac4 },
+   { 0x80800042, 0x29e04629, 0x00ad0ae3, 0x00ad0ae4 },
+   { 0x80800042, 0x2a004629, 0x00ad0b03, 0x00ad0b04 },
+   { 0x80800042, 0x2a204629, 0x00ad0b23, 0x00ad0b24 },
+   { 0x80800042, 0x2a404629, 0x00ad0b63, 0x00ad0b64 },
+   { 0x80800042, 0x2a604629, 0x00ad0b83, 0x00ad0b84 },
+   { 0x80800042, 0x2a804629, 0x00ad0ba3, 0x00ad0ba4 },
+   { 0x80800042, 0x2aa04629, 0x00ad0bc3, 0x00ad0bc4 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000058 },
+   { 0x01000005, 0x20002d3c, 0x00210030, 0x00020002 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x0000002d },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0007000f },
+   { 0x00800031, 0x2ac01d29, 0x00ad0e60, 0x0414a005 },
+   { 0x00800031, 0x2b601d29, 0x00ad0e60, 0x0414a006 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0000000f },
+   { 0x00800031, 0x2b401d29, 0x00ad0e60, 0x0411a005 },
+   { 0x00800031, 0x2be01d29, 0x00ad0e60, 0x0411a006 },
+   { 0x00000005, 0x20580c21, 0x00210e60, 0x00000003 },
+   { 0x00000041, 0x20580c21, 0x00210058, 0x00000009 },
+   { 0x00000020, 0x34001400, 0x00001400, 0x00210058 },
+   { 0x80800042, 0x29c04629, 0x00ad0ac0, 0x00ad0ae0 },
+   { 0x80800042, 0x29e04629, 0x00ad0ae0, 0x00ad0b00 },
+   { 0x80800042, 0x2a004629, 0x00ad0b00, 0x00ad0b20 },
+   { 0x80800042, 0x2a204629, 0x00ad0b20, 0x00ad0b40 },
+   { 0x80800042, 0x2a404629, 0x00ad0b60, 0x00ad0b80 },
+   { 0x80800042, 0x2a604629, 0x00ad0b80, 0x00ad0ba0 },
+   { 0x80800042, 0x2a804629, 0x00ad0ba0, 0x00ad0bc0 },
+   { 0x80800042, 0x2aa04629, 0x00ad0bc0, 0x00ad0be0 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x0000001a },
+   { 0x80800042, 0x29c04629, 0x00ad0ac1, 0x00ad0ae1 },
+   { 0x80800042, 0x29e04629, 0x00ad0ae1, 0x00ad0b01 },
+   { 0x80800042, 0x2a004629, 0x00ad0b01, 0x00ad0b21 },
+   { 0x80800042, 0x2a204629, 0x00ad0b21, 0x00ad0b41 },
+   { 0x80800042, 0x2a404629, 0x00ad0b61, 0x00ad0b81 },
+   { 0x80800042, 0x2a604629, 0x00ad0b81, 0x00ad0ba1 },
+   { 0x80800042, 0x2a804629, 0x00ad0ba1, 0x00ad0bc1 },
+   { 0x80800042, 0x2aa04629, 0x00ad0bc1, 0x00ad0be1 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000011 },
+   { 0x80800042, 0x29c04629, 0x00ad0ac2, 0x00ad0ae2 },
+   { 0x80800042, 0x29e04629, 0x00ad0ae2, 0x00ad0b02 },
+   { 0x80800042, 0x2a004629, 0x00ad0b02, 0x00ad0b22 },
+   { 0x80800042, 0x2a204629, 0x00ad0b22, 0x00ad0b42 },
+   { 0x80800042, 0x2a404629, 0x00ad0b62, 0x00ad0b82 },
+   { 0x80800042, 0x2a604629, 0x00ad0b82, 0x00ad0ba2 },
+   { 0x80800042, 0x2a804629, 0x00ad0ba2, 0x00ad0bc2 },
+   { 0x80800042, 0x2aa04629, 0x00ad0bc2, 0x00ad0be2 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000008 },
+   { 0x80800042, 0x29c04629, 0x00ad0ac3, 0x00ad0ac3 },
+   { 0x80800042, 0x29e04629, 0x00ad0ae3, 0x00ad0ae3 },
+   { 0x80800042, 0x2a004629, 0x00ad0b03, 0x00ad0b03 },
+   { 0x80800042, 0x2a204629, 0x00ad0b23, 0x00ad0b23 },
+   { 0x80800042, 0x2a404629, 0x00ad0b63, 0x00ad0b63 },
+   { 0x80800042, 0x2a604629, 0x00ad0b83, 0x00ad0b83 },
+   { 0x80800042, 0x2a804629, 0x00ad0ba3, 0x00ad0ba3 },
+   { 0x80800042, 0x2aa04629, 0x00ad0bc3, 0x00ad0bc3 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000029 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0007000f },
+   { 0x00800031, 0x2ac01d29, 0x00ad0e60, 0x0414a005 },
+   { 0x00800031, 0x2b601d29, 0x00ad0e60, 0x0414a006 },
+   { 0x00000005, 0x20580c21, 0x00210e60, 0x00000003 },
+   { 0x00000041, 0x20580c21, 0x00210058, 0x00000009 },
+   { 0x00000020, 0x34001400, 0x00001400, 0x00210058 },
+   { 0x00800001, 0x29c00229, 0x00ad0ac0, 0x00000000 },
+   { 0x00800001, 0x29e00229, 0x00ad0ae0, 0x00000000 },
+   { 0x00800001, 0x2a000229, 0x00ad0b00, 0x00000000 },
+   { 0x00800001, 0x2a200229, 0x00ad0b20, 0x00000000 },
+   { 0x00800001, 0x2a400229, 0x00ad0b60, 0x00000000 },
+   { 0x00800001, 0x2a600229, 0x00ad0b80, 0x00000000 },
+   { 0x00800001, 0x2a800229, 0x00ad0ba0, 0x00000000 },
+   { 0x00800001, 0x2aa00229, 0x00ad0bc0, 0x00000000 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x0000001a },
+   { 0x00800001, 0x29c00229, 0x00ad0ac1, 0x00000000 },
+   { 0x00800001, 0x29e00229, 0x00ad0ae1, 0x00000000 },
+   { 0x00800001, 0x2a000229, 0x00ad0b01, 0x00000000 },
+   { 0x00800001, 0x2a200229, 0x00ad0b21, 0x00000000 },
+   { 0x00800001, 0x2a400229, 0x00ad0b61, 0x00000000 },
+   { 0x00800001, 0x2a600229, 0x00ad0b81, 0x00000000 },
+   { 0x00800001, 0x2a800229, 0x00ad0ba1, 0x00000000 },
+   { 0x00800001, 0x2aa00229, 0x00ad0bc1, 0x00000000 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000011 },
+   { 0x00800001, 0x29c00229, 0x00ad0ac2, 0x00000000 },
+   { 0x00800001, 0x29e00229, 0x00ad0ae2, 0x00000000 },
+   { 0x00800001, 0x2a000229, 0x00ad0b02, 0x00000000 },
+   { 0x00800001, 0x2a200229, 0x00ad0b22, 0x00000000 },
+   { 0x00800001, 0x2a400229, 0x00ad0b62, 0x00000000 },
+   { 0x00800001, 0x2a600229, 0x00ad0b82, 0x00000000 },
+   { 0x00800001, 0x2a800229, 0x00ad0ba2, 0x00000000 },
+   { 0x00800001, 0x2aa00229, 0x00ad0bc2, 0x00000000 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000008 },
+   { 0x00800001, 0x29c00229, 0x00ad0ac3, 0x00000000 },
+   { 0x00800001, 0x29e00229, 0x00ad0ae3, 0x00000000 },
+   { 0x00800001, 0x2a000229, 0x00ad0b03, 0x00000000 },
+   { 0x00800001, 0x2a200229, 0x00ad0b23, 0x00000000 },
+   { 0x00800001, 0x2a400229, 0x00ad0b63, 0x00000000 },
+   { 0x00800001, 0x2a600229, 0x00ad0b83, 0x00000000 },
+   { 0x00800001, 0x2a800229, 0x00ad0ba3, 0x00000000 },
+   { 0x00800001, 0x2aa00229, 0x00ad0bc3, 0x00000000 },
+   { 0x00600001, 0x25800129, 0x008d09c0, 0x00000000 },
+   { 0x00600001, 0x25a00129, 0x008d09e0, 0x00000000 },
+   { 0x00600001, 0x25c00129, 0x008d0a00, 0x00000000 },
+   { 0x00600001, 0x25e00129, 0x008d0a20, 0x00000000 },
+   { 0x00600001, 0x26000129, 0x008d0a40, 0x00000000 },
+   { 0x00600001, 0x26200129, 0x008d0a60, 0x00000000 },
+   { 0x00600001, 0x26400129, 0x008d0a80, 0x00000000 },
+   { 0x00600001, 0x26600129, 0x008d0aa0, 0x00000000 },
+   { 0x0020000c, 0x2e6e2dad, 0x00450036, 0x00020002 },
+   { 0x0020000c, 0x2e601ca5, 0x00450e80, 0x00000001 },
+   { 0x00200040, 0x2e6034a5, 0x00450e60, 0x00450e6e },
+   { 0x00000005, 0x2e640c21, 0x00210e64, 0xfffffffe },
+   { 0x02000005, 0x20002e3c, 0x0021003f, 0x00040004 },
+   { 0x00010040, 0x2e640c21, 0x00210e64, 0x00000001 },
+   { 0x01000005, 0x20002d3c, 0x00210036, 0x00020002 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x000000a2 },
+   { 0x01000005, 0x20002d3c, 0x00210038, 0x00020002 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x00000076 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0007000f },
+   { 0x00800031, 0x2ac01d29, 0x00ad0e60, 0x0414a005 },
+   { 0x00800031, 0x2b601d29, 0x00ad0e60, 0x0414a006 },
+   { 0x00000005, 0x20580c21, 0x00210e60, 0x00000003 },
+   { 0x00000041, 0x20580c21, 0x00210058, 0x00000019 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0001000f },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 },
+   { 0x00800031, 0x2b401d29, 0x00ad0e60, 0x0411a005 },
+   { 0x00800031, 0x2be01d29, 0x00ad0e60, 0x0411a006 },
+   { 0x00000020, 0x34001400, 0x00001400, 0x00210058 },
+   { 0x00800040, 0x29c04629, 0x00ad0ac0, 0x00ad0ae0 },
+   { 0x00800040, 0x29e04629, 0x00ad0ae0, 0x00ad0b00 },
+   { 0x00800040, 0x2a004629, 0x00ad0b00, 0x00ad0b20 },
+   { 0x00800040, 0x2a204629, 0x00ad0b20, 0x00ad0b40 },
+   { 0x00800040, 0x29c04529, 0x00ad09c0, 0x00ad0ac1 },
+   { 0x00800040, 0x29e04529, 0x00ad09e0, 0x00ad0ae1 },
+   { 0x00800040, 0x2a004529, 0x00ad0a00, 0x00ad0b01 },
+   { 0x00800040, 0x2a204529, 0x00ad0a20, 0x00ad0b21 },
+   { 0x00800040, 0x29c04529, 0x00ad09c0, 0x00ad0ae1 },
+   { 0x00800040, 0x29e04529, 0x00ad09e0, 0x00ad0b01 },
+   { 0x00800040, 0x2a004529, 0x00ad0a00, 0x00ad0b21 },
+   { 0x00800040, 0x2a204529, 0x00ad0a20, 0x00ad0b41 },
+   { 0x00800040, 0x2a404629, 0x00ad0b60, 0x00ad0b80 },
+   { 0x00800040, 0x2a604629, 0x00ad0b80, 0x00ad0ba0 },
+   { 0x00800040, 0x2a804629, 0x00ad0ba0, 0x00ad0bc0 },
+   { 0x00800040, 0x2aa04629, 0x00ad0bc0, 0x00ad0be0 },
+   { 0x00800040, 0x2a404529, 0x00ad0a40, 0x00ad0b61 },
+   { 0x00800040, 0x2a604529, 0x00ad0a60, 0x00ad0b81 },
+   { 0x00800040, 0x2a804529, 0x00ad0a80, 0x00ad0ba1 },
+   { 0x00800040, 0x2aa04529, 0x00ad0aa0, 0x00ad0bc1 },
+   { 0x00800040, 0x2a404529, 0x00ad0a40, 0x00ad0b81 },
+   { 0x00800040, 0x2a604529, 0x00ad0a60, 0x00ad0ba1 },
+   { 0x00800040, 0x2a804529, 0x00ad0a80, 0x00ad0bc1 },
+   { 0x00800040, 0x2aa04529, 0x00ad0aa0, 0x00ad0be1 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x0000004a },
+   { 0x00800040, 0x29c04629, 0x00ad0ac1, 0x00ad0ae1 },
+   { 0x00800040, 0x29e04629, 0x00ad0ae1, 0x00ad0b01 },
+   { 0x00800040, 0x2a004629, 0x00ad0b01, 0x00ad0b21 },
+   { 0x00800040, 0x2a204629, 0x00ad0b21, 0x00ad0b41 },
+   { 0x00800040, 0x29c04529, 0x00ad09c0, 0x00ad0ac2 },
+   { 0x00800040, 0x29e04529, 0x00ad09e0, 0x00ad0ae2 },
+   { 0x00800040, 0x2a004529, 0x00ad0a00, 0x00ad0b02 },
+   { 0x00800040, 0x2a204529, 0x00ad0a20, 0x00ad0b22 },
+   { 0x00800040, 0x29c04529, 0x00ad09c0, 0x00ad0ae2 },
+   { 0x00800040, 0x29e04529, 0x00ad09e0, 0x00ad0b02 },
+   { 0x00800040, 0x2a004529, 0x00ad0a00, 0x00ad0b22 },
+   { 0x00800040, 0x2a204529, 0x00ad0a20, 0x00ad0b42 },
+   { 0x00800040, 0x2a404629, 0x00ad0b61, 0x00ad0b81 },
+   { 0x00800040, 0x2a604629, 0x00ad0b81, 0x00ad0ba1 },
+   { 0x00800040, 0x2a804629, 0x00ad0ba1, 0x00ad0bc1 },
+   { 0x00800040, 0x2aa04629, 0x00ad0bc1, 0x00ad0be1 },
+   { 0x00800040, 0x2a404529, 0x00ad0a40, 0x00ad0b62 },
+   { 0x00800040, 0x2a604529, 0x00ad0a60, 0x00ad0b82 },
+   { 0x00800040, 0x2a804529, 0x00ad0a80, 0x00ad0ba2 },
+   { 0x00800040, 0x2aa04529, 0x00ad0aa0, 0x00ad0bc2 },
+   { 0x00800040, 0x2a404529, 0x00ad0a40, 0x00ad0b82 },
+   { 0x00800040, 0x2a604529, 0x00ad0a60, 0x00ad0ba2 },
+   { 0x00800040, 0x2a804529, 0x00ad0a80, 0x00ad0bc2 },
+   { 0x00800040, 0x2aa04529, 0x00ad0aa0, 0x00ad0be2 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000031 },
+   { 0x00800040, 0x29c04629, 0x00ad0ac2, 0x00ad0ae2 },
+   { 0x00800040, 0x29e04629, 0x00ad0ae2, 0x00ad0b02 },
+   { 0x00800040, 0x2a004629, 0x00ad0b02, 0x00ad0b22 },
+   { 0x00800040, 0x2a204629, 0x00ad0b22, 0x00ad0b42 },
+   { 0x00800040, 0x29c04529, 0x00ad09c0, 0x00ad0ac3 },
+   { 0x00800040, 0x29e04529, 0x00ad09e0, 0x00ad0ae3 },
+   { 0x00800040, 0x2a004529, 0x00ad0a00, 0x00ad0b03 },
+   { 0x00800040, 0x2a204529, 0x00ad0a20, 0x00ad0b23 },
+   { 0x00800040, 0x29c04529, 0x00ad09c0, 0x00ad0ae3 },
+   { 0x00800040, 0x29e04529, 0x00ad09e0, 0x00ad0b03 },
+   { 0x00800040, 0x2a004529, 0x00ad0a00, 0x00ad0b23 },
+   { 0x00800040, 0x2a204529, 0x00ad0a20, 0x00ad0b43 },
+   { 0x00800040, 0x2a404629, 0x00ad0b62, 0x00ad0b82 },
+   { 0x00800040, 0x2a604629, 0x00ad0b82, 0x00ad0ba2 },
+   { 0x00800040, 0x2a804629, 0x00ad0ba2, 0x00ad0bc2 },
+   { 0x00800040, 0x2aa04629, 0x00ad0bc2, 0x00ad0be2 },
+   { 0x00800040, 0x2a404529, 0x00ad0a40, 0x00ad0b63 },
+   { 0x00800040, 0x2a604529, 0x00ad0a60, 0x00ad0b83 },
+   { 0x00800040, 0x2a804529, 0x00ad0a80, 0x00ad0ba3 },
+   { 0x00800040, 0x2aa04529, 0x00ad0aa0, 0x00ad0bc3 },
+   { 0x00800040, 0x2a404529, 0x00ad0a40, 0x00ad0b83 },
+   { 0x00800040, 0x2a604529, 0x00ad0a60, 0x00ad0ba3 },
+   { 0x00800040, 0x2a804529, 0x00ad0a80, 0x00ad0bc3 },
+   { 0x00800040, 0x2aa04529, 0x00ad0aa0, 0x00ad0be3 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000018 },
+   { 0x00800040, 0x29c04629, 0x00ad0ac3, 0x00ad0ae3 },
+   { 0x00800040, 0x29e04629, 0x00ad0ae3, 0x00ad0b03 },
+   { 0x00800040, 0x2a004629, 0x00ad0b03, 0x00ad0b23 },
+   { 0x00800040, 0x2a204629, 0x00ad0b23, 0x00ad0b43 },
+   { 0x00800040, 0x29c04529, 0x00ad09c0, 0x00ad0ac4 },
+   { 0x00800040, 0x29e04529, 0x00ad09e0, 0x00ad0ae4 },
+   { 0x00800040, 0x2a004529, 0x00ad0a00, 0x00ad0b04 },
+   { 0x00800040, 0x2a204529, 0x00ad0a20, 0x00ad0b24 },
+   { 0x00800040, 0x29c04529, 0x00ad09c0, 0x00ad0ae4 },
+   { 0x00800040, 0x29e04529, 0x00ad09e0, 0x00ad0b04 },
+   { 0x00800040, 0x2a004529, 0x00ad0a00, 0x00ad0b24 },
+   { 0x00800040, 0x2a204529, 0x00ad0a20, 0x00ad0b44 },
+   { 0x00800040, 0x2a404629, 0x00ad0b63, 0x00ad0b83 },
+   { 0x00800040, 0x2a604629, 0x00ad0b83, 0x00ad0ba3 },
+   { 0x00800040, 0x2a804629, 0x00ad0ba3, 0x00ad0bc3 },
+   { 0x00800040, 0x2aa04629, 0x00ad0bc3, 0x00ad0be3 },
+   { 0x00800040, 0x2a404529, 0x00ad0a40, 0x00ad0b64 },
+   { 0x00800040, 0x2a604529, 0x00ad0a60, 0x00ad0b84 },
+   { 0x00800040, 0x2a804529, 0x00ad0a80, 0x00ad0ba4 },
+   { 0x00800040, 0x2aa04529, 0x00ad0aa0, 0x00ad0bc4 },
+   { 0x00800040, 0x2a404529, 0x00ad0a40, 0x00ad0b84 },
+   { 0x00800040, 0x2a604529, 0x00ad0a60, 0x00ad0ba4 },
+   { 0x00800040, 0x2a804529, 0x00ad0a80, 0x00ad0bc4 },
+   { 0x00800040, 0x2aa04529, 0x00ad0aa0, 0x00ad0be4 },
+   { 0x80800008, 0x29c02d29, 0x00b109c0, 0x00020002 },
+   { 0x80800008, 0x29e02d29, 0x00b109e0, 0x00020002 },
+   { 0x80800008, 0x2a002d29, 0x00b10a00, 0x00020002 },
+   { 0x80800008, 0x2a202d29, 0x00b10a20, 0x00020002 },
+   { 0x80800008, 0x2a402d29, 0x00b10a40, 0x00020002 },
+   { 0x80800008, 0x2a602d29, 0x00b10a60, 0x00020002 },
+   { 0x80800008, 0x2a802d29, 0x00b10a80, 0x00020002 },
+   { 0x80800008, 0x2aa02d29, 0x00b10aa0, 0x00020002 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000082 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0007000f },
+   { 0x00800031, 0x2ac01d29, 0x00ad0e60, 0x0414a005 },
+   { 0x00800031, 0x2b601d29, 0x00ad0e60, 0x0414a006 },
+   { 0x00000005, 0x20580c21, 0x00210e60, 0x00000003 },
+   { 0x00000041, 0x20580c21, 0x00210058, 0x00000009 },
+   { 0x00000020, 0x34001400, 0x00001400, 0x00210058 },
+   { 0x80800042, 0x29c04629, 0x00ad0ac0, 0x00ad0ac1 },
+   { 0x80800042, 0x29e04629, 0x00ad0ae0, 0x00ad0ae1 },
+   { 0x80800042, 0x2a004629, 0x00ad0b00, 0x00ad0b01 },
+   { 0x80800042, 0x2a204629, 0x00ad0b20, 0x00ad0b21 },
+   { 0x80800042, 0x2a404629, 0x00ad0b60, 0x00ad0b61 },
+   { 0x80800042, 0x2a604629, 0x00ad0b80, 0x00ad0b81 },
+   { 0x80800042, 0x2a804629, 0x00ad0ba0, 0x00ad0ba1 },
+   { 0x80800042, 0x2aa04629, 0x00ad0bc0, 0x00ad0bc1 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x0000001a },
+   { 0x80800042, 0x29c04629, 0x00ad0ac1, 0x00ad0ac2 },
+   { 0x80800042, 0x29e04629, 0x00ad0ae1, 0x00ad0ae2 },
+   { 0x80800042, 0x2a004629, 0x00ad0b01, 0x00ad0b02 },
+   { 0x80800042, 0x2a204629, 0x00ad0b21, 0x00ad0b22 },
+   { 0x80800042, 0x2a404629, 0x00ad0b61, 0x00ad0b62 },
+   { 0x80800042, 0x2a604629, 0x00ad0b81, 0x00ad0b82 },
+   { 0x80800042, 0x2a804629, 0x00ad0ba1, 0x00ad0ba2 },
+   { 0x80800042, 0x2aa04629, 0x00ad0bc1, 0x00ad0bc2 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000011 },
+   { 0x80800042, 0x29c04629, 0x00ad0ac2, 0x00ad0ac3 },
+   { 0x80800042, 0x29e04629, 0x00ad0ae2, 0x00ad0ae3 },
+   { 0x80800042, 0x2a004629, 0x00ad0b02, 0x00ad0b03 },
+   { 0x80800042, 0x2a204629, 0x00ad0b22, 0x00ad0b23 },
+   { 0x80800042, 0x2a404629, 0x00ad0b62, 0x00ad0b63 },
+   { 0x80800042, 0x2a604629, 0x00ad0b82, 0x00ad0b83 },
+   { 0x80800042, 0x2a804629, 0x00ad0ba2, 0x00ad0ba3 },
+   { 0x80800042, 0x2aa04629, 0x00ad0bc2, 0x00ad0bc3 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000008 },
+   { 0x80800042, 0x29c04629, 0x00ad0ac3, 0x00ad0ac4 },
+   { 0x80800042, 0x29e04629, 0x00ad0ae3, 0x00ad0ae4 },
+   { 0x80800042, 0x2a004629, 0x00ad0b03, 0x00ad0b04 },
+   { 0x80800042, 0x2a204629, 0x00ad0b23, 0x00ad0b24 },
+   { 0x80800042, 0x2a404629, 0x00ad0b63, 0x00ad0b64 },
+   { 0x80800042, 0x2a604629, 0x00ad0b83, 0x00ad0b84 },
+   { 0x80800042, 0x2a804629, 0x00ad0ba3, 0x00ad0ba4 },
+   { 0x80800042, 0x2aa04629, 0x00ad0bc3, 0x00ad0bc4 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000058 },
+   { 0x01000005, 0x20002d3c, 0x00210038, 0x00020002 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x0000002d },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0007000f },
+   { 0x00800031, 0x2ac01d29, 0x00ad0e60, 0x0414a005 },
+   { 0x00800031, 0x2b601d29, 0x00ad0e60, 0x0414a006 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0000000f },
+   { 0x00800031, 0x2b401d29, 0x00ad0e60, 0x0411a005 },
+   { 0x00800031, 0x2be01d29, 0x00ad0e60, 0x0411a006 },
+   { 0x00000005, 0x20580c21, 0x00210e60, 0x00000003 },
+   { 0x00000041, 0x20580c21, 0x00210058, 0x00000009 },
+   { 0x00000020, 0x34001400, 0x00001400, 0x00210058 },
+   { 0x80800042, 0x29c04629, 0x00ad0ac0, 0x00ad0ae0 },
+   { 0x80800042, 0x29e04629, 0x00ad0ae0, 0x00ad0b00 },
+   { 0x80800042, 0x2a004629, 0x00ad0b00, 0x00ad0b20 },
+   { 0x80800042, 0x2a204629, 0x00ad0b20, 0x00ad0b40 },
+   { 0x80800042, 0x2a404629, 0x00ad0b60, 0x00ad0b80 },
+   { 0x80800042, 0x2a604629, 0x00ad0b80, 0x00ad0ba0 },
+   { 0x80800042, 0x2a804629, 0x00ad0ba0, 0x00ad0bc0 },
+   { 0x80800042, 0x2aa04629, 0x00ad0bc0, 0x00ad0be0 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x0000001a },
+   { 0x80800042, 0x29c04629, 0x00ad0ac1, 0x00ad0ae1 },
+   { 0x80800042, 0x29e04629, 0x00ad0ae1, 0x00ad0b01 },
+   { 0x80800042, 0x2a004629, 0x00ad0b01, 0x00ad0b21 },
+   { 0x80800042, 0x2a204629, 0x00ad0b21, 0x00ad0b41 },
+   { 0x80800042, 0x2a404629, 0x00ad0b61, 0x00ad0b81 },
+   { 0x80800042, 0x2a604629, 0x00ad0b81, 0x00ad0ba1 },
+   { 0x80800042, 0x2a804629, 0x00ad0ba1, 0x00ad0bc1 },
+   { 0x80800042, 0x2aa04629, 0x00ad0bc1, 0x00ad0be1 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000011 },
+   { 0x80800042, 0x29c04629, 0x00ad0ac2, 0x00ad0ae2 },
+   { 0x80800042, 0x29e04629, 0x00ad0ae2, 0x00ad0b02 },
+   { 0x80800042, 0x2a004629, 0x00ad0b02, 0x00ad0b22 },
+   { 0x80800042, 0x2a204629, 0x00ad0b22, 0x00ad0b42 },
+   { 0x80800042, 0x2a404629, 0x00ad0b62, 0x00ad0b82 },
+   { 0x80800042, 0x2a604629, 0x00ad0b82, 0x00ad0ba2 },
+   { 0x80800042, 0x2a804629, 0x00ad0ba2, 0x00ad0bc2 },
+   { 0x80800042, 0x2aa04629, 0x00ad0bc2, 0x00ad0be2 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000008 },
+   { 0x80800042, 0x29c04629, 0x00ad0ac3, 0x00ad0ac3 },
+   { 0x80800042, 0x29e04629, 0x00ad0ae3, 0x00ad0ae3 },
+   { 0x80800042, 0x2a004629, 0x00ad0b03, 0x00ad0b03 },
+   { 0x80800042, 0x2a204629, 0x00ad0b23, 0x00ad0b23 },
+   { 0x80800042, 0x2a404629, 0x00ad0b63, 0x00ad0b63 },
+   { 0x80800042, 0x2a604629, 0x00ad0b83, 0x00ad0b83 },
+   { 0x80800042, 0x2a804629, 0x00ad0ba3, 0x00ad0ba3 },
+   { 0x80800042, 0x2aa04629, 0x00ad0bc3, 0x00ad0bc3 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000029 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0007000f },
+   { 0x00800031, 0x2ac01d29, 0x00ad0e60, 0x0414a005 },
+   { 0x00800031, 0x2b601d29, 0x00ad0e60, 0x0414a006 },
+   { 0x00000005, 0x20580c21, 0x00210e60, 0x00000003 },
+   { 0x00000041, 0x20580c21, 0x00210058, 0x00000009 },
+   { 0x00000020, 0x34001400, 0x00001400, 0x00210058 },
+   { 0x00800001, 0x29c00229, 0x00ad0ac0, 0x00000000 },
+   { 0x00800001, 0x29e00229, 0x00ad0ae0, 0x00000000 },
+   { 0x00800001, 0x2a000229, 0x00ad0b00, 0x00000000 },
+   { 0x00800001, 0x2a200229, 0x00ad0b20, 0x00000000 },
+   { 0x00800001, 0x2a400229, 0x00ad0b60, 0x00000000 },
+   { 0x00800001, 0x2a600229, 0x00ad0b80, 0x00000000 },
+   { 0x00800001, 0x2a800229, 0x00ad0ba0, 0x00000000 },
+   { 0x00800001, 0x2aa00229, 0x00ad0bc0, 0x00000000 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x0000001a },
+   { 0x00800001, 0x29c00229, 0x00ad0ac1, 0x00000000 },
+   { 0x00800001, 0x29e00229, 0x00ad0ae1, 0x00000000 },
+   { 0x00800001, 0x2a000229, 0x00ad0b01, 0x00000000 },
+   { 0x00800001, 0x2a200229, 0x00ad0b21, 0x00000000 },
+   { 0x00800001, 0x2a400229, 0x00ad0b61, 0x00000000 },
+   { 0x00800001, 0x2a600229, 0x00ad0b81, 0x00000000 },
+   { 0x00800001, 0x2a800229, 0x00ad0ba1, 0x00000000 },
+   { 0x00800001, 0x2aa00229, 0x00ad0bc1, 0x00000000 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000011 },
+   { 0x00800001, 0x29c00229, 0x00ad0ac2, 0x00000000 },
+   { 0x00800001, 0x29e00229, 0x00ad0ae2, 0x00000000 },
+   { 0x00800001, 0x2a000229, 0x00ad0b02, 0x00000000 },
+   { 0x00800001, 0x2a200229, 0x00ad0b22, 0x00000000 },
+   { 0x00800001, 0x2a400229, 0x00ad0b62, 0x00000000 },
+   { 0x00800001, 0x2a600229, 0x00ad0b82, 0x00000000 },
+   { 0x00800001, 0x2a800229, 0x00ad0ba2, 0x00000000 },
+   { 0x00800001, 0x2aa00229, 0x00ad0bc2, 0x00000000 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000008 },
+   { 0x00800001, 0x29c00229, 0x00ad0ac3, 0x00000000 },
+   { 0x00800001, 0x29e00229, 0x00ad0ae3, 0x00000000 },
+   { 0x00800001, 0x2a000229, 0x00ad0b03, 0x00000000 },
+   { 0x00800001, 0x2a200229, 0x00ad0b23, 0x00000000 },
+   { 0x00800001, 0x2a400229, 0x00ad0b63, 0x00000000 },
+   { 0x00800001, 0x2a600229, 0x00ad0b83, 0x00000000 },
+   { 0x00800001, 0x2a800229, 0x00ad0ba3, 0x00000000 },
+   { 0x00800001, 0x2aa00229, 0x00ad0bc3, 0x00000000 },
+   { 0x00600001, 0x25900129, 0x008d09c0, 0x00000000 },
+   { 0x00600001, 0x25b00129, 0x008d09e0, 0x00000000 },
+   { 0x00600001, 0x25d00129, 0x008d0a00, 0x00000000 },
+   { 0x00600001, 0x25f00129, 0x008d0a20, 0x00000000 },
+   { 0x00600001, 0x26100129, 0x008d0a40, 0x00000000 },
+   { 0x00600001, 0x26300129, 0x008d0a60, 0x00000000 },
+   { 0x00600001, 0x26500129, 0x008d0a80, 0x00000000 },
+   { 0x00600001, 0x26700129, 0x008d0aa0, 0x00000000 },
+   { 0x00600001, 0x20200021, 0x008d0980, 0x00000000 },
+   { 0x00800001, 0x458101f1, 0x00000000, 0x00000000 },
+   { 0x00800001, 0x45a101f1, 0x00000000, 0x00000000 },
+   { 0x00800001, 0x45c101f1, 0x00000000, 0x00000000 },
+   { 0x00800001, 0x45e101f1, 0x00000000, 0x00000000 },
+   { 0x00800001, 0x460101f1, 0x00000000, 0x00000000 },
+   { 0x00800001, 0x462101f1, 0x00000000, 0x00000000 },
+   { 0x00800001, 0x464101f1, 0x00000000, 0x00000000 },
+   { 0x00800001, 0x466101f1, 0x00000000, 0x00000000 },
+   { 0x02000005, 0x20002e3c, 0x0021003e, 0x00010001 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x00000011 },
+   { 0x00800040, 0x238045ad, 0x00b10060, 0x00b20380 },
+   { 0x00800040, 0x23a045ad, 0x00b10080, 0x00b203a0 },
+   { 0x00800040, 0x23c045ad, 0x00b100a0, 0x00b203c0 },
+   { 0x00800040, 0x23e045ad, 0x00b100c0, 0x00b203e0 },
+   { 0x00800040, 0x240045ad, 0x00b100e0, 0x00b20400 },
+   { 0x00800040, 0x242045ad, 0x00b10100, 0x00b20420 },
+   { 0x00800040, 0x244045ad, 0x00b10120, 0x00b20440 },
+   { 0x00800040, 0x246045ad, 0x00b10140, 0x00b20460 },
+   { 0x00800040, 0x248045ad, 0x00b10160, 0x00b20480 },
+   { 0x00800040, 0x24a045ad, 0x00b10180, 0x00b204a0 },
+   { 0x00800040, 0x24c045ad, 0x00b101a0, 0x00b204c0 },
+   { 0x00800040, 0x24e045ad, 0x00b101c0, 0x00b204e0 },
+   { 0x00800040, 0x250045ad, 0x00b101e0, 0x00b20500 },
+   { 0x00800040, 0x252045ad, 0x00b10200, 0x00b20520 },
+   { 0x00800040, 0x254045ad, 0x00b10220, 0x00b20540 },
+   { 0x00800040, 0x256045ad, 0x00b10240, 0x00b20560 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000010 },
+   { 0x00800040, 0x238045ad, 0x00b10060, 0x00b20380 },
+   { 0x00800040, 0x23a045ad, 0x00b10160, 0x00b203a0 },
+   { 0x00800040, 0x23c045ad, 0x00b10080, 0x00b203c0 },
+   { 0x00800040, 0x23e045ad, 0x00b10180, 0x00b203e0 },
+   { 0x00800040, 0x240045ad, 0x00b100a0, 0x00b20400 },
+   { 0x00800040, 0x242045ad, 0x00b101a0, 0x00b20420 },
+   { 0x00800040, 0x244045ad, 0x00b100c0, 0x00b20440 },
+   { 0x00800040, 0x246045ad, 0x00b101c0, 0x00b20460 },
+   { 0x00800040, 0x248045ad, 0x00b100e0, 0x00b20480 },
+   { 0x00800040, 0x24a045ad, 0x00b101e0, 0x00b204a0 },
+   { 0x00800040, 0x24c045ad, 0x00b10100, 0x00b204c0 },
+   { 0x00800040, 0x24e045ad, 0x00b10200, 0x00b204e0 },
+   { 0x00800040, 0x250045ad, 0x00b10120, 0x00b20500 },
+   { 0x00800040, 0x252045ad, 0x00b10220, 0x00b20520 },
+   { 0x00800040, 0x254045ad, 0x00b10140, 0x00b20540 },
+   { 0x00800040, 0x256045ad, 0x00b10240, 0x00b20560 },
+   { 0x00000001, 0x20280061, 0x00000000, 0x000f000f },
+   { 0x80800001, 0x438001b1, 0x00b10380, 0x00000000 },
+   { 0x80800001, 0x43a001b1, 0x00b103a0, 0x00000000 },
+   { 0x80800001, 0x43c001b1, 0x00b103c0, 0x00000000 },
+   { 0x80800001, 0x43e001b1, 0x00b103e0, 0x00000000 },
+   { 0x80800001, 0x440001b1, 0x00b10400, 0x00000000 },
+   { 0x80800001, 0x442001b1, 0x00b10420, 0x00000000 },
+   { 0x80800001, 0x444001b1, 0x00b10440, 0x00000000 },
+   { 0x80800001, 0x446001b1, 0x00b10460, 0x00000000 },
+   { 0x80800001, 0x448001b1, 0x00b10480, 0x00000000 },
+   { 0x80800001, 0x44a001b1, 0x00b104a0, 0x00000000 },
+   { 0x80800001, 0x44c001b1, 0x00b104c0, 0x00000000 },
+   { 0x80800001, 0x44e001b1, 0x00b104e0, 0x00000000 },
+   { 0x80800001, 0x450001b1, 0x00b10500, 0x00000000 },
+   { 0x80800001, 0x452001b1, 0x00b10520, 0x00000000 },
+   { 0x80800001, 0x454001b1, 0x00b10540, 0x00000000 },
+   { 0x80800001, 0x456001b1, 0x00b10560, 0x00000000 },
+   { 0x00800001, 0x20200232, 0x00b20380, 0x00000000 },
+   { 0x00800001, 0x20300232, 0x00b203a0, 0x00000000 },
+   { 0x00800001, 0x20400232, 0x00b203c0, 0x00000000 },
+   { 0x00800001, 0x20500232, 0x00b203e0, 0x00000000 },
+   { 0x00800001, 0x20600232, 0x00b20400, 0x00000000 },
+   { 0x00800001, 0x20700232, 0x00b20420, 0x00000000 },
+   { 0x00800001, 0x20800232, 0x00b20440, 0x00000000 },
+   { 0x00800001, 0x20900232, 0x00b20460, 0x00000000 },
+   { 0x00800001, 0x20a00232, 0x00b20480, 0x00000000 },
+   { 0x00800001, 0x20b00232, 0x00b204a0, 0x00000000 },
+   { 0x00800001, 0x20c00232, 0x00b204c0, 0x00000000 },
+   { 0x00800001, 0x20d00232, 0x00b204e0, 0x00000000 },
+   { 0x00800001, 0x20e00232, 0x00b20500, 0x00000000 },
+   { 0x00800001, 0x20f00232, 0x00b20520, 0x00000000 },
+   { 0x00800001, 0x21000232, 0x00b20540, 0x00000000 },
+   { 0x00800001, 0x21100232, 0x00b20560, 0x00000000 },
+   { 0x00800031, 0x24001d28, 0x008d0020, 0x05902000 },
+   { 0x00000001, 0x20280061, 0x00000000, 0x00070007 },
+   { 0x00200008, 0x20201c21, 0x00450020, 0x00000001 },
+   { 0x00800040, 0x258025a9, 0x00b10260, 0x00b10580 },
+   { 0x00800040, 0x25a025a9, 0x00b10280, 0x00b105a0 },
+   { 0x00800040, 0x25c025a9, 0x00b102a0, 0x00b105c0 },
+   { 0x00800040, 0x25e025a9, 0x00b102c0, 0x00b105e0 },
+   { 0x80800001, 0x45800131, 0x00b10580, 0x00000000 },
+   { 0x80800001, 0x45a00131, 0x00b105a0, 0x00000000 },
+   { 0x80800001, 0x45c00131, 0x00b105c0, 0x00000000 },
+   { 0x80800001, 0x45e00131, 0x00b105e0, 0x00000000 },
+   { 0x00800001, 0x20200232, 0x00b20580, 0x00000000 },
+   { 0x00800001, 0x20300232, 0x00b205a0, 0x00000000 },
+   { 0x00800001, 0x20400232, 0x00b205c0, 0x00000000 },
+   { 0x00800001, 0x20500232, 0x00b205e0, 0x00000000 },
+   { 0x00800031, 0x24001d28, 0x008d0020, 0x05302001 },
+   { 0x00800040, 0x260025a9, 0x00b102e0, 0x00b10600 },
+   { 0x00800040, 0x262025a9, 0x00b10300, 0x00b10620 },
+   { 0x00800040, 0x264025a9, 0x00b10320, 0x00b10640 },
+   { 0x00800040, 0x266025a9, 0x00b10340, 0x00b10660 },
+   { 0x80800001, 0x46000131, 0x00b10600, 0x00000000 },
+   { 0x80800001, 0x46200131, 0x00b10620, 0x00000000 },
+   { 0x80800001, 0x46400131, 0x00b10640, 0x00000000 },
+   { 0x80800001, 0x46600131, 0x00b10660, 0x00000000 },
+   { 0x00800001, 0x20200232, 0x00b20600, 0x00000000 },
+   { 0x00800001, 0x20300232, 0x00b20620, 0x00000000 },
+   { 0x00800001, 0x20400232, 0x00b20640, 0x00000000 },
+   { 0x00800001, 0x20500232, 0x00b20660, 0x00000000 },
+   { 0x00800031, 0x24001d28, 0x008d0020, 0x05302002 },
+   { 0x00800031, 0x24001d28, 0x008d0000, 0x87100000 },
diff --git a/src/xvmc/shader/mc/field_forward_igd.g4a b/src/xvmc/shader/mc/field_forward_igd.g4a
new file mode 100644
index 0000000..fdd4925
--- /dev/null
+++ b/src/xvmc/shader/mc/field_forward_igd.g4a
@@ -0,0 +1,121 @@
+/*
+ * Copyright © 2008 Intel Corporation
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice (including the next
+ * paragraph) shall be included in all copies or substantial portions of the
+ * Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
+ * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+ * SOFTWARE.
+ *
+ * Author:
+ *    Zou Nan hai <nanhai.zou at intel.com>
+ *    Zhang Hua jun <huajun.zhang at intel.com>
+ *    Xing Dong sheng <dongsheng.xing at intel.com>
+ *
+ */
+mov (8) g76.0<1>UD g1.0<8,8,1>UD {align1};
+//mov (8) g77.0<1>UD g2.0<8,8,1>UD {align1};
+
+include(`block_clear.g4i')
+mov (8) g115.0<1>UD g1.0<8,8,1>UD {align1};
+mov (8) g116.0<1>UD g1.0<8,8,1>UD {align1};
+/*Y buffer*/
+mov(1) g1.8<1>UD 0x007000fUD  { align1 };
+asr (2) g115.14<1>W g1.14<2,2,1>W 1UW {align1};
+add (2) g115.0<1>UD g116.0<2,2,1>UD g115.14<2,2,1>W {align1};
+and (1) g115.4<1>UD g115.4<1,1,1>UD 0xFFFFFFFEUD {align1};
+mov (1) g115.8<1>UD 0x1fUD  { align1 }; //read 1 line, 32 columns.
+/*first vector*/
+and.nz (1) null g1.31<1,1,1>UB 0x1UW {align1};
+(f0) add (1) g115.4<1>UD g115.4<1,1,1>UD 1UD {align1};
+define(`surface',`4')
+define(`mv1',`g1.14')
+define(`mv2',`g1.16')
+include(`motion_field_y_igd.g4i')
+mov (8) g28.0<1>UD g96.0<8,8,1>UD {align1};
+mov (8) g30.0<1>UD g97.0<8,8,1>UD {align1};
+mov (8) g32.0<1>UD g98.0<8,8,1>UD {align1};
+mov (8) g34.0<1>UD g99.0<8,8,1>UD {align1};
+mov (8) g36.0<1>UD g100.0<8,8,1>UD {align1};
+mov (8) g38.0<1>UD g101.0<8,8,1>UD {align1};
+mov (8) g40.0<1>UD g102.0<8,8,1>UD {align1};
+mov (8) g42.0<1>UD g103.0<8,8,1>UD {align1};
+/*second vector*/
+asr (2) g115.14<1>W g1.22<2,2,1>W 1UW {align1};
+add (2) g115.0<1>UD g116.0<2,2,1>UD g115.14<2,2,1>W {align1};
+and (1) g115.4<1>UD g115.4<1,1,1>UD 0xFFFFFFFEUD {align1};
+mov (1) g115.8<1>UD 0x1fUD { align1 };              //read 1 line, 32 columns.
+
+and.nz (1) null g1.31<1,1,1>UB 0x4UW {align1};
+(f0) add (1) g115.4<1>UD g115.4<1,1,1>UD 1UD {align1};
+define(`surface',`4')
+define(`mv1',`g1.22')
+define(`mv2',`g1.24')
+include(`motion_field_y_igd.g4i')
+mov (8) g29.0<1>UD g96.0<8,8,1>UD {align1};
+mov (8) g31.0<1>UD g97.0<8,8,1>UD {align1};
+mov (8) g33.0<1>UD g98.0<8,8,1>UD {align1};
+mov (8) g35.0<1>UD g99.0<8,8,1>UD {align1};
+mov (8) g37.0<1>UD g100.0<8,8,1>UD {align1};
+mov (8) g39.0<1>UD g101.0<8,8,1>UD {align1};
+mov (8) g41.0<1>UD g102.0<8,8,1>UD {align1};
+mov (8) g43.0<1>UD g103.0<8,8,1>UD {align1};
+/*U buffer,  V buffer*/
+/*first vector*/
+mov(1) g115.8<1>UD 0x007000fUD  { align1 };
+asr (2) g115.14<1>W g1.14<2,2,1>W 2UW {align1};
+asr (2) g115.0<1>D g116.0<2,2,1>D 1D {align1};
+add (2) g115.0<1>D g115.0<2,2,1>D g115.14<2,2,1>W {align1};
+and (1) g115.4<1>UD g115.4<1,1,1>UD 0xFFFFFFFEUD {align1};
+
+and.nz (1) null g1.31<1,1,1>UB 0x1UW {align1};
+(f0) add (1) g115.4<1>UD g115.4<1,1,1>UD 1UD {align1};
+define(`surface_u',`5')
+define(`surface_v',`6')
+define(`mv1',`g1.14')
+define(`mv2',`g1.16')
+include(`motion_field_uv_igd.g4i')
+mov (8) g44.0<1>UW g78.0<8,8,1>UW {align1};
+mov (8) g45.0<1>UW g79.0<8,8,1>UW {align1};
+mov (8) g46.0<1>UW g80.0<8,8,1>UW {align1};
+mov (8) g47.0<1>UW g81.0<8,8,1>UW {align1};
+mov (8) g48.0<1>UW g82.0<8,8,1>UW {align1};
+mov (8) g49.0<1>UW g83.0<8,8,1>UW {align1};
+mov (8) g50.0<1>UW g84.0<8,8,1>UW {align1};
+mov (8) g51.0<1>UW g85.0<8,8,1>UW {align1};
+/*second vector*/
+asr (2) g115.14<1>W g1.22<2,2,1>W 2UW {align1};
+asr (2) g115.0<1>D g116.0<2,2,1>D 1D {align1};
+add (2) g115.0<1>D g115.0<2,2,1>D g115.14<2,2,1>W {align1};
+and (1) g115.4<1>UD g115.4<1,1,1>UD 0xFFFFFFFEUD {align1};
+
+and.nz (1) null g1.31<1,1,1>UB 0x4UW {align1};
+(f0) add (1) g115.4<1>UD g115.4<1,1,1>UD 1UD {align1};
+define(`mv1',`g1.22')
+define(`mv2',`g1.24')
+include(`motion_field_uv_igd.g4i')
+mov (8) g44.16<1>UW g78.0<8,8,1>UW {align1};
+mov (8) g45.16<1>UW g79.0<8,8,1>UW {align1};
+mov (8) g46.16<1>UW g80.0<8,8,1>UW {align1};
+mov (8) g47.16<1>UW g81.0<8,8,1>UW {align1};
+mov (8) g48.16<1>UW g82.0<8,8,1>UW {align1};
+mov (8) g49.16<1>UW g83.0<8,8,1>UW {align1};
+mov (8) g50.16<1>UW g84.0<8,8,1>UW {align1};
+mov (8) g51.16<1>UW g85.0<8,8,1>UW {align1};
+
+include(`addidct.g4i')
+//send (16) 0 acc0<1>UW g0<8,8,1>UW 
+//	thread_spawner(0, 0, 0) mlen 1 rlen 0 { align1 EOT};
diff --git a/src/xvmc/shader/mc/field_forward_igd.g4b b/src/xvmc/shader/mc/field_forward_igd.g4b
new file mode 100644
index 0000000..6d1dee5
--- /dev/null
+++ b/src/xvmc/shader/mc/field_forward_igd.g4b
@@ -0,0 +1,668 @@
+   { 0x00600001, 0x29800021, 0x008d0020, 0x00000000 },
+   { 0x02000005, 0x20000c3c, 0x00210040, 0x00000001 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x00000030 },
+   { 0x00000040, 0x20480c21, 0x00210988, 0x00000000 },
+   { 0x00800031, 0x20601c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x20801c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x20a01c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x20c01c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x20e01c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x21001c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x21201c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x21401c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x21601c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x21801c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x21a01c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x21c01c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x21e01c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x22001c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x22201c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x22401c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x22601c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x22801c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x22a01c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x22c01c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x22e01c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x23001c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x23201c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x23401c21, 0x00b10040, 0x04110203 },
+   { 0x02000005, 0x20002d3c, 0x0021098c, 0x00200020 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x00000008 },
+   { 0x00600001, 0x20600169, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x20800169, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x20a00169, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x20c00169, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x20e00169, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x21000169, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x21200169, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x21400169, 0x00000000, 0x00000000 },
+   { 0x02000005, 0x20002d3c, 0x0021002c, 0x00100010 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x00000008 },
+   { 0x00600001, 0x20700169, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x20900169, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x20b00169, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x20d00169, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x20f00169, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x21100169, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x21300169, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x21500169, 0x00000000, 0x00000000 },
+   { 0x02000005, 0x20002d3c, 0x0021002c, 0x00080008 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x00000008 },
+   { 0x00600001, 0x21600169, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x21800169, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x21a00169, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x21c00169, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x21e00169, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x22000169, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x22200169, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x22400169, 0x00000000, 0x00000000 },
+   { 0x02000005, 0x20002d3c, 0x0021002c, 0x00040004 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x00000008 },
+   { 0x00600001, 0x21700169, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x21900169, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x21b00169, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x21d00169, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x21f00169, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x22100169, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x22300169, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x22500169, 0x00000000, 0x00000000 },
+   { 0x02000005, 0x20002d3c, 0x0021002c, 0x00020002 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x00000004 },
+   { 0x00800001, 0x22600169, 0x00000000, 0x00000000 },
+   { 0x00800001, 0x22800169, 0x00000000, 0x00000000 },
+   { 0x00800001, 0x22a00169, 0x00000000, 0x00000000 },
+   { 0x00800001, 0x22c00169, 0x00000000, 0x00000000 },
+   { 0x02000005, 0x20002d3c, 0x0021002c, 0x00010001 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x00000004 },
+   { 0x00800001, 0x22e00169, 0x00000000, 0x00000000 },
+   { 0x00800001, 0x23000169, 0x00000000, 0x00000000 },
+   { 0x00800001, 0x23200169, 0x00000000, 0x00000000 },
+   { 0x00800001, 0x23400169, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x2e600021, 0x008d0020, 0x00000000 },
+   { 0x00600001, 0x2e800021, 0x008d0020, 0x00000000 },
+   { 0x00000001, 0x20280061, 0x00000000, 0x0007000f },
+   { 0x0020000c, 0x2e6e2dad, 0x0045002e, 0x00010001 },
+   { 0x00200040, 0x2e603421, 0x00450e80, 0x00450e6e },
+   { 0x00000005, 0x2e640c21, 0x00210e64, 0xfffffffe },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
+   { 0x02000005, 0x20002e3c, 0x0021003f, 0x00010001 },
+   { 0x00010040, 0x2e640c21, 0x00210e64, 0x00000001 },
+   { 0x01000005, 0x20002d3c, 0x0021002e, 0x00010001 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x00000045 },
+   { 0x01000005, 0x20002d3c, 0x00210030, 0x00010001 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x0000002f },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
+   { 0x00800031, 0x29c01d29, 0x008d0e60, 0x0411a004 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00800031, 0x2a001d29, 0x008d0e60, 0x0411a004 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00800031, 0x2a401d29, 0x008d0e60, 0x0411a004 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00800031, 0x2a801d29, 0x008d0e60, 0x0411a004 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0007001f },
+   { 0x00800031, 0x2ac01d29, 0x008d0e60, 0x0418a004 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
+   { 0x00800031, 0x2bc01d29, 0x008d0e60, 0x0411a004 },
+   { 0x00800040, 0x2c004629, 0x00b109c0, 0x00b10a00 },
+   { 0x00800040, 0x2c204629, 0x00b10a00, 0x00b10a40 },
+   { 0x00800040, 0x2c404629, 0x00b10a40, 0x00b10a80 },
+   { 0x00800040, 0x2c604629, 0x00b10a80, 0x00b10ac0 },
+   { 0x00800040, 0x2c804629, 0x00b10ac0, 0x00b10b00 },
+   { 0x00800040, 0x2ca04629, 0x00b10b00, 0x00b10b40 },
+   { 0x00800040, 0x2cc04629, 0x00b10b40, 0x00b10b80 },
+   { 0x00800040, 0x2ce04629, 0x00b10b80, 0x00b10bc0 },
+   { 0x00800040, 0x2c004529, 0x00b10c00, 0x00b109c1 },
+   { 0x00800040, 0x2c204529, 0x00b10c20, 0x00b10a01 },
+   { 0x00800040, 0x2c404529, 0x00b10c40, 0x00b10a41 },
+   { 0x00800040, 0x2c604529, 0x00b10c60, 0x00b10a81 },
+   { 0x00800040, 0x2c804529, 0x00b10c80, 0x00b10ac1 },
+   { 0x00800040, 0x2ca04529, 0x00b10ca0, 0x00b10b01 },
+   { 0x00800040, 0x2cc04529, 0x00b10cc0, 0x00b10b41 },
+   { 0x00800040, 0x2ce04529, 0x00b10ce0, 0x00b10b81 },
+   { 0x00800040, 0x2c004529, 0x00b10c00, 0x00b10a01 },
+   { 0x00800040, 0x2c204529, 0x00b10c20, 0x00b10a41 },
+   { 0x00800040, 0x2c404529, 0x00b10c40, 0x00b10a81 },
+   { 0x00800040, 0x2c604529, 0x00b10c60, 0x00b10ac1 },
+   { 0x00800040, 0x2c804529, 0x00b10c80, 0x00b10b01 },
+   { 0x00800040, 0x2ca04529, 0x00b10ca0, 0x00b10b41 },
+   { 0x00800040, 0x2cc04529, 0x00b10cc0, 0x00b10b81 },
+   { 0x00800040, 0x2ce04529, 0x00b10ce0, 0x00b10bc1 },
+   { 0x00800008, 0x2c002d29, 0x00b10c00, 0x00020002 },
+   { 0x00800008, 0x2c202d29, 0x00b10c20, 0x00020002 },
+   { 0x00800008, 0x2c402d29, 0x00b10c40, 0x00020002 },
+   { 0x00800008, 0x2c602d29, 0x00b10c60, 0x00020002 },
+   { 0x00800008, 0x2c802d29, 0x00b10c80, 0x00020002 },
+   { 0x00800008, 0x2ca02d29, 0x00b10ca0, 0x00020002 },
+   { 0x00800008, 0x2cc02d29, 0x00b10cc0, 0x00020002 },
+   { 0x00800008, 0x2ce02d29, 0x00b10ce0, 0x00020002 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000040 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
+   { 0x00800031, 0x29c01d29, 0x008d0e60, 0x0411a004 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00800031, 0x2a001d29, 0x008d0e60, 0x0411a004 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00800031, 0x2a401d29, 0x008d0e60, 0x0411a004 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00800031, 0x2a801d29, 0x008d0e60, 0x0411a004 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0007001f },
+   { 0x00800031, 0x2ac01d29, 0x008d0e60, 0x0418a004 },
+   { 0x80800042, 0x2c004629, 0x00b109c0, 0x00b109c1 },
+   { 0x80800042, 0x2c204629, 0x00b10a00, 0x00b10a01 },
+   { 0x80800042, 0x2c404629, 0x00b10a40, 0x00b10a41 },
+   { 0x80800042, 0x2c604629, 0x00b10a80, 0x00b10a81 },
+   { 0x80800042, 0x2c804629, 0x00b10ac0, 0x00b10ac1 },
+   { 0x80800042, 0x2ca04629, 0x00b10b00, 0x00b10b01 },
+   { 0x80800042, 0x2cc04629, 0x00b10b40, 0x00b10b41 },
+   { 0x80800042, 0x2ce04629, 0x00b10b80, 0x00b10b81 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x0000002c },
+   { 0x01000005, 0x20002d3c, 0x00210030, 0x00010001 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x00000017 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
+   { 0x00800031, 0x29c01d29, 0x008d0e60, 0x0411a004 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00800031, 0x2a001d29, 0x008d0e60, 0x0411a004 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00800031, 0x2a401d29, 0x008d0e60, 0x0411a004 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00800031, 0x2a801d29, 0x008d0e60, 0x0411a004 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0007001f },
+   { 0x00800031, 0x2ac01d29, 0x008d0e60, 0x0418a004 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
+   { 0x00800031, 0x2bc01d29, 0x008d0e60, 0x0411a004 },
+   { 0x80800042, 0x2c004629, 0x00b109c0, 0x00b10a00 },
+   { 0x80800042, 0x2c204629, 0x00b10a00, 0x00b10a40 },
+   { 0x80800042, 0x2c404629, 0x00b10a40, 0x00b10a80 },
+   { 0x80800042, 0x2c604629, 0x00b10a80, 0x00b10ac0 },
+   { 0x80800042, 0x2c804629, 0x00b10ac0, 0x00b10b00 },
+   { 0x80800042, 0x2ca04629, 0x00b10b00, 0x00b10b40 },
+   { 0x80800042, 0x2cc04629, 0x00b10b40, 0x00b10b80 },
+   { 0x80800042, 0x2ce04629, 0x00b10b80, 0x00b10bc0 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000013 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
+   { 0x00800031, 0x29c01d29, 0x008d0e60, 0x0411a004 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00800031, 0x2a001d29, 0x008d0e60, 0x0411a004 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00800031, 0x2a401d29, 0x008d0e60, 0x0411a004 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00800031, 0x2a801d29, 0x008d0e60, 0x0411a004 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0007001f },
+   { 0x00800031, 0x2ac01d29, 0x008d0e60, 0x0418a004 },
+   { 0x00800001, 0x2c000229, 0x00b109c0, 0x00000000 },
+   { 0x00800001, 0x2c200229, 0x00b10a00, 0x00000000 },
+   { 0x00800001, 0x2c400229, 0x00b10a40, 0x00000000 },
+   { 0x00800001, 0x2c600229, 0x00b10a80, 0x00000000 },
+   { 0x00800001, 0x2c800229, 0x00b10ac0, 0x00000000 },
+   { 0x00800001, 0x2ca00229, 0x00b10b00, 0x00000000 },
+   { 0x00800001, 0x2cc00229, 0x00b10b40, 0x00000000 },
+   { 0x00800001, 0x2ce00229, 0x00b10b80, 0x00000000 },
+   { 0x00600001, 0x23800021, 0x008d0c00, 0x00000000 },
+   { 0x00600001, 0x23c00021, 0x008d0c20, 0x00000000 },
+   { 0x00600001, 0x24000021, 0x008d0c40, 0x00000000 },
+   { 0x00600001, 0x24400021, 0x008d0c60, 0x00000000 },
+   { 0x00600001, 0x24800021, 0x008d0c80, 0x00000000 },
+   { 0x00600001, 0x24c00021, 0x008d0ca0, 0x00000000 },
+   { 0x00600001, 0x25000021, 0x008d0cc0, 0x00000000 },
+   { 0x00600001, 0x25400021, 0x008d0ce0, 0x00000000 },
+   { 0x0020000c, 0x2e6e2dad, 0x00450036, 0x00010001 },
+   { 0x00200040, 0x2e603421, 0x00450e80, 0x00450e6e },
+   { 0x00000005, 0x2e640c21, 0x00210e64, 0xfffffffe },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
+   { 0x02000005, 0x20002e3c, 0x0021003f, 0x00040004 },
+   { 0x00010040, 0x2e640c21, 0x00210e64, 0x00000001 },
+   { 0x01000005, 0x20002d3c, 0x00210036, 0x00010001 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x00000045 },
+   { 0x01000005, 0x20002d3c, 0x00210038, 0x00010001 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x0000002f },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
+   { 0x00800031, 0x29c01d29, 0x008d0e60, 0x0411a004 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00800031, 0x2a001d29, 0x008d0e60, 0x0411a004 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00800031, 0x2a401d29, 0x008d0e60, 0x0411a004 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00800031, 0x2a801d29, 0x008d0e60, 0x0411a004 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0007001f },
+   { 0x00800031, 0x2ac01d29, 0x008d0e60, 0x0418a004 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
+   { 0x00800031, 0x2bc01d29, 0x008d0e60, 0x0411a004 },
+   { 0x00800040, 0x2c004629, 0x00b109c0, 0x00b10a00 },
+   { 0x00800040, 0x2c204629, 0x00b10a00, 0x00b10a40 },
+   { 0x00800040, 0x2c404629, 0x00b10a40, 0x00b10a80 },
+   { 0x00800040, 0x2c604629, 0x00b10a80, 0x00b10ac0 },
+   { 0x00800040, 0x2c804629, 0x00b10ac0, 0x00b10b00 },
+   { 0x00800040, 0x2ca04629, 0x00b10b00, 0x00b10b40 },
+   { 0x00800040, 0x2cc04629, 0x00b10b40, 0x00b10b80 },
+   { 0x00800040, 0x2ce04629, 0x00b10b80, 0x00b10bc0 },
+   { 0x00800040, 0x2c004529, 0x00b10c00, 0x00b109c1 },
+   { 0x00800040, 0x2c204529, 0x00b10c20, 0x00b10a01 },
+   { 0x00800040, 0x2c404529, 0x00b10c40, 0x00b10a41 },
+   { 0x00800040, 0x2c604529, 0x00b10c60, 0x00b10a81 },
+   { 0x00800040, 0x2c804529, 0x00b10c80, 0x00b10ac1 },
+   { 0x00800040, 0x2ca04529, 0x00b10ca0, 0x00b10b01 },
+   { 0x00800040, 0x2cc04529, 0x00b10cc0, 0x00b10b41 },
+   { 0x00800040, 0x2ce04529, 0x00b10ce0, 0x00b10b81 },
+   { 0x00800040, 0x2c004529, 0x00b10c00, 0x00b10a01 },
+   { 0x00800040, 0x2c204529, 0x00b10c20, 0x00b10a41 },
+   { 0x00800040, 0x2c404529, 0x00b10c40, 0x00b10a81 },
+   { 0x00800040, 0x2c604529, 0x00b10c60, 0x00b10ac1 },
+   { 0x00800040, 0x2c804529, 0x00b10c80, 0x00b10b01 },
+   { 0x00800040, 0x2ca04529, 0x00b10ca0, 0x00b10b41 },
+   { 0x00800040, 0x2cc04529, 0x00b10cc0, 0x00b10b81 },
+   { 0x00800040, 0x2ce04529, 0x00b10ce0, 0x00b10bc1 },
+   { 0x00800008, 0x2c002d29, 0x00b10c00, 0x00020002 },
+   { 0x00800008, 0x2c202d29, 0x00b10c20, 0x00020002 },
+   { 0x00800008, 0x2c402d29, 0x00b10c40, 0x00020002 },
+   { 0x00800008, 0x2c602d29, 0x00b10c60, 0x00020002 },
+   { 0x00800008, 0x2c802d29, 0x00b10c80, 0x00020002 },
+   { 0x00800008, 0x2ca02d29, 0x00b10ca0, 0x00020002 },
+   { 0x00800008, 0x2cc02d29, 0x00b10cc0, 0x00020002 },
+   { 0x00800008, 0x2ce02d29, 0x00b10ce0, 0x00020002 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000040 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
+   { 0x00800031, 0x29c01d29, 0x008d0e60, 0x0411a004 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00800031, 0x2a001d29, 0x008d0e60, 0x0411a004 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00800031, 0x2a401d29, 0x008d0e60, 0x0411a004 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00800031, 0x2a801d29, 0x008d0e60, 0x0411a004 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0007001f },
+   { 0x00800031, 0x2ac01d29, 0x008d0e60, 0x0418a004 },
+   { 0x80800042, 0x2c004629, 0x00b109c0, 0x00b109c1 },
+   { 0x80800042, 0x2c204629, 0x00b10a00, 0x00b10a01 },
+   { 0x80800042, 0x2c404629, 0x00b10a40, 0x00b10a41 },
+   { 0x80800042, 0x2c604629, 0x00b10a80, 0x00b10a81 },
+   { 0x80800042, 0x2c804629, 0x00b10ac0, 0x00b10ac1 },
+   { 0x80800042, 0x2ca04629, 0x00b10b00, 0x00b10b01 },
+   { 0x80800042, 0x2cc04629, 0x00b10b40, 0x00b10b41 },
+   { 0x80800042, 0x2ce04629, 0x00b10b80, 0x00b10b81 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x0000002c },
+   { 0x01000005, 0x20002d3c, 0x00210038, 0x00010001 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x00000017 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
+   { 0x00800031, 0x29c01d29, 0x008d0e60, 0x0411a004 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00800031, 0x2a001d29, 0x008d0e60, 0x0411a004 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00800031, 0x2a401d29, 0x008d0e60, 0x0411a004 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00800031, 0x2a801d29, 0x008d0e60, 0x0411a004 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0007001f },
+   { 0x00800031, 0x2ac01d29, 0x008d0e60, 0x0418a004 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
+   { 0x00800031, 0x2bc01d29, 0x008d0e60, 0x0411a004 },
+   { 0x80800042, 0x2c004629, 0x00b109c0, 0x00b10a00 },
+   { 0x80800042, 0x2c204629, 0x00b10a00, 0x00b10a40 },
+   { 0x80800042, 0x2c404629, 0x00b10a40, 0x00b10a80 },
+   { 0x80800042, 0x2c604629, 0x00b10a80, 0x00b10ac0 },
+   { 0x80800042, 0x2c804629, 0x00b10ac0, 0x00b10b00 },
+   { 0x80800042, 0x2ca04629, 0x00b10b00, 0x00b10b40 },
+   { 0x80800042, 0x2cc04629, 0x00b10b40, 0x00b10b80 },
+   { 0x80800042, 0x2ce04629, 0x00b10b80, 0x00b10bc0 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000013 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
+   { 0x00800031, 0x29c01d29, 0x008d0e60, 0x0411a004 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00800031, 0x2a001d29, 0x008d0e60, 0x0411a004 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00800031, 0x2a401d29, 0x008d0e60, 0x0411a004 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00800031, 0x2a801d29, 0x008d0e60, 0x0411a004 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0007001f },
+   { 0x00800031, 0x2ac01d29, 0x008d0e60, 0x0418a004 },
+   { 0x00800001, 0x2c000229, 0x00b109c0, 0x00000000 },
+   { 0x00800001, 0x2c200229, 0x00b10a00, 0x00000000 },
+   { 0x00800001, 0x2c400229, 0x00b10a40, 0x00000000 },
+   { 0x00800001, 0x2c600229, 0x00b10a80, 0x00000000 },
+   { 0x00800001, 0x2c800229, 0x00b10ac0, 0x00000000 },
+   { 0x00800001, 0x2ca00229, 0x00b10b00, 0x00000000 },
+   { 0x00800001, 0x2cc00229, 0x00b10b40, 0x00000000 },
+   { 0x00800001, 0x2ce00229, 0x00b10b80, 0x00000000 },
+   { 0x00600001, 0x23a00021, 0x008d0c00, 0x00000000 },
+   { 0x00600001, 0x23e00021, 0x008d0c20, 0x00000000 },
+   { 0x00600001, 0x24200021, 0x008d0c40, 0x00000000 },
+   { 0x00600001, 0x24600021, 0x008d0c60, 0x00000000 },
+   { 0x00600001, 0x24a00021, 0x008d0c80, 0x00000000 },
+   { 0x00600001, 0x24e00021, 0x008d0ca0, 0x00000000 },
+   { 0x00600001, 0x25200021, 0x008d0cc0, 0x00000000 },
+   { 0x00600001, 0x25600021, 0x008d0ce0, 0x00000000 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0007000f },
+   { 0x0020000c, 0x2e6e2dad, 0x0045002e, 0x00020002 },
+   { 0x0020000c, 0x2e601ca5, 0x00450e80, 0x00000001 },
+   { 0x00200040, 0x2e6034a5, 0x00450e60, 0x00450e6e },
+   { 0x00000005, 0x2e640c21, 0x00210e64, 0xfffffffe },
+   { 0x02000005, 0x20002e3c, 0x0021003f, 0x00010001 },
+   { 0x00010040, 0x2e640c21, 0x00210e64, 0x00000001 },
+   { 0x01000005, 0x20002d3c, 0x0021002e, 0x00020002 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x00000036 },
+   { 0x01000005, 0x20002d3c, 0x00210030, 0x00020002 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x00000028 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0007000f },
+   { 0x00800031, 0x2ac01d29, 0x00ad0e60, 0x0414a005 },
+   { 0x00800031, 0x2b601d29, 0x00ad0e60, 0x0414a006 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0001000f },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 },
+   { 0x00800031, 0x2b401d29, 0x00ad0e60, 0x0411a005 },
+   { 0x00800031, 0x2be01d29, 0x00ad0e60, 0x0411a006 },
+   { 0x00800040, 0x29c04629, 0x00ad0ac0, 0x00ad0ae0 },
+   { 0x00800040, 0x29e04629, 0x00ad0ae0, 0x00ad0b00 },
+   { 0x00800040, 0x2a004629, 0x00ad0b00, 0x00ad0b20 },
+   { 0x00800040, 0x2a204629, 0x00ad0b20, 0x00ad0b40 },
+   { 0x00800040, 0x29c04529, 0x00ad09c0, 0x00ad0ac1 },
+   { 0x00800040, 0x29e04529, 0x00ad09e0, 0x00ad0ae1 },
+   { 0x00800040, 0x2a004529, 0x00ad0a00, 0x00ad0b01 },
+   { 0x00800040, 0x2a204529, 0x00ad0a20, 0x00ad0b21 },
+   { 0x00800040, 0x29c04529, 0x00ad09c0, 0x00ad0ae1 },
+   { 0x00800040, 0x29e04529, 0x00ad09e0, 0x00ad0b01 },
+   { 0x00800040, 0x2a004529, 0x00ad0a00, 0x00ad0b21 },
+   { 0x00800040, 0x2a204529, 0x00ad0a20, 0x00ad0b41 },
+   { 0x00800040, 0x2a404629, 0x00ad0b60, 0x00ad0b80 },
+   { 0x00800040, 0x2a604629, 0x00ad0b80, 0x00ad0ba0 },
+   { 0x00800040, 0x2a804629, 0x00ad0ba0, 0x00ad0bc0 },
+   { 0x00800040, 0x2aa04629, 0x00ad0bc0, 0x00ad0be0 },
+   { 0x00800040, 0x2a404529, 0x00ad0a40, 0x00ad0b61 },
+   { 0x00800040, 0x2a604529, 0x00ad0a60, 0x00ad0b81 },
+   { 0x00800040, 0x2a804529, 0x00ad0a80, 0x00ad0ba1 },
+   { 0x00800040, 0x2aa04529, 0x00ad0aa0, 0x00ad0bc1 },
+   { 0x00800040, 0x2a404529, 0x00ad0a40, 0x00ad0b81 },
+   { 0x00800040, 0x2a604529, 0x00ad0a60, 0x00ad0ba1 },
+   { 0x00800040, 0x2a804529, 0x00ad0a80, 0x00ad0bc1 },
+   { 0x00800040, 0x2aa04529, 0x00ad0aa0, 0x00ad0be1 },
+   { 0x80800008, 0x29c02d29, 0x00b109c0, 0x00020002 },
+   { 0x80800008, 0x29e02d29, 0x00b109e0, 0x00020002 },
+   { 0x80800008, 0x2a002d29, 0x00b10a00, 0x00020002 },
+   { 0x80800008, 0x2a202d29, 0x00b10a20, 0x00020002 },
+   { 0x80800008, 0x2a402d29, 0x00b10a40, 0x00020002 },
+   { 0x80800008, 0x2a602d29, 0x00b10a60, 0x00020002 },
+   { 0x80800008, 0x2a802d29, 0x00b10a80, 0x00020002 },
+   { 0x80800008, 0x2aa02d29, 0x00b10aa0, 0x00020002 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000028 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0007000f },
+   { 0x00800031, 0x2ac01d29, 0x00ad0e60, 0x0414a005 },
+   { 0x00800031, 0x2b601d29, 0x00ad0e60, 0x0414a006 },
+   { 0x80800042, 0x29c04629, 0x00ad0ac0, 0x00ad0ac1 },
+   { 0x80800042, 0x29e04629, 0x00ad0ae0, 0x00ad0ae1 },
+   { 0x80800042, 0x2a004629, 0x00ad0b00, 0x00ad0b01 },
+   { 0x80800042, 0x2a204629, 0x00ad0b20, 0x00ad0b21 },
+   { 0x80800042, 0x2a404629, 0x00ad0b60, 0x00ad0b61 },
+   { 0x80800042, 0x2a604629, 0x00ad0b80, 0x00ad0b81 },
+   { 0x80800042, 0x2a804629, 0x00ad0ba0, 0x00ad0ba1 },
+   { 0x80800042, 0x2aa04629, 0x00ad0bc0, 0x00ad0bc1 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x0000001c },
+   { 0x01000005, 0x20002d3c, 0x00210030, 0x00020002 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x0000000f },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0007000f },
+   { 0x00800031, 0x2ac01d29, 0x00ad0e60, 0x0414a005 },
+   { 0x00800031, 0x2b601d29, 0x00ad0e60, 0x0414a006 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0000000f },
+   { 0x00800031, 0x2b401d29, 0x00ad0e60, 0x0411a005 },
+   { 0x00800031, 0x2be01d29, 0x00ad0e60, 0x0411a006 },
+   { 0x80800042, 0x29c04629, 0x00ad0ac0, 0x00ad0ae0 },
+   { 0x80800042, 0x29e04629, 0x00ad0ae0, 0x00ad0b00 },
+   { 0x80800042, 0x2a004629, 0x00ad0b00, 0x00ad0b20 },
+   { 0x80800042, 0x2a204629, 0x00ad0b20, 0x00ad0b40 },
+   { 0x80800042, 0x2a404629, 0x00ad0b60, 0x00ad0b80 },
+   { 0x80800042, 0x2a604629, 0x00ad0b80, 0x00ad0ba0 },
+   { 0x80800042, 0x2a804629, 0x00ad0ba0, 0x00ad0bc0 },
+   { 0x80800042, 0x2aa04629, 0x00ad0bc0, 0x00ad0be0 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x0000000b },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0007000f },
+   { 0x00800031, 0x2ac01d29, 0x00ad0e60, 0x0414a005 },
+   { 0x00800031, 0x2b601d29, 0x00ad0e60, 0x0414a006 },
+   { 0x00800001, 0x29c00229, 0x00ad0ac0, 0x00000000 },
+   { 0x00800001, 0x29e00229, 0x00ad0ae0, 0x00000000 },
+   { 0x00800001, 0x2a000229, 0x00ad0b00, 0x00000000 },
+   { 0x00800001, 0x2a200229, 0x00ad0b20, 0x00000000 },
+   { 0x00800001, 0x2a400229, 0x00ad0b60, 0x00000000 },
+   { 0x00800001, 0x2a600229, 0x00ad0b80, 0x00000000 },
+   { 0x00800001, 0x2a800229, 0x00ad0ba0, 0x00000000 },
+   { 0x00800001, 0x2aa00229, 0x00ad0bc0, 0x00000000 },
+   { 0x00600001, 0x25800129, 0x008d09c0, 0x00000000 },
+   { 0x00600001, 0x25a00129, 0x008d09e0, 0x00000000 },
+   { 0x00600001, 0x25c00129, 0x008d0a00, 0x00000000 },
+   { 0x00600001, 0x25e00129, 0x008d0a20, 0x00000000 },
+   { 0x00600001, 0x26000129, 0x008d0a40, 0x00000000 },
+   { 0x00600001, 0x26200129, 0x008d0a60, 0x00000000 },
+   { 0x00600001, 0x26400129, 0x008d0a80, 0x00000000 },
+   { 0x00600001, 0x26600129, 0x008d0aa0, 0x00000000 },
+   { 0x0020000c, 0x2e6e2dad, 0x00450036, 0x00020002 },
+   { 0x0020000c, 0x2e601ca5, 0x00450e80, 0x00000001 },
+   { 0x00200040, 0x2e6034a5, 0x00450e60, 0x00450e6e },
+   { 0x00000005, 0x2e640c21, 0x00210e64, 0xfffffffe },
+   { 0x02000005, 0x20002e3c, 0x0021003f, 0x00040004 },
+   { 0x00010040, 0x2e640c21, 0x00210e64, 0x00000001 },
+   { 0x01000005, 0x20002d3c, 0x00210036, 0x00020002 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x00000036 },
+   { 0x01000005, 0x20002d3c, 0x00210038, 0x00020002 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x00000028 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0007000f },
+   { 0x00800031, 0x2ac01d29, 0x00ad0e60, 0x0414a005 },
+   { 0x00800031, 0x2b601d29, 0x00ad0e60, 0x0414a006 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0001000f },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 },
+   { 0x00800031, 0x2b401d29, 0x00ad0e60, 0x0411a005 },
+   { 0x00800031, 0x2be01d29, 0x00ad0e60, 0x0411a006 },
+   { 0x00800040, 0x29c04629, 0x00ad0ac0, 0x00ad0ae0 },
+   { 0x00800040, 0x29e04629, 0x00ad0ae0, 0x00ad0b00 },
+   { 0x00800040, 0x2a004629, 0x00ad0b00, 0x00ad0b20 },
+   { 0x00800040, 0x2a204629, 0x00ad0b20, 0x00ad0b40 },
+   { 0x00800040, 0x29c04529, 0x00ad09c0, 0x00ad0ac1 },
+   { 0x00800040, 0x29e04529, 0x00ad09e0, 0x00ad0ae1 },
+   { 0x00800040, 0x2a004529, 0x00ad0a00, 0x00ad0b01 },
+   { 0x00800040, 0x2a204529, 0x00ad0a20, 0x00ad0b21 },
+   { 0x00800040, 0x29c04529, 0x00ad09c0, 0x00ad0ae1 },
+   { 0x00800040, 0x29e04529, 0x00ad09e0, 0x00ad0b01 },
+   { 0x00800040, 0x2a004529, 0x00ad0a00, 0x00ad0b21 },
+   { 0x00800040, 0x2a204529, 0x00ad0a20, 0x00ad0b41 },
+   { 0x00800040, 0x2a404629, 0x00ad0b60, 0x00ad0b80 },
+   { 0x00800040, 0x2a604629, 0x00ad0b80, 0x00ad0ba0 },
+   { 0x00800040, 0x2a804629, 0x00ad0ba0, 0x00ad0bc0 },
+   { 0x00800040, 0x2aa04629, 0x00ad0bc0, 0x00ad0be0 },
+   { 0x00800040, 0x2a404529, 0x00ad0a40, 0x00ad0b61 },
+   { 0x00800040, 0x2a604529, 0x00ad0a60, 0x00ad0b81 },
+   { 0x00800040, 0x2a804529, 0x00ad0a80, 0x00ad0ba1 },
+   { 0x00800040, 0x2aa04529, 0x00ad0aa0, 0x00ad0bc1 },
+   { 0x00800040, 0x2a404529, 0x00ad0a40, 0x00ad0b81 },
+   { 0x00800040, 0x2a604529, 0x00ad0a60, 0x00ad0ba1 },
+   { 0x00800040, 0x2a804529, 0x00ad0a80, 0x00ad0bc1 },
+   { 0x00800040, 0x2aa04529, 0x00ad0aa0, 0x00ad0be1 },
+   { 0x80800008, 0x29c02d29, 0x00b109c0, 0x00020002 },
+   { 0x80800008, 0x29e02d29, 0x00b109e0, 0x00020002 },
+   { 0x80800008, 0x2a002d29, 0x00b10a00, 0x00020002 },
+   { 0x80800008, 0x2a202d29, 0x00b10a20, 0x00020002 },
+   { 0x80800008, 0x2a402d29, 0x00b10a40, 0x00020002 },
+   { 0x80800008, 0x2a602d29, 0x00b10a60, 0x00020002 },
+   { 0x80800008, 0x2a802d29, 0x00b10a80, 0x00020002 },
+   { 0x80800008, 0x2aa02d29, 0x00b10aa0, 0x00020002 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000028 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0007000f },
+   { 0x00800031, 0x2ac01d29, 0x00ad0e60, 0x0414a005 },
+   { 0x00800031, 0x2b601d29, 0x00ad0e60, 0x0414a006 },
+   { 0x80800042, 0x29c04629, 0x00ad0ac0, 0x00ad0ac1 },
+   { 0x80800042, 0x29e04629, 0x00ad0ae0, 0x00ad0ae1 },
+   { 0x80800042, 0x2a004629, 0x00ad0b00, 0x00ad0b01 },
+   { 0x80800042, 0x2a204629, 0x00ad0b20, 0x00ad0b21 },
+   { 0x80800042, 0x2a404629, 0x00ad0b60, 0x00ad0b61 },
+   { 0x80800042, 0x2a604629, 0x00ad0b80, 0x00ad0b81 },
+   { 0x80800042, 0x2a804629, 0x00ad0ba0, 0x00ad0ba1 },
+   { 0x80800042, 0x2aa04629, 0x00ad0bc0, 0x00ad0bc1 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x0000001c },
+   { 0x01000005, 0x20002d3c, 0x00210038, 0x00020002 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x0000000f },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0007000f },
+   { 0x00800031, 0x2ac01d29, 0x00ad0e60, 0x0414a005 },
+   { 0x00800031, 0x2b601d29, 0x00ad0e60, 0x0414a006 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0000000f },
+   { 0x00800031, 0x2b401d29, 0x00ad0e60, 0x0411a005 },
+   { 0x00800031, 0x2be01d29, 0x00ad0e60, 0x0411a006 },
+   { 0x80800042, 0x29c04629, 0x00ad0ac0, 0x00ad0ae0 },
+   { 0x80800042, 0x29e04629, 0x00ad0ae0, 0x00ad0b00 },
+   { 0x80800042, 0x2a004629, 0x00ad0b00, 0x00ad0b20 },
+   { 0x80800042, 0x2a204629, 0x00ad0b20, 0x00ad0b40 },
+   { 0x80800042, 0x2a404629, 0x00ad0b60, 0x00ad0b80 },
+   { 0x80800042, 0x2a604629, 0x00ad0b80, 0x00ad0ba0 },
+   { 0x80800042, 0x2a804629, 0x00ad0ba0, 0x00ad0bc0 },
+   { 0x80800042, 0x2aa04629, 0x00ad0bc0, 0x00ad0be0 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x0000000b },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0007000f },
+   { 0x00800031, 0x2ac01d29, 0x00ad0e60, 0x0414a005 },
+   { 0x00800031, 0x2b601d29, 0x00ad0e60, 0x0414a006 },
+   { 0x00800001, 0x29c00229, 0x00ad0ac0, 0x00000000 },
+   { 0x00800001, 0x29e00229, 0x00ad0ae0, 0x00000000 },
+   { 0x00800001, 0x2a000229, 0x00ad0b00, 0x00000000 },
+   { 0x00800001, 0x2a200229, 0x00ad0b20, 0x00000000 },
+   { 0x00800001, 0x2a400229, 0x00ad0b60, 0x00000000 },
+   { 0x00800001, 0x2a600229, 0x00ad0b80, 0x00000000 },
+   { 0x00800001, 0x2a800229, 0x00ad0ba0, 0x00000000 },
+   { 0x00800001, 0x2aa00229, 0x00ad0bc0, 0x00000000 },
+   { 0x00600001, 0x25900129, 0x008d09c0, 0x00000000 },
+   { 0x00600001, 0x25b00129, 0x008d09e0, 0x00000000 },
+   { 0x00600001, 0x25d00129, 0x008d0a00, 0x00000000 },
+   { 0x00600001, 0x25f00129, 0x008d0a20, 0x00000000 },
+   { 0x00600001, 0x26100129, 0x008d0a40, 0x00000000 },
+   { 0x00600001, 0x26300129, 0x008d0a60, 0x00000000 },
+   { 0x00600001, 0x26500129, 0x008d0a80, 0x00000000 },
+   { 0x00600001, 0x26700129, 0x008d0aa0, 0x00000000 },
+   { 0x00600001, 0x20200021, 0x008d0980, 0x00000000 },
+   { 0x00800001, 0x458101f1, 0x00000000, 0x00000000 },
+   { 0x00800001, 0x45a101f1, 0x00000000, 0x00000000 },
+   { 0x00800001, 0x45c101f1, 0x00000000, 0x00000000 },
+   { 0x00800001, 0x45e101f1, 0x00000000, 0x00000000 },
+   { 0x00800001, 0x460101f1, 0x00000000, 0x00000000 },
+   { 0x00800001, 0x462101f1, 0x00000000, 0x00000000 },
+   { 0x00800001, 0x464101f1, 0x00000000, 0x00000000 },
+   { 0x00800001, 0x466101f1, 0x00000000, 0x00000000 },
+   { 0x02000005, 0x20002e3c, 0x0021003e, 0x00010001 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x00000011 },
+   { 0x00800040, 0x238045ad, 0x00b10060, 0x00b20380 },
+   { 0x00800040, 0x23a045ad, 0x00b10080, 0x00b203a0 },
+   { 0x00800040, 0x23c045ad, 0x00b100a0, 0x00b203c0 },
+   { 0x00800040, 0x23e045ad, 0x00b100c0, 0x00b203e0 },
+   { 0x00800040, 0x240045ad, 0x00b100e0, 0x00b20400 },
+   { 0x00800040, 0x242045ad, 0x00b10100, 0x00b20420 },
+   { 0x00800040, 0x244045ad, 0x00b10120, 0x00b20440 },
+   { 0x00800040, 0x246045ad, 0x00b10140, 0x00b20460 },
+   { 0x00800040, 0x248045ad, 0x00b10160, 0x00b20480 },
+   { 0x00800040, 0x24a045ad, 0x00b10180, 0x00b204a0 },
+   { 0x00800040, 0x24c045ad, 0x00b101a0, 0x00b204c0 },
+   { 0x00800040, 0x24e045ad, 0x00b101c0, 0x00b204e0 },
+   { 0x00800040, 0x250045ad, 0x00b101e0, 0x00b20500 },
+   { 0x00800040, 0x252045ad, 0x00b10200, 0x00b20520 },
+   { 0x00800040, 0x254045ad, 0x00b10220, 0x00b20540 },
+   { 0x00800040, 0x256045ad, 0x00b10240, 0x00b20560 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000010 },
+   { 0x00800040, 0x238045ad, 0x00b10060, 0x00b20380 },
+   { 0x00800040, 0x23a045ad, 0x00b10160, 0x00b203a0 },
+   { 0x00800040, 0x23c045ad, 0x00b10080, 0x00b203c0 },
+   { 0x00800040, 0x23e045ad, 0x00b10180, 0x00b203e0 },
+   { 0x00800040, 0x240045ad, 0x00b100a0, 0x00b20400 },
+   { 0x00800040, 0x242045ad, 0x00b101a0, 0x00b20420 },
+   { 0x00800040, 0x244045ad, 0x00b100c0, 0x00b20440 },
+   { 0x00800040, 0x246045ad, 0x00b101c0, 0x00b20460 },
+   { 0x00800040, 0x248045ad, 0x00b100e0, 0x00b20480 },
+   { 0x00800040, 0x24a045ad, 0x00b101e0, 0x00b204a0 },
+   { 0x00800040, 0x24c045ad, 0x00b10100, 0x00b204c0 },
+   { 0x00800040, 0x24e045ad, 0x00b10200, 0x00b204e0 },
+   { 0x00800040, 0x250045ad, 0x00b10120, 0x00b20500 },
+   { 0x00800040, 0x252045ad, 0x00b10220, 0x00b20520 },
+   { 0x00800040, 0x254045ad, 0x00b10140, 0x00b20540 },
+   { 0x00800040, 0x256045ad, 0x00b10240, 0x00b20560 },
+   { 0x00000001, 0x20280061, 0x00000000, 0x000f000f },
+   { 0x80800001, 0x438001b1, 0x00b10380, 0x00000000 },
+   { 0x80800001, 0x43a001b1, 0x00b103a0, 0x00000000 },
+   { 0x80800001, 0x43c001b1, 0x00b103c0, 0x00000000 },
+   { 0x80800001, 0x43e001b1, 0x00b103e0, 0x00000000 },
+   { 0x80800001, 0x440001b1, 0x00b10400, 0x00000000 },
+   { 0x80800001, 0x442001b1, 0x00b10420, 0x00000000 },
+   { 0x80800001, 0x444001b1, 0x00b10440, 0x00000000 },
+   { 0x80800001, 0x446001b1, 0x00b10460, 0x00000000 },
+   { 0x80800001, 0x448001b1, 0x00b10480, 0x00000000 },
+   { 0x80800001, 0x44a001b1, 0x00b104a0, 0x00000000 },
+   { 0x80800001, 0x44c001b1, 0x00b104c0, 0x00000000 },
+   { 0x80800001, 0x44e001b1, 0x00b104e0, 0x00000000 },
+   { 0x80800001, 0x450001b1, 0x00b10500, 0x00000000 },
+   { 0x80800001, 0x452001b1, 0x00b10520, 0x00000000 },
+   { 0x80800001, 0x454001b1, 0x00b10540, 0x00000000 },
+   { 0x80800001, 0x456001b1, 0x00b10560, 0x00000000 },
+   { 0x00800001, 0x20200232, 0x00b20380, 0x00000000 },
+   { 0x00800001, 0x20300232, 0x00b203a0, 0x00000000 },
+   { 0x00800001, 0x20400232, 0x00b203c0, 0x00000000 },
+   { 0x00800001, 0x20500232, 0x00b203e0, 0x00000000 },
+   { 0x00800001, 0x20600232, 0x00b20400, 0x00000000 },
+   { 0x00800001, 0x20700232, 0x00b20420, 0x00000000 },
+   { 0x00800001, 0x20800232, 0x00b20440, 0x00000000 },
+   { 0x00800001, 0x20900232, 0x00b20460, 0x00000000 },
+   { 0x00800001, 0x20a00232, 0x00b20480, 0x00000000 },
+   { 0x00800001, 0x20b00232, 0x00b204a0, 0x00000000 },
+   { 0x00800001, 0x20c00232, 0x00b204c0, 0x00000000 },
+   { 0x00800001, 0x20d00232, 0x00b204e0, 0x00000000 },
+   { 0x00800001, 0x20e00232, 0x00b20500, 0x00000000 },
+   { 0x00800001, 0x20f00232, 0x00b20520, 0x00000000 },
+   { 0x00800001, 0x21000232, 0x00b20540, 0x00000000 },
+   { 0x00800001, 0x21100232, 0x00b20560, 0x00000000 },
+   { 0x00800031, 0x24001d28, 0x008d0020, 0x05902000 },
+   { 0x00000001, 0x20280061, 0x00000000, 0x00070007 },
+   { 0x00200008, 0x20201c21, 0x00450020, 0x00000001 },
+   { 0x00800040, 0x258025a9, 0x00b10260, 0x00b10580 },
+   { 0x00800040, 0x25a025a9, 0x00b10280, 0x00b105a0 },
+   { 0x00800040, 0x25c025a9, 0x00b102a0, 0x00b105c0 },
+   { 0x00800040, 0x25e025a9, 0x00b102c0, 0x00b105e0 },
+   { 0x80800001, 0x45800131, 0x00b10580, 0x00000000 },
+   { 0x80800001, 0x45a00131, 0x00b105a0, 0x00000000 },
+   { 0x80800001, 0x45c00131, 0x00b105c0, 0x00000000 },
+   { 0x80800001, 0x45e00131, 0x00b105e0, 0x00000000 },
+   { 0x00800001, 0x20200232, 0x00b20580, 0x00000000 },
+   { 0x00800001, 0x20300232, 0x00b205a0, 0x00000000 },
+   { 0x00800001, 0x20400232, 0x00b205c0, 0x00000000 },
+   { 0x00800001, 0x20500232, 0x00b205e0, 0x00000000 },
+   { 0x00800031, 0x24001d28, 0x008d0020, 0x05302001 },
+   { 0x00800040, 0x260025a9, 0x00b102e0, 0x00b10600 },
+   { 0x00800040, 0x262025a9, 0x00b10300, 0x00b10620 },
+   { 0x00800040, 0x264025a9, 0x00b10320, 0x00b10640 },
+   { 0x00800040, 0x266025a9, 0x00b10340, 0x00b10660 },
+   { 0x80800001, 0x46000131, 0x00b10600, 0x00000000 },
+   { 0x80800001, 0x46200131, 0x00b10620, 0x00000000 },
+   { 0x80800001, 0x46400131, 0x00b10640, 0x00000000 },
+   { 0x80800001, 0x46600131, 0x00b10660, 0x00000000 },
+   { 0x00800001, 0x20200232, 0x00b20600, 0x00000000 },
+   { 0x00800001, 0x20300232, 0x00b20620, 0x00000000 },
+   { 0x00800001, 0x20400232, 0x00b20640, 0x00000000 },
+   { 0x00800001, 0x20500232, 0x00b20660, 0x00000000 },
+   { 0x00800031, 0x24001d28, 0x008d0020, 0x05302002 },
+   { 0x00800031, 0x24001d28, 0x008d0000, 0x87100000 },
diff --git a/src/xvmc/shader/mc/frame_backward.g4a b/src/xvmc/shader/mc/frame_backward.g4a
new file mode 100644
index 0000000..f669dac
--- /dev/null
+++ b/src/xvmc/shader/mc/frame_backward.g4a
@@ -0,0 +1,69 @@
+/*
+ * Copyright © 2008 Intel Corporation
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice (including the next
+ * paragraph) shall be included in all copies or substantial portions of the
+ * Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
+ * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+ * SOFTWARE.
+ *
+ * Author:
+ *    Zou Nan hai <nanhai.zou at intel.com>
+ *    Zhang Hua jun <huajun.zhang at intel.com>
+ *    Xing Dong sheng <dongsheng.xing at intel.com>
+ *
+ */
+
+/* shader for backward predict mc
+*/
+mov (8) g76.0<1>UD g1.0<8,8,1>UD {align1};
+//mov (8) g77.0<1>UD g2.0<8,8,1>UD {align1};
+
+include(`block_clear.g4i')
+
+mov (2) g1.14<1>UW g1.18<2,2,1>UW {align1};
+/* save payload */
+mov (8) g115.0<1>UD g1.0<8,8,1>UD {align1}; 
+/* 8x8 media read/write payload */
+mov (1) g1.8<1>UD 0x0070007UD {align1};  
+/* save payload, again */
+define(`dest', `g118')
+define(`input_surface',	`7')
+define(`mv1',	`g115.14')
+define(`mv2',	`g115.16')
+/* Y */
+/* (x', y') = (x, y) + (motion_vector.x >> 1, motion_vector.y >> 1) */
+asr (2) g1.14<1>W g115.14<2,2,1>W 1W {align1};
+add (2) g2.0<1>UD g115.0<2,2,1>UD g1.14<2,2,1>W {align1};
+include(`motion_frame_y.g4i')
+/* motion_vector = motion_vector >> 1 */
+/* (x', y') = (x, y) + (motion_vector.x >> 1, motion_vector.y >> 1) */
+shr (2) g1.0<1>UD g115.0<2,2,1>UD 1UD {align1};
+asr (2) g115.14<1>W g115.14<2,2,1>W 1W {align1};
+asr (2) g1.14<1>W g115.14<2,2,1>W 1W {align1};
+add (2) g2.0<1>UD g1.0<2,2,1>UD g1.14<2,2,1>W {align1};
+/* U */
+define(`input_surface1',	`8')
+define(`input_surface2',	`9')
+mov (1) g2.8<1>UD 0x007000fUD  {align1};
+include(`motion_frame_uv.g4i')
+
+/* V */
+/* (x', y') = (x, y) + (motion_vector.x >> 1, motion_vector.y >> 1) */
+include(`addidct.g4i')
+
+send (16) 0 acc0<1>UW g0<8,8,1>UW 
+	thread_spawner(0, 0, 0) mlen 1 rlen 0 { align1 EOT};
diff --git a/src/xvmc/shader/mc/frame_backward.g4b b/src/xvmc/shader/mc/frame_backward.g4b
new file mode 100644
index 0000000..980ad62
--- /dev/null
+++ b/src/xvmc/shader/mc/frame_backward.g4b
@@ -0,0 +1,716 @@
+   { 0x00600001, 0x29800021, 0x008d0020, 0x00000000 },
+   { 0x02000005, 0x20000c3c, 0x00210040, 0x00000001 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x00000030 },
+   { 0x00000040, 0x20480c21, 0x00210988, 0x00000000 },
+   { 0x00800031, 0x20601c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x20801c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x20a01c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x20c01c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x20e01c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x21001c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x21201c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x21401c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x21601c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x21801c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x21a01c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x21c01c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x21e01c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x22001c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x22201c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x22401c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x22601c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x22801c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x22a01c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x22c01c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x22e01c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x23001c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x23201c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x23401c21, 0x00b10040, 0x04110203 },
+   { 0x02000005, 0x20002d3c, 0x0021098c, 0x00200020 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x00000008 },
+   { 0x00600001, 0x20600169, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x20800169, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x20a00169, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x20c00169, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x20e00169, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x21000169, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x21200169, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x21400169, 0x00000000, 0x00000000 },
+   { 0x02000005, 0x20002d3c, 0x0021002c, 0x00100010 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x00000008 },
+   { 0x00600001, 0x20700169, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x20900169, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x20b00169, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x20d00169, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x20f00169, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x21100169, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x21300169, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x21500169, 0x00000000, 0x00000000 },
+   { 0x02000005, 0x20002d3c, 0x0021002c, 0x00080008 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x00000008 },
+   { 0x00600001, 0x21600169, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x21800169, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x21a00169, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x21c00169, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x21e00169, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x22000169, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x22200169, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x22400169, 0x00000000, 0x00000000 },
+   { 0x02000005, 0x20002d3c, 0x0021002c, 0x00040004 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x00000008 },
+   { 0x00600001, 0x21700169, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x21900169, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x21b00169, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x21d00169, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x21f00169, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x22100169, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x22300169, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x22500169, 0x00000000, 0x00000000 },
+   { 0x02000005, 0x20002d3c, 0x0021002c, 0x00020002 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x00000004 },
+   { 0x00800001, 0x22600169, 0x00000000, 0x00000000 },
+   { 0x00800001, 0x22800169, 0x00000000, 0x00000000 },
+   { 0x00800001, 0x22a00169, 0x00000000, 0x00000000 },
+   { 0x00800001, 0x22c00169, 0x00000000, 0x00000000 },
+   { 0x02000005, 0x20002d3c, 0x0021002c, 0x00010001 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x00000004 },
+   { 0x00800001, 0x22e00169, 0x00000000, 0x00000000 },
+   { 0x00800001, 0x23000169, 0x00000000, 0x00000000 },
+   { 0x00800001, 0x23200169, 0x00000000, 0x00000000 },
+   { 0x00800001, 0x23400169, 0x00000000, 0x00000000 },
+   { 0x00200001, 0x202e0129, 0x00450032, 0x00000000 },
+   { 0x00600001, 0x2e600021, 0x008d0020, 0x00000000 },
+   { 0x00000001, 0x20280061, 0x00000000, 0x00070007 },
+   { 0x0020000c, 0x202e3dad, 0x00450e6e, 0x00010001 },
+   { 0x00200040, 0x20403421, 0x00450e60, 0x0045002e },
+   { 0x01000005, 0x20000d3c, 0x00210e6e, 0x00000001 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x0000012b },
+   { 0x01000005, 0x20000d3c, 0x00210e70, 0x00000001 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x000000de },
+   { 0x00000001, 0x20480061, 0x00000000, 0x0007001f },
+   { 0x00800031, 0x2c401d29, 0x008d0040, 0x0418a007 },
+   { 0x00000005, 0x20580c21, 0x00210040, 0x00000003 },
+   { 0x00000041, 0x20580c21, 0x00210058, 0x00000031 },
+   { 0x00000040, 0x20440c21, 0x00210044, 0x00000008 },
+   { 0x00800031, 0x2d401d29, 0x008d0040, 0x0418a007 },
+   { 0x00000040, 0x20440c21, 0x00210044, 0x00000008 },
+   { 0x00000001, 0x20480061, 0x00000000, 0x0000001f },
+   { 0x00800031, 0x2f001d29, 0x008d0040, 0x0411a007 },
+   { 0x00000020, 0x34001400, 0x00001400, 0x00210058 },
+   { 0x00800040, 0x23804629, 0x00b10c40, 0x00b10c41 },
+   { 0x00800040, 0x23a04629, 0x00b10c60, 0x00b10c61 },
+   { 0x00800040, 0x23c04629, 0x00b10c80, 0x00b10c81 },
+   { 0x00800040, 0x23e04629, 0x00b10ca0, 0x00b10ca1 },
+   { 0x00800040, 0x24004629, 0x00b10cc0, 0x00b10cc1 },
+   { 0x00800040, 0x24204629, 0x00b10ce0, 0x00b10ce1 },
+   { 0x00800040, 0x24404629, 0x00b10d00, 0x00b10d01 },
+   { 0x00800040, 0x24604629, 0x00b10d20, 0x00b10d21 },
+   { 0x00800040, 0x24804629, 0x00b10d40, 0x00b10d41 },
+   { 0x00800040, 0x24a04629, 0x00b10d60, 0x00b10d61 },
+   { 0x00800040, 0x24c04629, 0x00b10d80, 0x00b10d81 },
+   { 0x00800040, 0x24e04629, 0x00b10da0, 0x00b10da1 },
+   { 0x00800040, 0x25004629, 0x00b10dc0, 0x00b10dc1 },
+   { 0x00800040, 0x25204629, 0x00b10de0, 0x00b10de1 },
+   { 0x00800040, 0x25404629, 0x00b10e00, 0x00b10e01 },
+   { 0x00800040, 0x25604629, 0x00b10e20, 0x00b10e21 },
+   { 0x00800040, 0x23804529, 0x00b10380, 0x00b10c60 },
+   { 0x00800040, 0x23a04529, 0x00b103a0, 0x00b10c80 },
+   { 0x00800040, 0x23c04529, 0x00b103c0, 0x00b10ca0 },
+   { 0x00800040, 0x23e04529, 0x00b103e0, 0x00b10cc0 },
+   { 0x00800040, 0x24004529, 0x00b10400, 0x00b10ce0 },
+   { 0x00800040, 0x24204529, 0x00b10420, 0x00b10d00 },
+   { 0x00800040, 0x24404529, 0x00b10440, 0x00b10d20 },
+   { 0x00800040, 0x24604529, 0x00b10460, 0x00b10d40 },
+   { 0x00800040, 0x24804529, 0x00b10480, 0x00b10d60 },
+   { 0x00800040, 0x24a04529, 0x00b104a0, 0x00b10d80 },
+   { 0x00800040, 0x24c04529, 0x00b104c0, 0x00b10da0 },
+   { 0x00800040, 0x24e04529, 0x00b104e0, 0x00b10dc0 },
+   { 0x00800040, 0x25004529, 0x00b10500, 0x00b10de0 },
+   { 0x00800040, 0x25204529, 0x00b10520, 0x00b10e00 },
+   { 0x00800040, 0x25404529, 0x00b10540, 0x00b10e20 },
+   { 0x00800040, 0x25604529, 0x00b10560, 0x00b10f00 },
+   { 0x00800040, 0x23804529, 0x00b10380, 0x00b10c61 },
+   { 0x00800040, 0x23a04529, 0x00b103a0, 0x00b10c81 },
+   { 0x00800040, 0x23c04529, 0x00b103c0, 0x00b10ca1 },
+   { 0x00800040, 0x23e04529, 0x00b103e0, 0x00b10cc1 },
+   { 0x00800040, 0x24004529, 0x00b10400, 0x00b10ce1 },
+   { 0x00800040, 0x24204529, 0x00b10420, 0x00b10d01 },
+   { 0x00800040, 0x24404529, 0x00b10440, 0x00b10d21 },
+   { 0x00800040, 0x24604529, 0x00b10460, 0x00b10d41 },
+   { 0x00800040, 0x24804529, 0x00b10480, 0x00b10d61 },
+   { 0x00800040, 0x24a04529, 0x00b104a0, 0x00b10d81 },
+   { 0x00800040, 0x24c04529, 0x00b104c0, 0x00b10da1 },
+   { 0x00800040, 0x24e04529, 0x00b104e0, 0x00b10dc1 },
+   { 0x00800040, 0x25004529, 0x00b10500, 0x00b10de1 },
+   { 0x00800040, 0x25204529, 0x00b10520, 0x00b10e01 },
+   { 0x00800040, 0x25404529, 0x00b10540, 0x00b10e21 },
+   { 0x00800040, 0x25604529, 0x00b10560, 0x00b10f01 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000092 },
+   { 0x00800040, 0x23804629, 0x00b10c41, 0x00b10c42 },
+   { 0x00800040, 0x23a04629, 0x00b10c61, 0x00b10c62 },
+   { 0x00800040, 0x23c04629, 0x00b10c81, 0x00b10c82 },
+   { 0x00800040, 0x23e04629, 0x00b10ca1, 0x00b10ca2 },
+   { 0x00800040, 0x24004629, 0x00b10cc1, 0x00b10cc2 },
+   { 0x00800040, 0x24204629, 0x00b10ce1, 0x00b10ce2 },
+   { 0x00800040, 0x24404629, 0x00b10d01, 0x00b10d02 },
+   { 0x00800040, 0x24604629, 0x00b10d21, 0x00b10d22 },
+   { 0x00800040, 0x24804629, 0x00b10d41, 0x00b10d42 },
+   { 0x00800040, 0x24a04629, 0x00b10d61, 0x00b10d62 },
+   { 0x00800040, 0x24c04629, 0x00b10d81, 0x00b10d82 },
+   { 0x00800040, 0x24e04629, 0x00b10da1, 0x00b10da2 },
+   { 0x00800040, 0x25004629, 0x00b10dc1, 0x00b10dc2 },
+   { 0x00800040, 0x25204629, 0x00b10de1, 0x00b10de2 },
+   { 0x00800040, 0x25404629, 0x00b10e01, 0x00b10e02 },
+   { 0x00800040, 0x25604629, 0x00b10e21, 0x00b10e22 },
+   { 0x00800040, 0x23804529, 0x00b10380, 0x00b10c61 },
+   { 0x00800040, 0x23a04529, 0x00b103a0, 0x00b10c81 },
+   { 0x00800040, 0x23c04529, 0x00b103c0, 0x00b10ca1 },
+   { 0x00800040, 0x23e04529, 0x00b103e0, 0x00b10cc1 },
+   { 0x00800040, 0x24004529, 0x00b10400, 0x00b10ce1 },
+   { 0x00800040, 0x24204529, 0x00b10420, 0x00b10d01 },
+   { 0x00800040, 0x24404529, 0x00b10440, 0x00b10d21 },
+   { 0x00800040, 0x24604529, 0x00b10460, 0x00b10d41 },
+   { 0x00800040, 0x24804529, 0x00b10480, 0x00b10d61 },
+   { 0x00800040, 0x24a04529, 0x00b104a0, 0x00b10d81 },
+   { 0x00800040, 0x24c04529, 0x00b104c0, 0x00b10da1 },
+   { 0x00800040, 0x24e04529, 0x00b104e0, 0x00b10dc1 },
+   { 0x00800040, 0x25004529, 0x00b10500, 0x00b10de1 },
+   { 0x00800040, 0x25204529, 0x00b10520, 0x00b10e01 },
+   { 0x00800040, 0x25404529, 0x00b10540, 0x00b10e21 },
+   { 0x00800040, 0x25604529, 0x00b10560, 0x00b10f01 },
+   { 0x00800040, 0x23804529, 0x00b10380, 0x00b10c62 },
+   { 0x00800040, 0x23a04529, 0x00b103a0, 0x00b10c82 },
+   { 0x00800040, 0x23c04529, 0x00b103c0, 0x00b10ca2 },
+   { 0x00800040, 0x23e04529, 0x00b103e0, 0x00b10cc2 },
+   { 0x00800040, 0x24004529, 0x00b10400, 0x00b10ce2 },
+   { 0x00800040, 0x24204529, 0x00b10420, 0x00b10d02 },
+   { 0x00800040, 0x24404529, 0x00b10440, 0x00b10d22 },
+   { 0x00800040, 0x24604529, 0x00b10460, 0x00b10d42 },
+   { 0x00800040, 0x24804529, 0x00b10480, 0x00b10d62 },
+   { 0x00800040, 0x24a04529, 0x00b104a0, 0x00b10d82 },
+   { 0x00800040, 0x24c04529, 0x00b104c0, 0x00b10da2 },
+   { 0x00800040, 0x24e04529, 0x00b104e0, 0x00b10dc2 },
+   { 0x00800040, 0x25004529, 0x00b10500, 0x00b10de2 },
+   { 0x00800040, 0x25204529, 0x00b10520, 0x00b10e02 },
+   { 0x00800040, 0x25404529, 0x00b10540, 0x00b10e22 },
+   { 0x00800040, 0x25604529, 0x00b10560, 0x00b10f02 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000061 },
+   { 0x00800040, 0x23804629, 0x00b10c42, 0x00b10c43 },
+   { 0x00800040, 0x23a04629, 0x00b10c62, 0x00b10c63 },
+   { 0x00800040, 0x23c04629, 0x00b10c82, 0x00b10c83 },
+   { 0x00800040, 0x23e04629, 0x00b10ca2, 0x00b10ca3 },
+   { 0x00800040, 0x24004629, 0x00b10cc2, 0x00b10cc3 },
+   { 0x00800040, 0x24204629, 0x00b10ce2, 0x00b10ce3 },
+   { 0x00800040, 0x24404629, 0x00b10d02, 0x00b10d03 },
+   { 0x00800040, 0x24604629, 0x00b10d22, 0x00b10d23 },
+   { 0x00800040, 0x24804629, 0x00b10d42, 0x00b10d43 },
+   { 0x00800040, 0x24a04629, 0x00b10d62, 0x00b10d63 },
+   { 0x00800040, 0x24c04629, 0x00b10d82, 0x00b10d83 },
+   { 0x00800040, 0x24e04629, 0x00b10da2, 0x00b10da3 },
+   { 0x00800040, 0x25004629, 0x00b10dc2, 0x00b10dc3 },
+   { 0x00800040, 0x25204629, 0x00b10de2, 0x00b10de3 },
+   { 0x00800040, 0x25404629, 0x00b10e02, 0x00b10e03 },
+   { 0x00800040, 0x25604629, 0x00b10e22, 0x00b10e23 },
+   { 0x00800040, 0x23804529, 0x00b10380, 0x00b10c62 },
+   { 0x00800040, 0x23a04529, 0x00b103a0, 0x00b10c82 },
+   { 0x00800040, 0x23c04529, 0x00b103c0, 0x00b10ca2 },
+   { 0x00800040, 0x23e04529, 0x00b103e0, 0x00b10cc2 },
+   { 0x00800040, 0x24004529, 0x00b10400, 0x00b10ce2 },
+   { 0x00800040, 0x24204529, 0x00b10420, 0x00b10d02 },
+   { 0x00800040, 0x24404529, 0x00b10440, 0x00b10d22 },
+   { 0x00800040, 0x24604529, 0x00b10460, 0x00b10d42 },
+   { 0x00800040, 0x24804529, 0x00b10480, 0x00b10d62 },
+   { 0x00800040, 0x24a04529, 0x00b104a0, 0x00b10d82 },
+   { 0x00800040, 0x24c04529, 0x00b104c0, 0x00b10da2 },
+   { 0x00800040, 0x24e04529, 0x00b104e0, 0x00b10dc2 },
+   { 0x00800040, 0x25004529, 0x00b10500, 0x00b10de2 },
+   { 0x00800040, 0x25204529, 0x00b10520, 0x00b10e02 },
+   { 0x00800040, 0x25404529, 0x00b10540, 0x00b10e22 },
+   { 0x00800040, 0x25604529, 0x00b10560, 0x00b10f02 },
+   { 0x00800040, 0x23804529, 0x00b10380, 0x00b10c63 },
+   { 0x00800040, 0x23a04529, 0x00b103a0, 0x00b10c83 },
+   { 0x00800040, 0x23c04529, 0x00b103c0, 0x00b10ca3 },
+   { 0x00800040, 0x23e04529, 0x00b103e0, 0x00b10cc3 },
+   { 0x00800040, 0x24004529, 0x00b10400, 0x00b10ce3 },
+   { 0x00800040, 0x24204529, 0x00b10420, 0x00b10d03 },
+   { 0x00800040, 0x24404529, 0x00b10440, 0x00b10d23 },
+   { 0x00800040, 0x24604529, 0x00b10460, 0x00b10d43 },
+   { 0x00800040, 0x24804529, 0x00b10480, 0x00b10d63 },
+   { 0x00800040, 0x24a04529, 0x00b104a0, 0x00b10d83 },
+   { 0x00800040, 0x24c04529, 0x00b104c0, 0x00b10da3 },
+   { 0x00800040, 0x24e04529, 0x00b104e0, 0x00b10dc3 },
+   { 0x00800040, 0x25004529, 0x00b10500, 0x00b10de3 },
+   { 0x00800040, 0x25204529, 0x00b10520, 0x00b10e03 },
+   { 0x00800040, 0x25404529, 0x00b10540, 0x00b10e23 },
+   { 0x00800040, 0x25604529, 0x00b10560, 0x00b10f03 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000030 },
+   { 0x00800040, 0x23804629, 0x00b10c43, 0x00b10c44 },
+   { 0x00800040, 0x23a04629, 0x00b10c63, 0x00b10c64 },
+   { 0x00800040, 0x23c04629, 0x00b10c83, 0x00b10c84 },
+   { 0x00800040, 0x23e04629, 0x00b10ca3, 0x00b10ca4 },
+   { 0x00800040, 0x24004629, 0x00b10cc3, 0x00b10cc4 },
+   { 0x00800040, 0x24204629, 0x00b10ce3, 0x00b10ce4 },
+   { 0x00800040, 0x24404629, 0x00b10d03, 0x00b10d04 },
+   { 0x00800040, 0x24604629, 0x00b10d23, 0x00b10d24 },
+   { 0x00800040, 0x24804629, 0x00b10d43, 0x00b10d44 },
+   { 0x00800040, 0x24a04629, 0x00b10d63, 0x00b10d64 },
+   { 0x00800040, 0x24c04629, 0x00b10d83, 0x00b10d84 },
+   { 0x00800040, 0x24e04629, 0x00b10da3, 0x00b10da4 },
+   { 0x00800040, 0x25004629, 0x00b10dc3, 0x00b10dc4 },
+   { 0x00800040, 0x25204629, 0x00b10de3, 0x00b10de4 },
+   { 0x00800040, 0x25404629, 0x00b10e03, 0x00b10e04 },
+   { 0x00800040, 0x25604629, 0x00b10e23, 0x00b10e24 },
+   { 0x00800040, 0x23804529, 0x00b10380, 0x00b10c63 },
+   { 0x00800040, 0x23a04529, 0x00b103a0, 0x00b10c83 },
+   { 0x00800040, 0x23c04529, 0x00b103c0, 0x00b10ca3 },
+   { 0x00800040, 0x23e04529, 0x00b103e0, 0x00b10cc3 },
+   { 0x00800040, 0x24004529, 0x00b10400, 0x00b10ce3 },
+   { 0x00800040, 0x24204529, 0x00b10420, 0x00b10d03 },
+   { 0x00800040, 0x24404529, 0x00b10440, 0x00b10d23 },
+   { 0x00800040, 0x24604529, 0x00b10460, 0x00b10d43 },
+   { 0x00800040, 0x24804529, 0x00b10480, 0x00b10d63 },
+   { 0x00800040, 0x24a04529, 0x00b104a0, 0x00b10d83 },
+   { 0x00800040, 0x24c04529, 0x00b104c0, 0x00b10da3 },
+   { 0x00800040, 0x24e04529, 0x00b104e0, 0x00b10dc3 },
+   { 0x00800040, 0x25004529, 0x00b10500, 0x00b10de3 },
+   { 0x00800040, 0x25204529, 0x00b10520, 0x00b10e03 },
+   { 0x00800040, 0x25404529, 0x00b10540, 0x00b10e23 },
+   { 0x00800040, 0x25604529, 0x00b10560, 0x00b10f03 },
+   { 0x00800040, 0x23804529, 0x00b10380, 0x00b10c64 },
+   { 0x00800040, 0x23a04529, 0x00b103a0, 0x00b10c84 },
+   { 0x00800040, 0x23c04529, 0x00b103c0, 0x00b10ca4 },
+   { 0x00800040, 0x23e04529, 0x00b103e0, 0x00b10cc4 },
+   { 0x00800040, 0x24004529, 0x00b10400, 0x00b10ce4 },
+   { 0x00800040, 0x24204529, 0x00b10420, 0x00b10d04 },
+   { 0x00800040, 0x24404529, 0x00b10440, 0x00b10d24 },
+   { 0x00800040, 0x24604529, 0x00b10460, 0x00b10d44 },
+   { 0x00800040, 0x24804529, 0x00b10480, 0x00b10d64 },
+   { 0x00800040, 0x24a04529, 0x00b104a0, 0x00b10d84 },
+   { 0x00800040, 0x24c04529, 0x00b104c0, 0x00b10da4 },
+   { 0x00800040, 0x24e04529, 0x00b104e0, 0x00b10dc4 },
+   { 0x00800040, 0x25004529, 0x00b10500, 0x00b10de4 },
+   { 0x00800040, 0x25204529, 0x00b10520, 0x00b10e04 },
+   { 0x00800040, 0x25404529, 0x00b10540, 0x00b10e24 },
+   { 0x00800040, 0x25604529, 0x00b10560, 0x00b10f04 },
+   { 0x80800008, 0x23802d29, 0x00b10380, 0x00020002 },
+   { 0x80800008, 0x23a02d29, 0x00b103a0, 0x00020002 },
+   { 0x80800008, 0x23c02d29, 0x00b103c0, 0x00020002 },
+   { 0x80800008, 0x23e02d29, 0x00b103e0, 0x00020002 },
+   { 0x80800008, 0x24002d29, 0x00b10400, 0x00020002 },
+   { 0x80800008, 0x24202d29, 0x00b10420, 0x00020002 },
+   { 0x80800008, 0x24402d29, 0x00b10440, 0x00020002 },
+   { 0x80800008, 0x24602d29, 0x00b10460, 0x00020002 },
+   { 0x80800008, 0x24802d29, 0x00b10480, 0x00020002 },
+   { 0x80800008, 0x24a02d29, 0x00b104a0, 0x00020002 },
+   { 0x80800008, 0x24c02d29, 0x00b104c0, 0x00020002 },
+   { 0x80800008, 0x24e02d29, 0x00b104e0, 0x00020002 },
+   { 0x80800008, 0x25002d29, 0x00b10500, 0x00020002 },
+   { 0x80800008, 0x25202d29, 0x00b10520, 0x00020002 },
+   { 0x80800008, 0x25402d29, 0x00b10540, 0x00020002 },
+   { 0x80800008, 0x25602d29, 0x00b10560, 0x00020002 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x000000e5 },
+   { 0x00000001, 0x20480061, 0x00000000, 0x0007001f },
+   { 0x00800031, 0x2c401d29, 0x008d0040, 0x0418a007 },
+   { 0x00000005, 0x20580c21, 0x00210040, 0x00000003 },
+   { 0x00000041, 0x20581c21, 0x00210058, 0x00000011 },
+   { 0x00000040, 0x20440c21, 0x00210044, 0x00000008 },
+   { 0x00800031, 0x2d401d29, 0x008d0040, 0x0418a007 },
+   { 0x00000020, 0x34001400, 0x00001400, 0x00210058 },
+   { 0x80800042, 0x23804629, 0x00b10c40, 0x00b10c41 },
+   { 0x80800042, 0x23a04629, 0x00b10c60, 0x00b10c61 },
+   { 0x80800042, 0x23c04629, 0x00b10c80, 0x00b10c81 },
+   { 0x80800042, 0x23e04629, 0x00b10ca0, 0x00b10ca1 },
+   { 0x80800042, 0x24004629, 0x00b10cc0, 0x00b10cc1 },
+   { 0x80800042, 0x24204629, 0x00b10ce0, 0x00b10ce1 },
+   { 0x80800042, 0x24404629, 0x00b10d00, 0x00b10d01 },
+   { 0x80800042, 0x24604629, 0x00b10d20, 0x00b10d21 },
+   { 0x80800042, 0x24804629, 0x00b10d40, 0x00b10d41 },
+   { 0x80800042, 0x24a04629, 0x00b10d60, 0x00b10d61 },
+   { 0x80800042, 0x24c04629, 0x00b10d80, 0x00b10d81 },
+   { 0x80800042, 0x24e04629, 0x00b10da0, 0x00b10da1 },
+   { 0x80800042, 0x25004629, 0x00b10dc0, 0x00b10dc1 },
+   { 0x80800042, 0x25204629, 0x00b10de0, 0x00b10de1 },
+   { 0x80800042, 0x25404629, 0x00b10e00, 0x00b10e01 },
+   { 0x80800042, 0x25604629, 0x00b10e20, 0x00b10e21 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000032 },
+   { 0x80800042, 0x23804629, 0x00b10c41, 0x00b10c42 },
+   { 0x80800042, 0x23a04629, 0x00b10c61, 0x00b10c62 },
+   { 0x80800042, 0x23c04629, 0x00b10c81, 0x00b10c82 },
+   { 0x80800042, 0x23e04629, 0x00b10ca1, 0x00b10ca2 },
+   { 0x80800042, 0x24004629, 0x00b10cc1, 0x00b10cc2 },
+   { 0x80800042, 0x24204629, 0x00b10ce1, 0x00b10ce2 },
+   { 0x80800042, 0x24404629, 0x00b10d01, 0x00b10d02 },
+   { 0x80800042, 0x24604629, 0x00b10d21, 0x00b10d22 },
+   { 0x80800042, 0x24804629, 0x00b10d41, 0x00b10d42 },
+   { 0x80800042, 0x24a04629, 0x00b10d61, 0x00b10d62 },
+   { 0x80800042, 0x24c04629, 0x00b10d81, 0x00b10d82 },
+   { 0x80800042, 0x24e04629, 0x00b10da1, 0x00b10da2 },
+   { 0x80800042, 0x25004629, 0x00b10dc1, 0x00b10dc2 },
+   { 0x80800042, 0x25204629, 0x00b10de1, 0x00b10de2 },
+   { 0x80800042, 0x25404629, 0x00b10e01, 0x00b10e02 },
+   { 0x80800042, 0x25604629, 0x00b10e21, 0x00b10e22 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000021 },
+   { 0x80800042, 0x23804629, 0x00b10c42, 0x00b10c43 },
+   { 0x80800042, 0x23a04629, 0x00b10c62, 0x00b10c63 },
+   { 0x80800042, 0x23c04629, 0x00b10c82, 0x00b10c83 },
+   { 0x80800042, 0x23e04629, 0x00b10ca2, 0x00b10ca3 },
+   { 0x80800042, 0x24004629, 0x00b10cc2, 0x00b10cc3 },
+   { 0x80800042, 0x24204629, 0x00b10ce2, 0x00b10ce3 },
+   { 0x80800042, 0x24404629, 0x00b10d02, 0x00b10d03 },
+   { 0x80800042, 0x24604629, 0x00b10d22, 0x00b10d23 },
+   { 0x80800042, 0x24804629, 0x00b10d42, 0x00b10d43 },
+   { 0x80800042, 0x24a04629, 0x00b10d62, 0x00b10d63 },
+   { 0x80800042, 0x24c04629, 0x00b10d82, 0x00b10d83 },
+   { 0x80800042, 0x24e04629, 0x00b10da2, 0x00b10da3 },
+   { 0x80800042, 0x25004629, 0x00b10dc2, 0x00b10dc3 },
+   { 0x80800042, 0x25204629, 0x00b10de2, 0x00b10de3 },
+   { 0x80800042, 0x25404629, 0x00b10e02, 0x00b10e03 },
+   { 0x80800042, 0x25604629, 0x00b10e22, 0x00b10e23 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000010 },
+   { 0x80800042, 0x23804629, 0x00b10c43, 0x00b10c44 },
+   { 0x80800042, 0x23a04629, 0x00b10c63, 0x00b10c64 },
+   { 0x80800042, 0x23c04629, 0x00b10c83, 0x00b10c84 },
+   { 0x80800042, 0x23e04629, 0x00b10ca3, 0x00b10ca4 },
+   { 0x80800042, 0x24004629, 0x00b10cc3, 0x00b10cc4 },
+   { 0x80800042, 0x24204629, 0x00b10ce3, 0x00b10ce4 },
+   { 0x80800042, 0x24404629, 0x00b10d03, 0x00b10d04 },
+   { 0x80800042, 0x24604629, 0x00b10d23, 0x00b10d24 },
+   { 0x80800042, 0x24804629, 0x00b10d43, 0x00b10d44 },
+   { 0x80800042, 0x24a04629, 0x00b10d63, 0x00b10d64 },
+   { 0x80800042, 0x24c04629, 0x00b10d83, 0x00b10d84 },
+   { 0x80800042, 0x24e04629, 0x00b10da3, 0x00b10da4 },
+   { 0x80800042, 0x25004629, 0x00b10dc3, 0x00b10dc4 },
+   { 0x80800042, 0x25204629, 0x00b10de3, 0x00b10de4 },
+   { 0x80800042, 0x25404629, 0x00b10e03, 0x00b10e04 },
+   { 0x80800042, 0x25604629, 0x00b10e23, 0x00b10e24 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x0000009a },
+   { 0x01000005, 0x20000d3c, 0x00210e70, 0x00000001 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x0000004e },
+   { 0x00000001, 0x20480061, 0x00000000, 0x0007001f },
+   { 0x00800031, 0x2c401d29, 0x008d0040, 0x0418a007 },
+   { 0x00000005, 0x20580c21, 0x00210040, 0x00000003 },
+   { 0x00000041, 0x20580c21, 0x00210058, 0x00000011 },
+   { 0x00000040, 0x20440c21, 0x00210044, 0x00000008 },
+   { 0x00800031, 0x2d401d29, 0x008d0040, 0x0418a007 },
+   { 0x00000040, 0x20440c21, 0x00210044, 0x00000008 },
+   { 0x00000001, 0x20480061, 0x00000000, 0x0000001f },
+   { 0x00800031, 0x2f001d29, 0x008d0040, 0x0411a007 },
+   { 0x00000020, 0x34001400, 0x00001400, 0x00210058 },
+   { 0x80800042, 0x23804629, 0x00b10c40, 0x00b10c60 },
+   { 0x80800042, 0x23a04629, 0x00b10c60, 0x00b10c80 },
+   { 0x80800042, 0x23c04629, 0x00b10c80, 0x00b10ca0 },
+   { 0x80800042, 0x23e04629, 0x00b10ca0, 0x00b10cc0 },
+   { 0x80800042, 0x24004629, 0x00b10cc0, 0x00b10ce0 },
+   { 0x80800042, 0x24204629, 0x00b10ce0, 0x00b10d00 },
+   { 0x80800042, 0x24404629, 0x00b10d00, 0x00b10d20 },
+   { 0x80800042, 0x24604629, 0x00b10d20, 0x00b10d40 },
+   { 0x80800042, 0x24804629, 0x00b10d40, 0x00b10d60 },
+   { 0x80800042, 0x24a04629, 0x00b10d60, 0x00b10d80 },
+   { 0x80800042, 0x24c04629, 0x00b10d80, 0x00b10da0 },
+   { 0x80800042, 0x24e04629, 0x00b10da0, 0x00b10dc0 },
+   { 0x80800042, 0x25004629, 0x00b10dc0, 0x00b10de0 },
+   { 0x80800042, 0x25204629, 0x00b10de0, 0x00b10e00 },
+   { 0x80800042, 0x25404629, 0x00b10e00, 0x00b10e20 },
+   { 0x80800042, 0x25604629, 0x00b10e20, 0x00b10f00 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000032 },
+   { 0x80800042, 0x23804629, 0x00b10c41, 0x00b10c61 },
+   { 0x80800042, 0x23a04629, 0x00b10c61, 0x00b10c81 },
+   { 0x80800042, 0x23c04629, 0x00b10c81, 0x00b10ca1 },
+   { 0x80800042, 0x23e04629, 0x00b10ca1, 0x00b10cc1 },
+   { 0x80800042, 0x24004629, 0x00b10cc1, 0x00b10ce1 },
+   { 0x80800042, 0x24204629, 0x00b10ce1, 0x00b10d01 },
+   { 0x80800042, 0x24404629, 0x00b10d01, 0x00b10d21 },
+   { 0x80800042, 0x24604629, 0x00b10d21, 0x00b10d41 },
+   { 0x80800042, 0x24804629, 0x00b10d41, 0x00b10d61 },
+   { 0x80800042, 0x24a04629, 0x00b10d61, 0x00b10d81 },
+   { 0x80800042, 0x24c04629, 0x00b10d81, 0x00b10da1 },
+   { 0x80800042, 0x24e04629, 0x00b10da1, 0x00b10dc1 },
+   { 0x80800042, 0x25004629, 0x00b10dc1, 0x00b10de1 },
+   { 0x80800042, 0x25204629, 0x00b10de1, 0x00b10e01 },
+   { 0x80800042, 0x25404629, 0x00b10e01, 0x00b10e21 },
+   { 0x80800042, 0x25604629, 0x00b10e21, 0x00b10f01 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000021 },
+   { 0x80800042, 0x23804629, 0x00b10c42, 0x00b10c62 },
+   { 0x80800042, 0x23a04629, 0x00b10c62, 0x00b10c82 },
+   { 0x80800042, 0x23c04629, 0x00b10c82, 0x00b10ca2 },
+   { 0x80800042, 0x23e04629, 0x00b10ca2, 0x00b10cc2 },
+   { 0x80800042, 0x24004629, 0x00b10cc2, 0x00b10ce2 },
+   { 0x80800042, 0x24204629, 0x00b10ce2, 0x00b10d02 },
+   { 0x80800042, 0x24404629, 0x00b10d02, 0x00b10d22 },
+   { 0x80800042, 0x24604629, 0x00b10d22, 0x00b10d42 },
+   { 0x80800042, 0x24804629, 0x00b10d42, 0x00b10d62 },
+   { 0x80800042, 0x24a04629, 0x00b10d62, 0x00b10d82 },
+   { 0x80800042, 0x24c04629, 0x00b10d82, 0x00b10da2 },
+   { 0x80800042, 0x24e04629, 0x00b10da2, 0x00b10dc2 },
+   { 0x80800042, 0x25004629, 0x00b10dc2, 0x00b10de2 },
+   { 0x80800042, 0x25204629, 0x00b10de2, 0x00b10e02 },
+   { 0x80800042, 0x25404629, 0x00b10e02, 0x00b10e22 },
+   { 0x80800042, 0x25604629, 0x00b10e22, 0x00b10f02 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000010 },
+   { 0x80800042, 0x23804629, 0x00b10c43, 0x00b10c63 },
+   { 0x80800042, 0x23a04629, 0x00b10c63, 0x00b10c83 },
+   { 0x80800042, 0x23c04629, 0x00b10c83, 0x00b10ca3 },
+   { 0x80800042, 0x23e04629, 0x00b10ca3, 0x00b10cc3 },
+   { 0x80800042, 0x24004629, 0x00b10cc3, 0x00b10ce3 },
+   { 0x80800042, 0x24204629, 0x00b10ce3, 0x00b10d03 },
+   { 0x80800042, 0x24404629, 0x00b10d03, 0x00b10d23 },
+   { 0x80800042, 0x24604629, 0x00b10d23, 0x00b10d43 },
+   { 0x80800042, 0x24804629, 0x00b10d43, 0x00b10d63 },
+   { 0x80800042, 0x24a04629, 0x00b10d63, 0x00b10d83 },
+   { 0x80800042, 0x24c04629, 0x00b10d83, 0x00b10da3 },
+   { 0x80800042, 0x24e04629, 0x00b10da3, 0x00b10dc3 },
+   { 0x80800042, 0x25004629, 0x00b10dc3, 0x00b10de3 },
+   { 0x80800042, 0x25204629, 0x00b10de3, 0x00b10e03 },
+   { 0x80800042, 0x25404629, 0x00b10e03, 0x00b10e23 },
+   { 0x80800042, 0x25604629, 0x00b10e23, 0x00b10f03 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x0000004a },
+   { 0x00000001, 0x20480061, 0x00000000, 0x0007001f },
+   { 0x00800031, 0x2c401d29, 0x008d0040, 0x0418a007 },
+   { 0x00000040, 0x20440c21, 0x00210044, 0x00000008 },
+   { 0x00800031, 0x2d401d29, 0x008d0040, 0x0418a007 },
+   { 0x00000005, 0x20580c21, 0x00210040, 0x00000003 },
+   { 0x00000041, 0x20580c21, 0x00210058, 0x00000011 },
+   { 0x00000020, 0x34001400, 0x00001400, 0x00210058 },
+   { 0x00800001, 0x23800229, 0x00b10c40, 0x00000000 },
+   { 0x00800001, 0x23a00229, 0x00b10c60, 0x00000000 },
+   { 0x00800001, 0x23c00229, 0x00b10c80, 0x00000000 },
+   { 0x00800001, 0x23e00229, 0x00b10ca0, 0x00000000 },
+   { 0x00800001, 0x24000229, 0x00b10cc0, 0x00000000 },
+   { 0x00800001, 0x24200229, 0x00b10ce0, 0x00000000 },
+   { 0x00800001, 0x24400229, 0x00b10d00, 0x00000000 },
+   { 0x00800001, 0x24600229, 0x00b10d20, 0x00000000 },
+   { 0x00800001, 0x24800229, 0x00b10d40, 0x00000000 },
+   { 0x00800001, 0x24a00229, 0x00b10d60, 0x00000000 },
+   { 0x00800001, 0x24c00229, 0x00b10d80, 0x00000000 },
+   { 0x00800001, 0x24e00229, 0x00b10da0, 0x00000000 },
+   { 0x00800001, 0x25000229, 0x00b10dc0, 0x00000000 },
+   { 0x00800001, 0x25200229, 0x00b10de0, 0x00000000 },
+   { 0x00800001, 0x25400229, 0x00b10e00, 0x00000000 },
+   { 0x00800001, 0x25600229, 0x00b10e20, 0x00000000 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000032 },
+   { 0x00800001, 0x23800229, 0x00b10c41, 0x00000000 },
+   { 0x00800001, 0x23a00229, 0x00b10c61, 0x00000000 },
+   { 0x00800001, 0x23c00229, 0x00b10c81, 0x00000000 },
+   { 0x00800001, 0x23e00229, 0x00b10ca1, 0x00000000 },
+   { 0x00800001, 0x24000229, 0x00b10cc1, 0x00000000 },
+   { 0x00800001, 0x24200229, 0x00b10ce1, 0x00000000 },
+   { 0x00800001, 0x24400229, 0x00b10d01, 0x00000000 },
+   { 0x00800001, 0x24600229, 0x00b10d21, 0x00000000 },
+   { 0x00800001, 0x24800229, 0x00b10d41, 0x00000000 },
+   { 0x00800001, 0x24a00229, 0x00b10d61, 0x00000000 },
+   { 0x00800001, 0x24c00229, 0x00b10d81, 0x00000000 },
+   { 0x00800001, 0x24e00229, 0x00b10da1, 0x00000000 },
+   { 0x00800001, 0x25000229, 0x00b10dc1, 0x00000000 },
+   { 0x00800001, 0x25200229, 0x00b10de1, 0x00000000 },
+   { 0x00800001, 0x25400229, 0x00b10e01, 0x00000000 },
+   { 0x00800001, 0x25600229, 0x00b10e21, 0x00000000 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000021 },
+   { 0x00800001, 0x23800229, 0x00b10c42, 0x00000000 },
+   { 0x00800001, 0x23a00229, 0x00b10c62, 0x00000000 },
+   { 0x00800001, 0x23c00229, 0x00b10c82, 0x00000000 },
+   { 0x00800001, 0x23e00229, 0x00b10ca2, 0x00000000 },
+   { 0x00800001, 0x24000229, 0x00b10cc2, 0x00000000 },
+   { 0x00800001, 0x24200229, 0x00b10ce2, 0x00000000 },
+   { 0x00800001, 0x24400229, 0x00b10d02, 0x00000000 },
+   { 0x00800001, 0x24600229, 0x00b10d22, 0x00000000 },
+   { 0x00800001, 0x24800229, 0x00b10d42, 0x00000000 },
+   { 0x00800001, 0x24a00229, 0x00b10d62, 0x00000000 },
+   { 0x00800001, 0x24c00229, 0x00b10d82, 0x00000000 },
+   { 0x00800001, 0x24e00229, 0x00b10da2, 0x00000000 },
+   { 0x00800001, 0x25000229, 0x00b10dc2, 0x00000000 },
+   { 0x00800001, 0x25200229, 0x00b10de2, 0x00000000 },
+   { 0x00800001, 0x25400229, 0x00b10e02, 0x00000000 },
+   { 0x00800001, 0x25600229, 0x00b10e22, 0x00000000 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000010 },
+   { 0x00800001, 0x23800229, 0x00b10c43, 0x00000000 },
+   { 0x00800001, 0x23a00229, 0x00b10c63, 0x00000000 },
+   { 0x00800001, 0x23c00229, 0x00b10c83, 0x00000000 },
+   { 0x00800001, 0x23e00229, 0x00b10ca3, 0x00000000 },
+   { 0x00800001, 0x24000229, 0x00b10cc3, 0x00000000 },
+   { 0x00800001, 0x24200229, 0x00b10ce3, 0x00000000 },
+   { 0x00800001, 0x24400229, 0x00b10d03, 0x00000000 },
+   { 0x00800001, 0x24600229, 0x00b10d23, 0x00000000 },
+   { 0x00800001, 0x24800229, 0x00b10d43, 0x00000000 },
+   { 0x00800001, 0x24a00229, 0x00b10d63, 0x00000000 },
+   { 0x00800001, 0x24c00229, 0x00b10d83, 0x00000000 },
+   { 0x00800001, 0x24e00229, 0x00b10da3, 0x00000000 },
+   { 0x00800001, 0x25000229, 0x00b10dc3, 0x00000000 },
+   { 0x00800001, 0x25200229, 0x00b10de3, 0x00000000 },
+   { 0x00800001, 0x25400229, 0x00b10e03, 0x00000000 },
+   { 0x00800001, 0x25600229, 0x00b10e23, 0x00000000 },
+   { 0x00200008, 0x20200c21, 0x00450e60, 0x00000001 },
+   { 0x0020000c, 0x2e6e3dad, 0x00450e6e, 0x00010001 },
+   { 0x0020000c, 0x202e3dad, 0x00450e6e, 0x00010001 },
+   { 0x00200040, 0x20403421, 0x00450020, 0x0045002e },
+   { 0x00000001, 0x20480061, 0x00000000, 0x0007000f },
+   { 0x00000005, 0x20580c21, 0x00210040, 0x00000003 },
+   { 0x00800031, 0x2ac01d29, 0x008d0040, 0x0414a008 },
+   { 0x00800031, 0x2b401d29, 0x008d0040, 0x0414a009 },
+   { 0x00000041, 0x20580c21, 0x00210058, 0x00000009 },
+   { 0x00000020, 0x34001400, 0x00001400, 0x00210058 },
+   { 0x00800001, 0x25800229, 0x00ad0ac0, 0x00000000 },
+   { 0x00800001, 0x25a00229, 0x00ad0ae0, 0x00000000 },
+   { 0x00800001, 0x25c00229, 0x00ad0b00, 0x00000000 },
+   { 0x00800001, 0x25e00229, 0x00ad0b20, 0x00000000 },
+   { 0x00800001, 0x26000229, 0x00ad0b40, 0x00000000 },
+   { 0x00800001, 0x26200229, 0x00ad0b60, 0x00000000 },
+   { 0x00800001, 0x26400229, 0x00ad0b80, 0x00000000 },
+   { 0x00800001, 0x26600229, 0x00ad0ba0, 0x00000000 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x0000001a },
+   { 0x00800001, 0x25800229, 0x00ad0ac1, 0x00000000 },
+   { 0x00800001, 0x25a00229, 0x00ad0ae1, 0x00000000 },
+   { 0x00800001, 0x25c00229, 0x00ad0b01, 0x00000000 },
+   { 0x00800001, 0x25e00229, 0x00ad0b21, 0x00000000 },
+   { 0x00800001, 0x26000229, 0x00ad0b41, 0x00000000 },
+   { 0x00800001, 0x26200229, 0x00ad0b61, 0x00000000 },
+   { 0x00800001, 0x26400229, 0x00ad0b81, 0x00000000 },
+   { 0x00800001, 0x26600229, 0x00ad0ba1, 0x00000000 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000011 },
+   { 0x00800001, 0x25800229, 0x00ad0ac2, 0x00000000 },
+   { 0x00800001, 0x25a00229, 0x00ad0ae2, 0x00000000 },
+   { 0x00800001, 0x25c00229, 0x00ad0b02, 0x00000000 },
+   { 0x00800001, 0x25e00229, 0x00ad0b22, 0x00000000 },
+   { 0x00800001, 0x26000229, 0x00ad0b42, 0x00000000 },
+   { 0x00800001, 0x26200229, 0x00ad0b62, 0x00000000 },
+   { 0x00800001, 0x26400229, 0x00ad0b82, 0x00000000 },
+   { 0x00800001, 0x26600229, 0x00ad0ba2, 0x00000000 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000008 },
+   { 0x00800001, 0x25800229, 0x00ad0ac3, 0x00000000 },
+   { 0x00800001, 0x25a00229, 0x00ad0ae3, 0x00000000 },
+   { 0x00800001, 0x25c00229, 0x00ad0b03, 0x00000000 },
+   { 0x00800001, 0x25e00229, 0x00ad0b23, 0x00000000 },
+   { 0x00800001, 0x26000229, 0x00ad0b43, 0x00000000 },
+   { 0x00800001, 0x26200229, 0x00ad0b63, 0x00000000 },
+   { 0x00800001, 0x26400229, 0x00ad0b83, 0x00000000 },
+   { 0x00800001, 0x26600229, 0x00ad0ba3, 0x00000000 },
+   { 0x00600001, 0x20200021, 0x008d0980, 0x00000000 },
+   { 0x00800001, 0x458101f1, 0x00000000, 0x00000000 },
+   { 0x00800001, 0x45a101f1, 0x00000000, 0x00000000 },
+   { 0x00800001, 0x45c101f1, 0x00000000, 0x00000000 },
+   { 0x00800001, 0x45e101f1, 0x00000000, 0x00000000 },
+   { 0x00800001, 0x460101f1, 0x00000000, 0x00000000 },
+   { 0x00800001, 0x462101f1, 0x00000000, 0x00000000 },
+   { 0x00800001, 0x464101f1, 0x00000000, 0x00000000 },
+   { 0x00800001, 0x466101f1, 0x00000000, 0x00000000 },
+   { 0x02000005, 0x20002e3c, 0x0021003e, 0x00010001 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x00000011 },
+   { 0x00800040, 0x238045ad, 0x00b10060, 0x00b20380 },
+   { 0x00800040, 0x23a045ad, 0x00b10080, 0x00b203a0 },
+   { 0x00800040, 0x23c045ad, 0x00b100a0, 0x00b203c0 },
+   { 0x00800040, 0x23e045ad, 0x00b100c0, 0x00b203e0 },
+   { 0x00800040, 0x240045ad, 0x00b100e0, 0x00b20400 },
+   { 0x00800040, 0x242045ad, 0x00b10100, 0x00b20420 },
+   { 0x00800040, 0x244045ad, 0x00b10120, 0x00b20440 },
+   { 0x00800040, 0x246045ad, 0x00b10140, 0x00b20460 },
+   { 0x00800040, 0x248045ad, 0x00b10160, 0x00b20480 },
+   { 0x00800040, 0x24a045ad, 0x00b10180, 0x00b204a0 },
+   { 0x00800040, 0x24c045ad, 0x00b101a0, 0x00b204c0 },
+   { 0x00800040, 0x24e045ad, 0x00b101c0, 0x00b204e0 },
+   { 0x00800040, 0x250045ad, 0x00b101e0, 0x00b20500 },
+   { 0x00800040, 0x252045ad, 0x00b10200, 0x00b20520 },
+   { 0x00800040, 0x254045ad, 0x00b10220, 0x00b20540 },
+   { 0x00800040, 0x256045ad, 0x00b10240, 0x00b20560 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000010 },
+   { 0x00800040, 0x238045ad, 0x00b10060, 0x00b20380 },
+   { 0x00800040, 0x23a045ad, 0x00b10160, 0x00b203a0 },
+   { 0x00800040, 0x23c045ad, 0x00b10080, 0x00b203c0 },
+   { 0x00800040, 0x23e045ad, 0x00b10180, 0x00b203e0 },
+   { 0x00800040, 0x240045ad, 0x00b100a0, 0x00b20400 },
+   { 0x00800040, 0x242045ad, 0x00b101a0, 0x00b20420 },
+   { 0x00800040, 0x244045ad, 0x00b100c0, 0x00b20440 },
+   { 0x00800040, 0x246045ad, 0x00b101c0, 0x00b20460 },
+   { 0x00800040, 0x248045ad, 0x00b100e0, 0x00b20480 },
+   { 0x00800040, 0x24a045ad, 0x00b101e0, 0x00b204a0 },
+   { 0x00800040, 0x24c045ad, 0x00b10100, 0x00b204c0 },
+   { 0x00800040, 0x24e045ad, 0x00b10200, 0x00b204e0 },
+   { 0x00800040, 0x250045ad, 0x00b10120, 0x00b20500 },
+   { 0x00800040, 0x252045ad, 0x00b10220, 0x00b20520 },
+   { 0x00800040, 0x254045ad, 0x00b10140, 0x00b20540 },
+   { 0x00800040, 0x256045ad, 0x00b10240, 0x00b20560 },
+   { 0x00000001, 0x20280061, 0x00000000, 0x000f000f },
+   { 0x80800001, 0x438001b1, 0x00b10380, 0x00000000 },
+   { 0x80800001, 0x43a001b1, 0x00b103a0, 0x00000000 },
+   { 0x80800001, 0x43c001b1, 0x00b103c0, 0x00000000 },
+   { 0x80800001, 0x43e001b1, 0x00b103e0, 0x00000000 },
+   { 0x80800001, 0x440001b1, 0x00b10400, 0x00000000 },
+   { 0x80800001, 0x442001b1, 0x00b10420, 0x00000000 },
+   { 0x80800001, 0x444001b1, 0x00b10440, 0x00000000 },
+   { 0x80800001, 0x446001b1, 0x00b10460, 0x00000000 },
+   { 0x80800001, 0x448001b1, 0x00b10480, 0x00000000 },
+   { 0x80800001, 0x44a001b1, 0x00b104a0, 0x00000000 },
+   { 0x80800001, 0x44c001b1, 0x00b104c0, 0x00000000 },
+   { 0x80800001, 0x44e001b1, 0x00b104e0, 0x00000000 },
+   { 0x80800001, 0x450001b1, 0x00b10500, 0x00000000 },
+   { 0x80800001, 0x452001b1, 0x00b10520, 0x00000000 },
+   { 0x80800001, 0x454001b1, 0x00b10540, 0x00000000 },
+   { 0x80800001, 0x456001b1, 0x00b10560, 0x00000000 },
+   { 0x00800001, 0x20200232, 0x00b20380, 0x00000000 },
+   { 0x00800001, 0x20300232, 0x00b203a0, 0x00000000 },
+   { 0x00800001, 0x20400232, 0x00b203c0, 0x00000000 },
+   { 0x00800001, 0x20500232, 0x00b203e0, 0x00000000 },
+   { 0x00800001, 0x20600232, 0x00b20400, 0x00000000 },
+   { 0x00800001, 0x20700232, 0x00b20420, 0x00000000 },
+   { 0x00800001, 0x20800232, 0x00b20440, 0x00000000 },
+   { 0x00800001, 0x20900232, 0x00b20460, 0x00000000 },
+   { 0x00800001, 0x20a00232, 0x00b20480, 0x00000000 },
+   { 0x00800001, 0x20b00232, 0x00b204a0, 0x00000000 },
+   { 0x00800001, 0x20c00232, 0x00b204c0, 0x00000000 },
+   { 0x00800001, 0x20d00232, 0x00b204e0, 0x00000000 },
+   { 0x00800001, 0x20e00232, 0x00b20500, 0x00000000 },
+   { 0x00800001, 0x20f00232, 0x00b20520, 0x00000000 },
+   { 0x00800001, 0x21000232, 0x00b20540, 0x00000000 },
+   { 0x00800001, 0x21100232, 0x00b20560, 0x00000000 },
+   { 0x00800031, 0x24001d28, 0x008d0020, 0x05902000 },
+   { 0x00000001, 0x20280061, 0x00000000, 0x00070007 },
+   { 0x00200008, 0x20201c21, 0x00450020, 0x00000001 },
+   { 0x00800040, 0x258025a9, 0x00b10260, 0x00b10580 },
+   { 0x00800040, 0x25a025a9, 0x00b10280, 0x00b105a0 },
+   { 0x00800040, 0x25c025a9, 0x00b102a0, 0x00b105c0 },
+   { 0x00800040, 0x25e025a9, 0x00b102c0, 0x00b105e0 },
+   { 0x80800001, 0x45800131, 0x00b10580, 0x00000000 },
+   { 0x80800001, 0x45a00131, 0x00b105a0, 0x00000000 },
+   { 0x80800001, 0x45c00131, 0x00b105c0, 0x00000000 },
+   { 0x80800001, 0x45e00131, 0x00b105e0, 0x00000000 },
+   { 0x00800001, 0x20200232, 0x00b20580, 0x00000000 },
+   { 0x00800001, 0x20300232, 0x00b205a0, 0x00000000 },
+   { 0x00800001, 0x20400232, 0x00b205c0, 0x00000000 },
+   { 0x00800001, 0x20500232, 0x00b205e0, 0x00000000 },
+   { 0x00800031, 0x24001d28, 0x008d0020, 0x05302001 },
+   { 0x00800040, 0x260025a9, 0x00b102e0, 0x00b10600 },
+   { 0x00800040, 0x262025a9, 0x00b10300, 0x00b10620 },
+   { 0x00800040, 0x264025a9, 0x00b10320, 0x00b10640 },
+   { 0x00800040, 0x266025a9, 0x00b10340, 0x00b10660 },
+   { 0x80800001, 0x46000131, 0x00b10600, 0x00000000 },
+   { 0x80800001, 0x46200131, 0x00b10620, 0x00000000 },
+   { 0x80800001, 0x46400131, 0x00b10640, 0x00000000 },
+   { 0x80800001, 0x46600131, 0x00b10660, 0x00000000 },
+   { 0x00800001, 0x20200232, 0x00b20600, 0x00000000 },
+   { 0x00800001, 0x20300232, 0x00b20620, 0x00000000 },
+   { 0x00800001, 0x20400232, 0x00b20640, 0x00000000 },
+   { 0x00800001, 0x20500232, 0x00b20660, 0x00000000 },
+   { 0x00800031, 0x24001d28, 0x008d0020, 0x05302002 },
+   { 0x00800031, 0x24001d28, 0x008d0000, 0x87100000 },
+   { 0x00800031, 0x24001d28, 0x008d0000, 0x87100000 },
diff --git a/src/xvmc/shader/mc/frame_backward_igd.g4a b/src/xvmc/shader/mc/frame_backward_igd.g4a
new file mode 100644
index 0000000..338ae1e
--- /dev/null
+++ b/src/xvmc/shader/mc/frame_backward_igd.g4a
@@ -0,0 +1,69 @@
+/*
+ * Copyright © 2008 Intel Corporation
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice (including the next
+ * paragraph) shall be included in all copies or substantial portions of the
+ * Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
+ * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+ * SOFTWARE.
+ *
+ * Author:
+ *    Zou Nan hai <nanhai.zou at intel.com>
+ *    Zhang Hua jun <huajun.zhang at intel.com>
+ *    Xing Dong sheng <dongsheng.xing at intel.com>
+ *
+ */
+
+/* shader for backward predict mc
+*/
+mov (8) g76.0<1>UD g1.0<8,8,1>UD {align1};
+//mov (8) g77.0<1>UD g2.0<8,8,1>UD {align1};
+
+include(`block_clear.g4i')
+
+mov (2) g1.14<1>UW g1.18<2,2,1>UW {align1};
+/* save payload */
+mov (8) g115.0<1>UD g1.0<8,8,1>UD {align1}; 
+/* 8x8 media read/write payload */
+mov (1) g1.8<1>UD 0x0070007UD {align1};  
+/* save payload, again */
+define(`dest', `g118')
+define(`input_surface',	`7')
+define(`mv1',	`g115.14')
+define(`mv2',	`g115.16')
+/* Y */
+/* (x', y') = (x, y) + (motion_vector.x >> 1, motion_vector.y >> 1) */
+asr (2) g1.14<1>W g115.14<2,2,1>W 1W {align1};
+add (2) g2.0<1>UD g115.0<2,2,1>UD g1.14<2,2,1>W {align1};
+include(`motion_frame_y_igd.g4i')
+/* motion_vector = motion_vector >> 1 */
+/* (x', y') = (x, y) + (motion_vector.x >> 1, motion_vector.y >> 1) */
+shr (2) g1.0<1>UD g115.0<2,2,1>UD 1UD {align1};
+asr (2) g115.14<1>W g115.14<2,2,1>W 1W {align1};
+asr (2) g1.14<1>W g115.14<2,2,1>W 1W {align1};
+add (2) g2.0<1>UD g1.0<2,2,1>UD g1.14<2,2,1>W {align1};
+/* U */
+define(`input_surface1',	`8')
+define(`input_surface2',	`9')
+mov (1) g2.8<1>UD 0x007000fUD  {align1};
+include(`motion_frame_uv_igd.g4i')
+
+/* V */
+/* (x', y') = (x, y) + (motion_vector.x >> 1, motion_vector.y >> 1) */
+include(`addidct.g4i')
+
+send (16) 0 acc0<1>UW g0<8,8,1>UW 
+	thread_spawner(0, 0, 0) mlen 1 rlen 0 { align1 EOT};
diff --git a/src/xvmc/shader/mc/frame_backward_igd.g4b b/src/xvmc/shader/mc/frame_backward_igd.g4b
new file mode 100644
index 0000000..dbb1320
--- /dev/null
+++ b/src/xvmc/shader/mc/frame_backward_igd.g4b
@@ -0,0 +1,374 @@
+   { 0x00600001, 0x29800021, 0x008d0020, 0x00000000 },
+   { 0x02000005, 0x20000c3c, 0x00210040, 0x00000001 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x00000030 },
+   { 0x00000040, 0x20480c21, 0x00210988, 0x00000000 },
+   { 0x00800031, 0x20601c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x20801c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x20a01c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x20c01c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x20e01c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x21001c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x21201c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x21401c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x21601c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x21801c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x21a01c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x21c01c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x21e01c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x22001c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x22201c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x22401c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x22601c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x22801c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x22a01c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x22c01c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x22e01c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x23001c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x23201c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x23401c21, 0x00b10040, 0x04110203 },
+   { 0x02000005, 0x20002d3c, 0x0021098c, 0x00200020 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x00000008 },
+   { 0x00600001, 0x20600169, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x20800169, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x20a00169, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x20c00169, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x20e00169, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x21000169, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x21200169, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x21400169, 0x00000000, 0x00000000 },
+   { 0x02000005, 0x20002d3c, 0x0021002c, 0x00100010 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x00000008 },
+   { 0x00600001, 0x20700169, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x20900169, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x20b00169, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x20d00169, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x20f00169, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x21100169, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x21300169, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x21500169, 0x00000000, 0x00000000 },
+   { 0x02000005, 0x20002d3c, 0x0021002c, 0x00080008 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x00000008 },
+   { 0x00600001, 0x21600169, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x21800169, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x21a00169, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x21c00169, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x21e00169, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x22000169, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x22200169, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x22400169, 0x00000000, 0x00000000 },
+   { 0x02000005, 0x20002d3c, 0x0021002c, 0x00040004 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x00000008 },
+   { 0x00600001, 0x21700169, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x21900169, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x21b00169, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x21d00169, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x21f00169, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x22100169, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x22300169, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x22500169, 0x00000000, 0x00000000 },
+   { 0x02000005, 0x20002d3c, 0x0021002c, 0x00020002 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x00000004 },
+   { 0x00800001, 0x22600169, 0x00000000, 0x00000000 },
+   { 0x00800001, 0x22800169, 0x00000000, 0x00000000 },
+   { 0x00800001, 0x22a00169, 0x00000000, 0x00000000 },
+   { 0x00800001, 0x22c00169, 0x00000000, 0x00000000 },
+   { 0x02000005, 0x20002d3c, 0x0021002c, 0x00010001 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x00000004 },
+   { 0x00800001, 0x22e00169, 0x00000000, 0x00000000 },
+   { 0x00800001, 0x23000169, 0x00000000, 0x00000000 },
+   { 0x00800001, 0x23200169, 0x00000000, 0x00000000 },
+   { 0x00800001, 0x23400169, 0x00000000, 0x00000000 },
+   { 0x00200001, 0x202e0129, 0x00450032, 0x00000000 },
+   { 0x00600001, 0x2e600021, 0x008d0020, 0x00000000 },
+   { 0x00000001, 0x20280061, 0x00000000, 0x00070007 },
+   { 0x0020000c, 0x202e3dad, 0x00450e6e, 0x00010001 },
+   { 0x00200040, 0x20403421, 0x00450e60, 0x0045002e },
+   { 0x01000005, 0x20000d3c, 0x00210e6e, 0x00000001 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x0000005f },
+   { 0x01000005, 0x20000d3c, 0x00210e70, 0x00000001 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x00000048 },
+   { 0x00000001, 0x20480061, 0x00000000, 0x0007001f },
+   { 0x00800031, 0x2c401d29, 0x008d0040, 0x0418a007 },
+   { 0x00000040, 0x20440c21, 0x00210044, 0x00000008 },
+   { 0x00800031, 0x2d401d29, 0x008d0040, 0x0418a007 },
+   { 0x00000040, 0x20440c21, 0x00210044, 0x00000008 },
+   { 0x00000001, 0x20480061, 0x00000000, 0x0000001f },
+   { 0x00800031, 0x2f001d29, 0x008d0040, 0x0411a007 },
+   { 0x00800040, 0x23804629, 0x00b10c40, 0x00b10c41 },
+   { 0x00800040, 0x23a04629, 0x00b10c60, 0x00b10c61 },
+   { 0x00800040, 0x23c04629, 0x00b10c80, 0x00b10c81 },
+   { 0x00800040, 0x23e04629, 0x00b10ca0, 0x00b10ca1 },
+   { 0x00800040, 0x24004629, 0x00b10cc0, 0x00b10cc1 },
+   { 0x00800040, 0x24204629, 0x00b10ce0, 0x00b10ce1 },
+   { 0x00800040, 0x24404629, 0x00b10d00, 0x00b10d01 },
+   { 0x00800040, 0x24604629, 0x00b10d20, 0x00b10d21 },
+   { 0x00800040, 0x24804629, 0x00b10d40, 0x00b10d41 },
+   { 0x00800040, 0x24a04629, 0x00b10d60, 0x00b10d61 },
+   { 0x00800040, 0x24c04629, 0x00b10d80, 0x00b10d81 },
+   { 0x00800040, 0x24e04629, 0x00b10da0, 0x00b10da1 },
+   { 0x00800040, 0x25004629, 0x00b10dc0, 0x00b10dc1 },
+   { 0x00800040, 0x25204629, 0x00b10de0, 0x00b10de1 },
+   { 0x00800040, 0x25404629, 0x00b10e00, 0x00b10e01 },
+   { 0x00800040, 0x25604629, 0x00b10e20, 0x00b10e21 },
+   { 0x00800040, 0x23804529, 0x00b10380, 0x00b10c60 },
+   { 0x00800040, 0x23a04529, 0x00b103a0, 0x00b10c80 },
+   { 0x00800040, 0x23c04529, 0x00b103c0, 0x00b10ca0 },
+   { 0x00800040, 0x23e04529, 0x00b103e0, 0x00b10cc0 },
+   { 0x00800040, 0x24004529, 0x00b10400, 0x00b10ce0 },
+   { 0x00800040, 0x24204529, 0x00b10420, 0x00b10d00 },
+   { 0x00800040, 0x24404529, 0x00b10440, 0x00b10d20 },
+   { 0x00800040, 0x24604529, 0x00b10460, 0x00b10d40 },
+   { 0x00800040, 0x24804529, 0x00b10480, 0x00b10d60 },
+   { 0x00800040, 0x24a04529, 0x00b104a0, 0x00b10d80 },
+   { 0x00800040, 0x24c04529, 0x00b104c0, 0x00b10da0 },
+   { 0x00800040, 0x24e04529, 0x00b104e0, 0x00b10dc0 },
+   { 0x00800040, 0x25004529, 0x00b10500, 0x00b10de0 },
+   { 0x00800040, 0x25204529, 0x00b10520, 0x00b10e00 },
+   { 0x00800040, 0x25404529, 0x00b10540, 0x00b10e20 },
+   { 0x00800040, 0x25604529, 0x00b10560, 0x00b10f00 },
+   { 0x00800040, 0x23804529, 0x00b10380, 0x00b10c61 },
+   { 0x00800040, 0x23a04529, 0x00b103a0, 0x00b10c81 },
+   { 0x00800040, 0x23c04529, 0x00b103c0, 0x00b10ca1 },
+   { 0x00800040, 0x23e04529, 0x00b103e0, 0x00b10cc1 },
+   { 0x00800040, 0x24004529, 0x00b10400, 0x00b10ce1 },
+   { 0x00800040, 0x24204529, 0x00b10420, 0x00b10d01 },
+   { 0x00800040, 0x24404529, 0x00b10440, 0x00b10d21 },
+   { 0x00800040, 0x24604529, 0x00b10460, 0x00b10d41 },
+   { 0x00800040, 0x24804529, 0x00b10480, 0x00b10d61 },
+   { 0x00800040, 0x24a04529, 0x00b104a0, 0x00b10d81 },
+   { 0x00800040, 0x24c04529, 0x00b104c0, 0x00b10da1 },
+   { 0x00800040, 0x24e04529, 0x00b104e0, 0x00b10dc1 },
+   { 0x00800040, 0x25004529, 0x00b10500, 0x00b10de1 },
+   { 0x00800040, 0x25204529, 0x00b10520, 0x00b10e01 },
+   { 0x00800040, 0x25404529, 0x00b10540, 0x00b10e21 },
+   { 0x00800040, 0x25604529, 0x00b10560, 0x00b10f01 },
+   { 0x80800008, 0x23802d29, 0x00b10380, 0x00020002 },
+   { 0x80800008, 0x23a02d29, 0x00b103a0, 0x00020002 },
+   { 0x80800008, 0x23c02d29, 0x00b103c0, 0x00020002 },
+   { 0x80800008, 0x23e02d29, 0x00b103e0, 0x00020002 },
+   { 0x80800008, 0x24002d29, 0x00b10400, 0x00020002 },
+   { 0x80800008, 0x24202d29, 0x00b10420, 0x00020002 },
+   { 0x80800008, 0x24402d29, 0x00b10440, 0x00020002 },
+   { 0x80800008, 0x24602d29, 0x00b10460, 0x00020002 },
+   { 0x80800008, 0x24802d29, 0x00b10480, 0x00020002 },
+   { 0x80800008, 0x24a02d29, 0x00b104a0, 0x00020002 },
+   { 0x80800008, 0x24c02d29, 0x00b104c0, 0x00020002 },
+   { 0x80800008, 0x24e02d29, 0x00b104e0, 0x00020002 },
+   { 0x80800008, 0x25002d29, 0x00b10500, 0x00020002 },
+   { 0x80800008, 0x25202d29, 0x00b10520, 0x00020002 },
+   { 0x80800008, 0x25402d29, 0x00b10540, 0x00020002 },
+   { 0x80800008, 0x25602d29, 0x00b10560, 0x00020002 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000043 },
+   { 0x00000001, 0x20480061, 0x00000000, 0x0007001f },
+   { 0x00800031, 0x2c401d29, 0x008d0040, 0x0418a007 },
+   { 0x00000040, 0x20440c21, 0x00210044, 0x00000008 },
+   { 0x00800031, 0x2d401d29, 0x008d0040, 0x0418a007 },
+   { 0x80800042, 0x23804629, 0x00b10c40, 0x00b10c41 },
+   { 0x80800042, 0x23a04629, 0x00b10c60, 0x00b10c61 },
+   { 0x80800042, 0x23c04629, 0x00b10c80, 0x00b10c81 },
+   { 0x80800042, 0x23e04629, 0x00b10ca0, 0x00b10ca1 },
+   { 0x80800042, 0x24004629, 0x00b10cc0, 0x00b10cc1 },
+   { 0x80800042, 0x24204629, 0x00b10ce0, 0x00b10ce1 },
+   { 0x80800042, 0x24404629, 0x00b10d00, 0x00b10d01 },
+   { 0x80800042, 0x24604629, 0x00b10d20, 0x00b10d21 },
+   { 0x80800042, 0x24804629, 0x00b10d40, 0x00b10d41 },
+   { 0x80800042, 0x24a04629, 0x00b10d60, 0x00b10d61 },
+   { 0x80800042, 0x24c04629, 0x00b10d80, 0x00b10d81 },
+   { 0x80800042, 0x24e04629, 0x00b10da0, 0x00b10da1 },
+   { 0x80800042, 0x25004629, 0x00b10dc0, 0x00b10dc1 },
+   { 0x80800042, 0x25204629, 0x00b10de0, 0x00b10de1 },
+   { 0x80800042, 0x25404629, 0x00b10e00, 0x00b10e01 },
+   { 0x80800042, 0x25604629, 0x00b10e20, 0x00b10e21 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x0000002e },
+   { 0x01000005, 0x20000d3c, 0x00210e70, 0x00000001 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x00000018 },
+   { 0x00000001, 0x20480061, 0x00000000, 0x0007001f },
+   { 0x00800031, 0x2c401d29, 0x008d0040, 0x0418a007 },
+   { 0x00000040, 0x20440c21, 0x00210044, 0x00000008 },
+   { 0x00800031, 0x2d401d29, 0x008d0040, 0x0418a007 },
+   { 0x00000040, 0x20440c21, 0x00210044, 0x00000008 },
+   { 0x00000001, 0x20480061, 0x00000000, 0x0000001f },
+   { 0x00800031, 0x2f001d29, 0x008d0040, 0x0411a007 },
+   { 0x80800042, 0x23804629, 0x00b10c40, 0x00b10c60 },
+   { 0x80800042, 0x23a04629, 0x00b10c60, 0x00b10c80 },
+   { 0x80800042, 0x23c04629, 0x00b10c80, 0x00b10ca0 },
+   { 0x80800042, 0x23e04629, 0x00b10ca0, 0x00b10cc0 },
+   { 0x80800042, 0x24004629, 0x00b10cc0, 0x00b10ce0 },
+   { 0x80800042, 0x24204629, 0x00b10ce0, 0x00b10d00 },
+   { 0x80800042, 0x24404629, 0x00b10d00, 0x00b10d20 },
+   { 0x80800042, 0x24604629, 0x00b10d20, 0x00b10d40 },
+   { 0x80800042, 0x24804629, 0x00b10d40, 0x00b10d60 },
+   { 0x80800042, 0x24a04629, 0x00b10d60, 0x00b10d80 },
+   { 0x80800042, 0x24c04629, 0x00b10d80, 0x00b10da0 },
+   { 0x80800042, 0x24e04629, 0x00b10da0, 0x00b10dc0 },
+   { 0x80800042, 0x25004629, 0x00b10dc0, 0x00b10de0 },
+   { 0x80800042, 0x25204629, 0x00b10de0, 0x00b10e00 },
+   { 0x80800042, 0x25404629, 0x00b10e00, 0x00b10e20 },
+   { 0x80800042, 0x25604629, 0x00b10e20, 0x00b10f00 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000014 },
+   { 0x00000001, 0x20480061, 0x00000000, 0x0007001f },
+   { 0x00800031, 0x2c401d29, 0x008d0040, 0x0418a007 },
+   { 0x00000040, 0x20440c21, 0x00210044, 0x00000008 },
+   { 0x00800031, 0x2d401d29, 0x008d0040, 0x0418a007 },
+   { 0x00800001, 0x23800229, 0x00b10c40, 0x00000000 },
+   { 0x00800001, 0x23a00229, 0x00b10c60, 0x00000000 },
+   { 0x00800001, 0x23c00229, 0x00b10c80, 0x00000000 },
+   { 0x00800001, 0x23e00229, 0x00b10ca0, 0x00000000 },
+   { 0x00800001, 0x24000229, 0x00b10cc0, 0x00000000 },
+   { 0x00800001, 0x24200229, 0x00b10ce0, 0x00000000 },
+   { 0x00800001, 0x24400229, 0x00b10d00, 0x00000000 },
+   { 0x00800001, 0x24600229, 0x00b10d20, 0x00000000 },
+   { 0x00800001, 0x24800229, 0x00b10d40, 0x00000000 },
+   { 0x00800001, 0x24a00229, 0x00b10d60, 0x00000000 },
+   { 0x00800001, 0x24c00229, 0x00b10d80, 0x00000000 },
+   { 0x00800001, 0x24e00229, 0x00b10da0, 0x00000000 },
+   { 0x00800001, 0x25000229, 0x00b10dc0, 0x00000000 },
+   { 0x00800001, 0x25200229, 0x00b10de0, 0x00000000 },
+   { 0x00800001, 0x25400229, 0x00b10e00, 0x00000000 },
+   { 0x00800001, 0x25600229, 0x00b10e20, 0x00000000 },
+   { 0x00200008, 0x20200c21, 0x00450e60, 0x00000001 },
+   { 0x0020000c, 0x2e6e3dad, 0x00450e6e, 0x00010001 },
+   { 0x0020000c, 0x202e3dad, 0x00450e6e, 0x00010001 },
+   { 0x00200040, 0x20403421, 0x00450020, 0x0045002e },
+   { 0x00000001, 0x20480061, 0x00000000, 0x0007000f },
+   { 0x00800031, 0x2ac01d29, 0x008d0040, 0x0414a008 },
+   { 0x00800031, 0x2b401d29, 0x008d0040, 0x0414a009 },
+   { 0x00800001, 0x25800229, 0x00ad0ac0, 0x00000000 },
+   { 0x00800001, 0x25a00229, 0x00ad0ae0, 0x00000000 },
+   { 0x00800001, 0x25c00229, 0x00ad0b00, 0x00000000 },
+   { 0x00800001, 0x25e00229, 0x00ad0b20, 0x00000000 },
+   { 0x00800001, 0x26000229, 0x00ad0b40, 0x00000000 },
+   { 0x00800001, 0x26200229, 0x00ad0b60, 0x00000000 },
+   { 0x00800001, 0x26400229, 0x00ad0b80, 0x00000000 },
+   { 0x00800001, 0x26600229, 0x00ad0ba0, 0x00000000 },
+   { 0x00600001, 0x20200021, 0x008d0980, 0x00000000 },
+   { 0x00800001, 0x458101f1, 0x00000000, 0x00000000 },
+   { 0x00800001, 0x45a101f1, 0x00000000, 0x00000000 },
+   { 0x00800001, 0x45c101f1, 0x00000000, 0x00000000 },
+   { 0x00800001, 0x45e101f1, 0x00000000, 0x00000000 },
+   { 0x00800001, 0x460101f1, 0x00000000, 0x00000000 },
+   { 0x00800001, 0x462101f1, 0x00000000, 0x00000000 },
+   { 0x00800001, 0x464101f1, 0x00000000, 0x00000000 },
+   { 0x00800001, 0x466101f1, 0x00000000, 0x00000000 },
+   { 0x02000005, 0x20002e3c, 0x0021003e, 0x00010001 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x00000011 },
+   { 0x00800040, 0x238045ad, 0x00b10060, 0x00b20380 },
+   { 0x00800040, 0x23a045ad, 0x00b10080, 0x00b203a0 },
+   { 0x00800040, 0x23c045ad, 0x00b100a0, 0x00b203c0 },
+   { 0x00800040, 0x23e045ad, 0x00b100c0, 0x00b203e0 },
+   { 0x00800040, 0x240045ad, 0x00b100e0, 0x00b20400 },
+   { 0x00800040, 0x242045ad, 0x00b10100, 0x00b20420 },
+   { 0x00800040, 0x244045ad, 0x00b10120, 0x00b20440 },
+   { 0x00800040, 0x246045ad, 0x00b10140, 0x00b20460 },
+   { 0x00800040, 0x248045ad, 0x00b10160, 0x00b20480 },
+   { 0x00800040, 0x24a045ad, 0x00b10180, 0x00b204a0 },
+   { 0x00800040, 0x24c045ad, 0x00b101a0, 0x00b204c0 },
+   { 0x00800040, 0x24e045ad, 0x00b101c0, 0x00b204e0 },
+   { 0x00800040, 0x250045ad, 0x00b101e0, 0x00b20500 },
+   { 0x00800040, 0x252045ad, 0x00b10200, 0x00b20520 },
+   { 0x00800040, 0x254045ad, 0x00b10220, 0x00b20540 },
+   { 0x00800040, 0x256045ad, 0x00b10240, 0x00b20560 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000010 },
+   { 0x00800040, 0x238045ad, 0x00b10060, 0x00b20380 },
+   { 0x00800040, 0x23a045ad, 0x00b10160, 0x00b203a0 },
+   { 0x00800040, 0x23c045ad, 0x00b10080, 0x00b203c0 },
+   { 0x00800040, 0x23e045ad, 0x00b10180, 0x00b203e0 },
+   { 0x00800040, 0x240045ad, 0x00b100a0, 0x00b20400 },
+   { 0x00800040, 0x242045ad, 0x00b101a0, 0x00b20420 },
+   { 0x00800040, 0x244045ad, 0x00b100c0, 0x00b20440 },
+   { 0x00800040, 0x246045ad, 0x00b101c0, 0x00b20460 },
+   { 0x00800040, 0x248045ad, 0x00b100e0, 0x00b20480 },
+   { 0x00800040, 0x24a045ad, 0x00b101e0, 0x00b204a0 },
+   { 0x00800040, 0x24c045ad, 0x00b10100, 0x00b204c0 },
+   { 0x00800040, 0x24e045ad, 0x00b10200, 0x00b204e0 },
+   { 0x00800040, 0x250045ad, 0x00b10120, 0x00b20500 },
+   { 0x00800040, 0x252045ad, 0x00b10220, 0x00b20520 },
+   { 0x00800040, 0x254045ad, 0x00b10140, 0x00b20540 },
+   { 0x00800040, 0x256045ad, 0x00b10240, 0x00b20560 },
+   { 0x00000001, 0x20280061, 0x00000000, 0x000f000f },
+   { 0x80800001, 0x438001b1, 0x00b10380, 0x00000000 },
+   { 0x80800001, 0x43a001b1, 0x00b103a0, 0x00000000 },
+   { 0x80800001, 0x43c001b1, 0x00b103c0, 0x00000000 },
+   { 0x80800001, 0x43e001b1, 0x00b103e0, 0x00000000 },
+   { 0x80800001, 0x440001b1, 0x00b10400, 0x00000000 },
+   { 0x80800001, 0x442001b1, 0x00b10420, 0x00000000 },
+   { 0x80800001, 0x444001b1, 0x00b10440, 0x00000000 },
+   { 0x80800001, 0x446001b1, 0x00b10460, 0x00000000 },
+   { 0x80800001, 0x448001b1, 0x00b10480, 0x00000000 },
+   { 0x80800001, 0x44a001b1, 0x00b104a0, 0x00000000 },
+   { 0x80800001, 0x44c001b1, 0x00b104c0, 0x00000000 },
+   { 0x80800001, 0x44e001b1, 0x00b104e0, 0x00000000 },
+   { 0x80800001, 0x450001b1, 0x00b10500, 0x00000000 },
+   { 0x80800001, 0x452001b1, 0x00b10520, 0x00000000 },
+   { 0x80800001, 0x454001b1, 0x00b10540, 0x00000000 },
+   { 0x80800001, 0x456001b1, 0x00b10560, 0x00000000 },
+   { 0x00800001, 0x20200232, 0x00b20380, 0x00000000 },
+   { 0x00800001, 0x20300232, 0x00b203a0, 0x00000000 },
+   { 0x00800001, 0x20400232, 0x00b203c0, 0x00000000 },
+   { 0x00800001, 0x20500232, 0x00b203e0, 0x00000000 },
+   { 0x00800001, 0x20600232, 0x00b20400, 0x00000000 },
+   { 0x00800001, 0x20700232, 0x00b20420, 0x00000000 },
+   { 0x00800001, 0x20800232, 0x00b20440, 0x00000000 },
+   { 0x00800001, 0x20900232, 0x00b20460, 0x00000000 },
+   { 0x00800001, 0x20a00232, 0x00b20480, 0x00000000 },
+   { 0x00800001, 0x20b00232, 0x00b204a0, 0x00000000 },
+   { 0x00800001, 0x20c00232, 0x00b204c0, 0x00000000 },
+   { 0x00800001, 0x20d00232, 0x00b204e0, 0x00000000 },
+   { 0x00800001, 0x20e00232, 0x00b20500, 0x00000000 },
+   { 0x00800001, 0x20f00232, 0x00b20520, 0x00000000 },
+   { 0x00800001, 0x21000232, 0x00b20540, 0x00000000 },
+   { 0x00800001, 0x21100232, 0x00b20560, 0x00000000 },
+   { 0x00800031, 0x24001d28, 0x008d0020, 0x05902000 },
+   { 0x00000001, 0x20280061, 0x00000000, 0x00070007 },
+   { 0x00200008, 0x20201c21, 0x00450020, 0x00000001 },
+   { 0x00800040, 0x258025a9, 0x00b10260, 0x00b10580 },
+   { 0x00800040, 0x25a025a9, 0x00b10280, 0x00b105a0 },
+   { 0x00800040, 0x25c025a9, 0x00b102a0, 0x00b105c0 },
+   { 0x00800040, 0x25e025a9, 0x00b102c0, 0x00b105e0 },
+   { 0x80800001, 0x45800131, 0x00b10580, 0x00000000 },
+   { 0x80800001, 0x45a00131, 0x00b105a0, 0x00000000 },
+   { 0x80800001, 0x45c00131, 0x00b105c0, 0x00000000 },
+   { 0x80800001, 0x45e00131, 0x00b105e0, 0x00000000 },
+   { 0x00800001, 0x20200232, 0x00b20580, 0x00000000 },
+   { 0x00800001, 0x20300232, 0x00b205a0, 0x00000000 },
+   { 0x00800001, 0x20400232, 0x00b205c0, 0x00000000 },
+   { 0x00800001, 0x20500232, 0x00b205e0, 0x00000000 },
+   { 0x00800031, 0x24001d28, 0x008d0020, 0x05302001 },
+   { 0x00800040, 0x260025a9, 0x00b102e0, 0x00b10600 },
+   { 0x00800040, 0x262025a9, 0x00b10300, 0x00b10620 },
+   { 0x00800040, 0x264025a9, 0x00b10320, 0x00b10640 },
+   { 0x00800040, 0x266025a9, 0x00b10340, 0x00b10660 },
+   { 0x80800001, 0x46000131, 0x00b10600, 0x00000000 },
+   { 0x80800001, 0x46200131, 0x00b10620, 0x00000000 },
+   { 0x80800001, 0x46400131, 0x00b10640, 0x00000000 },
+   { 0x80800001, 0x46600131, 0x00b10660, 0x00000000 },
+   { 0x00800001, 0x20200232, 0x00b20600, 0x00000000 },
+   { 0x00800001, 0x20300232, 0x00b20620, 0x00000000 },
+   { 0x00800001, 0x20400232, 0x00b20640, 0x00000000 },
+   { 0x00800001, 0x20500232, 0x00b20660, 0x00000000 },
+   { 0x00800031, 0x24001d28, 0x008d0020, 0x05302002 },
+   { 0x00800031, 0x24001d28, 0x008d0000, 0x87100000 },
+   { 0x00800031, 0x24001d28, 0x008d0000, 0x87100000 },
diff --git a/src/xvmc/shader/mc/frame_f_b.g4a b/src/xvmc/shader/mc/frame_f_b.g4a
new file mode 100644
index 0000000..98729dd
--- /dev/null
+++ b/src/xvmc/shader/mc/frame_f_b.g4a
@@ -0,0 +1,131 @@
+/*
+ * Copyright © 2008 Intel Corporation
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice (including the next
+ * paragraph) shall be included in all copies or substantial portions of the
+ * Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
+ * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+ * SOFTWARE.
+ *
+ * Author:
+ *    Zou Nan hai <nanhai.zou at intel.com>
+ *    Zhang Hua jun <huajun.zhang at intel.com>
+ *    Xing Dong sheng <dongsheng.xing at intel.com>
+ *
+ */
+
+/* shader for forward and backward predict mc
+*/
+/* (x', y') = (x, y) + (motion_vector1.x >> 1, motion_vector1.y >> 1)
+/* (x'', y'') = (x, y) + (motion_vector2.x >> 1, motion_vector2.y >> 1)
+/* f(x, y) = (motion_forward(x`, y`) + motion_backward(x'', y'') + 1) / 2 */
+
+//Save payload
+mov (8) g76.0<1>UD g1.0<8,8,1>UD {align1};
+//mov (8) g77.0<1>UD g2.0<8,8,1>UD {align1};
+include(`block_clear.g4i')
+
+mov (8) g115.0<1>UD g1.0<8,8,1>UD {align1};
+mov (1) g1.8<1>UD 0x0070007UD  {align1};
+mov (8) g2.0<1>UD g1.0<8,8,1>UD {align1};
+/* Y */
+//Forward
+asr (2) g1.14<1>W g115.14<2,2,1>W 1W {align1};
+add (2) g2.0<1>UD g115.0<2,2,1>UD g1.14<2,2,1>W {align1};
+define(`input_surface',	`4')
+define(`mv1',	`g115.14')
+define(`mv2',	`g115.16')
+include(`motion_frame_y.g4i')
+mov (16) g52.0<1>UD g28.0<16,16,1>UD {align1 compr};
+mov (16) g54.0<1>UD g30.0<16,16,1>UD {align1 compr};
+mov (16) g56.0<1>UD g32.0<16,16,1>UD {align1 compr};
+mov (16) g58.0<1>UD g34.0<16,16,1>UD {align1 compr};
+mov (16) g60.0<1>UD g36.0<16,16,1>UD {align1 compr};
+mov (16) g62.0<1>UD g38.0<16,16,1>UD {align1 compr};
+mov (16) g64.0<1>UD g40.0<16,16,1>UD {align1 compr};
+mov (16) g66.0<1>UD g42.0<16,16,1>UD {align1 compr};
+//Backward
+asr (2) g1.14<1>W g115.18<2,2,1>W 1W {align1};
+add (2) g2.0<1>UD g115.0<2,2,1>UD g1.14<2,2,1>W {align1};
+define(`input_surface',	`7')
+define(`mv1',	`g115.18')
+define(`mv2',	`g115.20')
+include(`motion_frame_y.g4i')
+
+//Average
+avg.sat (16) g28.0<1>UW g28.0<16,16,1>UW g52.0<16,16,1>UW {align1};
+avg.sat (16) g29.0<1>UW g29.0<16,16,1>UW g53.0<16,16,1>UW {align1};
+avg.sat (16) g30.0<1>UW g30.0<16,16,1>UW g54.0<16,16,1>UW {align1};
+avg.sat (16) g31.0<1>UW g31.0<16,16,1>UW g55.0<16,16,1>UW {align1};
+avg.sat (16) g32.0<1>UW g32.0<16,16,1>UW g56.0<16,16,1>UW {align1};
+avg.sat (16) g33.0<1>UW g33.0<16,16,1>UW g57.0<16,16,1>UW {align1};
+avg.sat (16) g34.0<1>UW g34.0<16,16,1>UW g58.0<16,16,1>UW {align1};
+avg.sat (16) g35.0<1>UW g35.0<16,16,1>UW g59.0<16,16,1>UW {align1};
+avg.sat (16) g36.0<1>UW g36.0<16,16,1>UW g60.0<16,16,1>UW {align1};
+avg.sat (16) g37.0<1>UW g37.0<16,16,1>UW g61.0<16,16,1>UW {align1};
+avg.sat (16) g38.0<1>UW g38.0<16,16,1>UW g62.0<16,16,1>UW {align1};
+avg.sat (16) g39.0<1>UW g39.0<16,16,1>UW g63.0<16,16,1>UW {align1};
+avg.sat (16) g40.0<1>UW g40.0<16,16,1>UW g64.0<16,16,1>UW {align1};
+avg.sat (16) g41.0<1>UW g41.0<16,16,1>UW g65.0<16,16,1>UW {align1};
+avg.sat (16) g42.0<1>UW g42.0<16,16,1>UW g66.0<16,16,1>UW {align1};
+avg.sat (16) g43.0<1>UW g43.0<16,16,1>UW g67.0<16,16,1>UW {align1};
+
+/* UV */
+//Forward
+shr (2) g1.0<1>UD g115.0<2,2,1>UD 1UD {align1};
+asr (2) g115.14<1>W g115.14<2,2,1>W 1W {align1};
+asr (2) g1.14<1>W g115.14<2,2,1>W 1W {align1};
+add (2) g2.0<1>UD g1.0<2,2,1>UD g1.14<2,2,1>W {align1};
+
+define(`input_surface1',	`5')
+define(`input_surface2',	`6')
+define(`mv1',	`g115.14')
+define(`mv2',	`g115.16')
+mov (1) g2.8<1>UD 0x007000fUD  {align1};
+include(`motion_frame_uv.g4i')
+mov (16) g122.0<1>UB g44.0<16,16,2>UB {align1};
+mov (16) g122.16<1>UB g45.0<16,16,2>UB {align1};
+mov (16) g123.0<1>UB g46.0<16,16,2>UB {align1};
+mov (16) g123.16<1>UB g47.0<16,16,2>UB {align1};
+mov (16) g124.0<1>UB g48.0<16,16,2>UB {align1};
+mov (16) g124.16<1>UB g49.0<16,16,2>UB {align1};
+mov (16) g125.0<1>UB g50.0<16,16,2>UB {align1};
+mov (16) g125.16<1>UB g51.0<16,16,2>UB {align1};
+//Backward
+asr (2) g115.18<1>W g115.18<2,2,1>W 1W {align1};
+asr (2) g1.14<1>W g115.18<2,2,1>W 1W {align1};
+add (2) g2.0<1>UD g1.0<2,2,1>UD g1.14<2,2,1>W {align1};
+define(`input_surface1',	`8')
+define(`input_surface2',	`9')
+define(`mv1',	`g115.18')
+define(`mv2',	`g115.20')
+mov (1) g2.8<1>UD 0x007000fUD  {align1};
+include(`motion_frame_uv.g4i')
+
+//Average
+avg.sat (16) g44.0<1>UW g44.0<16,16,1>UW g122.0<16,16,1>UB {align1};
+avg.sat (16) g45.0<1>UW g45.0<16,16,1>UW g122.16<16,16,1>UB {align1};
+avg.sat (16) g46.0<1>UW g46.0<16,16,1>UW g123.0<16,16,1>UB {align1};
+avg.sat (16) g47.0<1>UW g47.0<16,16,1>UW g123.16<16,16,1>UB {align1};
+avg.sat (16) g48.0<1>UW g48.0<16,16,1>UW g124.0<16,16,1>UB {align1};
+avg.sat (16) g49.0<1>UW g49.0<16,16,1>UW g124.16<16,16,1>UB {align1};
+avg.sat (16) g50.0<1>UW g50.0<16,16,1>UW g125.0<16,16,1>UB {align1};
+avg.sat (16) g51.0<1>UW g51.0<16,16,1>UW g125.16<16,16,1>UB {align1};
+
+include(`addidct.g4i')
+
+send (16) 0 acc0<1>UW g0<8,8,1>UW 
+	thread_spawner(0, 0, 0) mlen 1 rlen 0 { align1 EOT};
diff --git a/src/xvmc/shader/mc/frame_f_b.g4b b/src/xvmc/shader/mc/frame_f_b.g4b
new file mode 100644
index 0000000..760cae1
--- /dev/null
+++ b/src/xvmc/shader/mc/frame_f_b.g4b
@@ -0,0 +1,1257 @@
+   { 0x00600001, 0x29800021, 0x008d0020, 0x00000000 },
+   { 0x02000005, 0x20000c3c, 0x00210040, 0x00000001 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x00000030 },
+   { 0x00000040, 0x20480c21, 0x00210988, 0x00000000 },
+   { 0x00800031, 0x20601c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x20801c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x20a01c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x20c01c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x20e01c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x21001c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x21201c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x21401c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x21601c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x21801c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x21a01c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x21c01c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x21e01c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x22001c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x22201c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x22401c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x22601c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x22801c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x22a01c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x22c01c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x22e01c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x23001c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x23201c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x23401c21, 0x00b10040, 0x04110203 },
+   { 0x02000005, 0x20002d3c, 0x0021098c, 0x00200020 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x00000008 },
+   { 0x00600001, 0x20600169, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x20800169, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x20a00169, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x20c00169, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x20e00169, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x21000169, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x21200169, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x21400169, 0x00000000, 0x00000000 },
+   { 0x02000005, 0x20002d3c, 0x0021002c, 0x00100010 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x00000008 },
+   { 0x00600001, 0x20700169, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x20900169, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x20b00169, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x20d00169, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x20f00169, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x21100169, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x21300169, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x21500169, 0x00000000, 0x00000000 },
+   { 0x02000005, 0x20002d3c, 0x0021002c, 0x00080008 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x00000008 },
+   { 0x00600001, 0x21600169, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x21800169, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x21a00169, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x21c00169, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x21e00169, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x22000169, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x22200169, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x22400169, 0x00000000, 0x00000000 },
+   { 0x02000005, 0x20002d3c, 0x0021002c, 0x00040004 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x00000008 },
+   { 0x00600001, 0x21700169, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x21900169, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x21b00169, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x21d00169, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x21f00169, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x22100169, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x22300169, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x22500169, 0x00000000, 0x00000000 },
+   { 0x02000005, 0x20002d3c, 0x0021002c, 0x00020002 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x00000004 },
+   { 0x00800001, 0x22600169, 0x00000000, 0x00000000 },
+   { 0x00800001, 0x22800169, 0x00000000, 0x00000000 },
+   { 0x00800001, 0x22a00169, 0x00000000, 0x00000000 },
+   { 0x00800001, 0x22c00169, 0x00000000, 0x00000000 },
+   { 0x02000005, 0x20002d3c, 0x0021002c, 0x00010001 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x00000004 },
+   { 0x00800001, 0x22e00169, 0x00000000, 0x00000000 },
+   { 0x00800001, 0x23000169, 0x00000000, 0x00000000 },
+   { 0x00800001, 0x23200169, 0x00000000, 0x00000000 },
+   { 0x00800001, 0x23400169, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x2e600021, 0x008d0020, 0x00000000 },
+   { 0x00000001, 0x20280061, 0x00000000, 0x00070007 },
+   { 0x00600001, 0x20400021, 0x008d0020, 0x00000000 },
+   { 0x0020000c, 0x202e3dad, 0x00450e6e, 0x00010001 },
+   { 0x00200040, 0x20403421, 0x00450e60, 0x0045002e },
+   { 0x01000005, 0x20000d3c, 0x00210e6e, 0x00000001 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x0000012b },
+   { 0x01000005, 0x20000d3c, 0x00210e70, 0x00000001 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x000000de },
+   { 0x00000001, 0x20480061, 0x00000000, 0x0007001f },
+   { 0x00800031, 0x2c401d29, 0x008d0040, 0x0418a004 },
+   { 0x00000005, 0x20580c21, 0x00210040, 0x00000003 },
+   { 0x00000041, 0x20580c21, 0x00210058, 0x00000031 },
+   { 0x00000040, 0x20440c21, 0x00210044, 0x00000008 },
+   { 0x00800031, 0x2d401d29, 0x008d0040, 0x0418a004 },
+   { 0x00000040, 0x20440c21, 0x00210044, 0x00000008 },
+   { 0x00000001, 0x20480061, 0x00000000, 0x0000001f },
+   { 0x00800031, 0x2f001d29, 0x008d0040, 0x0411a004 },
+   { 0x00000020, 0x34001400, 0x00001400, 0x00210058 },
+   { 0x00800040, 0x23804629, 0x00b10c40, 0x00b10c41 },
+   { 0x00800040, 0x23a04629, 0x00b10c60, 0x00b10c61 },
+   { 0x00800040, 0x23c04629, 0x00b10c80, 0x00b10c81 },
+   { 0x00800040, 0x23e04629, 0x00b10ca0, 0x00b10ca1 },
+   { 0x00800040, 0x24004629, 0x00b10cc0, 0x00b10cc1 },
+   { 0x00800040, 0x24204629, 0x00b10ce0, 0x00b10ce1 },
+   { 0x00800040, 0x24404629, 0x00b10d00, 0x00b10d01 },
+   { 0x00800040, 0x24604629, 0x00b10d20, 0x00b10d21 },
+   { 0x00800040, 0x24804629, 0x00b10d40, 0x00b10d41 },
+   { 0x00800040, 0x24a04629, 0x00b10d60, 0x00b10d61 },
+   { 0x00800040, 0x24c04629, 0x00b10d80, 0x00b10d81 },
+   { 0x00800040, 0x24e04629, 0x00b10da0, 0x00b10da1 },
+   { 0x00800040, 0x25004629, 0x00b10dc0, 0x00b10dc1 },
+   { 0x00800040, 0x25204629, 0x00b10de0, 0x00b10de1 },
+   { 0x00800040, 0x25404629, 0x00b10e00, 0x00b10e01 },
+   { 0x00800040, 0x25604629, 0x00b10e20, 0x00b10e21 },
+   { 0x00800040, 0x23804529, 0x00b10380, 0x00b10c60 },
+   { 0x00800040, 0x23a04529, 0x00b103a0, 0x00b10c80 },
+   { 0x00800040, 0x23c04529, 0x00b103c0, 0x00b10ca0 },
+   { 0x00800040, 0x23e04529, 0x00b103e0, 0x00b10cc0 },
+   { 0x00800040, 0x24004529, 0x00b10400, 0x00b10ce0 },
+   { 0x00800040, 0x24204529, 0x00b10420, 0x00b10d00 },
+   { 0x00800040, 0x24404529, 0x00b10440, 0x00b10d20 },
+   { 0x00800040, 0x24604529, 0x00b10460, 0x00b10d40 },
+   { 0x00800040, 0x24804529, 0x00b10480, 0x00b10d60 },
+   { 0x00800040, 0x24a04529, 0x00b104a0, 0x00b10d80 },
+   { 0x00800040, 0x24c04529, 0x00b104c0, 0x00b10da0 },
+   { 0x00800040, 0x24e04529, 0x00b104e0, 0x00b10dc0 },
+   { 0x00800040, 0x25004529, 0x00b10500, 0x00b10de0 },
+   { 0x00800040, 0x25204529, 0x00b10520, 0x00b10e00 },
+   { 0x00800040, 0x25404529, 0x00b10540, 0x00b10e20 },
+   { 0x00800040, 0x25604529, 0x00b10560, 0x00b10f00 },
+   { 0x00800040, 0x23804529, 0x00b10380, 0x00b10c61 },
+   { 0x00800040, 0x23a04529, 0x00b103a0, 0x00b10c81 },
+   { 0x00800040, 0x23c04529, 0x00b103c0, 0x00b10ca1 },
+   { 0x00800040, 0x23e04529, 0x00b103e0, 0x00b10cc1 },
+   { 0x00800040, 0x24004529, 0x00b10400, 0x00b10ce1 },
+   { 0x00800040, 0x24204529, 0x00b10420, 0x00b10d01 },
+   { 0x00800040, 0x24404529, 0x00b10440, 0x00b10d21 },
+   { 0x00800040, 0x24604529, 0x00b10460, 0x00b10d41 },
+   { 0x00800040, 0x24804529, 0x00b10480, 0x00b10d61 },
+   { 0x00800040, 0x24a04529, 0x00b104a0, 0x00b10d81 },
+   { 0x00800040, 0x24c04529, 0x00b104c0, 0x00b10da1 },
+   { 0x00800040, 0x24e04529, 0x00b104e0, 0x00b10dc1 },
+   { 0x00800040, 0x25004529, 0x00b10500, 0x00b10de1 },
+   { 0x00800040, 0x25204529, 0x00b10520, 0x00b10e01 },
+   { 0x00800040, 0x25404529, 0x00b10540, 0x00b10e21 },
+   { 0x00800040, 0x25604529, 0x00b10560, 0x00b10f01 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000092 },
+   { 0x00800040, 0x23804629, 0x00b10c41, 0x00b10c42 },
+   { 0x00800040, 0x23a04629, 0x00b10c61, 0x00b10c62 },
+   { 0x00800040, 0x23c04629, 0x00b10c81, 0x00b10c82 },
+   { 0x00800040, 0x23e04629, 0x00b10ca1, 0x00b10ca2 },
+   { 0x00800040, 0x24004629, 0x00b10cc1, 0x00b10cc2 },
+   { 0x00800040, 0x24204629, 0x00b10ce1, 0x00b10ce2 },
+   { 0x00800040, 0x24404629, 0x00b10d01, 0x00b10d02 },
+   { 0x00800040, 0x24604629, 0x00b10d21, 0x00b10d22 },
+   { 0x00800040, 0x24804629, 0x00b10d41, 0x00b10d42 },
+   { 0x00800040, 0x24a04629, 0x00b10d61, 0x00b10d62 },
+   { 0x00800040, 0x24c04629, 0x00b10d81, 0x00b10d82 },
+   { 0x00800040, 0x24e04629, 0x00b10da1, 0x00b10da2 },
+   { 0x00800040, 0x25004629, 0x00b10dc1, 0x00b10dc2 },
+   { 0x00800040, 0x25204629, 0x00b10de1, 0x00b10de2 },
+   { 0x00800040, 0x25404629, 0x00b10e01, 0x00b10e02 },
+   { 0x00800040, 0x25604629, 0x00b10e21, 0x00b10e22 },
+   { 0x00800040, 0x23804529, 0x00b10380, 0x00b10c61 },
+   { 0x00800040, 0x23a04529, 0x00b103a0, 0x00b10c81 },
+   { 0x00800040, 0x23c04529, 0x00b103c0, 0x00b10ca1 },
+   { 0x00800040, 0x23e04529, 0x00b103e0, 0x00b10cc1 },
+   { 0x00800040, 0x24004529, 0x00b10400, 0x00b10ce1 },
+   { 0x00800040, 0x24204529, 0x00b10420, 0x00b10d01 },
+   { 0x00800040, 0x24404529, 0x00b10440, 0x00b10d21 },
+   { 0x00800040, 0x24604529, 0x00b10460, 0x00b10d41 },
+   { 0x00800040, 0x24804529, 0x00b10480, 0x00b10d61 },
+   { 0x00800040, 0x24a04529, 0x00b104a0, 0x00b10d81 },
+   { 0x00800040, 0x24c04529, 0x00b104c0, 0x00b10da1 },
+   { 0x00800040, 0x24e04529, 0x00b104e0, 0x00b10dc1 },
+   { 0x00800040, 0x25004529, 0x00b10500, 0x00b10de1 },
+   { 0x00800040, 0x25204529, 0x00b10520, 0x00b10e01 },
+   { 0x00800040, 0x25404529, 0x00b10540, 0x00b10e21 },
+   { 0x00800040, 0x25604529, 0x00b10560, 0x00b10f01 },
+   { 0x00800040, 0x23804529, 0x00b10380, 0x00b10c62 },
+   { 0x00800040, 0x23a04529, 0x00b103a0, 0x00b10c82 },
+   { 0x00800040, 0x23c04529, 0x00b103c0, 0x00b10ca2 },
+   { 0x00800040, 0x23e04529, 0x00b103e0, 0x00b10cc2 },
+   { 0x00800040, 0x24004529, 0x00b10400, 0x00b10ce2 },
+   { 0x00800040, 0x24204529, 0x00b10420, 0x00b10d02 },
+   { 0x00800040, 0x24404529, 0x00b10440, 0x00b10d22 },
+   { 0x00800040, 0x24604529, 0x00b10460, 0x00b10d42 },
+   { 0x00800040, 0x24804529, 0x00b10480, 0x00b10d62 },
+   { 0x00800040, 0x24a04529, 0x00b104a0, 0x00b10d82 },
+   { 0x00800040, 0x24c04529, 0x00b104c0, 0x00b10da2 },
+   { 0x00800040, 0x24e04529, 0x00b104e0, 0x00b10dc2 },
+   { 0x00800040, 0x25004529, 0x00b10500, 0x00b10de2 },
+   { 0x00800040, 0x25204529, 0x00b10520, 0x00b10e02 },
+   { 0x00800040, 0x25404529, 0x00b10540, 0x00b10e22 },
+   { 0x00800040, 0x25604529, 0x00b10560, 0x00b10f02 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000061 },
+   { 0x00800040, 0x23804629, 0x00b10c42, 0x00b10c43 },
+   { 0x00800040, 0x23a04629, 0x00b10c62, 0x00b10c63 },
+   { 0x00800040, 0x23c04629, 0x00b10c82, 0x00b10c83 },
+   { 0x00800040, 0x23e04629, 0x00b10ca2, 0x00b10ca3 },
+   { 0x00800040, 0x24004629, 0x00b10cc2, 0x00b10cc3 },
+   { 0x00800040, 0x24204629, 0x00b10ce2, 0x00b10ce3 },
+   { 0x00800040, 0x24404629, 0x00b10d02, 0x00b10d03 },
+   { 0x00800040, 0x24604629, 0x00b10d22, 0x00b10d23 },
+   { 0x00800040, 0x24804629, 0x00b10d42, 0x00b10d43 },
+   { 0x00800040, 0x24a04629, 0x00b10d62, 0x00b10d63 },
+   { 0x00800040, 0x24c04629, 0x00b10d82, 0x00b10d83 },
+   { 0x00800040, 0x24e04629, 0x00b10da2, 0x00b10da3 },
+   { 0x00800040, 0x25004629, 0x00b10dc2, 0x00b10dc3 },
+   { 0x00800040, 0x25204629, 0x00b10de2, 0x00b10de3 },
+   { 0x00800040, 0x25404629, 0x00b10e02, 0x00b10e03 },
+   { 0x00800040, 0x25604629, 0x00b10e22, 0x00b10e23 },
+   { 0x00800040, 0x23804529, 0x00b10380, 0x00b10c62 },
+   { 0x00800040, 0x23a04529, 0x00b103a0, 0x00b10c82 },
+   { 0x00800040, 0x23c04529, 0x00b103c0, 0x00b10ca2 },
+   { 0x00800040, 0x23e04529, 0x00b103e0, 0x00b10cc2 },
+   { 0x00800040, 0x24004529, 0x00b10400, 0x00b10ce2 },
+   { 0x00800040, 0x24204529, 0x00b10420, 0x00b10d02 },
+   { 0x00800040, 0x24404529, 0x00b10440, 0x00b10d22 },
+   { 0x00800040, 0x24604529, 0x00b10460, 0x00b10d42 },
+   { 0x00800040, 0x24804529, 0x00b10480, 0x00b10d62 },
+   { 0x00800040, 0x24a04529, 0x00b104a0, 0x00b10d82 },
+   { 0x00800040, 0x24c04529, 0x00b104c0, 0x00b10da2 },
+   { 0x00800040, 0x24e04529, 0x00b104e0, 0x00b10dc2 },
+   { 0x00800040, 0x25004529, 0x00b10500, 0x00b10de2 },
+   { 0x00800040, 0x25204529, 0x00b10520, 0x00b10e02 },
+   { 0x00800040, 0x25404529, 0x00b10540, 0x00b10e22 },
+   { 0x00800040, 0x25604529, 0x00b10560, 0x00b10f02 },
+   { 0x00800040, 0x23804529, 0x00b10380, 0x00b10c63 },
+   { 0x00800040, 0x23a04529, 0x00b103a0, 0x00b10c83 },
+   { 0x00800040, 0x23c04529, 0x00b103c0, 0x00b10ca3 },
+   { 0x00800040, 0x23e04529, 0x00b103e0, 0x00b10cc3 },
+   { 0x00800040, 0x24004529, 0x00b10400, 0x00b10ce3 },
+   { 0x00800040, 0x24204529, 0x00b10420, 0x00b10d03 },
+   { 0x00800040, 0x24404529, 0x00b10440, 0x00b10d23 },
+   { 0x00800040, 0x24604529, 0x00b10460, 0x00b10d43 },
+   { 0x00800040, 0x24804529, 0x00b10480, 0x00b10d63 },
+   { 0x00800040, 0x24a04529, 0x00b104a0, 0x00b10d83 },
+   { 0x00800040, 0x24c04529, 0x00b104c0, 0x00b10da3 },
+   { 0x00800040, 0x24e04529, 0x00b104e0, 0x00b10dc3 },
+   { 0x00800040, 0x25004529, 0x00b10500, 0x00b10de3 },
+   { 0x00800040, 0x25204529, 0x00b10520, 0x00b10e03 },
+   { 0x00800040, 0x25404529, 0x00b10540, 0x00b10e23 },
+   { 0x00800040, 0x25604529, 0x00b10560, 0x00b10f03 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000030 },
+   { 0x00800040, 0x23804629, 0x00b10c43, 0x00b10c44 },
+   { 0x00800040, 0x23a04629, 0x00b10c63, 0x00b10c64 },
+   { 0x00800040, 0x23c04629, 0x00b10c83, 0x00b10c84 },
+   { 0x00800040, 0x23e04629, 0x00b10ca3, 0x00b10ca4 },
+   { 0x00800040, 0x24004629, 0x00b10cc3, 0x00b10cc4 },
+   { 0x00800040, 0x24204629, 0x00b10ce3, 0x00b10ce4 },
+   { 0x00800040, 0x24404629, 0x00b10d03, 0x00b10d04 },
+   { 0x00800040, 0x24604629, 0x00b10d23, 0x00b10d24 },
+   { 0x00800040, 0x24804629, 0x00b10d43, 0x00b10d44 },
+   { 0x00800040, 0x24a04629, 0x00b10d63, 0x00b10d64 },
+   { 0x00800040, 0x24c04629, 0x00b10d83, 0x00b10d84 },
+   { 0x00800040, 0x24e04629, 0x00b10da3, 0x00b10da4 },
+   { 0x00800040, 0x25004629, 0x00b10dc3, 0x00b10dc4 },
+   { 0x00800040, 0x25204629, 0x00b10de3, 0x00b10de4 },
+   { 0x00800040, 0x25404629, 0x00b10e03, 0x00b10e04 },
+   { 0x00800040, 0x25604629, 0x00b10e23, 0x00b10e24 },
+   { 0x00800040, 0x23804529, 0x00b10380, 0x00b10c63 },
+   { 0x00800040, 0x23a04529, 0x00b103a0, 0x00b10c83 },
+   { 0x00800040, 0x23c04529, 0x00b103c0, 0x00b10ca3 },
+   { 0x00800040, 0x23e04529, 0x00b103e0, 0x00b10cc3 },
+   { 0x00800040, 0x24004529, 0x00b10400, 0x00b10ce3 },
+   { 0x00800040, 0x24204529, 0x00b10420, 0x00b10d03 },
+   { 0x00800040, 0x24404529, 0x00b10440, 0x00b10d23 },
+   { 0x00800040, 0x24604529, 0x00b10460, 0x00b10d43 },
+   { 0x00800040, 0x24804529, 0x00b10480, 0x00b10d63 },
+   { 0x00800040, 0x24a04529, 0x00b104a0, 0x00b10d83 },
+   { 0x00800040, 0x24c04529, 0x00b104c0, 0x00b10da3 },
+   { 0x00800040, 0x24e04529, 0x00b104e0, 0x00b10dc3 },
+   { 0x00800040, 0x25004529, 0x00b10500, 0x00b10de3 },
+   { 0x00800040, 0x25204529, 0x00b10520, 0x00b10e03 },
+   { 0x00800040, 0x25404529, 0x00b10540, 0x00b10e23 },
+   { 0x00800040, 0x25604529, 0x00b10560, 0x00b10f03 },
+   { 0x00800040, 0x23804529, 0x00b10380, 0x00b10c64 },
+   { 0x00800040, 0x23a04529, 0x00b103a0, 0x00b10c84 },
+   { 0x00800040, 0x23c04529, 0x00b103c0, 0x00b10ca4 },
+   { 0x00800040, 0x23e04529, 0x00b103e0, 0x00b10cc4 },
+   { 0x00800040, 0x24004529, 0x00b10400, 0x00b10ce4 },
+   { 0x00800040, 0x24204529, 0x00b10420, 0x00b10d04 },
+   { 0x00800040, 0x24404529, 0x00b10440, 0x00b10d24 },
+   { 0x00800040, 0x24604529, 0x00b10460, 0x00b10d44 },
+   { 0x00800040, 0x24804529, 0x00b10480, 0x00b10d64 },
+   { 0x00800040, 0x24a04529, 0x00b104a0, 0x00b10d84 },
+   { 0x00800040, 0x24c04529, 0x00b104c0, 0x00b10da4 },
+   { 0x00800040, 0x24e04529, 0x00b104e0, 0x00b10dc4 },
+   { 0x00800040, 0x25004529, 0x00b10500, 0x00b10de4 },
+   { 0x00800040, 0x25204529, 0x00b10520, 0x00b10e04 },
+   { 0x00800040, 0x25404529, 0x00b10540, 0x00b10e24 },
+   { 0x00800040, 0x25604529, 0x00b10560, 0x00b10f04 },
+   { 0x80800008, 0x23802d29, 0x00b10380, 0x00020002 },
+   { 0x80800008, 0x23a02d29, 0x00b103a0, 0x00020002 },
+   { 0x80800008, 0x23c02d29, 0x00b103c0, 0x00020002 },
+   { 0x80800008, 0x23e02d29, 0x00b103e0, 0x00020002 },
+   { 0x80800008, 0x24002d29, 0x00b10400, 0x00020002 },
+   { 0x80800008, 0x24202d29, 0x00b10420, 0x00020002 },
+   { 0x80800008, 0x24402d29, 0x00b10440, 0x00020002 },
+   { 0x80800008, 0x24602d29, 0x00b10460, 0x00020002 },
+   { 0x80800008, 0x24802d29, 0x00b10480, 0x00020002 },
+   { 0x80800008, 0x24a02d29, 0x00b104a0, 0x00020002 },
+   { 0x80800008, 0x24c02d29, 0x00b104c0, 0x00020002 },
+   { 0x80800008, 0x24e02d29, 0x00b104e0, 0x00020002 },
+   { 0x80800008, 0x25002d29, 0x00b10500, 0x00020002 },
+   { 0x80800008, 0x25202d29, 0x00b10520, 0x00020002 },
+   { 0x80800008, 0x25402d29, 0x00b10540, 0x00020002 },
+   { 0x80800008, 0x25602d29, 0x00b10560, 0x00020002 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x000000e5 },
+   { 0x00000001, 0x20480061, 0x00000000, 0x0007001f },
+   { 0x00800031, 0x2c401d29, 0x008d0040, 0x0418a004 },
+   { 0x00000005, 0x20580c21, 0x00210040, 0x00000003 },
+   { 0x00000041, 0x20581c21, 0x00210058, 0x00000011 },
+   { 0x00000040, 0x20440c21, 0x00210044, 0x00000008 },
+   { 0x00800031, 0x2d401d29, 0x008d0040, 0x0418a004 },
+   { 0x00000020, 0x34001400, 0x00001400, 0x00210058 },
+   { 0x80800042, 0x23804629, 0x00b10c40, 0x00b10c41 },
+   { 0x80800042, 0x23a04629, 0x00b10c60, 0x00b10c61 },
+   { 0x80800042, 0x23c04629, 0x00b10c80, 0x00b10c81 },
+   { 0x80800042, 0x23e04629, 0x00b10ca0, 0x00b10ca1 },
+   { 0x80800042, 0x24004629, 0x00b10cc0, 0x00b10cc1 },
+   { 0x80800042, 0x24204629, 0x00b10ce0, 0x00b10ce1 },
+   { 0x80800042, 0x24404629, 0x00b10d00, 0x00b10d01 },
+   { 0x80800042, 0x24604629, 0x00b10d20, 0x00b10d21 },
+   { 0x80800042, 0x24804629, 0x00b10d40, 0x00b10d41 },
+   { 0x80800042, 0x24a04629, 0x00b10d60, 0x00b10d61 },
+   { 0x80800042, 0x24c04629, 0x00b10d80, 0x00b10d81 },
+   { 0x80800042, 0x24e04629, 0x00b10da0, 0x00b10da1 },
+   { 0x80800042, 0x25004629, 0x00b10dc0, 0x00b10dc1 },
+   { 0x80800042, 0x25204629, 0x00b10de0, 0x00b10de1 },
+   { 0x80800042, 0x25404629, 0x00b10e00, 0x00b10e01 },
+   { 0x80800042, 0x25604629, 0x00b10e20, 0x00b10e21 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000032 },
+   { 0x80800042, 0x23804629, 0x00b10c41, 0x00b10c42 },
+   { 0x80800042, 0x23a04629, 0x00b10c61, 0x00b10c62 },
+   { 0x80800042, 0x23c04629, 0x00b10c81, 0x00b10c82 },
+   { 0x80800042, 0x23e04629, 0x00b10ca1, 0x00b10ca2 },
+   { 0x80800042, 0x24004629, 0x00b10cc1, 0x00b10cc2 },
+   { 0x80800042, 0x24204629, 0x00b10ce1, 0x00b10ce2 },
+   { 0x80800042, 0x24404629, 0x00b10d01, 0x00b10d02 },
+   { 0x80800042, 0x24604629, 0x00b10d21, 0x00b10d22 },
+   { 0x80800042, 0x24804629, 0x00b10d41, 0x00b10d42 },
+   { 0x80800042, 0x24a04629, 0x00b10d61, 0x00b10d62 },
+   { 0x80800042, 0x24c04629, 0x00b10d81, 0x00b10d82 },
+   { 0x80800042, 0x24e04629, 0x00b10da1, 0x00b10da2 },
+   { 0x80800042, 0x25004629, 0x00b10dc1, 0x00b10dc2 },
+   { 0x80800042, 0x25204629, 0x00b10de1, 0x00b10de2 },
+   { 0x80800042, 0x25404629, 0x00b10e01, 0x00b10e02 },
+   { 0x80800042, 0x25604629, 0x00b10e21, 0x00b10e22 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000021 },
+   { 0x80800042, 0x23804629, 0x00b10c42, 0x00b10c43 },
+   { 0x80800042, 0x23a04629, 0x00b10c62, 0x00b10c63 },
+   { 0x80800042, 0x23c04629, 0x00b10c82, 0x00b10c83 },
+   { 0x80800042, 0x23e04629, 0x00b10ca2, 0x00b10ca3 },
+   { 0x80800042, 0x24004629, 0x00b10cc2, 0x00b10cc3 },
+   { 0x80800042, 0x24204629, 0x00b10ce2, 0x00b10ce3 },
+   { 0x80800042, 0x24404629, 0x00b10d02, 0x00b10d03 },
+   { 0x80800042, 0x24604629, 0x00b10d22, 0x00b10d23 },
+   { 0x80800042, 0x24804629, 0x00b10d42, 0x00b10d43 },
+   { 0x80800042, 0x24a04629, 0x00b10d62, 0x00b10d63 },
+   { 0x80800042, 0x24c04629, 0x00b10d82, 0x00b10d83 },
+   { 0x80800042, 0x24e04629, 0x00b10da2, 0x00b10da3 },
+   { 0x80800042, 0x25004629, 0x00b10dc2, 0x00b10dc3 },
+   { 0x80800042, 0x25204629, 0x00b10de2, 0x00b10de3 },
+   { 0x80800042, 0x25404629, 0x00b10e02, 0x00b10e03 },
+   { 0x80800042, 0x25604629, 0x00b10e22, 0x00b10e23 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000010 },
+   { 0x80800042, 0x23804629, 0x00b10c43, 0x00b10c44 },
+   { 0x80800042, 0x23a04629, 0x00b10c63, 0x00b10c64 },
+   { 0x80800042, 0x23c04629, 0x00b10c83, 0x00b10c84 },
+   { 0x80800042, 0x23e04629, 0x00b10ca3, 0x00b10ca4 },
+   { 0x80800042, 0x24004629, 0x00b10cc3, 0x00b10cc4 },
+   { 0x80800042, 0x24204629, 0x00b10ce3, 0x00b10ce4 },
+   { 0x80800042, 0x24404629, 0x00b10d03, 0x00b10d04 },
+   { 0x80800042, 0x24604629, 0x00b10d23, 0x00b10d24 },
+   { 0x80800042, 0x24804629, 0x00b10d43, 0x00b10d44 },
+   { 0x80800042, 0x24a04629, 0x00b10d63, 0x00b10d64 },
+   { 0x80800042, 0x24c04629, 0x00b10d83, 0x00b10d84 },
+   { 0x80800042, 0x24e04629, 0x00b10da3, 0x00b10da4 },
+   { 0x80800042, 0x25004629, 0x00b10dc3, 0x00b10dc4 },
+   { 0x80800042, 0x25204629, 0x00b10de3, 0x00b10de4 },
+   { 0x80800042, 0x25404629, 0x00b10e03, 0x00b10e04 },
+   { 0x80800042, 0x25604629, 0x00b10e23, 0x00b10e24 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x0000009a },
+   { 0x01000005, 0x20000d3c, 0x00210e70, 0x00000001 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x0000004e },
+   { 0x00000001, 0x20480061, 0x00000000, 0x0007001f },
+   { 0x00800031, 0x2c401d29, 0x008d0040, 0x0418a004 },
+   { 0x00000005, 0x20580c21, 0x00210040, 0x00000003 },
+   { 0x00000041, 0x20580c21, 0x00210058, 0x00000011 },
+   { 0x00000040, 0x20440c21, 0x00210044, 0x00000008 },
+   { 0x00800031, 0x2d401d29, 0x008d0040, 0x0418a004 },
+   { 0x00000040, 0x20440c21, 0x00210044, 0x00000008 },
+   { 0x00000001, 0x20480061, 0x00000000, 0x0000001f },
+   { 0x00800031, 0x2f001d29, 0x008d0040, 0x0411a004 },
+   { 0x00000020, 0x34001400, 0x00001400, 0x00210058 },
+   { 0x80800042, 0x23804629, 0x00b10c40, 0x00b10c60 },
+   { 0x80800042, 0x23a04629, 0x00b10c60, 0x00b10c80 },
+   { 0x80800042, 0x23c04629, 0x00b10c80, 0x00b10ca0 },
+   { 0x80800042, 0x23e04629, 0x00b10ca0, 0x00b10cc0 },
+   { 0x80800042, 0x24004629, 0x00b10cc0, 0x00b10ce0 },
+   { 0x80800042, 0x24204629, 0x00b10ce0, 0x00b10d00 },
+   { 0x80800042, 0x24404629, 0x00b10d00, 0x00b10d20 },
+   { 0x80800042, 0x24604629, 0x00b10d20, 0x00b10d40 },
+   { 0x80800042, 0x24804629, 0x00b10d40, 0x00b10d60 },
+   { 0x80800042, 0x24a04629, 0x00b10d60, 0x00b10d80 },
+   { 0x80800042, 0x24c04629, 0x00b10d80, 0x00b10da0 },
+   { 0x80800042, 0x24e04629, 0x00b10da0, 0x00b10dc0 },
+   { 0x80800042, 0x25004629, 0x00b10dc0, 0x00b10de0 },
+   { 0x80800042, 0x25204629, 0x00b10de0, 0x00b10e00 },
+   { 0x80800042, 0x25404629, 0x00b10e00, 0x00b10e20 },
+   { 0x80800042, 0x25604629, 0x00b10e20, 0x00b10f00 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000032 },
+   { 0x80800042, 0x23804629, 0x00b10c41, 0x00b10c61 },
+   { 0x80800042, 0x23a04629, 0x00b10c61, 0x00b10c81 },
+   { 0x80800042, 0x23c04629, 0x00b10c81, 0x00b10ca1 },
+   { 0x80800042, 0x23e04629, 0x00b10ca1, 0x00b10cc1 },
+   { 0x80800042, 0x24004629, 0x00b10cc1, 0x00b10ce1 },
+   { 0x80800042, 0x24204629, 0x00b10ce1, 0x00b10d01 },
+   { 0x80800042, 0x24404629, 0x00b10d01, 0x00b10d21 },
+   { 0x80800042, 0x24604629, 0x00b10d21, 0x00b10d41 },
+   { 0x80800042, 0x24804629, 0x00b10d41, 0x00b10d61 },
+   { 0x80800042, 0x24a04629, 0x00b10d61, 0x00b10d81 },
+   { 0x80800042, 0x24c04629, 0x00b10d81, 0x00b10da1 },
+   { 0x80800042, 0x24e04629, 0x00b10da1, 0x00b10dc1 },
+   { 0x80800042, 0x25004629, 0x00b10dc1, 0x00b10de1 },
+   { 0x80800042, 0x25204629, 0x00b10de1, 0x00b10e01 },
+   { 0x80800042, 0x25404629, 0x00b10e01, 0x00b10e21 },
+   { 0x80800042, 0x25604629, 0x00b10e21, 0x00b10f01 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000021 },
+   { 0x80800042, 0x23804629, 0x00b10c42, 0x00b10c62 },
+   { 0x80800042, 0x23a04629, 0x00b10c62, 0x00b10c82 },
+   { 0x80800042, 0x23c04629, 0x00b10c82, 0x00b10ca2 },
+   { 0x80800042, 0x23e04629, 0x00b10ca2, 0x00b10cc2 },
+   { 0x80800042, 0x24004629, 0x00b10cc2, 0x00b10ce2 },
+   { 0x80800042, 0x24204629, 0x00b10ce2, 0x00b10d02 },
+   { 0x80800042, 0x24404629, 0x00b10d02, 0x00b10d22 },
+   { 0x80800042, 0x24604629, 0x00b10d22, 0x00b10d42 },
+   { 0x80800042, 0x24804629, 0x00b10d42, 0x00b10d62 },
+   { 0x80800042, 0x24a04629, 0x00b10d62, 0x00b10d82 },
+   { 0x80800042, 0x24c04629, 0x00b10d82, 0x00b10da2 },
+   { 0x80800042, 0x24e04629, 0x00b10da2, 0x00b10dc2 },
+   { 0x80800042, 0x25004629, 0x00b10dc2, 0x00b10de2 },
+   { 0x80800042, 0x25204629, 0x00b10de2, 0x00b10e02 },
+   { 0x80800042, 0x25404629, 0x00b10e02, 0x00b10e22 },
+   { 0x80800042, 0x25604629, 0x00b10e22, 0x00b10f02 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000010 },
+   { 0x80800042, 0x23804629, 0x00b10c43, 0x00b10c63 },
+   { 0x80800042, 0x23a04629, 0x00b10c63, 0x00b10c83 },
+   { 0x80800042, 0x23c04629, 0x00b10c83, 0x00b10ca3 },
+   { 0x80800042, 0x23e04629, 0x00b10ca3, 0x00b10cc3 },
+   { 0x80800042, 0x24004629, 0x00b10cc3, 0x00b10ce3 },
+   { 0x80800042, 0x24204629, 0x00b10ce3, 0x00b10d03 },
+   { 0x80800042, 0x24404629, 0x00b10d03, 0x00b10d23 },
+   { 0x80800042, 0x24604629, 0x00b10d23, 0x00b10d43 },
+   { 0x80800042, 0x24804629, 0x00b10d43, 0x00b10d63 },
+   { 0x80800042, 0x24a04629, 0x00b10d63, 0x00b10d83 },
+   { 0x80800042, 0x24c04629, 0x00b10d83, 0x00b10da3 },
+   { 0x80800042, 0x24e04629, 0x00b10da3, 0x00b10dc3 },
+   { 0x80800042, 0x25004629, 0x00b10dc3, 0x00b10de3 },
+   { 0x80800042, 0x25204629, 0x00b10de3, 0x00b10e03 },
+   { 0x80800042, 0x25404629, 0x00b10e03, 0x00b10e23 },
+   { 0x80800042, 0x25604629, 0x00b10e23, 0x00b10f03 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x0000004a },
+   { 0x00000001, 0x20480061, 0x00000000, 0x0007001f },
+   { 0x00800031, 0x2c401d29, 0x008d0040, 0x0418a004 },
+   { 0x00000040, 0x20440c21, 0x00210044, 0x00000008 },
+   { 0x00800031, 0x2d401d29, 0x008d0040, 0x0418a004 },
+   { 0x00000005, 0x20580c21, 0x00210040, 0x00000003 },
+   { 0x00000041, 0x20580c21, 0x00210058, 0x00000011 },
+   { 0x00000020, 0x34001400, 0x00001400, 0x00210058 },
+   { 0x00800001, 0x23800229, 0x00b10c40, 0x00000000 },
+   { 0x00800001, 0x23a00229, 0x00b10c60, 0x00000000 },
+   { 0x00800001, 0x23c00229, 0x00b10c80, 0x00000000 },
+   { 0x00800001, 0x23e00229, 0x00b10ca0, 0x00000000 },
+   { 0x00800001, 0x24000229, 0x00b10cc0, 0x00000000 },
+   { 0x00800001, 0x24200229, 0x00b10ce0, 0x00000000 },
+   { 0x00800001, 0x24400229, 0x00b10d00, 0x00000000 },
+   { 0x00800001, 0x24600229, 0x00b10d20, 0x00000000 },
+   { 0x00800001, 0x24800229, 0x00b10d40, 0x00000000 },
+   { 0x00800001, 0x24a00229, 0x00b10d60, 0x00000000 },
+   { 0x00800001, 0x24c00229, 0x00b10d80, 0x00000000 },
+   { 0x00800001, 0x24e00229, 0x00b10da0, 0x00000000 },
+   { 0x00800001, 0x25000229, 0x00b10dc0, 0x00000000 },
+   { 0x00800001, 0x25200229, 0x00b10de0, 0x00000000 },
+   { 0x00800001, 0x25400229, 0x00b10e00, 0x00000000 },
+   { 0x00800001, 0x25600229, 0x00b10e20, 0x00000000 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000032 },
+   { 0x00800001, 0x23800229, 0x00b10c41, 0x00000000 },
+   { 0x00800001, 0x23a00229, 0x00b10c61, 0x00000000 },
+   { 0x00800001, 0x23c00229, 0x00b10c81, 0x00000000 },
+   { 0x00800001, 0x23e00229, 0x00b10ca1, 0x00000000 },
+   { 0x00800001, 0x24000229, 0x00b10cc1, 0x00000000 },
+   { 0x00800001, 0x24200229, 0x00b10ce1, 0x00000000 },
+   { 0x00800001, 0x24400229, 0x00b10d01, 0x00000000 },
+   { 0x00800001, 0x24600229, 0x00b10d21, 0x00000000 },
+   { 0x00800001, 0x24800229, 0x00b10d41, 0x00000000 },
+   { 0x00800001, 0x24a00229, 0x00b10d61, 0x00000000 },
+   { 0x00800001, 0x24c00229, 0x00b10d81, 0x00000000 },
+   { 0x00800001, 0x24e00229, 0x00b10da1, 0x00000000 },
+   { 0x00800001, 0x25000229, 0x00b10dc1, 0x00000000 },
+   { 0x00800001, 0x25200229, 0x00b10de1, 0x00000000 },
+   { 0x00800001, 0x25400229, 0x00b10e01, 0x00000000 },
+   { 0x00800001, 0x25600229, 0x00b10e21, 0x00000000 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000021 },
+   { 0x00800001, 0x23800229, 0x00b10c42, 0x00000000 },
+   { 0x00800001, 0x23a00229, 0x00b10c62, 0x00000000 },
+   { 0x00800001, 0x23c00229, 0x00b10c82, 0x00000000 },
+   { 0x00800001, 0x23e00229, 0x00b10ca2, 0x00000000 },
+   { 0x00800001, 0x24000229, 0x00b10cc2, 0x00000000 },
+   { 0x00800001, 0x24200229, 0x00b10ce2, 0x00000000 },
+   { 0x00800001, 0x24400229, 0x00b10d02, 0x00000000 },
+   { 0x00800001, 0x24600229, 0x00b10d22, 0x00000000 },
+   { 0x00800001, 0x24800229, 0x00b10d42, 0x00000000 },
+   { 0x00800001, 0x24a00229, 0x00b10d62, 0x00000000 },
+   { 0x00800001, 0x24c00229, 0x00b10d82, 0x00000000 },
+   { 0x00800001, 0x24e00229, 0x00b10da2, 0x00000000 },
+   { 0x00800001, 0x25000229, 0x00b10dc2, 0x00000000 },
+   { 0x00800001, 0x25200229, 0x00b10de2, 0x00000000 },
+   { 0x00800001, 0x25400229, 0x00b10e02, 0x00000000 },
+   { 0x00800001, 0x25600229, 0x00b10e22, 0x00000000 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000010 },
+   { 0x00800001, 0x23800229, 0x00b10c43, 0x00000000 },
+   { 0x00800001, 0x23a00229, 0x00b10c63, 0x00000000 },
+   { 0x00800001, 0x23c00229, 0x00b10c83, 0x00000000 },
+   { 0x00800001, 0x23e00229, 0x00b10ca3, 0x00000000 },
+   { 0x00800001, 0x24000229, 0x00b10cc3, 0x00000000 },
+   { 0x00800001, 0x24200229, 0x00b10ce3, 0x00000000 },
+   { 0x00800001, 0x24400229, 0x00b10d03, 0x00000000 },
+   { 0x00800001, 0x24600229, 0x00b10d23, 0x00000000 },
+   { 0x00800001, 0x24800229, 0x00b10d43, 0x00000000 },
+   { 0x00800001, 0x24a00229, 0x00b10d63, 0x00000000 },
+   { 0x00800001, 0x24c00229, 0x00b10d83, 0x00000000 },
+   { 0x00800001, 0x24e00229, 0x00b10da3, 0x00000000 },
+   { 0x00800001, 0x25000229, 0x00b10dc3, 0x00000000 },
+   { 0x00800001, 0x25200229, 0x00b10de3, 0x00000000 },
+   { 0x00800001, 0x25400229, 0x00b10e03, 0x00000000 },
+   { 0x00800001, 0x25600229, 0x00b10e23, 0x00000000 },
+   { 0x00802001, 0x26800021, 0x00b10380, 0x00000000 },
+   { 0x00802001, 0x26c00021, 0x00b103c0, 0x00000000 },
+   { 0x00802001, 0x27000021, 0x00b10400, 0x00000000 },
+   { 0x00802001, 0x27400021, 0x00b10440, 0x00000000 },
+   { 0x00802001, 0x27800021, 0x00b10480, 0x00000000 },
+   { 0x00802001, 0x27c00021, 0x00b104c0, 0x00000000 },
+   { 0x00802001, 0x28000021, 0x00b10500, 0x00000000 },
+   { 0x00802001, 0x28400021, 0x00b10540, 0x00000000 },
+   { 0x0020000c, 0x202e3dad, 0x00450e72, 0x00010001 },
+   { 0x00200040, 0x20403421, 0x00450e60, 0x0045002e },
+   { 0x01000005, 0x20000d3c, 0x00210e72, 0x00000001 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x0000012b },
+   { 0x01000005, 0x20000d3c, 0x00210e74, 0x00000001 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x000000de },
+   { 0x00000001, 0x20480061, 0x00000000, 0x0007001f },
+   { 0x00800031, 0x2c401d29, 0x008d0040, 0x0418a007 },
+   { 0x00000005, 0x20580c21, 0x00210040, 0x00000003 },
+   { 0x00000041, 0x20580c21, 0x00210058, 0x00000031 },
+   { 0x00000040, 0x20440c21, 0x00210044, 0x00000008 },
+   { 0x00800031, 0x2d401d29, 0x008d0040, 0x0418a007 },
+   { 0x00000040, 0x20440c21, 0x00210044, 0x00000008 },
+   { 0x00000001, 0x20480061, 0x00000000, 0x0000001f },
+   { 0x00800031, 0x2f001d29, 0x008d0040, 0x0411a007 },
+   { 0x00000020, 0x34001400, 0x00001400, 0x00210058 },
+   { 0x00800040, 0x23804629, 0x00b10c40, 0x00b10c41 },
+   { 0x00800040, 0x23a04629, 0x00b10c60, 0x00b10c61 },
+   { 0x00800040, 0x23c04629, 0x00b10c80, 0x00b10c81 },
+   { 0x00800040, 0x23e04629, 0x00b10ca0, 0x00b10ca1 },
+   { 0x00800040, 0x24004629, 0x00b10cc0, 0x00b10cc1 },
+   { 0x00800040, 0x24204629, 0x00b10ce0, 0x00b10ce1 },
+   { 0x00800040, 0x24404629, 0x00b10d00, 0x00b10d01 },
+   { 0x00800040, 0x24604629, 0x00b10d20, 0x00b10d21 },
+   { 0x00800040, 0x24804629, 0x00b10d40, 0x00b10d41 },
+   { 0x00800040, 0x24a04629, 0x00b10d60, 0x00b10d61 },
+   { 0x00800040, 0x24c04629, 0x00b10d80, 0x00b10d81 },
+   { 0x00800040, 0x24e04629, 0x00b10da0, 0x00b10da1 },
+   { 0x00800040, 0x25004629, 0x00b10dc0, 0x00b10dc1 },
+   { 0x00800040, 0x25204629, 0x00b10de0, 0x00b10de1 },
+   { 0x00800040, 0x25404629, 0x00b10e00, 0x00b10e01 },
+   { 0x00800040, 0x25604629, 0x00b10e20, 0x00b10e21 },
+   { 0x00800040, 0x23804529, 0x00b10380, 0x00b10c60 },
+   { 0x00800040, 0x23a04529, 0x00b103a0, 0x00b10c80 },
+   { 0x00800040, 0x23c04529, 0x00b103c0, 0x00b10ca0 },
+   { 0x00800040, 0x23e04529, 0x00b103e0, 0x00b10cc0 },
+   { 0x00800040, 0x24004529, 0x00b10400, 0x00b10ce0 },
+   { 0x00800040, 0x24204529, 0x00b10420, 0x00b10d00 },
+   { 0x00800040, 0x24404529, 0x00b10440, 0x00b10d20 },
+   { 0x00800040, 0x24604529, 0x00b10460, 0x00b10d40 },
+   { 0x00800040, 0x24804529, 0x00b10480, 0x00b10d60 },
+   { 0x00800040, 0x24a04529, 0x00b104a0, 0x00b10d80 },
+   { 0x00800040, 0x24c04529, 0x00b104c0, 0x00b10da0 },
+   { 0x00800040, 0x24e04529, 0x00b104e0, 0x00b10dc0 },
+   { 0x00800040, 0x25004529, 0x00b10500, 0x00b10de0 },
+   { 0x00800040, 0x25204529, 0x00b10520, 0x00b10e00 },
+   { 0x00800040, 0x25404529, 0x00b10540, 0x00b10e20 },
+   { 0x00800040, 0x25604529, 0x00b10560, 0x00b10f00 },
+   { 0x00800040, 0x23804529, 0x00b10380, 0x00b10c61 },
+   { 0x00800040, 0x23a04529, 0x00b103a0, 0x00b10c81 },
+   { 0x00800040, 0x23c04529, 0x00b103c0, 0x00b10ca1 },
+   { 0x00800040, 0x23e04529, 0x00b103e0, 0x00b10cc1 },
+   { 0x00800040, 0x24004529, 0x00b10400, 0x00b10ce1 },
+   { 0x00800040, 0x24204529, 0x00b10420, 0x00b10d01 },
+   { 0x00800040, 0x24404529, 0x00b10440, 0x00b10d21 },
+   { 0x00800040, 0x24604529, 0x00b10460, 0x00b10d41 },
+   { 0x00800040, 0x24804529, 0x00b10480, 0x00b10d61 },
+   { 0x00800040, 0x24a04529, 0x00b104a0, 0x00b10d81 },
+   { 0x00800040, 0x24c04529, 0x00b104c0, 0x00b10da1 },
+   { 0x00800040, 0x24e04529, 0x00b104e0, 0x00b10dc1 },
+   { 0x00800040, 0x25004529, 0x00b10500, 0x00b10de1 },
+   { 0x00800040, 0x25204529, 0x00b10520, 0x00b10e01 },
+   { 0x00800040, 0x25404529, 0x00b10540, 0x00b10e21 },
+   { 0x00800040, 0x25604529, 0x00b10560, 0x00b10f01 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000092 },
+   { 0x00800040, 0x23804629, 0x00b10c41, 0x00b10c42 },
+   { 0x00800040, 0x23a04629, 0x00b10c61, 0x00b10c62 },
+   { 0x00800040, 0x23c04629, 0x00b10c81, 0x00b10c82 },
+   { 0x00800040, 0x23e04629, 0x00b10ca1, 0x00b10ca2 },
+   { 0x00800040, 0x24004629, 0x00b10cc1, 0x00b10cc2 },
+   { 0x00800040, 0x24204629, 0x00b10ce1, 0x00b10ce2 },
+   { 0x00800040, 0x24404629, 0x00b10d01, 0x00b10d02 },
+   { 0x00800040, 0x24604629, 0x00b10d21, 0x00b10d22 },
+   { 0x00800040, 0x24804629, 0x00b10d41, 0x00b10d42 },
+   { 0x00800040, 0x24a04629, 0x00b10d61, 0x00b10d62 },
+   { 0x00800040, 0x24c04629, 0x00b10d81, 0x00b10d82 },
+   { 0x00800040, 0x24e04629, 0x00b10da1, 0x00b10da2 },
+   { 0x00800040, 0x25004629, 0x00b10dc1, 0x00b10dc2 },
+   { 0x00800040, 0x25204629, 0x00b10de1, 0x00b10de2 },
+   { 0x00800040, 0x25404629, 0x00b10e01, 0x00b10e02 },
+   { 0x00800040, 0x25604629, 0x00b10e21, 0x00b10e22 },
+   { 0x00800040, 0x23804529, 0x00b10380, 0x00b10c61 },
+   { 0x00800040, 0x23a04529, 0x00b103a0, 0x00b10c81 },
+   { 0x00800040, 0x23c04529, 0x00b103c0, 0x00b10ca1 },
+   { 0x00800040, 0x23e04529, 0x00b103e0, 0x00b10cc1 },
+   { 0x00800040, 0x24004529, 0x00b10400, 0x00b10ce1 },
+   { 0x00800040, 0x24204529, 0x00b10420, 0x00b10d01 },
+   { 0x00800040, 0x24404529, 0x00b10440, 0x00b10d21 },
+   { 0x00800040, 0x24604529, 0x00b10460, 0x00b10d41 },
+   { 0x00800040, 0x24804529, 0x00b10480, 0x00b10d61 },
+   { 0x00800040, 0x24a04529, 0x00b104a0, 0x00b10d81 },
+   { 0x00800040, 0x24c04529, 0x00b104c0, 0x00b10da1 },
+   { 0x00800040, 0x24e04529, 0x00b104e0, 0x00b10dc1 },
+   { 0x00800040, 0x25004529, 0x00b10500, 0x00b10de1 },
+   { 0x00800040, 0x25204529, 0x00b10520, 0x00b10e01 },
+   { 0x00800040, 0x25404529, 0x00b10540, 0x00b10e21 },
+   { 0x00800040, 0x25604529, 0x00b10560, 0x00b10f01 },
+   { 0x00800040, 0x23804529, 0x00b10380, 0x00b10c62 },
+   { 0x00800040, 0x23a04529, 0x00b103a0, 0x00b10c82 },
+   { 0x00800040, 0x23c04529, 0x00b103c0, 0x00b10ca2 },
+   { 0x00800040, 0x23e04529, 0x00b103e0, 0x00b10cc2 },
+   { 0x00800040, 0x24004529, 0x00b10400, 0x00b10ce2 },
+   { 0x00800040, 0x24204529, 0x00b10420, 0x00b10d02 },
+   { 0x00800040, 0x24404529, 0x00b10440, 0x00b10d22 },
+   { 0x00800040, 0x24604529, 0x00b10460, 0x00b10d42 },
+   { 0x00800040, 0x24804529, 0x00b10480, 0x00b10d62 },
+   { 0x00800040, 0x24a04529, 0x00b104a0, 0x00b10d82 },
+   { 0x00800040, 0x24c04529, 0x00b104c0, 0x00b10da2 },
+   { 0x00800040, 0x24e04529, 0x00b104e0, 0x00b10dc2 },
+   { 0x00800040, 0x25004529, 0x00b10500, 0x00b10de2 },
+   { 0x00800040, 0x25204529, 0x00b10520, 0x00b10e02 },
+   { 0x00800040, 0x25404529, 0x00b10540, 0x00b10e22 },
+   { 0x00800040, 0x25604529, 0x00b10560, 0x00b10f02 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000061 },
+   { 0x00800040, 0x23804629, 0x00b10c42, 0x00b10c43 },
+   { 0x00800040, 0x23a04629, 0x00b10c62, 0x00b10c63 },
+   { 0x00800040, 0x23c04629, 0x00b10c82, 0x00b10c83 },
+   { 0x00800040, 0x23e04629, 0x00b10ca2, 0x00b10ca3 },
+   { 0x00800040, 0x24004629, 0x00b10cc2, 0x00b10cc3 },
+   { 0x00800040, 0x24204629, 0x00b10ce2, 0x00b10ce3 },
+   { 0x00800040, 0x24404629, 0x00b10d02, 0x00b10d03 },
+   { 0x00800040, 0x24604629, 0x00b10d22, 0x00b10d23 },
+   { 0x00800040, 0x24804629, 0x00b10d42, 0x00b10d43 },
+   { 0x00800040, 0x24a04629, 0x00b10d62, 0x00b10d63 },
+   { 0x00800040, 0x24c04629, 0x00b10d82, 0x00b10d83 },
+   { 0x00800040, 0x24e04629, 0x00b10da2, 0x00b10da3 },
+   { 0x00800040, 0x25004629, 0x00b10dc2, 0x00b10dc3 },
+   { 0x00800040, 0x25204629, 0x00b10de2, 0x00b10de3 },
+   { 0x00800040, 0x25404629, 0x00b10e02, 0x00b10e03 },
+   { 0x00800040, 0x25604629, 0x00b10e22, 0x00b10e23 },
+   { 0x00800040, 0x23804529, 0x00b10380, 0x00b10c62 },
+   { 0x00800040, 0x23a04529, 0x00b103a0, 0x00b10c82 },
+   { 0x00800040, 0x23c04529, 0x00b103c0, 0x00b10ca2 },
+   { 0x00800040, 0x23e04529, 0x00b103e0, 0x00b10cc2 },
+   { 0x00800040, 0x24004529, 0x00b10400, 0x00b10ce2 },
+   { 0x00800040, 0x24204529, 0x00b10420, 0x00b10d02 },
+   { 0x00800040, 0x24404529, 0x00b10440, 0x00b10d22 },
+   { 0x00800040, 0x24604529, 0x00b10460, 0x00b10d42 },
+   { 0x00800040, 0x24804529, 0x00b10480, 0x00b10d62 },
+   { 0x00800040, 0x24a04529, 0x00b104a0, 0x00b10d82 },
+   { 0x00800040, 0x24c04529, 0x00b104c0, 0x00b10da2 },
+   { 0x00800040, 0x24e04529, 0x00b104e0, 0x00b10dc2 },
+   { 0x00800040, 0x25004529, 0x00b10500, 0x00b10de2 },
+   { 0x00800040, 0x25204529, 0x00b10520, 0x00b10e02 },
+   { 0x00800040, 0x25404529, 0x00b10540, 0x00b10e22 },
+   { 0x00800040, 0x25604529, 0x00b10560, 0x00b10f02 },
+   { 0x00800040, 0x23804529, 0x00b10380, 0x00b10c63 },
+   { 0x00800040, 0x23a04529, 0x00b103a0, 0x00b10c83 },
+   { 0x00800040, 0x23c04529, 0x00b103c0, 0x00b10ca3 },
+   { 0x00800040, 0x23e04529, 0x00b103e0, 0x00b10cc3 },
+   { 0x00800040, 0x24004529, 0x00b10400, 0x00b10ce3 },
+   { 0x00800040, 0x24204529, 0x00b10420, 0x00b10d03 },
+   { 0x00800040, 0x24404529, 0x00b10440, 0x00b10d23 },
+   { 0x00800040, 0x24604529, 0x00b10460, 0x00b10d43 },
+   { 0x00800040, 0x24804529, 0x00b10480, 0x00b10d63 },
+   { 0x00800040, 0x24a04529, 0x00b104a0, 0x00b10d83 },
+   { 0x00800040, 0x24c04529, 0x00b104c0, 0x00b10da3 },
+   { 0x00800040, 0x24e04529, 0x00b104e0, 0x00b10dc3 },
+   { 0x00800040, 0x25004529, 0x00b10500, 0x00b10de3 },
+   { 0x00800040, 0x25204529, 0x00b10520, 0x00b10e03 },
+   { 0x00800040, 0x25404529, 0x00b10540, 0x00b10e23 },
+   { 0x00800040, 0x25604529, 0x00b10560, 0x00b10f03 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000030 },
+   { 0x00800040, 0x23804629, 0x00b10c43, 0x00b10c44 },
+   { 0x00800040, 0x23a04629, 0x00b10c63, 0x00b10c64 },
+   { 0x00800040, 0x23c04629, 0x00b10c83, 0x00b10c84 },
+   { 0x00800040, 0x23e04629, 0x00b10ca3, 0x00b10ca4 },
+   { 0x00800040, 0x24004629, 0x00b10cc3, 0x00b10cc4 },
+   { 0x00800040, 0x24204629, 0x00b10ce3, 0x00b10ce4 },
+   { 0x00800040, 0x24404629, 0x00b10d03, 0x00b10d04 },
+   { 0x00800040, 0x24604629, 0x00b10d23, 0x00b10d24 },
+   { 0x00800040, 0x24804629, 0x00b10d43, 0x00b10d44 },
+   { 0x00800040, 0x24a04629, 0x00b10d63, 0x00b10d64 },
+   { 0x00800040, 0x24c04629, 0x00b10d83, 0x00b10d84 },
+   { 0x00800040, 0x24e04629, 0x00b10da3, 0x00b10da4 },
+   { 0x00800040, 0x25004629, 0x00b10dc3, 0x00b10dc4 },
+   { 0x00800040, 0x25204629, 0x00b10de3, 0x00b10de4 },
+   { 0x00800040, 0x25404629, 0x00b10e03, 0x00b10e04 },
+   { 0x00800040, 0x25604629, 0x00b10e23, 0x00b10e24 },
+   { 0x00800040, 0x23804529, 0x00b10380, 0x00b10c63 },
+   { 0x00800040, 0x23a04529, 0x00b103a0, 0x00b10c83 },
+   { 0x00800040, 0x23c04529, 0x00b103c0, 0x00b10ca3 },
+   { 0x00800040, 0x23e04529, 0x00b103e0, 0x00b10cc3 },
+   { 0x00800040, 0x24004529, 0x00b10400, 0x00b10ce3 },
+   { 0x00800040, 0x24204529, 0x00b10420, 0x00b10d03 },
+   { 0x00800040, 0x24404529, 0x00b10440, 0x00b10d23 },
+   { 0x00800040, 0x24604529, 0x00b10460, 0x00b10d43 },
+   { 0x00800040, 0x24804529, 0x00b10480, 0x00b10d63 },
+   { 0x00800040, 0x24a04529, 0x00b104a0, 0x00b10d83 },
+   { 0x00800040, 0x24c04529, 0x00b104c0, 0x00b10da3 },
+   { 0x00800040, 0x24e04529, 0x00b104e0, 0x00b10dc3 },
+   { 0x00800040, 0x25004529, 0x00b10500, 0x00b10de3 },
+   { 0x00800040, 0x25204529, 0x00b10520, 0x00b10e03 },
+   { 0x00800040, 0x25404529, 0x00b10540, 0x00b10e23 },
+   { 0x00800040, 0x25604529, 0x00b10560, 0x00b10f03 },
+   { 0x00800040, 0x23804529, 0x00b10380, 0x00b10c64 },
+   { 0x00800040, 0x23a04529, 0x00b103a0, 0x00b10c84 },
+   { 0x00800040, 0x23c04529, 0x00b103c0, 0x00b10ca4 },
+   { 0x00800040, 0x23e04529, 0x00b103e0, 0x00b10cc4 },
+   { 0x00800040, 0x24004529, 0x00b10400, 0x00b10ce4 },
+   { 0x00800040, 0x24204529, 0x00b10420, 0x00b10d04 },
+   { 0x00800040, 0x24404529, 0x00b10440, 0x00b10d24 },
+   { 0x00800040, 0x24604529, 0x00b10460, 0x00b10d44 },
+   { 0x00800040, 0x24804529, 0x00b10480, 0x00b10d64 },
+   { 0x00800040, 0x24a04529, 0x00b104a0, 0x00b10d84 },
+   { 0x00800040, 0x24c04529, 0x00b104c0, 0x00b10da4 },
+   { 0x00800040, 0x24e04529, 0x00b104e0, 0x00b10dc4 },
+   { 0x00800040, 0x25004529, 0x00b10500, 0x00b10de4 },
+   { 0x00800040, 0x25204529, 0x00b10520, 0x00b10e04 },
+   { 0x00800040, 0x25404529, 0x00b10540, 0x00b10e24 },
+   { 0x00800040, 0x25604529, 0x00b10560, 0x00b10f04 },
+   { 0x80800008, 0x23802d29, 0x00b10380, 0x00020002 },
+   { 0x80800008, 0x23a02d29, 0x00b103a0, 0x00020002 },
+   { 0x80800008, 0x23c02d29, 0x00b103c0, 0x00020002 },
+   { 0x80800008, 0x23e02d29, 0x00b103e0, 0x00020002 },
+   { 0x80800008, 0x24002d29, 0x00b10400, 0x00020002 },
+   { 0x80800008, 0x24202d29, 0x00b10420, 0x00020002 },
+   { 0x80800008, 0x24402d29, 0x00b10440, 0x00020002 },
+   { 0x80800008, 0x24602d29, 0x00b10460, 0x00020002 },
+   { 0x80800008, 0x24802d29, 0x00b10480, 0x00020002 },
+   { 0x80800008, 0x24a02d29, 0x00b104a0, 0x00020002 },
+   { 0x80800008, 0x24c02d29, 0x00b104c0, 0x00020002 },
+   { 0x80800008, 0x24e02d29, 0x00b104e0, 0x00020002 },
+   { 0x80800008, 0x25002d29, 0x00b10500, 0x00020002 },
+   { 0x80800008, 0x25202d29, 0x00b10520, 0x00020002 },
+   { 0x80800008, 0x25402d29, 0x00b10540, 0x00020002 },
+   { 0x80800008, 0x25602d29, 0x00b10560, 0x00020002 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x000000e5 },
+   { 0x00000001, 0x20480061, 0x00000000, 0x0007001f },
+   { 0x00800031, 0x2c401d29, 0x008d0040, 0x0418a007 },
+   { 0x00000005, 0x20580c21, 0x00210040, 0x00000003 },
+   { 0x00000041, 0x20581c21, 0x00210058, 0x00000011 },
+   { 0x00000040, 0x20440c21, 0x00210044, 0x00000008 },
+   { 0x00800031, 0x2d401d29, 0x008d0040, 0x0418a007 },
+   { 0x00000020, 0x34001400, 0x00001400, 0x00210058 },
+   { 0x80800042, 0x23804629, 0x00b10c40, 0x00b10c41 },
+   { 0x80800042, 0x23a04629, 0x00b10c60, 0x00b10c61 },
+   { 0x80800042, 0x23c04629, 0x00b10c80, 0x00b10c81 },
+   { 0x80800042, 0x23e04629, 0x00b10ca0, 0x00b10ca1 },
+   { 0x80800042, 0x24004629, 0x00b10cc0, 0x00b10cc1 },
+   { 0x80800042, 0x24204629, 0x00b10ce0, 0x00b10ce1 },
+   { 0x80800042, 0x24404629, 0x00b10d00, 0x00b10d01 },
+   { 0x80800042, 0x24604629, 0x00b10d20, 0x00b10d21 },
+   { 0x80800042, 0x24804629, 0x00b10d40, 0x00b10d41 },
+   { 0x80800042, 0x24a04629, 0x00b10d60, 0x00b10d61 },
+   { 0x80800042, 0x24c04629, 0x00b10d80, 0x00b10d81 },
+   { 0x80800042, 0x24e04629, 0x00b10da0, 0x00b10da1 },
+   { 0x80800042, 0x25004629, 0x00b10dc0, 0x00b10dc1 },
+   { 0x80800042, 0x25204629, 0x00b10de0, 0x00b10de1 },
+   { 0x80800042, 0x25404629, 0x00b10e00, 0x00b10e01 },
+   { 0x80800042, 0x25604629, 0x00b10e20, 0x00b10e21 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000032 },
+   { 0x80800042, 0x23804629, 0x00b10c41, 0x00b10c42 },
+   { 0x80800042, 0x23a04629, 0x00b10c61, 0x00b10c62 },
+   { 0x80800042, 0x23c04629, 0x00b10c81, 0x00b10c82 },
+   { 0x80800042, 0x23e04629, 0x00b10ca1, 0x00b10ca2 },
+   { 0x80800042, 0x24004629, 0x00b10cc1, 0x00b10cc2 },
+   { 0x80800042, 0x24204629, 0x00b10ce1, 0x00b10ce2 },
+   { 0x80800042, 0x24404629, 0x00b10d01, 0x00b10d02 },
+   { 0x80800042, 0x24604629, 0x00b10d21, 0x00b10d22 },
+   { 0x80800042, 0x24804629, 0x00b10d41, 0x00b10d42 },
+   { 0x80800042, 0x24a04629, 0x00b10d61, 0x00b10d62 },
+   { 0x80800042, 0x24c04629, 0x00b10d81, 0x00b10d82 },
+   { 0x80800042, 0x24e04629, 0x00b10da1, 0x00b10da2 },
+   { 0x80800042, 0x25004629, 0x00b10dc1, 0x00b10dc2 },
+   { 0x80800042, 0x25204629, 0x00b10de1, 0x00b10de2 },
+   { 0x80800042, 0x25404629, 0x00b10e01, 0x00b10e02 },
+   { 0x80800042, 0x25604629, 0x00b10e21, 0x00b10e22 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000021 },
+   { 0x80800042, 0x23804629, 0x00b10c42, 0x00b10c43 },
+   { 0x80800042, 0x23a04629, 0x00b10c62, 0x00b10c63 },
+   { 0x80800042, 0x23c04629, 0x00b10c82, 0x00b10c83 },
+   { 0x80800042, 0x23e04629, 0x00b10ca2, 0x00b10ca3 },
+   { 0x80800042, 0x24004629, 0x00b10cc2, 0x00b10cc3 },
+   { 0x80800042, 0x24204629, 0x00b10ce2, 0x00b10ce3 },
+   { 0x80800042, 0x24404629, 0x00b10d02, 0x00b10d03 },
+   { 0x80800042, 0x24604629, 0x00b10d22, 0x00b10d23 },
+   { 0x80800042, 0x24804629, 0x00b10d42, 0x00b10d43 },
+   { 0x80800042, 0x24a04629, 0x00b10d62, 0x00b10d63 },
+   { 0x80800042, 0x24c04629, 0x00b10d82, 0x00b10d83 },
+   { 0x80800042, 0x24e04629, 0x00b10da2, 0x00b10da3 },
+   { 0x80800042, 0x25004629, 0x00b10dc2, 0x00b10dc3 },
+   { 0x80800042, 0x25204629, 0x00b10de2, 0x00b10de3 },
+   { 0x80800042, 0x25404629, 0x00b10e02, 0x00b10e03 },
+   { 0x80800042, 0x25604629, 0x00b10e22, 0x00b10e23 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000010 },
+   { 0x80800042, 0x23804629, 0x00b10c43, 0x00b10c44 },
+   { 0x80800042, 0x23a04629, 0x00b10c63, 0x00b10c64 },
+   { 0x80800042, 0x23c04629, 0x00b10c83, 0x00b10c84 },
+   { 0x80800042, 0x23e04629, 0x00b10ca3, 0x00b10ca4 },
+   { 0x80800042, 0x24004629, 0x00b10cc3, 0x00b10cc4 },
+   { 0x80800042, 0x24204629, 0x00b10ce3, 0x00b10ce4 },
+   { 0x80800042, 0x24404629, 0x00b10d03, 0x00b10d04 },
+   { 0x80800042, 0x24604629, 0x00b10d23, 0x00b10d24 },
+   { 0x80800042, 0x24804629, 0x00b10d43, 0x00b10d44 },
+   { 0x80800042, 0x24a04629, 0x00b10d63, 0x00b10d64 },
+   { 0x80800042, 0x24c04629, 0x00b10d83, 0x00b10d84 },
+   { 0x80800042, 0x24e04629, 0x00b10da3, 0x00b10da4 },
+   { 0x80800042, 0x25004629, 0x00b10dc3, 0x00b10dc4 },
+   { 0x80800042, 0x25204629, 0x00b10de3, 0x00b10de4 },
+   { 0x80800042, 0x25404629, 0x00b10e03, 0x00b10e04 },
+   { 0x80800042, 0x25604629, 0x00b10e23, 0x00b10e24 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x0000009a },
+   { 0x01000005, 0x20000d3c, 0x00210e74, 0x00000001 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x0000004e },
+   { 0x00000001, 0x20480061, 0x00000000, 0x0007001f },
+   { 0x00800031, 0x2c401d29, 0x008d0040, 0x0418a007 },
+   { 0x00000005, 0x20580c21, 0x00210040, 0x00000003 },
+   { 0x00000041, 0x20580c21, 0x00210058, 0x00000011 },
+   { 0x00000040, 0x20440c21, 0x00210044, 0x00000008 },
+   { 0x00800031, 0x2d401d29, 0x008d0040, 0x0418a007 },
+   { 0x00000040, 0x20440c21, 0x00210044, 0x00000008 },
+   { 0x00000001, 0x20480061, 0x00000000, 0x0000001f },
+   { 0x00800031, 0x2f001d29, 0x008d0040, 0x0411a007 },
+   { 0x00000020, 0x34001400, 0x00001400, 0x00210058 },
+   { 0x80800042, 0x23804629, 0x00b10c40, 0x00b10c60 },
+   { 0x80800042, 0x23a04629, 0x00b10c60, 0x00b10c80 },
+   { 0x80800042, 0x23c04629, 0x00b10c80, 0x00b10ca0 },
+   { 0x80800042, 0x23e04629, 0x00b10ca0, 0x00b10cc0 },
+   { 0x80800042, 0x24004629, 0x00b10cc0, 0x00b10ce0 },
+   { 0x80800042, 0x24204629, 0x00b10ce0, 0x00b10d00 },
+   { 0x80800042, 0x24404629, 0x00b10d00, 0x00b10d20 },
+   { 0x80800042, 0x24604629, 0x00b10d20, 0x00b10d40 },
+   { 0x80800042, 0x24804629, 0x00b10d40, 0x00b10d60 },
+   { 0x80800042, 0x24a04629, 0x00b10d60, 0x00b10d80 },
+   { 0x80800042, 0x24c04629, 0x00b10d80, 0x00b10da0 },
+   { 0x80800042, 0x24e04629, 0x00b10da0, 0x00b10dc0 },
+   { 0x80800042, 0x25004629, 0x00b10dc0, 0x00b10de0 },
+   { 0x80800042, 0x25204629, 0x00b10de0, 0x00b10e00 },
+   { 0x80800042, 0x25404629, 0x00b10e00, 0x00b10e20 },
+   { 0x80800042, 0x25604629, 0x00b10e20, 0x00b10f00 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000032 },
+   { 0x80800042, 0x23804629, 0x00b10c41, 0x00b10c61 },
+   { 0x80800042, 0x23a04629, 0x00b10c61, 0x00b10c81 },
+   { 0x80800042, 0x23c04629, 0x00b10c81, 0x00b10ca1 },
+   { 0x80800042, 0x23e04629, 0x00b10ca1, 0x00b10cc1 },
+   { 0x80800042, 0x24004629, 0x00b10cc1, 0x00b10ce1 },
+   { 0x80800042, 0x24204629, 0x00b10ce1, 0x00b10d01 },
+   { 0x80800042, 0x24404629, 0x00b10d01, 0x00b10d21 },
+   { 0x80800042, 0x24604629, 0x00b10d21, 0x00b10d41 },
+   { 0x80800042, 0x24804629, 0x00b10d41, 0x00b10d61 },
+   { 0x80800042, 0x24a04629, 0x00b10d61, 0x00b10d81 },
+   { 0x80800042, 0x24c04629, 0x00b10d81, 0x00b10da1 },
+   { 0x80800042, 0x24e04629, 0x00b10da1, 0x00b10dc1 },
+   { 0x80800042, 0x25004629, 0x00b10dc1, 0x00b10de1 },
+   { 0x80800042, 0x25204629, 0x00b10de1, 0x00b10e01 },
+   { 0x80800042, 0x25404629, 0x00b10e01, 0x00b10e21 },
+   { 0x80800042, 0x25604629, 0x00b10e21, 0x00b10f01 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000021 },
+   { 0x80800042, 0x23804629, 0x00b10c42, 0x00b10c62 },
+   { 0x80800042, 0x23a04629, 0x00b10c62, 0x00b10c82 },
+   { 0x80800042, 0x23c04629, 0x00b10c82, 0x00b10ca2 },
+   { 0x80800042, 0x23e04629, 0x00b10ca2, 0x00b10cc2 },
+   { 0x80800042, 0x24004629, 0x00b10cc2, 0x00b10ce2 },
+   { 0x80800042, 0x24204629, 0x00b10ce2, 0x00b10d02 },
+   { 0x80800042, 0x24404629, 0x00b10d02, 0x00b10d22 },
+   { 0x80800042, 0x24604629, 0x00b10d22, 0x00b10d42 },
+   { 0x80800042, 0x24804629, 0x00b10d42, 0x00b10d62 },
+   { 0x80800042, 0x24a04629, 0x00b10d62, 0x00b10d82 },
+   { 0x80800042, 0x24c04629, 0x00b10d82, 0x00b10da2 },
+   { 0x80800042, 0x24e04629, 0x00b10da2, 0x00b10dc2 },
+   { 0x80800042, 0x25004629, 0x00b10dc2, 0x00b10de2 },
+   { 0x80800042, 0x25204629, 0x00b10de2, 0x00b10e02 },
+   { 0x80800042, 0x25404629, 0x00b10e02, 0x00b10e22 },
+   { 0x80800042, 0x25604629, 0x00b10e22, 0x00b10f02 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000010 },
+   { 0x80800042, 0x23804629, 0x00b10c43, 0x00b10c63 },
+   { 0x80800042, 0x23a04629, 0x00b10c63, 0x00b10c83 },
+   { 0x80800042, 0x23c04629, 0x00b10c83, 0x00b10ca3 },
+   { 0x80800042, 0x23e04629, 0x00b10ca3, 0x00b10cc3 },
+   { 0x80800042, 0x24004629, 0x00b10cc3, 0x00b10ce3 },
+   { 0x80800042, 0x24204629, 0x00b10ce3, 0x00b10d03 },
+   { 0x80800042, 0x24404629, 0x00b10d03, 0x00b10d23 },
+   { 0x80800042, 0x24604629, 0x00b10d23, 0x00b10d43 },
+   { 0x80800042, 0x24804629, 0x00b10d43, 0x00b10d63 },
+   { 0x80800042, 0x24a04629, 0x00b10d63, 0x00b10d83 },
+   { 0x80800042, 0x24c04629, 0x00b10d83, 0x00b10da3 },
+   { 0x80800042, 0x24e04629, 0x00b10da3, 0x00b10dc3 },
+   { 0x80800042, 0x25004629, 0x00b10dc3, 0x00b10de3 },
+   { 0x80800042, 0x25204629, 0x00b10de3, 0x00b10e03 },
+   { 0x80800042, 0x25404629, 0x00b10e03, 0x00b10e23 },
+   { 0x80800042, 0x25604629, 0x00b10e23, 0x00b10f03 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x0000004a },
+   { 0x00000001, 0x20480061, 0x00000000, 0x0007001f },
+   { 0x00800031, 0x2c401d29, 0x008d0040, 0x0418a007 },
+   { 0x00000040, 0x20440c21, 0x00210044, 0x00000008 },
+   { 0x00800031, 0x2d401d29, 0x008d0040, 0x0418a007 },
+   { 0x00000005, 0x20580c21, 0x00210040, 0x00000003 },
+   { 0x00000041, 0x20580c21, 0x00210058, 0x00000011 },
+   { 0x00000020, 0x34001400, 0x00001400, 0x00210058 },
+   { 0x00800001, 0x23800229, 0x00b10c40, 0x00000000 },
+   { 0x00800001, 0x23a00229, 0x00b10c60, 0x00000000 },
+   { 0x00800001, 0x23c00229, 0x00b10c80, 0x00000000 },
+   { 0x00800001, 0x23e00229, 0x00b10ca0, 0x00000000 },
+   { 0x00800001, 0x24000229, 0x00b10cc0, 0x00000000 },
+   { 0x00800001, 0x24200229, 0x00b10ce0, 0x00000000 },
+   { 0x00800001, 0x24400229, 0x00b10d00, 0x00000000 },
+   { 0x00800001, 0x24600229, 0x00b10d20, 0x00000000 },
+   { 0x00800001, 0x24800229, 0x00b10d40, 0x00000000 },
+   { 0x00800001, 0x24a00229, 0x00b10d60, 0x00000000 },
+   { 0x00800001, 0x24c00229, 0x00b10d80, 0x00000000 },
+   { 0x00800001, 0x24e00229, 0x00b10da0, 0x00000000 },
+   { 0x00800001, 0x25000229, 0x00b10dc0, 0x00000000 },
+   { 0x00800001, 0x25200229, 0x00b10de0, 0x00000000 },
+   { 0x00800001, 0x25400229, 0x00b10e00, 0x00000000 },
+   { 0x00800001, 0x25600229, 0x00b10e20, 0x00000000 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000032 },
+   { 0x00800001, 0x23800229, 0x00b10c41, 0x00000000 },
+   { 0x00800001, 0x23a00229, 0x00b10c61, 0x00000000 },
+   { 0x00800001, 0x23c00229, 0x00b10c81, 0x00000000 },
+   { 0x00800001, 0x23e00229, 0x00b10ca1, 0x00000000 },
+   { 0x00800001, 0x24000229, 0x00b10cc1, 0x00000000 },
+   { 0x00800001, 0x24200229, 0x00b10ce1, 0x00000000 },
+   { 0x00800001, 0x24400229, 0x00b10d01, 0x00000000 },
+   { 0x00800001, 0x24600229, 0x00b10d21, 0x00000000 },
+   { 0x00800001, 0x24800229, 0x00b10d41, 0x00000000 },
+   { 0x00800001, 0x24a00229, 0x00b10d61, 0x00000000 },
+   { 0x00800001, 0x24c00229, 0x00b10d81, 0x00000000 },
+   { 0x00800001, 0x24e00229, 0x00b10da1, 0x00000000 },
+   { 0x00800001, 0x25000229, 0x00b10dc1, 0x00000000 },
+   { 0x00800001, 0x25200229, 0x00b10de1, 0x00000000 },
+   { 0x00800001, 0x25400229, 0x00b10e01, 0x00000000 },
+   { 0x00800001, 0x25600229, 0x00b10e21, 0x00000000 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000021 },
+   { 0x00800001, 0x23800229, 0x00b10c42, 0x00000000 },
+   { 0x00800001, 0x23a00229, 0x00b10c62, 0x00000000 },
+   { 0x00800001, 0x23c00229, 0x00b10c82, 0x00000000 },
+   { 0x00800001, 0x23e00229, 0x00b10ca2, 0x00000000 },
+   { 0x00800001, 0x24000229, 0x00b10cc2, 0x00000000 },
+   { 0x00800001, 0x24200229, 0x00b10ce2, 0x00000000 },
+   { 0x00800001, 0x24400229, 0x00b10d02, 0x00000000 },
+   { 0x00800001, 0x24600229, 0x00b10d22, 0x00000000 },
+   { 0x00800001, 0x24800229, 0x00b10d42, 0x00000000 },
+   { 0x00800001, 0x24a00229, 0x00b10d62, 0x00000000 },
+   { 0x00800001, 0x24c00229, 0x00b10d82, 0x00000000 },
+   { 0x00800001, 0x24e00229, 0x00b10da2, 0x00000000 },
+   { 0x00800001, 0x25000229, 0x00b10dc2, 0x00000000 },
+   { 0x00800001, 0x25200229, 0x00b10de2, 0x00000000 },
+   { 0x00800001, 0x25400229, 0x00b10e02, 0x00000000 },
+   { 0x00800001, 0x25600229, 0x00b10e22, 0x00000000 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000010 },
+   { 0x00800001, 0x23800229, 0x00b10c43, 0x00000000 },
+   { 0x00800001, 0x23a00229, 0x00b10c63, 0x00000000 },
+   { 0x00800001, 0x23c00229, 0x00b10c83, 0x00000000 },
+   { 0x00800001, 0x23e00229, 0x00b10ca3, 0x00000000 },
+   { 0x00800001, 0x24000229, 0x00b10cc3, 0x00000000 },
+   { 0x00800001, 0x24200229, 0x00b10ce3, 0x00000000 },
+   { 0x00800001, 0x24400229, 0x00b10d03, 0x00000000 },
+   { 0x00800001, 0x24600229, 0x00b10d23, 0x00000000 },
+   { 0x00800001, 0x24800229, 0x00b10d43, 0x00000000 },
+   { 0x00800001, 0x24a00229, 0x00b10d63, 0x00000000 },
+   { 0x00800001, 0x24c00229, 0x00b10d83, 0x00000000 },
+   { 0x00800001, 0x24e00229, 0x00b10da3, 0x00000000 },
+   { 0x00800001, 0x25000229, 0x00b10dc3, 0x00000000 },
+   { 0x00800001, 0x25200229, 0x00b10de3, 0x00000000 },
+   { 0x00800001, 0x25400229, 0x00b10e03, 0x00000000 },
+   { 0x00800001, 0x25600229, 0x00b10e23, 0x00000000 },
+   { 0x80800042, 0x23802529, 0x00b10380, 0x00b10680 },
+   { 0x80800042, 0x23a02529, 0x00b103a0, 0x00b106a0 },
+   { 0x80800042, 0x23c02529, 0x00b103c0, 0x00b106c0 },
+   { 0x80800042, 0x23e02529, 0x00b103e0, 0x00b106e0 },
+   { 0x80800042, 0x24002529, 0x00b10400, 0x00b10700 },
+   { 0x80800042, 0x24202529, 0x00b10420, 0x00b10720 },
+   { 0x80800042, 0x24402529, 0x00b10440, 0x00b10740 },
+   { 0x80800042, 0x24602529, 0x00b10460, 0x00b10760 },
+   { 0x80800042, 0x24802529, 0x00b10480, 0x00b10780 },
+   { 0x80800042, 0x24a02529, 0x00b104a0, 0x00b107a0 },
+   { 0x80800042, 0x24c02529, 0x00b104c0, 0x00b107c0 },
+   { 0x80800042, 0x24e02529, 0x00b104e0, 0x00b107e0 },
+   { 0x80800042, 0x25002529, 0x00b10500, 0x00b10800 },
+   { 0x80800042, 0x25202529, 0x00b10520, 0x00b10820 },
+   { 0x80800042, 0x25402529, 0x00b10540, 0x00b10840 },
+   { 0x80800042, 0x25602529, 0x00b10560, 0x00b10860 },
+   { 0x00200008, 0x20200c21, 0x00450e60, 0x00000001 },
+   { 0x0020000c, 0x2e6e3dad, 0x00450e6e, 0x00010001 },
+   { 0x0020000c, 0x202e3dad, 0x00450e6e, 0x00010001 },
+   { 0x00200040, 0x20403421, 0x00450020, 0x0045002e },
+   { 0x00000001, 0x20480061, 0x00000000, 0x0007000f },
+   { 0x00000005, 0x20580c21, 0x00210040, 0x00000003 },
+   { 0x00800031, 0x2ac01d29, 0x008d0040, 0x0414a005 },
+   { 0x00800031, 0x2b401d29, 0x008d0040, 0x0414a006 },
+   { 0x00000041, 0x20580c21, 0x00210058, 0x00000009 },
+   { 0x00000020, 0x34001400, 0x00001400, 0x00210058 },
+   { 0x00800001, 0x25800229, 0x00ad0ac0, 0x00000000 },
+   { 0x00800001, 0x25a00229, 0x00ad0ae0, 0x00000000 },
+   { 0x00800001, 0x25c00229, 0x00ad0b00, 0x00000000 },
+   { 0x00800001, 0x25e00229, 0x00ad0b20, 0x00000000 },
+   { 0x00800001, 0x26000229, 0x00ad0b40, 0x00000000 },
+   { 0x00800001, 0x26200229, 0x00ad0b60, 0x00000000 },
+   { 0x00800001, 0x26400229, 0x00ad0b80, 0x00000000 },
+   { 0x00800001, 0x26600229, 0x00ad0ba0, 0x00000000 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x0000001a },
+   { 0x00800001, 0x25800229, 0x00ad0ac1, 0x00000000 },
+   { 0x00800001, 0x25a00229, 0x00ad0ae1, 0x00000000 },
+   { 0x00800001, 0x25c00229, 0x00ad0b01, 0x00000000 },
+   { 0x00800001, 0x25e00229, 0x00ad0b21, 0x00000000 },
+   { 0x00800001, 0x26000229, 0x00ad0b41, 0x00000000 },
+   { 0x00800001, 0x26200229, 0x00ad0b61, 0x00000000 },
+   { 0x00800001, 0x26400229, 0x00ad0b81, 0x00000000 },
+   { 0x00800001, 0x26600229, 0x00ad0ba1, 0x00000000 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000011 },
+   { 0x00800001, 0x25800229, 0x00ad0ac2, 0x00000000 },
+   { 0x00800001, 0x25a00229, 0x00ad0ae2, 0x00000000 },
+   { 0x00800001, 0x25c00229, 0x00ad0b02, 0x00000000 },
+   { 0x00800001, 0x25e00229, 0x00ad0b22, 0x00000000 },
+   { 0x00800001, 0x26000229, 0x00ad0b42, 0x00000000 },
+   { 0x00800001, 0x26200229, 0x00ad0b62, 0x00000000 },
+   { 0x00800001, 0x26400229, 0x00ad0b82, 0x00000000 },
+   { 0x00800001, 0x26600229, 0x00ad0ba2, 0x00000000 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000008 },
+   { 0x00800001, 0x25800229, 0x00ad0ac3, 0x00000000 },
+   { 0x00800001, 0x25a00229, 0x00ad0ae3, 0x00000000 },
+   { 0x00800001, 0x25c00229, 0x00ad0b03, 0x00000000 },
+   { 0x00800001, 0x25e00229, 0x00ad0b23, 0x00000000 },
+   { 0x00800001, 0x26000229, 0x00ad0b43, 0x00000000 },
+   { 0x00800001, 0x26200229, 0x00ad0b63, 0x00000000 },
+   { 0x00800001, 0x26400229, 0x00ad0b83, 0x00000000 },
+   { 0x00800001, 0x26600229, 0x00ad0ba3, 0x00000000 },
+   { 0x00800001, 0x2f400231, 0x00b20580, 0x00000000 },
+   { 0x00800001, 0x2f500231, 0x00b205a0, 0x00000000 },
+   { 0x00800001, 0x2f600231, 0x00b205c0, 0x00000000 },
+   { 0x00800001, 0x2f700231, 0x00b205e0, 0x00000000 },
+   { 0x00800001, 0x2f800231, 0x00b20600, 0x00000000 },
+   { 0x00800001, 0x2f900231, 0x00b20620, 0x00000000 },
+   { 0x00800001, 0x2fa00231, 0x00b20640, 0x00000000 },
+   { 0x00800001, 0x2fb00231, 0x00b20660, 0x00000000 },
+   { 0x0020000c, 0x2e723dad, 0x00450e72, 0x00010001 },
+   { 0x0020000c, 0x202e3dad, 0x00450e72, 0x00010001 },
+   { 0x00200040, 0x20403421, 0x00450020, 0x0045002e },
+   { 0x00000001, 0x20480061, 0x00000000, 0x0007000f },
+   { 0x00000005, 0x20580c21, 0x00210040, 0x00000003 },
+   { 0x00800031, 0x2ac01d29, 0x008d0040, 0x0414a008 },
+   { 0x00800031, 0x2b401d29, 0x008d0040, 0x0414a009 },
+   { 0x00000041, 0x20580c21, 0x00210058, 0x00000009 },
+   { 0x00000020, 0x34001400, 0x00001400, 0x00210058 },
+   { 0x00800001, 0x25800229, 0x00ad0ac0, 0x00000000 },
+   { 0x00800001, 0x25a00229, 0x00ad0ae0, 0x00000000 },
+   { 0x00800001, 0x25c00229, 0x00ad0b00, 0x00000000 },
+   { 0x00800001, 0x25e00229, 0x00ad0b20, 0x00000000 },
+   { 0x00800001, 0x26000229, 0x00ad0b40, 0x00000000 },
+   { 0x00800001, 0x26200229, 0x00ad0b60, 0x00000000 },
+   { 0x00800001, 0x26400229, 0x00ad0b80, 0x00000000 },
+   { 0x00800001, 0x26600229, 0x00ad0ba0, 0x00000000 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x0000001a },
+   { 0x00800001, 0x25800229, 0x00ad0ac1, 0x00000000 },
+   { 0x00800001, 0x25a00229, 0x00ad0ae1, 0x00000000 },
+   { 0x00800001, 0x25c00229, 0x00ad0b01, 0x00000000 },
+   { 0x00800001, 0x25e00229, 0x00ad0b21, 0x00000000 },
+   { 0x00800001, 0x26000229, 0x00ad0b41, 0x00000000 },
+   { 0x00800001, 0x26200229, 0x00ad0b61, 0x00000000 },
+   { 0x00800001, 0x26400229, 0x00ad0b81, 0x00000000 },
+   { 0x00800001, 0x26600229, 0x00ad0ba1, 0x00000000 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000011 },
+   { 0x00800001, 0x25800229, 0x00ad0ac2, 0x00000000 },
+   { 0x00800001, 0x25a00229, 0x00ad0ae2, 0x00000000 },
+   { 0x00800001, 0x25c00229, 0x00ad0b02, 0x00000000 },
+   { 0x00800001, 0x25e00229, 0x00ad0b22, 0x00000000 },
+   { 0x00800001, 0x26000229, 0x00ad0b42, 0x00000000 },
+   { 0x00800001, 0x26200229, 0x00ad0b62, 0x00000000 },
+   { 0x00800001, 0x26400229, 0x00ad0b82, 0x00000000 },
+   { 0x00800001, 0x26600229, 0x00ad0ba2, 0x00000000 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000008 },
+   { 0x00800001, 0x25800229, 0x00ad0ac3, 0x00000000 },
+   { 0x00800001, 0x25a00229, 0x00ad0ae3, 0x00000000 },
+   { 0x00800001, 0x25c00229, 0x00ad0b03, 0x00000000 },
+   { 0x00800001, 0x25e00229, 0x00ad0b23, 0x00000000 },
+   { 0x00800001, 0x26000229, 0x00ad0b43, 0x00000000 },
+   { 0x00800001, 0x26200229, 0x00ad0b63, 0x00000000 },
+   { 0x00800001, 0x26400229, 0x00ad0b83, 0x00000000 },
+   { 0x00800001, 0x26600229, 0x00ad0ba3, 0x00000000 },
+   { 0x80800042, 0x25804529, 0x00b10580, 0x00b10f40 },
+   { 0x80800042, 0x25a04529, 0x00b105a0, 0x00b10f50 },
+   { 0x80800042, 0x25c04529, 0x00b105c0, 0x00b10f60 },
+   { 0x80800042, 0x25e04529, 0x00b105e0, 0x00b10f70 },
+   { 0x80800042, 0x26004529, 0x00b10600, 0x00b10f80 },
+   { 0x80800042, 0x26204529, 0x00b10620, 0x00b10f90 },
+   { 0x80800042, 0x26404529, 0x00b10640, 0x00b10fa0 },
+   { 0x80800042, 0x26604529, 0x00b10660, 0x00b10fb0 },
+   { 0x00600001, 0x20200021, 0x008d0980, 0x00000000 },
+   { 0x00800001, 0x458101f1, 0x00000000, 0x00000000 },
+   { 0x00800001, 0x45a101f1, 0x00000000, 0x00000000 },
+   { 0x00800001, 0x45c101f1, 0x00000000, 0x00000000 },
+   { 0x00800001, 0x45e101f1, 0x00000000, 0x00000000 },
+   { 0x00800001, 0x460101f1, 0x00000000, 0x00000000 },
+   { 0x00800001, 0x462101f1, 0x00000000, 0x00000000 },
+   { 0x00800001, 0x464101f1, 0x00000000, 0x00000000 },
+   { 0x00800001, 0x466101f1, 0x00000000, 0x00000000 },
+   { 0x02000005, 0x20002e3c, 0x0021003e, 0x00010001 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x00000011 },
+   { 0x00800040, 0x238045ad, 0x00b10060, 0x00b20380 },
+   { 0x00800040, 0x23a045ad, 0x00b10080, 0x00b203a0 },
+   { 0x00800040, 0x23c045ad, 0x00b100a0, 0x00b203c0 },
+   { 0x00800040, 0x23e045ad, 0x00b100c0, 0x00b203e0 },
+   { 0x00800040, 0x240045ad, 0x00b100e0, 0x00b20400 },
+   { 0x00800040, 0x242045ad, 0x00b10100, 0x00b20420 },
+   { 0x00800040, 0x244045ad, 0x00b10120, 0x00b20440 },
+   { 0x00800040, 0x246045ad, 0x00b10140, 0x00b20460 },
+   { 0x00800040, 0x248045ad, 0x00b10160, 0x00b20480 },
+   { 0x00800040, 0x24a045ad, 0x00b10180, 0x00b204a0 },
+   { 0x00800040, 0x24c045ad, 0x00b101a0, 0x00b204c0 },
+   { 0x00800040, 0x24e045ad, 0x00b101c0, 0x00b204e0 },
+   { 0x00800040, 0x250045ad, 0x00b101e0, 0x00b20500 },
+   { 0x00800040, 0x252045ad, 0x00b10200, 0x00b20520 },
+   { 0x00800040, 0x254045ad, 0x00b10220, 0x00b20540 },
+   { 0x00800040, 0x256045ad, 0x00b10240, 0x00b20560 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000010 },
+   { 0x00800040, 0x238045ad, 0x00b10060, 0x00b20380 },
+   { 0x00800040, 0x23a045ad, 0x00b10160, 0x00b203a0 },
+   { 0x00800040, 0x23c045ad, 0x00b10080, 0x00b203c0 },
+   { 0x00800040, 0x23e045ad, 0x00b10180, 0x00b203e0 },
+   { 0x00800040, 0x240045ad, 0x00b100a0, 0x00b20400 },
+   { 0x00800040, 0x242045ad, 0x00b101a0, 0x00b20420 },
+   { 0x00800040, 0x244045ad, 0x00b100c0, 0x00b20440 },
+   { 0x00800040, 0x246045ad, 0x00b101c0, 0x00b20460 },
+   { 0x00800040, 0x248045ad, 0x00b100e0, 0x00b20480 },
+   { 0x00800040, 0x24a045ad, 0x00b101e0, 0x00b204a0 },
+   { 0x00800040, 0x24c045ad, 0x00b10100, 0x00b204c0 },
+   { 0x00800040, 0x24e045ad, 0x00b10200, 0x00b204e0 },
+   { 0x00800040, 0x250045ad, 0x00b10120, 0x00b20500 },
+   { 0x00800040, 0x252045ad, 0x00b10220, 0x00b20520 },
+   { 0x00800040, 0x254045ad, 0x00b10140, 0x00b20540 },
+   { 0x00800040, 0x256045ad, 0x00b10240, 0x00b20560 },
+   { 0x00000001, 0x20280061, 0x00000000, 0x000f000f },
+   { 0x80800001, 0x438001b1, 0x00b10380, 0x00000000 },
+   { 0x80800001, 0x43a001b1, 0x00b103a0, 0x00000000 },
+   { 0x80800001, 0x43c001b1, 0x00b103c0, 0x00000000 },
+   { 0x80800001, 0x43e001b1, 0x00b103e0, 0x00000000 },
+   { 0x80800001, 0x440001b1, 0x00b10400, 0x00000000 },
+   { 0x80800001, 0x442001b1, 0x00b10420, 0x00000000 },
+   { 0x80800001, 0x444001b1, 0x00b10440, 0x00000000 },
+   { 0x80800001, 0x446001b1, 0x00b10460, 0x00000000 },
+   { 0x80800001, 0x448001b1, 0x00b10480, 0x00000000 },
+   { 0x80800001, 0x44a001b1, 0x00b104a0, 0x00000000 },
+   { 0x80800001, 0x44c001b1, 0x00b104c0, 0x00000000 },
+   { 0x80800001, 0x44e001b1, 0x00b104e0, 0x00000000 },
+   { 0x80800001, 0x450001b1, 0x00b10500, 0x00000000 },
+   { 0x80800001, 0x452001b1, 0x00b10520, 0x00000000 },
+   { 0x80800001, 0x454001b1, 0x00b10540, 0x00000000 },
+   { 0x80800001, 0x456001b1, 0x00b10560, 0x00000000 },
+   { 0x00800001, 0x20200232, 0x00b20380, 0x00000000 },
+   { 0x00800001, 0x20300232, 0x00b203a0, 0x00000000 },
+   { 0x00800001, 0x20400232, 0x00b203c0, 0x00000000 },
+   { 0x00800001, 0x20500232, 0x00b203e0, 0x00000000 },
+   { 0x00800001, 0x20600232, 0x00b20400, 0x00000000 },
+   { 0x00800001, 0x20700232, 0x00b20420, 0x00000000 },
+   { 0x00800001, 0x20800232, 0x00b20440, 0x00000000 },
+   { 0x00800001, 0x20900232, 0x00b20460, 0x00000000 },
+   { 0x00800001, 0x20a00232, 0x00b20480, 0x00000000 },
+   { 0x00800001, 0x20b00232, 0x00b204a0, 0x00000000 },
+   { 0x00800001, 0x20c00232, 0x00b204c0, 0x00000000 },
+   { 0x00800001, 0x20d00232, 0x00b204e0, 0x00000000 },
+   { 0x00800001, 0x20e00232, 0x00b20500, 0x00000000 },
+   { 0x00800001, 0x20f00232, 0x00b20520, 0x00000000 },
+   { 0x00800001, 0x21000232, 0x00b20540, 0x00000000 },
+   { 0x00800001, 0x21100232, 0x00b20560, 0x00000000 },
+   { 0x00800031, 0x24001d28, 0x008d0020, 0x05902000 },
+   { 0x00000001, 0x20280061, 0x00000000, 0x00070007 },
+   { 0x00200008, 0x20201c21, 0x00450020, 0x00000001 },
+   { 0x00800040, 0x258025a9, 0x00b10260, 0x00b10580 },
+   { 0x00800040, 0x25a025a9, 0x00b10280, 0x00b105a0 },
+   { 0x00800040, 0x25c025a9, 0x00b102a0, 0x00b105c0 },
+   { 0x00800040, 0x25e025a9, 0x00b102c0, 0x00b105e0 },
+   { 0x80800001, 0x45800131, 0x00b10580, 0x00000000 },
+   { 0x80800001, 0x45a00131, 0x00b105a0, 0x00000000 },
+   { 0x80800001, 0x45c00131, 0x00b105c0, 0x00000000 },
+   { 0x80800001, 0x45e00131, 0x00b105e0, 0x00000000 },
+   { 0x00800001, 0x20200232, 0x00b20580, 0x00000000 },
+   { 0x00800001, 0x20300232, 0x00b205a0, 0x00000000 },
+   { 0x00800001, 0x20400232, 0x00b205c0, 0x00000000 },
+   { 0x00800001, 0x20500232, 0x00b205e0, 0x00000000 },
+   { 0x00800031, 0x24001d28, 0x008d0020, 0x05302001 },
+   { 0x00800040, 0x260025a9, 0x00b102e0, 0x00b10600 },
+   { 0x00800040, 0x262025a9, 0x00b10300, 0x00b10620 },
+   { 0x00800040, 0x264025a9, 0x00b10320, 0x00b10640 },
+   { 0x00800040, 0x266025a9, 0x00b10340, 0x00b10660 },
+   { 0x80800001, 0x46000131, 0x00b10600, 0x00000000 },
+   { 0x80800001, 0x46200131, 0x00b10620, 0x00000000 },
+   { 0x80800001, 0x46400131, 0x00b10640, 0x00000000 },
+   { 0x80800001, 0x46600131, 0x00b10660, 0x00000000 },
+   { 0x00800001, 0x20200232, 0x00b20600, 0x00000000 },
+   { 0x00800001, 0x20300232, 0x00b20620, 0x00000000 },
+   { 0x00800001, 0x20400232, 0x00b20640, 0x00000000 },
+   { 0x00800001, 0x20500232, 0x00b20660, 0x00000000 },
+   { 0x00800031, 0x24001d28, 0x008d0020, 0x05302002 },
+   { 0x00800031, 0x24001d28, 0x008d0000, 0x87100000 },
+   { 0x00800031, 0x24001d28, 0x008d0000, 0x87100000 },
diff --git a/src/xvmc/shader/mc/frame_f_b_igd.g4a b/src/xvmc/shader/mc/frame_f_b_igd.g4a
new file mode 100644
index 0000000..ca7952e
--- /dev/null
+++ b/src/xvmc/shader/mc/frame_f_b_igd.g4a
@@ -0,0 +1,131 @@
+/*
+ * Copyright © 2008 Intel Corporation
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice (including the next
+ * paragraph) shall be included in all copies or substantial portions of the
+ * Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
+ * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+ * SOFTWARE.
+ *
+ * Author:
+ *    Zou Nan hai <nanhai.zou at intel.com>
+ *    Zhang Hua jun <huajun.zhang at intel.com>
+ *    Xing Dong sheng <dongsheng.xing at intel.com>
+ *
+ */
+
+/* shader for forward and backward predict mc
+*/
+/* (x', y') = (x, y) + (motion_vector1.x >> 1, motion_vector1.y >> 1)
+/* (x'', y'') = (x, y) + (motion_vector2.x >> 1, motion_vector2.y >> 1)
+/* f(x, y) = (motion_forward(x`, y`) + motion_backward(x'', y'') + 1) / 2 */
+
+//Save payload
+mov (8) g76.0<1>UD g1.0<8,8,1>UD {align1};
+//mov (8) g77.0<1>UD g2.0<8,8,1>UD {align1};
+include(`block_clear.g4i')
+
+mov (8) g115.0<1>UD g1.0<8,8,1>UD {align1};
+mov (1) g1.8<1>UD 0x0070007UD  {align1};
+mov (8) g2.0<1>UD g1.0<8,8,1>UD {align1};
+/* Y */
+//Forward
+asr (2) g1.14<1>W g115.14<2,2,1>W 1W {align1};
+add (2) g2.0<1>UD g115.0<2,2,1>UD g1.14<2,2,1>W {align1};
+define(`input_surface',	`4')
+define(`mv1',	`g115.14')
+define(`mv2',	`g115.16')
+include(`motion_frame_y_igd.g4i')
+mov (16) g52.0<1>UD g28.0<16,16,1>UD {align1 compr};
+mov (16) g54.0<1>UD g30.0<16,16,1>UD {align1 compr};
+mov (16) g56.0<1>UD g32.0<16,16,1>UD {align1 compr};
+mov (16) g58.0<1>UD g34.0<16,16,1>UD {align1 compr};
+mov (16) g60.0<1>UD g36.0<16,16,1>UD {align1 compr};
+mov (16) g62.0<1>UD g38.0<16,16,1>UD {align1 compr};
+mov (16) g64.0<1>UD g40.0<16,16,1>UD {align1 compr};
+mov (16) g66.0<1>UD g42.0<16,16,1>UD {align1 compr};
+//Backward
+asr (2) g1.14<1>W g115.18<2,2,1>W 1W {align1};
+add (2) g2.0<1>UD g115.0<2,2,1>UD g1.14<2,2,1>W {align1};
+define(`input_surface',	`7')
+define(`mv1',	`g115.18')
+define(`mv2',	`g115.20')
+include(`motion_frame_y_igd.g4i')
+
+//Average
+avg.sat (16) g28.0<1>UW g28.0<16,16,1>UW g52.0<16,16,1>UW {align1};
+avg.sat (16) g29.0<1>UW g29.0<16,16,1>UW g53.0<16,16,1>UW {align1};
+avg.sat (16) g30.0<1>UW g30.0<16,16,1>UW g54.0<16,16,1>UW {align1};
+avg.sat (16) g31.0<1>UW g31.0<16,16,1>UW g55.0<16,16,1>UW {align1};
+avg.sat (16) g32.0<1>UW g32.0<16,16,1>UW g56.0<16,16,1>UW {align1};
+avg.sat (16) g33.0<1>UW g33.0<16,16,1>UW g57.0<16,16,1>UW {align1};
+avg.sat (16) g34.0<1>UW g34.0<16,16,1>UW g58.0<16,16,1>UW {align1};
+avg.sat (16) g35.0<1>UW g35.0<16,16,1>UW g59.0<16,16,1>UW {align1};
+avg.sat (16) g36.0<1>UW g36.0<16,16,1>UW g60.0<16,16,1>UW {align1};
+avg.sat (16) g37.0<1>UW g37.0<16,16,1>UW g61.0<16,16,1>UW {align1};
+avg.sat (16) g38.0<1>UW g38.0<16,16,1>UW g62.0<16,16,1>UW {align1};
+avg.sat (16) g39.0<1>UW g39.0<16,16,1>UW g63.0<16,16,1>UW {align1};
+avg.sat (16) g40.0<1>UW g40.0<16,16,1>UW g64.0<16,16,1>UW {align1};
+avg.sat (16) g41.0<1>UW g41.0<16,16,1>UW g65.0<16,16,1>UW {align1};
+avg.sat (16) g42.0<1>UW g42.0<16,16,1>UW g66.0<16,16,1>UW {align1};
+avg.sat (16) g43.0<1>UW g43.0<16,16,1>UW g67.0<16,16,1>UW {align1};
+
+/* UV */
+//Forward
+shr (2) g1.0<1>UD g115.0<2,2,1>UD 1UD {align1};
+asr (2) g115.14<1>W g115.14<2,2,1>W 1W {align1};
+asr (2) g1.14<1>W g115.14<2,2,1>W 1W {align1};
+add (2) g2.0<1>UD g1.0<2,2,1>UD g1.14<2,2,1>W {align1};
+
+define(`input_surface1',	`5')
+define(`input_surface2',	`6')
+define(`mv1',	`g115.14')
+define(`mv2',	`g115.16')
+mov (1) g2.8<1>UD 0x007000fUD  {align1};
+include(`motion_frame_uv_igd.g4i')
+mov (16) g122.0<1>UB g44.0<16,16,2>UB {align1};
+mov (16) g122.16<1>UB g45.0<16,16,2>UB {align1};
+mov (16) g123.0<1>UB g46.0<16,16,2>UB {align1};
+mov (16) g123.16<1>UB g47.0<16,16,2>UB {align1};
+mov (16) g124.0<1>UB g48.0<16,16,2>UB {align1};
+mov (16) g124.16<1>UB g49.0<16,16,2>UB {align1};
+mov (16) g125.0<1>UB g50.0<16,16,2>UB {align1};
+mov (16) g125.16<1>UB g51.0<16,16,2>UB {align1};
+//Backward
+asr (2) g115.18<1>W g115.18<2,2,1>W 1W {align1};
+asr (2) g1.14<1>W g115.18<2,2,1>W 1W {align1};
+add (2) g2.0<1>UD g1.0<2,2,1>UD g1.14<2,2,1>W {align1};
+define(`input_surface1',	`8')
+define(`input_surface2',	`9')
+define(`mv1',	`g115.18')
+define(`mv2',	`g115.20')
+mov (1) g2.8<1>UD 0x007000fUD  {align1};
+include(`motion_frame_uv_igd.g4i')
+
+//Average
+avg.sat (16) g44.0<1>UW g44.0<16,16,1>UW g122.0<16,16,1>UB {align1};
+avg.sat (16) g45.0<1>UW g45.0<16,16,1>UW g122.16<16,16,1>UB {align1};
+avg.sat (16) g46.0<1>UW g46.0<16,16,1>UW g123.0<16,16,1>UB {align1};
+avg.sat (16) g47.0<1>UW g47.0<16,16,1>UW g123.16<16,16,1>UB {align1};
+avg.sat (16) g48.0<1>UW g48.0<16,16,1>UW g124.0<16,16,1>UB {align1};
+avg.sat (16) g49.0<1>UW g49.0<16,16,1>UW g124.16<16,16,1>UB {align1};
+avg.sat (16) g50.0<1>UW g50.0<16,16,1>UW g125.0<16,16,1>UB {align1};
+avg.sat (16) g51.0<1>UW g51.0<16,16,1>UW g125.16<16,16,1>UB {align1};
+
+include(`addidct.g4i')
+
+send (16) 0 acc0<1>UW g0<8,8,1>UW 
+	thread_spawner(0, 0, 0) mlen 1 rlen 0 { align1 EOT};
diff --git a/src/xvmc/shader/mc/frame_f_b_igd.g4b b/src/xvmc/shader/mc/frame_f_b_igd.g4b
new file mode 100644
index 0000000..f838d7b
--- /dev/null
+++ b/src/xvmc/shader/mc/frame_f_b_igd.g4b
@@ -0,0 +1,573 @@
+   { 0x00600001, 0x29800021, 0x008d0020, 0x00000000 },
+   { 0x02000005, 0x20000c3c, 0x00210040, 0x00000001 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x00000030 },
+   { 0x00000040, 0x20480c21, 0x00210988, 0x00000000 },
+   { 0x00800031, 0x20601c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x20801c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x20a01c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x20c01c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x20e01c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x21001c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x21201c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x21401c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x21601c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x21801c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x21a01c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x21c01c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x21e01c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x22001c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x22201c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x22401c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x22601c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x22801c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x22a01c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x22c01c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x22e01c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x23001c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x23201c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x23401c21, 0x00b10040, 0x04110203 },
+   { 0x02000005, 0x20002d3c, 0x0021098c, 0x00200020 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x00000008 },
+   { 0x00600001, 0x20600169, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x20800169, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x20a00169, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x20c00169, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x20e00169, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x21000169, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x21200169, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x21400169, 0x00000000, 0x00000000 },
+   { 0x02000005, 0x20002d3c, 0x0021002c, 0x00100010 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x00000008 },
+   { 0x00600001, 0x20700169, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x20900169, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x20b00169, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x20d00169, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x20f00169, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x21100169, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x21300169, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x21500169, 0x00000000, 0x00000000 },
+   { 0x02000005, 0x20002d3c, 0x0021002c, 0x00080008 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x00000008 },
+   { 0x00600001, 0x21600169, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x21800169, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x21a00169, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x21c00169, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x21e00169, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x22000169, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x22200169, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x22400169, 0x00000000, 0x00000000 },
+   { 0x02000005, 0x20002d3c, 0x0021002c, 0x00040004 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x00000008 },
+   { 0x00600001, 0x21700169, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x21900169, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x21b00169, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x21d00169, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x21f00169, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x22100169, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x22300169, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x22500169, 0x00000000, 0x00000000 },
+   { 0x02000005, 0x20002d3c, 0x0021002c, 0x00020002 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x00000004 },
+   { 0x00800001, 0x22600169, 0x00000000, 0x00000000 },
+   { 0x00800001, 0x22800169, 0x00000000, 0x00000000 },
+   { 0x00800001, 0x22a00169, 0x00000000, 0x00000000 },
+   { 0x00800001, 0x22c00169, 0x00000000, 0x00000000 },
+   { 0x02000005, 0x20002d3c, 0x0021002c, 0x00010001 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x00000004 },
+   { 0x00800001, 0x22e00169, 0x00000000, 0x00000000 },
+   { 0x00800001, 0x23000169, 0x00000000, 0x00000000 },
+   { 0x00800001, 0x23200169, 0x00000000, 0x00000000 },
+   { 0x00800001, 0x23400169, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x2e600021, 0x008d0020, 0x00000000 },
+   { 0x00000001, 0x20280061, 0x00000000, 0x00070007 },
+   { 0x00600001, 0x20400021, 0x008d0020, 0x00000000 },
+   { 0x0020000c, 0x202e3dad, 0x00450e6e, 0x00010001 },
+   { 0x00200040, 0x20403421, 0x00450e60, 0x0045002e },
+   { 0x01000005, 0x20000d3c, 0x00210e6e, 0x00000001 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x0000005f },
+   { 0x01000005, 0x20000d3c, 0x00210e70, 0x00000001 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x00000048 },
+   { 0x00000001, 0x20480061, 0x00000000, 0x0007001f },
+   { 0x00800031, 0x2c401d29, 0x008d0040, 0x0418a004 },
+   { 0x00000040, 0x20440c21, 0x00210044, 0x00000008 },
+   { 0x00800031, 0x2d401d29, 0x008d0040, 0x0418a004 },
+   { 0x00000040, 0x20440c21, 0x00210044, 0x00000008 },
+   { 0x00000001, 0x20480061, 0x00000000, 0x0000001f },
+   { 0x00800031, 0x2f001d29, 0x008d0040, 0x0411a004 },
+   { 0x00800040, 0x23804629, 0x00b10c40, 0x00b10c41 },
+   { 0x00800040, 0x23a04629, 0x00b10c60, 0x00b10c61 },
+   { 0x00800040, 0x23c04629, 0x00b10c80, 0x00b10c81 },
+   { 0x00800040, 0x23e04629, 0x00b10ca0, 0x00b10ca1 },
+   { 0x00800040, 0x24004629, 0x00b10cc0, 0x00b10cc1 },
+   { 0x00800040, 0x24204629, 0x00b10ce0, 0x00b10ce1 },
+   { 0x00800040, 0x24404629, 0x00b10d00, 0x00b10d01 },
+   { 0x00800040, 0x24604629, 0x00b10d20, 0x00b10d21 },
+   { 0x00800040, 0x24804629, 0x00b10d40, 0x00b10d41 },
+   { 0x00800040, 0x24a04629, 0x00b10d60, 0x00b10d61 },
+   { 0x00800040, 0x24c04629, 0x00b10d80, 0x00b10d81 },
+   { 0x00800040, 0x24e04629, 0x00b10da0, 0x00b10da1 },
+   { 0x00800040, 0x25004629, 0x00b10dc0, 0x00b10dc1 },
+   { 0x00800040, 0x25204629, 0x00b10de0, 0x00b10de1 },
+   { 0x00800040, 0x25404629, 0x00b10e00, 0x00b10e01 },
+   { 0x00800040, 0x25604629, 0x00b10e20, 0x00b10e21 },
+   { 0x00800040, 0x23804529, 0x00b10380, 0x00b10c60 },
+   { 0x00800040, 0x23a04529, 0x00b103a0, 0x00b10c80 },
+   { 0x00800040, 0x23c04529, 0x00b103c0, 0x00b10ca0 },
+   { 0x00800040, 0x23e04529, 0x00b103e0, 0x00b10cc0 },
+   { 0x00800040, 0x24004529, 0x00b10400, 0x00b10ce0 },
+   { 0x00800040, 0x24204529, 0x00b10420, 0x00b10d00 },
+   { 0x00800040, 0x24404529, 0x00b10440, 0x00b10d20 },
+   { 0x00800040, 0x24604529, 0x00b10460, 0x00b10d40 },
+   { 0x00800040, 0x24804529, 0x00b10480, 0x00b10d60 },
+   { 0x00800040, 0x24a04529, 0x00b104a0, 0x00b10d80 },
+   { 0x00800040, 0x24c04529, 0x00b104c0, 0x00b10da0 },
+   { 0x00800040, 0x24e04529, 0x00b104e0, 0x00b10dc0 },
+   { 0x00800040, 0x25004529, 0x00b10500, 0x00b10de0 },
+   { 0x00800040, 0x25204529, 0x00b10520, 0x00b10e00 },
+   { 0x00800040, 0x25404529, 0x00b10540, 0x00b10e20 },
+   { 0x00800040, 0x25604529, 0x00b10560, 0x00b10f00 },
+   { 0x00800040, 0x23804529, 0x00b10380, 0x00b10c61 },
+   { 0x00800040, 0x23a04529, 0x00b103a0, 0x00b10c81 },
+   { 0x00800040, 0x23c04529, 0x00b103c0, 0x00b10ca1 },
+   { 0x00800040, 0x23e04529, 0x00b103e0, 0x00b10cc1 },
+   { 0x00800040, 0x24004529, 0x00b10400, 0x00b10ce1 },
+   { 0x00800040, 0x24204529, 0x00b10420, 0x00b10d01 },
+   { 0x00800040, 0x24404529, 0x00b10440, 0x00b10d21 },
+   { 0x00800040, 0x24604529, 0x00b10460, 0x00b10d41 },
+   { 0x00800040, 0x24804529, 0x00b10480, 0x00b10d61 },
+   { 0x00800040, 0x24a04529, 0x00b104a0, 0x00b10d81 },
+   { 0x00800040, 0x24c04529, 0x00b104c0, 0x00b10da1 },
+   { 0x00800040, 0x24e04529, 0x00b104e0, 0x00b10dc1 },
+   { 0x00800040, 0x25004529, 0x00b10500, 0x00b10de1 },
+   { 0x00800040, 0x25204529, 0x00b10520, 0x00b10e01 },
+   { 0x00800040, 0x25404529, 0x00b10540, 0x00b10e21 },
+   { 0x00800040, 0x25604529, 0x00b10560, 0x00b10f01 },
+   { 0x80800008, 0x23802d29, 0x00b10380, 0x00020002 },
+   { 0x80800008, 0x23a02d29, 0x00b103a0, 0x00020002 },
+   { 0x80800008, 0x23c02d29, 0x00b103c0, 0x00020002 },
+   { 0x80800008, 0x23e02d29, 0x00b103e0, 0x00020002 },
+   { 0x80800008, 0x24002d29, 0x00b10400, 0x00020002 },
+   { 0x80800008, 0x24202d29, 0x00b10420, 0x00020002 },
+   { 0x80800008, 0x24402d29, 0x00b10440, 0x00020002 },
+   { 0x80800008, 0x24602d29, 0x00b10460, 0x00020002 },
+   { 0x80800008, 0x24802d29, 0x00b10480, 0x00020002 },
+   { 0x80800008, 0x24a02d29, 0x00b104a0, 0x00020002 },
+   { 0x80800008, 0x24c02d29, 0x00b104c0, 0x00020002 },
+   { 0x80800008, 0x24e02d29, 0x00b104e0, 0x00020002 },
+   { 0x80800008, 0x25002d29, 0x00b10500, 0x00020002 },
+   { 0x80800008, 0x25202d29, 0x00b10520, 0x00020002 },
+   { 0x80800008, 0x25402d29, 0x00b10540, 0x00020002 },
+   { 0x80800008, 0x25602d29, 0x00b10560, 0x00020002 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000043 },
+   { 0x00000001, 0x20480061, 0x00000000, 0x0007001f },
+   { 0x00800031, 0x2c401d29, 0x008d0040, 0x0418a004 },
+   { 0x00000040, 0x20440c21, 0x00210044, 0x00000008 },
+   { 0x00800031, 0x2d401d29, 0x008d0040, 0x0418a004 },
+   { 0x80800042, 0x23804629, 0x00b10c40, 0x00b10c41 },
+   { 0x80800042, 0x23a04629, 0x00b10c60, 0x00b10c61 },
+   { 0x80800042, 0x23c04629, 0x00b10c80, 0x00b10c81 },
+   { 0x80800042, 0x23e04629, 0x00b10ca0, 0x00b10ca1 },
+   { 0x80800042, 0x24004629, 0x00b10cc0, 0x00b10cc1 },
+   { 0x80800042, 0x24204629, 0x00b10ce0, 0x00b10ce1 },
+   { 0x80800042, 0x24404629, 0x00b10d00, 0x00b10d01 },
+   { 0x80800042, 0x24604629, 0x00b10d20, 0x00b10d21 },
+   { 0x80800042, 0x24804629, 0x00b10d40, 0x00b10d41 },
+   { 0x80800042, 0x24a04629, 0x00b10d60, 0x00b10d61 },
+   { 0x80800042, 0x24c04629, 0x00b10d80, 0x00b10d81 },
+   { 0x80800042, 0x24e04629, 0x00b10da0, 0x00b10da1 },
+   { 0x80800042, 0x25004629, 0x00b10dc0, 0x00b10dc1 },
+   { 0x80800042, 0x25204629, 0x00b10de0, 0x00b10de1 },
+   { 0x80800042, 0x25404629, 0x00b10e00, 0x00b10e01 },
+   { 0x80800042, 0x25604629, 0x00b10e20, 0x00b10e21 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x0000002e },
+   { 0x01000005, 0x20000d3c, 0x00210e70, 0x00000001 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x00000018 },
+   { 0x00000001, 0x20480061, 0x00000000, 0x0007001f },
+   { 0x00800031, 0x2c401d29, 0x008d0040, 0x0418a004 },
+   { 0x00000040, 0x20440c21, 0x00210044, 0x00000008 },
+   { 0x00800031, 0x2d401d29, 0x008d0040, 0x0418a004 },
+   { 0x00000040, 0x20440c21, 0x00210044, 0x00000008 },
+   { 0x00000001, 0x20480061, 0x00000000, 0x0000001f },
+   { 0x00800031, 0x2f001d29, 0x008d0040, 0x0411a004 },
+   { 0x80800042, 0x23804629, 0x00b10c40, 0x00b10c60 },
+   { 0x80800042, 0x23a04629, 0x00b10c60, 0x00b10c80 },
+   { 0x80800042, 0x23c04629, 0x00b10c80, 0x00b10ca0 },
+   { 0x80800042, 0x23e04629, 0x00b10ca0, 0x00b10cc0 },
+   { 0x80800042, 0x24004629, 0x00b10cc0, 0x00b10ce0 },
+   { 0x80800042, 0x24204629, 0x00b10ce0, 0x00b10d00 },
+   { 0x80800042, 0x24404629, 0x00b10d00, 0x00b10d20 },
+   { 0x80800042, 0x24604629, 0x00b10d20, 0x00b10d40 },
+   { 0x80800042, 0x24804629, 0x00b10d40, 0x00b10d60 },
+   { 0x80800042, 0x24a04629, 0x00b10d60, 0x00b10d80 },
+   { 0x80800042, 0x24c04629, 0x00b10d80, 0x00b10da0 },
+   { 0x80800042, 0x24e04629, 0x00b10da0, 0x00b10dc0 },
+   { 0x80800042, 0x25004629, 0x00b10dc0, 0x00b10de0 },
+   { 0x80800042, 0x25204629, 0x00b10de0, 0x00b10e00 },
+   { 0x80800042, 0x25404629, 0x00b10e00, 0x00b10e20 },
+   { 0x80800042, 0x25604629, 0x00b10e20, 0x00b10f00 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000014 },
+   { 0x00000001, 0x20480061, 0x00000000, 0x0007001f },
+   { 0x00800031, 0x2c401d29, 0x008d0040, 0x0418a004 },
+   { 0x00000040, 0x20440c21, 0x00210044, 0x00000008 },
+   { 0x00800031, 0x2d401d29, 0x008d0040, 0x0418a004 },
+   { 0x00800001, 0x23800229, 0x00b10c40, 0x00000000 },
+   { 0x00800001, 0x23a00229, 0x00b10c60, 0x00000000 },
+   { 0x00800001, 0x23c00229, 0x00b10c80, 0x00000000 },
+   { 0x00800001, 0x23e00229, 0x00b10ca0, 0x00000000 },
+   { 0x00800001, 0x24000229, 0x00b10cc0, 0x00000000 },
+   { 0x00800001, 0x24200229, 0x00b10ce0, 0x00000000 },
+   { 0x00800001, 0x24400229, 0x00b10d00, 0x00000000 },
+   { 0x00800001, 0x24600229, 0x00b10d20, 0x00000000 },
+   { 0x00800001, 0x24800229, 0x00b10d40, 0x00000000 },
+   { 0x00800001, 0x24a00229, 0x00b10d60, 0x00000000 },
+   { 0x00800001, 0x24c00229, 0x00b10d80, 0x00000000 },
+   { 0x00800001, 0x24e00229, 0x00b10da0, 0x00000000 },
+   { 0x00800001, 0x25000229, 0x00b10dc0, 0x00000000 },
+   { 0x00800001, 0x25200229, 0x00b10de0, 0x00000000 },
+   { 0x00800001, 0x25400229, 0x00b10e00, 0x00000000 },
+   { 0x00800001, 0x25600229, 0x00b10e20, 0x00000000 },
+   { 0x00802001, 0x26800021, 0x00b10380, 0x00000000 },
+   { 0x00802001, 0x26c00021, 0x00b103c0, 0x00000000 },
+   { 0x00802001, 0x27000021, 0x00b10400, 0x00000000 },
+   { 0x00802001, 0x27400021, 0x00b10440, 0x00000000 },
+   { 0x00802001, 0x27800021, 0x00b10480, 0x00000000 },
+   { 0x00802001, 0x27c00021, 0x00b104c0, 0x00000000 },
+   { 0x00802001, 0x28000021, 0x00b10500, 0x00000000 },
+   { 0x00802001, 0x28400021, 0x00b10540, 0x00000000 },
+   { 0x0020000c, 0x202e3dad, 0x00450e72, 0x00010001 },
+   { 0x00200040, 0x20403421, 0x00450e60, 0x0045002e },
+   { 0x01000005, 0x20000d3c, 0x00210e72, 0x00000001 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x0000005f },
+   { 0x01000005, 0x20000d3c, 0x00210e74, 0x00000001 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x00000048 },
+   { 0x00000001, 0x20480061, 0x00000000, 0x0007001f },
+   { 0x00800031, 0x2c401d29, 0x008d0040, 0x0418a007 },
+   { 0x00000040, 0x20440c21, 0x00210044, 0x00000008 },
+   { 0x00800031, 0x2d401d29, 0x008d0040, 0x0418a007 },
+   { 0x00000040, 0x20440c21, 0x00210044, 0x00000008 },
+   { 0x00000001, 0x20480061, 0x00000000, 0x0000001f },
+   { 0x00800031, 0x2f001d29, 0x008d0040, 0x0411a007 },
+   { 0x00800040, 0x23804629, 0x00b10c40, 0x00b10c41 },
+   { 0x00800040, 0x23a04629, 0x00b10c60, 0x00b10c61 },
+   { 0x00800040, 0x23c04629, 0x00b10c80, 0x00b10c81 },
+   { 0x00800040, 0x23e04629, 0x00b10ca0, 0x00b10ca1 },
+   { 0x00800040, 0x24004629, 0x00b10cc0, 0x00b10cc1 },
+   { 0x00800040, 0x24204629, 0x00b10ce0, 0x00b10ce1 },
+   { 0x00800040, 0x24404629, 0x00b10d00, 0x00b10d01 },
+   { 0x00800040, 0x24604629, 0x00b10d20, 0x00b10d21 },
+   { 0x00800040, 0x24804629, 0x00b10d40, 0x00b10d41 },
+   { 0x00800040, 0x24a04629, 0x00b10d60, 0x00b10d61 },
+   { 0x00800040, 0x24c04629, 0x00b10d80, 0x00b10d81 },
+   { 0x00800040, 0x24e04629, 0x00b10da0, 0x00b10da1 },
+   { 0x00800040, 0x25004629, 0x00b10dc0, 0x00b10dc1 },
+   { 0x00800040, 0x25204629, 0x00b10de0, 0x00b10de1 },
+   { 0x00800040, 0x25404629, 0x00b10e00, 0x00b10e01 },
+   { 0x00800040, 0x25604629, 0x00b10e20, 0x00b10e21 },
+   { 0x00800040, 0x23804529, 0x00b10380, 0x00b10c60 },
+   { 0x00800040, 0x23a04529, 0x00b103a0, 0x00b10c80 },
+   { 0x00800040, 0x23c04529, 0x00b103c0, 0x00b10ca0 },
+   { 0x00800040, 0x23e04529, 0x00b103e0, 0x00b10cc0 },
+   { 0x00800040, 0x24004529, 0x00b10400, 0x00b10ce0 },
+   { 0x00800040, 0x24204529, 0x00b10420, 0x00b10d00 },
+   { 0x00800040, 0x24404529, 0x00b10440, 0x00b10d20 },
+   { 0x00800040, 0x24604529, 0x00b10460, 0x00b10d40 },
+   { 0x00800040, 0x24804529, 0x00b10480, 0x00b10d60 },
+   { 0x00800040, 0x24a04529, 0x00b104a0, 0x00b10d80 },
+   { 0x00800040, 0x24c04529, 0x00b104c0, 0x00b10da0 },
+   { 0x00800040, 0x24e04529, 0x00b104e0, 0x00b10dc0 },
+   { 0x00800040, 0x25004529, 0x00b10500, 0x00b10de0 },
+   { 0x00800040, 0x25204529, 0x00b10520, 0x00b10e00 },
+   { 0x00800040, 0x25404529, 0x00b10540, 0x00b10e20 },
+   { 0x00800040, 0x25604529, 0x00b10560, 0x00b10f00 },
+   { 0x00800040, 0x23804529, 0x00b10380, 0x00b10c61 },
+   { 0x00800040, 0x23a04529, 0x00b103a0, 0x00b10c81 },
+   { 0x00800040, 0x23c04529, 0x00b103c0, 0x00b10ca1 },
+   { 0x00800040, 0x23e04529, 0x00b103e0, 0x00b10cc1 },
+   { 0x00800040, 0x24004529, 0x00b10400, 0x00b10ce1 },
+   { 0x00800040, 0x24204529, 0x00b10420, 0x00b10d01 },
+   { 0x00800040, 0x24404529, 0x00b10440, 0x00b10d21 },
+   { 0x00800040, 0x24604529, 0x00b10460, 0x00b10d41 },
+   { 0x00800040, 0x24804529, 0x00b10480, 0x00b10d61 },
+   { 0x00800040, 0x24a04529, 0x00b104a0, 0x00b10d81 },
+   { 0x00800040, 0x24c04529, 0x00b104c0, 0x00b10da1 },
+   { 0x00800040, 0x24e04529, 0x00b104e0, 0x00b10dc1 },
+   { 0x00800040, 0x25004529, 0x00b10500, 0x00b10de1 },
+   { 0x00800040, 0x25204529, 0x00b10520, 0x00b10e01 },
+   { 0x00800040, 0x25404529, 0x00b10540, 0x00b10e21 },
+   { 0x00800040, 0x25604529, 0x00b10560, 0x00b10f01 },
+   { 0x80800008, 0x23802d29, 0x00b10380, 0x00020002 },
+   { 0x80800008, 0x23a02d29, 0x00b103a0, 0x00020002 },
+   { 0x80800008, 0x23c02d29, 0x00b103c0, 0x00020002 },
+   { 0x80800008, 0x23e02d29, 0x00b103e0, 0x00020002 },
+   { 0x80800008, 0x24002d29, 0x00b10400, 0x00020002 },
+   { 0x80800008, 0x24202d29, 0x00b10420, 0x00020002 },
+   { 0x80800008, 0x24402d29, 0x00b10440, 0x00020002 },
+   { 0x80800008, 0x24602d29, 0x00b10460, 0x00020002 },
+   { 0x80800008, 0x24802d29, 0x00b10480, 0x00020002 },
+   { 0x80800008, 0x24a02d29, 0x00b104a0, 0x00020002 },
+   { 0x80800008, 0x24c02d29, 0x00b104c0, 0x00020002 },
+   { 0x80800008, 0x24e02d29, 0x00b104e0, 0x00020002 },
+   { 0x80800008, 0x25002d29, 0x00b10500, 0x00020002 },
+   { 0x80800008, 0x25202d29, 0x00b10520, 0x00020002 },
+   { 0x80800008, 0x25402d29, 0x00b10540, 0x00020002 },
+   { 0x80800008, 0x25602d29, 0x00b10560, 0x00020002 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000043 },
+   { 0x00000001, 0x20480061, 0x00000000, 0x0007001f },
+   { 0x00800031, 0x2c401d29, 0x008d0040, 0x0418a007 },
+   { 0x00000040, 0x20440c21, 0x00210044, 0x00000008 },
+   { 0x00800031, 0x2d401d29, 0x008d0040, 0x0418a007 },
+   { 0x80800042, 0x23804629, 0x00b10c40, 0x00b10c41 },
+   { 0x80800042, 0x23a04629, 0x00b10c60, 0x00b10c61 },
+   { 0x80800042, 0x23c04629, 0x00b10c80, 0x00b10c81 },
+   { 0x80800042, 0x23e04629, 0x00b10ca0, 0x00b10ca1 },
+   { 0x80800042, 0x24004629, 0x00b10cc0, 0x00b10cc1 },
+   { 0x80800042, 0x24204629, 0x00b10ce0, 0x00b10ce1 },
+   { 0x80800042, 0x24404629, 0x00b10d00, 0x00b10d01 },
+   { 0x80800042, 0x24604629, 0x00b10d20, 0x00b10d21 },
+   { 0x80800042, 0x24804629, 0x00b10d40, 0x00b10d41 },
+   { 0x80800042, 0x24a04629, 0x00b10d60, 0x00b10d61 },
+   { 0x80800042, 0x24c04629, 0x00b10d80, 0x00b10d81 },
+   { 0x80800042, 0x24e04629, 0x00b10da0, 0x00b10da1 },
+   { 0x80800042, 0x25004629, 0x00b10dc0, 0x00b10dc1 },
+   { 0x80800042, 0x25204629, 0x00b10de0, 0x00b10de1 },
+   { 0x80800042, 0x25404629, 0x00b10e00, 0x00b10e01 },
+   { 0x80800042, 0x25604629, 0x00b10e20, 0x00b10e21 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x0000002e },
+   { 0x01000005, 0x20000d3c, 0x00210e74, 0x00000001 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x00000018 },
+   { 0x00000001, 0x20480061, 0x00000000, 0x0007001f },
+   { 0x00800031, 0x2c401d29, 0x008d0040, 0x0418a007 },
+   { 0x00000040, 0x20440c21, 0x00210044, 0x00000008 },
+   { 0x00800031, 0x2d401d29, 0x008d0040, 0x0418a007 },
+   { 0x00000040, 0x20440c21, 0x00210044, 0x00000008 },
+   { 0x00000001, 0x20480061, 0x00000000, 0x0000001f },
+   { 0x00800031, 0x2f001d29, 0x008d0040, 0x0411a007 },
+   { 0x80800042, 0x23804629, 0x00b10c40, 0x00b10c60 },
+   { 0x80800042, 0x23a04629, 0x00b10c60, 0x00b10c80 },
+   { 0x80800042, 0x23c04629, 0x00b10c80, 0x00b10ca0 },
+   { 0x80800042, 0x23e04629, 0x00b10ca0, 0x00b10cc0 },
+   { 0x80800042, 0x24004629, 0x00b10cc0, 0x00b10ce0 },
+   { 0x80800042, 0x24204629, 0x00b10ce0, 0x00b10d00 },
+   { 0x80800042, 0x24404629, 0x00b10d00, 0x00b10d20 },
+   { 0x80800042, 0x24604629, 0x00b10d20, 0x00b10d40 },
+   { 0x80800042, 0x24804629, 0x00b10d40, 0x00b10d60 },
+   { 0x80800042, 0x24a04629, 0x00b10d60, 0x00b10d80 },
+   { 0x80800042, 0x24c04629, 0x00b10d80, 0x00b10da0 },
+   { 0x80800042, 0x24e04629, 0x00b10da0, 0x00b10dc0 },
+   { 0x80800042, 0x25004629, 0x00b10dc0, 0x00b10de0 },
+   { 0x80800042, 0x25204629, 0x00b10de0, 0x00b10e00 },
+   { 0x80800042, 0x25404629, 0x00b10e00, 0x00b10e20 },
+   { 0x80800042, 0x25604629, 0x00b10e20, 0x00b10f00 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000014 },
+   { 0x00000001, 0x20480061, 0x00000000, 0x0007001f },
+   { 0x00800031, 0x2c401d29, 0x008d0040, 0x0418a007 },
+   { 0x00000040, 0x20440c21, 0x00210044, 0x00000008 },
+   { 0x00800031, 0x2d401d29, 0x008d0040, 0x0418a007 },
+   { 0x00800001, 0x23800229, 0x00b10c40, 0x00000000 },
+   { 0x00800001, 0x23a00229, 0x00b10c60, 0x00000000 },
+   { 0x00800001, 0x23c00229, 0x00b10c80, 0x00000000 },
+   { 0x00800001, 0x23e00229, 0x00b10ca0, 0x00000000 },
+   { 0x00800001, 0x24000229, 0x00b10cc0, 0x00000000 },
+   { 0x00800001, 0x24200229, 0x00b10ce0, 0x00000000 },
+   { 0x00800001, 0x24400229, 0x00b10d00, 0x00000000 },
+   { 0x00800001, 0x24600229, 0x00b10d20, 0x00000000 },
+   { 0x00800001, 0x24800229, 0x00b10d40, 0x00000000 },
+   { 0x00800001, 0x24a00229, 0x00b10d60, 0x00000000 },
+   { 0x00800001, 0x24c00229, 0x00b10d80, 0x00000000 },
+   { 0x00800001, 0x24e00229, 0x00b10da0, 0x00000000 },
+   { 0x00800001, 0x25000229, 0x00b10dc0, 0x00000000 },
+   { 0x00800001, 0x25200229, 0x00b10de0, 0x00000000 },
+   { 0x00800001, 0x25400229, 0x00b10e00, 0x00000000 },
+   { 0x00800001, 0x25600229, 0x00b10e20, 0x00000000 },
+   { 0x80800042, 0x23802529, 0x00b10380, 0x00b10680 },
+   { 0x80800042, 0x23a02529, 0x00b103a0, 0x00b106a0 },
+   { 0x80800042, 0x23c02529, 0x00b103c0, 0x00b106c0 },
+   { 0x80800042, 0x23e02529, 0x00b103e0, 0x00b106e0 },
+   { 0x80800042, 0x24002529, 0x00b10400, 0x00b10700 },
+   { 0x80800042, 0x24202529, 0x00b10420, 0x00b10720 },
+   { 0x80800042, 0x24402529, 0x00b10440, 0x00b10740 },
+   { 0x80800042, 0x24602529, 0x00b10460, 0x00b10760 },
+   { 0x80800042, 0x24802529, 0x00b10480, 0x00b10780 },
+   { 0x80800042, 0x24a02529, 0x00b104a0, 0x00b107a0 },
+   { 0x80800042, 0x24c02529, 0x00b104c0, 0x00b107c0 },
+   { 0x80800042, 0x24e02529, 0x00b104e0, 0x00b107e0 },
+   { 0x80800042, 0x25002529, 0x00b10500, 0x00b10800 },
+   { 0x80800042, 0x25202529, 0x00b10520, 0x00b10820 },
+   { 0x80800042, 0x25402529, 0x00b10540, 0x00b10840 },
+   { 0x80800042, 0x25602529, 0x00b10560, 0x00b10860 },
+   { 0x00200008, 0x20200c21, 0x00450e60, 0x00000001 },
+   { 0x0020000c, 0x2e6e3dad, 0x00450e6e, 0x00010001 },
+   { 0x0020000c, 0x202e3dad, 0x00450e6e, 0x00010001 },
+   { 0x00200040, 0x20403421, 0x00450020, 0x0045002e },
+   { 0x00000001, 0x20480061, 0x00000000, 0x0007000f },
+   { 0x00800031, 0x2ac01d29, 0x008d0040, 0x0414a005 },
+   { 0x00800031, 0x2b401d29, 0x008d0040, 0x0414a006 },
+   { 0x00800001, 0x25800229, 0x00ad0ac0, 0x00000000 },
+   { 0x00800001, 0x25a00229, 0x00ad0ae0, 0x00000000 },
+   { 0x00800001, 0x25c00229, 0x00ad0b00, 0x00000000 },
+   { 0x00800001, 0x25e00229, 0x00ad0b20, 0x00000000 },
+   { 0x00800001, 0x26000229, 0x00ad0b40, 0x00000000 },
+   { 0x00800001, 0x26200229, 0x00ad0b60, 0x00000000 },
+   { 0x00800001, 0x26400229, 0x00ad0b80, 0x00000000 },
+   { 0x00800001, 0x26600229, 0x00ad0ba0, 0x00000000 },
+   { 0x00800001, 0x2f400231, 0x00b20580, 0x00000000 },
+   { 0x00800001, 0x2f500231, 0x00b205a0, 0x00000000 },
+   { 0x00800001, 0x2f600231, 0x00b205c0, 0x00000000 },
+   { 0x00800001, 0x2f700231, 0x00b205e0, 0x00000000 },
+   { 0x00800001, 0x2f800231, 0x00b20600, 0x00000000 },
+   { 0x00800001, 0x2f900231, 0x00b20620, 0x00000000 },
+   { 0x00800001, 0x2fa00231, 0x00b20640, 0x00000000 },
+   { 0x00800001, 0x2fb00231, 0x00b20660, 0x00000000 },
+   { 0x0020000c, 0x2e723dad, 0x00450e72, 0x00010001 },
+   { 0x0020000c, 0x202e3dad, 0x00450e72, 0x00010001 },
+   { 0x00200040, 0x20403421, 0x00450020, 0x0045002e },
+   { 0x00000001, 0x20480061, 0x00000000, 0x0007000f },
+   { 0x00800031, 0x2ac01d29, 0x008d0040, 0x0414a008 },
+   { 0x00800031, 0x2b401d29, 0x008d0040, 0x0414a009 },
+   { 0x00800001, 0x25800229, 0x00ad0ac0, 0x00000000 },
+   { 0x00800001, 0x25a00229, 0x00ad0ae0, 0x00000000 },
+   { 0x00800001, 0x25c00229, 0x00ad0b00, 0x00000000 },
+   { 0x00800001, 0x25e00229, 0x00ad0b20, 0x00000000 },
+   { 0x00800001, 0x26000229, 0x00ad0b40, 0x00000000 },
+   { 0x00800001, 0x26200229, 0x00ad0b60, 0x00000000 },
+   { 0x00800001, 0x26400229, 0x00ad0b80, 0x00000000 },
+   { 0x00800001, 0x26600229, 0x00ad0ba0, 0x00000000 },
+   { 0x80800042, 0x25804529, 0x00b10580, 0x00b10f40 },
+   { 0x80800042, 0x25a04529, 0x00b105a0, 0x00b10f50 },
+   { 0x80800042, 0x25c04529, 0x00b105c0, 0x00b10f60 },
+   { 0x80800042, 0x25e04529, 0x00b105e0, 0x00b10f70 },
+   { 0x80800042, 0x26004529, 0x00b10600, 0x00b10f80 },
+   { 0x80800042, 0x26204529, 0x00b10620, 0x00b10f90 },
+   { 0x80800042, 0x26404529, 0x00b10640, 0x00b10fa0 },
+   { 0x80800042, 0x26604529, 0x00b10660, 0x00b10fb0 },
+   { 0x00600001, 0x20200021, 0x008d0980, 0x00000000 },
+   { 0x00800001, 0x458101f1, 0x00000000, 0x00000000 },
+   { 0x00800001, 0x45a101f1, 0x00000000, 0x00000000 },
+   { 0x00800001, 0x45c101f1, 0x00000000, 0x00000000 },
+   { 0x00800001, 0x45e101f1, 0x00000000, 0x00000000 },
+   { 0x00800001, 0x460101f1, 0x00000000, 0x00000000 },
+   { 0x00800001, 0x462101f1, 0x00000000, 0x00000000 },
+   { 0x00800001, 0x464101f1, 0x00000000, 0x00000000 },
+   { 0x00800001, 0x466101f1, 0x00000000, 0x00000000 },
+   { 0x02000005, 0x20002e3c, 0x0021003e, 0x00010001 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x00000011 },
+   { 0x00800040, 0x238045ad, 0x00b10060, 0x00b20380 },
+   { 0x00800040, 0x23a045ad, 0x00b10080, 0x00b203a0 },
+   { 0x00800040, 0x23c045ad, 0x00b100a0, 0x00b203c0 },
+   { 0x00800040, 0x23e045ad, 0x00b100c0, 0x00b203e0 },
+   { 0x00800040, 0x240045ad, 0x00b100e0, 0x00b20400 },
+   { 0x00800040, 0x242045ad, 0x00b10100, 0x00b20420 },
+   { 0x00800040, 0x244045ad, 0x00b10120, 0x00b20440 },
+   { 0x00800040, 0x246045ad, 0x00b10140, 0x00b20460 },
+   { 0x00800040, 0x248045ad, 0x00b10160, 0x00b20480 },
+   { 0x00800040, 0x24a045ad, 0x00b10180, 0x00b204a0 },
+   { 0x00800040, 0x24c045ad, 0x00b101a0, 0x00b204c0 },
+   { 0x00800040, 0x24e045ad, 0x00b101c0, 0x00b204e0 },
+   { 0x00800040, 0x250045ad, 0x00b101e0, 0x00b20500 },
+   { 0x00800040, 0x252045ad, 0x00b10200, 0x00b20520 },
+   { 0x00800040, 0x254045ad, 0x00b10220, 0x00b20540 },
+   { 0x00800040, 0x256045ad, 0x00b10240, 0x00b20560 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000010 },
+   { 0x00800040, 0x238045ad, 0x00b10060, 0x00b20380 },
+   { 0x00800040, 0x23a045ad, 0x00b10160, 0x00b203a0 },
+   { 0x00800040, 0x23c045ad, 0x00b10080, 0x00b203c0 },
+   { 0x00800040, 0x23e045ad, 0x00b10180, 0x00b203e0 },
+   { 0x00800040, 0x240045ad, 0x00b100a0, 0x00b20400 },
+   { 0x00800040, 0x242045ad, 0x00b101a0, 0x00b20420 },
+   { 0x00800040, 0x244045ad, 0x00b100c0, 0x00b20440 },
+   { 0x00800040, 0x246045ad, 0x00b101c0, 0x00b20460 },
+   { 0x00800040, 0x248045ad, 0x00b100e0, 0x00b20480 },
+   { 0x00800040, 0x24a045ad, 0x00b101e0, 0x00b204a0 },
+   { 0x00800040, 0x24c045ad, 0x00b10100, 0x00b204c0 },
+   { 0x00800040, 0x24e045ad, 0x00b10200, 0x00b204e0 },
+   { 0x00800040, 0x250045ad, 0x00b10120, 0x00b20500 },
+   { 0x00800040, 0x252045ad, 0x00b10220, 0x00b20520 },
+   { 0x00800040, 0x254045ad, 0x00b10140, 0x00b20540 },
+   { 0x00800040, 0x256045ad, 0x00b10240, 0x00b20560 },
+   { 0x00000001, 0x20280061, 0x00000000, 0x000f000f },
+   { 0x80800001, 0x438001b1, 0x00b10380, 0x00000000 },
+   { 0x80800001, 0x43a001b1, 0x00b103a0, 0x00000000 },
+   { 0x80800001, 0x43c001b1, 0x00b103c0, 0x00000000 },
+   { 0x80800001, 0x43e001b1, 0x00b103e0, 0x00000000 },
+   { 0x80800001, 0x440001b1, 0x00b10400, 0x00000000 },
+   { 0x80800001, 0x442001b1, 0x00b10420, 0x00000000 },
+   { 0x80800001, 0x444001b1, 0x00b10440, 0x00000000 },
+   { 0x80800001, 0x446001b1, 0x00b10460, 0x00000000 },
+   { 0x80800001, 0x448001b1, 0x00b10480, 0x00000000 },
+   { 0x80800001, 0x44a001b1, 0x00b104a0, 0x00000000 },
+   { 0x80800001, 0x44c001b1, 0x00b104c0, 0x00000000 },
+   { 0x80800001, 0x44e001b1, 0x00b104e0, 0x00000000 },
+   { 0x80800001, 0x450001b1, 0x00b10500, 0x00000000 },
+   { 0x80800001, 0x452001b1, 0x00b10520, 0x00000000 },
+   { 0x80800001, 0x454001b1, 0x00b10540, 0x00000000 },
+   { 0x80800001, 0x456001b1, 0x00b10560, 0x00000000 },
+   { 0x00800001, 0x20200232, 0x00b20380, 0x00000000 },
+   { 0x00800001, 0x20300232, 0x00b203a0, 0x00000000 },
+   { 0x00800001, 0x20400232, 0x00b203c0, 0x00000000 },
+   { 0x00800001, 0x20500232, 0x00b203e0, 0x00000000 },
+   { 0x00800001, 0x20600232, 0x00b20400, 0x00000000 },
+   { 0x00800001, 0x20700232, 0x00b20420, 0x00000000 },
+   { 0x00800001, 0x20800232, 0x00b20440, 0x00000000 },
+   { 0x00800001, 0x20900232, 0x00b20460, 0x00000000 },
+   { 0x00800001, 0x20a00232, 0x00b20480, 0x00000000 },
+   { 0x00800001, 0x20b00232, 0x00b204a0, 0x00000000 },
+   { 0x00800001, 0x20c00232, 0x00b204c0, 0x00000000 },
+   { 0x00800001, 0x20d00232, 0x00b204e0, 0x00000000 },
+   { 0x00800001, 0x20e00232, 0x00b20500, 0x00000000 },
+   { 0x00800001, 0x20f00232, 0x00b20520, 0x00000000 },
+   { 0x00800001, 0x21000232, 0x00b20540, 0x00000000 },
+   { 0x00800001, 0x21100232, 0x00b20560, 0x00000000 },
+   { 0x00800031, 0x24001d28, 0x008d0020, 0x05902000 },
+   { 0x00000001, 0x20280061, 0x00000000, 0x00070007 },
+   { 0x00200008, 0x20201c21, 0x00450020, 0x00000001 },
+   { 0x00800040, 0x258025a9, 0x00b10260, 0x00b10580 },
+   { 0x00800040, 0x25a025a9, 0x00b10280, 0x00b105a0 },
+   { 0x00800040, 0x25c025a9, 0x00b102a0, 0x00b105c0 },
+   { 0x00800040, 0x25e025a9, 0x00b102c0, 0x00b105e0 },
+   { 0x80800001, 0x45800131, 0x00b10580, 0x00000000 },
+   { 0x80800001, 0x45a00131, 0x00b105a0, 0x00000000 },
+   { 0x80800001, 0x45c00131, 0x00b105c0, 0x00000000 },
+   { 0x80800001, 0x45e00131, 0x00b105e0, 0x00000000 },
+   { 0x00800001, 0x20200232, 0x00b20580, 0x00000000 },
+   { 0x00800001, 0x20300232, 0x00b205a0, 0x00000000 },
+   { 0x00800001, 0x20400232, 0x00b205c0, 0x00000000 },
+   { 0x00800001, 0x20500232, 0x00b205e0, 0x00000000 },
+   { 0x00800031, 0x24001d28, 0x008d0020, 0x05302001 },
+   { 0x00800040, 0x260025a9, 0x00b102e0, 0x00b10600 },
+   { 0x00800040, 0x262025a9, 0x00b10300, 0x00b10620 },
+   { 0x00800040, 0x264025a9, 0x00b10320, 0x00b10640 },
+   { 0x00800040, 0x266025a9, 0x00b10340, 0x00b10660 },
+   { 0x80800001, 0x46000131, 0x00b10600, 0x00000000 },
+   { 0x80800001, 0x46200131, 0x00b10620, 0x00000000 },
+   { 0x80800001, 0x46400131, 0x00b10640, 0x00000000 },
+   { 0x80800001, 0x46600131, 0x00b10660, 0x00000000 },
+   { 0x00800001, 0x20200232, 0x00b20600, 0x00000000 },
+   { 0x00800001, 0x20300232, 0x00b20620, 0x00000000 },
+   { 0x00800001, 0x20400232, 0x00b20640, 0x00000000 },
+   { 0x00800001, 0x20500232, 0x00b20660, 0x00000000 },
+   { 0x00800031, 0x24001d28, 0x008d0020, 0x05302002 },
+   { 0x00800031, 0x24001d28, 0x008d0000, 0x87100000 },
+   { 0x00800031, 0x24001d28, 0x008d0000, 0x87100000 },
diff --git a/src/xvmc/shader/mc/frame_forward.g4a b/src/xvmc/shader/mc/frame_forward.g4a
new file mode 100644
index 0000000..925d568
--- /dev/null
+++ b/src/xvmc/shader/mc/frame_forward.g4a
@@ -0,0 +1,65 @@
+/*
+ * Copyright © 2008 Intel Corporation
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice (including the next
+ * paragraph) shall be included in all copies or substantial portions of the
+ * Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
+ * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+ * SOFTWARE.
+ *
+ * Author:
+ *    Zou Nan hai <nanhai.zou at intel.com>
+ *    Zhang Hua jun <huajun.zhang at intel.com>
+ *    Xing Dong sheng <dongsheng.xing at intel.com>
+ *
+ */
+
+/* shader for backward predict mc
+*/
+
+/* save payload */
+mov (8) g76.0<1>UD g1.0<8,8,1>UD {align1};
+//mov (8) g77.0<1>UD g2.0<8,8,1>UD {align1};
+
+include(`block_clear.g4i')
+
+mov (8) g115.0<1>UD g1.0<8,8,1>UD {align1}; 
+mov (1) g1.8<1>UD 0x0070007UD {align1};  
+define(`input_surface',	`4')
+define(`mv1',	`g115.14')
+define(`mv2',	`g115.16')
+/* Y */
+/* (x', y') = (x, y) + (motion_vector.x >> 1, motion_vector.y >> 1) */
+asr (2) g1.14<1>W g115.14<2,2,1>W 1W {align1};
+add (2) g2.0<1>UD g115.0<2,2,1>UD g1.14<2,2,1>W {align1};
+include(`motion_frame_y.g4i')
+/* motion_vector = motion_vector >> 1 */
+/* (x', y') = (x, y) + (motion_vector.x >> 1, motion_vector.y >> 1) */
+/* U */
+shr (2) g1.0<1>UD g115.0<2,2,1>UD 1UD {align1};
+asr (2) g115.14<1>W g115.14<2,2,1>W 1W {align1};
+asr (2) g1.14<1>W g115.14<2,2,1>W 1W {align1};
+add (2) g2.0<1>UD g1.0<2,2,1>UD g1.14<2,2,1>W {align1};
+define(`input_surface1',	`5')
+define(`input_surface2',	`6')
+mov (1) g2.8<1>UD 0x007000fUD  {align1};
+include(`motion_frame_uv.g4i')
+/* V */
+/* (x', y') = (x, y) + (motion_vector.x >> 1, motion_vector.y >> 1) */
+include(`addidct.g4i')
+
+send (16) 0 acc0<1>UW g0<8,8,1>UW 
+	thread_spawner(0, 0, 0) mlen 1 rlen 0 { align1 EOT};
diff --git a/src/xvmc/shader/mc/frame_forward.g4b b/src/xvmc/shader/mc/frame_forward.g4b
new file mode 100644
index 0000000..efbd20c
--- /dev/null
+++ b/src/xvmc/shader/mc/frame_forward.g4b
@@ -0,0 +1,715 @@
+   { 0x00600001, 0x29800021, 0x008d0020, 0x00000000 },
+   { 0x02000005, 0x20000c3c, 0x00210040, 0x00000001 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x00000030 },
+   { 0x00000040, 0x20480c21, 0x00210988, 0x00000000 },
+   { 0x00800031, 0x20601c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x20801c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x20a01c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x20c01c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x20e01c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x21001c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x21201c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x21401c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x21601c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x21801c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x21a01c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x21c01c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x21e01c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x22001c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x22201c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x22401c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x22601c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x22801c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x22a01c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x22c01c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x22e01c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x23001c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x23201c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x23401c21, 0x00b10040, 0x04110203 },
+   { 0x02000005, 0x20002d3c, 0x0021098c, 0x00200020 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x00000008 },
+   { 0x00600001, 0x20600169, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x20800169, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x20a00169, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x20c00169, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x20e00169, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x21000169, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x21200169, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x21400169, 0x00000000, 0x00000000 },
+   { 0x02000005, 0x20002d3c, 0x0021002c, 0x00100010 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x00000008 },
+   { 0x00600001, 0x20700169, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x20900169, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x20b00169, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x20d00169, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x20f00169, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x21100169, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x21300169, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x21500169, 0x00000000, 0x00000000 },
+   { 0x02000005, 0x20002d3c, 0x0021002c, 0x00080008 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x00000008 },
+   { 0x00600001, 0x21600169, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x21800169, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x21a00169, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x21c00169, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x21e00169, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x22000169, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x22200169, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x22400169, 0x00000000, 0x00000000 },
+   { 0x02000005, 0x20002d3c, 0x0021002c, 0x00040004 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x00000008 },
+   { 0x00600001, 0x21700169, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x21900169, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x21b00169, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x21d00169, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x21f00169, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x22100169, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x22300169, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x22500169, 0x00000000, 0x00000000 },
+   { 0x02000005, 0x20002d3c, 0x0021002c, 0x00020002 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x00000004 },
+   { 0x00800001, 0x22600169, 0x00000000, 0x00000000 },
+   { 0x00800001, 0x22800169, 0x00000000, 0x00000000 },
+   { 0x00800001, 0x22a00169, 0x00000000, 0x00000000 },
+   { 0x00800001, 0x22c00169, 0x00000000, 0x00000000 },
+   { 0x02000005, 0x20002d3c, 0x0021002c, 0x00010001 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x00000004 },
+   { 0x00800001, 0x22e00169, 0x00000000, 0x00000000 },
+   { 0x00800001, 0x23000169, 0x00000000, 0x00000000 },
+   { 0x00800001, 0x23200169, 0x00000000, 0x00000000 },
+   { 0x00800001, 0x23400169, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x2e600021, 0x008d0020, 0x00000000 },
+   { 0x00000001, 0x20280061, 0x00000000, 0x00070007 },
+   { 0x0020000c, 0x202e3dad, 0x00450e6e, 0x00010001 },
+   { 0x00200040, 0x20403421, 0x00450e60, 0x0045002e },
+   { 0x01000005, 0x20000d3c, 0x00210e6e, 0x00000001 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x0000012b },
+   { 0x01000005, 0x20000d3c, 0x00210e70, 0x00000001 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x000000de },
+   { 0x00000001, 0x20480061, 0x00000000, 0x0007001f },
+   { 0x00800031, 0x2c401d29, 0x008d0040, 0x0418a004 },
+   { 0x00000005, 0x20580c21, 0x00210040, 0x00000003 },
+   { 0x00000041, 0x20580c21, 0x00210058, 0x00000031 },
+   { 0x00000040, 0x20440c21, 0x00210044, 0x00000008 },
+   { 0x00800031, 0x2d401d29, 0x008d0040, 0x0418a004 },
+   { 0x00000040, 0x20440c21, 0x00210044, 0x00000008 },
+   { 0x00000001, 0x20480061, 0x00000000, 0x0000001f },
+   { 0x00800031, 0x2f001d29, 0x008d0040, 0x0411a004 },
+   { 0x00000020, 0x34001400, 0x00001400, 0x00210058 },
+   { 0x00800040, 0x23804629, 0x00b10c40, 0x00b10c41 },
+   { 0x00800040, 0x23a04629, 0x00b10c60, 0x00b10c61 },
+   { 0x00800040, 0x23c04629, 0x00b10c80, 0x00b10c81 },
+   { 0x00800040, 0x23e04629, 0x00b10ca0, 0x00b10ca1 },
+   { 0x00800040, 0x24004629, 0x00b10cc0, 0x00b10cc1 },
+   { 0x00800040, 0x24204629, 0x00b10ce0, 0x00b10ce1 },
+   { 0x00800040, 0x24404629, 0x00b10d00, 0x00b10d01 },
+   { 0x00800040, 0x24604629, 0x00b10d20, 0x00b10d21 },
+   { 0x00800040, 0x24804629, 0x00b10d40, 0x00b10d41 },
+   { 0x00800040, 0x24a04629, 0x00b10d60, 0x00b10d61 },
+   { 0x00800040, 0x24c04629, 0x00b10d80, 0x00b10d81 },
+   { 0x00800040, 0x24e04629, 0x00b10da0, 0x00b10da1 },
+   { 0x00800040, 0x25004629, 0x00b10dc0, 0x00b10dc1 },
+   { 0x00800040, 0x25204629, 0x00b10de0, 0x00b10de1 },
+   { 0x00800040, 0x25404629, 0x00b10e00, 0x00b10e01 },
+   { 0x00800040, 0x25604629, 0x00b10e20, 0x00b10e21 },
+   { 0x00800040, 0x23804529, 0x00b10380, 0x00b10c60 },
+   { 0x00800040, 0x23a04529, 0x00b103a0, 0x00b10c80 },
+   { 0x00800040, 0x23c04529, 0x00b103c0, 0x00b10ca0 },
+   { 0x00800040, 0x23e04529, 0x00b103e0, 0x00b10cc0 },
+   { 0x00800040, 0x24004529, 0x00b10400, 0x00b10ce0 },
+   { 0x00800040, 0x24204529, 0x00b10420, 0x00b10d00 },
+   { 0x00800040, 0x24404529, 0x00b10440, 0x00b10d20 },
+   { 0x00800040, 0x24604529, 0x00b10460, 0x00b10d40 },
+   { 0x00800040, 0x24804529, 0x00b10480, 0x00b10d60 },
+   { 0x00800040, 0x24a04529, 0x00b104a0, 0x00b10d80 },
+   { 0x00800040, 0x24c04529, 0x00b104c0, 0x00b10da0 },
+   { 0x00800040, 0x24e04529, 0x00b104e0, 0x00b10dc0 },
+   { 0x00800040, 0x25004529, 0x00b10500, 0x00b10de0 },
+   { 0x00800040, 0x25204529, 0x00b10520, 0x00b10e00 },
+   { 0x00800040, 0x25404529, 0x00b10540, 0x00b10e20 },
+   { 0x00800040, 0x25604529, 0x00b10560, 0x00b10f00 },
+   { 0x00800040, 0x23804529, 0x00b10380, 0x00b10c61 },
+   { 0x00800040, 0x23a04529, 0x00b103a0, 0x00b10c81 },
+   { 0x00800040, 0x23c04529, 0x00b103c0, 0x00b10ca1 },
+   { 0x00800040, 0x23e04529, 0x00b103e0, 0x00b10cc1 },
+   { 0x00800040, 0x24004529, 0x00b10400, 0x00b10ce1 },
+   { 0x00800040, 0x24204529, 0x00b10420, 0x00b10d01 },
+   { 0x00800040, 0x24404529, 0x00b10440, 0x00b10d21 },
+   { 0x00800040, 0x24604529, 0x00b10460, 0x00b10d41 },
+   { 0x00800040, 0x24804529, 0x00b10480, 0x00b10d61 },
+   { 0x00800040, 0x24a04529, 0x00b104a0, 0x00b10d81 },
+   { 0x00800040, 0x24c04529, 0x00b104c0, 0x00b10da1 },
+   { 0x00800040, 0x24e04529, 0x00b104e0, 0x00b10dc1 },
+   { 0x00800040, 0x25004529, 0x00b10500, 0x00b10de1 },
+   { 0x00800040, 0x25204529, 0x00b10520, 0x00b10e01 },
+   { 0x00800040, 0x25404529, 0x00b10540, 0x00b10e21 },
+   { 0x00800040, 0x25604529, 0x00b10560, 0x00b10f01 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000092 },
+   { 0x00800040, 0x23804629, 0x00b10c41, 0x00b10c42 },
+   { 0x00800040, 0x23a04629, 0x00b10c61, 0x00b10c62 },
+   { 0x00800040, 0x23c04629, 0x00b10c81, 0x00b10c82 },
+   { 0x00800040, 0x23e04629, 0x00b10ca1, 0x00b10ca2 },
+   { 0x00800040, 0x24004629, 0x00b10cc1, 0x00b10cc2 },
+   { 0x00800040, 0x24204629, 0x00b10ce1, 0x00b10ce2 },
+   { 0x00800040, 0x24404629, 0x00b10d01, 0x00b10d02 },
+   { 0x00800040, 0x24604629, 0x00b10d21, 0x00b10d22 },
+   { 0x00800040, 0x24804629, 0x00b10d41, 0x00b10d42 },
+   { 0x00800040, 0x24a04629, 0x00b10d61, 0x00b10d62 },
+   { 0x00800040, 0x24c04629, 0x00b10d81, 0x00b10d82 },
+   { 0x00800040, 0x24e04629, 0x00b10da1, 0x00b10da2 },
+   { 0x00800040, 0x25004629, 0x00b10dc1, 0x00b10dc2 },
+   { 0x00800040, 0x25204629, 0x00b10de1, 0x00b10de2 },
+   { 0x00800040, 0x25404629, 0x00b10e01, 0x00b10e02 },
+   { 0x00800040, 0x25604629, 0x00b10e21, 0x00b10e22 },
+   { 0x00800040, 0x23804529, 0x00b10380, 0x00b10c61 },
+   { 0x00800040, 0x23a04529, 0x00b103a0, 0x00b10c81 },
+   { 0x00800040, 0x23c04529, 0x00b103c0, 0x00b10ca1 },
+   { 0x00800040, 0x23e04529, 0x00b103e0, 0x00b10cc1 },
+   { 0x00800040, 0x24004529, 0x00b10400, 0x00b10ce1 },
+   { 0x00800040, 0x24204529, 0x00b10420, 0x00b10d01 },
+   { 0x00800040, 0x24404529, 0x00b10440, 0x00b10d21 },
+   { 0x00800040, 0x24604529, 0x00b10460, 0x00b10d41 },
+   { 0x00800040, 0x24804529, 0x00b10480, 0x00b10d61 },
+   { 0x00800040, 0x24a04529, 0x00b104a0, 0x00b10d81 },
+   { 0x00800040, 0x24c04529, 0x00b104c0, 0x00b10da1 },
+   { 0x00800040, 0x24e04529, 0x00b104e0, 0x00b10dc1 },
+   { 0x00800040, 0x25004529, 0x00b10500, 0x00b10de1 },
+   { 0x00800040, 0x25204529, 0x00b10520, 0x00b10e01 },
+   { 0x00800040, 0x25404529, 0x00b10540, 0x00b10e21 },
+   { 0x00800040, 0x25604529, 0x00b10560, 0x00b10f01 },
+   { 0x00800040, 0x23804529, 0x00b10380, 0x00b10c62 },
+   { 0x00800040, 0x23a04529, 0x00b103a0, 0x00b10c82 },
+   { 0x00800040, 0x23c04529, 0x00b103c0, 0x00b10ca2 },
+   { 0x00800040, 0x23e04529, 0x00b103e0, 0x00b10cc2 },
+   { 0x00800040, 0x24004529, 0x00b10400, 0x00b10ce2 },
+   { 0x00800040, 0x24204529, 0x00b10420, 0x00b10d02 },
+   { 0x00800040, 0x24404529, 0x00b10440, 0x00b10d22 },
+   { 0x00800040, 0x24604529, 0x00b10460, 0x00b10d42 },
+   { 0x00800040, 0x24804529, 0x00b10480, 0x00b10d62 },
+   { 0x00800040, 0x24a04529, 0x00b104a0, 0x00b10d82 },
+   { 0x00800040, 0x24c04529, 0x00b104c0, 0x00b10da2 },
+   { 0x00800040, 0x24e04529, 0x00b104e0, 0x00b10dc2 },
+   { 0x00800040, 0x25004529, 0x00b10500, 0x00b10de2 },
+   { 0x00800040, 0x25204529, 0x00b10520, 0x00b10e02 },
+   { 0x00800040, 0x25404529, 0x00b10540, 0x00b10e22 },
+   { 0x00800040, 0x25604529, 0x00b10560, 0x00b10f02 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000061 },
+   { 0x00800040, 0x23804629, 0x00b10c42, 0x00b10c43 },
+   { 0x00800040, 0x23a04629, 0x00b10c62, 0x00b10c63 },
+   { 0x00800040, 0x23c04629, 0x00b10c82, 0x00b10c83 },
+   { 0x00800040, 0x23e04629, 0x00b10ca2, 0x00b10ca3 },
+   { 0x00800040, 0x24004629, 0x00b10cc2, 0x00b10cc3 },
+   { 0x00800040, 0x24204629, 0x00b10ce2, 0x00b10ce3 },
+   { 0x00800040, 0x24404629, 0x00b10d02, 0x00b10d03 },
+   { 0x00800040, 0x24604629, 0x00b10d22, 0x00b10d23 },
+   { 0x00800040, 0x24804629, 0x00b10d42, 0x00b10d43 },
+   { 0x00800040, 0x24a04629, 0x00b10d62, 0x00b10d63 },
+   { 0x00800040, 0x24c04629, 0x00b10d82, 0x00b10d83 },
+   { 0x00800040, 0x24e04629, 0x00b10da2, 0x00b10da3 },
+   { 0x00800040, 0x25004629, 0x00b10dc2, 0x00b10dc3 },
+   { 0x00800040, 0x25204629, 0x00b10de2, 0x00b10de3 },
+   { 0x00800040, 0x25404629, 0x00b10e02, 0x00b10e03 },
+   { 0x00800040, 0x25604629, 0x00b10e22, 0x00b10e23 },
+   { 0x00800040, 0x23804529, 0x00b10380, 0x00b10c62 },
+   { 0x00800040, 0x23a04529, 0x00b103a0, 0x00b10c82 },
+   { 0x00800040, 0x23c04529, 0x00b103c0, 0x00b10ca2 },
+   { 0x00800040, 0x23e04529, 0x00b103e0, 0x00b10cc2 },
+   { 0x00800040, 0x24004529, 0x00b10400, 0x00b10ce2 },
+   { 0x00800040, 0x24204529, 0x00b10420, 0x00b10d02 },
+   { 0x00800040, 0x24404529, 0x00b10440, 0x00b10d22 },
+   { 0x00800040, 0x24604529, 0x00b10460, 0x00b10d42 },
+   { 0x00800040, 0x24804529, 0x00b10480, 0x00b10d62 },
+   { 0x00800040, 0x24a04529, 0x00b104a0, 0x00b10d82 },
+   { 0x00800040, 0x24c04529, 0x00b104c0, 0x00b10da2 },
+   { 0x00800040, 0x24e04529, 0x00b104e0, 0x00b10dc2 },
+   { 0x00800040, 0x25004529, 0x00b10500, 0x00b10de2 },
+   { 0x00800040, 0x25204529, 0x00b10520, 0x00b10e02 },
+   { 0x00800040, 0x25404529, 0x00b10540, 0x00b10e22 },
+   { 0x00800040, 0x25604529, 0x00b10560, 0x00b10f02 },
+   { 0x00800040, 0x23804529, 0x00b10380, 0x00b10c63 },
+   { 0x00800040, 0x23a04529, 0x00b103a0, 0x00b10c83 },
+   { 0x00800040, 0x23c04529, 0x00b103c0, 0x00b10ca3 },
+   { 0x00800040, 0x23e04529, 0x00b103e0, 0x00b10cc3 },
+   { 0x00800040, 0x24004529, 0x00b10400, 0x00b10ce3 },
+   { 0x00800040, 0x24204529, 0x00b10420, 0x00b10d03 },
+   { 0x00800040, 0x24404529, 0x00b10440, 0x00b10d23 },
+   { 0x00800040, 0x24604529, 0x00b10460, 0x00b10d43 },
+   { 0x00800040, 0x24804529, 0x00b10480, 0x00b10d63 },
+   { 0x00800040, 0x24a04529, 0x00b104a0, 0x00b10d83 },
+   { 0x00800040, 0x24c04529, 0x00b104c0, 0x00b10da3 },
+   { 0x00800040, 0x24e04529, 0x00b104e0, 0x00b10dc3 },
+   { 0x00800040, 0x25004529, 0x00b10500, 0x00b10de3 },
+   { 0x00800040, 0x25204529, 0x00b10520, 0x00b10e03 },
+   { 0x00800040, 0x25404529, 0x00b10540, 0x00b10e23 },
+   { 0x00800040, 0x25604529, 0x00b10560, 0x00b10f03 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000030 },
+   { 0x00800040, 0x23804629, 0x00b10c43, 0x00b10c44 },
+   { 0x00800040, 0x23a04629, 0x00b10c63, 0x00b10c64 },
+   { 0x00800040, 0x23c04629, 0x00b10c83, 0x00b10c84 },
+   { 0x00800040, 0x23e04629, 0x00b10ca3, 0x00b10ca4 },
+   { 0x00800040, 0x24004629, 0x00b10cc3, 0x00b10cc4 },
+   { 0x00800040, 0x24204629, 0x00b10ce3, 0x00b10ce4 },
+   { 0x00800040, 0x24404629, 0x00b10d03, 0x00b10d04 },
+   { 0x00800040, 0x24604629, 0x00b10d23, 0x00b10d24 },
+   { 0x00800040, 0x24804629, 0x00b10d43, 0x00b10d44 },
+   { 0x00800040, 0x24a04629, 0x00b10d63, 0x00b10d64 },
+   { 0x00800040, 0x24c04629, 0x00b10d83, 0x00b10d84 },
+   { 0x00800040, 0x24e04629, 0x00b10da3, 0x00b10da4 },
+   { 0x00800040, 0x25004629, 0x00b10dc3, 0x00b10dc4 },
+   { 0x00800040, 0x25204629, 0x00b10de3, 0x00b10de4 },
+   { 0x00800040, 0x25404629, 0x00b10e03, 0x00b10e04 },
+   { 0x00800040, 0x25604629, 0x00b10e23, 0x00b10e24 },
+   { 0x00800040, 0x23804529, 0x00b10380, 0x00b10c63 },
+   { 0x00800040, 0x23a04529, 0x00b103a0, 0x00b10c83 },
+   { 0x00800040, 0x23c04529, 0x00b103c0, 0x00b10ca3 },
+   { 0x00800040, 0x23e04529, 0x00b103e0, 0x00b10cc3 },
+   { 0x00800040, 0x24004529, 0x00b10400, 0x00b10ce3 },
+   { 0x00800040, 0x24204529, 0x00b10420, 0x00b10d03 },
+   { 0x00800040, 0x24404529, 0x00b10440, 0x00b10d23 },
+   { 0x00800040, 0x24604529, 0x00b10460, 0x00b10d43 },
+   { 0x00800040, 0x24804529, 0x00b10480, 0x00b10d63 },
+   { 0x00800040, 0x24a04529, 0x00b104a0, 0x00b10d83 },
+   { 0x00800040, 0x24c04529, 0x00b104c0, 0x00b10da3 },
+   { 0x00800040, 0x24e04529, 0x00b104e0, 0x00b10dc3 },
+   { 0x00800040, 0x25004529, 0x00b10500, 0x00b10de3 },
+   { 0x00800040, 0x25204529, 0x00b10520, 0x00b10e03 },
+   { 0x00800040, 0x25404529, 0x00b10540, 0x00b10e23 },
+   { 0x00800040, 0x25604529, 0x00b10560, 0x00b10f03 },
+   { 0x00800040, 0x23804529, 0x00b10380, 0x00b10c64 },
+   { 0x00800040, 0x23a04529, 0x00b103a0, 0x00b10c84 },
+   { 0x00800040, 0x23c04529, 0x00b103c0, 0x00b10ca4 },
+   { 0x00800040, 0x23e04529, 0x00b103e0, 0x00b10cc4 },
+   { 0x00800040, 0x24004529, 0x00b10400, 0x00b10ce4 },
+   { 0x00800040, 0x24204529, 0x00b10420, 0x00b10d04 },
+   { 0x00800040, 0x24404529, 0x00b10440, 0x00b10d24 },
+   { 0x00800040, 0x24604529, 0x00b10460, 0x00b10d44 },
+   { 0x00800040, 0x24804529, 0x00b10480, 0x00b10d64 },
+   { 0x00800040, 0x24a04529, 0x00b104a0, 0x00b10d84 },
+   { 0x00800040, 0x24c04529, 0x00b104c0, 0x00b10da4 },
+   { 0x00800040, 0x24e04529, 0x00b104e0, 0x00b10dc4 },
+   { 0x00800040, 0x25004529, 0x00b10500, 0x00b10de4 },
+   { 0x00800040, 0x25204529, 0x00b10520, 0x00b10e04 },
+   { 0x00800040, 0x25404529, 0x00b10540, 0x00b10e24 },
+   { 0x00800040, 0x25604529, 0x00b10560, 0x00b10f04 },
+   { 0x80800008, 0x23802d29, 0x00b10380, 0x00020002 },
+   { 0x80800008, 0x23a02d29, 0x00b103a0, 0x00020002 },
+   { 0x80800008, 0x23c02d29, 0x00b103c0, 0x00020002 },
+   { 0x80800008, 0x23e02d29, 0x00b103e0, 0x00020002 },
+   { 0x80800008, 0x24002d29, 0x00b10400, 0x00020002 },
+   { 0x80800008, 0x24202d29, 0x00b10420, 0x00020002 },
+   { 0x80800008, 0x24402d29, 0x00b10440, 0x00020002 },
+   { 0x80800008, 0x24602d29, 0x00b10460, 0x00020002 },
+   { 0x80800008, 0x24802d29, 0x00b10480, 0x00020002 },
+   { 0x80800008, 0x24a02d29, 0x00b104a0, 0x00020002 },
+   { 0x80800008, 0x24c02d29, 0x00b104c0, 0x00020002 },
+   { 0x80800008, 0x24e02d29, 0x00b104e0, 0x00020002 },
+   { 0x80800008, 0x25002d29, 0x00b10500, 0x00020002 },
+   { 0x80800008, 0x25202d29, 0x00b10520, 0x00020002 },
+   { 0x80800008, 0x25402d29, 0x00b10540, 0x00020002 },
+   { 0x80800008, 0x25602d29, 0x00b10560, 0x00020002 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x000000e5 },
+   { 0x00000001, 0x20480061, 0x00000000, 0x0007001f },
+   { 0x00800031, 0x2c401d29, 0x008d0040, 0x0418a004 },
+   { 0x00000005, 0x20580c21, 0x00210040, 0x00000003 },
+   { 0x00000041, 0x20581c21, 0x00210058, 0x00000011 },
+   { 0x00000040, 0x20440c21, 0x00210044, 0x00000008 },
+   { 0x00800031, 0x2d401d29, 0x008d0040, 0x0418a004 },
+   { 0x00000020, 0x34001400, 0x00001400, 0x00210058 },
+   { 0x80800042, 0x23804629, 0x00b10c40, 0x00b10c41 },
+   { 0x80800042, 0x23a04629, 0x00b10c60, 0x00b10c61 },
+   { 0x80800042, 0x23c04629, 0x00b10c80, 0x00b10c81 },
+   { 0x80800042, 0x23e04629, 0x00b10ca0, 0x00b10ca1 },
+   { 0x80800042, 0x24004629, 0x00b10cc0, 0x00b10cc1 },
+   { 0x80800042, 0x24204629, 0x00b10ce0, 0x00b10ce1 },
+   { 0x80800042, 0x24404629, 0x00b10d00, 0x00b10d01 },
+   { 0x80800042, 0x24604629, 0x00b10d20, 0x00b10d21 },
+   { 0x80800042, 0x24804629, 0x00b10d40, 0x00b10d41 },
+   { 0x80800042, 0x24a04629, 0x00b10d60, 0x00b10d61 },
+   { 0x80800042, 0x24c04629, 0x00b10d80, 0x00b10d81 },
+   { 0x80800042, 0x24e04629, 0x00b10da0, 0x00b10da1 },
+   { 0x80800042, 0x25004629, 0x00b10dc0, 0x00b10dc1 },
+   { 0x80800042, 0x25204629, 0x00b10de0, 0x00b10de1 },
+   { 0x80800042, 0x25404629, 0x00b10e00, 0x00b10e01 },
+   { 0x80800042, 0x25604629, 0x00b10e20, 0x00b10e21 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000032 },
+   { 0x80800042, 0x23804629, 0x00b10c41, 0x00b10c42 },
+   { 0x80800042, 0x23a04629, 0x00b10c61, 0x00b10c62 },
+   { 0x80800042, 0x23c04629, 0x00b10c81, 0x00b10c82 },
+   { 0x80800042, 0x23e04629, 0x00b10ca1, 0x00b10ca2 },
+   { 0x80800042, 0x24004629, 0x00b10cc1, 0x00b10cc2 },
+   { 0x80800042, 0x24204629, 0x00b10ce1, 0x00b10ce2 },
+   { 0x80800042, 0x24404629, 0x00b10d01, 0x00b10d02 },
+   { 0x80800042, 0x24604629, 0x00b10d21, 0x00b10d22 },
+   { 0x80800042, 0x24804629, 0x00b10d41, 0x00b10d42 },
+   { 0x80800042, 0x24a04629, 0x00b10d61, 0x00b10d62 },
+   { 0x80800042, 0x24c04629, 0x00b10d81, 0x00b10d82 },
+   { 0x80800042, 0x24e04629, 0x00b10da1, 0x00b10da2 },
+   { 0x80800042, 0x25004629, 0x00b10dc1, 0x00b10dc2 },
+   { 0x80800042, 0x25204629, 0x00b10de1, 0x00b10de2 },
+   { 0x80800042, 0x25404629, 0x00b10e01, 0x00b10e02 },
+   { 0x80800042, 0x25604629, 0x00b10e21, 0x00b10e22 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000021 },
+   { 0x80800042, 0x23804629, 0x00b10c42, 0x00b10c43 },
+   { 0x80800042, 0x23a04629, 0x00b10c62, 0x00b10c63 },
+   { 0x80800042, 0x23c04629, 0x00b10c82, 0x00b10c83 },
+   { 0x80800042, 0x23e04629, 0x00b10ca2, 0x00b10ca3 },
+   { 0x80800042, 0x24004629, 0x00b10cc2, 0x00b10cc3 },
+   { 0x80800042, 0x24204629, 0x00b10ce2, 0x00b10ce3 },
+   { 0x80800042, 0x24404629, 0x00b10d02, 0x00b10d03 },
+   { 0x80800042, 0x24604629, 0x00b10d22, 0x00b10d23 },
+   { 0x80800042, 0x24804629, 0x00b10d42, 0x00b10d43 },
+   { 0x80800042, 0x24a04629, 0x00b10d62, 0x00b10d63 },
+   { 0x80800042, 0x24c04629, 0x00b10d82, 0x00b10d83 },
+   { 0x80800042, 0x24e04629, 0x00b10da2, 0x00b10da3 },
+   { 0x80800042, 0x25004629, 0x00b10dc2, 0x00b10dc3 },
+   { 0x80800042, 0x25204629, 0x00b10de2, 0x00b10de3 },
+   { 0x80800042, 0x25404629, 0x00b10e02, 0x00b10e03 },
+   { 0x80800042, 0x25604629, 0x00b10e22, 0x00b10e23 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000010 },
+   { 0x80800042, 0x23804629, 0x00b10c43, 0x00b10c44 },
+   { 0x80800042, 0x23a04629, 0x00b10c63, 0x00b10c64 },
+   { 0x80800042, 0x23c04629, 0x00b10c83, 0x00b10c84 },
+   { 0x80800042, 0x23e04629, 0x00b10ca3, 0x00b10ca4 },
+   { 0x80800042, 0x24004629, 0x00b10cc3, 0x00b10cc4 },
+   { 0x80800042, 0x24204629, 0x00b10ce3, 0x00b10ce4 },
+   { 0x80800042, 0x24404629, 0x00b10d03, 0x00b10d04 },
+   { 0x80800042, 0x24604629, 0x00b10d23, 0x00b10d24 },
+   { 0x80800042, 0x24804629, 0x00b10d43, 0x00b10d44 },
+   { 0x80800042, 0x24a04629, 0x00b10d63, 0x00b10d64 },
+   { 0x80800042, 0x24c04629, 0x00b10d83, 0x00b10d84 },
+   { 0x80800042, 0x24e04629, 0x00b10da3, 0x00b10da4 },
+   { 0x80800042, 0x25004629, 0x00b10dc3, 0x00b10dc4 },
+   { 0x80800042, 0x25204629, 0x00b10de3, 0x00b10de4 },
+   { 0x80800042, 0x25404629, 0x00b10e03, 0x00b10e04 },
+   { 0x80800042, 0x25604629, 0x00b10e23, 0x00b10e24 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x0000009a },
+   { 0x01000005, 0x20000d3c, 0x00210e70, 0x00000001 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x0000004e },
+   { 0x00000001, 0x20480061, 0x00000000, 0x0007001f },
+   { 0x00800031, 0x2c401d29, 0x008d0040, 0x0418a004 },
+   { 0x00000005, 0x20580c21, 0x00210040, 0x00000003 },
+   { 0x00000041, 0x20580c21, 0x00210058, 0x00000011 },
+   { 0x00000040, 0x20440c21, 0x00210044, 0x00000008 },
+   { 0x00800031, 0x2d401d29, 0x008d0040, 0x0418a004 },
+   { 0x00000040, 0x20440c21, 0x00210044, 0x00000008 },
+   { 0x00000001, 0x20480061, 0x00000000, 0x0000001f },
+   { 0x00800031, 0x2f001d29, 0x008d0040, 0x0411a004 },
+   { 0x00000020, 0x34001400, 0x00001400, 0x00210058 },
+   { 0x80800042, 0x23804629, 0x00b10c40, 0x00b10c60 },
+   { 0x80800042, 0x23a04629, 0x00b10c60, 0x00b10c80 },
+   { 0x80800042, 0x23c04629, 0x00b10c80, 0x00b10ca0 },
+   { 0x80800042, 0x23e04629, 0x00b10ca0, 0x00b10cc0 },
+   { 0x80800042, 0x24004629, 0x00b10cc0, 0x00b10ce0 },
+   { 0x80800042, 0x24204629, 0x00b10ce0, 0x00b10d00 },
+   { 0x80800042, 0x24404629, 0x00b10d00, 0x00b10d20 },
+   { 0x80800042, 0x24604629, 0x00b10d20, 0x00b10d40 },
+   { 0x80800042, 0x24804629, 0x00b10d40, 0x00b10d60 },
+   { 0x80800042, 0x24a04629, 0x00b10d60, 0x00b10d80 },
+   { 0x80800042, 0x24c04629, 0x00b10d80, 0x00b10da0 },
+   { 0x80800042, 0x24e04629, 0x00b10da0, 0x00b10dc0 },
+   { 0x80800042, 0x25004629, 0x00b10dc0, 0x00b10de0 },
+   { 0x80800042, 0x25204629, 0x00b10de0, 0x00b10e00 },
+   { 0x80800042, 0x25404629, 0x00b10e00, 0x00b10e20 },
+   { 0x80800042, 0x25604629, 0x00b10e20, 0x00b10f00 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000032 },
+   { 0x80800042, 0x23804629, 0x00b10c41, 0x00b10c61 },
+   { 0x80800042, 0x23a04629, 0x00b10c61, 0x00b10c81 },
+   { 0x80800042, 0x23c04629, 0x00b10c81, 0x00b10ca1 },
+   { 0x80800042, 0x23e04629, 0x00b10ca1, 0x00b10cc1 },
+   { 0x80800042, 0x24004629, 0x00b10cc1, 0x00b10ce1 },
+   { 0x80800042, 0x24204629, 0x00b10ce1, 0x00b10d01 },
+   { 0x80800042, 0x24404629, 0x00b10d01, 0x00b10d21 },
+   { 0x80800042, 0x24604629, 0x00b10d21, 0x00b10d41 },
+   { 0x80800042, 0x24804629, 0x00b10d41, 0x00b10d61 },
+   { 0x80800042, 0x24a04629, 0x00b10d61, 0x00b10d81 },
+   { 0x80800042, 0x24c04629, 0x00b10d81, 0x00b10da1 },
+   { 0x80800042, 0x24e04629, 0x00b10da1, 0x00b10dc1 },
+   { 0x80800042, 0x25004629, 0x00b10dc1, 0x00b10de1 },
+   { 0x80800042, 0x25204629, 0x00b10de1, 0x00b10e01 },
+   { 0x80800042, 0x25404629, 0x00b10e01, 0x00b10e21 },
+   { 0x80800042, 0x25604629, 0x00b10e21, 0x00b10f01 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000021 },
+   { 0x80800042, 0x23804629, 0x00b10c42, 0x00b10c62 },
+   { 0x80800042, 0x23a04629, 0x00b10c62, 0x00b10c82 },
+   { 0x80800042, 0x23c04629, 0x00b10c82, 0x00b10ca2 },
+   { 0x80800042, 0x23e04629, 0x00b10ca2, 0x00b10cc2 },
+   { 0x80800042, 0x24004629, 0x00b10cc2, 0x00b10ce2 },
+   { 0x80800042, 0x24204629, 0x00b10ce2, 0x00b10d02 },
+   { 0x80800042, 0x24404629, 0x00b10d02, 0x00b10d22 },
+   { 0x80800042, 0x24604629, 0x00b10d22, 0x00b10d42 },
+   { 0x80800042, 0x24804629, 0x00b10d42, 0x00b10d62 },
+   { 0x80800042, 0x24a04629, 0x00b10d62, 0x00b10d82 },
+   { 0x80800042, 0x24c04629, 0x00b10d82, 0x00b10da2 },
+   { 0x80800042, 0x24e04629, 0x00b10da2, 0x00b10dc2 },
+   { 0x80800042, 0x25004629, 0x00b10dc2, 0x00b10de2 },
+   { 0x80800042, 0x25204629, 0x00b10de2, 0x00b10e02 },
+   { 0x80800042, 0x25404629, 0x00b10e02, 0x00b10e22 },
+   { 0x80800042, 0x25604629, 0x00b10e22, 0x00b10f02 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000010 },
+   { 0x80800042, 0x23804629, 0x00b10c43, 0x00b10c63 },
+   { 0x80800042, 0x23a04629, 0x00b10c63, 0x00b10c83 },
+   { 0x80800042, 0x23c04629, 0x00b10c83, 0x00b10ca3 },
+   { 0x80800042, 0x23e04629, 0x00b10ca3, 0x00b10cc3 },
+   { 0x80800042, 0x24004629, 0x00b10cc3, 0x00b10ce3 },
+   { 0x80800042, 0x24204629, 0x00b10ce3, 0x00b10d03 },
+   { 0x80800042, 0x24404629, 0x00b10d03, 0x00b10d23 },
+   { 0x80800042, 0x24604629, 0x00b10d23, 0x00b10d43 },
+   { 0x80800042, 0x24804629, 0x00b10d43, 0x00b10d63 },
+   { 0x80800042, 0x24a04629, 0x00b10d63, 0x00b10d83 },
+   { 0x80800042, 0x24c04629, 0x00b10d83, 0x00b10da3 },
+   { 0x80800042, 0x24e04629, 0x00b10da3, 0x00b10dc3 },
+   { 0x80800042, 0x25004629, 0x00b10dc3, 0x00b10de3 },
+   { 0x80800042, 0x25204629, 0x00b10de3, 0x00b10e03 },
+   { 0x80800042, 0x25404629, 0x00b10e03, 0x00b10e23 },
+   { 0x80800042, 0x25604629, 0x00b10e23, 0x00b10f03 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x0000004a },
+   { 0x00000001, 0x20480061, 0x00000000, 0x0007001f },
+   { 0x00800031, 0x2c401d29, 0x008d0040, 0x0418a004 },
+   { 0x00000040, 0x20440c21, 0x00210044, 0x00000008 },
+   { 0x00800031, 0x2d401d29, 0x008d0040, 0x0418a004 },
+   { 0x00000005, 0x20580c21, 0x00210040, 0x00000003 },
+   { 0x00000041, 0x20580c21, 0x00210058, 0x00000011 },
+   { 0x00000020, 0x34001400, 0x00001400, 0x00210058 },
+   { 0x00800001, 0x23800229, 0x00b10c40, 0x00000000 },
+   { 0x00800001, 0x23a00229, 0x00b10c60, 0x00000000 },
+   { 0x00800001, 0x23c00229, 0x00b10c80, 0x00000000 },
+   { 0x00800001, 0x23e00229, 0x00b10ca0, 0x00000000 },
+   { 0x00800001, 0x24000229, 0x00b10cc0, 0x00000000 },
+   { 0x00800001, 0x24200229, 0x00b10ce0, 0x00000000 },
+   { 0x00800001, 0x24400229, 0x00b10d00, 0x00000000 },
+   { 0x00800001, 0x24600229, 0x00b10d20, 0x00000000 },
+   { 0x00800001, 0x24800229, 0x00b10d40, 0x00000000 },
+   { 0x00800001, 0x24a00229, 0x00b10d60, 0x00000000 },
+   { 0x00800001, 0x24c00229, 0x00b10d80, 0x00000000 },
+   { 0x00800001, 0x24e00229, 0x00b10da0, 0x00000000 },
+   { 0x00800001, 0x25000229, 0x00b10dc0, 0x00000000 },
+   { 0x00800001, 0x25200229, 0x00b10de0, 0x00000000 },
+   { 0x00800001, 0x25400229, 0x00b10e00, 0x00000000 },
+   { 0x00800001, 0x25600229, 0x00b10e20, 0x00000000 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000032 },
+   { 0x00800001, 0x23800229, 0x00b10c41, 0x00000000 },
+   { 0x00800001, 0x23a00229, 0x00b10c61, 0x00000000 },
+   { 0x00800001, 0x23c00229, 0x00b10c81, 0x00000000 },
+   { 0x00800001, 0x23e00229, 0x00b10ca1, 0x00000000 },
+   { 0x00800001, 0x24000229, 0x00b10cc1, 0x00000000 },
+   { 0x00800001, 0x24200229, 0x00b10ce1, 0x00000000 },
+   { 0x00800001, 0x24400229, 0x00b10d01, 0x00000000 },
+   { 0x00800001, 0x24600229, 0x00b10d21, 0x00000000 },
+   { 0x00800001, 0x24800229, 0x00b10d41, 0x00000000 },
+   { 0x00800001, 0x24a00229, 0x00b10d61, 0x00000000 },
+   { 0x00800001, 0x24c00229, 0x00b10d81, 0x00000000 },
+   { 0x00800001, 0x24e00229, 0x00b10da1, 0x00000000 },
+   { 0x00800001, 0x25000229, 0x00b10dc1, 0x00000000 },
+   { 0x00800001, 0x25200229, 0x00b10de1, 0x00000000 },
+   { 0x00800001, 0x25400229, 0x00b10e01, 0x00000000 },
+   { 0x00800001, 0x25600229, 0x00b10e21, 0x00000000 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000021 },
+   { 0x00800001, 0x23800229, 0x00b10c42, 0x00000000 },
+   { 0x00800001, 0x23a00229, 0x00b10c62, 0x00000000 },
+   { 0x00800001, 0x23c00229, 0x00b10c82, 0x00000000 },
+   { 0x00800001, 0x23e00229, 0x00b10ca2, 0x00000000 },
+   { 0x00800001, 0x24000229, 0x00b10cc2, 0x00000000 },
+   { 0x00800001, 0x24200229, 0x00b10ce2, 0x00000000 },
+   { 0x00800001, 0x24400229, 0x00b10d02, 0x00000000 },
+   { 0x00800001, 0x24600229, 0x00b10d22, 0x00000000 },
+   { 0x00800001, 0x24800229, 0x00b10d42, 0x00000000 },
+   { 0x00800001, 0x24a00229, 0x00b10d62, 0x00000000 },
+   { 0x00800001, 0x24c00229, 0x00b10d82, 0x00000000 },
+   { 0x00800001, 0x24e00229, 0x00b10da2, 0x00000000 },
+   { 0x00800001, 0x25000229, 0x00b10dc2, 0x00000000 },
+   { 0x00800001, 0x25200229, 0x00b10de2, 0x00000000 },
+   { 0x00800001, 0x25400229, 0x00b10e02, 0x00000000 },
+   { 0x00800001, 0x25600229, 0x00b10e22, 0x00000000 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000010 },
+   { 0x00800001, 0x23800229, 0x00b10c43, 0x00000000 },
+   { 0x00800001, 0x23a00229, 0x00b10c63, 0x00000000 },
+   { 0x00800001, 0x23c00229, 0x00b10c83, 0x00000000 },
+   { 0x00800001, 0x23e00229, 0x00b10ca3, 0x00000000 },
+   { 0x00800001, 0x24000229, 0x00b10cc3, 0x00000000 },
+   { 0x00800001, 0x24200229, 0x00b10ce3, 0x00000000 },
+   { 0x00800001, 0x24400229, 0x00b10d03, 0x00000000 },
+   { 0x00800001, 0x24600229, 0x00b10d23, 0x00000000 },
+   { 0x00800001, 0x24800229, 0x00b10d43, 0x00000000 },
+   { 0x00800001, 0x24a00229, 0x00b10d63, 0x00000000 },
+   { 0x00800001, 0x24c00229, 0x00b10d83, 0x00000000 },
+   { 0x00800001, 0x24e00229, 0x00b10da3, 0x00000000 },
+   { 0x00800001, 0x25000229, 0x00b10dc3, 0x00000000 },
+   { 0x00800001, 0x25200229, 0x00b10de3, 0x00000000 },
+   { 0x00800001, 0x25400229, 0x00b10e03, 0x00000000 },
+   { 0x00800001, 0x25600229, 0x00b10e23, 0x00000000 },
+   { 0x00200008, 0x20200c21, 0x00450e60, 0x00000001 },
+   { 0x0020000c, 0x2e6e3dad, 0x00450e6e, 0x00010001 },
+   { 0x0020000c, 0x202e3dad, 0x00450e6e, 0x00010001 },
+   { 0x00200040, 0x20403421, 0x00450020, 0x0045002e },
+   { 0x00000001, 0x20480061, 0x00000000, 0x0007000f },
+   { 0x00000005, 0x20580c21, 0x00210040, 0x00000003 },
+   { 0x00800031, 0x2ac01d29, 0x008d0040, 0x0414a005 },
+   { 0x00800031, 0x2b401d29, 0x008d0040, 0x0414a006 },
+   { 0x00000041, 0x20580c21, 0x00210058, 0x00000009 },
+   { 0x00000020, 0x34001400, 0x00001400, 0x00210058 },
+   { 0x00800001, 0x25800229, 0x00ad0ac0, 0x00000000 },
+   { 0x00800001, 0x25a00229, 0x00ad0ae0, 0x00000000 },
+   { 0x00800001, 0x25c00229, 0x00ad0b00, 0x00000000 },
+   { 0x00800001, 0x25e00229, 0x00ad0b20, 0x00000000 },
+   { 0x00800001, 0x26000229, 0x00ad0b40, 0x00000000 },
+   { 0x00800001, 0x26200229, 0x00ad0b60, 0x00000000 },
+   { 0x00800001, 0x26400229, 0x00ad0b80, 0x00000000 },
+   { 0x00800001, 0x26600229, 0x00ad0ba0, 0x00000000 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x0000001a },
+   { 0x00800001, 0x25800229, 0x00ad0ac1, 0x00000000 },
+   { 0x00800001, 0x25a00229, 0x00ad0ae1, 0x00000000 },
+   { 0x00800001, 0x25c00229, 0x00ad0b01, 0x00000000 },
+   { 0x00800001, 0x25e00229, 0x00ad0b21, 0x00000000 },
+   { 0x00800001, 0x26000229, 0x00ad0b41, 0x00000000 },
+   { 0x00800001, 0x26200229, 0x00ad0b61, 0x00000000 },
+   { 0x00800001, 0x26400229, 0x00ad0b81, 0x00000000 },
+   { 0x00800001, 0x26600229, 0x00ad0ba1, 0x00000000 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000011 },
+   { 0x00800001, 0x25800229, 0x00ad0ac2, 0x00000000 },
+   { 0x00800001, 0x25a00229, 0x00ad0ae2, 0x00000000 },
+   { 0x00800001, 0x25c00229, 0x00ad0b02, 0x00000000 },
+   { 0x00800001, 0x25e00229, 0x00ad0b22, 0x00000000 },
+   { 0x00800001, 0x26000229, 0x00ad0b42, 0x00000000 },
+   { 0x00800001, 0x26200229, 0x00ad0b62, 0x00000000 },
+   { 0x00800001, 0x26400229, 0x00ad0b82, 0x00000000 },
+   { 0x00800001, 0x26600229, 0x00ad0ba2, 0x00000000 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000008 },
+   { 0x00800001, 0x25800229, 0x00ad0ac3, 0x00000000 },
+   { 0x00800001, 0x25a00229, 0x00ad0ae3, 0x00000000 },
+   { 0x00800001, 0x25c00229, 0x00ad0b03, 0x00000000 },
+   { 0x00800001, 0x25e00229, 0x00ad0b23, 0x00000000 },
+   { 0x00800001, 0x26000229, 0x00ad0b43, 0x00000000 },
+   { 0x00800001, 0x26200229, 0x00ad0b63, 0x00000000 },
+   { 0x00800001, 0x26400229, 0x00ad0b83, 0x00000000 },
+   { 0x00800001, 0x26600229, 0x00ad0ba3, 0x00000000 },
+   { 0x00600001, 0x20200021, 0x008d0980, 0x00000000 },
+   { 0x00800001, 0x458101f1, 0x00000000, 0x00000000 },
+   { 0x00800001, 0x45a101f1, 0x00000000, 0x00000000 },
+   { 0x00800001, 0x45c101f1, 0x00000000, 0x00000000 },
+   { 0x00800001, 0x45e101f1, 0x00000000, 0x00000000 },
+   { 0x00800001, 0x460101f1, 0x00000000, 0x00000000 },
+   { 0x00800001, 0x462101f1, 0x00000000, 0x00000000 },
+   { 0x00800001, 0x464101f1, 0x00000000, 0x00000000 },
+   { 0x00800001, 0x466101f1, 0x00000000, 0x00000000 },
+   { 0x02000005, 0x20002e3c, 0x0021003e, 0x00010001 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x00000011 },
+   { 0x00800040, 0x238045ad, 0x00b10060, 0x00b20380 },
+   { 0x00800040, 0x23a045ad, 0x00b10080, 0x00b203a0 },
+   { 0x00800040, 0x23c045ad, 0x00b100a0, 0x00b203c0 },
+   { 0x00800040, 0x23e045ad, 0x00b100c0, 0x00b203e0 },
+   { 0x00800040, 0x240045ad, 0x00b100e0, 0x00b20400 },
+   { 0x00800040, 0x242045ad, 0x00b10100, 0x00b20420 },
+   { 0x00800040, 0x244045ad, 0x00b10120, 0x00b20440 },
+   { 0x00800040, 0x246045ad, 0x00b10140, 0x00b20460 },
+   { 0x00800040, 0x248045ad, 0x00b10160, 0x00b20480 },
+   { 0x00800040, 0x24a045ad, 0x00b10180, 0x00b204a0 },
+   { 0x00800040, 0x24c045ad, 0x00b101a0, 0x00b204c0 },
+   { 0x00800040, 0x24e045ad, 0x00b101c0, 0x00b204e0 },
+   { 0x00800040, 0x250045ad, 0x00b101e0, 0x00b20500 },
+   { 0x00800040, 0x252045ad, 0x00b10200, 0x00b20520 },
+   { 0x00800040, 0x254045ad, 0x00b10220, 0x00b20540 },
+   { 0x00800040, 0x256045ad, 0x00b10240, 0x00b20560 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000010 },
+   { 0x00800040, 0x238045ad, 0x00b10060, 0x00b20380 },
+   { 0x00800040, 0x23a045ad, 0x00b10160, 0x00b203a0 },
+   { 0x00800040, 0x23c045ad, 0x00b10080, 0x00b203c0 },
+   { 0x00800040, 0x23e045ad, 0x00b10180, 0x00b203e0 },
+   { 0x00800040, 0x240045ad, 0x00b100a0, 0x00b20400 },
+   { 0x00800040, 0x242045ad, 0x00b101a0, 0x00b20420 },
+   { 0x00800040, 0x244045ad, 0x00b100c0, 0x00b20440 },
+   { 0x00800040, 0x246045ad, 0x00b101c0, 0x00b20460 },
+   { 0x00800040, 0x248045ad, 0x00b100e0, 0x00b20480 },
+   { 0x00800040, 0x24a045ad, 0x00b101e0, 0x00b204a0 },
+   { 0x00800040, 0x24c045ad, 0x00b10100, 0x00b204c0 },
+   { 0x00800040, 0x24e045ad, 0x00b10200, 0x00b204e0 },
+   { 0x00800040, 0x250045ad, 0x00b10120, 0x00b20500 },
+   { 0x00800040, 0x252045ad, 0x00b10220, 0x00b20520 },
+   { 0x00800040, 0x254045ad, 0x00b10140, 0x00b20540 },
+   { 0x00800040, 0x256045ad, 0x00b10240, 0x00b20560 },
+   { 0x00000001, 0x20280061, 0x00000000, 0x000f000f },
+   { 0x80800001, 0x438001b1, 0x00b10380, 0x00000000 },
+   { 0x80800001, 0x43a001b1, 0x00b103a0, 0x00000000 },
+   { 0x80800001, 0x43c001b1, 0x00b103c0, 0x00000000 },
+   { 0x80800001, 0x43e001b1, 0x00b103e0, 0x00000000 },
+   { 0x80800001, 0x440001b1, 0x00b10400, 0x00000000 },
+   { 0x80800001, 0x442001b1, 0x00b10420, 0x00000000 },
+   { 0x80800001, 0x444001b1, 0x00b10440, 0x00000000 },
+   { 0x80800001, 0x446001b1, 0x00b10460, 0x00000000 },
+   { 0x80800001, 0x448001b1, 0x00b10480, 0x00000000 },
+   { 0x80800001, 0x44a001b1, 0x00b104a0, 0x00000000 },
+   { 0x80800001, 0x44c001b1, 0x00b104c0, 0x00000000 },
+   { 0x80800001, 0x44e001b1, 0x00b104e0, 0x00000000 },
+   { 0x80800001, 0x450001b1, 0x00b10500, 0x00000000 },
+   { 0x80800001, 0x452001b1, 0x00b10520, 0x00000000 },
+   { 0x80800001, 0x454001b1, 0x00b10540, 0x00000000 },
+   { 0x80800001, 0x456001b1, 0x00b10560, 0x00000000 },
+   { 0x00800001, 0x20200232, 0x00b20380, 0x00000000 },
+   { 0x00800001, 0x20300232, 0x00b203a0, 0x00000000 },
+   { 0x00800001, 0x20400232, 0x00b203c0, 0x00000000 },
+   { 0x00800001, 0x20500232, 0x00b203e0, 0x00000000 },
+   { 0x00800001, 0x20600232, 0x00b20400, 0x00000000 },
+   { 0x00800001, 0x20700232, 0x00b20420, 0x00000000 },
+   { 0x00800001, 0x20800232, 0x00b20440, 0x00000000 },
+   { 0x00800001, 0x20900232, 0x00b20460, 0x00000000 },
+   { 0x00800001, 0x20a00232, 0x00b20480, 0x00000000 },
+   { 0x00800001, 0x20b00232, 0x00b204a0, 0x00000000 },
+   { 0x00800001, 0x20c00232, 0x00b204c0, 0x00000000 },
+   { 0x00800001, 0x20d00232, 0x00b204e0, 0x00000000 },
+   { 0x00800001, 0x20e00232, 0x00b20500, 0x00000000 },
+   { 0x00800001, 0x20f00232, 0x00b20520, 0x00000000 },
+   { 0x00800001, 0x21000232, 0x00b20540, 0x00000000 },
+   { 0x00800001, 0x21100232, 0x00b20560, 0x00000000 },
+   { 0x00800031, 0x24001d28, 0x008d0020, 0x05902000 },
+   { 0x00000001, 0x20280061, 0x00000000, 0x00070007 },
+   { 0x00200008, 0x20201c21, 0x00450020, 0x00000001 },
+   { 0x00800040, 0x258025a9, 0x00b10260, 0x00b10580 },
+   { 0x00800040, 0x25a025a9, 0x00b10280, 0x00b105a0 },
+   { 0x00800040, 0x25c025a9, 0x00b102a0, 0x00b105c0 },
+   { 0x00800040, 0x25e025a9, 0x00b102c0, 0x00b105e0 },
+   { 0x80800001, 0x45800131, 0x00b10580, 0x00000000 },
+   { 0x80800001, 0x45a00131, 0x00b105a0, 0x00000000 },
+   { 0x80800001, 0x45c00131, 0x00b105c0, 0x00000000 },
+   { 0x80800001, 0x45e00131, 0x00b105e0, 0x00000000 },
+   { 0x00800001, 0x20200232, 0x00b20580, 0x00000000 },
+   { 0x00800001, 0x20300232, 0x00b205a0, 0x00000000 },
+   { 0x00800001, 0x20400232, 0x00b205c0, 0x00000000 },
+   { 0x00800001, 0x20500232, 0x00b205e0, 0x00000000 },
+   { 0x00800031, 0x24001d28, 0x008d0020, 0x05302001 },
+   { 0x00800040, 0x260025a9, 0x00b102e0, 0x00b10600 },
+   { 0x00800040, 0x262025a9, 0x00b10300, 0x00b10620 },
+   { 0x00800040, 0x264025a9, 0x00b10320, 0x00b10640 },
+   { 0x00800040, 0x266025a9, 0x00b10340, 0x00b10660 },
+   { 0x80800001, 0x46000131, 0x00b10600, 0x00000000 },
+   { 0x80800001, 0x46200131, 0x00b10620, 0x00000000 },
+   { 0x80800001, 0x46400131, 0x00b10640, 0x00000000 },
+   { 0x80800001, 0x46600131, 0x00b10660, 0x00000000 },
+   { 0x00800001, 0x20200232, 0x00b20600, 0x00000000 },
+   { 0x00800001, 0x20300232, 0x00b20620, 0x00000000 },
+   { 0x00800001, 0x20400232, 0x00b20640, 0x00000000 },
+   { 0x00800001, 0x20500232, 0x00b20660, 0x00000000 },
+   { 0x00800031, 0x24001d28, 0x008d0020, 0x05302002 },
+   { 0x00800031, 0x24001d28, 0x008d0000, 0x87100000 },
+   { 0x00800031, 0x24001d28, 0x008d0000, 0x87100000 },
diff --git a/src/xvmc/shader/mc/frame_forward_igd.g4a b/src/xvmc/shader/mc/frame_forward_igd.g4a
new file mode 100644
index 0000000..f474807
--- /dev/null
+++ b/src/xvmc/shader/mc/frame_forward_igd.g4a
@@ -0,0 +1,65 @@
+/*
+ * Copyright © 2008 Intel Corporation
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice (including the next
+ * paragraph) shall be included in all copies or substantial portions of the
+ * Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
+ * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+ * SOFTWARE.
+ *
+ * Author:
+ *    Zou Nan hai <nanhai.zou at intel.com>
+ *    Zhang Hua jun <huajun.zhang at intel.com>
+ *    Xing Dong sheng <dongsheng.xing at intel.com>
+ *
+ */
+
+/* shader for backward predict mc
+*/
+
+/* save payload */
+mov (8) g76.0<1>UD g1.0<8,8,1>UD {align1};
+//mov (8) g77.0<1>UD g2.0<8,8,1>UD {align1};
+
+include(`block_clear.g4i')
+
+mov (8) g115.0<1>UD g1.0<8,8,1>UD {align1}; 
+mov (1) g1.8<1>UD 0x0070007UD {align1};  
+define(`input_surface',	`4')
+define(`mv1',	`g115.14')
+define(`mv2',	`g115.16')
+/* Y */
+/* (x', y') = (x, y) + (motion_vector.x >> 1, motion_vector.y >> 1) */
+asr (2) g1.14<1>W g115.14<2,2,1>W 1W {align1};
+add (2) g2.0<1>UD g115.0<2,2,1>UD g1.14<2,2,1>W {align1};
+include(`motion_frame_y_igd.g4i')
+/* motion_vector = motion_vector >> 1 */
+/* (x', y') = (x, y) + (motion_vector.x >> 1, motion_vector.y >> 1) */
+/* U */
+shr (2) g1.0<1>UD g115.0<2,2,1>UD 1UD {align1};
+asr (2) g115.14<1>W g115.14<2,2,1>W 1W {align1};
+asr (2) g1.14<1>W g115.14<2,2,1>W 1W {align1};
+add (2) g2.0<1>UD g1.0<2,2,1>UD g1.14<2,2,1>W {align1};
+define(`input_surface1',	`5')
+define(`input_surface2',	`6')
+mov (1) g2.8<1>UD 0x007000fUD  {align1};
+include(`motion_frame_uv_igd.g4i')
+/* V */
+/* (x', y') = (x, y) + (motion_vector.x >> 1, motion_vector.y >> 1) */
+include(`addidct.g4i')
+
+send (16) 0 acc0<1>UW g0<8,8,1>UW 
+	thread_spawner(0, 0, 0) mlen 1 rlen 0 { align1 EOT};
diff --git a/src/xvmc/shader/mc/frame_forward_igd.g4b b/src/xvmc/shader/mc/frame_forward_igd.g4b
new file mode 100644
index 0000000..9356180
--- /dev/null
+++ b/src/xvmc/shader/mc/frame_forward_igd.g4b
@@ -0,0 +1,373 @@
+   { 0x00600001, 0x29800021, 0x008d0020, 0x00000000 },
+   { 0x02000005, 0x20000c3c, 0x00210040, 0x00000001 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x00000030 },
+   { 0x00000040, 0x20480c21, 0x00210988, 0x00000000 },
+   { 0x00800031, 0x20601c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x20801c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x20a01c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x20c01c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x20e01c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x21001c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x21201c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x21401c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x21601c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x21801c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x21a01c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x21c01c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x21e01c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x22001c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x22201c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x22401c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x22601c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x22801c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x22a01c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x22c01c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x22e01c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x23001c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x23201c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x23401c21, 0x00b10040, 0x04110203 },
+   { 0x02000005, 0x20002d3c, 0x0021098c, 0x00200020 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x00000008 },
+   { 0x00600001, 0x20600169, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x20800169, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x20a00169, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x20c00169, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x20e00169, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x21000169, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x21200169, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x21400169, 0x00000000, 0x00000000 },
+   { 0x02000005, 0x20002d3c, 0x0021002c, 0x00100010 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x00000008 },
+   { 0x00600001, 0x20700169, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x20900169, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x20b00169, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x20d00169, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x20f00169, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x21100169, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x21300169, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x21500169, 0x00000000, 0x00000000 },
+   { 0x02000005, 0x20002d3c, 0x0021002c, 0x00080008 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x00000008 },
+   { 0x00600001, 0x21600169, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x21800169, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x21a00169, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x21c00169, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x21e00169, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x22000169, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x22200169, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x22400169, 0x00000000, 0x00000000 },
+   { 0x02000005, 0x20002d3c, 0x0021002c, 0x00040004 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x00000008 },
+   { 0x00600001, 0x21700169, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x21900169, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x21b00169, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x21d00169, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x21f00169, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x22100169, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x22300169, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x22500169, 0x00000000, 0x00000000 },
+   { 0x02000005, 0x20002d3c, 0x0021002c, 0x00020002 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x00000004 },
+   { 0x00800001, 0x22600169, 0x00000000, 0x00000000 },
+   { 0x00800001, 0x22800169, 0x00000000, 0x00000000 },
+   { 0x00800001, 0x22a00169, 0x00000000, 0x00000000 },
+   { 0x00800001, 0x22c00169, 0x00000000, 0x00000000 },
+   { 0x02000005, 0x20002d3c, 0x0021002c, 0x00010001 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x00000004 },
+   { 0x00800001, 0x22e00169, 0x00000000, 0x00000000 },
+   { 0x00800001, 0x23000169, 0x00000000, 0x00000000 },
+   { 0x00800001, 0x23200169, 0x00000000, 0x00000000 },
+   { 0x00800001, 0x23400169, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x2e600021, 0x008d0020, 0x00000000 },
+   { 0x00000001, 0x20280061, 0x00000000, 0x00070007 },
+   { 0x0020000c, 0x202e3dad, 0x00450e6e, 0x00010001 },
+   { 0x00200040, 0x20403421, 0x00450e60, 0x0045002e },
+   { 0x01000005, 0x20000d3c, 0x00210e6e, 0x00000001 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x0000005f },
+   { 0x01000005, 0x20000d3c, 0x00210e70, 0x00000001 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x00000048 },
+   { 0x00000001, 0x20480061, 0x00000000, 0x0007001f },
+   { 0x00800031, 0x2c401d29, 0x008d0040, 0x0418a004 },
+   { 0x00000040, 0x20440c21, 0x00210044, 0x00000008 },
+   { 0x00800031, 0x2d401d29, 0x008d0040, 0x0418a004 },
+   { 0x00000040, 0x20440c21, 0x00210044, 0x00000008 },
+   { 0x00000001, 0x20480061, 0x00000000, 0x0000001f },
+   { 0x00800031, 0x2f001d29, 0x008d0040, 0x0411a004 },
+   { 0x00800040, 0x23804629, 0x00b10c40, 0x00b10c41 },
+   { 0x00800040, 0x23a04629, 0x00b10c60, 0x00b10c61 },
+   { 0x00800040, 0x23c04629, 0x00b10c80, 0x00b10c81 },
+   { 0x00800040, 0x23e04629, 0x00b10ca0, 0x00b10ca1 },
+   { 0x00800040, 0x24004629, 0x00b10cc0, 0x00b10cc1 },
+   { 0x00800040, 0x24204629, 0x00b10ce0, 0x00b10ce1 },
+   { 0x00800040, 0x24404629, 0x00b10d00, 0x00b10d01 },
+   { 0x00800040, 0x24604629, 0x00b10d20, 0x00b10d21 },
+   { 0x00800040, 0x24804629, 0x00b10d40, 0x00b10d41 },
+   { 0x00800040, 0x24a04629, 0x00b10d60, 0x00b10d61 },
+   { 0x00800040, 0x24c04629, 0x00b10d80, 0x00b10d81 },
+   { 0x00800040, 0x24e04629, 0x00b10da0, 0x00b10da1 },
+   { 0x00800040, 0x25004629, 0x00b10dc0, 0x00b10dc1 },
+   { 0x00800040, 0x25204629, 0x00b10de0, 0x00b10de1 },
+   { 0x00800040, 0x25404629, 0x00b10e00, 0x00b10e01 },
+   { 0x00800040, 0x25604629, 0x00b10e20, 0x00b10e21 },
+   { 0x00800040, 0x23804529, 0x00b10380, 0x00b10c60 },
+   { 0x00800040, 0x23a04529, 0x00b103a0, 0x00b10c80 },
+   { 0x00800040, 0x23c04529, 0x00b103c0, 0x00b10ca0 },
+   { 0x00800040, 0x23e04529, 0x00b103e0, 0x00b10cc0 },
+   { 0x00800040, 0x24004529, 0x00b10400, 0x00b10ce0 },
+   { 0x00800040, 0x24204529, 0x00b10420, 0x00b10d00 },
+   { 0x00800040, 0x24404529, 0x00b10440, 0x00b10d20 },
+   { 0x00800040, 0x24604529, 0x00b10460, 0x00b10d40 },
+   { 0x00800040, 0x24804529, 0x00b10480, 0x00b10d60 },
+   { 0x00800040, 0x24a04529, 0x00b104a0, 0x00b10d80 },
+   { 0x00800040, 0x24c04529, 0x00b104c0, 0x00b10da0 },
+   { 0x00800040, 0x24e04529, 0x00b104e0, 0x00b10dc0 },
+   { 0x00800040, 0x25004529, 0x00b10500, 0x00b10de0 },
+   { 0x00800040, 0x25204529, 0x00b10520, 0x00b10e00 },
+   { 0x00800040, 0x25404529, 0x00b10540, 0x00b10e20 },
+   { 0x00800040, 0x25604529, 0x00b10560, 0x00b10f00 },
+   { 0x00800040, 0x23804529, 0x00b10380, 0x00b10c61 },
+   { 0x00800040, 0x23a04529, 0x00b103a0, 0x00b10c81 },
+   { 0x00800040, 0x23c04529, 0x00b103c0, 0x00b10ca1 },
+   { 0x00800040, 0x23e04529, 0x00b103e0, 0x00b10cc1 },
+   { 0x00800040, 0x24004529, 0x00b10400, 0x00b10ce1 },
+   { 0x00800040, 0x24204529, 0x00b10420, 0x00b10d01 },
+   { 0x00800040, 0x24404529, 0x00b10440, 0x00b10d21 },
+   { 0x00800040, 0x24604529, 0x00b10460, 0x00b10d41 },
+   { 0x00800040, 0x24804529, 0x00b10480, 0x00b10d61 },
+   { 0x00800040, 0x24a04529, 0x00b104a0, 0x00b10d81 },
+   { 0x00800040, 0x24c04529, 0x00b104c0, 0x00b10da1 },
+   { 0x00800040, 0x24e04529, 0x00b104e0, 0x00b10dc1 },
+   { 0x00800040, 0x25004529, 0x00b10500, 0x00b10de1 },
+   { 0x00800040, 0x25204529, 0x00b10520, 0x00b10e01 },
+   { 0x00800040, 0x25404529, 0x00b10540, 0x00b10e21 },
+   { 0x00800040, 0x25604529, 0x00b10560, 0x00b10f01 },
+   { 0x80800008, 0x23802d29, 0x00b10380, 0x00020002 },
+   { 0x80800008, 0x23a02d29, 0x00b103a0, 0x00020002 },
+   { 0x80800008, 0x23c02d29, 0x00b103c0, 0x00020002 },
+   { 0x80800008, 0x23e02d29, 0x00b103e0, 0x00020002 },
+   { 0x80800008, 0x24002d29, 0x00b10400, 0x00020002 },
+   { 0x80800008, 0x24202d29, 0x00b10420, 0x00020002 },
+   { 0x80800008, 0x24402d29, 0x00b10440, 0x00020002 },
+   { 0x80800008, 0x24602d29, 0x00b10460, 0x00020002 },
+   { 0x80800008, 0x24802d29, 0x00b10480, 0x00020002 },
+   { 0x80800008, 0x24a02d29, 0x00b104a0, 0x00020002 },
+   { 0x80800008, 0x24c02d29, 0x00b104c0, 0x00020002 },
+   { 0x80800008, 0x24e02d29, 0x00b104e0, 0x00020002 },
+   { 0x80800008, 0x25002d29, 0x00b10500, 0x00020002 },
+   { 0x80800008, 0x25202d29, 0x00b10520, 0x00020002 },
+   { 0x80800008, 0x25402d29, 0x00b10540, 0x00020002 },
+   { 0x80800008, 0x25602d29, 0x00b10560, 0x00020002 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000043 },
+   { 0x00000001, 0x20480061, 0x00000000, 0x0007001f },
+   { 0x00800031, 0x2c401d29, 0x008d0040, 0x0418a004 },
+   { 0x00000040, 0x20440c21, 0x00210044, 0x00000008 },
+   { 0x00800031, 0x2d401d29, 0x008d0040, 0x0418a004 },
+   { 0x80800042, 0x23804629, 0x00b10c40, 0x00b10c41 },
+   { 0x80800042, 0x23a04629, 0x00b10c60, 0x00b10c61 },
+   { 0x80800042, 0x23c04629, 0x00b10c80, 0x00b10c81 },
+   { 0x80800042, 0x23e04629, 0x00b10ca0, 0x00b10ca1 },
+   { 0x80800042, 0x24004629, 0x00b10cc0, 0x00b10cc1 },
+   { 0x80800042, 0x24204629, 0x00b10ce0, 0x00b10ce1 },
+   { 0x80800042, 0x24404629, 0x00b10d00, 0x00b10d01 },
+   { 0x80800042, 0x24604629, 0x00b10d20, 0x00b10d21 },
+   { 0x80800042, 0x24804629, 0x00b10d40, 0x00b10d41 },
+   { 0x80800042, 0x24a04629, 0x00b10d60, 0x00b10d61 },
+   { 0x80800042, 0x24c04629, 0x00b10d80, 0x00b10d81 },
+   { 0x80800042, 0x24e04629, 0x00b10da0, 0x00b10da1 },
+   { 0x80800042, 0x25004629, 0x00b10dc0, 0x00b10dc1 },
+   { 0x80800042, 0x25204629, 0x00b10de0, 0x00b10de1 },
+   { 0x80800042, 0x25404629, 0x00b10e00, 0x00b10e01 },
+   { 0x80800042, 0x25604629, 0x00b10e20, 0x00b10e21 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x0000002e },
+   { 0x01000005, 0x20000d3c, 0x00210e70, 0x00000001 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x00000018 },
+   { 0x00000001, 0x20480061, 0x00000000, 0x0007001f },
+   { 0x00800031, 0x2c401d29, 0x008d0040, 0x0418a004 },
+   { 0x00000040, 0x20440c21, 0x00210044, 0x00000008 },
+   { 0x00800031, 0x2d401d29, 0x008d0040, 0x0418a004 },
+   { 0x00000040, 0x20440c21, 0x00210044, 0x00000008 },
+   { 0x00000001, 0x20480061, 0x00000000, 0x0000001f },
+   { 0x00800031, 0x2f001d29, 0x008d0040, 0x0411a004 },
+   { 0x80800042, 0x23804629, 0x00b10c40, 0x00b10c60 },
+   { 0x80800042, 0x23a04629, 0x00b10c60, 0x00b10c80 },
+   { 0x80800042, 0x23c04629, 0x00b10c80, 0x00b10ca0 },
+   { 0x80800042, 0x23e04629, 0x00b10ca0, 0x00b10cc0 },
+   { 0x80800042, 0x24004629, 0x00b10cc0, 0x00b10ce0 },
+   { 0x80800042, 0x24204629, 0x00b10ce0, 0x00b10d00 },
+   { 0x80800042, 0x24404629, 0x00b10d00, 0x00b10d20 },
+   { 0x80800042, 0x24604629, 0x00b10d20, 0x00b10d40 },
+   { 0x80800042, 0x24804629, 0x00b10d40, 0x00b10d60 },
+   { 0x80800042, 0x24a04629, 0x00b10d60, 0x00b10d80 },
+   { 0x80800042, 0x24c04629, 0x00b10d80, 0x00b10da0 },
+   { 0x80800042, 0x24e04629, 0x00b10da0, 0x00b10dc0 },
+   { 0x80800042, 0x25004629, 0x00b10dc0, 0x00b10de0 },
+   { 0x80800042, 0x25204629, 0x00b10de0, 0x00b10e00 },
+   { 0x80800042, 0x25404629, 0x00b10e00, 0x00b10e20 },
+   { 0x80800042, 0x25604629, 0x00b10e20, 0x00b10f00 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000014 },
+   { 0x00000001, 0x20480061, 0x00000000, 0x0007001f },
+   { 0x00800031, 0x2c401d29, 0x008d0040, 0x0418a004 },
+   { 0x00000040, 0x20440c21, 0x00210044, 0x00000008 },
+   { 0x00800031, 0x2d401d29, 0x008d0040, 0x0418a004 },
+   { 0x00800001, 0x23800229, 0x00b10c40, 0x00000000 },
+   { 0x00800001, 0x23a00229, 0x00b10c60, 0x00000000 },
+   { 0x00800001, 0x23c00229, 0x00b10c80, 0x00000000 },
+   { 0x00800001, 0x23e00229, 0x00b10ca0, 0x00000000 },
+   { 0x00800001, 0x24000229, 0x00b10cc0, 0x00000000 },
+   { 0x00800001, 0x24200229, 0x00b10ce0, 0x00000000 },
+   { 0x00800001, 0x24400229, 0x00b10d00, 0x00000000 },
+   { 0x00800001, 0x24600229, 0x00b10d20, 0x00000000 },
+   { 0x00800001, 0x24800229, 0x00b10d40, 0x00000000 },
+   { 0x00800001, 0x24a00229, 0x00b10d60, 0x00000000 },
+   { 0x00800001, 0x24c00229, 0x00b10d80, 0x00000000 },
+   { 0x00800001, 0x24e00229, 0x00b10da0, 0x00000000 },
+   { 0x00800001, 0x25000229, 0x00b10dc0, 0x00000000 },
+   { 0x00800001, 0x25200229, 0x00b10de0, 0x00000000 },
+   { 0x00800001, 0x25400229, 0x00b10e00, 0x00000000 },
+   { 0x00800001, 0x25600229, 0x00b10e20, 0x00000000 },
+   { 0x00200008, 0x20200c21, 0x00450e60, 0x00000001 },
+   { 0x0020000c, 0x2e6e3dad, 0x00450e6e, 0x00010001 },
+   { 0x0020000c, 0x202e3dad, 0x00450e6e, 0x00010001 },
+   { 0x00200040, 0x20403421, 0x00450020, 0x0045002e },
+   { 0x00000001, 0x20480061, 0x00000000, 0x0007000f },
+   { 0x00800031, 0x2ac01d29, 0x008d0040, 0x0414a005 },
+   { 0x00800031, 0x2b401d29, 0x008d0040, 0x0414a006 },
+   { 0x00800001, 0x25800229, 0x00ad0ac0, 0x00000000 },
+   { 0x00800001, 0x25a00229, 0x00ad0ae0, 0x00000000 },
+   { 0x00800001, 0x25c00229, 0x00ad0b00, 0x00000000 },
+   { 0x00800001, 0x25e00229, 0x00ad0b20, 0x00000000 },
+   { 0x00800001, 0x26000229, 0x00ad0b40, 0x00000000 },
+   { 0x00800001, 0x26200229, 0x00ad0b60, 0x00000000 },
+   { 0x00800001, 0x26400229, 0x00ad0b80, 0x00000000 },
+   { 0x00800001, 0x26600229, 0x00ad0ba0, 0x00000000 },
+   { 0x00600001, 0x20200021, 0x008d0980, 0x00000000 },
+   { 0x00800001, 0x458101f1, 0x00000000, 0x00000000 },
+   { 0x00800001, 0x45a101f1, 0x00000000, 0x00000000 },
+   { 0x00800001, 0x45c101f1, 0x00000000, 0x00000000 },
+   { 0x00800001, 0x45e101f1, 0x00000000, 0x00000000 },
+   { 0x00800001, 0x460101f1, 0x00000000, 0x00000000 },
+   { 0x00800001, 0x462101f1, 0x00000000, 0x00000000 },
+   { 0x00800001, 0x464101f1, 0x00000000, 0x00000000 },
+   { 0x00800001, 0x466101f1, 0x00000000, 0x00000000 },
+   { 0x02000005, 0x20002e3c, 0x0021003e, 0x00010001 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x00000011 },
+   { 0x00800040, 0x238045ad, 0x00b10060, 0x00b20380 },
+   { 0x00800040, 0x23a045ad, 0x00b10080, 0x00b203a0 },
+   { 0x00800040, 0x23c045ad, 0x00b100a0, 0x00b203c0 },
+   { 0x00800040, 0x23e045ad, 0x00b100c0, 0x00b203e0 },
+   { 0x00800040, 0x240045ad, 0x00b100e0, 0x00b20400 },
+   { 0x00800040, 0x242045ad, 0x00b10100, 0x00b20420 },
+   { 0x00800040, 0x244045ad, 0x00b10120, 0x00b20440 },
+   { 0x00800040, 0x246045ad, 0x00b10140, 0x00b20460 },
+   { 0x00800040, 0x248045ad, 0x00b10160, 0x00b20480 },
+   { 0x00800040, 0x24a045ad, 0x00b10180, 0x00b204a0 },
+   { 0x00800040, 0x24c045ad, 0x00b101a0, 0x00b204c0 },
+   { 0x00800040, 0x24e045ad, 0x00b101c0, 0x00b204e0 },
+   { 0x00800040, 0x250045ad, 0x00b101e0, 0x00b20500 },
+   { 0x00800040, 0x252045ad, 0x00b10200, 0x00b20520 },
+   { 0x00800040, 0x254045ad, 0x00b10220, 0x00b20540 },
+   { 0x00800040, 0x256045ad, 0x00b10240, 0x00b20560 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000010 },
+   { 0x00800040, 0x238045ad, 0x00b10060, 0x00b20380 },
+   { 0x00800040, 0x23a045ad, 0x00b10160, 0x00b203a0 },
+   { 0x00800040, 0x23c045ad, 0x00b10080, 0x00b203c0 },
+   { 0x00800040, 0x23e045ad, 0x00b10180, 0x00b203e0 },
+   { 0x00800040, 0x240045ad, 0x00b100a0, 0x00b20400 },
+   { 0x00800040, 0x242045ad, 0x00b101a0, 0x00b20420 },
+   { 0x00800040, 0x244045ad, 0x00b100c0, 0x00b20440 },
+   { 0x00800040, 0x246045ad, 0x00b101c0, 0x00b20460 },
+   { 0x00800040, 0x248045ad, 0x00b100e0, 0x00b20480 },
+   { 0x00800040, 0x24a045ad, 0x00b101e0, 0x00b204a0 },
+   { 0x00800040, 0x24c045ad, 0x00b10100, 0x00b204c0 },
+   { 0x00800040, 0x24e045ad, 0x00b10200, 0x00b204e0 },
+   { 0x00800040, 0x250045ad, 0x00b10120, 0x00b20500 },
+   { 0x00800040, 0x252045ad, 0x00b10220, 0x00b20520 },
+   { 0x00800040, 0x254045ad, 0x00b10140, 0x00b20540 },
+   { 0x00800040, 0x256045ad, 0x00b10240, 0x00b20560 },
+   { 0x00000001, 0x20280061, 0x00000000, 0x000f000f },
+   { 0x80800001, 0x438001b1, 0x00b10380, 0x00000000 },
+   { 0x80800001, 0x43a001b1, 0x00b103a0, 0x00000000 },
+   { 0x80800001, 0x43c001b1, 0x00b103c0, 0x00000000 },
+   { 0x80800001, 0x43e001b1, 0x00b103e0, 0x00000000 },
+   { 0x80800001, 0x440001b1, 0x00b10400, 0x00000000 },
+   { 0x80800001, 0x442001b1, 0x00b10420, 0x00000000 },
+   { 0x80800001, 0x444001b1, 0x00b10440, 0x00000000 },
+   { 0x80800001, 0x446001b1, 0x00b10460, 0x00000000 },
+   { 0x80800001, 0x448001b1, 0x00b10480, 0x00000000 },
+   { 0x80800001, 0x44a001b1, 0x00b104a0, 0x00000000 },
+   { 0x80800001, 0x44c001b1, 0x00b104c0, 0x00000000 },
+   { 0x80800001, 0x44e001b1, 0x00b104e0, 0x00000000 },
+   { 0x80800001, 0x450001b1, 0x00b10500, 0x00000000 },
+   { 0x80800001, 0x452001b1, 0x00b10520, 0x00000000 },
+   { 0x80800001, 0x454001b1, 0x00b10540, 0x00000000 },
+   { 0x80800001, 0x456001b1, 0x00b10560, 0x00000000 },
+   { 0x00800001, 0x20200232, 0x00b20380, 0x00000000 },
+   { 0x00800001, 0x20300232, 0x00b203a0, 0x00000000 },
+   { 0x00800001, 0x20400232, 0x00b203c0, 0x00000000 },
+   { 0x00800001, 0x20500232, 0x00b203e0, 0x00000000 },
+   { 0x00800001, 0x20600232, 0x00b20400, 0x00000000 },
+   { 0x00800001, 0x20700232, 0x00b20420, 0x00000000 },
+   { 0x00800001, 0x20800232, 0x00b20440, 0x00000000 },
+   { 0x00800001, 0x20900232, 0x00b20460, 0x00000000 },
+   { 0x00800001, 0x20a00232, 0x00b20480, 0x00000000 },
+   { 0x00800001, 0x20b00232, 0x00b204a0, 0x00000000 },
+   { 0x00800001, 0x20c00232, 0x00b204c0, 0x00000000 },
+   { 0x00800001, 0x20d00232, 0x00b204e0, 0x00000000 },
+   { 0x00800001, 0x20e00232, 0x00b20500, 0x00000000 },
+   { 0x00800001, 0x20f00232, 0x00b20520, 0x00000000 },
+   { 0x00800001, 0x21000232, 0x00b20540, 0x00000000 },
+   { 0x00800001, 0x21100232, 0x00b20560, 0x00000000 },
+   { 0x00800031, 0x24001d28, 0x008d0020, 0x05902000 },
+   { 0x00000001, 0x20280061, 0x00000000, 0x00070007 },
+   { 0x00200008, 0x20201c21, 0x00450020, 0x00000001 },
+   { 0x00800040, 0x258025a9, 0x00b10260, 0x00b10580 },
+   { 0x00800040, 0x25a025a9, 0x00b10280, 0x00b105a0 },
+   { 0x00800040, 0x25c025a9, 0x00b102a0, 0x00b105c0 },
+   { 0x00800040, 0x25e025a9, 0x00b102c0, 0x00b105e0 },
+   { 0x80800001, 0x45800131, 0x00b10580, 0x00000000 },
+   { 0x80800001, 0x45a00131, 0x00b105a0, 0x00000000 },
+   { 0x80800001, 0x45c00131, 0x00b105c0, 0x00000000 },
+   { 0x80800001, 0x45e00131, 0x00b105e0, 0x00000000 },
+   { 0x00800001, 0x20200232, 0x00b20580, 0x00000000 },
+   { 0x00800001, 0x20300232, 0x00b205a0, 0x00000000 },
+   { 0x00800001, 0x20400232, 0x00b205c0, 0x00000000 },
+   { 0x00800001, 0x20500232, 0x00b205e0, 0x00000000 },
+   { 0x00800031, 0x24001d28, 0x008d0020, 0x05302001 },
+   { 0x00800040, 0x260025a9, 0x00b102e0, 0x00b10600 },
+   { 0x00800040, 0x262025a9, 0x00b10300, 0x00b10620 },
+   { 0x00800040, 0x264025a9, 0x00b10320, 0x00b10640 },
+   { 0x00800040, 0x266025a9, 0x00b10340, 0x00b10660 },
+   { 0x80800001, 0x46000131, 0x00b10600, 0x00000000 },
+   { 0x80800001, 0x46200131, 0x00b10620, 0x00000000 },
+   { 0x80800001, 0x46400131, 0x00b10640, 0x00000000 },
+   { 0x80800001, 0x46600131, 0x00b10660, 0x00000000 },
+   { 0x00800001, 0x20200232, 0x00b20600, 0x00000000 },
+   { 0x00800001, 0x20300232, 0x00b20620, 0x00000000 },
+   { 0x00800001, 0x20400232, 0x00b20640, 0x00000000 },
+   { 0x00800001, 0x20500232, 0x00b20660, 0x00000000 },
+   { 0x00800031, 0x24001d28, 0x008d0020, 0x05302002 },
+   { 0x00800031, 0x24001d28, 0x008d0000, 0x87100000 },
+   { 0x00800031, 0x24001d28, 0x008d0000, 0x87100000 },
diff --git a/src/xvmc/shader/mc/ipicture.g4a b/src/xvmc/shader/mc/ipicture.g4a
new file mode 100644
index 0000000..afd5bc3
--- /dev/null
+++ b/src/xvmc/shader/mc/ipicture.g4a
@@ -0,0 +1,166 @@
+/*
+ * Copyright © 2008 Intel Corporation
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice (including the next
+ * paragraph) shall be included in all copies or substantial portions of the
+ * Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
+ * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+ * SOFTWARE.
+ *
+ * Author:
+ *    Zou Nan hai <nanhai.zou at intel.com>
+ *    Zhang Hua jun <huajun.zhang at intel.com>
+ *    Xing Dong sheng <dongsheng.xing at intel.com>
+ *
+ */
+mov (8) g115.0<1>UD g1.0<8,8,1>UD {align1};
+
+and.nz (1) null g2.0<1,1,1>UD 0x1UD{align1};
+(f0) jmpi direct_idct;
+add (1) g2.8<1>UD g115.8<1,1,1>UD 0UD{align1};
+send (16) 0 g3.0<1>UD g2<16,16,1>UD read(3, 0, 2, 0) mlen 1 rlen 1 { align1 };
+add (1) g2.8<1>UD g2.8<1,1,1>UD 32UD {align1};
+send (16) 0 g4.0<1>UD g2<16,16,1>UD read(3, 0, 2, 0) mlen 1 rlen 1 { align1 };
+add (1) g2.8<1>UD g2.8<1,1,1>UD 32UD {align1};
+send (16) 0 g5.0<1>UD g2<16,16,1>UD read(3, 0, 2, 0) mlen 1 rlen 1 { align1 };
+add (1) g2.8<1>UD g2.8<1,1,1>UD 32UD {align1};
+send (16) 0 g6.0<1>UD g2<16,16,1>UD read(3, 0, 2, 0) mlen 1 rlen 1 { align1 };
+add (1) g2.8<1>UD g2.8<1,1,1>UD 32UD {align1};
+send (16) 0 g7.0<1>UD g2<16,16,1>UD read(3, 0, 2, 0) mlen 1 rlen 1 { align1 };
+add (1) g2.8<1>UD g2.8<1,1,1>UD 32UD {align1};
+send (16) 0 g8.0<1>UD g2<16,16,1>UD read(3, 0, 2, 0) mlen 1 rlen 1 { align1 };
+add (1) g2.8<1>UD g2.8<1,1,1>UD 32UD {align1};
+send (16) 0 g9.0<1>UD g2<16,16,1>UD read(3, 0, 2, 0) mlen 1 rlen 1 { align1 };
+add (1) g2.8<1>UD g2.8<1,1,1>UD 32UD {align1};
+send (16) 0 g10.0<1>UD g2<16,16,1>UD read(3, 0, 2, 0) mlen 1 rlen 1 { align1 };
+add (1) g2.8<1>UD g2.8<1,1,1>UD 32UD {align1};
+send (16) 0 g11.0<1>UD g2<16,16,1>UD read(3, 0, 2, 0) mlen 1 rlen 1 { align1 };
+add (1) g2.8<1>UD g2.8<1,1,1>UD 32UD {align1};
+send (16) 0 g12.0<1>UD g2<16,16,1>UD read(3, 0, 2, 0) mlen 1 rlen 1 { align1 };
+add (1) g2.8<1>UD g2.8<1,1,1>UD 32UD {align1};
+send (16) 0 g13.0<1>UD g2<16,16,1>UD read(3, 0, 2, 0) mlen 1 rlen 1 { align1 };
+add (1) g2.8<1>UD g2.8<1,1,1>UD 32UD {align1};
+send (16) 0 g14.0<1>UD g2<16,16,1>UD read(3, 0, 2, 0) mlen 1 rlen 1 { align1 };
+add (1) g2.8<1>UD g2.8<1,1,1>UD 32UD {align1};
+send (16) 0 g15.0<1>UD g2<16,16,1>UD read(3, 0, 2, 0) mlen 1 rlen 1 { align1 };
+add (1) g2.8<1>UD g2.8<1,1,1>UD 32UD {align1};
+send (16) 0 g16.0<1>UD g2<16,16,1>UD read(3, 0, 2, 0) mlen 1 rlen 1 { align1 };
+add (1) g2.8<1>UD g2.8<1,1,1>UD 32UD {align1};
+send (16) 0 g17.0<1>UD g2<16,16,1>UD read(3, 0, 2, 0) mlen 1 rlen 1 { align1 };
+add (1) g2.8<1>UD g2.8<1,1,1>UD 32UD {align1};
+send (16) 0 g18.0<1>UD g2<16,16,1>UD read(3, 0, 2, 0) mlen 1 rlen 1 { align1 };
+add (1) g2.8<1>UD g2.8<1,1,1>UD 32UD {align1};
+send (16) 0 g19.0<1>UD g2<16,16,1>UD read(3, 0, 2, 0) mlen 1 rlen 1 { align1 };
+add (1) g2.8<1>UD g2.8<1,1,1>UD 32UD {align1};
+send (16) 0 g20.0<1>UD g2<16,16,1>UD read(3, 0, 2, 0) mlen 1 rlen 1 { align1 };
+add (1) g2.8<1>UD g2.8<1,1,1>UD 32UD {align1};
+send (16) 0 g21.0<1>UD g2<16,16,1>UD read(3, 0, 2, 0) mlen 1 rlen 1 { align1 };
+add (1) g2.8<1>UD g2.8<1,1,1>UD 32UD {align1};
+send (16) 0 g22.0<1>UD g2<16,16,1>UD read(3, 0, 2, 0) mlen 1 rlen 1 { align1 };
+add (1) g2.8<1>UD g2.8<1,1,1>UD 32UD {align1};
+send (16) 0 g23<1>UD g2<16,16,1>UD read(3, 0, 2, 0) mlen 1 rlen 1 { align1 };
+add (1) g2.8<1>UD g2.8<1,1,1>UD 32UD {align1};
+send (16) 0 g24.0<1>UD g2<16,16,1>UD read(3, 0, 2, 0) mlen 1 rlen 1 { align1 };
+add (1) g2.8<1>UD g2.8<1,1,1>UD 32UD {align1};
+send (16) 0 g25.0<1>UD g2<16,16,1>UD read(3, 0, 2, 0) mlen 1 rlen 1 { align1 };
+add (1) g2.8<1>UD g2.8<1,1,1>UD 32UD {align1};
+send (16) 0 g26.0<1>UD g2<16,16,1>UD read(3, 0, 2, 0) mlen 1 rlen 1 { align1 };
+direct_idct:
+mov (1) g1.8<1>UD 0x00F000FUD {align1};
+mov.sat (16) g3.0<2>UB g3.0<16,16,1>W {align1};
+mov.sat (16) g4.0<2>UB g4.0<16,16,1>W {align1};
+mov.sat (16) g5.0<2>UB g5.0<16,16,1>W {align1};
+mov.sat (16) g6.0<2>UB g6.0<16,16,1>W {align1};
+mov.sat (16) g7.0<2>UB g7.0<16,16,1>W {align1};
+mov.sat (16) g8.0<2>UB g8.0<16,16,1>W {align1};
+mov.sat (16) g9.0<2>UB g9.0<16,16,1>W {align1};
+mov.sat (16) g10.0<2>UB g10.0<16,16,1>W {align1};
+mov.sat (16) g11.0<2>UB g11.0<16,16,1>W {align1};
+mov.sat (16) g12.0<2>UB g12.0<16,16,1>W {align1};
+mov.sat (16) g13.0<2>UB g13.0<16,16,1>W {align1};
+mov.sat (16) g14.0<2>UB g14.0<16,16,1>W {align1};
+mov.sat (16) g15.0<2>UB g15.0<16,16,1>W {align1};
+mov.sat (16) g16.0<2>UB g16.0<16,16,1>W {align1};
+mov.sat (16) g17.0<2>UB g17.0<16,16,1>W {align1};
+mov.sat (16) g18.0<2>UB g18.0<16,16,1>W {align1};
+
+and.nz (1) null g1.30<1,1,1>UB 0x1UW{align1};
+(f0) jmpi field_dct;
+//Frame IDCT
+mov (16) m1.0<1>UB g3.0<16,16,2>UB {align1};
+mov (16) m1.16<1>UB g4.0<16,16,2>UB {align1};
+mov (16) m2.0<1>UB g5.0<16,16,2>UB {align1};
+mov (16) m2.16<1>UB g6.0<16,16,2>UB {align1};
+mov (16) m3.0<1>UB g7.0<16,16,2>UB {align1};
+mov (16) m3.16<1>UB g8.0<16,16,2>UB {align1};
+mov (16) m4.0<1>UB g9.0<16,16,2>UB {align1};
+mov (16) m4.16<1>UB g10.0<16,16,2>UB {align1};
+mov (16) m5.0<1>UB g11.0<16,16,2>UB {align1};
+mov (16) m5.16<1>UB g12.0<16,16,2>UB {align1};
+mov (16) m6.0<1>UB g13.0<16,16,2>UB {align1};
+mov (16) m6.16<1>UB g14.0<16,16,2>UB {align1};
+mov (16) m7.0<1>UB g15.0<16,16,2>UB {align1};
+mov (16) m7.16<1>UB g16.0<16,16,2>UB {align1};
+mov (16) m8.0<1>UB g17.0<16,16,2>UB {align1};
+mov (16) m8.16<1>UB g18.0<16,16,2>UB {align1};
+jmpi write_back;
+
+field_dct:
+//Field IDCT
+mov (16) m1.0<1>UB g3.0<16,16,2>UB {align1};
+mov (16) m1.16<1>UB g11.0<16,16,2>UB {align1};
+mov (16) m2.0<1>UB g4.0<16,16,2>UB {align1};
+mov (16) m2.16<1>UB g12.0<16,16,2>UB {align1};
+mov (16) m3.0<1>UB g5.0<16,16,2>UB {align1};
+mov (16) m3.16<1>UB g13.0<16,16,2>UB {align1};
+mov (16) m4.0<1>UB g6.0<16,16,2>UB {align1};
+mov (16) m4.16<1>UB g14.0<16,16,2>UB {align1};
+mov (16) m5.0<1>UB g7.0<16,16,2>UB {align1};
+mov (16) m5.16<1>UB g15.0<16,16,2>UB {align1};
+mov (16) m6.0<1>UB g8.0<16,16,2>UB {align1};
+mov (16) m6.16<1>UB g16.0<16,16,2>UB {align1};
+mov (16) m7.0<1>UB g9.0<16,16,2>UB {align1};
+mov (16) m7.16<1>UB g17.0<16,16,2>UB {align1};
+mov (16) m8.0<1>UB g10.0<16,16,2>UB {align1};
+mov (16) m8.16<1>UB g18.0<16,16,2>UB {align1};
+
+write_back:
+send (16) 0 acc0<1>UW g1<8,8,1>UW write(0,0,2,0) mlen 9 rlen 0 {align1};
+//U
+mov (1) g1.8<1>UD 0x0070007UD  { align1 };
+shr (2) g1.0<1>UD g115.0<2,2,1>UD 1D {align1};
+mov.sat (16) g19.0<2>UB g19.0<16,16,1>W {align1};
+mov.sat (16) g20.0<2>UB g20.0<16,16,1>W {align1};
+mov.sat (16) g21.0<2>UB g21.0<16,16,1>W {align1};
+mov.sat (16) g22.0<2>UB g22.0<16,16,1>W {align1};
+mov (16) m1.0<1>UB g19.0<16,16,2>UB {align1};
+mov (16) m1.16<1>UB g20.0<16,16,2>UB {align1};
+mov (16) m2.0<1>UB g21.0<16,16,2>UB {align1};
+mov (16) m2.16<1>UB g22.0<16,16,2>UB {align1};
+send (16) 0 acc0<1>UW g1<8,8,1>UW write(1, 0, 2, 0) mlen 3 rlen 0 { align1 };
+//V
+mov.sat (16) g23.0<2>UB g23.0<16,16,1>W {align1};
+mov.sat (16) g24.0<2>UB g24.0<16,16,1>W {align1};
+mov.sat (16) g25.0<2>UB g25.0<16,16,1>W {align1};
+mov.sat (16) g26.0<2>UB g26.0<16,16,1>W {align1};
+mov (16) m1.0<1>UB g23.0<16,16,2>UB {align1};
+mov (16) m1.16<1>UB g24.0<16,16,2>UB {align1};
+mov (16) m2.0<1>UB g25.0<16,16,2>UB {align1};
+mov (16) m2.16<1>UB g26.0<16,16,2>UB {align1};
+send (16) 0 acc0<1>UW g1<8,8,1>UW write(2, 0, 2, 0) mlen 3 rlen 0 { align1 };
+
+send (16) 0 acc0<1>UW g0<8,8,1>UW
+        thread_spawner(0, 0, 0) mlen 1 rlen 0 { align1 EOT};
diff --git a/src/xvmc/shader/mc/ipicture.g4b b/src/xvmc/shader/mc/ipicture.g4b
new file mode 100644
index 0000000..10be527
--- /dev/null
+++ b/src/xvmc/shader/mc/ipicture.g4b
@@ -0,0 +1,125 @@
+   { 0x00600001, 0x2e600021, 0x008d0020, 0x00000000 },
+   { 0x02000005, 0x20000c3c, 0x00210040, 0x00000001 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x00000030 },
+   { 0x00000040, 0x20480c21, 0x00210e68, 0x00000000 },
+   { 0x00800031, 0x20601c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x20801c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x20a01c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x20c01c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x20e01c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x21001c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x21201c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x21401c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x21601c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x21801c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x21a01c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x21c01c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x21e01c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x22001c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x22201c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x22401c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x22601c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x22801c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x22a01c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x22c01c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x22e01c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x23001c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x23201c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x23401c21, 0x00b10040, 0x04110203 },
+   { 0x00000001, 0x20280061, 0x00000000, 0x000f000f },
+   { 0x80800001, 0x406001b1, 0x00b10060, 0x00000000 },
+   { 0x80800001, 0x408001b1, 0x00b10080, 0x00000000 },
+   { 0x80800001, 0x40a001b1, 0x00b100a0, 0x00000000 },
+   { 0x80800001, 0x40c001b1, 0x00b100c0, 0x00000000 },
+   { 0x80800001, 0x40e001b1, 0x00b100e0, 0x00000000 },
+   { 0x80800001, 0x410001b1, 0x00b10100, 0x00000000 },
+   { 0x80800001, 0x412001b1, 0x00b10120, 0x00000000 },
+   { 0x80800001, 0x414001b1, 0x00b10140, 0x00000000 },
+   { 0x80800001, 0x416001b1, 0x00b10160, 0x00000000 },
+   { 0x80800001, 0x418001b1, 0x00b10180, 0x00000000 },
+   { 0x80800001, 0x41a001b1, 0x00b101a0, 0x00000000 },
+   { 0x80800001, 0x41c001b1, 0x00b101c0, 0x00000000 },
+   { 0x80800001, 0x41e001b1, 0x00b101e0, 0x00000000 },
+   { 0x80800001, 0x420001b1, 0x00b10200, 0x00000000 },
+   { 0x80800001, 0x422001b1, 0x00b10220, 0x00000000 },
+   { 0x80800001, 0x424001b1, 0x00b10240, 0x00000000 },
+   { 0x02000005, 0x20002e3c, 0x0021003e, 0x00010001 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x00000011 },
+   { 0x00800001, 0x20200232, 0x00b20060, 0x00000000 },
+   { 0x00800001, 0x20300232, 0x00b20080, 0x00000000 },
+   { 0x00800001, 0x20400232, 0x00b200a0, 0x00000000 },
+   { 0x00800001, 0x20500232, 0x00b200c0, 0x00000000 },
+   { 0x00800001, 0x20600232, 0x00b200e0, 0x00000000 },
+   { 0x00800001, 0x20700232, 0x00b20100, 0x00000000 },
+   { 0x00800001, 0x20800232, 0x00b20120, 0x00000000 },
+   { 0x00800001, 0x20900232, 0x00b20140, 0x00000000 },
+   { 0x00800001, 0x20a00232, 0x00b20160, 0x00000000 },
+   { 0x00800001, 0x20b00232, 0x00b20180, 0x00000000 },
+   { 0x00800001, 0x20c00232, 0x00b201a0, 0x00000000 },
+   { 0x00800001, 0x20d00232, 0x00b201c0, 0x00000000 },
+   { 0x00800001, 0x20e00232, 0x00b201e0, 0x00000000 },
+   { 0x00800001, 0x20f00232, 0x00b20200, 0x00000000 },
+   { 0x00800001, 0x21000232, 0x00b20220, 0x00000000 },
+   { 0x00800001, 0x21100232, 0x00b20240, 0x00000000 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000010 },
+   { 0x00800001, 0x20200232, 0x00b20060, 0x00000000 },
+   { 0x00800001, 0x20300232, 0x00b20160, 0x00000000 },
+   { 0x00800001, 0x20400232, 0x00b20080, 0x00000000 },
+   { 0x00800001, 0x20500232, 0x00b20180, 0x00000000 },
+   { 0x00800001, 0x20600232, 0x00b200a0, 0x00000000 },
+   { 0x00800001, 0x20700232, 0x00b201a0, 0x00000000 },
+   { 0x00800001, 0x20800232, 0x00b200c0, 0x00000000 },
+   { 0x00800001, 0x20900232, 0x00b201c0, 0x00000000 },
+   { 0x00800001, 0x20a00232, 0x00b200e0, 0x00000000 },
+   { 0x00800001, 0x20b00232, 0x00b201e0, 0x00000000 },
+   { 0x00800001, 0x20c00232, 0x00b20100, 0x00000000 },
+   { 0x00800001, 0x20d00232, 0x00b20200, 0x00000000 },
+   { 0x00800001, 0x20e00232, 0x00b20120, 0x00000000 },
+   { 0x00800001, 0x20f00232, 0x00b20220, 0x00000000 },
+   { 0x00800001, 0x21000232, 0x00b20140, 0x00000000 },
+   { 0x00800001, 0x21100232, 0x00b20240, 0x00000000 },
+   { 0x00800031, 0x24001d28, 0x008d0020, 0x05902000 },
+   { 0x00000001, 0x20280061, 0x00000000, 0x00070007 },
+   { 0x00200008, 0x20201c21, 0x00450e60, 0x00000001 },
+   { 0x80800001, 0x426001b1, 0x00b10260, 0x00000000 },
+   { 0x80800001, 0x428001b1, 0x00b10280, 0x00000000 },
+   { 0x80800001, 0x42a001b1, 0x00b102a0, 0x00000000 },
+   { 0x80800001, 0x42c001b1, 0x00b102c0, 0x00000000 },
+   { 0x00800001, 0x20200232, 0x00b20260, 0x00000000 },
+   { 0x00800001, 0x20300232, 0x00b20280, 0x00000000 },
+   { 0x00800001, 0x20400232, 0x00b202a0, 0x00000000 },
+   { 0x00800001, 0x20500232, 0x00b202c0, 0x00000000 },
+   { 0x00800031, 0x24001d28, 0x008d0020, 0x05302001 },
+   { 0x80800001, 0x42e001b1, 0x00b102e0, 0x00000000 },
+   { 0x80800001, 0x430001b1, 0x00b10300, 0x00000000 },
+   { 0x80800001, 0x432001b1, 0x00b10320, 0x00000000 },
+   { 0x80800001, 0x434001b1, 0x00b10340, 0x00000000 },
+   { 0x00800001, 0x20200232, 0x00b202e0, 0x00000000 },
+   { 0x00800001, 0x20300232, 0x00b20300, 0x00000000 },
+   { 0x00800001, 0x20400232, 0x00b20320, 0x00000000 },
+   { 0x00800001, 0x20500232, 0x00b20340, 0x00000000 },
+   { 0x00800031, 0x24001d28, 0x008d0020, 0x05302002 },
+   { 0x00800031, 0x24001d28, 0x008d0000, 0x87100000 },
diff --git a/src/xvmc/shader/mc/motion_field_uv.g4i b/src/xvmc/shader/mc/motion_field_uv.g4i
new file mode 100644
index 0000000..4640197
--- /dev/null
+++ b/src/xvmc/shader/mc/motion_field_uv.g4i
@@ -0,0 +1,46 @@
+/*
+ * Copyright © 2008 Intel Corporation
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice (including the next
+ * paragraph) shall be included in all copies or substantial portions of the
+ * Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
+ * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+ * SOFTWARE.
+ *
+ * Author:
+ *    Zou Nan hai <nanhai.zou at intel.com>
+ *    Zhang Hua jun <huajun.zhang at intel.com>
+ *    Xing Dong sheng <dongsheng.xing at intel.com>
+ *
+ */
+       and.z (1) null mv1<1,1,1>UW 2UW {align1};       
+       (f0) jmpi L1;
+       and.z (1) null mv2<1,1,1>UW 2UW {align1};       
+       (f0) jmpi L2;
+       include(`read_field_x1y1_uv.g4i')
+       jmpi L5;
+L2:
+       include(`read_field_x1y0_uv.g4i')
+       jmpi L5;
+L1:
+       and.z (1) null mv2<1,1,1>UW 2UW {align1};       
+       (f0) jmpi L4;
+       include(`read_field_x0y1_uv.g4i')
+       jmpi L5;
+L4:
+       include(`read_field_x0y0_uv.g4i')
+L5:
+
diff --git a/src/xvmc/shader/mc/motion_field_uv_igd.g4i b/src/xvmc/shader/mc/motion_field_uv_igd.g4i
new file mode 100644
index 0000000..d4eba84
--- /dev/null
+++ b/src/xvmc/shader/mc/motion_field_uv_igd.g4i
@@ -0,0 +1,46 @@
+/*
+ * Copyright © 2008 Intel Corporation
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice (including the next
+ * paragraph) shall be included in all copies or substantial portions of the
+ * Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
+ * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+ * SOFTWARE.
+ *
+ * Author:
+ *    Zou Nan hai <nanhai.zou at intel.com>
+ *    Zhang Hua jun <huajun.zhang at intel.com>
+ *    Xing Dong sheng <dongsheng.xing at intel.com>
+ *
+ */
+       and.z (1) null mv1<1,1,1>UW 2UW {align1};       
+       (f0) jmpi L1;
+       and.z (1) null mv2<1,1,1>UW 2UW {align1};       
+       (f0) jmpi L2;
+       include(`read_field_x1y1_uv_igd.g4i')
+       jmpi L5;
+L2:
+       include(`read_field_x1y0_uv_igd.g4i')
+       jmpi L5;
+L1:
+       and.z (1) null mv2<1,1,1>UW 2UW {align1};       
+       (f0) jmpi L4;
+       include(`read_field_x0y1_uv_igd.g4i')
+       jmpi L5;
+L4:
+       include(`read_field_x0y0_uv_igd.g4i')
+L5:
+
diff --git a/src/xvmc/shader/mc/motion_field_y.g4i b/src/xvmc/shader/mc/motion_field_y.g4i
new file mode 100644
index 0000000..06fa6cb
--- /dev/null
+++ b/src/xvmc/shader/mc/motion_field_y.g4i
@@ -0,0 +1,45 @@
+/*
+ * Copyright © 2008 Intel Corporation
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice (including the next
+ * paragraph) shall be included in all copies or substantial portions of the
+ * Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
+ * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+ * SOFTWARE.
+ *
+ * Author:
+ *    Zou Nan hai <nanhai.zou at intel.com>
+ *    Zhang Hua jun <huajun.zhang at intel.com>
+ *    Xing Dong sheng <dongsheng.xing at intel.com>
+ *
+ */
+	and.z (1) null mv1<1,1,1>UW 1UW {align1};	
+	(f0) jmpi L1;
+	and.z (1) null mv2<1,1,1>UW 1UW {align1};	
+	(f0) jmpi L2;
+	include(`read_field_x1y1_y.g4i')
+	jmpi L5;
+L2:
+	include(`read_field_x1y0_y.g4i')
+	jmpi L5;
+L1:
+	and.z (1) null mv2<1,1,1>UW 1UW {align1};	
+	(f0) jmpi L4;
+	include(`read_field_x0y1_y.g4i')
+	jmpi L5;
+L4:
+	include(`read_field_x0y0_y.g4i')
+L5:
diff --git a/src/xvmc/shader/mc/motion_field_y_igd.g4i b/src/xvmc/shader/mc/motion_field_y_igd.g4i
new file mode 100644
index 0000000..bd55cb2
--- /dev/null
+++ b/src/xvmc/shader/mc/motion_field_y_igd.g4i
@@ -0,0 +1,45 @@
+/*
+ * Copyright © 2008 Intel Corporation
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice (including the next
+ * paragraph) shall be included in all copies or substantial portions of the
+ * Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
+ * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+ * SOFTWARE.
+ *
+ * Author:
+ *    Zou Nan hai <nanhai.zou at intel.com>
+ *    Zhang Hua jun <huajun.zhang at intel.com>
+ *    Xing Dong sheng <dongsheng.xing at intel.com>
+ *
+ */
+	and.z (1) null mv1<1,1,1>UW 1UW {align1};	
+	(f0) jmpi L1;
+	and.z (1) null mv2<1,1,1>UW 1UW {align1};	
+	(f0) jmpi L2;
+	include(`read_field_x1y1_y_igd.g4i')
+	jmpi L5;
+L2:
+	include(`read_field_x1y0_y_igd.g4i')
+	jmpi L5;
+L1:
+	and.z (1) null mv2<1,1,1>UW 1UW {align1};	
+	(f0) jmpi L4;
+	include(`read_field_x0y1_y_igd.g4i')
+	jmpi L5;
+L4:
+	include(`read_field_x0y0_y_igd.g4i')
+L5:
diff --git a/src/xvmc/shader/mc/motion_frame_uv.g4i b/src/xvmc/shader/mc/motion_frame_uv.g4i
new file mode 100644
index 0000000..c027c90
--- /dev/null
+++ b/src/xvmc/shader/mc/motion_frame_uv.g4i
@@ -0,0 +1,29 @@
+/*
+ * Copyright © 2008 Intel Corporation
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice (including the next
+ * paragraph) shall be included in all copies or substantial portions of the
+ * Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
+ * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+ * SOFTWARE.
+ *
+ * Author:
+ *    Zou Nan hai <nanhai.zou at intel.com>
+ *    Zhang Hua jun <huajun.zhang at intel.com>
+ *    Xing Dong sheng <dongsheng.xing at intel.com>
+ */  
+
+	include(`read_frame_x0y0_uv.g4i')
diff --git a/src/xvmc/shader/mc/motion_frame_uv_igd.g4i b/src/xvmc/shader/mc/motion_frame_uv_igd.g4i
new file mode 100644
index 0000000..2e359fd
--- /dev/null
+++ b/src/xvmc/shader/mc/motion_frame_uv_igd.g4i
@@ -0,0 +1,29 @@
+/*
+ * Copyright © 2008 Intel Corporation
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice (including the next
+ * paragraph) shall be included in all copies or substantial portions of the
+ * Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
+ * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+ * SOFTWARE.
+ *
+ * Author:
+ *    Zou Nan hai <nanhai.zou at intel.com>
+ *    Zhang Hua jun <huajun.zhang at intel.com>
+ *    Xing Dong sheng <dongsheng.xing at intel.com>
+ */  
+
+	include(`read_frame_x0y0_uv_igd.g4i')
diff --git a/src/xvmc/shader/mc/motion_frame_y.g4i b/src/xvmc/shader/mc/motion_frame_y.g4i
new file mode 100644
index 0000000..f0b212f
--- /dev/null
+++ b/src/xvmc/shader/mc/motion_frame_y.g4i
@@ -0,0 +1,57 @@
+/*
+ * Copyright © 2008 Intel Corporation
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice (including the next
+ * paragraph) shall be included in all copies or substantial portions of the
+ * Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
+ * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+ * SOFTWARE.
+ *
+ * Author:
+ *    Zou Nan hai <nanhai.zou at intel.com>
+ */  
+ 
+/* if (motion_vect.x & 1) {
+ *   if (motion_vect.y & 1)
+ *	 half_pixel in x and y;
+ *   else
+ *	 half_pixel in x;
+ * } else {
+ *	if (motion_vect.y & 1) 
+ *	  half_pixel y;
+ *	else
+ *	  full_pixel_read;	
+ * }	 
+ */
+
+	and.z (1) null mv1<1,1,1>UW 1UD {align1};	
+	(f0) jmpi LL1;
+	and.z (1) null mv2<1,1,1>UW 1UD {align1};	
+	(f0) jmpi LL2;
+	include(`read_frame_x1y1_y.g4i') 
+	jmpi LL5;
+LL2: 
+	include(`read_frame_x1y0_y.g4i') 
+	jmpi LL5;
+LL1: 
+	and.z (1) null mv2<1,1,1>UW 1UD {align1};	
+	(f0) jmpi LL4;
+	include(`read_frame_x0y1_y.g4i')
+	jmpi LL5;
+LL4:
+	include(`read_frame_x0y0_y.g4i')
+LL5:
+
diff --git a/src/xvmc/shader/mc/motion_frame_y_igd.g4i b/src/xvmc/shader/mc/motion_frame_y_igd.g4i
new file mode 100644
index 0000000..911a8f4
--- /dev/null
+++ b/src/xvmc/shader/mc/motion_frame_y_igd.g4i
@@ -0,0 +1,57 @@
+/*
+ * Copyright © 2008 Intel Corporation
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice (including the next
+ * paragraph) shall be included in all copies or substantial portions of the
+ * Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
+ * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+ * SOFTWARE.
+ *
+ * Author:
+ *    Zou Nan hai <nanhai.zou at intel.com>
+ */  
+ 
+/* if (motion_vect.x & 1) {
+ *   if (motion_vect.y & 1)
+ *	 half_pixel in x and y;
+ *   else
+ *	 half_pixel in x;
+ * } else {
+ *	if (motion_vect.y & 1) 
+ *	  half_pixel y;
+ *	else
+ *	  full_pixel_read;	
+ * }	 
+ */
+
+	and.z (1) null mv1<1,1,1>UW 1UD {align1};	
+	(f0) jmpi LL1;
+	and.z (1) null mv2<1,1,1>UW 1UD {align1};	
+	(f0) jmpi LL2;
+	include(`read_frame_x1y1_y_igd.g4i') 
+	jmpi LL5;
+LL2: 
+	include(`read_frame_x1y0_y_igd.g4i') 
+	jmpi LL5;
+LL1: 
+	and.z (1) null mv2<1,1,1>UW 1UD {align1};	
+	(f0) jmpi LL4;
+	include(`read_frame_x0y1_y_igd.g4i')
+	jmpi LL5;
+LL4:
+	include(`read_frame_x0y0_y_igd.g4i')
+LL5:
+
diff --git a/src/xvmc/shader/mc/null.g4a b/src/xvmc/shader/mc/null.g4a
new file mode 100644
index 0000000..6569842
--- /dev/null
+++ b/src/xvmc/shader/mc/null.g4a
@@ -0,0 +1,57 @@
+/*
+ * Copyright © 2008 Intel Corporation
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice (including the next
+ * paragraph) shall be included in all copies or substantial portions of the
+ * Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
+ * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+ * SOFTWARE.
+ *
+ * Author:
+ *    Zou Nan hai <nanhai.zou at intel.com>
+ *
+ */
+mov (8) g3.0<1>UD g1.0<8,8,1>UD {align1};
+
+mov (16) g8.0<1>UD 0xFFFFFFFFUD {align1 compr};
+
+mov(1) g1.8<1>UD 0x0070007UD  { align1 };
+mov (16) m1<1>UD g8.0<8,8,1>UD {align1 compr};
+
+/*Write 8x8 block to (x,y)*/
+send (16) 0 acc0<1>UW g1<8,8,1>UW write(0, 0, 2, 0) mlen 3 rlen 0 { align1 };
+
+add (1) g1.0<1>UD g3.0<1,1,1>UD 0x8UD {align1};
+/*Write 8x8 block to (x+8,y)*/
+send (16) 0 acc0<1>UW g1<8,8,1>UW write(0, 0, 2, 0) mlen 3 rlen 0 { align1 };
+
+add (1) g1.4<1>UD g3.4<1,1,1>UD 0x8UD {align1};
+/*Write 8x8 block to (x+8,y+8)*/
+send (16) 0 acc0<1>UW g1<8,8,1>UW write(0, 0, 2, 0) mlen 3 rlen 0 { align1 };
+
+mov (1) g1.0<1>UD g3.0<1,1,1>UD {align1};
+/*Write 8x8 block to (x,y+8)*/
+send (16) 0 acc0<1>UW g1<8,8,1>UW write(0, 0, 2, 0) mlen 3 rlen 0 { align1 };
+
+/*Fill U buffer & V buffer with 0x7F*/
+mov (16) m1<1>UD 0x7f7f7f7fUD {align1 compr};
+shr (1) g1.0<1>UD g3.0<1,1,1>UD 1D {align1};
+shr (1) g1.4<1>UD g3.4<1,1,1>UD 1D {align1};
+send (16) 0 acc0<1>UW g1<8,8,1>UW write(2, 0, 2, 0) mlen 3 rlen 0 { align1 };
+send (16) 0 acc0<1>UW g1<8,8,1>UW write(1, 0, 2, 0) mlen 3 rlen 0 { align1 };
+
+send (16) 0 acc0<1>UW g0<8,8,1>UW 
+	thread_spawner(0, 0, 0) mlen 1 rlen 0 { align1 EOT};
diff --git a/src/xvmc/shader/mc/null.g4b b/src/xvmc/shader/mc/null.g4b
new file mode 100644
index 0000000..960fda9
--- /dev/null
+++ b/src/xvmc/shader/mc/null.g4b
@@ -0,0 +1,17 @@
+   { 0x00600001, 0x20600021, 0x008d0020, 0x00000000 },
+   { 0x00802001, 0x21000061, 0x00000000, 0xffffffff },
+   { 0x00000001, 0x20280061, 0x00000000, 0x00070007 },
+   { 0x00802001, 0x20200022, 0x008d0100, 0x00000000 },
+   { 0x00800031, 0x24001d28, 0x008d0020, 0x05302000 },
+   { 0x00000040, 0x20200c21, 0x00210060, 0x00000008 },
+   { 0x00800031, 0x24001d28, 0x008d0020, 0x05302000 },
+   { 0x00000040, 0x20240c21, 0x00210064, 0x00000008 },
+   { 0x00800031, 0x24001d28, 0x008d0020, 0x05302000 },
+   { 0x00000001, 0x20200021, 0x00210060, 0x00000000 },
+   { 0x00800031, 0x24001d28, 0x008d0020, 0x05302000 },
+   { 0x00802001, 0x20200062, 0x00000000, 0x7f7f7f7f },
+   { 0x00000008, 0x20201c21, 0x00210060, 0x00000001 },
+   { 0x00000008, 0x20241c21, 0x00210064, 0x00000001 },
+   { 0x00800031, 0x24001d28, 0x008d0020, 0x05302002 },
+   { 0x00800031, 0x24001d28, 0x008d0020, 0x05302001 },
+   { 0x00800031, 0x24001d28, 0x008d0000, 0x87100000 },
diff --git a/src/xvmc/shader/mc/read_field_x0y0_uv.g4i b/src/xvmc/shader/mc/read_field_x0y0_uv.g4i
new file mode 100644
index 0000000..673b8cd
--- /dev/null
+++ b/src/xvmc/shader/mc/read_field_x0y0_uv.g4i
@@ -0,0 +1,74 @@
+/*
+ * Copyright © 2008 Intel Corporation
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice (including the next
+ * paragraph) shall be included in all copies or substantial portions of the
+ * Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
+ * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+ * SOFTWARE.
+ *
+ * Author:
+ *    Zou Nan hai <nanhai.zou at intel.com>
+ *    Zhang Hua jun <huajun.zhang at intel.com>
+ *    Xing Dong sheng <dongsheng.xing at intel.com>
+ *
+ */
+mov (1) g115.8<1>UD 0x7000FUD {align1}; // 8*16/32=4
+send (16) 0 g86.0<1>UW g115<16,8,1>UW read(surface_u, 2, 0, 2) mlen 1 rlen 4 {align1};//U
+send (16) 0 g91.0<1>UW g115<16,8,1>UW read(surface_v, 2, 0, 2) mlen 1 rlen 4 {align1};//V
+and (1) g2.24<1>UD g115.0<1,1,1>UD 3UD {align1};
+mul (1) g2.24<1>UD g2.24<1,1,1>UD 9UD {align1};
+jmpi g2.24<1,1,1>D;
+
+mov (16) g78.0<1>UW g86.0<16,8,1>UB {align1};
+mov (16) g79.0<1>UW g87.0<16,8,1>UB {align1};
+mov (16) g80.0<1>UW g88.0<16,8,1>UB {align1};
+mov (16) g81.0<1>UW g89.0<16,8,1>UB {align1};
+mov (16) g82.0<1>UW g91.0<16,8,1>UB {align1};
+mov (16) g83.0<1>UW g92.0<16,8,1>UB {align1};
+mov (16) g84.0<1>UW g93.0<16,8,1>UB {align1};
+mov (16) g85.0<1>UW g94.0<16,8,1>UB {align1};
+jmpi out;
+
+mov (16) g78.0<1>UW g86.1<16,8,1>UB {align1};
+mov (16) g79.0<1>UW g87.1<16,8,1>UB {align1};
+mov (16) g80.0<1>UW g88.1<16,8,1>UB {align1};
+mov (16) g81.0<1>UW g89.1<16,8,1>UB {align1};
+mov (16) g82.0<1>UW g91.1<16,8,1>UB {align1};
+mov (16) g83.0<1>UW g92.1<16,8,1>UB {align1};
+mov (16) g84.0<1>UW g93.1<16,8,1>UB {align1};
+mov (16) g85.0<1>UW g94.1<16,8,1>UB {align1};
+jmpi out;
+
+mov (16) g78.0<1>UW g86.2<16,8,1>UB {align1};
+mov (16) g79.0<1>UW g87.2<16,8,1>UB {align1};
+mov (16) g80.0<1>UW g88.2<16,8,1>UB {align1};
+mov (16) g81.0<1>UW g89.2<16,8,1>UB {align1};
+mov (16) g82.0<1>UW g91.2<16,8,1>UB {align1};
+mov (16) g83.0<1>UW g92.2<16,8,1>UB {align1};
+mov (16) g84.0<1>UW g93.2<16,8,1>UB {align1};
+mov (16) g85.0<1>UW g94.2<16,8,1>UB {align1};
+jmpi out;
+
+mov (16) g78.0<1>UW g86.3<16,8,1>UB {align1};
+mov (16) g79.0<1>UW g87.3<16,8,1>UB {align1};
+mov (16) g80.0<1>UW g88.3<16,8,1>UB {align1};
+mov (16) g81.0<1>UW g89.3<16,8,1>UB {align1};
+mov (16) g82.0<1>UW g91.3<16,8,1>UB {align1};
+mov (16) g83.0<1>UW g92.3<16,8,1>UB {align1};
+mov (16) g84.0<1>UW g93.3<16,8,1>UB {align1};
+mov (16) g85.0<1>UW g94.3<16,8,1>UB {align1};
+out:
diff --git a/src/xvmc/shader/mc/read_field_x0y0_uv_igd.g4i b/src/xvmc/shader/mc/read_field_x0y0_uv_igd.g4i
new file mode 100644
index 0000000..c03a83d
--- /dev/null
+++ b/src/xvmc/shader/mc/read_field_x0y0_uv_igd.g4i
@@ -0,0 +1,40 @@
+/*
+ * Copyright © 2008 Intel Corporation
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice (including the next
+ * paragraph) shall be included in all copies or substantial portions of the
+ * Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
+ * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+ * SOFTWARE.
+ *
+ * Author:
+ *    Zou Nan hai <nanhai.zou at intel.com>
+ *    Zhang Hua jun <huajun.zhang at intel.com>
+ *    Xing Dong sheng <dongsheng.xing at intel.com>
+ *
+ */
+mov (1) g115.8<1>UD 0x7000FUD {align1}; // 8*16/32=4
+send (16) 0 g86.0<1>UW g115<16,8,1>UW read(surface_u, 2, 0, 2) mlen 1 rlen 4 {align1};//U
+send (16) 0 g91.0<1>UW g115<16,8,1>UW read(surface_v, 2, 0, 2) mlen 1 rlen 4 {align1};//V
+
+mov (16) g78.0<1>UW g86.0<16,8,1>UB {align1};
+mov (16) g79.0<1>UW g87.0<16,8,1>UB {align1};
+mov (16) g80.0<1>UW g88.0<16,8,1>UB {align1};
+mov (16) g81.0<1>UW g89.0<16,8,1>UB {align1};
+mov (16) g82.0<1>UW g91.0<16,8,1>UB {align1};
+mov (16) g83.0<1>UW g92.0<16,8,1>UB {align1};
+mov (16) g84.0<1>UW g93.0<16,8,1>UB {align1};
+mov (16) g85.0<1>UW g94.0<16,8,1>UB {align1};
diff --git a/src/xvmc/shader/mc/read_field_x0y0_y.g4i b/src/xvmc/shader/mc/read_field_x0y0_y.g4i
new file mode 100644
index 0000000..8f4e339
--- /dev/null
+++ b/src/xvmc/shader/mc/read_field_x0y0_y.g4i
@@ -0,0 +1,83 @@
+/*
+ * Copyright © 2008 Intel Corporation
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice (including the next
+ * paragraph) shall be included in all copies or substantial portions of the
+ * Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
+ * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+ * SOFTWARE.
+ *
+ * Author:
+ *    Zou Nan hai <nanhai.zou at intel.com>
+ *    Zhang Hua jun <huajun.zhang at intel.com>
+ *    Xing Dong sheng <dongsheng.xing at intel.com>
+ *
+ */
+mov (1) g115.8<1>UD 0x01FUD {align1};
+send (16) 0 g78.0<1>UW g115<8,8,1>UW read(surface,2,0,2) mlen 1 rlen 1 {align1};
+add (1) g115.4<1>UD g115.4<1,1,1>UD 2UD {align1};
+send (16) 0 g80.0<1>UW g115<8,8,1>UW read(surface,2,0,2) mlen 1 rlen 1 {align1};
+add (1) g115.4<1>UD g115.4<1,1,1>UD 2UD {align1};
+send (16) 0 g82.0<1>UW g115<8,8,1>UW read(surface,2,0,2) mlen 1 rlen 1 {align1};
+add (1) g115.4<1>UD g115.4<1,1,1>UD 2UD {align1};
+send (16) 0 g84.0<1>UW g115<8,8,1>UW read(surface,2,0,2) mlen 1 rlen 1 {align1};
+add (1) g115.4<1>UD g115.4<1,1,1>UD 2UD {align1};
+mov (1) g115.8<1>UD 0x07001FUD {align1};
+send (16) 0 g86.0<1>UW g115<8,8,1>UW read(surface,2,0,2) mlen 1 rlen 8 {align1};
+and (1) g2.24<1>UD g115.0<1,1,1>UD 3UD {align1};
+mul (1) g2.24<1>UD g2.24<1,1,1>UD 9UD {align1};
+jmpi g2.24<1,1,1>D;
+
+mov (16) g96.0<1>UW g78.0<16,16,1>UB {align1};
+mov (16) g97.0<1>UW g80.0<16,16,1>UB {align1};
+mov (16) g98.0<1>UW g82.0<16,16,1>UB {align1};
+mov (16) g99.0<1>UW g84.0<16,16,1>UB {align1};
+mov (16) g100.0<1>UW g86.0<16,16,1>UB {align1};
+mov (16) g101.0<1>UW g88.0<16,16,1>UB {align1};
+mov (16) g102.0<1>UW g90.0<16,16,1>UB {align1};
+mov (16) g103.0<1>UW g92.0<16,16,1>UB {align1};
+jmpi out;
+
+mov (16) g96.0<1>UW g78.1<16,16,1>UB {align1};
+mov (16) g97.0<1>UW g80.1<16,16,1>UB {align1};
+mov (16) g98.0<1>UW g82.1<16,16,1>UB {align1};
+mov (16) g99.0<1>UW g84.1<16,16,1>UB {align1};
+mov (16) g100.0<1>UW g86.1<16,16,1>UB {align1};
+mov (16) g101.0<1>UW g88.1<16,16,1>UB {align1};
+mov (16) g102.0<1>UW g90.1<16,16,1>UB {align1};
+mov (16) g103.0<1>UW g92.1<16,16,1>UB {align1};
+jmpi out;
+
+mov (16) g96.0<1>UW g78.2<16,16,1>UB {align1};
+mov (16) g97.0<1>UW g80.2<16,16,1>UB {align1};
+mov (16) g98.0<1>UW g82.2<16,16,1>UB {align1};
+mov (16) g99.0<1>UW g84.2<16,16,1>UB {align1};
+mov (16) g100.0<1>UW g86.2<16,16,1>UB {align1};
+mov (16) g101.0<1>UW g88.2<16,16,1>UB {align1};
+mov (16) g102.0<1>UW g90.2<16,16,1>UB {align1};
+mov (16) g103.0<1>UW g92.2<16,16,1>UB {align1};
+jmpi out;
+
+mov (16) g96.0<1>UW g78.3<16,16,1>UB {align1};
+mov (16) g97.0<1>UW g80.3<16,16,1>UB {align1};
+mov (16) g98.0<1>UW g82.3<16,16,1>UB {align1};
+mov (16) g99.0<1>UW g84.3<16,16,1>UB {align1};
+mov (16) g100.0<1>UW g86.3<16,16,1>UB {align1};
+mov (16) g101.0<1>UW g88.3<16,16,1>UB {align1};
+mov (16) g102.0<1>UW g90.3<16,16,1>UB {align1};
+mov (16) g103.0<1>UW g92.3<16,16,1>UB {align1};
+
+out:
diff --git a/src/xvmc/shader/mc/read_field_x0y0_y_igd.g4i b/src/xvmc/shader/mc/read_field_x0y0_y_igd.g4i
new file mode 100644
index 0000000..294cfb4
--- /dev/null
+++ b/src/xvmc/shader/mc/read_field_x0y0_y_igd.g4i
@@ -0,0 +1,48 @@
+/*
+ * Copyright © 2008 Intel Corporation
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice (including the next
+ * paragraph) shall be included in all copies or substantial portions of the
+ * Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
+ * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+ * SOFTWARE.
+ *
+ * Author:
+ *    Zou Nan hai <nanhai.zou at intel.com>
+ *    Zhang Hua jun <huajun.zhang at intel.com>
+ *    Xing Dong sheng <dongsheng.xing at intel.com>
+ *
+ */
+mov (1) g115.8<1>UD 0x01FUD {align1};
+send (16) 0 g78.0<1>UW g115<8,8,1>UW read(surface,2,0,2) mlen 1 rlen 1 {align1};
+add (1) g115.4<1>UD g115.4<1,1,1>UD 2UD {align1};
+send (16) 0 g80.0<1>UW g115<8,8,1>UW read(surface,2,0,2) mlen 1 rlen 1 {align1};
+add (1) g115.4<1>UD g115.4<1,1,1>UD 2UD {align1};
+send (16) 0 g82.0<1>UW g115<8,8,1>UW read(surface,2,0,2) mlen 1 rlen 1 {align1};
+add (1) g115.4<1>UD g115.4<1,1,1>UD 2UD {align1};
+send (16) 0 g84.0<1>UW g115<8,8,1>UW read(surface,2,0,2) mlen 1 rlen 1 {align1};
+add (1) g115.4<1>UD g115.4<1,1,1>UD 2UD {align1};
+mov (1) g115.8<1>UD 0x07001FUD {align1};
+send (16) 0 g86.0<1>UW g115<8,8,1>UW read(surface,2,0,2) mlen 1 rlen 8 {align1};
+
+mov (16) g96.0<1>UW g78.0<16,16,1>UB {align1};
+mov (16) g97.0<1>UW g80.0<16,16,1>UB {align1};
+mov (16) g98.0<1>UW g82.0<16,16,1>UB {align1};
+mov (16) g99.0<1>UW g84.0<16,16,1>UB {align1};
+mov (16) g100.0<1>UW g86.0<16,16,1>UB {align1};
+mov (16) g101.0<1>UW g88.0<16,16,1>UB {align1};
+mov (16) g102.0<1>UW g90.0<16,16,1>UB {align1};
+mov (16) g103.0<1>UW g92.0<16,16,1>UB {align1};
diff --git a/src/xvmc/shader/mc/read_field_x0y1_uv.g4i b/src/xvmc/shader/mc/read_field_x0y1_uv.g4i
new file mode 100644
index 0000000..1be4fd2
--- /dev/null
+++ b/src/xvmc/shader/mc/read_field_x0y1_uv.g4i
@@ -0,0 +1,78 @@
+/*
+ * Copyright © 2008 Intel Corporation
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice (including the next
+ * paragraph) shall be included in all copies or substantial portions of the
+ * Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
+ * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+ * SOFTWARE.
+ *
+ * Author:
+ *    Zou Nan hai <nanhai.zou at intel.com>
+ *    Zhang Hua jun <huajun.zhang at intel.com>
+ *    Xing Dong sheng <dongsheng.xing at intel.com>
+ *
+ */
+mov (1) g115.8<1>UD 0x07000FUD {align1}; // 8*16/32=4
+send (16) 0 g86.0<1>UW g115<16,8,1>UW read(surface_u, 2, 0, 2) mlen 1 rlen 4 {align1};//U
+send (16) 0 g91.0<1>UW g115<16,8,1>UW read(surface_v, 2, 0, 2) mlen 1 rlen 4 {align1};//V
+mov (1) g115.8<1>UD 0xFUD {align1};
+send (16) 0 g90.0<1>UW g115<16,8,1>UW read(surface_u, 2, 0, 2) mlen 1 rlen 1 {align1};
+send (16) 0 g95.0<1>UW g115<16,8,1>UW read(surface_v, 2, 0, 2) mlen 1 rlen 1 {align1};
+and (1) g2.24<1>UD g115.0<1,1,1>UD 3UD {align1};
+mul (1) g2.24<1>UD g2.24<1,1,1>UD 9UD {align1};
+jmpi g2.24<1,1,1>D;
+
+avg.sat (16) g78.0<1>UW g86.0<16,8,1>UB g87.0<16,8,1>UB {align1};
+avg.sat (16) g79.0<1>UW g87.0<16,8,1>UB g88.0<16,8,1>UB {align1};
+avg.sat (16) g80.0<1>UW g88.0<16,8,1>UB g89.0<16,8,1>UB {align1};
+avg.sat (16) g81.0<1>UW g89.0<16,8,1>UB g90.0<16,8,1>UB {align1};
+avg.sat (16) g82.0<1>UW g91.0<16,8,1>UB g92.0<16,8,1>UB {align1};
+avg.sat (16) g83.0<1>UW g92.0<16,8,1>UB g93.0<16,8,1>UB {align1};
+avg.sat (16) g84.0<1>UW g93.0<16,8,1>UB g94.0<16,8,1>UB {align1};
+avg.sat (16) g85.0<1>UW g94.0<16,8,1>UB g95.0<16,8,1>UB {align1};
+jmpi out;
+
+avg.sat (16) g78.0<1>UW g86.1<16,8,1>UB g87.1<16,8,1>UB {align1};
+avg.sat (16) g79.0<1>UW g87.1<16,8,1>UB g88.1<16,8,1>UB {align1};
+avg.sat (16) g80.0<1>UW g88.1<16,8,1>UB g89.1<16,8,1>UB {align1};
+avg.sat (16) g81.0<1>UW g89.1<16,8,1>UB g90.1<16,8,1>UB {align1};
+avg.sat (16) g82.0<1>UW g91.1<16,8,1>UB g92.1<16,8,1>UB {align1};
+avg.sat (16) g83.0<1>UW g92.1<16,8,1>UB g93.1<16,8,1>UB {align1};
+avg.sat (16) g84.0<1>UW g93.1<16,8,1>UB g94.1<16,8,1>UB {align1};
+avg.sat (16) g85.0<1>UW g94.1<16,8,1>UB g95.1<16,8,1>UB {align1};
+jmpi out;
+
+avg.sat (16) g78.0<1>UW g86.2<16,8,1>UB g87.2<16,8,1>UB {align1};
+avg.sat (16) g79.0<1>UW g87.2<16,8,1>UB g88.2<16,8,1>UB {align1};
+avg.sat (16) g80.0<1>UW g88.2<16,8,1>UB g89.2<16,8,1>UB {align1};
+avg.sat (16) g81.0<1>UW g89.2<16,8,1>UB g90.2<16,8,1>UB {align1};
+avg.sat (16) g82.0<1>UW g91.2<16,8,1>UB g92.2<16,8,1>UB {align1};
+avg.sat (16) g83.0<1>UW g92.2<16,8,1>UB g93.2<16,8,1>UB {align1};
+avg.sat (16) g84.0<1>UW g93.2<16,8,1>UB g94.2<16,8,1>UB {align1};
+avg.sat (16) g85.0<1>UW g94.2<16,8,1>UB g95.2<16,8,1>UB {align1};
+jmpi out;
+
+avg.sat (16) g78.0<1>UW g86.3<16,8,1>UB g86.3<16,8,1>UB {align1};
+avg.sat (16) g79.0<1>UW g87.3<16,8,1>UB g87.3<16,8,1>UB {align1};
+avg.sat (16) g80.0<1>UW g88.3<16,8,1>UB g88.3<16,8,1>UB {align1};
+avg.sat (16) g81.0<1>UW g89.3<16,8,1>UB g89.3<16,8,1>UB {align1};
+avg.sat (16) g82.0<1>UW g91.3<16,8,1>UB g91.3<16,8,1>UB {align1};
+avg.sat (16) g83.0<1>UW g92.3<16,8,1>UB g92.3<16,8,1>UB {align1};
+avg.sat (16) g84.0<1>UW g93.3<16,8,1>UB g93.3<16,8,1>UB {align1};
+avg.sat (16) g85.0<1>UW g94.3<16,8,1>UB g94.3<16,8,1>UB {align1};
+
+out:
diff --git a/src/xvmc/shader/mc/read_field_x0y1_uv_igd.g4i b/src/xvmc/shader/mc/read_field_x0y1_uv_igd.g4i
new file mode 100644
index 0000000..9e8efa0
--- /dev/null
+++ b/src/xvmc/shader/mc/read_field_x0y1_uv_igd.g4i
@@ -0,0 +1,43 @@
+/*
+ * Copyright © 2008 Intel Corporation
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice (including the next
+ * paragraph) shall be included in all copies or substantial portions of the
+ * Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
+ * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+ * SOFTWARE.
+ *
+ * Author:
+ *    Zou Nan hai <nanhai.zou at intel.com>
+ *    Zhang Hua jun <huajun.zhang at intel.com>
+ *    Xing Dong sheng <dongsheng.xing at intel.com>
+ *
+ */
+mov (1) g115.8<1>UD 0x07000FUD {align1}; // 8*16/32=4
+send (16) 0 g86.0<1>UW g115<16,8,1>UW read(surface_u, 2, 0, 2) mlen 1 rlen 4 {align1};//U
+send (16) 0 g91.0<1>UW g115<16,8,1>UW read(surface_v, 2, 0, 2) mlen 1 rlen 4 {align1};//V
+mov (1) g115.8<1>UD 0xFUD {align1};
+send (16) 0 g90.0<1>UW g115<16,8,1>UW read(surface_u, 2, 0, 2) mlen 1 rlen 1 {align1};
+send (16) 0 g95.0<1>UW g115<16,8,1>UW read(surface_v, 2, 0, 2) mlen 1 rlen 1 {align1};
+
+avg.sat (16) g78.0<1>UW g86.0<16,8,1>UB g87.0<16,8,1>UB {align1};
+avg.sat (16) g79.0<1>UW g87.0<16,8,1>UB g88.0<16,8,1>UB {align1};
+avg.sat (16) g80.0<1>UW g88.0<16,8,1>UB g89.0<16,8,1>UB {align1};
+avg.sat (16) g81.0<1>UW g89.0<16,8,1>UB g90.0<16,8,1>UB {align1};
+avg.sat (16) g82.0<1>UW g91.0<16,8,1>UB g92.0<16,8,1>UB {align1};
+avg.sat (16) g83.0<1>UW g92.0<16,8,1>UB g93.0<16,8,1>UB {align1};
+avg.sat (16) g84.0<1>UW g93.0<16,8,1>UB g94.0<16,8,1>UB {align1};
+avg.sat (16) g85.0<1>UW g94.0<16,8,1>UB g95.0<16,8,1>UB {align1};
diff --git a/src/xvmc/shader/mc/read_field_x0y1_y.g4i b/src/xvmc/shader/mc/read_field_x0y1_y.g4i
new file mode 100644
index 0000000..a15a221
--- /dev/null
+++ b/src/xvmc/shader/mc/read_field_x0y1_y.g4i
@@ -0,0 +1,86 @@
+/*
+ * Copyright © 2008 Intel Corporation
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice (including the next
+ * paragraph) shall be included in all copies or substantial portions of the
+ * Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
+ * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+ * SOFTWARE.
+ *
+ * Author:
+ *    Zou Nan hai <nanhai.zou at intel.com>
+ *    Zhang Hua jun <huajun.zhang at intel.com>
+ *    Xing Dong sheng <dongsheng.xing at intel.com>
+ *
+ */
+mov (1) g115.8<1>UD 0x01FUD {align1};
+send (16) 0 g78.0<1>UW g115<8,8,1>UW read(surface,2,0,2) mlen 1 rlen 1 {align1};
+add (1) g115.4<1>UD g115.4<1,1,1>UD 2UD {align1};
+send (16) 0 g80.0<1>UW g115<8,8,1>UW read(surface,2,0,2) mlen 1 rlen 1 {align1};
+add (1) g115.4<1>UD g115.4<1,1,1>UD 2UD {align1};
+send (16) 0 g82.0<1>UW g115<8,8,1>UW read(surface,2,0,2) mlen 1 rlen 1 {align1};
+add (1) g115.4<1>UD g115.4<1,1,1>UD 2UD {align1};
+send (16) 0 g84.0<1>UW g115<8,8,1>UW read(surface,2,0,2) mlen 1 rlen 1 {align1};
+add (1) g115.4<1>UD g115.4<1,1,1>UD 2UD {align1};
+mov (1) g115.8<1>UD 0x07001FUD {align1};
+send (16) 0 g86.0<1>UW g115<8,8,1>UW read(surface,2,0,2) mlen 1 rlen 8 {align1};
+add (1) g115.4<1>UD g115.4<1,1,1>UD 8UD {align1};
+mov (1) g115.8<1>UD 0x1FUD {align1};
+send (16) 0 g94.0<1>UW g115<8,8,1>UW read(surface,2,0,2) mlen 1 rlen 1 {align1};
+and (1) g2.24<1>UD g115.0<1,1,1>UD 3UD {align1};
+mul (1) g2.24<1>UD g2.24<1,1,1>UD 9UD {align1};
+jmpi g2.24<1,1,1>D;
+
+avg.sat (16) g96.0<1>UW g78.0<16,16,1>UB g80.0<16,16,1>UB {align1};
+avg.sat (16) g97.0<1>UW g80.0<16,16,1>UB g82.0<16,16,1>UB {align1};
+avg.sat (16) g98.0<1>UW g82.0<16,16,1>UB g84.0<16,16,1>UB {align1};
+avg.sat (16) g99.0<1>UW g84.0<16,16,1>UB g86.0<16,16,1>UB {align1};
+avg.sat (16) g100.0<1>UW g86.0<16,16,1>UB g88.0<16,16,1>UB {align1};
+avg.sat (16) g101.0<1>UW g88.0<16,16,1>UB g90.0<16,16,1>UB {align1};
+avg.sat (16) g102.0<1>UW g90.0<16,16,1>UB g92.0<16,16,1>UB {align1};
+avg.sat (16) g103.0<1>UW g92.0<16,16,1>UB g94.0<16,16,1>UB {align1};
+jmpi out;
+
+avg.sat (16) g96.0<1>UW g78.1<16,16,1>UB g80.1<16,16,1>UB {align1};
+avg.sat (16) g97.0<1>UW g80.1<16,16,1>UB g82.1<16,16,1>UB {align1};
+avg.sat (16) g98.0<1>UW g82.1<16,16,1>UB g84.1<16,16,1>UB {align1};
+avg.sat (16) g99.0<1>UW g84.1<16,16,1>UB g86.1<16,16,1>UB {align1};
+avg.sat (16) g100.0<1>UW g86.1<16,16,1>UB g88.1<16,16,1>UB {align1};
+avg.sat (16) g101.0<1>UW g88.1<16,16,1>UB g90.1<16,16,1>UB {align1};
+avg.sat (16) g102.0<1>UW g90.1<16,16,1>UB g92.1<16,16,1>UB {align1};
+avg.sat (16) g103.0<1>UW g92.1<16,16,1>UB g94.1<16,16,1>UB {align1};
+jmpi out;
+
+avg.sat (16) g96.0<1>UW g78.2<16,16,1>UB g80.2<16,16,1>UB {align1};
+avg.sat (16) g97.0<1>UW g80.2<16,16,1>UB g82.2<16,16,1>UB {align1};
+avg.sat (16) g98.0<1>UW g82.2<16,16,1>UB g84.2<16,16,1>UB {align1};
+avg.sat (16) g99.0<1>UW g84.2<16,16,1>UB g86.2<16,16,1>UB {align1};
+avg.sat (16) g100.0<1>UW g86.2<16,16,1>UB g88.2<16,16,1>UB {align1};
+avg.sat (16) g101.0<1>UW g88.2<16,16,1>UB g90.2<16,16,1>UB {align1};
+avg.sat (16) g102.0<1>UW g90.2<16,16,1>UB g92.2<16,16,1>UB {align1};
+avg.sat (16) g103.0<1>UW g92.2<16,16,1>UB g94.2<16,16,1>UB {align1};
+jmpi out;
+
+avg.sat (16) g96.0<1>UW g78.3<16,16,1>UB g80.3<16,16,1>UB {align1};
+avg.sat (16) g97.0<1>UW g80.3<16,16,1>UB g82.3<16,16,1>UB {align1};
+avg.sat (16) g98.0<1>UW g82.3<16,16,1>UB g84.3<16,16,1>UB {align1};
+avg.sat (16) g99.0<1>UW g84.3<16,16,1>UB g86.3<16,16,1>UB {align1};
+avg.sat (16) g100.0<1>UW g86.3<16,16,1>UB g88.3<16,16,1>UB {align1};
+avg.sat (16) g101.0<1>UW g88.3<16,16,1>UB g90.3<16,16,1>UB {align1};
+avg.sat (16) g102.0<1>UW g90.3<16,16,1>UB g92.3<16,16,1>UB {align1};
+avg.sat (16) g103.0<1>UW g92.3<16,16,1>UB g94.3<16,16,1>UB {align1};
+
+out:
diff --git a/src/xvmc/shader/mc/read_field_x0y1_y_igd.g4i b/src/xvmc/shader/mc/read_field_x0y1_y_igd.g4i
new file mode 100644
index 0000000..e48211b
--- /dev/null
+++ b/src/xvmc/shader/mc/read_field_x0y1_y_igd.g4i
@@ -0,0 +1,51 @@
+/*
+ * Copyright © 2008 Intel Corporation
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice (including the next
+ * paragraph) shall be included in all copies or substantial portions of the
+ * Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
+ * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+ * SOFTWARE.
+ *
+ * Author:
+ *    Zou Nan hai <nanhai.zou at intel.com>
+ *    Zhang Hua jun <huajun.zhang at intel.com>
+ *    Xing Dong sheng <dongsheng.xing at intel.com>
+ *
+ */
+mov (1) g115.8<1>UD 0x01FUD {align1};
+send (16) 0 g78.0<1>UW g115<8,8,1>UW read(surface,2,0,2) mlen 1 rlen 1 {align1};
+add (1) g115.4<1>UD g115.4<1,1,1>UD 2UD {align1};
+send (16) 0 g80.0<1>UW g115<8,8,1>UW read(surface,2,0,2) mlen 1 rlen 1 {align1};
+add (1) g115.4<1>UD g115.4<1,1,1>UD 2UD {align1};
+send (16) 0 g82.0<1>UW g115<8,8,1>UW read(surface,2,0,2) mlen 1 rlen 1 {align1};
+add (1) g115.4<1>UD g115.4<1,1,1>UD 2UD {align1};
+send (16) 0 g84.0<1>UW g115<8,8,1>UW read(surface,2,0,2) mlen 1 rlen 1 {align1};
+add (1) g115.4<1>UD g115.4<1,1,1>UD 2UD {align1};
+mov (1) g115.8<1>UD 0x07001FUD {align1};
+send (16) 0 g86.0<1>UW g115<8,8,1>UW read(surface,2,0,2) mlen 1 rlen 8 {align1};
+add (1) g115.4<1>UD g115.4<1,1,1>UD 8UD {align1};
+mov (1) g115.8<1>UD 0x1FUD {align1};
+send (16) 0 g94.0<1>UW g115<8,8,1>UW read(surface,2,0,2) mlen 1 rlen 1 {align1};
+
+avg.sat (16) g96.0<1>UW g78.0<16,16,1>UB g80.0<16,16,1>UB {align1};
+avg.sat (16) g97.0<1>UW g80.0<16,16,1>UB g82.0<16,16,1>UB {align1};
+avg.sat (16) g98.0<1>UW g82.0<16,16,1>UB g84.0<16,16,1>UB {align1};
+avg.sat (16) g99.0<1>UW g84.0<16,16,1>UB g86.0<16,16,1>UB {align1};
+avg.sat (16) g100.0<1>UW g86.0<16,16,1>UB g88.0<16,16,1>UB {align1};
+avg.sat (16) g101.0<1>UW g88.0<16,16,1>UB g90.0<16,16,1>UB {align1};
+avg.sat (16) g102.0<1>UW g90.0<16,16,1>UB g92.0<16,16,1>UB {align1};
+avg.sat (16) g103.0<1>UW g92.0<16,16,1>UB g94.0<16,16,1>UB {align1};
diff --git a/src/xvmc/shader/mc/read_field_x1y0_uv.g4i b/src/xvmc/shader/mc/read_field_x1y0_uv.g4i
new file mode 100644
index 0000000..e89a2dc
--- /dev/null
+++ b/src/xvmc/shader/mc/read_field_x1y0_uv.g4i
@@ -0,0 +1,75 @@
+/*
+ * Copyright © 2008 Intel Corporation
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice (including the next
+ * paragraph) shall be included in all copies or substantial portions of the
+ * Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
+ * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+ * SOFTWARE.
+ *
+ * Author:
+ *    Zou Nan hai <nanhai.zou at intel.com>
+ *    Zhang Hua jun <huajun.zhang at intel.com>
+ *    Xing Dong sheng <dongsheng.xing at intel.com>
+ *
+ */
+mov (1) g115.8<1>UD 0x07000FUD {align1}; // 8*16/32=4
+send (16) 0 g86.0<1>UW g115<16,8,1>UW read(surface_u, 2, 0, 2) mlen 1 rlen 4 {align1};//U
+send (16) 0 g91.0<1>UW g115<16,8,1>UW read(surface_v, 2, 0, 2) mlen 1 rlen 4 {align1};//V
+and (1) g2.24<1>UD g115.0<1,1,1>UD 3UD {align1};
+mul (1) g2.24<1>UD g2.24<1,1,1>UD 9UD {align1};
+jmpi g2.24<1,1,1>D;
+
+avg.sat (16) g78.0<1>UW g86.0<16,8,1>UB g86.1<16,8,1>UB {align1};
+avg.sat (16) g79.0<1>UW g87.0<16,8,1>UB g87.1<16,8,1>UB {align1};
+avg.sat (16) g80.0<1>UW g88.0<16,8,1>UB g88.1<16,8,1>UB {align1};
+avg.sat (16) g81.0<1>UW g89.0<16,8,1>UB g89.1<16,8,1>UB {align1};
+avg.sat (16) g82.0<1>UW g91.0<16,8,1>UB g91.1<16,8,1>UB {align1};
+avg.sat (16) g83.0<1>UW g92.0<16,8,1>UB g92.1<16,8,1>UB {align1};
+avg.sat (16) g84.0<1>UW g93.0<16,8,1>UB g93.1<16,8,1>UB {align1};
+avg.sat (16) g85.0<1>UW g94.0<16,8,1>UB g94.1<16,8,1>UB {align1};
+jmpi out;
+
+avg.sat (16) g78.0<1>UW g86.1<16,8,1>UB g86.2<16,8,1>UB {align1};
+avg.sat (16) g79.0<1>UW g87.1<16,8,1>UB g87.2<16,8,1>UB {align1};
+avg.sat (16) g80.0<1>UW g88.1<16,8,1>UB g88.2<16,8,1>UB {align1};
+avg.sat (16) g81.0<1>UW g89.1<16,8,1>UB g89.2<16,8,1>UB {align1};
+avg.sat (16) g82.0<1>UW g91.1<16,8,1>UB g91.2<16,8,1>UB {align1};
+avg.sat (16) g83.0<1>UW g92.1<16,8,1>UB g92.2<16,8,1>UB {align1};
+avg.sat (16) g84.0<1>UW g93.1<16,8,1>UB g93.2<16,8,1>UB {align1};
+avg.sat (16) g85.0<1>UW g94.1<16,8,1>UB g94.2<16,8,1>UB {align1};
+jmpi out;
+
+avg.sat (16) g78.0<1>UW g86.2<16,8,1>UB g86.3<16,8,1>UB {align1};
+avg.sat (16) g79.0<1>UW g87.2<16,8,1>UB g87.3<16,8,1>UB {align1};
+avg.sat (16) g80.0<1>UW g88.2<16,8,1>UB g88.3<16,8,1>UB {align1};
+avg.sat (16) g81.0<1>UW g89.2<16,8,1>UB g89.3<16,8,1>UB {align1};
+avg.sat (16) g82.0<1>UW g91.2<16,8,1>UB g91.3<16,8,1>UB {align1};
+avg.sat (16) g83.0<1>UW g92.2<16,8,1>UB g92.3<16,8,1>UB {align1};
+avg.sat (16) g84.0<1>UW g93.2<16,8,1>UB g93.3<16,8,1>UB {align1};
+avg.sat (16) g85.0<1>UW g94.2<16,8,1>UB g94.3<16,8,1>UB {align1};
+jmpi out;
+
+avg.sat (16) g78.0<1>UW g86.3<16,8,1>UB g86.4<16,8,1>UB {align1};
+avg.sat (16) g79.0<1>UW g87.3<16,8,1>UB g87.4<16,8,1>UB {align1};
+avg.sat (16) g80.0<1>UW g88.3<16,8,1>UB g88.4<16,8,1>UB {align1};
+avg.sat (16) g81.0<1>UW g89.3<16,8,1>UB g89.4<16,8,1>UB {align1};
+avg.sat (16) g82.0<1>UW g91.3<16,8,1>UB g91.4<16,8,1>UB {align1};
+avg.sat (16) g83.0<1>UW g92.3<16,8,1>UB g92.4<16,8,1>UB {align1};
+avg.sat (16) g84.0<1>UW g93.3<16,8,1>UB g93.4<16,8,1>UB {align1};
+avg.sat (16) g85.0<1>UW g94.3<16,8,1>UB g94.4<16,8,1>UB {align1};
+
+out:
diff --git a/src/xvmc/shader/mc/read_field_x1y0_uv_igd.g4i b/src/xvmc/shader/mc/read_field_x1y0_uv_igd.g4i
new file mode 100644
index 0000000..fc56acc
--- /dev/null
+++ b/src/xvmc/shader/mc/read_field_x1y0_uv_igd.g4i
@@ -0,0 +1,40 @@
+/*
+ * Copyright © 2008 Intel Corporation
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice (including the next
+ * paragraph) shall be included in all copies or substantial portions of the
+ * Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
+ * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+ * SOFTWARE.
+ *
+ * Author:
+ *    Zou Nan hai <nanhai.zou at intel.com>
+ *    Zhang Hua jun <huajun.zhang at intel.com>
+ *    Xing Dong sheng <dongsheng.xing at intel.com>
+ *
+ */
+mov (1) g115.8<1>UD 0x07000FUD {align1}; // 8*16/32=4
+send (16) 0 g86.0<1>UW g115<16,8,1>UW read(surface_u, 2, 0, 2) mlen 1 rlen 4 {align1};//U
+send (16) 0 g91.0<1>UW g115<16,8,1>UW read(surface_v, 2, 0, 2) mlen 1 rlen 4 {align1};//V
+
+avg.sat (16) g78.0<1>UW g86.0<16,8,1>UB g86.1<16,8,1>UB {align1};
+avg.sat (16) g79.0<1>UW g87.0<16,8,1>UB g87.1<16,8,1>UB {align1};
+avg.sat (16) g80.0<1>UW g88.0<16,8,1>UB g88.1<16,8,1>UB {align1};
+avg.sat (16) g81.0<1>UW g89.0<16,8,1>UB g89.1<16,8,1>UB {align1};
+avg.sat (16) g82.0<1>UW g91.0<16,8,1>UB g91.1<16,8,1>UB {align1};
+avg.sat (16) g83.0<1>UW g92.0<16,8,1>UB g92.1<16,8,1>UB {align1};
+avg.sat (16) g84.0<1>UW g93.0<16,8,1>UB g93.1<16,8,1>UB {align1};
+avg.sat (16) g85.0<1>UW g94.0<16,8,1>UB g94.1<16,8,1>UB {align1};
diff --git a/src/xvmc/shader/mc/read_field_x1y0_y.g4i b/src/xvmc/shader/mc/read_field_x1y0_y.g4i
new file mode 100644
index 0000000..a517aaa
--- /dev/null
+++ b/src/xvmc/shader/mc/read_field_x1y0_y.g4i
@@ -0,0 +1,83 @@
+/*
+ * Copyright © 2008 Intel Corporation
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice (including the next
+ * paragraph) shall be included in all copies or substantial portions of the
+ * Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
+ * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+ * SOFTWARE.
+ *
+ * Author:
+ *    Zou Nan hai <nanhai.zou at intel.com>
+ *    Zhang Hua jun <huajun.zhang at intel.com>
+ *    Xing Dong sheng <dongsheng.xing at intel.com>
+ *
+ */
+mov (1) g115.8<1>UD 0x01FUD {align1};
+send (16) 0 g78.0<1>UW g115<8,8,1>UW read(surface,2,0,2) mlen 1 rlen 1 {align1};
+add (1) g115.4<1>UD g115.4<1,1,1>UD 2UD {align1};
+send (16) 0 g80.0<1>UW g115<8,8,1>UW read(surface,2,0,2) mlen 1 rlen 1 {align1};
+add (1) g115.4<1>UD g115.4<1,1,1>UD 2UD {align1};
+send (16) 0 g82.0<1>UW g115<8,8,1>UW read(surface,2,0,2) mlen 1 rlen 1 {align1};
+add (1) g115.4<1>UD g115.4<1,1,1>UD 2UD {align1};
+send (16) 0 g84.0<1>UW g115<8,8,1>UW read(surface,2,0,2) mlen 1 rlen 1 {align1};
+add (1) g115.4<1>UD g115.4<1,1,1>UD 2UD {align1};
+mov (1) g115.8<1>UD 0x07001FUD {align1};
+send (16) 0 g86.0<1>UW g115<8,8,1>UW read(surface,2,0,2) mlen 1 rlen 8 {align1};
+and (1) g2.24<1>UD g115.0<1,1,1>UD 3UD {align1};
+mul (1) g2.24<1>UD g2.24<1,1,1>UD 9UD {align1};
+jmpi g2.24<1,1,1>D;
+
+avg.sat (16) g96.0<1>UW g78.0<16,16,1>UB g78.1<16,16,1>UB {align1};
+avg.sat (16) g97.0<1>UW g80.0<16,16,1>UB g80.1<16,16,1>UB {align1};
+avg.sat (16) g98.0<1>UW g82.0<16,16,1>UB g82.1<16,16,1>UB {align1};
+avg.sat (16) g99.0<1>UW g84.0<16,16,1>UB g84.1<16,16,1>UB {align1};
+avg.sat (16) g100.0<1>UW g86.0<16,16,1>UB g86.1<16,16,1>UB {align1};
+avg.sat (16) g101.0<1>UW g88.0<16,16,1>UB g88.1<16,16,1>UB {align1};
+avg.sat (16) g102.0<1>UW g90.0<16,16,1>UB g90.1<16,16,1>UB {align1};
+avg.sat (16) g103.0<1>UW g92.0<16,16,1>UB g92.1<16,16,1>UB {align1};
+jmpi out;
+
+avg.sat (16) g96.0<1>UW g78.1<16,16,1>UB g78.2<16,16,1>UB {align1};
+avg.sat (16) g97.0<1>UW g80.1<16,16,1>UB g80.2<16,16,1>UB {align1};
+avg.sat (16) g98.0<1>UW g82.1<16,16,1>UB g82.2<16,16,1>UB {align1};
+avg.sat (16) g99.0<1>UW g84.1<16,16,1>UB g84.2<16,16,1>UB {align1};
+avg.sat (16) g100.0<1>UW g86.1<16,16,1>UB g86.2<16,16,1>UB {align1};
+avg.sat (16) g101.0<1>UW g88.1<16,16,1>UB g88.2<16,16,1>UB {align1};
+avg.sat (16) g102.0<1>UW g90.1<16,16,1>UB g90.2<16,16,1>UB {align1};
+avg.sat (16) g103.0<1>UW g92.1<16,16,1>UB g92.2<16,16,1>UB {align1};
+jmpi out;
+
+avg.sat (16) g96.0<1>UW g78.2<16,16,1>UB g78.3<16,16,1>UB {align1};
+avg.sat (16) g97.0<1>UW g80.2<16,16,1>UB g80.3<16,16,1>UB {align1};
+avg.sat (16) g98.0<1>UW g82.2<16,16,1>UB g82.3<16,16,1>UB {align1};
+avg.sat (16) g99.0<1>UW g84.2<16,16,1>UB g84.3<16,16,1>UB {align1};
+avg.sat (16) g100.0<1>UW g86.2<16,16,1>UB g86.3<16,16,1>UB {align1};
+avg.sat (16) g101.0<1>UW g88.2<16,16,1>UB g88.3<16,16,1>UB {align1};
+avg.sat (16) g102.0<1>UW g90.2<16,16,1>UB g90.3<16,16,1>UB {align1};
+avg.sat (16) g103.0<1>UW g92.2<16,16,1>UB g92.3<16,16,1>UB {align1};
+jmpi out;
+
+avg.sat (16) g96.0<1>UW g78.3<16,16,1>UB g78.4<16,16,1>UB {align1};
+avg.sat (16) g97.0<1>UW g80.3<16,16,1>UB g80.4<16,16,1>UB {align1};
+avg.sat (16) g98.0<1>UW g82.3<16,16,1>UB g82.4<16,16,1>UB {align1};
+avg.sat (16) g99.0<1>UW g84.3<16,16,1>UB g84.4<16,16,1>UB {align1};
+avg.sat (16) g100.0<1>UW g86.3<16,16,1>UB g86.4<16,16,1>UB {align1};
+avg.sat (16) g101.0<1>UW g88.3<16,16,1>UB g88.4<16,16,1>UB {align1};
+avg.sat (16) g102.0<1>UW g90.3<16,16,1>UB g90.4<16,16,1>UB {align1};
+avg.sat (16) g103.0<1>UW g92.3<16,16,1>UB g92.4<16,16,1>UB {align1};
+
+out:
diff --git a/src/xvmc/shader/mc/read_field_x1y0_y_igd.g4i b/src/xvmc/shader/mc/read_field_x1y0_y_igd.g4i
new file mode 100644
index 0000000..14394ca
--- /dev/null
+++ b/src/xvmc/shader/mc/read_field_x1y0_y_igd.g4i
@@ -0,0 +1,48 @@
+/*
+ * Copyright © 2008 Intel Corporation
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice (including the next
+ * paragraph) shall be included in all copies or substantial portions of the
+ * Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
+ * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+ * SOFTWARE.
+ *
+ * Author:
+ *    Zou Nan hai <nanhai.zou at intel.com>
+ *    Zhang Hua jun <huajun.zhang at intel.com>
+ *    Xing Dong sheng <dongsheng.xing at intel.com>
+ *
+ */
+mov (1) g115.8<1>UD 0x01FUD {align1};
+send (16) 0 g78.0<1>UW g115<8,8,1>UW read(surface,2,0,2) mlen 1 rlen 1 {align1};
+add (1) g115.4<1>UD g115.4<1,1,1>UD 2UD {align1};
+send (16) 0 g80.0<1>UW g115<8,8,1>UW read(surface,2,0,2) mlen 1 rlen 1 {align1};
+add (1) g115.4<1>UD g115.4<1,1,1>UD 2UD {align1};
+send (16) 0 g82.0<1>UW g115<8,8,1>UW read(surface,2,0,2) mlen 1 rlen 1 {align1};
+add (1) g115.4<1>UD g115.4<1,1,1>UD 2UD {align1};
+send (16) 0 g84.0<1>UW g115<8,8,1>UW read(surface,2,0,2) mlen 1 rlen 1 {align1};
+add (1) g115.4<1>UD g115.4<1,1,1>UD 2UD {align1};
+mov (1) g115.8<1>UD 0x07001FUD {align1};
+send (16) 0 g86.0<1>UW g115<8,8,1>UW read(surface,2,0,2) mlen 1 rlen 8 {align1};
+
+avg.sat (16) g96.0<1>UW g78.0<16,16,1>UB g78.1<16,16,1>UB {align1};
+avg.sat (16) g97.0<1>UW g80.0<16,16,1>UB g80.1<16,16,1>UB {align1};
+avg.sat (16) g98.0<1>UW g82.0<16,16,1>UB g82.1<16,16,1>UB {align1};
+avg.sat (16) g99.0<1>UW g84.0<16,16,1>UB g84.1<16,16,1>UB {align1};
+avg.sat (16) g100.0<1>UW g86.0<16,16,1>UB g86.1<16,16,1>UB {align1};
+avg.sat (16) g101.0<1>UW g88.0<16,16,1>UB g88.1<16,16,1>UB {align1};
+avg.sat (16) g102.0<1>UW g90.0<16,16,1>UB g90.1<16,16,1>UB {align1};
+avg.sat (16) g103.0<1>UW g92.0<16,16,1>UB g92.1<16,16,1>UB {align1};
diff --git a/src/xvmc/shader/mc/read_field_x1y1_uv.g4i b/src/xvmc/shader/mc/read_field_x1y1_uv.g4i
new file mode 100644
index 0000000..162de9a
--- /dev/null
+++ b/src/xvmc/shader/mc/read_field_x1y1_uv.g4i
@@ -0,0 +1,172 @@
+/*
+ * Copyright © 2008 Intel Corporation
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice (including the next
+ * paragraph) shall be included in all copies or substantial portions of the
+ * Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
+ * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+ * SOFTWARE.
+ *
+ * Author:
+ *    Zou Nan hai <nanhai.zou at intel.com>
+ *    Zhang Hua jun <huajun.zhang at intel.com>
+ *    Xing Dong sheng <dongsheng.xing at intel.com>
+ *
+ */
+mov (1) g115.8<1>UD 0x07000FUD {align1};
+send (16) 0 g86.0<1>UW g115<16,8,1>UW read(surface_u, 2, 0, 2) mlen 1 rlen 4 {align1};//U
+send (16) 0 g91.0<1>UW g115<16,8,1>UW read(surface_v, 2, 0, 2) mlen 1 rlen 4 {align1};//V
+and (1) g2.24<1>UD g115.0<1,1,1>UD 3UD {align1};
+mul (1) g2.24<1>UD g2.24<1,1,1>UD 25UD {align1};
+mov (1) g115.8<1>UD 0x01000FUD {align1};
+add (1) g115.4<1>UD g115.4<1,1,1>UD 8UD {align1};
+send (16) 0 g90.0<1>UW g115<16,8,1>UW read(surface_u, 2, 0, 2) mlen 1 rlen 1 {align1};
+send (16) 0 g95.0<1>UW g115<16,8,1>UW read(surface_v, 2, 0, 2) mlen 1 rlen 1 {align1};
+jmpi g2.24<1,1,1>D;
+//U
+add (16) g78.0<1>UW g86.0<16,8,1>UB g87.0<16,8,1>UB {align1};
+add (16) g79.0<1>UW g87.0<16,8,1>UB g88.0<16,8,1>UB {align1};
+add (16) g80.0<1>UW g88.0<16,8,1>UB g89.0<16,8,1>UB {align1};
+add (16) g81.0<1>UW g89.0<16,8,1>UB g90.0<16,8,1>UB {align1};
+
+add (16) g78.0<1>UW g78.0<16,8,1>UW g86.1<16,8,1>UB {align1};
+add (16) g79.0<1>UW g79.0<16,8,1>UW g87.1<16,8,1>UB {align1};
+add (16) g80.0<1>UW g80.0<16,8,1>UW g88.1<16,8,1>UB {align1};
+add (16) g81.0<1>UW g81.0<16,8,1>UW g89.1<16,8,1>UB {align1};
+
+add (16) g78.0<1>UW g78.0<16,8,1>UW g87.1<16,8,1>UB {align1};
+add (16) g79.0<1>UW g79.0<16,8,1>UW g88.1<16,8,1>UB {align1};
+add (16) g80.0<1>UW g80.0<16,8,1>UW g89.1<16,8,1>UB {align1};
+add (16) g81.0<1>UW g81.0<16,8,1>UW g90.1<16,8,1>UB {align1};
+//V
+add (16) g82.0<1>UW g91.0<16,8,1>UB g92.0<16,8,1>UB {align1};
+add (16) g83.0<1>UW g92.0<16,8,1>UB g93.0<16,8,1>UB {align1};
+add (16) g84.0<1>UW g93.0<16,8,1>UB g94.0<16,8,1>UB {align1};
+add (16) g85.0<1>UW g94.0<16,8,1>UB g95.0<16,8,1>UB {align1};
+
+add (16) g82.0<1>UW g82.0<16,8,1>UW g91.1<16,8,1>UB {align1};
+add (16) g83.0<1>UW g83.0<16,8,1>UW g92.1<16,8,1>UB {align1};
+add (16) g84.0<1>UW g84.0<16,8,1>UW g93.1<16,8,1>UB {align1};
+add (16) g85.0<1>UW g85.0<16,8,1>UW g94.1<16,8,1>UB {align1};
+
+add (16) g82.0<1>UW g82.0<16,8,1>UW g92.1<16,8,1>UB {align1};
+add (16) g83.0<1>UW g83.0<16,8,1>UW g93.1<16,8,1>UB {align1};
+add (16) g84.0<1>UW g84.0<16,8,1>UW g94.1<16,8,1>UB {align1};
+add (16) g85.0<1>UW g85.0<16,8,1>UW g95.1<16,8,1>UB {align1};
+jmpi out;
+//U
+add (16) g78.0<1>UW g86.1<16,8,1>UB g87.1<16,8,1>UB {align1};
+add (16) g79.0<1>UW g87.1<16,8,1>UB g88.1<16,8,1>UB {align1};
+add (16) g80.0<1>UW g88.1<16,8,1>UB g89.1<16,8,1>UB {align1};
+add (16) g81.0<1>UW g89.1<16,8,1>UB g90.1<16,8,1>UB {align1};
+
+add (16) g78.0<1>UW g78.0<16,8,1>UW g86.2<16,8,1>UB {align1};
+add (16) g79.0<1>UW g79.0<16,8,1>UW g87.2<16,8,1>UB {align1};
+add (16) g80.0<1>UW g80.0<16,8,1>UW g88.2<16,8,1>UB {align1};
+add (16) g81.0<1>UW g81.0<16,8,1>UW g89.2<16,8,1>UB {align1};
+
+add (16) g78.0<1>UW g78.0<16,8,1>UW g87.2<16,8,1>UB {align1};
+add (16) g79.0<1>UW g79.0<16,8,1>UW g88.2<16,8,1>UB {align1};
+add (16) g80.0<1>UW g80.0<16,8,1>UW g89.2<16,8,1>UB {align1};
+add (16) g81.0<1>UW g81.0<16,8,1>UW g90.2<16,8,1>UB {align1};
+//V
+add (16) g82.0<1>UW g91.1<16,8,1>UB g92.1<16,8,1>UB {align1};
+add (16) g83.0<1>UW g92.1<16,8,1>UB g93.1<16,8,1>UB {align1};
+add (16) g84.0<1>UW g93.1<16,8,1>UB g94.1<16,8,1>UB {align1};
+add (16) g85.0<1>UW g94.1<16,8,1>UB g95.1<16,8,1>UB {align1};
+
+add (16) g82.0<1>UW g82.0<16,8,1>UW g91.2<16,8,1>UB {align1};
+add (16) g83.0<1>UW g83.0<16,8,1>UW g92.2<16,8,1>UB {align1};
+add (16) g84.0<1>UW g84.0<16,8,1>UW g93.2<16,8,1>UB {align1};
+add (16) g85.0<1>UW g85.0<16,8,1>UW g94.2<16,8,1>UB {align1};
+
+add (16) g82.0<1>UW g82.0<16,8,1>UW g92.2<16,8,1>UB {align1};
+add (16) g83.0<1>UW g83.0<16,8,1>UW g93.2<16,8,1>UB {align1};
+add (16) g84.0<1>UW g84.0<16,8,1>UW g94.2<16,8,1>UB {align1};
+add (16) g85.0<1>UW g85.0<16,8,1>UW g95.2<16,8,1>UB {align1};
+jmpi out;
+//U
+add (16) g78.0<1>UW g86.2<16,8,1>UB g87.2<16,8,1>UB {align1};
+add (16) g79.0<1>UW g87.2<16,8,1>UB g88.2<16,8,1>UB {align1};
+add (16) g80.0<1>UW g88.2<16,8,1>UB g89.2<16,8,1>UB {align1};
+add (16) g81.0<1>UW g89.2<16,8,1>UB g90.2<16,8,1>UB {align1};
+
+add (16) g78.0<1>UW g78.0<16,8,1>UW g86.3<16,8,1>UB {align1};
+add (16) g79.0<1>UW g79.0<16,8,1>UW g87.3<16,8,1>UB {align1};
+add (16) g80.0<1>UW g80.0<16,8,1>UW g88.3<16,8,1>UB {align1};
+add (16) g81.0<1>UW g81.0<16,8,1>UW g89.3<16,8,1>UB {align1};
+
+add (16) g78.0<1>UW g78.0<16,8,1>UW g87.3<16,8,1>UB {align1};
+add (16) g79.0<1>UW g79.0<16,8,1>UW g88.3<16,8,1>UB {align1};
+add (16) g80.0<1>UW g80.0<16,8,1>UW g89.3<16,8,1>UB {align1};
+add (16) g81.0<1>UW g81.0<16,8,1>UW g90.3<16,8,1>UB {align1};
+//V
+add (16) g82.0<1>UW g91.2<16,8,1>UB g92.2<16,8,1>UB {align1};
+add (16) g83.0<1>UW g92.2<16,8,1>UB g93.2<16,8,1>UB {align1};
+add (16) g84.0<1>UW g93.2<16,8,1>UB g94.2<16,8,1>UB {align1};
+add (16) g85.0<1>UW g94.2<16,8,1>UB g95.2<16,8,1>UB {align1};
+
+add (16) g82.0<1>UW g82.0<16,8,1>UW g91.3<16,8,1>UB {align1};
+add (16) g83.0<1>UW g83.0<16,8,1>UW g92.3<16,8,1>UB {align1};
+add (16) g84.0<1>UW g84.0<16,8,1>UW g93.3<16,8,1>UB {align1};
+add (16) g85.0<1>UW g85.0<16,8,1>UW g94.3<16,8,1>UB {align1};
+
+add (16) g82.0<1>UW g82.0<16,8,1>UW g92.3<16,8,1>UB {align1};
+add (16) g83.0<1>UW g83.0<16,8,1>UW g93.3<16,8,1>UB {align1};
+add (16) g84.0<1>UW g84.0<16,8,1>UW g94.3<16,8,1>UB {align1};
+add (16) g85.0<1>UW g85.0<16,8,1>UW g95.3<16,8,1>UB {align1};
+jmpi out;
+//U
+add (16) g78.0<1>UW g86.3<16,8,1>UB g87.3<16,8,1>UB {align1};
+add (16) g79.0<1>UW g87.3<16,8,1>UB g88.3<16,8,1>UB {align1};
+add (16) g80.0<1>UW g88.3<16,8,1>UB g89.3<16,8,1>UB {align1};
+add (16) g81.0<1>UW g89.3<16,8,1>UB g90.3<16,8,1>UB {align1};
+
+add (16) g78.0<1>UW g78.0<16,8,1>UW g86.4<16,8,1>UB {align1};
+add (16) g79.0<1>UW g79.0<16,8,1>UW g87.4<16,8,1>UB {align1};
+add (16) g80.0<1>UW g80.0<16,8,1>UW g88.4<16,8,1>UB {align1};
+add (16) g81.0<1>UW g81.0<16,8,1>UW g89.4<16,8,1>UB {align1};
+
+add (16) g78.0<1>UW g78.0<16,8,1>UW g87.4<16,8,1>UB {align1};
+add (16) g79.0<1>UW g79.0<16,8,1>UW g88.4<16,8,1>UB {align1};
+add (16) g80.0<1>UW g80.0<16,8,1>UW g89.4<16,8,1>UB {align1};
+add (16) g81.0<1>UW g81.0<16,8,1>UW g90.4<16,8,1>UB {align1};
+//V
+add (16) g82.0<1>UW g91.3<16,8,1>UB g92.3<16,8,1>UB {align1};
+add (16) g83.0<1>UW g92.3<16,8,1>UB g93.3<16,8,1>UB {align1};
+add (16) g84.0<1>UW g93.3<16,8,1>UB g94.3<16,8,1>UB {align1};
+add (16) g85.0<1>UW g94.3<16,8,1>UB g95.3<16,8,1>UB {align1};
+
+add (16) g82.0<1>UW g82.0<16,8,1>UW g91.4<16,8,1>UB {align1};
+add (16) g83.0<1>UW g83.0<16,8,1>UW g92.4<16,8,1>UB {align1};
+add (16) g84.0<1>UW g84.0<16,8,1>UW g93.4<16,8,1>UB {align1};
+add (16) g85.0<1>UW g85.0<16,8,1>UW g94.4<16,8,1>UB {align1};
+
+add (16) g82.0<1>UW g82.0<16,8,1>UW g92.4<16,8,1>UB {align1};
+add (16) g83.0<1>UW g83.0<16,8,1>UW g93.4<16,8,1>UB {align1};
+add (16) g84.0<1>UW g84.0<16,8,1>UW g94.4<16,8,1>UB {align1};
+add (16) g85.0<1>UW g85.0<16,8,1>UW g95.4<16,8,1>UB {align1};
+
+out:
+shr.sat (16) g78.0<1>UW g78.0<16,16,1>UW 2UW {align1};
+shr.sat (16) g79.0<1>UW g79.0<16,16,1>UW 2UW {align1};
+shr.sat (16) g80.0<1>UW g80.0<16,16,1>UW 2UW {align1};
+shr.sat (16) g81.0<1>UW g81.0<16,16,1>UW 2UW {align1};
+shr.sat (16) g82.0<1>UW g82.0<16,16,1>UW 2UW {align1};
+shr.sat (16) g83.0<1>UW g83.0<16,16,1>UW 2UW {align1};
+shr.sat (16) g84.0<1>UW g84.0<16,16,1>UW 2UW {align1};
+shr.sat (16) g85.0<1>UW g85.0<16,16,1>UW 2UW {align1};
+
diff --git a/src/xvmc/shader/mc/read_field_x1y1_uv_igd.g4i b/src/xvmc/shader/mc/read_field_x1y1_uv_igd.g4i
new file mode 100644
index 0000000..10f48c8
--- /dev/null
+++ b/src/xvmc/shader/mc/read_field_x1y1_uv_igd.g4i
@@ -0,0 +1,75 @@
+/*
+ * Copyright © 2008 Intel Corporation
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice (including the next
+ * paragraph) shall be included in all copies or substantial portions of the
+ * Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
+ * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+ * SOFTWARE.
+ *
+ * Author:
+ *    Zou Nan hai <nanhai.zou at intel.com>
+ *    Zhang Hua jun <huajun.zhang at intel.com>
+ *    Xing Dong sheng <dongsheng.xing at intel.com>
+ *
+ */
+mov (1) g115.8<1>UD 0x07000FUD {align1};
+send (16) 0 g86.0<1>UW g115<16,8,1>UW read(surface_u, 2, 0, 2) mlen 1 rlen 4 {align1};//U
+send (16) 0 g91.0<1>UW g115<16,8,1>UW read(surface_v, 2, 0, 2) mlen 1 rlen 4 {align1};//V
+mov (1) g115.8<1>UD 0x01000FUD {align1};
+add (1) g115.4<1>UD g115.4<1,1,1>UD 8UD {align1};
+send (16) 0 g90.0<1>UW g115<16,8,1>UW read(surface_u, 2, 0, 2) mlen 1 rlen 1 {align1};
+send (16) 0 g95.0<1>UW g115<16,8,1>UW read(surface_v, 2, 0, 2) mlen 1 rlen 1 {align1};
+//U
+add (16) g78.0<1>UW g86.0<16,8,1>UB g87.0<16,8,1>UB {align1};
+add (16) g79.0<1>UW g87.0<16,8,1>UB g88.0<16,8,1>UB {align1};
+add (16) g80.0<1>UW g88.0<16,8,1>UB g89.0<16,8,1>UB {align1};
+add (16) g81.0<1>UW g89.0<16,8,1>UB g90.0<16,8,1>UB {align1};
+
+add (16) g78.0<1>UW g78.0<16,8,1>UW g86.1<16,8,1>UB {align1};
+add (16) g79.0<1>UW g79.0<16,8,1>UW g87.1<16,8,1>UB {align1};
+add (16) g80.0<1>UW g80.0<16,8,1>UW g88.1<16,8,1>UB {align1};
+add (16) g81.0<1>UW g81.0<16,8,1>UW g89.1<16,8,1>UB {align1};
+
+add (16) g78.0<1>UW g78.0<16,8,1>UW g87.1<16,8,1>UB {align1};
+add (16) g79.0<1>UW g79.0<16,8,1>UW g88.1<16,8,1>UB {align1};
+add (16) g80.0<1>UW g80.0<16,8,1>UW g89.1<16,8,1>UB {align1};
+add (16) g81.0<1>UW g81.0<16,8,1>UW g90.1<16,8,1>UB {align1};
+//V
+add (16) g82.0<1>UW g91.0<16,8,1>UB g92.0<16,8,1>UB {align1};
+add (16) g83.0<1>UW g92.0<16,8,1>UB g93.0<16,8,1>UB {align1};
+add (16) g84.0<1>UW g93.0<16,8,1>UB g94.0<16,8,1>UB {align1};
+add (16) g85.0<1>UW g94.0<16,8,1>UB g95.0<16,8,1>UB {align1};
+
+add (16) g82.0<1>UW g82.0<16,8,1>UW g91.1<16,8,1>UB {align1};
+add (16) g83.0<1>UW g83.0<16,8,1>UW g92.1<16,8,1>UB {align1};
+add (16) g84.0<1>UW g84.0<16,8,1>UW g93.1<16,8,1>UB {align1};
+add (16) g85.0<1>UW g85.0<16,8,1>UW g94.1<16,8,1>UB {align1};
+
+add (16) g82.0<1>UW g82.0<16,8,1>UW g92.1<16,8,1>UB {align1};
+add (16) g83.0<1>UW g83.0<16,8,1>UW g93.1<16,8,1>UB {align1};
+add (16) g84.0<1>UW g84.0<16,8,1>UW g94.1<16,8,1>UB {align1};
+add (16) g85.0<1>UW g85.0<16,8,1>UW g95.1<16,8,1>UB {align1};
+
+shr.sat (16) g78.0<1>UW g78.0<16,16,1>UW 2UW {align1};
+shr.sat (16) g79.0<1>UW g79.0<16,16,1>UW 2UW {align1};
+shr.sat (16) g80.0<1>UW g80.0<16,16,1>UW 2UW {align1};
+shr.sat (16) g81.0<1>UW g81.0<16,16,1>UW 2UW {align1};
+shr.sat (16) g82.0<1>UW g82.0<16,16,1>UW 2UW {align1};
+shr.sat (16) g83.0<1>UW g83.0<16,16,1>UW 2UW {align1};
+shr.sat (16) g84.0<1>UW g84.0<16,16,1>UW 2UW {align1};
+shr.sat (16) g85.0<1>UW g85.0<16,16,1>UW 2UW {align1};
+
diff --git a/src/xvmc/shader/mc/read_field_x1y1_y.g4i b/src/xvmc/shader/mc/read_field_x1y1_y.g4i
new file mode 100644
index 0000000..7c01701
--- /dev/null
+++ b/src/xvmc/shader/mc/read_field_x1y1_y.g4i
@@ -0,0 +1,166 @@
+/*
+ * Copyright © 2008 Intel Corporation
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice (including the next
+ * paragraph) shall be included in all copies or substantial portions of the
+ * Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
+ * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+ * SOFTWARE.
+ *
+ * Author:
+ *    Zou Nan hai <nanhai.zou at intel.com>
+ *    Zhang Hua jun <huajun.zhang at intel.com>
+ *    Xing Dong sheng <dongsheng.xing at intel.com>
+ *
+ */
+mov (1) g115.8<1>UD 0x01FUD {align1};
+send (16) 0 g78.0<1>UW g115<8,8,1>UW read(surface,2,0,2) mlen 1 rlen 1 {align1};
+add (1) g115.4<1>UD g115.4<1,1,1>UD 2UD {align1};
+send (16) 0 g80.0<1>UW g115<8,8,1>UW read(surface,2,0,2) mlen 1 rlen 1 {align1};
+add (1) g115.4<1>UD g115.4<1,1,1>UD 2UD {align1};
+send (16) 0 g82.0<1>UW g115<8,8,1>UW read(surface,2,0,2) mlen 1 rlen 1 {align1};
+add (1) g115.4<1>UD g115.4<1,1,1>UD 2UD {align1};
+send (16) 0 g84.0<1>UW g115<8,8,1>UW read(surface,2,0,2) mlen 1 rlen 1 {align1};
+add (1) g115.4<1>UD g115.4<1,1,1>UD 2UD {align1};
+mov (1) g115.8<1>UD 0x07001FUD {align1};
+send (16) 0 g86.0<1>UW g115<8,8,1>UW read(surface,2,0,2) mlen 1 rlen 8 {align1};
+add (1) g115.4<1>UD g115.4<1,1,1>UD 8UD {align1};
+mov (1) g115.8<1>UD 0x1FUD {align1};
+send (16) 0 g94.0<1>UW g115<8,8,1>UW read(surface,2,0,2) mlen 1 rlen 1 {align1};
+and (1) g2.24<1>UD g115.0<1,1,1>UD 3UD {align1};
+mul (1) g2.24<1>UD g2.24<1,1,1>UD 25UD {align1};
+jmpi g2.24<1,1,1>D;
+
+add (16) g96.0<1>UW g78.0<16,16,1>UB g80.0<16,16,1>UB {align1};
+add (16) g97.0<1>UW g80.0<16,16,1>UB g82.0<16,16,1>UB {align1};
+add (16) g98.0<1>UW g82.0<16,16,1>UB g84.0<16,16,1>UB {align1};
+add (16) g99.0<1>UW g84.0<16,16,1>UB g86.0<16,16,1>UB {align1};
+add (16) g100.0<1>UW g86.0<16,16,1>UB g88.0<16,16,1>UB {align1};
+add (16) g101.0<1>UW g88.0<16,16,1>UB g90.0<16,16,1>UB {align1};
+add (16) g102.0<1>UW g90.0<16,16,1>UB g92.0<16,16,1>UB {align1};
+add (16) g103.0<1>UW g92.0<16,16,1>UB g94.0<16,16,1>UB {align1};
+
+add (16) g96.0<1>UW g96.0<16,16,1>UW g78.1<16,16,1>UB {align1};
+add (16) g97.0<1>UW g97.0<16,16,1>UW g80.1<16,16,1>UB {align1};
+add (16) g98.0<1>UW g98.0<16,16,1>UW g82.1<16,16,1>UB {align1};
+add (16) g99.0<1>UW g99.0<16,16,1>UW g84.1<16,16,1>UB {align1};
+add (16) g100.0<1>UW g100.0<16,16,1>UW g86.1<16,16,1>UB {align1};
+add (16) g101.0<1>UW g101.0<16,16,1>UW g88.1<16,16,1>UB {align1};
+add (16) g102.0<1>UW g102.0<16,16,1>UW g90.1<16,16,1>UB {align1};
+add (16) g103.0<1>UW g103.0<16,16,1>UW g92.1<16,16,1>UB {align1};
+
+add (16) g96.0<1>UW g96.0<16,16,1>UW g80.1<16,16,1>UB {align1};
+add (16) g97.0<1>UW g97.0<16,16,1>UW g82.1<16,16,1>UB {align1};
+add (16) g98.0<1>UW g98.0<16,16,1>UW g84.1<16,16,1>UB {align1};
+add (16) g99.0<1>UW g99.0<16,16,1>UW g86.1<16,16,1>UB {align1};
+add (16) g100.0<1>UW g100.0<16,16,1>UW g88.1<16,16,1>UB {align1};
+add (16) g101.0<1>UW g101.0<16,16,1>UW g90.1<16,16,1>UB {align1};
+add (16) g102.0<1>UW g102.0<16,16,1>UW g92.1<16,16,1>UB {align1};
+add (16) g103.0<1>UW g103.0<16,16,1>UW g94.1<16,16,1>UB {align1};
+jmpi out;
+
+add (16) g96.0<1>UW g78.1<16,16,1>UB g80.1<16,16,1>UB {align1};
+add (16) g97.0<1>UW g80.1<16,16,1>UB g82.1<16,16,1>UB {align1};
+add (16) g98.0<1>UW g82.1<16,16,1>UB g84.1<16,16,1>UB {align1};
+add (16) g99.0<1>UW g84.1<16,16,1>UB g86.1<16,16,1>UB {align1};
+add (16) g100.0<1>UW g86.1<16,16,1>UB g88.1<16,16,1>UB {align1};
+add (16) g101.0<1>UW g88.1<16,16,1>UB g90.1<16,16,1>UB {align1};
+add (16) g102.0<1>UW g90.1<16,16,1>UB g92.1<16,16,1>UB {align1};
+add (16) g103.0<1>UW g92.1<16,16,1>UB g94.1<16,16,1>UB {align1};
+
+add (16) g96.0<1>UW g96.0<16,16,1>UW g78.2<16,16,1>UB {align1};
+add (16) g97.0<1>UW g97.0<16,16,1>UW g80.2<16,16,1>UB {align1};
+add (16) g98.0<1>UW g98.0<16,16,1>UW g82.2<16,16,1>UB {align1};
+add (16) g99.0<1>UW g99.0<16,16,1>UW g84.2<16,16,1>UB {align1};
+add (16) g100.0<1>UW g100.0<16,16,1>UW g86.2<16,16,1>UB {align1};
+add (16) g101.0<1>UW g101.0<16,16,1>UW g88.2<16,16,1>UB {align1};
+add (16) g102.0<1>UW g102.0<16,16,1>UW g90.2<16,16,1>UB {align1};
+add (16) g103.0<1>UW g103.0<16,16,1>UW g92.2<16,16,1>UB {align1};
+
+add (16) g96.0<1>UW g96.0<16,16,1>UW g80.2<16,16,1>UB {align1};
+add (16) g97.0<1>UW g97.0<16,16,1>UW g82.2<16,16,1>UB {align1};
+add (16) g98.0<1>UW g98.0<16,16,1>UW g84.2<16,16,1>UB {align1};
+add (16) g99.0<1>UW g99.0<16,16,1>UW g86.2<16,16,1>UB {align1};
+add (16) g100.0<1>UW g100.0<16,16,1>UW g88.2<16,16,1>UB {align1};
+add (16) g101.0<1>UW g101.0<16,16,1>UW g90.2<16,16,1>UB {align1};
+add (16) g102.0<1>UW g102.0<16,16,1>UW g92.2<16,16,1>UB {align1};
+add (16) g103.0<1>UW g103.0<16,16,1>UW g94.2<16,16,1>UB {align1};
+jmpi out;
+
+add (16) g96.0<1>UW g78.2<16,16,1>UB g80.2<16,16,1>UB {align1};
+add (16) g97.0<1>UW g80.2<16,16,1>UB g82.2<16,16,1>UB {align1};
+add (16) g98.0<1>UW g82.2<16,16,1>UB g84.2<16,16,1>UB {align1};
+add (16) g99.0<1>UW g84.2<16,16,1>UB g86.2<16,16,1>UB {align1};
+add (16) g100.0<1>UW g86.2<16,16,1>UB g88.2<16,16,1>UB {align1};
+add (16) g101.0<1>UW g88.2<16,16,1>UB g90.2<16,16,1>UB {align1};
+add (16) g102.0<1>UW g90.2<16,16,1>UB g92.2<16,16,1>UB {align1};
+add (16) g103.0<1>UW g92.2<16,16,1>UB g94.2<16,16,1>UB {align1};
+
+add (16) g96.0<1>UW g96.0<16,16,1>UW g78.3<16,16,1>UB {align1};
+add (16) g97.0<1>UW g97.0<16,16,1>UW g80.3<16,16,1>UB {align1};
+add (16) g98.0<1>UW g98.0<16,16,1>UW g82.3<16,16,1>UB {align1};
+add (16) g99.0<1>UW g99.0<16,16,1>UW g84.3<16,16,1>UB {align1};
+add (16) g100.0<1>UW g100.0<16,16,1>UW g86.3<16,16,1>UB {align1};
+add (16) g101.0<1>UW g101.0<16,16,1>UW g88.3<16,16,1>UB {align1};
+add (16) g102.0<1>UW g102.0<16,16,1>UW g90.3<16,16,1>UB {align1};
+add (16) g103.0<1>UW g103.0<16,16,1>UW g92.3<16,16,1>UB {align1};
+
+add (16) g96.0<1>UW g96.0<16,16,1>UW g80.3<16,16,1>UB {align1};
+add (16) g97.0<1>UW g97.0<16,16,1>UW g82.3<16,16,1>UB {align1};
+add (16) g98.0<1>UW g98.0<16,16,1>UW g84.3<16,16,1>UB {align1};
+add (16) g99.0<1>UW g99.0<16,16,1>UW g86.3<16,16,1>UB {align1};
+add (16) g100.0<1>UW g100.0<16,16,1>UW g88.3<16,16,1>UB {align1};
+add (16) g101.0<1>UW g101.0<16,16,1>UW g90.3<16,16,1>UB {align1};
+add (16) g102.0<1>UW g102.0<16,16,1>UW g92.3<16,16,1>UB {align1};
+add (16) g103.0<1>UW g103.0<16,16,1>UW g94.3<16,16,1>UB {align1};
+jmpi out;
+
+add (16) g96.0<1>UW g78.3<16,16,1>UB g80.3<16,16,1>UB {align1};
+add (16) g97.0<1>UW g80.3<16,16,1>UB g82.3<16,16,1>UB {align1};
+add (16) g98.0<1>UW g82.3<16,16,1>UB g84.3<16,16,1>UB {align1};
+add (16) g99.0<1>UW g84.3<16,16,1>UB g86.3<16,16,1>UB {align1};
+add (16) g100.0<1>UW g86.3<16,16,1>UB g88.3<16,16,1>UB {align1};
+add (16) g101.0<1>UW g88.3<16,16,1>UB g90.3<16,16,1>UB {align1};
+add (16) g102.0<1>UW g90.3<16,16,1>UB g92.3<16,16,1>UB {align1};
+add (16) g103.0<1>UW g92.3<16,16,1>UB g94.3<16,16,1>UB {align1};
+
+add (16) g96.0<1>UW g96.0<16,16,1>UW g78.4<16,16,1>UB {align1};
+add (16) g97.0<1>UW g97.0<16,16,1>UW g80.4<16,16,1>UB {align1};
+add (16) g98.0<1>UW g98.0<16,16,1>UW g82.4<16,16,1>UB {align1};
+add (16) g99.0<1>UW g99.0<16,16,1>UW g84.4<16,16,1>UB {align1};
+add (16) g100.0<1>UW g100.0<16,16,1>UW g86.4<16,16,1>UB {align1};
+add (16) g101.0<1>UW g101.0<16,16,1>UW g88.4<16,16,1>UB {align1};
+add (16) g102.0<1>UW g102.0<16,16,1>UW g90.4<16,16,1>UB {align1};
+add (16) g103.0<1>UW g103.0<16,16,1>UW g92.4<16,16,1>UB {align1};
+
+add (16) g96.0<1>UW g96.0<16,16,1>UW g80.4<16,16,1>UB {align1};
+add (16) g97.0<1>UW g97.0<16,16,1>UW g82.4<16,16,1>UB {align1};
+add (16) g98.0<1>UW g98.0<16,16,1>UW g84.4<16,16,1>UB {align1};
+add (16) g99.0<1>UW g99.0<16,16,1>UW g86.4<16,16,1>UB {align1};
+add (16) g100.0<1>UW g100.0<16,16,1>UW g88.4<16,16,1>UB {align1};
+add (16) g101.0<1>UW g101.0<16,16,1>UW g90.4<16,16,1>UB {align1};
+add (16) g102.0<1>UW g102.0<16,16,1>UW g92.4<16,16,1>UB {align1};
+add (16) g103.0<1>UW g103.0<16,16,1>UW g94.4<16,16,1>UB {align1};
+
+out:
+shr (16) g96.0<1>UW g96.0<16,16,1>UW 2UW {align1};
+shr (16) g97.0<1>UW g97.0<16,16,1>UW 2UW {align1};
+shr (16) g98.0<1>UW g98.0<16,16,1>UW 2UW {align1};
+shr (16) g99.0<1>UW g99.0<16,16,1>UW 2UW {align1};
+shr (16) g100.0<1>UW g100.0<16,16,1>UW 2UW {align1};
+shr (16) g101.0<1>UW g101.0<16,16,1>UW 2UW {align1};
+shr (16) g102.0<1>UW g102.0<16,16,1>UW 2UW {align1};
+shr (16) g103.0<1>UW g103.0<16,16,1>UW 2UW {align1};
diff --git a/src/xvmc/shader/mc/read_field_x1y1_y_igd.g4i b/src/xvmc/shader/mc/read_field_x1y1_y_igd.g4i
new file mode 100644
index 0000000..39526c8
--- /dev/null
+++ b/src/xvmc/shader/mc/read_field_x1y1_y_igd.g4i
@@ -0,0 +1,78 @@
+/*
+ * Copyright © 2008 Intel Corporation
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice (including the next
+ * paragraph) shall be included in all copies or substantial portions of the
+ * Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
+ * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+ * SOFTWARE.
+ *
+ * Author:
+ *    Zou Nan hai <nanhai.zou at intel.com>
+ *    Zhang Hua jun <huajun.zhang at intel.com>
+ *    Xing Dong sheng <dongsheng.xing at intel.com>
+ *
+ */
+mov (1) g115.8<1>UD 0x01FUD {align1};
+send (16) 0 g78.0<1>UW g115<8,8,1>UW read(surface,2,0,2) mlen 1 rlen 1 {align1};
+add (1) g115.4<1>UD g115.4<1,1,1>UD 2UD {align1};
+send (16) 0 g80.0<1>UW g115<8,8,1>UW read(surface,2,0,2) mlen 1 rlen 1 {align1};
+add (1) g115.4<1>UD g115.4<1,1,1>UD 2UD {align1};
+send (16) 0 g82.0<1>UW g115<8,8,1>UW read(surface,2,0,2) mlen 1 rlen 1 {align1};
+add (1) g115.4<1>UD g115.4<1,1,1>UD 2UD {align1};
+send (16) 0 g84.0<1>UW g115<8,8,1>UW read(surface,2,0,2) mlen 1 rlen 1 {align1};
+add (1) g115.4<1>UD g115.4<1,1,1>UD 2UD {align1};
+mov (1) g115.8<1>UD 0x07001FUD {align1};
+send (16) 0 g86.0<1>UW g115<8,8,1>UW read(surface,2,0,2) mlen 1 rlen 8 {align1};
+add (1) g115.4<1>UD g115.4<1,1,1>UD 8UD {align1};
+mov (1) g115.8<1>UD 0x1FUD {align1};
+send (16) 0 g94.0<1>UW g115<8,8,1>UW read(surface,2,0,2) mlen 1 rlen 1 {align1};
+
+add (16) g96.0<1>UW g78.0<16,16,1>UB g80.0<16,16,1>UB {align1};
+add (16) g97.0<1>UW g80.0<16,16,1>UB g82.0<16,16,1>UB {align1};
+add (16) g98.0<1>UW g82.0<16,16,1>UB g84.0<16,16,1>UB {align1};
+add (16) g99.0<1>UW g84.0<16,16,1>UB g86.0<16,16,1>UB {align1};
+add (16) g100.0<1>UW g86.0<16,16,1>UB g88.0<16,16,1>UB {align1};
+add (16) g101.0<1>UW g88.0<16,16,1>UB g90.0<16,16,1>UB {align1};
+add (16) g102.0<1>UW g90.0<16,16,1>UB g92.0<16,16,1>UB {align1};
+add (16) g103.0<1>UW g92.0<16,16,1>UB g94.0<16,16,1>UB {align1};
+
+add (16) g96.0<1>UW g96.0<16,16,1>UW g78.1<16,16,1>UB {align1};
+add (16) g97.0<1>UW g97.0<16,16,1>UW g80.1<16,16,1>UB {align1};
+add (16) g98.0<1>UW g98.0<16,16,1>UW g82.1<16,16,1>UB {align1};
+add (16) g99.0<1>UW g99.0<16,16,1>UW g84.1<16,16,1>UB {align1};
+add (16) g100.0<1>UW g100.0<16,16,1>UW g86.1<16,16,1>UB {align1};
+add (16) g101.0<1>UW g101.0<16,16,1>UW g88.1<16,16,1>UB {align1};
+add (16) g102.0<1>UW g102.0<16,16,1>UW g90.1<16,16,1>UB {align1};
+add (16) g103.0<1>UW g103.0<16,16,1>UW g92.1<16,16,1>UB {align1};
+
+add (16) g96.0<1>UW g96.0<16,16,1>UW g80.1<16,16,1>UB {align1};
+add (16) g97.0<1>UW g97.0<16,16,1>UW g82.1<16,16,1>UB {align1};
+add (16) g98.0<1>UW g98.0<16,16,1>UW g84.1<16,16,1>UB {align1};
+add (16) g99.0<1>UW g99.0<16,16,1>UW g86.1<16,16,1>UB {align1};
+add (16) g100.0<1>UW g100.0<16,16,1>UW g88.1<16,16,1>UB {align1};
+add (16) g101.0<1>UW g101.0<16,16,1>UW g90.1<16,16,1>UB {align1};
+add (16) g102.0<1>UW g102.0<16,16,1>UW g92.1<16,16,1>UB {align1};
+add (16) g103.0<1>UW g103.0<16,16,1>UW g94.1<16,16,1>UB {align1};
+
+shr (16) g96.0<1>UW g96.0<16,16,1>UW 2UW {align1};
+shr (16) g97.0<1>UW g97.0<16,16,1>UW 2UW {align1};
+shr (16) g98.0<1>UW g98.0<16,16,1>UW 2UW {align1};
+shr (16) g99.0<1>UW g99.0<16,16,1>UW 2UW {align1};
+shr (16) g100.0<1>UW g100.0<16,16,1>UW 2UW {align1};
+shr (16) g101.0<1>UW g101.0<16,16,1>UW 2UW {align1};
+shr (16) g102.0<1>UW g102.0<16,16,1>UW 2UW {align1};
+shr (16) g103.0<1>UW g103.0<16,16,1>UW 2UW {align1};
diff --git a/src/xvmc/shader/mc/read_frame_x0y0_uv.g4i b/src/xvmc/shader/mc/read_frame_x0y0_uv.g4i
new file mode 100644
index 0000000..43f77a8
--- /dev/null
+++ b/src/xvmc/shader/mc/read_frame_x0y0_uv.g4i
@@ -0,0 +1,73 @@
+/*
+ * Copyright © 2008 Intel Corporation
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice (including the next
+ * paragraph) shall be included in all copies or substantial portions of the
+ * Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
+ * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+ * SOFTWARE.
+ *
+ * Author:
+ *    Zou Nan hai <nanhai.zou at intel.com>
+ *    Zhang Hua jun <huajun.zhang at intel.com>
+ *    Xing Dong sheng <dongsheng.xing at intel.com>
+ *
+ */
+and (1) g2.24<1>UD g2.0<1,1,1>UD 0x3UD {align1};
+send (16) 0 g86.0<1>UW g2<8,8,1>UW read(input_surface1, 2, 0, 2) mlen 1 rlen 4 {align1};
+send (16) 0 g90.0<1>UW g2<8,8,1>UW read(input_surface2, 2, 0, 2) mlen 1 rlen 4 {align1};
+mul(1) g2.24<1>UD g2.24<1,1,1>UD 0x9UD {align1};
+jmpi g2.24<1,1,1>D;
+
+mov (16) g44.0<1>UW g86.0<16,8,1>UB {align1};
+mov (16) g45.0<1>UW g87.0<16,8,1>UB {align1};
+mov (16) g46.0<1>UW g88.0<16,8,1>UB {align1};
+mov (16) g47.0<1>UW g89.0<16,8,1>UB {align1};
+mov (16) g48.0<1>UW g90.0<16,8,1>UB {align1};
+mov (16) g49.0<1>UW g91.0<16,8,1>UB {align1};
+mov (16) g50.0<1>UW g92.0<16,8,1>UB {align1};
+mov (16) g51.0<1>UW g93.0<16,8,1>UB {align1};
+jmpi out;
+
+mov (16) g44.0<1>UW g86.1<16,8,1>UB {align1};
+mov (16) g45.0<1>UW g87.1<16,8,1>UB {align1};
+mov (16) g46.0<1>UW g88.1<16,8,1>UB {align1};
+mov (16) g47.0<1>UW g89.1<16,8,1>UB {align1};
+mov (16) g48.0<1>UW g90.1<16,8,1>UB {align1};
+mov (16) g49.0<1>UW g91.1<16,8,1>UB {align1};
+mov (16) g50.0<1>UW g92.1<16,8,1>UB {align1};
+mov (16) g51.0<1>UW g93.1<16,8,1>UB {align1};
+jmpi out;
+
+mov (16) g44.0<1>UW g86.2<16,8,1>UB {align1};
+mov (16) g45.0<1>UW g87.2<16,8,1>UB {align1};
+mov (16) g46.0<1>UW g88.2<16,8,1>UB {align1};
+mov (16) g47.0<1>UW g89.2<16,8,1>UB {align1};
+mov (16) g48.0<1>UW g90.2<16,8,1>UB {align1};
+mov (16) g49.0<1>UW g91.2<16,8,1>UB {align1};
+mov (16) g50.0<1>UW g92.2<16,8,1>UB {align1};
+mov (16) g51.0<1>UW g93.2<16,8,1>UB {align1};
+jmpi out;
+
+mov (16) g44.0<1>UW g86.3<16,8,1>UB {align1};
+mov (16) g45.0<1>UW g87.3<16,8,1>UB {align1};
+mov (16) g46.0<1>UW g88.3<16,8,1>UB {align1};
+mov (16) g47.0<1>UW g89.3<16,8,1>UB {align1};
+mov (16) g48.0<1>UW g90.3<16,8,1>UB {align1};
+mov (16) g49.0<1>UW g91.3<16,8,1>UB {align1};
+mov (16) g50.0<1>UW g92.3<16,8,1>UB {align1};
+mov (16) g51.0<1>UW g93.3<16,8,1>UB {align1};
+out:
diff --git a/src/xvmc/shader/mc/read_frame_x0y0_uv_igd.g4i b/src/xvmc/shader/mc/read_frame_x0y0_uv_igd.g4i
new file mode 100644
index 0000000..d522d0e
--- /dev/null
+++ b/src/xvmc/shader/mc/read_frame_x0y0_uv_igd.g4i
@@ -0,0 +1,39 @@
+/*
+ * Copyright © 2008 Intel Corporation
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice (including the next
+ * paragraph) shall be included in all copies or substantial portions of the
+ * Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
+ * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+ * SOFTWARE.
+ *
+ * Author:
+ *    Zou Nan hai <nanhai.zou at intel.com>
+ *    Zhang Hua jun <huajun.zhang at intel.com>
+ *    Xing Dong sheng <dongsheng.xing at intel.com>
+ *
+ */
+send (16) 0 g86.0<1>UW g2<8,8,1>UW read(input_surface1, 2, 0, 2) mlen 1 rlen 4 {align1};
+send (16) 0 g90.0<1>UW g2<8,8,1>UW read(input_surface2, 2, 0, 2) mlen 1 rlen 4 {align1};
+
+mov (16) g44.0<1>UW g86.0<16,8,1>UB {align1};
+mov (16) g45.0<1>UW g87.0<16,8,1>UB {align1};
+mov (16) g46.0<1>UW g88.0<16,8,1>UB {align1};
+mov (16) g47.0<1>UW g89.0<16,8,1>UB {align1};
+mov (16) g48.0<1>UW g90.0<16,8,1>UB {align1};
+mov (16) g49.0<1>UW g91.0<16,8,1>UB {align1};
+mov (16) g50.0<1>UW g92.0<16,8,1>UB {align1};
+mov (16) g51.0<1>UW g93.0<16,8,1>UB {align1};
diff --git a/src/xvmc/shader/mc/read_frame_x0y0_y.g4i b/src/xvmc/shader/mc/read_frame_x0y0_y.g4i
new file mode 100644
index 0000000..20f577d
--- /dev/null
+++ b/src/xvmc/shader/mc/read_frame_x0y0_y.g4i
@@ -0,0 +1,109 @@
+/*
+ * Copyright © 2008 Intel Corporation
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice (including the next
+ * paragraph) shall be included in all copies or substantial portions of the
+ * Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
+ * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+ * SOFTWARE.
+ *
+ * Author:
+ *    Zou Nan hai <nanhai.zou at intel.com>
+ *    Zhang Hua jun <huajun.zhang at intel.com>
+ *    Xing Dong sheng <dongsheng.xing at intel.com>
+ *
+ */
+mov (1) g2.8<1>UD 0x007001FUD {align1};
+send (16) 0 g98.0<1>UW g2<8,8,1>UW read(input_surface, 2, 0, 2) mlen 1 rlen 8 {align1};
+add (1) g2.4<1>UD g2.4<1,1,1>UD 8UD {align1};
+send (16) 0 g106.0<1>UW g2<8,8,1>UW read(input_surface, 2, 0, 2) mlen 1 rlen 8 {align1};
+
+and (1) g2.24<1>UD g2.0<1,1,1>UD 3UD {align1};
+mul(1) g2.24<1>UD g2.24<1,1,1>UD 17UD {align1};
+jmpi g2.24<1,1,1>D;
+
+mov (16) g28.0<1>UW g98.0<16,16,1>UB {align1};
+mov (16) g29.0<1>UW g99.0<16,16,1>UB {align1};
+mov (16) g30.0<1>UW g100.0<16,16,1>UB {align1};
+mov (16) g31.0<1>UW g101.0<16,16,1>UB {align1};
+mov (16) g32.0<1>UW g102.0<16,16,1>UB {align1};
+mov (16) g33.0<1>UW g103.0<16,16,1>UB {align1};
+mov (16) g34.0<1>UW g104.0<16,16,1>UB {align1};
+mov (16) g35.0<1>UW g105.0<16,16,1>UB {align1};
+mov (16) g36.0<1>UW g106.0<16,16,1>UB {align1};
+mov (16) g37.0<1>UW g107.0<16,16,1>UB {align1};
+mov (16) g38.0<1>UW g108.0<16,16,1>UB {align1};
+mov (16) g39.0<1>UW g109.0<16,16,1>UB {align1};
+mov (16) g40.0<1>UW g110.0<16,16,1>UB {align1};
+mov (16) g41.0<1>UW g111.0<16,16,1>UB {align1};
+mov (16) g42.0<1>UW g112.0<16,16,1>UB {align1};
+mov (16) g43.0<1>UW g113.0<16,16,1>UB {align1};
+jmpi out;
+
+mov (16) g28.0<1>UW g98.1<16,16,1>UB {align1};
+mov (16) g29.0<1>UW g99.1<16,16,1>UB {align1};
+mov (16) g30.0<1>UW g100.1<16,16,1>UB {align1};
+mov (16) g31.0<1>UW g101.1<16,16,1>UB {align1};
+mov (16) g32.0<1>UW g102.1<16,16,1>UB {align1};
+mov (16) g33.0<1>UW g103.1<16,16,1>UB {align1};
+mov (16) g34.0<1>UW g104.1<16,16,1>UB {align1};
+mov (16) g35.0<1>UW g105.1<16,16,1>UB {align1};
+mov (16) g36.0<1>UW g106.1<16,16,1>UB {align1};
+mov (16) g37.0<1>UW g107.1<16,16,1>UB {align1};
+mov (16) g38.0<1>UW g108.1<16,16,1>UB {align1};
+mov (16) g39.0<1>UW g109.1<16,16,1>UB {align1};
+mov (16) g40.0<1>UW g110.1<16,16,1>UB {align1};
+mov (16) g41.0<1>UW g111.1<16,16,1>UB {align1};
+mov (16) g42.0<1>UW g112.1<16,16,1>UB {align1};
+mov (16) g43.0<1>UW g113.1<16,16,1>UB {align1};
+jmpi out;
+
+mov (16) g28.0<1>UW g98.2<16,16,1>UB {align1};
+mov (16) g29.0<1>UW g99.2<16,16,1>UB {align1};
+mov (16) g30.0<1>UW g100.2<16,16,1>UB {align1};
+mov (16) g31.0<1>UW g101.2<16,16,1>UB {align1};
+mov (16) g32.0<1>UW g102.2<16,16,1>UB {align1};
+mov (16) g33.0<1>UW g103.2<16,16,1>UB {align1};
+mov (16) g34.0<1>UW g104.2<16,16,1>UB {align1};
+mov (16) g35.0<1>UW g105.2<16,16,1>UB {align1};
+mov (16) g36.0<1>UW g106.2<16,16,1>UB {align1};
+mov (16) g37.0<1>UW g107.2<16,16,1>UB {align1};
+mov (16) g38.0<1>UW g108.2<16,16,1>UB {align1};
+mov (16) g39.0<1>UW g109.2<16,16,1>UB {align1};
+mov (16) g40.0<1>UW g110.2<16,16,1>UB {align1};
+mov (16) g41.0<1>UW g111.2<16,16,1>UB {align1};
+mov (16) g42.0<1>UW g112.2<16,16,1>UB {align1};
+mov (16) g43.0<1>UW g113.2<16,16,1>UB {align1};
+jmpi out;
+
+mov (16) g28.0<1>UW g98.3<16,16,1>UB {align1};
+mov (16) g29.0<1>UW g99.3<16,16,1>UB {align1};
+mov (16) g30.0<1>UW g100.3<16,16,1>UB {align1};
+mov (16) g31.0<1>UW g101.3<16,16,1>UB {align1};
+mov (16) g32.0<1>UW g102.3<16,16,1>UB {align1};
+mov (16) g33.0<1>UW g103.3<16,16,1>UB {align1};
+mov (16) g34.0<1>UW g104.3<16,16,1>UB {align1};
+mov (16) g35.0<1>UW g105.3<16,16,1>UB {align1};
+mov (16) g36.0<1>UW g106.3<16,16,1>UB {align1};
+mov (16) g37.0<1>UW g107.3<16,16,1>UB {align1};
+mov (16) g38.0<1>UW g108.3<16,16,1>UB {align1};
+mov (16) g39.0<1>UW g109.3<16,16,1>UB {align1};
+mov (16) g40.0<1>UW g110.3<16,16,1>UB {align1};
+mov (16) g41.0<1>UW g111.3<16,16,1>UB {align1};
+mov (16) g42.0<1>UW g112.3<16,16,1>UB {align1};
+mov (16) g43.0<1>UW g113.3<16,16,1>UB {align1};
+
+out:
diff --git a/src/xvmc/shader/mc/read_frame_x0y0_y_igd.g4i b/src/xvmc/shader/mc/read_frame_x0y0_y_igd.g4i
new file mode 100644
index 0000000..6191abf
--- /dev/null
+++ b/src/xvmc/shader/mc/read_frame_x0y0_y_igd.g4i
@@ -0,0 +1,50 @@
+/*
+ * Copyright © 2008 Intel Corporation
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice (including the next
+ * paragraph) shall be included in all copies or substantial portions of the
+ * Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
+ * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+ * SOFTWARE.
+ *
+ * Author:
+ *    Zou Nan hai <nanhai.zou at intel.com>
+ *    Zhang Hua jun <huajun.zhang at intel.com>
+ *    Xing Dong sheng <dongsheng.xing at intel.com>
+ *
+ */
+mov (1) g2.8<1>UD 0x007001FUD {align1};
+send (16) 0 g98.0<1>UW g2<8,8,1>UW read(input_surface, 2, 0, 2) mlen 1 rlen 8 {align1};
+add (1) g2.4<1>UD g2.4<1,1,1>UD 8UD {align1};
+send (16) 0 g106.0<1>UW g2<8,8,1>UW read(input_surface, 2, 0, 2) mlen 1 rlen 8 {align1};
+
+
+mov (16) g28.0<1>UW g98.0<16,16,1>UB {align1};
+mov (16) g29.0<1>UW g99.0<16,16,1>UB {align1};
+mov (16) g30.0<1>UW g100.0<16,16,1>UB {align1};
+mov (16) g31.0<1>UW g101.0<16,16,1>UB {align1};
+mov (16) g32.0<1>UW g102.0<16,16,1>UB {align1};
+mov (16) g33.0<1>UW g103.0<16,16,1>UB {align1};
+mov (16) g34.0<1>UW g104.0<16,16,1>UB {align1};
+mov (16) g35.0<1>UW g105.0<16,16,1>UB {align1};
+mov (16) g36.0<1>UW g106.0<16,16,1>UB {align1};
+mov (16) g37.0<1>UW g107.0<16,16,1>UB {align1};
+mov (16) g38.0<1>UW g108.0<16,16,1>UB {align1};
+mov (16) g39.0<1>UW g109.0<16,16,1>UB {align1};
+mov (16) g40.0<1>UW g110.0<16,16,1>UB {align1};
+mov (16) g41.0<1>UW g111.0<16,16,1>UB {align1};
+mov (16) g42.0<1>UW g112.0<16,16,1>UB {align1};
+mov (16) g43.0<1>UW g113.0<16,16,1>UB {align1};
diff --git a/src/xvmc/shader/mc/read_frame_x0y1_uv.g4i b/src/xvmc/shader/mc/read_frame_x0y1_uv.g4i
new file mode 100644
index 0000000..58bebbc
--- /dev/null
+++ b/src/xvmc/shader/mc/read_frame_x0y1_uv.g4i
@@ -0,0 +1,79 @@
+/*
+ * Copyright © 2008 Intel Corporation
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice (including the next
+ * paragraph) shall be included in all copies or substantial portions of the
+ * Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDINg BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINgEMENT.  IN NO EVENT SHALL
+ * THE AUTHORS OR COPYRIgHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAgES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISINg FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINgS IN THE
+ * SOFTWARE.
+ *
+ * Author:
+ *    Zou Nan hai <nanhai.zou at intel.com>
+ *    Zhang Hua jun <huajun.zhang at intel.com>
+ *    Xing Dong sheng <dongsheng.xing at intel.com>
+ *
+ */
+and (1) g2.24<1>UD g2.0<1,1,1>UD 0x3UD {align1};
+send (16) 0 g86.0<1>UW g2<8,8,1>UW read(input_surface1, 2, 0, 2) mlen 1 rlen 4 {align1};
+send (16) 0 g94.0<1>UW g2<8,8,1>UW read(input_surface2, 2, 0, 2) mlen 1 rlen 4 {align1};
+mov (1) g2.8<1>UD 0x01001FUD {align1};
+add (1) g2.4<1>UD g2.4<1,1,1>UD 8UD {align1};
+send (16) 0 g90.0<1>UW g2<8,8,1>UW read(input_surface1, 2, 0, 2) mlen 1 rlen 1 {align1};
+send (16) 0 g98.0<1>UW g2<8,8,1>UW read(input_surface2, 2, 0, 2) mlen 1 rlen 1 {align1};
+mov (1) g2.8<1>UD 0x007000fUD  {align1};
+mul(1) g2.24<1>UD g2.24<1,1,1>UD 0x9UD {align1};
+jmpi g2.24<1,1,1>D;
+
+avg.sat (16) g44.0<1>UW g86.0<16,8,1>UB g87.0<16,8,1>UB{align1};
+avg.sat (16) g45.0<1>UW g87.0<16,8,1>UB g88.0<16,8,1>UB{align1};
+avg.sat (16) g46.0<1>UW g88.0<16,8,1>UB g89.0<16,8,1>UB{align1};
+avg.sat (16) g47.0<1>UW g89.0<16,8,1>UB g90.0<16,8,1>UB{align1};
+avg.sat (16) g48.0<1>UW g94.0<16,8,1>UB g95.0<16,8,1>UB{align1};
+avg.sat (16) g49.0<1>UW g95.0<16,8,1>UB g96.0<16,8,1>UB{align1};
+avg.sat (16) g50.0<1>UW g96.0<16,8,1>UB g97.0<16,8,1>UB{align1};
+avg.sat (16) g51.0<1>UW g97.0<16,8,1>UB g98.0<16,8,1>UB{align1};
+jmpi out;
+
+avg.sat (16) g44.0<1>UW g86.1<16,8,1>UB g87.1<16,8,1>UB{align1};
+avg.sat (16) g45.0<1>UW g87.1<16,8,1>UB g88.1<16,8,1>UB{align1};
+avg.sat (16) g46.0<1>UW g88.1<16,8,1>UB g89.1<16,8,1>UB{align1};
+avg.sat (16) g47.0<1>UW g89.1<16,8,1>UB g90.1<16,8,1>UB{align1};
+avg.sat (16) g48.0<1>UW g94.1<16,8,1>UB g95.1<16,8,1>UB{align1};
+avg.sat (16) g49.0<1>UW g95.1<16,8,1>UB g96.1<16,8,1>UB{align1};
+avg.sat (16) g50.0<1>UW g96.1<16,8,1>UB g97.1<16,8,1>UB{align1};
+avg.sat (16) g51.0<1>UW g97.1<16,8,1>UB g98.1<16,8,1>UB{align1};
+jmpi out;
+
+avg.sat (16) g44.0<1>UW g86.2<16,8,1>UB g87.2<16,8,1>UB{align1};
+avg.sat (16) g45.0<1>UW g87.2<16,8,1>UB g88.2<16,8,1>UB{align1};
+avg.sat (16) g46.0<1>UW g88.2<16,8,1>UB g89.2<16,8,1>UB{align1};
+avg.sat (16) g47.0<1>UW g89.2<16,8,1>UB g90.2<16,8,1>UB{align1};
+avg.sat (16) g48.0<1>UW g94.2<16,8,1>UB g95.2<16,8,1>UB{align1};
+avg.sat (16) g49.0<1>UW g95.2<16,8,1>UB g96.2<16,8,1>UB{align1};
+avg.sat (16) g50.0<1>UW g96.2<16,8,1>UB g97.2<16,8,1>UB{align1};
+avg.sat (16) g51.0<1>UW g97.2<16,8,1>UB g98.2<16,8,1>UB{align1};
+jmpi out;
+
+avg.sat (16) g44.0<1>UW g86.3<16,8,1>UB g87.3<16,8,1>UB{align1};
+avg.sat (16) g45.0<1>UW g87.3<16,8,1>UB g88.3<16,8,1>UB{align1};
+avg.sat (16) g46.0<1>UW g88.3<16,8,1>UB g89.3<16,8,1>UB{align1};
+avg.sat (16) g47.0<1>UW g89.3<16,8,1>UB g90.3<16,8,1>UB{align1};
+avg.sat (16) g48.0<1>UW g94.3<16,8,1>UB g95.3<16,8,1>UB{align1};
+avg.sat (16) g49.0<1>UW g95.3<16,8,1>UB g96.3<16,8,1>UB{align1};
+avg.sat (16) g50.0<1>UW g96.3<16,8,1>UB g97.3<16,8,1>UB{align1};
+avg.sat (16) g51.0<1>UW g97.3<16,8,1>UB g98.3<16,8,1>UB{align1};
+
+out:
diff --git a/src/xvmc/shader/mc/read_frame_x0y1_uv_igd.g4i b/src/xvmc/shader/mc/read_frame_x0y1_uv_igd.g4i
new file mode 100644
index 0000000..7240b3f
--- /dev/null
+++ b/src/xvmc/shader/mc/read_frame_x0y1_uv_igd.g4i
@@ -0,0 +1,44 @@
+/*
+ * Copyright © 2008 Intel Corporation
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice (including the next
+ * paragraph) shall be included in all copies or substantial portions of the
+ * Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDINg BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINgEMENT.  IN NO EVENT SHALL
+ * THE AUTHORS OR COPYRIgHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAgES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISINg FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINgS IN THE
+ * SOFTWARE.
+ *
+ * Author:
+ *    Zou Nan hai <nanhai.zou at intel.com>
+ *    Zhang Hua jun <huajun.zhang at intel.com>
+ *    Xing Dong sheng <dongsheng.xing at intel.com>
+ *
+ */
+send (16) 0 g86.0<1>UW g2<8,8,1>UW read(input_surface1, 2, 0, 2) mlen 1 rlen 4 {align1};
+send (16) 0 g94.0<1>UW g2<8,8,1>UW read(input_surface2, 2, 0, 2) mlen 1 rlen 4 {align1};
+mov (1) g2.8<1>UD 0x01001FUD {align1};
+add (1) g2.4<1>UD g2.4<1,1,1>UD 8UD {align1};
+send (16) 0 g90.0<1>UW g2<8,8,1>UW read(input_surface1, 2, 0, 2) mlen 1 rlen 1 {align1};
+send (16) 0 g98.0<1>UW g2<8,8,1>UW read(input_surface2, 2, 0, 2) mlen 1 rlen 1 {align1};
+mov (1) g2.8<1>UD 0x007000fUD  {align1};
+
+avg.sat (16) g44.0<1>UW g86.0<16,8,1>UB g87.0<16,8,1>UB{align1};
+avg.sat (16) g45.0<1>UW g87.0<16,8,1>UB g88.0<16,8,1>UB{align1};
+avg.sat (16) g46.0<1>UW g88.0<16,8,1>UB g89.0<16,8,1>UB{align1};
+avg.sat (16) g47.0<1>UW g89.0<16,8,1>UB g90.0<16,8,1>UB{align1};
+avg.sat (16) g48.0<1>UW g94.0<16,8,1>UB g95.0<16,8,1>UB{align1};
+avg.sat (16) g49.0<1>UW g95.0<16,8,1>UB g96.0<16,8,1>UB{align1};
+avg.sat (16) g50.0<1>UW g96.0<16,8,1>UB g97.0<16,8,1>UB{align1};
+avg.sat (16) g51.0<1>UW g97.0<16,8,1>UB g98.0<16,8,1>UB{align1};
diff --git a/src/xvmc/shader/mc/read_frame_x0y1_y.g4i b/src/xvmc/shader/mc/read_frame_x0y1_y.g4i
new file mode 100644
index 0000000..bbc0d78
--- /dev/null
+++ b/src/xvmc/shader/mc/read_frame_x0y1_y.g4i
@@ -0,0 +1,113 @@
+/*
+ * Copyright © 2008 Intel Corporation
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice (including the next
+ * paragraph) shall be included in all copies or substantial portions of the
+ * Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
+ * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+ * SOFTWARE.
+ *
+ * Author:
+ *    Zou Nan hai <nanhai.zou at intel.com>
+ *    Zhang Hua jun <huajun.zhang at intel.com>
+ *    Xing Dong sheng <dongsheng.xing at intel.com>
+ *
+ */
+mov (1) g2.8<1>UD 0x007001FUD {align1};
+send (16) 0 g98.0<1>UW g2<8,8,1>UW read(input_surface, 2, 0, 2) mlen 1 rlen 8 {align1};
+
+and (1) g2.24<1>UD g2.0<1,1,1>UD 3UD {align1};
+mul(1) g2.24<1>UD g2.24<1,1,1>UD 17UD {align1};
+add (1) g2.4<1>UD g2.4<1,1,1>UD 8UD {align1};
+send (16) 0 g106.0<1>UW g2<8,8,1>UW read(input_surface, 2, 0, 2) mlen 1 rlen 8 {align1};
+add (1) g2.4<1>UD g2.4<1,1,1>UD 8UD {align1};
+mov (1) g2.8<1>UD 0x1FUD {align1};
+send (16) 0 g120.0<1>UW g2<8,8,1>UW read(input_surface, 2, 0, 2) mlen 1 rlen 1 {align1};
+
+jmpi g2.24<1,1,1>D;
+
+avg.sat (16) g28.0<1>UW g98.0<16,16,1>UB g99.0<16,16,1>UB {align1};
+avg.sat (16) g29.0<1>UW g99.0<16,16,1>UB g100.0<16,16,1>UB {align1};
+avg.sat (16) g30.0<1>UW g100.0<16,16,1>UB g101.0<16,16,1>UB {align1};
+avg.sat (16) g31.0<1>UW g101.0<16,16,1>UB g102.0<16,16,1>UB {align1};
+avg.sat (16) g32.0<1>UW g102.0<16,16,1>UB g103.0<16,16,1>UB {align1};
+avg.sat (16) g33.0<1>UW g103.0<16,16,1>UB g104.0<16,16,1>UB {align1};
+avg.sat (16) g34.0<1>UW g104.0<16,16,1>UB g105.0<16,16,1>UB {align1};
+avg.sat (16) g35.0<1>UW g105.0<16,16,1>UB g106.0<16,16,1>UB {align1};
+avg.sat (16) g36.0<1>UW g106.0<16,16,1>UB g107.0<16,16,1>UB {align1};
+avg.sat (16) g37.0<1>UW g107.0<16,16,1>UB g108.0<16,16,1>UB {align1};
+avg.sat (16) g38.0<1>UW g108.0<16,16,1>UB g109.0<16,16,1>UB {align1};
+avg.sat (16) g39.0<1>UW g109.0<16,16,1>UB g110.0<16,16,1>UB {align1};
+avg.sat (16) g40.0<1>UW g110.0<16,16,1>UB g111.0<16,16,1>UB {align1};
+avg.sat (16) g41.0<1>UW g111.0<16,16,1>UB g112.0<16,16,1>UB {align1};
+avg.sat (16) g42.0<1>UW g112.0<16,16,1>UB g113.0<16,16,1>UB {align1};
+avg.sat (16) g43.0<1>UW g113.0<16,16,1>UB g120.0<16,16,1>UB {align1};
+jmpi out;
+
+avg.sat (16) g28.0<1>UW g98.1<16,16,1>UB g99.1<16,16,1>UB {align1};
+avg.sat (16) g29.0<1>UW g99.1<16,16,1>UB g100.1<16,16,1>UB {align1};
+avg.sat (16) g30.0<1>UW g100.1<16,16,1>UB g101.1<16,16,1>UB {align1};
+avg.sat (16) g31.0<1>UW g101.1<16,16,1>UB g102.1<16,16,1>UB {align1};
+avg.sat (16) g32.0<1>UW g102.1<16,16,1>UB g103.1<16,16,1>UB {align1};
+avg.sat (16) g33.0<1>UW g103.1<16,16,1>UB g104.1<16,16,1>UB {align1};
+avg.sat (16) g34.0<1>UW g104.1<16,16,1>UB g105.1<16,16,1>UB {align1};
+avg.sat (16) g35.0<1>UW g105.1<16,16,1>UB g106.1<16,16,1>UB {align1};
+avg.sat (16) g36.0<1>UW g106.1<16,16,1>UB g107.1<16,16,1>UB {align1};
+avg.sat (16) g37.0<1>UW g107.1<16,16,1>UB g108.1<16,16,1>UB {align1};
+avg.sat (16) g38.0<1>UW g108.1<16,16,1>UB g109.1<16,16,1>UB {align1};
+avg.sat (16) g39.0<1>UW g109.1<16,16,1>UB g110.1<16,16,1>UB {align1};
+avg.sat (16) g40.0<1>UW g110.1<16,16,1>UB g111.1<16,16,1>UB {align1};
+avg.sat (16) g41.0<1>UW g111.1<16,16,1>UB g112.1<16,16,1>UB {align1};
+avg.sat (16) g42.0<1>UW g112.1<16,16,1>UB g113.1<16,16,1>UB {align1};
+avg.sat (16) g43.0<1>UW g113.1<16,16,1>UB g120.1<16,16,1>UB {align1};
+jmpi out;
+
+avg.sat (16) g28.0<1>UW g98.2<16,16,1>UB g99.2<16,16,1>UB {align1};
+avg.sat (16) g29.0<1>UW g99.2<16,16,1>UB g100.2<16,16,1>UB {align1};
+avg.sat (16) g30.0<1>UW g100.2<16,16,1>UB g101.2<16,16,1>UB {align1};
+avg.sat (16) g31.0<1>UW g101.2<16,16,1>UB g102.2<16,16,1>UB {align1};
+avg.sat (16) g32.0<1>UW g102.2<16,16,1>UB g103.2<16,16,1>UB {align1};
+avg.sat (16) g33.0<1>UW g103.2<16,16,1>UB g104.2<16,16,1>UB {align1};
+avg.sat (16) g34.0<1>UW g104.2<16,16,1>UB g105.2<16,16,1>UB {align1};
+avg.sat (16) g35.0<1>UW g105.2<16,16,1>UB g106.2<16,16,1>UB {align1};
+avg.sat (16) g36.0<1>UW g106.2<16,16,1>UB g107.2<16,16,1>UB {align1};
+avg.sat (16) g37.0<1>UW g107.2<16,16,1>UB g108.2<16,16,1>UB {align1};
+avg.sat (16) g38.0<1>UW g108.2<16,16,1>UB g109.2<16,16,1>UB {align1};
+avg.sat (16) g39.0<1>UW g109.2<16,16,1>UB g110.2<16,16,1>UB {align1};
+avg.sat (16) g40.0<1>UW g110.2<16,16,1>UB g111.2<16,16,1>UB {align1};
+avg.sat (16) g41.0<1>UW g111.2<16,16,1>UB g112.2<16,16,1>UB {align1};
+avg.sat (16) g42.0<1>UW g112.2<16,16,1>UB g113.2<16,16,1>UB {align1};
+avg.sat (16) g43.0<1>UW g113.2<16,16,1>UB g120.2<16,16,1>UB {align1};
+jmpi out;
+
+avg.sat (16) g28.0<1>UW g98.3<16,16,1>UB g99.3<16,16,1>UB {align1};
+avg.sat (16) g29.0<1>UW g99.3<16,16,1>UB g100.3<16,16,1>UB {align1};
+avg.sat (16) g30.0<1>UW g100.3<16,16,1>UB g101.3<16,16,1>UB {align1};
+avg.sat (16) g31.0<1>UW g101.3<16,16,1>UB g102.3<16,16,1>UB {align1};
+avg.sat (16) g32.0<1>UW g102.3<16,16,1>UB g103.3<16,16,1>UB {align1};
+avg.sat (16) g33.0<1>UW g103.3<16,16,1>UB g104.3<16,16,1>UB {align1};
+avg.sat (16) g34.0<1>UW g104.3<16,16,1>UB g105.3<16,16,1>UB {align1};
+avg.sat (16) g35.0<1>UW g105.3<16,16,1>UB g106.3<16,16,1>UB {align1};
+avg.sat (16) g36.0<1>UW g106.3<16,16,1>UB g107.3<16,16,1>UB {align1};
+avg.sat (16) g37.0<1>UW g107.3<16,16,1>UB g108.3<16,16,1>UB {align1};
+avg.sat (16) g38.0<1>UW g108.3<16,16,1>UB g109.3<16,16,1>UB {align1};
+avg.sat (16) g39.0<1>UW g109.3<16,16,1>UB g110.3<16,16,1>UB {align1};
+avg.sat (16) g40.0<1>UW g110.3<16,16,1>UB g111.3<16,16,1>UB {align1};
+avg.sat (16) g41.0<1>UW g111.3<16,16,1>UB g112.3<16,16,1>UB {align1};
+avg.sat (16) g42.0<1>UW g112.3<16,16,1>UB g113.3<16,16,1>UB {align1};
+avg.sat (16) g43.0<1>UW g113.3<16,16,1>UB g120.3<16,16,1>UB {align1};
+
+out:
diff --git a/src/xvmc/shader/mc/read_frame_x0y1_y_igd.g4i b/src/xvmc/shader/mc/read_frame_x0y1_y_igd.g4i
new file mode 100644
index 0000000..106296b
--- /dev/null
+++ b/src/xvmc/shader/mc/read_frame_x0y1_y_igd.g4i
@@ -0,0 +1,54 @@
+/*
+ * Copyright © 2008 Intel Corporation
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice (including the next
+ * paragraph) shall be included in all copies or substantial portions of the
+ * Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
+ * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+ * SOFTWARE.
+ *
+ * Author:
+ *    Zou Nan hai <nanhai.zou at intel.com>
+ *    Zhang Hua jun <huajun.zhang at intel.com>
+ *    Xing Dong sheng <dongsheng.xing at intel.com>
+ *
+ */
+mov (1) g2.8<1>UD 0x007001FUD {align1};
+send (16) 0 g98.0<1>UW g2<8,8,1>UW read(input_surface, 2, 0, 2) mlen 1 rlen 8 {align1};
+
+add (1) g2.4<1>UD g2.4<1,1,1>UD 8UD {align1};
+send (16) 0 g106.0<1>UW g2<8,8,1>UW read(input_surface, 2, 0, 2) mlen 1 rlen 8 {align1};
+add (1) g2.4<1>UD g2.4<1,1,1>UD 8UD {align1};
+mov (1) g2.8<1>UD 0x1FUD {align1};
+send (16) 0 g120.0<1>UW g2<8,8,1>UW read(input_surface, 2, 0, 2) mlen 1 rlen 1 {align1};
+
+
+avg.sat (16) g28.0<1>UW g98.0<16,16,1>UB g99.0<16,16,1>UB {align1};
+avg.sat (16) g29.0<1>UW g99.0<16,16,1>UB g100.0<16,16,1>UB {align1};
+avg.sat (16) g30.0<1>UW g100.0<16,16,1>UB g101.0<16,16,1>UB {align1};
+avg.sat (16) g31.0<1>UW g101.0<16,16,1>UB g102.0<16,16,1>UB {align1};
+avg.sat (16) g32.0<1>UW g102.0<16,16,1>UB g103.0<16,16,1>UB {align1};
+avg.sat (16) g33.0<1>UW g103.0<16,16,1>UB g104.0<16,16,1>UB {align1};
+avg.sat (16) g34.0<1>UW g104.0<16,16,1>UB g105.0<16,16,1>UB {align1};
+avg.sat (16) g35.0<1>UW g105.0<16,16,1>UB g106.0<16,16,1>UB {align1};
+avg.sat (16) g36.0<1>UW g106.0<16,16,1>UB g107.0<16,16,1>UB {align1};
+avg.sat (16) g37.0<1>UW g107.0<16,16,1>UB g108.0<16,16,1>UB {align1};
+avg.sat (16) g38.0<1>UW g108.0<16,16,1>UB g109.0<16,16,1>UB {align1};
+avg.sat (16) g39.0<1>UW g109.0<16,16,1>UB g110.0<16,16,1>UB {align1};
+avg.sat (16) g40.0<1>UW g110.0<16,16,1>UB g111.0<16,16,1>UB {align1};
+avg.sat (16) g41.0<1>UW g111.0<16,16,1>UB g112.0<16,16,1>UB {align1};
+avg.sat (16) g42.0<1>UW g112.0<16,16,1>UB g113.0<16,16,1>UB {align1};
+avg.sat (16) g43.0<1>UW g113.0<16,16,1>UB g120.0<16,16,1>UB {align1};
diff --git a/src/xvmc/shader/mc/read_frame_x1y0_uv.g4i b/src/xvmc/shader/mc/read_frame_x1y0_uv.g4i
new file mode 100644
index 0000000..bed4abe
--- /dev/null
+++ b/src/xvmc/shader/mc/read_frame_x1y0_uv.g4i
@@ -0,0 +1,75 @@
+/*
+ * Copyright © 2008 Intel Corporation
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice (including the next
+ * paragraph) shall be included in all copies or substantial portions of the
+ * Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
+ * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+ * SOFTWARE.
+ *
+ * Author:
+ *    Zou Nan hai <nanhai.zou at intel.com>
+ *    Zhang Hua jun <huajun.zhang at intel.com>
+ *    Xing Dong sheng <dongsheng.xing at intel.com>
+ *
+ */
+
+mov (1) g2.8<1>UD 0x007000FUD {align1};
+and (1) g2.24<1>UD g2.0<1,1,1>UD 0x3UD {align1};
+send (16) 0 g86.0<1>UW g2<8,8,1>UW read(input_surface1, 2, 0, 2) mlen 1 rlen 4 {align1};
+send (16) 0 g90.0<1>UW g2<8,8,1>UW read(input_surface2, 2, 0, 2) mlen 1 rlen 4 {align1};
+mul(1) g2.24<1>UD g2.24<1,1,1>UD 0x9UD {align1};
+jmpi g2.24<1,1,1>D;
+
+avg.sat (16) g44.0<1>UW g86.0<16,8,1>UB g86.1<16,8,1>UB{align1};
+avg.sat (16) g45.0<1>UW g87.0<16,8,1>UB g87.1<16,8,1>UB{align1};
+avg.sat (16) g46.0<1>UW g88.0<16,8,1>UB g88.1<16,8,1>UB{align1};
+avg.sat (16) g47.0<1>UW g89.0<16,8,1>UB g89.1<16,8,1>UB{align1};
+avg.sat (16) g48.0<1>UW g90.0<16,8,1>UB g90.1<16,8,1>UB{align1};
+avg.sat (16) g49.0<1>UW g91.0<16,8,1>UB g91.1<16,8,1>UB{align1};
+avg.sat (16) g50.0<1>UW g92.0<16,8,1>UB g92.1<16,8,1>UB{align1};
+avg.sat (16) g51.0<1>UW g93.0<16,8,1>UB g93.1<16,8,1>UB{align1};
+jmpi out;
+
+avg.sat (16) g44.0<1>UW g86.1<16,8,1>UB g86.2<16,8,1>UB{align1};
+avg.sat (16) g45.0<1>UW g87.1<16,8,1>UB g87.2<16,8,1>UB{align1};
+avg.sat (16) g46.0<1>UW g88.1<16,8,1>UB g88.2<16,8,1>UB{align1};
+avg.sat (16) g47.0<1>UW g89.1<16,8,1>UB g89.2<16,8,1>UB{align1};
+avg.sat (16) g48.0<1>UW g90.1<16,8,1>UB g90.2<16,8,1>UB{align1};
+avg.sat (16) g49.0<1>UW g91.1<16,8,1>UB g91.2<16,8,1>UB{align1};
+avg.sat (16) g50.0<1>UW g92.1<16,8,1>UB g92.2<16,8,1>UB{align1};
+avg.sat (16) g51.0<1>UW g93.1<16,8,1>UB g93.2<16,8,1>UB{align1};
+jmpi out;
+
+avg.sat (16) g44.0<1>UW g86.2<16,8,1>UB g86.3<16,8,1>UB{align1};
+avg.sat (16) g45.0<1>UW g87.2<16,8,1>UB g87.3<16,8,1>UB{align1};
+avg.sat (16) g46.0<1>UW g88.2<16,8,1>UB g88.3<16,8,1>UB{align1};
+avg.sat (16) g47.0<1>UW g89.2<16,8,1>UB g89.3<16,8,1>UB{align1};
+avg.sat (16) g48.0<1>UW g90.2<16,8,1>UB g90.3<16,8,1>UB{align1};
+avg.sat (16) g49.0<1>UW g91.2<16,8,1>UB g91.3<16,8,1>UB{align1};
+avg.sat (16) g50.0<1>UW g92.2<16,8,1>UB g92.3<16,8,1>UB{align1};
+avg.sat (16) g51.0<1>UW g93.2<16,8,1>UB g93.3<16,8,1>UB{align1};
+jmpi out;
+
+avg.sat (16) g44.0<1>UW g86.3<16,8,1>UB g86.4<16,8,1>UB{align1};
+avg.sat (16) g45.0<1>UW g87.3<16,8,1>UB g87.4<16,8,1>UB{align1};
+avg.sat (16) g46.0<1>UW g88.3<16,8,1>UB g88.4<16,8,1>UB{align1};
+avg.sat (16) g47.0<1>UW g89.3<16,8,1>UB g89.4<16,8,1>UB{align1};
+avg.sat (16) g48.0<1>UW g90.3<16,8,1>UB g90.4<16,8,1>UB{align1};
+avg.sat (16) g49.0<1>UW g91.3<16,8,1>UB g91.4<16,8,1>UB{align1};
+avg.sat (16) g50.0<1>UW g92.3<16,8,1>UB g92.4<16,8,1>UB{align1};
+avg.sat (16) g51.0<1>UW g93.3<16,8,1>UB g93.4<16,8,1>UB{align1};
+out:
diff --git a/src/xvmc/shader/mc/read_frame_x1y0_uv_igd.g4i b/src/xvmc/shader/mc/read_frame_x1y0_uv_igd.g4i
new file mode 100644
index 0000000..c63e8ec
--- /dev/null
+++ b/src/xvmc/shader/mc/read_frame_x1y0_uv_igd.g4i
@@ -0,0 +1,41 @@
+/*
+ * Copyright © 2008 Intel Corporation
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice (including the next
+ * paragraph) shall be included in all copies or substantial portions of the
+ * Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
+ * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+ * SOFTWARE.
+ *
+ * Author:
+ *    Zou Nan hai <nanhai.zou at intel.com>
+ *    Zhang Hua jun <huajun.zhang at intel.com>
+ *    Xing Dong sheng <dongsheng.xing at intel.com>
+ *
+ */
+
+mov (1) g2.8<1>UD 0x007000FUD {align1};
+send (16) 0 g86.0<1>UW g2<8,8,1>UW read(input_surface1, 2, 0, 2) mlen 1 rlen 4 {align1};
+send (16) 0 g90.0<1>UW g2<8,8,1>UW read(input_surface2, 2, 0, 2) mlen 1 rlen 4 {align1};
+
+avg.sat (16) g44.0<1>UW g86.0<16,8,1>UB g86.1<16,8,1>UB{align1};
+avg.sat (16) g45.0<1>UW g87.0<16,8,1>UB g87.1<16,8,1>UB{align1};
+avg.sat (16) g46.0<1>UW g88.0<16,8,1>UB g88.1<16,8,1>UB{align1};
+avg.sat (16) g47.0<1>UW g89.0<16,8,1>UB g89.1<16,8,1>UB{align1};
+avg.sat (16) g48.0<1>UW g90.0<16,8,1>UB g90.1<16,8,1>UB{align1};
+avg.sat (16) g49.0<1>UW g91.0<16,8,1>UB g91.1<16,8,1>UB{align1};
+avg.sat (16) g50.0<1>UW g92.0<16,8,1>UB g92.1<16,8,1>UB{align1};
+avg.sat (16) g51.0<1>UW g93.0<16,8,1>UB g93.1<16,8,1>UB{align1};
diff --git a/src/xvmc/shader/mc/read_frame_x1y0_y.g4i b/src/xvmc/shader/mc/read_frame_x1y0_y.g4i
new file mode 100644
index 0000000..3af3e08
--- /dev/null
+++ b/src/xvmc/shader/mc/read_frame_x1y0_y.g4i
@@ -0,0 +1,110 @@
+/*
+ * Copyright © 2008 Intel Corporation
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice (including the next
+ * paragraph) shall be included in all copies or substantial portions of the
+ * Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
+ * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+ * SOFTWARE.
+ *
+ * Author:
+ *    Zou Nan hai <nanhai.zou at intel.com>
+ *    Zhang Hua jun <huajun.zhang at intel.com>
+ *    Xing Dong sheng <dongsheng.xing at intel.com>
+ *
+ */
+mov (1) g2.8<1>UD 0x007001FUD {align1};
+send (16) 0 g98.0<1>UW g2<8,8,1>UW read(input_surface, 2, 0, 2) mlen 1 rlen 8 {align1};
+
+and (1) g2.24<1>UD g2.0<1,1,1>UD 3UD {align1};
+mul(1) g2.24<1>UD g2.24<1,1,1>UD 17D {align1};
+add (1) g2.4<1>UD g2.4<1,1,1>UD 8UD {align1};
+send (16) 0 g106.0<1>UW g2<8,8,1>UW read(input_surface, 2, 0, 2) mlen 1 rlen 8 {align1};
+
+jmpi g2.24<1,1,1>D;
+
+avg.sat (16) g28.0<1>UW g98.0<16,16,1>UB g98.1<16,16,1>UB {align1};
+avg.sat (16) g29.0<1>UW g99.0<16,16,1>UB g99.1<16,16,1>UB {align1};
+avg.sat (16) g30.0<1>UW g100.0<16,16,1>UB g100.1<16,16,1>UB {align1};
+avg.sat (16) g31.0<1>UW g101.0<16,16,1>UB g101.1<16,16,1>UB {align1};
+avg.sat (16) g32.0<1>UW g102.0<16,16,1>UB g102.1<16,16,1>UB {align1};
+avg.sat (16) g33.0<1>UW g103.0<16,16,1>UB g103.1<16,16,1>UB {align1};
+avg.sat (16) g34.0<1>UW g104.0<16,16,1>UB g104.1<16,16,1>UB {align1};
+avg.sat (16) g35.0<1>UW g105.0<16,16,1>UB g105.1<16,16,1>UB {align1};
+avg.sat (16) g36.0<1>UW g106.0<16,16,1>UB g106.1<16,16,1>UB {align1};
+avg.sat (16) g37.0<1>UW g107.0<16,16,1>UB g107.1<16,16,1>UB {align1};
+avg.sat (16) g38.0<1>UW g108.0<16,16,1>UB g108.1<16,16,1>UB {align1};
+avg.sat (16) g39.0<1>UW g109.0<16,16,1>UB g109.1<16,16,1>UB {align1};
+avg.sat (16) g40.0<1>UW g110.0<16,16,1>UB g110.1<16,16,1>UB {align1};
+avg.sat (16) g41.0<1>UW g111.0<16,16,1>UB g111.1<16,16,1>UB {align1};
+avg.sat (16) g42.0<1>UW g112.0<16,16,1>UB g112.1<16,16,1>UB {align1};
+avg.sat (16) g43.0<1>UW g113.0<16,16,1>UB g113.1<16,16,1>UB {align1};
+jmpi out;
+
+avg.sat (16) g28.0<1>UW g98.1<16,16,1>UB g98.2<16,16,1>UB {align1};
+avg.sat (16) g29.0<1>UW g99.1<16,16,1>UB g99.2<16,16,1>UB {align1};
+avg.sat (16) g30.0<1>UW g100.1<16,16,1>UB g100.2<16,16,1>UB {align1};
+avg.sat (16) g31.0<1>UW g101.1<16,16,1>UB g101.2<16,16,1>UB {align1};
+avg.sat (16) g32.0<1>UW g102.1<16,16,1>UB g102.2<16,16,1>UB {align1};
+avg.sat (16) g33.0<1>UW g103.1<16,16,1>UB g103.2<16,16,1>UB {align1};
+avg.sat (16) g34.0<1>UW g104.1<16,16,1>UB g104.2<16,16,1>UB {align1};
+avg.sat (16) g35.0<1>UW g105.1<16,16,1>UB g105.2<16,16,1>UB {align1};
+avg.sat (16) g36.0<1>UW g106.1<16,16,1>UB g106.2<16,16,1>UB {align1};
+avg.sat (16) g37.0<1>UW g107.1<16,16,1>UB g107.2<16,16,1>UB {align1};
+avg.sat (16) g38.0<1>UW g108.1<16,16,1>UB g108.2<16,16,1>UB {align1};
+avg.sat (16) g39.0<1>UW g109.1<16,16,1>UB g109.2<16,16,1>UB {align1};
+avg.sat (16) g40.0<1>UW g110.1<16,16,1>UB g110.2<16,16,1>UB {align1};
+avg.sat (16) g41.0<1>UW g111.1<16,16,1>UB g111.2<16,16,1>UB {align1};
+avg.sat (16) g42.0<1>UW g112.1<16,16,1>UB g112.2<16,16,1>UB {align1};
+avg.sat (16) g43.0<1>UW g113.1<16,16,1>UB g113.2<16,16,1>UB {align1};
+jmpi out;
+
+avg.sat (16) g28.0<1>UW g98.2<16,16,1>UB g98.3<16,16,1>UB {align1};
+avg.sat (16) g29.0<1>UW g99.2<16,16,1>UB g99.3<16,16,1>UB {align1};
+avg.sat (16) g30.0<1>UW g100.2<16,16,1>UB g100.3<16,16,1>UB {align1};
+avg.sat (16) g31.0<1>UW g101.2<16,16,1>UB g101.3<16,16,1>UB {align1};
+avg.sat (16) g32.0<1>UW g102.2<16,16,1>UB g102.3<16,16,1>UB {align1};
+avg.sat (16) g33.0<1>UW g103.2<16,16,1>UB g103.3<16,16,1>UB {align1};
+avg.sat (16) g34.0<1>UW g104.2<16,16,1>UB g104.3<16,16,1>UB {align1};
+avg.sat (16) g35.0<1>UW g105.2<16,16,1>UB g105.3<16,16,1>UB {align1};
+avg.sat (16) g36.0<1>UW g106.2<16,16,1>UB g106.3<16,16,1>UB {align1};
+avg.sat (16) g37.0<1>UW g107.2<16,16,1>UB g107.3<16,16,1>UB {align1};
+avg.sat (16) g38.0<1>UW g108.2<16,16,1>UB g108.3<16,16,1>UB {align1};
+avg.sat (16) g39.0<1>UW g109.2<16,16,1>UB g109.3<16,16,1>UB {align1};
+avg.sat (16) g40.0<1>UW g110.2<16,16,1>UB g110.3<16,16,1>UB {align1};
+avg.sat (16) g41.0<1>UW g111.2<16,16,1>UB g111.3<16,16,1>UB {align1};
+avg.sat (16) g42.0<1>UW g112.2<16,16,1>UB g112.3<16,16,1>UB {align1};
+avg.sat (16) g43.0<1>UW g113.2<16,16,1>UB g113.3<16,16,1>UB {align1};
+jmpi out;
+
+avg.sat (16) g28.0<1>UW g98.3<16,16,1>UB g98.4<16,16,1>UB {align1};
+avg.sat (16) g29.0<1>UW g99.3<16,16,1>UB g99.4<16,16,1>UB {align1};
+avg.sat (16) g30.0<1>UW g100.3<16,16,1>UB g100.4<16,16,1>UB {align1};
+avg.sat (16) g31.0<1>UW g101.3<16,16,1>UB g101.4<16,16,1>UB {align1};
+avg.sat (16) g32.0<1>UW g102.3<16,16,1>UB g102.4<16,16,1>UB {align1};
+avg.sat (16) g33.0<1>UW g103.3<16,16,1>UB g103.4<16,16,1>UB {align1};
+avg.sat (16) g34.0<1>UW g104.3<16,16,1>UB g104.4<16,16,1>UB {align1};
+avg.sat (16) g35.0<1>UW g105.3<16,16,1>UB g105.4<16,16,1>UB {align1};
+avg.sat (16) g36.0<1>UW g106.3<16,16,1>UB g106.4<16,16,1>UB {align1};
+avg.sat (16) g37.0<1>UW g107.3<16,16,1>UB g107.4<16,16,1>UB {align1};
+avg.sat (16) g38.0<1>UW g108.3<16,16,1>UB g108.4<16,16,1>UB {align1};
+avg.sat (16) g39.0<1>UW g109.3<16,16,1>UB g109.4<16,16,1>UB {align1};
+avg.sat (16) g40.0<1>UW g110.3<16,16,1>UB g110.4<16,16,1>UB {align1};
+avg.sat (16) g41.0<1>UW g111.3<16,16,1>UB g111.4<16,16,1>UB {align1};
+avg.sat (16) g42.0<1>UW g112.3<16,16,1>UB g112.4<16,16,1>UB {align1};
+avg.sat (16) g43.0<1>UW g113.3<16,16,1>UB g113.4<16,16,1>UB {align1};
+
+out:
diff --git a/src/xvmc/shader/mc/read_frame_x1y0_y_igd.g4i b/src/xvmc/shader/mc/read_frame_x1y0_y_igd.g4i
new file mode 100644
index 0000000..03ee54b
--- /dev/null
+++ b/src/xvmc/shader/mc/read_frame_x1y0_y_igd.g4i
@@ -0,0 +1,51 @@
+/*
+ * Copyright © 2008 Intel Corporation
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice (including the next
+ * paragraph) shall be included in all copies or substantial portions of the
+ * Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
+ * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+ * SOFTWARE.
+ *
+ * Author:
+ *    Zou Nan hai <nanhai.zou at intel.com>
+ *    Zhang Hua jun <huajun.zhang at intel.com>
+ *    Xing Dong sheng <dongsheng.xing at intel.com>
+ *
+ */
+mov (1) g2.8<1>UD 0x007001FUD {align1};
+send (16) 0 g98.0<1>UW g2<8,8,1>UW read(input_surface, 2, 0, 2) mlen 1 rlen 8 {align1};
+
+add (1) g2.4<1>UD g2.4<1,1,1>UD 8UD {align1};
+send (16) 0 g106.0<1>UW g2<8,8,1>UW read(input_surface, 2, 0, 2) mlen 1 rlen 8 {align1};
+
+
+avg.sat (16) g28.0<1>UW g98.0<16,16,1>UB g98.1<16,16,1>UB {align1};
+avg.sat (16) g29.0<1>UW g99.0<16,16,1>UB g99.1<16,16,1>UB {align1};
+avg.sat (16) g30.0<1>UW g100.0<16,16,1>UB g100.1<16,16,1>UB {align1};
+avg.sat (16) g31.0<1>UW g101.0<16,16,1>UB g101.1<16,16,1>UB {align1};
+avg.sat (16) g32.0<1>UW g102.0<16,16,1>UB g102.1<16,16,1>UB {align1};
+avg.sat (16) g33.0<1>UW g103.0<16,16,1>UB g103.1<16,16,1>UB {align1};
+avg.sat (16) g34.0<1>UW g104.0<16,16,1>UB g104.1<16,16,1>UB {align1};
+avg.sat (16) g35.0<1>UW g105.0<16,16,1>UB g105.1<16,16,1>UB {align1};
+avg.sat (16) g36.0<1>UW g106.0<16,16,1>UB g106.1<16,16,1>UB {align1};
+avg.sat (16) g37.0<1>UW g107.0<16,16,1>UB g107.1<16,16,1>UB {align1};
+avg.sat (16) g38.0<1>UW g108.0<16,16,1>UB g108.1<16,16,1>UB {align1};
+avg.sat (16) g39.0<1>UW g109.0<16,16,1>UB g109.1<16,16,1>UB {align1};
+avg.sat (16) g40.0<1>UW g110.0<16,16,1>UB g110.1<16,16,1>UB {align1};
+avg.sat (16) g41.0<1>UW g111.0<16,16,1>UB g111.1<16,16,1>UB {align1};
+avg.sat (16) g42.0<1>UW g112.0<16,16,1>UB g112.1<16,16,1>UB {align1};
+avg.sat (16) g43.0<1>UW g113.0<16,16,1>UB g113.1<16,16,1>UB {align1};
diff --git a/src/xvmc/shader/mc/read_frame_x1y1_uv.g4i b/src/xvmc/shader/mc/read_frame_x1y1_uv.g4i
new file mode 100644
index 0000000..d124d29
--- /dev/null
+++ b/src/xvmc/shader/mc/read_frame_x1y1_uv.g4i
@@ -0,0 +1,159 @@
+/*
+ * Copyright © 2008 Intel Corporation
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice (including the next
+ * paragraph) shall be included in all copies or substantial portions of the
+ * Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
+ * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+ * SOFTWARE.
+ *
+ * Author:
+ *    Zou Nan hai <nanhai.zou at intel.com>
+ *    Zhang Hua jun <huajun.zhang at intel.com>
+ *    Xing Dong sheng <dongsheng.xing at intel.com>
+ *
+ */
+and (1) g2.24<1>UD g2.0<1,1,1>UD 0x3UD {align1};
+send (16) 0 g86.0<1>UW g2<8,8,1>UW read(input_surface1, 2, 0, 2) mlen 1 rlen 4 {align1};
+send (16) 0 g94.0<1>UW g2<8,8,1>UW read(input_surface2, 2, 0, 2) mlen 1 rlen 4 {align1};
+mov (1) g2.8<1>UD 0x01001FUD {align1};
+add (1) g2.4<1>UD g2.4<1,1,1>UD 8D {align1};
+send (16) 0 g90.0<1>UW g2<8,8,1>UW read(input_surface1, 2, 0, 2) mlen 1 rlen 1 {align1};
+send (16) 0 g98.0<1>UW g2<8,8,1>UW read(input_surface2, 2, 0, 2) mlen 1 rlen 1 {align1};
+mov (1) g2.8<1>UD 0x007000fUD  {align1};
+mul(1) g2.24<1>UD g2.24<1,1,1>UD 25UD {align1};
+jmpi g2.24<1,1,1>D;
+
+add (16) g44.0<1>UW g86.0<16,8,1>UB g86.1<16,8,1>UB{align1};
+add (16) g45.0<1>UW g87.0<16,8,1>UB g87.1<16,8,1>UB{align1};
+add (16) g46.0<1>UW g88.0<16,8,1>UB g88.1<16,8,1>UB{align1};
+add (16) g47.0<1>UW g89.0<16,8,1>UB g89.1<16,8,1>UB{align1};
+add (16) g44.0<1>UW g44.0<16,16,1>UW g87.0<16,8,1>UB{align1};
+add (16) g45.0<1>UW g45.0<16,16,1>UW g88.0<16,8,1>UB{align1};
+add (16) g46.0<1>UW g46.0<16,16,1>UW g89.0<16,8,1>UB{align1};
+add (16) g47.0<1>UW g47.0<16,16,1>UW g90.0<16,8,1>UB{align1};
+
+add (16) g44.0<1>UW g44.0<16,16,1>UW g87.1<16,8,1>UB{align1};
+add (16) g45.0<1>UW g45.0<16,16,1>UW g88.1<16,8,1>UB{align1};
+add (16) g46.0<1>UW g46.0<16,16,1>UW g89.1<16,8,1>UB{align1};
+add (16) g47.0<1>UW g47.0<16,16,1>UW g90.1<16,8,1>UB{align1};
+add (16) g48.0<1>UW g94.0<16,8,1>UB g95.0<16,8,1>UB{align1};
+add (16) g49.0<1>UW g95.0<16,8,1>UB g96.0<16,8,1>UB{align1};
+add (16) g50.0<1>UW g96.0<16,8,1>UB g97.0<16,8,1>UB{align1};
+add (16) g51.0<1>UW g97.0<16,8,1>UB g98.0<16,8,1>UB{align1};
+
+add (16) g48.0<1>UW g48.0<16,16,1>UW g94.1<16,8,1>UB{align1};
+add (16) g49.0<1>UW g49.0<16,16,1>UW g95.1<16,8,1>UB{align1};
+add (16) g50.0<1>UW g50.0<16,16,1>UW g96.1<16,8,1>UB{align1};
+add (16) g51.0<1>UW g51.0<16,16,1>UW g97.1<16,8,1>UB{align1};
+add (16) g48.0<1>UW g48.0<16,16,1>UW g95.1<16,8,1>UB{align1};
+add (16) g49.0<1>UW g49.0<16,16,1>UW g96.1<16,8,1>UB{align1};
+add (16) g50.0<1>UW g50.0<16,16,1>UW g97.1<16,8,1>UB{align1};
+add (16) g51.0<1>UW g51.0<16,16,1>UW g98.1<16,8,1>UB{align1};
+jmpi out;
+
+add (16) g44.0<1>UW g86.1<16,8,1>UB g86.2<16,8,1>UB{align1};
+add (16) g45.0<1>UW g87.1<16,8,1>UB g87.2<16,8,1>UB{align1};
+add (16) g46.0<1>UW g88.1<16,8,1>UB g88.2<16,8,1>UB{align1};
+add (16) g47.0<1>UW g89.1<16,8,1>UB g89.2<16,8,1>UB{align1};
+add (16) g44.0<1>UW g44.0<16,16,1>UW g87.1<16,8,1>UB{align1};
+add (16) g45.0<1>UW g45.0<16,16,1>UW g88.1<16,8,1>UB{align1};
+add (16) g46.0<1>UW g46.0<16,16,1>UW g89.1<16,8,1>UB{align1};
+add (16) g47.0<1>UW g47.0<16,16,1>UW g90.1<16,8,1>UB{align1};
+
+add (16) g44.0<1>UW g44.0<16,16,1>UW g87.2<16,8,1>UB{align1};
+add (16) g45.0<1>UW g45.0<16,16,1>UW g88.2<16,8,1>UB{align1};
+add (16) g46.0<1>UW g46.0<16,16,1>UW g89.2<16,8,1>UB{align1};
+add (16) g47.0<1>UW g47.0<16,16,1>UW g90.2<16,8,1>UB{align1};
+add (16) g48.0<1>UW g94.1<16,8,1>UB g95.1<16,8,1>UB{align1};
+add (16) g49.0<1>UW g95.1<16,8,1>UB g96.1<16,8,1>UB{align1};
+add (16) g50.0<1>UW g96.1<16,8,1>UB g97.1<16,8,1>UB{align1};
+add (16) g51.0<1>UW g97.1<16,8,1>UB g98.1<16,8,1>UB{align1};
+
+add (16) g48.0<1>UW g48.0<16,16,1>UW g94.2<16,8,1>UB{align1};
+add (16) g49.0<1>UW g49.0<16,16,1>UW g95.2<16,8,1>UB{align1};
+add (16) g50.0<1>UW g50.0<16,16,1>UW g96.2<16,8,1>UB{align1};
+add (16) g51.0<1>UW g51.0<16,16,1>UW g97.2<16,8,1>UB{align1};
+add (16) g48.0<1>UW g48.0<16,16,1>UW g95.2<16,8,1>UB{align1};
+add (16) g49.0<1>UW g49.0<16,16,1>UW g96.2<16,8,1>UB{align1};
+add (16) g50.0<1>UW g50.0<16,16,1>UW g97.2<16,8,1>UB{align1};
+add (16) g51.0<1>UW g51.0<16,16,1>UW g98.2<16,8,1>UB{align1};
+jmpi out;
+
+add (16) g44.0<1>UW g86.2<16,8,1>UB g86.3<16,8,1>UB{align1};
+add (16) g45.0<1>UW g87.2<16,8,1>UB g87.3<16,8,1>UB{align1};
+add (16) g46.0<1>UW g88.2<16,8,1>UB g88.3<16,8,1>UB{align1};
+add (16) g47.0<1>UW g89.2<16,8,1>UB g89.3<16,8,1>UB{align1};
+add (16) g44.0<1>UW g44.0<16,16,1>UW g87.2<16,8,1>UB{align1};
+add (16) g45.0<1>UW g45.0<16,16,1>UW g88.2<16,8,1>UB{align1};
+add (16) g46.0<1>UW g46.0<16,16,1>UW g89.2<16,8,1>UB{align1};
+add (16) g47.0<1>UW g47.0<16,16,1>UW g90.2<16,8,1>UB{align1};
+
+add (16) g44.0<1>UW g44.0<16,16,1>UW g87.3<16,8,1>UB{align1};
+add (16) g45.0<1>UW g45.0<16,16,1>UW g88.3<16,8,1>UB{align1};
+add (16) g46.0<1>UW g46.0<16,16,1>UW g89.3<16,8,1>UB{align1};
+add (16) g47.0<1>UW g47.0<16,16,1>UW g90.3<16,8,1>UB{align1};
+add (16) g48.0<1>UW g94.2<16,8,1>UB g95.2<16,8,1>UB{align1};
+add (16) g49.0<1>UW g95.2<16,8,1>UB g96.2<16,8,1>UB{align1};
+add (16) g50.0<1>UW g96.2<16,8,1>UB g97.2<16,8,1>UB{align1};
+add (16) g51.0<1>UW g97.2<16,8,1>UB g98.2<16,8,1>UB{align1};
+
+add (16) g48.0<1>UW g48.0<16,16,1>UW g94.3<16,8,1>UB{align1};
+add (16) g49.0<1>UW g49.0<16,16,1>UW g95.3<16,8,1>UB{align1};
+add (16) g50.0<1>UW g50.0<16,16,1>UW g96.3<16,8,1>UB{align1};
+add (16) g51.0<1>UW g51.0<16,16,1>UW g97.3<16,8,1>UB{align1};
+add (16) g48.0<1>UW g48.0<16,16,1>UW g95.3<16,8,1>UB{align1};
+add (16) g49.0<1>UW g49.0<16,16,1>UW g96.3<16,8,1>UB{align1};
+add (16) g50.0<1>UW g50.0<16,16,1>UW g97.3<16,8,1>UB{align1};
+add (16) g51.0<1>UW g51.0<16,16,1>UW g98.3<16,8,1>UB{align1};
+jmpi out;
+
+add (16) g44.0<1>UW g86.3<16,8,1>UB g86.4<16,8,1>UB{align1};
+add (16) g45.0<1>UW g87.3<16,8,1>UB g87.4<16,8,1>UB{align1};
+add (16) g46.0<1>UW g88.3<16,8,1>UB g88.4<16,8,1>UB{align1};
+add (16) g47.0<1>UW g89.3<16,8,1>UB g89.4<16,8,1>UB{align1};
+add (16) g44.0<1>UW g44.0<16,16,1>UW g87.3<16,8,1>UB{align1};
+add (16) g45.0<1>UW g45.0<16,16,1>UW g88.3<16,8,1>UB{align1};
+add (16) g46.0<1>UW g46.0<16,16,1>UW g89.3<16,8,1>UB{align1};
+add (16) g47.0<1>UW g47.0<16,16,1>UW g90.3<16,8,1>UB{align1};
+
+add (16) g44.0<1>UW g44.0<16,16,1>UW g87.4<16,8,1>UB{align1};
+add (16) g45.0<1>UW g45.0<16,16,1>UW g88.4<16,8,1>UB{align1};
+add (16) g46.0<1>UW g46.0<16,16,1>UW g89.4<16,8,1>UB{align1};
+add (16) g47.0<1>UW g47.0<16,16,1>UW g90.4<16,8,1>UB{align1};
+add (16) g48.0<1>UW g94.3<16,8,1>UB g95.3<16,8,1>UB{align1};
+add (16) g49.0<1>UW g95.3<16,8,1>UB g96.3<16,8,1>UB{align1};
+add (16) g50.0<1>UW g96.3<16,8,1>UB g97.3<16,8,1>UB{align1};
+add (16) g51.0<1>UW g97.3<16,8,1>UB g98.3<16,8,1>UB{align1};
+
+add (16) g48.0<1>UW g48.0<16,16,1>UW g94.4<16,8,1>UB{align1};
+add (16) g49.0<1>UW g49.0<16,16,1>UW g95.4<16,8,1>UB{align1};
+add (16) g50.0<1>UW g50.0<16,16,1>UW g96.4<16,8,1>UB{align1};
+add (16) g51.0<1>UW g51.0<16,16,1>UW g97.4<16,8,1>UB{align1};
+add (16) g48.0<1>UW g48.0<16,16,1>UW g95.4<16,8,1>UB{align1};
+add (16) g49.0<1>UW g49.0<16,16,1>UW g96.4<16,8,1>UB{align1};
+add (16) g50.0<1>UW g50.0<16,16,1>UW g97.4<16,8,1>UB{align1};
+add (16) g51.0<1>UW g51.0<16,16,1>UW g98.4<16,8,1>UB{align1};
+out:
+
+shr.sat (16) g44.0<1>UW g44.0<16,16,1>UW 2UW {align1};
+shr.sat (16) g45.0<1>UW g45.0<16,16,1>UW 2UW {align1};
+shr.sat (16) g46.0<1>UW g46.0<16,16,1>UW 2UW {align1};
+shr.sat (16) g47.0<1>UW g47.0<16,16,1>UW 2UW {align1};
+shr.sat (16) g48.0<1>UW g48.0<16,16,1>UW 2UW {align1};
+shr.sat (16) g49.0<1>UW g49.0<16,16,1>UW 2UW {align1};
+shr.sat (16) g50.0<1>UW g50.0<16,16,1>UW 2UW {align1};
+shr.sat (16) g51.0<1>UW g51.0<16,16,1>UW 2UW {align1};
diff --git a/src/xvmc/shader/mc/read_frame_x1y1_uv_igd.g4i b/src/xvmc/shader/mc/read_frame_x1y1_uv_igd.g4i
new file mode 100644
index 0000000..96aada8
--- /dev/null
+++ b/src/xvmc/shader/mc/read_frame_x1y1_uv_igd.g4i
@@ -0,0 +1,71 @@
+/*
+ * Copyright © 2008 Intel Corporation
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice (including the next
+ * paragraph) shall be included in all copies or substantial portions of the
+ * Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
+ * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+ * SOFTWARE.
+ *
+ * Author:
+ *    Zou Nan hai <nanhai.zou at intel.com>
+ *    Zhang Hua jun <huajun.zhang at intel.com>
+ *    Xing Dong sheng <dongsheng.xing at intel.com>
+ *
+ */
+send (16) 0 g86.0<1>UW g2<8,8,1>UW read(input_surface1, 2, 0, 2) mlen 1 rlen 4 {align1};
+send (16) 0 g94.0<1>UW g2<8,8,1>UW read(input_surface2, 2, 0, 2) mlen 1 rlen 4 {align1};
+mov (1) g2.8<1>UD 0x01001FUD {align1};
+add (1) g2.4<1>UD g2.4<1,1,1>UD 8D {align1};
+send (16) 0 g90.0<1>UW g2<8,8,1>UW read(input_surface1, 2, 0, 2) mlen 1 rlen 1 {align1};
+send (16) 0 g98.0<1>UW g2<8,8,1>UW read(input_surface2, 2, 0, 2) mlen 1 rlen 1 {align1};
+mov (1) g2.8<1>UD 0x007000fUD  {align1};
+
+add (16) g44.0<1>UW g86.0<16,8,1>UB g86.1<16,8,1>UB{align1};
+add (16) g45.0<1>UW g87.0<16,8,1>UB g87.1<16,8,1>UB{align1};
+add (16) g46.0<1>UW g88.0<16,8,1>UB g88.1<16,8,1>UB{align1};
+add (16) g47.0<1>UW g89.0<16,8,1>UB g89.1<16,8,1>UB{align1};
+add (16) g44.0<1>UW g44.0<16,16,1>UW g87.0<16,8,1>UB{align1};
+add (16) g45.0<1>UW g45.0<16,16,1>UW g88.0<16,8,1>UB{align1};
+add (16) g46.0<1>UW g46.0<16,16,1>UW g89.0<16,8,1>UB{align1};
+add (16) g47.0<1>UW g47.0<16,16,1>UW g90.0<16,8,1>UB{align1};
+
+add (16) g44.0<1>UW g44.0<16,16,1>UW g87.1<16,8,1>UB{align1};
+add (16) g45.0<1>UW g45.0<16,16,1>UW g88.1<16,8,1>UB{align1};
+add (16) g46.0<1>UW g46.0<16,16,1>UW g89.1<16,8,1>UB{align1};
+add (16) g47.0<1>UW g47.0<16,16,1>UW g90.1<16,8,1>UB{align1};
+add (16) g48.0<1>UW g94.0<16,8,1>UB g95.0<16,8,1>UB{align1};
+add (16) g49.0<1>UW g95.0<16,8,1>UB g96.0<16,8,1>UB{align1};
+add (16) g50.0<1>UW g96.0<16,8,1>UB g97.0<16,8,1>UB{align1};
+add (16) g51.0<1>UW g97.0<16,8,1>UB g98.0<16,8,1>UB{align1};
+
+add (16) g48.0<1>UW g48.0<16,16,1>UW g94.1<16,8,1>UB{align1};
+add (16) g49.0<1>UW g49.0<16,16,1>UW g95.1<16,8,1>UB{align1};
+add (16) g50.0<1>UW g50.0<16,16,1>UW g96.1<16,8,1>UB{align1};
+add (16) g51.0<1>UW g51.0<16,16,1>UW g97.1<16,8,1>UB{align1};
+add (16) g48.0<1>UW g48.0<16,16,1>UW g95.1<16,8,1>UB{align1};
+add (16) g49.0<1>UW g49.0<16,16,1>UW g96.1<16,8,1>UB{align1};
+add (16) g50.0<1>UW g50.0<16,16,1>UW g97.1<16,8,1>UB{align1};
+add (16) g51.0<1>UW g51.0<16,16,1>UW g98.1<16,8,1>UB{align1};
+
+shr.sat (16) g44.0<1>UW g44.0<16,16,1>UW 2UW {align1};
+shr.sat (16) g45.0<1>UW g45.0<16,16,1>UW 2UW {align1};
+shr.sat (16) g46.0<1>UW g46.0<16,16,1>UW 2UW {align1};
+shr.sat (16) g47.0<1>UW g47.0<16,16,1>UW 2UW {align1};
+shr.sat (16) g48.0<1>UW g48.0<16,16,1>UW 2UW {align1};
+shr.sat (16) g49.0<1>UW g49.0<16,16,1>UW 2UW {align1};
+shr.sat (16) g50.0<1>UW g50.0<16,16,1>UW 2UW {align1};
+shr.sat (16) g51.0<1>UW g51.0<16,16,1>UW 2UW {align1};
diff --git a/src/xvmc/shader/mc/read_frame_x1y1_y.g4i b/src/xvmc/shader/mc/read_frame_x1y1_y.g4i
new file mode 100644
index 0000000..fa55d86
--- /dev/null
+++ b/src/xvmc/shader/mc/read_frame_x1y1_y.g4i
@@ -0,0 +1,264 @@
+/*
+ * Copyright © 2008 Intel Corporation
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice (including the next
+ * paragraph) shall be included in all copies or substantial portions of the
+ * Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
+ * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+ * SOFTWARE.
+ *
+ * Author:
+ *    Zou Nan hai <nanhai.zou at intel.com>
+ *    Zhang Hua jun <huajun.zhang at intel.com>
+ *    Xing Dong sheng <dongsheng.xing at intel.com>
+ *
+ */
+mov (1) g2.8<1>UD 0x007001FUD {align1};
+send (16) 0 g98.0<1>UW g2<8,8,1>UW read(input_surface, 2, 0, 2) mlen 1 rlen 8 {align1};
+
+and (1) g2.24<1>UD g2.0<1,1,1>UD 3UD {align1};
+mul(1) g2.24<1>UD g2.24<1,1,1>UD 49UD {align1};
+add (1) g2.4<1>UD g2.4<1,1,1>UD 8UD {align1};
+send (16) 0 g106.0<1>UW g2<8,8,1>UW read(input_surface, 2, 0, 2) mlen 1 rlen 8 {align1};
+add (1) g2.4<1>UD g2.4<1,1,1>UD 8UD {align1};
+mov (1) g2.8<1>UD 0x1FUD {align1};
+send (16) 0 g120.0<1>UW g2<8,8,1>UW read(input_surface, 2, 0, 2) mlen 1 rlen 1 {align1};
+
+jmpi g2.24<1,1,1>D;
+
+add (16) g28.0<1>UW g98.0<16,16,1>UB g98.1<16,16,1>UB {align1};
+add (16) g29.0<1>UW g99.0<16,16,1>UB g99.1<16,16,1>UB {align1};
+add (16) g30.0<1>UW g100.0<16,16,1>UB g100.1<16,16,1>UB {align1};
+add (16) g31.0<1>UW g101.0<16,16,1>UB g101.1<16,16,1>UB {align1};
+add (16) g32.0<1>UW g102.0<16,16,1>UB g102.1<16,16,1>UB {align1};
+add (16) g33.0<1>UW g103.0<16,16,1>UB g103.1<16,16,1>UB {align1};
+add (16) g34.0<1>UW g104.0<16,16,1>UB g104.1<16,16,1>UB {align1};
+add (16) g35.0<1>UW g105.0<16,16,1>UB g105.1<16,16,1>UB {align1};
+add (16) g36.0<1>UW g106.0<16,16,1>UB g106.1<16,16,1>UB {align1};
+add (16) g37.0<1>UW g107.0<16,16,1>UB g107.1<16,16,1>UB {align1};
+add (16) g38.0<1>UW g108.0<16,16,1>UB g108.1<16,16,1>UB {align1};
+add (16) g39.0<1>UW g109.0<16,16,1>UB g109.1<16,16,1>UB {align1};
+add (16) g40.0<1>UW g110.0<16,16,1>UB g110.1<16,16,1>UB {align1};
+add (16) g41.0<1>UW g111.0<16,16,1>UB g111.1<16,16,1>UB {align1};
+add (16) g42.0<1>UW g112.0<16,16,1>UB g112.1<16,16,1>UB {align1};
+add (16) g43.0<1>UW g113.0<16,16,1>UB g113.1<16,16,1>UB {align1};
+
+add (16) g28.0<1>UW g28.0<16,16,1>UW g99.0<16,16,1>UB {align1};
+add (16) g29.0<1>UW g29.0<16,16,1>UW g100.0<16,16,1>UB {align1};
+add (16) g30.0<1>UW g30.0<16,16,1>UW g101.0<16,16,1>UB {align1};
+add (16) g31.0<1>UW g31.0<16,16,1>UW g102.0<16,16,1>UB {align1};
+add (16) g32.0<1>UW g32.0<16,16,1>UW g103.0<16,16,1>UB {align1};
+add (16) g33.0<1>UW g33.0<16,16,1>UW g104.0<16,16,1>UB {align1};
+add (16) g34.0<1>UW g34.0<16,16,1>UW g105.0<16,16,1>UB {align1};
+add (16) g35.0<1>UW g35.0<16,16,1>UW g106.0<16,16,1>UB {align1};
+add (16) g36.0<1>UW g36.0<16,16,1>UW g107.0<16,16,1>UB {align1};
+add (16) g37.0<1>UW g37.0<16,16,1>UW g108.0<16,16,1>UB {align1};
+add (16) g38.0<1>UW g38.0<16,16,1>UW g109.0<16,16,1>UB {align1};
+add (16) g39.0<1>UW g39.0<16,16,1>UW g110.0<16,16,1>UB {align1};
+add (16) g40.0<1>UW g40.0<16,16,1>UW g111.0<16,16,1>UB {align1};
+add (16) g41.0<1>UW g41.0<16,16,1>UW g112.0<16,16,1>UB {align1};
+add (16) g42.0<1>UW g42.0<16,16,1>UW g113.0<16,16,1>UB {align1};
+add (16) g43.0<1>UW g43.0<16,16,1>UW g120.0<16,16,1>UB {align1};
+
+add (16) g28.0<1>UW g28.0<16,16,1>UW g99.1<16,16,1>UB {align1};
+add (16) g29.0<1>UW g29.0<16,16,1>UW g100.1<16,16,1>UB {align1};
+add (16) g30.0<1>UW g30.0<16,16,1>UW g101.1<16,16,1>UB {align1};
+add (16) g31.0<1>UW g31.0<16,16,1>UW g102.1<16,16,1>UB {align1};
+add (16) g32.0<1>UW g32.0<16,16,1>UW g103.1<16,16,1>UB {align1};
+add (16) g33.0<1>UW g33.0<16,16,1>UW g104.1<16,16,1>UB {align1};
+add (16) g34.0<1>UW g34.0<16,16,1>UW g105.1<16,16,1>UB {align1};
+add (16) g35.0<1>UW g35.0<16,16,1>UW g106.1<16,16,1>UB {align1};
+add (16) g36.0<1>UW g36.0<16,16,1>UW g107.1<16,16,1>UB {align1};
+add (16) g37.0<1>UW g37.0<16,16,1>UW g108.1<16,16,1>UB {align1};
+add (16) g38.0<1>UW g38.0<16,16,1>UW g109.1<16,16,1>UB {align1};
+add (16) g39.0<1>UW g39.0<16,16,1>UW g110.1<16,16,1>UB {align1};
+add (16) g40.0<1>UW g40.0<16,16,1>UW g111.1<16,16,1>UB {align1};
+add (16) g41.0<1>UW g41.0<16,16,1>UW g112.1<16,16,1>UB {align1};
+add (16) g42.0<1>UW g42.0<16,16,1>UW g113.1<16,16,1>UB {align1};
+add (16) g43.0<1>UW g43.0<16,16,1>UW g120.1<16,16,1>UB {align1};
+jmpi out;
+
+add (16) g28.0<1>UW g98.1<16,16,1>UB g98.2<16,16,1>UB {align1};
+add (16) g29.0<1>UW g99.1<16,16,1>UB g99.2<16,16,1>UB {align1};
+add (16) g30.0<1>UW g100.1<16,16,1>UB g100.2<16,16,1>UB {align1};
+add (16) g31.0<1>UW g101.1<16,16,1>UB g101.2<16,16,1>UB {align1};
+add (16) g32.0<1>UW g102.1<16,16,1>UB g102.2<16,16,1>UB {align1};
+add (16) g33.0<1>UW g103.1<16,16,1>UB g103.2<16,16,1>UB {align1};
+add (16) g34.0<1>UW g104.1<16,16,1>UB g104.2<16,16,1>UB {align1};
+add (16) g35.0<1>UW g105.1<16,16,1>UB g105.2<16,16,1>UB {align1};
+add (16) g36.0<1>UW g106.1<16,16,1>UB g106.2<16,16,1>UB {align1};
+add (16) g37.0<1>UW g107.1<16,16,1>UB g107.2<16,16,1>UB {align1};
+add (16) g38.0<1>UW g108.1<16,16,1>UB g108.2<16,16,1>UB {align1};
+add (16) g39.0<1>UW g109.1<16,16,1>UB g109.2<16,16,1>UB {align1};
+add (16) g40.0<1>UW g110.1<16,16,1>UB g110.2<16,16,1>UB {align1};
+add (16) g41.0<1>UW g111.1<16,16,1>UB g111.2<16,16,1>UB {align1};
+add (16) g42.0<1>UW g112.1<16,16,1>UB g112.2<16,16,1>UB {align1};
+add (16) g43.0<1>UW g113.1<16,16,1>UB g113.2<16,16,1>UB {align1};
+
+add (16) g28.0<1>UW g28.0<16,16,1>UW g99.1<16,16,1>UB {align1};
+add (16) g29.0<1>UW g29.0<16,16,1>UW g100.1<16,16,1>UB {align1};
+add (16) g30.0<1>UW g30.0<16,16,1>UW g101.1<16,16,1>UB {align1};
+add (16) g31.0<1>UW g31.0<16,16,1>UW g102.1<16,16,1>UB {align1};
+add (16) g32.0<1>UW g32.0<16,16,1>UW g103.1<16,16,1>UB {align1};
+add (16) g33.0<1>UW g33.0<16,16,1>UW g104.1<16,16,1>UB {align1};
+add (16) g34.0<1>UW g34.0<16,16,1>UW g105.1<16,16,1>UB {align1};
+add (16) g35.0<1>UW g35.0<16,16,1>UW g106.1<16,16,1>UB {align1};
+add (16) g36.0<1>UW g36.0<16,16,1>UW g107.1<16,16,1>UB {align1};
+add (16) g37.0<1>UW g37.0<16,16,1>UW g108.1<16,16,1>UB {align1};
+add (16) g38.0<1>UW g38.0<16,16,1>UW g109.1<16,16,1>UB {align1};
+add (16) g39.0<1>UW g39.0<16,16,1>UW g110.1<16,16,1>UB {align1};
+add (16) g40.0<1>UW g40.0<16,16,1>UW g111.1<16,16,1>UB {align1};
+add (16) g41.0<1>UW g41.0<16,16,1>UW g112.1<16,16,1>UB {align1};
+add (16) g42.0<1>UW g42.0<16,16,1>UW g113.1<16,16,1>UB {align1};
+add (16) g43.0<1>UW g43.0<16,16,1>UW g120.1<16,16,1>UB {align1};
+
+add (16) g28.0<1>UW g28.0<16,16,1>UW g99.2<16,16,1>UB {align1};
+add (16) g29.0<1>UW g29.0<16,16,1>UW g100.2<16,16,1>UB {align1};
+add (16) g30.0<1>UW g30.0<16,16,1>UW g101.2<16,16,1>UB {align1};
+add (16) g31.0<1>UW g31.0<16,16,1>UW g102.2<16,16,1>UB {align1};
+add (16) g32.0<1>UW g32.0<16,16,1>UW g103.2<16,16,1>UB {align1};
+add (16) g33.0<1>UW g33.0<16,16,1>UW g104.2<16,16,1>UB {align1};
+add (16) g34.0<1>UW g34.0<16,16,1>UW g105.2<16,16,1>UB {align1};
+add (16) g35.0<1>UW g35.0<16,16,1>UW g106.2<16,16,1>UB {align1};
+add (16) g36.0<1>UW g36.0<16,16,1>UW g107.2<16,16,1>UB {align1};
+add (16) g37.0<1>UW g37.0<16,16,1>UW g108.2<16,16,1>UB {align1};
+add (16) g38.0<1>UW g38.0<16,16,1>UW g109.2<16,16,1>UB {align1};
+add (16) g39.0<1>UW g39.0<16,16,1>UW g110.2<16,16,1>UB {align1};
+add (16) g40.0<1>UW g40.0<16,16,1>UW g111.2<16,16,1>UB {align1};
+add (16) g41.0<1>UW g41.0<16,16,1>UW g112.2<16,16,1>UB {align1};
+add (16) g42.0<1>UW g42.0<16,16,1>UW g113.2<16,16,1>UB {align1};
+add (16) g43.0<1>UW g43.0<16,16,1>UW g120.2<16,16,1>UB {align1};
+jmpi out;
+
+add (16) g28.0<1>UW g98.2<16,16,1>UB g98.3<16,16,1>UB {align1};
+add (16) g29.0<1>UW g99.2<16,16,1>UB g99.3<16,16,1>UB {align1};
+add (16) g30.0<1>UW g100.2<16,16,1>UB g100.3<16,16,1>UB {align1};
+add (16) g31.0<1>UW g101.2<16,16,1>UB g101.3<16,16,1>UB {align1};
+add (16) g32.0<1>UW g102.2<16,16,1>UB g102.3<16,16,1>UB {align1};
+add (16) g33.0<1>UW g103.2<16,16,1>UB g103.3<16,16,1>UB {align1};
+add (16) g34.0<1>UW g104.2<16,16,1>UB g104.3<16,16,1>UB {align1};
+add (16) g35.0<1>UW g105.2<16,16,1>UB g105.3<16,16,1>UB {align1};
+add (16) g36.0<1>UW g106.2<16,16,1>UB g106.3<16,16,1>UB {align1};
+add (16) g37.0<1>UW g107.2<16,16,1>UB g107.3<16,16,1>UB {align1};
+add (16) g38.0<1>UW g108.2<16,16,1>UB g108.3<16,16,1>UB {align1};
+add (16) g39.0<1>UW g109.2<16,16,1>UB g109.3<16,16,1>UB {align1};
+add (16) g40.0<1>UW g110.2<16,16,1>UB g110.3<16,16,1>UB {align1};
+add (16) g41.0<1>UW g111.2<16,16,1>UB g111.3<16,16,1>UB {align1};
+add (16) g42.0<1>UW g112.2<16,16,1>UB g112.3<16,16,1>UB {align1};
+add (16) g43.0<1>UW g113.2<16,16,1>UB g113.3<16,16,1>UB {align1};
+
+add (16) g28.0<1>UW g28.0<16,16,1>UW g99.2<16,16,1>UB {align1};
+add (16) g29.0<1>UW g29.0<16,16,1>UW g100.2<16,16,1>UB {align1};
+add (16) g30.0<1>UW g30.0<16,16,1>UW g101.2<16,16,1>UB {align1};
+add (16) g31.0<1>UW g31.0<16,16,1>UW g102.2<16,16,1>UB {align1};
+add (16) g32.0<1>UW g32.0<16,16,1>UW g103.2<16,16,1>UB {align1};
+add (16) g33.0<1>UW g33.0<16,16,1>UW g104.2<16,16,1>UB {align1};
+add (16) g34.0<1>UW g34.0<16,16,1>UW g105.2<16,16,1>UB {align1};
+add (16) g35.0<1>UW g35.0<16,16,1>UW g106.2<16,16,1>UB {align1};
+add (16) g36.0<1>UW g36.0<16,16,1>UW g107.2<16,16,1>UB {align1};
+add (16) g37.0<1>UW g37.0<16,16,1>UW g108.2<16,16,1>UB {align1};
+add (16) g38.0<1>UW g38.0<16,16,1>UW g109.2<16,16,1>UB {align1};
+add (16) g39.0<1>UW g39.0<16,16,1>UW g110.2<16,16,1>UB {align1};
+add (16) g40.0<1>UW g40.0<16,16,1>UW g111.2<16,16,1>UB {align1};
+add (16) g41.0<1>UW g41.0<16,16,1>UW g112.2<16,16,1>UB {align1};
+add (16) g42.0<1>UW g42.0<16,16,1>UW g113.2<16,16,1>UB {align1};
+add (16) g43.0<1>UW g43.0<16,16,1>UW g120.2<16,16,1>UB {align1};
+
+add (16) g28.0<1>UW g28.0<16,16,1>UW g99.3<16,16,1>UB {align1};
+add (16) g29.0<1>UW g29.0<16,16,1>UW g100.3<16,16,1>UB {align1};
+add (16) g30.0<1>UW g30.0<16,16,1>UW g101.3<16,16,1>UB {align1};
+add (16) g31.0<1>UW g31.0<16,16,1>UW g102.3<16,16,1>UB {align1};
+add (16) g32.0<1>UW g32.0<16,16,1>UW g103.3<16,16,1>UB {align1};
+add (16) g33.0<1>UW g33.0<16,16,1>UW g104.3<16,16,1>UB {align1};
+add (16) g34.0<1>UW g34.0<16,16,1>UW g105.3<16,16,1>UB {align1};
+add (16) g35.0<1>UW g35.0<16,16,1>UW g106.3<16,16,1>UB {align1};
+add (16) g36.0<1>UW g36.0<16,16,1>UW g107.3<16,16,1>UB {align1};
+add (16) g37.0<1>UW g37.0<16,16,1>UW g108.3<16,16,1>UB {align1};
+add (16) g38.0<1>UW g38.0<16,16,1>UW g109.3<16,16,1>UB {align1};
+add (16) g39.0<1>UW g39.0<16,16,1>UW g110.3<16,16,1>UB {align1};
+add (16) g40.0<1>UW g40.0<16,16,1>UW g111.3<16,16,1>UB {align1};
+add (16) g41.0<1>UW g41.0<16,16,1>UW g112.3<16,16,1>UB {align1};
+add (16) g42.0<1>UW g42.0<16,16,1>UW g113.3<16,16,1>UB {align1};
+add (16) g43.0<1>UW g43.0<16,16,1>UW g120.3<16,16,1>UB {align1};
+jmpi out;
+add (16) g28.0<1>UW g98.3<16,16,1>UB g98.4<16,16,1>UB {align1};
+add (16) g29.0<1>UW g99.3<16,16,1>UB g99.4<16,16,1>UB {align1};
+add (16) g30.0<1>UW g100.3<16,16,1>UB g100.4<16,16,1>UB {align1};
+add (16) g31.0<1>UW g101.3<16,16,1>UB g101.4<16,16,1>UB {align1};
+add (16) g32.0<1>UW g102.3<16,16,1>UB g102.4<16,16,1>UB {align1};
+add (16) g33.0<1>UW g103.3<16,16,1>UB g103.4<16,16,1>UB {align1};
+add (16) g34.0<1>UW g104.3<16,16,1>UB g104.4<16,16,1>UB {align1};
+add (16) g35.0<1>UW g105.3<16,16,1>UB g105.4<16,16,1>UB {align1};
+add (16) g36.0<1>UW g106.3<16,16,1>UB g106.4<16,16,1>UB {align1};
+add (16) g37.0<1>UW g107.3<16,16,1>UB g107.4<16,16,1>UB {align1};
+add (16) g38.0<1>UW g108.3<16,16,1>UB g108.4<16,16,1>UB {align1};
+add (16) g39.0<1>UW g109.3<16,16,1>UB g109.4<16,16,1>UB {align1};
+add (16) g40.0<1>UW g110.3<16,16,1>UB g110.4<16,16,1>UB {align1};
+add (16) g41.0<1>UW g111.3<16,16,1>UB g111.4<16,16,1>UB {align1};
+add (16) g42.0<1>UW g112.3<16,16,1>UB g112.4<16,16,1>UB {align1};
+add (16) g43.0<1>UW g113.3<16,16,1>UB g113.4<16,16,1>UB {align1};
+
+add (16) g28.0<1>UW g28.0<16,16,1>UW g99.3<16,16,1>UB {align1};
+add (16) g29.0<1>UW g29.0<16,16,1>UW g100.3<16,16,1>UB {align1};
+add (16) g30.0<1>UW g30.0<16,16,1>UW g101.3<16,16,1>UB {align1};
+add (16) g31.0<1>UW g31.0<16,16,1>UW g102.3<16,16,1>UB {align1};
+add (16) g32.0<1>UW g32.0<16,16,1>UW g103.3<16,16,1>UB {align1};
+add (16) g33.0<1>UW g33.0<16,16,1>UW g104.3<16,16,1>UB {align1};
+add (16) g34.0<1>UW g34.0<16,16,1>UW g105.3<16,16,1>UB {align1};
+add (16) g35.0<1>UW g35.0<16,16,1>UW g106.3<16,16,1>UB {align1};
+add (16) g36.0<1>UW g36.0<16,16,1>UW g107.3<16,16,1>UB {align1};
+add (16) g37.0<1>UW g37.0<16,16,1>UW g108.3<16,16,1>UB {align1};
+add (16) g38.0<1>UW g38.0<16,16,1>UW g109.3<16,16,1>UB {align1};
+add (16) g39.0<1>UW g39.0<16,16,1>UW g110.3<16,16,1>UB {align1};
+add (16) g40.0<1>UW g40.0<16,16,1>UW g111.3<16,16,1>UB {align1};
+add (16) g41.0<1>UW g41.0<16,16,1>UW g112.3<16,16,1>UB {align1};
+add (16) g42.0<1>UW g42.0<16,16,1>UW g113.3<16,16,1>UB {align1};
+add (16) g43.0<1>UW g43.0<16,16,1>UW g120.3<16,16,1>UB {align1};
+
+add (16) g28.0<1>UW g28.0<16,16,1>UW g99.4<16,16,1>UB {align1};
+add (16) g29.0<1>UW g29.0<16,16,1>UW g100.4<16,16,1>UB {align1};
+add (16) g30.0<1>UW g30.0<16,16,1>UW g101.4<16,16,1>UB {align1};
+add (16) g31.0<1>UW g31.0<16,16,1>UW g102.4<16,16,1>UB {align1};
+add (16) g32.0<1>UW g32.0<16,16,1>UW g103.4<16,16,1>UB {align1};
+add (16) g33.0<1>UW g33.0<16,16,1>UW g104.4<16,16,1>UB {align1};
+add (16) g34.0<1>UW g34.0<16,16,1>UW g105.4<16,16,1>UB {align1};
+add (16) g35.0<1>UW g35.0<16,16,1>UW g106.4<16,16,1>UB {align1};
+add (16) g36.0<1>UW g36.0<16,16,1>UW g107.4<16,16,1>UB {align1};
+add (16) g37.0<1>UW g37.0<16,16,1>UW g108.4<16,16,1>UB {align1};
+add (16) g38.0<1>UW g38.0<16,16,1>UW g109.4<16,16,1>UB {align1};
+add (16) g39.0<1>UW g39.0<16,16,1>UW g110.4<16,16,1>UB {align1};
+add (16) g40.0<1>UW g40.0<16,16,1>UW g111.4<16,16,1>UB {align1};
+add (16) g41.0<1>UW g41.0<16,16,1>UW g112.4<16,16,1>UB {align1};
+add (16) g42.0<1>UW g42.0<16,16,1>UW g113.4<16,16,1>UB {align1};
+add (16) g43.0<1>UW g43.0<16,16,1>UW g120.4<16,16,1>UB {align1};
+
+out:
+shr.sat (16) g28.0<1>UW g28.0<16,16,1>UW 2UW {align1};
+shr.sat (16) g29.0<1>UW g29.0<16,16,1>UW 2UW {align1};
+shr.sat (16) g30.0<1>UW g30.0<16,16,1>UW 2UW {align1};
+shr.sat (16) g31.0<1>UW g31.0<16,16,1>UW 2UW {align1};
+shr.sat (16) g32.0<1>UW g32.0<16,16,1>UW 2UW {align1};
+shr.sat (16) g33.0<1>UW g33.0<16,16,1>UW 2UW {align1};
+shr.sat (16) g34.0<1>UW g34.0<16,16,1>UW 2UW {align1};
+shr.sat (16) g35.0<1>UW g35.0<16,16,1>UW 2UW {align1};
+shr.sat (16) g36.0<1>UW g36.0<16,16,1>UW 2UW {align1};
+shr.sat (16) g37.0<1>UW g37.0<16,16,1>UW 2UW {align1};
+shr.sat (16) g38.0<1>UW g38.0<16,16,1>UW 2UW {align1};
+shr.sat (16) g39.0<1>UW g39.0<16,16,1>UW 2UW {align1};
+shr.sat (16) g40.0<1>UW g40.0<16,16,1>UW 2UW {align1};
+shr.sat (16) g41.0<1>UW g41.0<16,16,1>UW 2UW {align1};
+shr.sat (16) g42.0<1>UW g42.0<16,16,1>UW 2UW {align1};
+shr.sat (16) g43.0<1>UW g43.0<16,16,1>UW 2UW {align1};
diff --git a/src/xvmc/shader/mc/read_frame_x1y1_y_igd.g4i b/src/xvmc/shader/mc/read_frame_x1y1_y_igd.g4i
new file mode 100644
index 0000000..89adc38
--- /dev/null
+++ b/src/xvmc/shader/mc/read_frame_x1y1_y_igd.g4i
@@ -0,0 +1,105 @@
+/*
+ * Copyright © 2008 Intel Corporation
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice (including the next
+ * paragraph) shall be included in all copies or substantial portions of the
+ * Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
+ * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+ * SOFTWARE.
+ *
+ * Author:
+ *    Zou Nan hai <nanhai.zou at intel.com>
+ *    Zhang Hua jun <huajun.zhang at intel.com>
+ *    Xing Dong sheng <dongsheng.xing at intel.com>
+ *
+ */
+mov (1) g2.8<1>UD 0x007001FUD {align1};
+send (16) 0 g98.0<1>UW g2<8,8,1>UW read(input_surface, 2, 0, 2) mlen 1 rlen 8 {align1};
+
+add (1) g2.4<1>UD g2.4<1,1,1>UD 8UD {align1};
+send (16) 0 g106.0<1>UW g2<8,8,1>UW read(input_surface, 2, 0, 2) mlen 1 rlen 8 {align1};
+add (1) g2.4<1>UD g2.4<1,1,1>UD 8UD {align1};
+mov (1) g2.8<1>UD 0x1FUD {align1};
+send (16) 0 g120.0<1>UW g2<8,8,1>UW read(input_surface, 2, 0, 2) mlen 1 rlen 1 {align1};
+
+
+add (16) g28.0<1>UW g98.0<16,16,1>UB g98.1<16,16,1>UB {align1};
+add (16) g29.0<1>UW g99.0<16,16,1>UB g99.1<16,16,1>UB {align1};
+add (16) g30.0<1>UW g100.0<16,16,1>UB g100.1<16,16,1>UB {align1};
+add (16) g31.0<1>UW g101.0<16,16,1>UB g101.1<16,16,1>UB {align1};
+add (16) g32.0<1>UW g102.0<16,16,1>UB g102.1<16,16,1>UB {align1};
+add (16) g33.0<1>UW g103.0<16,16,1>UB g103.1<16,16,1>UB {align1};
+add (16) g34.0<1>UW g104.0<16,16,1>UB g104.1<16,16,1>UB {align1};
+add (16) g35.0<1>UW g105.0<16,16,1>UB g105.1<16,16,1>UB {align1};
+add (16) g36.0<1>UW g106.0<16,16,1>UB g106.1<16,16,1>UB {align1};
+add (16) g37.0<1>UW g107.0<16,16,1>UB g107.1<16,16,1>UB {align1};
+add (16) g38.0<1>UW g108.0<16,16,1>UB g108.1<16,16,1>UB {align1};
+add (16) g39.0<1>UW g109.0<16,16,1>UB g109.1<16,16,1>UB {align1};
+add (16) g40.0<1>UW g110.0<16,16,1>UB g110.1<16,16,1>UB {align1};
+add (16) g41.0<1>UW g111.0<16,16,1>UB g111.1<16,16,1>UB {align1};
+add (16) g42.0<1>UW g112.0<16,16,1>UB g112.1<16,16,1>UB {align1};
+add (16) g43.0<1>UW g113.0<16,16,1>UB g113.1<16,16,1>UB {align1};
+
+add (16) g28.0<1>UW g28.0<16,16,1>UW g99.0<16,16,1>UB {align1};
+add (16) g29.0<1>UW g29.0<16,16,1>UW g100.0<16,16,1>UB {align1};
+add (16) g30.0<1>UW g30.0<16,16,1>UW g101.0<16,16,1>UB {align1};
+add (16) g31.0<1>UW g31.0<16,16,1>UW g102.0<16,16,1>UB {align1};
+add (16) g32.0<1>UW g32.0<16,16,1>UW g103.0<16,16,1>UB {align1};
+add (16) g33.0<1>UW g33.0<16,16,1>UW g104.0<16,16,1>UB {align1};
+add (16) g34.0<1>UW g34.0<16,16,1>UW g105.0<16,16,1>UB {align1};
+add (16) g35.0<1>UW g35.0<16,16,1>UW g106.0<16,16,1>UB {align1};
+add (16) g36.0<1>UW g36.0<16,16,1>UW g107.0<16,16,1>UB {align1};
+add (16) g37.0<1>UW g37.0<16,16,1>UW g108.0<16,16,1>UB {align1};
+add (16) g38.0<1>UW g38.0<16,16,1>UW g109.0<16,16,1>UB {align1};
+add (16) g39.0<1>UW g39.0<16,16,1>UW g110.0<16,16,1>UB {align1};
+add (16) g40.0<1>UW g40.0<16,16,1>UW g111.0<16,16,1>UB {align1};
+add (16) g41.0<1>UW g41.0<16,16,1>UW g112.0<16,16,1>UB {align1};
+add (16) g42.0<1>UW g42.0<16,16,1>UW g113.0<16,16,1>UB {align1};
+add (16) g43.0<1>UW g43.0<16,16,1>UW g120.0<16,16,1>UB {align1};
+
+add (16) g28.0<1>UW g28.0<16,16,1>UW g99.1<16,16,1>UB {align1};
+add (16) g29.0<1>UW g29.0<16,16,1>UW g100.1<16,16,1>UB {align1};
+add (16) g30.0<1>UW g30.0<16,16,1>UW g101.1<16,16,1>UB {align1};
+add (16) g31.0<1>UW g31.0<16,16,1>UW g102.1<16,16,1>UB {align1};
+add (16) g32.0<1>UW g32.0<16,16,1>UW g103.1<16,16,1>UB {align1};
+add (16) g33.0<1>UW g33.0<16,16,1>UW g104.1<16,16,1>UB {align1};
+add (16) g34.0<1>UW g34.0<16,16,1>UW g105.1<16,16,1>UB {align1};
+add (16) g35.0<1>UW g35.0<16,16,1>UW g106.1<16,16,1>UB {align1};
+add (16) g36.0<1>UW g36.0<16,16,1>UW g107.1<16,16,1>UB {align1};
+add (16) g37.0<1>UW g37.0<16,16,1>UW g108.1<16,16,1>UB {align1};
+add (16) g38.0<1>UW g38.0<16,16,1>UW g109.1<16,16,1>UB {align1};
+add (16) g39.0<1>UW g39.0<16,16,1>UW g110.1<16,16,1>UB {align1};
+add (16) g40.0<1>UW g40.0<16,16,1>UW g111.1<16,16,1>UB {align1};
+add (16) g41.0<1>UW g41.0<16,16,1>UW g112.1<16,16,1>UB {align1};
+add (16) g42.0<1>UW g42.0<16,16,1>UW g113.1<16,16,1>UB {align1};
+add (16) g43.0<1>UW g43.0<16,16,1>UW g120.1<16,16,1>UB {align1};
+
+shr.sat (16) g28.0<1>UW g28.0<16,16,1>UW 2UW {align1};
+shr.sat (16) g29.0<1>UW g29.0<16,16,1>UW 2UW {align1};
+shr.sat (16) g30.0<1>UW g30.0<16,16,1>UW 2UW {align1};
+shr.sat (16) g31.0<1>UW g31.0<16,16,1>UW 2UW {align1};
+shr.sat (16) g32.0<1>UW g32.0<16,16,1>UW 2UW {align1};
+shr.sat (16) g33.0<1>UW g33.0<16,16,1>UW 2UW {align1};
+shr.sat (16) g34.0<1>UW g34.0<16,16,1>UW 2UW {align1};
+shr.sat (16) g35.0<1>UW g35.0<16,16,1>UW 2UW {align1};
+shr.sat (16) g36.0<1>UW g36.0<16,16,1>UW 2UW {align1};
+shr.sat (16) g37.0<1>UW g37.0<16,16,1>UW 2UW {align1};
+shr.sat (16) g38.0<1>UW g38.0<16,16,1>UW 2UW {align1};
+shr.sat (16) g39.0<1>UW g39.0<16,16,1>UW 2UW {align1};
+shr.sat (16) g40.0<1>UW g40.0<16,16,1>UW 2UW {align1};
+shr.sat (16) g41.0<1>UW g41.0<16,16,1>UW 2UW {align1};
+shr.sat (16) g42.0<1>UW g42.0<16,16,1>UW 2UW {align1};
+shr.sat (16) g43.0<1>UW g43.0<16,16,1>UW 2UW {align1};
commit ebcb64fdc8a45105f529d5e15c335514ecaf1a05
Author: Zou Nan hai <nanhai.zou at intel.com>
Date:   Wed Mar 25 16:11:33 2009 +0800

      XvMC VLD extension support for G4X

diff --git a/configure.ac b/configure.ac
index 88059bf..dc9de8c 100644
--- a/configure.ac
+++ b/configure.ac
@@ -271,6 +271,8 @@ AC_OUTPUT([
 	uxa/Makefile
 	src/Makefile
 	src/xvmc/Makefile
+	src/xvmc/shader/Makefile
+	src/xvmc/shader/vld/Makefile
 	src/bios_reader/Makefile
 	src/ch7017/Makefile
 	src/ch7xxx/Makefile
diff --git a/src/i830_hwmc.c b/src/i830_hwmc.c
index e33a15d..7360c36 100644
--- a/src/i830_hwmc.c
+++ b/src/i830_hwmc.c
@@ -64,6 +64,8 @@ Bool intel_xvmc_probe(ScrnInfoPtr pScrn)
     if (IS_I9XX(pI830)) {
 	if (IS_I915(pI830))
 	    ret = intel_xvmc_set_driver(&i915_xvmc_driver);
+	else if (IS_G4X(pI830))
+	    ret = intel_xvmc_set_driver(&vld_xvmc_driver);
 	else
 	    ret = intel_xvmc_set_driver(&i965_xvmc_driver);
     } else {
diff --git a/src/i830_hwmc.h b/src/i830_hwmc.h
index 72208d5..d0dc15b 100644
--- a/src/i830_hwmc.h
+++ b/src/i830_hwmc.h
@@ -100,6 +100,7 @@ struct intel_xvmc_driver {
 extern struct intel_xvmc_driver *xvmc_driver;
 extern struct intel_xvmc_driver i915_xvmc_driver;
 extern struct intel_xvmc_driver i965_xvmc_driver;
+extern struct intel_xvmc_driver vld_xvmc_driver;
 
 extern Bool intel_xvmc_set_driver(struct intel_xvmc_driver *);
 extern Bool intel_xvmc_probe(ScrnInfoPtr);
diff --git a/src/i965_hwmc.c b/src/i965_hwmc.c
index d9b4f0d..7a5e652 100644
--- a/src/i965_hwmc.c
+++ b/src/i965_hwmc.c
@@ -41,36 +41,14 @@
 
 #define STRIDE(w)               (w)
 #define SIZE_YUV420(w, h)       (h * (STRIDE(w) + STRIDE(w >> 1)))
+#define VLD_MAX_SLICE_LEN	(32*1024)
 
-static PutImageFuncPtr XvPutImage;
+#ifndef XVMC_VLD
+#define XVMC_VLD  0x00020000
+#endif
 
-#if 0
-static int alloc_drm_memory_tiled(ScrnInfoPtr pScrn, 
-	struct drm_memory_block *mem,
-	char *name, size_t size, unsigned long pitch, unsigned long alignment)
-{
-    I830Ptr pI830 = I830PTR(pScrn);
-    if ((mem->buffer = i830_allocate_memory(pScrn,
-	    name, size, pitch,
-	    GTT_PAGE_SIZE, ALIGN_BOTH_ENDS, TILE_XMAJOR)) == NULL) {
-	ErrorF("Fail to alloc \n");
-	return BadAlloc;
-    }
+static PutImageFuncPtr XvPutImage;
 
-    if (drmAddMap(pI830->drmSubFD,
-                  (drm_handle_t)(mem->buffer->offset + pI830->LinearAddr),
-                  size, DRM_AGP, 0,
-                  (drmAddress)&mem->handle) < 0) {
-	ErrorF("Fail to map %d \n", errno);
-	i830_free_memory(pScrn, mem->buffer);
-	return BadAlloc;
-    }
-
-    mem->size = size;
-    mem->offset = mem->buffer->offset;
-    return Success;
-}
-#endif
 
 static int alloc_drm_memory(ScrnInfoPtr pScrn, 
 	struct drm_memory_block *mem, 
@@ -109,57 +87,69 @@ static void free_drm_memory(ScrnInfoPtr pScrn,
 static int create_context(ScrnInfoPtr pScrn, 
 	XvMCContextPtr context, int *num_privates, CARD32 **private)
 {
-        struct i965_xvmc_context *private_context, *context_dup;
-	I830Ptr I830 = I830PTR(pScrn);
-    	DRIInfoPtr driinfo = I830->pDRIInfo;
-
-	unsigned int blocknum = 
-		(((context->width + 15)/16)*((context->height+15)/16));
-	unsigned int blocksize = 6*blocknum*64*sizeof(short);
-	blocksize = (blocksize + 4095)&(~4095);
-	if ((private_context = Xcalloc(sizeof(*private_context))) == NULL) {
-		ErrorF("XVMC Can not allocate private context\n");
-		return BadAlloc;
-	}
+    struct i965_xvmc_context *private_context, *context_dup;
+    I830Ptr I830 = I830PTR(pScrn);
+    DRIInfoPtr driinfo = I830->pDRIInfo;
+
+    unsigned int blocknum = 
+	(((context->width + 15)/16)*((context->height+15)/16));
+    unsigned int blocksize = 6*blocknum*64*sizeof(short);
+    blocksize = (blocksize + 4095)&(~4095);
+    if ((private_context = Xcalloc(sizeof(*private_context))) == NULL) {
+	ErrorF("XVMC Can not allocate private context\n");
+	return BadAlloc;
+    }
 
-	if ((context_dup = Xcalloc(sizeof(*private_context))) == NULL) {
-		ErrorF("XVMC Can not allocate private context\n");
-		return BadAlloc;
-	}
+    if ((context_dup = Xcalloc(sizeof(*private_context))) == NULL) {
+	ErrorF("XVMC Can not allocate private context\n");
+	return BadAlloc;
+    }
 
-	private_context->is_g4x = IS_G4X(I830);
-	private_context->is_965_q = IS_965_Q(I830);
-	private_context->comm.type = xvmc_driver->flag;
-	private_context->comm.sarea_size = driinfo->SAREASize;
-	private_context->comm.batchbuffer.offset = xvmc_driver->batch->offset;
-	private_context->comm.batchbuffer.size = xvmc_driver->batch->size;
-	private_context->comm.batchbuffer.handle = xvmc_driver->batch_handle;
+    private_context->is_g4x = IS_G4X(I830);
+    private_context->is_965_q = IS_965_Q(I830);
+    private_context->comm.type = xvmc_driver->flag;
+    private_context->comm.sarea_size = driinfo->SAREASize;
+    private_context->comm.batchbuffer.offset = xvmc_driver->batch->offset;
+    private_context->comm.batchbuffer.size = xvmc_driver->batch->size;
+    private_context->comm.batchbuffer.handle = xvmc_driver->batch_handle;
 
-	if (alloc_drm_memory(pScrn, &private_context->static_buffer,
+    if (alloc_drm_memory(pScrn, &private_context->static_buffer,
 		"XVMC static buffers", 
 		I965_MC_STATIC_BUFFER_SIZE)) {
-	    ErrorF("Unable to allocate and map static buffer for XVMC\n");	
-	    return BadAlloc;
-	}
+	ErrorF("Unable to allocate and map static buffer for XVMC\n");	
+	return BadAlloc;
+    }
 
-	if (alloc_drm_memory(pScrn, &private_context->blocks,
+    if (alloc_drm_memory(pScrn, &private_context->blocks,
 		"XVMC blocks", blocksize)) {
-	    ErrorF("Unable to allocate and map block buffer for XVMC\n");	
+	ErrorF("Unable to allocate and map block buffer for XVMC\n");	
+	return BadAlloc;
+    }
+
+    if (IS_G4X(I830)) {
+	if (alloc_drm_memory(pScrn, &private_context->slice,
+		    "XVMC vld slice", VLD_MAX_SLICE_LEN)) {
+	    ErrorF("Unable to allocate and vld slice buffer for XVMC\n");	
 	    return BadAlloc;
 	}
-	*num_privates = sizeof(*private_context)/sizeof(CARD32);
-	*private = (CARD32 *)private_context;
-	memcpy(context_dup, private_context, sizeof(*private_context));
-	context->driver_priv = context_dup;
+    }
 
-	return Success;
+    *num_privates = sizeof(*private_context)/sizeof(CARD32);
+    *private = (CARD32 *)private_context;
+    memcpy(context_dup, private_context, sizeof(*private_context));
+    context->driver_priv = context_dup;
+
+    return Success;
 }
 
 static void destroy_context(ScrnInfoPtr pScrn, XvMCContextPtr context)
 {
     struct i965_xvmc_context *private_context;
+    I830Ptr pI830 = I830PTR(pScrn);
     private_context = context->driver_priv;
     free_drm_memory(pScrn, &private_context->static_buffer);
+    if (IS_G4X(pI830))
+	free_drm_memory(pScrn, &private_context->slice);
     Xfree(private_context);
 }
 
@@ -167,6 +157,7 @@ static int create_surface(ScrnInfoPtr pScrn, XvMCSurfacePtr surface,
   int *num_priv, CARD32 **priv)
 {
 	XvMCContextPtr ctx = surface->context;
+
 	struct i965_xvmc_surface *priv_surface, *surface_dup;
 	struct i965_xvmc_context *priv_ctx = ctx->driver_priv;
 	size_t bufsize = SIZE_YUV420(ctx->width, ctx->height);
@@ -223,6 +214,7 @@ static int create_subpicture(ScrnInfoPtr pScrn, XvMCSubpicturePtr subpicture,
 static void destroy_subpicture(ScrnInfoPtr pScrn, XvMCSubpicturePtr subpicture)
 {
 }
+
 static int put_image(ScrnInfoPtr pScrn,
         short src_x, short src_y,
         short drw_x, short drw_y, short src_w,
@@ -258,6 +250,20 @@ static void fini(ScrnInfoPtr screen_info)
 {
 }
 
+static XF86MCSurfaceInfoRec yv12_mpeg2_vld_surface =
+{
+    FOURCC_YV12,
+    XVMC_CHROMA_FORMAT_420,
+    0,
+    1936,
+    1096,
+    1920,
+    1080,
+    XVMC_MPEG_2|XVMC_VLD,
+    XVMC_INTRA_UNSIGNED,
+    NULL
+};
+
 static XF86MCSurfaceInfoRec yv12_mpeg2_surface =
 {
     FOURCC_YV12,
@@ -297,6 +303,23 @@ static XF86MCSurfaceInfoPtr surface_info[] = {
     &yv12_mpeg1_surface
 };
 
+static XF86MCSurfaceInfoPtr surface_info_vld[] = {
+    &yv12_mpeg2_vld_surface,
+};
+
+static XF86MCAdaptorRec adaptor_vld = {
+    .name               = "Intel(R) Textured Video",
+    .num_surfaces       = sizeof(surface_info_vld)/sizeof(surface_info_vld[0]),
+    .surfaces           = surface_info_vld,
+
+    .CreateContext 	= create_context,
+    .DestroyContext	= destroy_context,
+    .CreateSurface 	= create_surface, 
+    .DestroySurface 	= destory_surface,
+    .CreateSubpicture   = create_subpicture,
+    .DestroySubpicture  = destroy_subpicture
+};
+
 static XF86MCAdaptorRec adaptor = {
     .name               = "Intel(R) Textured Video",
     .num_surfaces       = sizeof(surface_info)/sizeof(surface_info[0]),
@@ -318,3 +341,11 @@ struct intel_xvmc_driver i965_xvmc_driver = {
     .fini		= fini
 };
 
+struct intel_xvmc_driver vld_xvmc_driver =  {
+    .name               = "xvmc_vld",
+    .adaptor            = &adaptor_vld,
+    .flag               = XVMC_I965_MPEG2_VLD,
+    .init 		= init,
+    .fini		= fini
+};
+
diff --git a/src/i965_hwmc.h b/src/i965_hwmc.h
index dafd18d..9db0f35 100644
--- a/src/i965_hwmc.h
+++ b/src/i965_hwmc.h
@@ -1,5 +1,5 @@
 #define I965_MC_STATIC_BUFFER_SIZE	(1024*512)
-#define I965_MAX_SURFACES		32
+#define I965_MAX_SURFACES		12
 struct _i830_memory;
 struct  drm_memory_block {
     struct 		_i830_memory *buffer;
@@ -19,6 +19,7 @@ struct i965_xvmc_context {
     struct 	_intel_xvmc_common comm;
     struct 	drm_memory_block static_buffer;
     struct 	drm_memory_block blocks;
+    struct 	drm_memory_block slice;
     struct 	i965_xvmc_surface *surfaces[I965_MAX_SURFACES];
     unsigned    int is_g4x:1;
     unsigned    int is_965_q:1;
diff --git a/src/xvmc/I810XvMC.h b/src/xvmc/I810XvMC.h
index dc2cab8..b71d621 100644
--- a/src/xvmc/I810XvMC.h
+++ b/src/xvmc/I810XvMC.h
@@ -365,106 +365,3 @@ void i810_free_privContext(i810XvMCContext *pI810XvMC);
 void dp(unsigned int *address, unsigned int i);
 
 #endif
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/src/xvmc/Makefile.am b/src/xvmc/Makefile.am
index a376eb7..d8c539e 100644
--- a/src/xvmc/Makefile.am
+++ b/src/xvmc/Makefile.am
@@ -2,6 +2,7 @@ if XVMC
 lib_LTLIBRARIES=libI810XvMC.la libIntelXvMC.la
 endif
 
+SUBDIRS = shader
 libI810XvMC_la_SOURCES = I810XvMC.c \
 			 I810XvMC.h
 
@@ -19,6 +20,8 @@ libIntelXvMC_la_SOURCES = intel_xvmc.c \
         i915_xvmc.h                    \
         i965_xvmc.c                    \
         i965_xvmc.h                    \
+        xvmc_vld.c                     \
+        xvmc_vld.h                     \
         intel_batchbuffer.c            \
         intel_batchbuffer.h            \
         xf86dri.c                      \
diff --git a/src/xvmc/backward.g4b b/src/xvmc/backward.g4b
deleted file mode 100644
index f1e9edd..0000000
--- a/src/xvmc/backward.g4b
+++ /dev/null
@@ -1,1472 +0,0 @@
-   { 0x00200001, 0x20300021, 0x00450038, 0x00000000 },
-   { 0x00600001, 0x20600021, 0x008d0020, 0x00000000 },
-   { 0x00000001, 0x20280061, 0x00000000, 0x00070007 },
-   { 0x00600001, 0x20400021, 0x008d0020, 0x00000000 },
-   { 0x0020000c, 0x20301ca5, 0x00450070, 0x00000001 },
-   { 0x00200040, 0x20401421, 0x00450060, 0x00450030 },
-   { 0x01000005, 0x20000c3c, 0x00210070, 0x00000001 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000088 },
-   { 0x01000005, 0x20000c3c, 0x00210074, 0x00000001 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000055 },
-   { 0x00000001, 0x20480061, 0x00000000, 0x0009000f },
-   { 0x00000005, 0x20580c21, 0x00210040, 0x00000003 },
-   { 0x00800031, 0x21801d29, 0x008d0040, 0x0415a007 },
-   { 0x00000041, 0x20580c21, 0x00210058, 0x00000011 },
-   { 0x00000020, 0x34001400, 0x00001400, 0x00210058 },
-   { 0x00800001, 0x20c00229, 0x00ad0180, 0x00000000 },
-   { 0x00800001, 0x20e00229, 0x00ad01a0, 0x00000000 },
-   { 0x00800001, 0x21000229, 0x00ad01c0, 0x00000000 },
-   { 0x00800001, 0x21200229, 0x00ad01e0, 0x00000000 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0181 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01a1 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01c1 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01e1 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0190 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01b0 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01d0 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01f0 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0191 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01b1 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01d1 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01f1 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000032 },
-   { 0x00800001, 0x20c00229, 0x00ad0181, 0x00000000 },
-   { 0x00800001, 0x20e00229, 0x00ad01a1, 0x00000000 },
-   { 0x00800001, 0x21000229, 0x00ad01c1, 0x00000000 },
-   { 0x00800001, 0x21200229, 0x00ad01e1, 0x00000000 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0181 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01a1 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01c1 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01e1 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0191 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01b1 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01d1 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01f1 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0192 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01b2 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01d2 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01f2 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000021 },
-   { 0x00800001, 0x20c00229, 0x00ad0182, 0x00000000 },
-   { 0x00800001, 0x20e00229, 0x00ad01a2, 0x00000000 },
-   { 0x00800001, 0x21000229, 0x00ad01c2, 0x00000000 },
-   { 0x00800001, 0x21200229, 0x00ad01e2, 0x00000000 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0183 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01a3 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01c3 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01e3 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0192 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01b2 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01d2 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01f2 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0193 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01b3 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01d3 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01f3 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000010 },
-   { 0x00800001, 0x20c00229, 0x00ad0183, 0x00000000 },
-   { 0x00800001, 0x20e00229, 0x00ad01a3, 0x00000000 },
-   { 0x00800001, 0x21000229, 0x00ad01c3, 0x00000000 },
-   { 0x00800001, 0x21200229, 0x00ad01e3, 0x00000000 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0184 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01a4 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01c4 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01e4 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0193 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01b3 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01d3 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01f3 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0194 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01b4 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01d4 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01f4 },
-   { 0x00800040, 0x20c02d29, 0x00b100c0, 0x00010001 },
-   { 0x00800040, 0x20e02d29, 0x00b100e0, 0x00010001 },
-   { 0x00800040, 0x21002d29, 0x00b10100, 0x00010001 },
-   { 0x00800040, 0x21202d29, 0x00b10120, 0x00010001 },
-   { 0x00800008, 0x40c02d31, 0x00b100c0, 0x00020002 },
-   { 0x00800008, 0x40e02d31, 0x00b100e0, 0x00020002 },
-   { 0x00800008, 0x41002d31, 0x00b10100, 0x00020002 },
-   { 0x00800008, 0x41202d31, 0x00b10120, 0x00020002 },
-   { 0x00800001, 0x20800231, 0x00b200c0, 0x00000000 },
-   { 0x00800001, 0x20900231, 0x00b200e0, 0x00000000 },
-   { 0x00800001, 0x20a00231, 0x00b20100, 0x00000000 },
-   { 0x00800001, 0x20b00231, 0x00b20120, 0x00000000 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000030 },
-   { 0x00000001, 0x20480061, 0x00000000, 0x0007000f },
-   { 0x00000005, 0x20580c21, 0x00210040, 0x00000003 },
-   { 0x00800031, 0x21801d29, 0x008d0040, 0x0414a007 },
-   { 0x00000041, 0x20580c21, 0x00210058, 0x00000009 },
-   { 0x00000020, 0x34001400, 0x00001400, 0x00210058 },
-   { 0x00800001, 0x20c00229, 0x00ad0180, 0x00000000 },
-   { 0x00800001, 0x20e00229, 0x00ad01a0, 0x00000000 },
-   { 0x00800001, 0x21000229, 0x00ad01c0, 0x00000000 },
-   { 0x00800001, 0x21200229, 0x00ad01e0, 0x00000000 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0181 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01a1 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01c1 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01e1 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x0000001a },
-   { 0x00800001, 0x20c00229, 0x00ad0181, 0x00000000 },
-   { 0x00800001, 0x20e00229, 0x00ad01a1, 0x00000000 },
-   { 0x00800001, 0x21000229, 0x00ad01c1, 0x00000000 },
-   { 0x00800001, 0x21200229, 0x00ad01e1, 0x00000000 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0182 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01a2 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01c2 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01e2 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000011 },
-   { 0x00800001, 0x20c00229, 0x00ad0182, 0x00000000 },
-   { 0x00800001, 0x20e00229, 0x00ad01a2, 0x00000000 },
-   { 0x00800001, 0x21000229, 0x00ad01c2, 0x00000000 },
-   { 0x00800001, 0x21200229, 0x00ad01e2, 0x00000000 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0183 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01a3 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01c3 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01e3 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000008 },
-   { 0x00800001, 0x20c00229, 0x00ad0183, 0x00000000 },
-   { 0x00800001, 0x20e00229, 0x00ad01a3, 0x00000000 },
-   { 0x00800001, 0x21000229, 0x00ad01c3, 0x00000000 },
-   { 0x00800001, 0x21200229, 0x00ad01e3, 0x00000000 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0184 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01a4 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01c4 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01e4 },
-   { 0x00800008, 0x20c02d29, 0x00b100c0, 0x00010001 },
-   { 0x00800008, 0x20e02d29, 0x00b100e0, 0x00010001 },
-   { 0x00800008, 0x21002d29, 0x00b10100, 0x00010001 },
-   { 0x00800008, 0x21202d29, 0x00b10120, 0x00010001 },
-   { 0x00800001, 0x20800231, 0x00b200c0, 0x00000000 },
-   { 0x00800001, 0x20900231, 0x00b200e0, 0x00000000 },
-   { 0x00800001, 0x20a00231, 0x00b20100, 0x00000000 },
-   { 0x00800001, 0x20b00231, 0x00b20120, 0x00000000 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x0000004e },
-   { 0x01000005, 0x20000c3c, 0x00210070, 0x00000000 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000034 },
-   { 0x00000001, 0x20480061, 0x00000000, 0x0009000f },
-   { 0x00000005, 0x20580c21, 0x00210040, 0x00000003 },
-   { 0x00800031, 0x21801d29, 0x008d0040, 0x0415a007 },
-   { 0x00000041, 0x20580c21, 0x00210058, 0x00000009 },
-   { 0x00000020, 0x34001400, 0x00001400, 0x00210058 },
-   { 0x00800001, 0x20c00229, 0x00ad0180, 0x00000000 },
-   { 0x00800001, 0x20e00229, 0x00ad01a0, 0x00000000 },
-   { 0x00800001, 0x21000229, 0x00ad01c0, 0x00000000 },
-   { 0x00800001, 0x21200229, 0x00ad01e0, 0x00000000 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0190 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01b0 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01d0 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01f0 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x0000001a },
-   { 0x00800001, 0x20c00229, 0x00ad0181, 0x00000000 },
-   { 0x00800001, 0x20e00229, 0x00ad01a1, 0x00000000 },
-   { 0x00800001, 0x21000229, 0x00ad01c1, 0x00000000 },
-   { 0x00800001, 0x21200229, 0x00ad01e1, 0x00000000 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0191 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01b1 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01d1 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01f1 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000011 },
-   { 0x00800001, 0x20c00229, 0x00ad0182, 0x00000000 },
-   { 0x00800001, 0x20e00229, 0x00ad01a2, 0x00000000 },
-   { 0x00800001, 0x21000229, 0x00ad01c2, 0x00000000 },
-   { 0x00800001, 0x21200229, 0x00ad01e2, 0x00000000 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0192 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01b2 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01d2 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01f2 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000008 },
-   { 0x00800001, 0x20c00229, 0x00ad0183, 0x00000000 },
-   { 0x00800001, 0x20e00229, 0x00ad01a3, 0x00000000 },
-   { 0x00800001, 0x21000229, 0x00ad01c3, 0x00000000 },
-   { 0x00800001, 0x21200229, 0x00ad01e3, 0x00000000 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0193 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01b3 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01d3 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01f3 },
-   { 0x00800040, 0x20c02d29, 0x00b100c0, 0x00010001 },
-   { 0x00800040, 0x20e02d29, 0x00b100e0, 0x00010001 },
-   { 0x00800040, 0x21002d29, 0x00b10100, 0x00010001 },
-   { 0x00800040, 0x21202d29, 0x00b10120, 0x00010001 },
-   { 0x80800008, 0x40c02d31, 0x00b100c0, 0x00010001 },
-   { 0x80800008, 0x40e02d31, 0x00b100e0, 0x00010001 },
-   { 0x80800008, 0x41002d31, 0x00b10100, 0x00010001 },
-   { 0x80800008, 0x41202d31, 0x00b10120, 0x00010001 },
-   { 0x00800001, 0x20800231, 0x00b200c0, 0x00000000 },
-   { 0x00800001, 0x20900231, 0x00b200e0, 0x00000000 },
-   { 0x00800001, 0x20a00231, 0x00b20100, 0x00000000 },
-   { 0x00800001, 0x20b00231, 0x00b20120, 0x00000000 },
-   { 0x00000001, 0x20480061, 0x00000000, 0x0007000f },
-   { 0x00000005, 0x20580c21, 0x00210040, 0x00000003 },
-   { 0x00800031, 0x21801d29, 0x008d0040, 0x0414a007 },
-   { 0x00000041, 0x20580c21, 0x00210058, 0x00000005 },
-   { 0x00000020, 0x34001400, 0x00001400, 0x00210058 },
-   { 0x00800001, 0x20800231, 0x00ad0180, 0x00000000 },
-   { 0x00800001, 0x20900231, 0x00ad01a0, 0x00000000 },
-   { 0x00800001, 0x20a00231, 0x00ad01c0, 0x00000000 },
-   { 0x00800001, 0x20b00231, 0x00ad01e0, 0x00000000 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x0000000e },
-   { 0x00800001, 0x20800231, 0x00ad0181, 0x00000000 },
-   { 0x00800001, 0x20900231, 0x00ad01a1, 0x00000000 },
-   { 0x00800001, 0x20a00231, 0x00ad01c1, 0x00000000 },
-   { 0x00800001, 0x20b00231, 0x00ad01e1, 0x00000000 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000009 },
-   { 0x00800001, 0x20800231, 0x00ad0182, 0x00000000 },
-   { 0x00800001, 0x20900231, 0x00ad01a2, 0x00000000 },
-   { 0x00800001, 0x20a00231, 0x00ad01c2, 0x00000000 },
-   { 0x00800001, 0x20b00231, 0x00ad01e2, 0x00000000 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000004 },
-   { 0x00800001, 0x20800231, 0x00ad0183, 0x00000000 },
-   { 0x00800001, 0x20900231, 0x00ad01a3, 0x00000000 },
-   { 0x00800001, 0x20a00231, 0x00ad01c3, 0x00000000 },
-   { 0x00800001, 0x20b00231, 0x00ad01e3, 0x00000000 },
-   { 0x00000001, 0x20480061, 0x00000000, 0x00070007 },
-   { 0x01000005, 0x20000c3c, 0x0021006c, 0x00000020 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000015 },
-   { 0x00000040, 0x20440c21, 0x00210068, 0x00000000 },
-   { 0x00800031, 0x20c01d21, 0x008d0040, 0x04110203 },
-   { 0x00000040, 0x20440c21, 0x00210044, 0x00000020 },
-   { 0x00800031, 0x20e01d21, 0x008d0040, 0x04110203 },
-   { 0x00000040, 0x20440c21, 0x00210044, 0x00000020 },
-   { 0x00800031, 0x21001d21, 0x008d0040, 0x04110203 },
-   { 0x00000040, 0x20440c21, 0x00210044, 0x00000020 },
-   { 0x00800031, 0x21201d21, 0x008d0040, 0x04110203 },
-   { 0x00000040, 0x20680c21, 0x00210068, 0x00000080 },
-   { 0x00800040, 0x20c045ad, 0x00b100c0, 0x00b10080 },
-   { 0x00800040, 0x20e045ad, 0x00b100e0, 0x00b10090 },
-   { 0x00800040, 0x210045ad, 0x00b10100, 0x00b100a0 },
-   { 0x00800040, 0x212045ad, 0x00b10120, 0x00b100b0 },
-   { 0x80800001, 0x40c001b1, 0x00b100c0, 0x00000000 },
-   { 0x80800001, 0x40e001b1, 0x00b100e0, 0x00000000 },
-   { 0x80800001, 0x410001b1, 0x00b10100, 0x00000000 },
-   { 0x80800001, 0x412001b1, 0x00b10120, 0x00000000 },
-   { 0x00800001, 0x20800231, 0x00b200c0, 0x00000000 },
-   { 0x00800001, 0x20900231, 0x00b200e0, 0x00000000 },
-   { 0x00800001, 0x20a00231, 0x00b20100, 0x00000000 },
-   { 0x00800001, 0x20b00231, 0x00b20120, 0x00000000 },
-   { 0x00802001, 0x20200022, 0x008d0080, 0x00000000 },
-   { 0x00800031, 0x24001d28, 0x008d0020, 0x05302000 },
-   { 0x00000040, 0x20201c21, 0x00210060, 0x00000008 },
-   { 0x00000040, 0x20241c21, 0x00210064, 0x00000000 },
-   { 0x80200040, 0x20401421, 0x00450020, 0x00450030 },
-   { 0x01000005, 0x20000c3c, 0x00210070, 0x00000001 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000088 },
-   { 0x01000005, 0x20000c3c, 0x00210074, 0x00000001 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000055 },
-   { 0x00000001, 0x20480061, 0x00000000, 0x0009000f },
-   { 0x00000005, 0x20580c21, 0x00210040, 0x00000003 },
-   { 0x00800031, 0x21801d29, 0x008d0040, 0x0415a007 },
-   { 0x00000041, 0x20580c21, 0x00210058, 0x00000011 },
-   { 0x00000020, 0x34001400, 0x00001400, 0x00210058 },
-   { 0x00800001, 0x20c00229, 0x00ad0180, 0x00000000 },
-   { 0x00800001, 0x20e00229, 0x00ad01a0, 0x00000000 },
-   { 0x00800001, 0x21000229, 0x00ad01c0, 0x00000000 },
-   { 0x00800001, 0x21200229, 0x00ad01e0, 0x00000000 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0181 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01a1 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01c1 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01e1 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0190 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01b0 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01d0 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01f0 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0191 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01b1 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01d1 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01f1 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000032 },
-   { 0x00800001, 0x20c00229, 0x00ad0181, 0x00000000 },
-   { 0x00800001, 0x20e00229, 0x00ad01a1, 0x00000000 },
-   { 0x00800001, 0x21000229, 0x00ad01c1, 0x00000000 },
-   { 0x00800001, 0x21200229, 0x00ad01e1, 0x00000000 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0181 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01a1 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01c1 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01e1 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0191 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01b1 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01d1 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01f1 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0192 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01b2 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01d2 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01f2 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000021 },
-   { 0x00800001, 0x20c00229, 0x00ad0182, 0x00000000 },
-   { 0x00800001, 0x20e00229, 0x00ad01a2, 0x00000000 },
-   { 0x00800001, 0x21000229, 0x00ad01c2, 0x00000000 },
-   { 0x00800001, 0x21200229, 0x00ad01e2, 0x00000000 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0183 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01a3 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01c3 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01e3 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0192 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01b2 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01d2 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01f2 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0193 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01b3 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01d3 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01f3 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000010 },
-   { 0x00800001, 0x20c00229, 0x00ad0183, 0x00000000 },
-   { 0x00800001, 0x20e00229, 0x00ad01a3, 0x00000000 },
-   { 0x00800001, 0x21000229, 0x00ad01c3, 0x00000000 },
-   { 0x00800001, 0x21200229, 0x00ad01e3, 0x00000000 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0184 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01a4 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01c4 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01e4 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0193 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01b3 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01d3 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01f3 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0194 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01b4 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01d4 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01f4 },
-   { 0x00800040, 0x20c02d29, 0x00b100c0, 0x00010001 },
-   { 0x00800040, 0x20e02d29, 0x00b100e0, 0x00010001 },
-   { 0x00800040, 0x21002d29, 0x00b10100, 0x00010001 },
-   { 0x00800040, 0x21202d29, 0x00b10120, 0x00010001 },
-   { 0x00800008, 0x40c02d31, 0x00b100c0, 0x00020002 },
-   { 0x00800008, 0x40e02d31, 0x00b100e0, 0x00020002 },
-   { 0x00800008, 0x41002d31, 0x00b10100, 0x00020002 },
-   { 0x00800008, 0x41202d31, 0x00b10120, 0x00020002 },
-   { 0x00800001, 0x20800231, 0x00b200c0, 0x00000000 },
-   { 0x00800001, 0x20900231, 0x00b200e0, 0x00000000 },
-   { 0x00800001, 0x20a00231, 0x00b20100, 0x00000000 },
-   { 0x00800001, 0x20b00231, 0x00b20120, 0x00000000 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000030 },
-   { 0x00000001, 0x20480061, 0x00000000, 0x0007000f },
-   { 0x00000005, 0x20580c21, 0x00210040, 0x00000003 },
-   { 0x00800031, 0x21801d29, 0x008d0040, 0x0414a007 },
-   { 0x00000041, 0x20580c21, 0x00210058, 0x00000009 },
-   { 0x00000020, 0x34001400, 0x00001400, 0x00210058 },
-   { 0x00800001, 0x20c00229, 0x00ad0180, 0x00000000 },
-   { 0x00800001, 0x20e00229, 0x00ad01a0, 0x00000000 },
-   { 0x00800001, 0x21000229, 0x00ad01c0, 0x00000000 },
-   { 0x00800001, 0x21200229, 0x00ad01e0, 0x00000000 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0181 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01a1 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01c1 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01e1 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x0000001a },
-   { 0x00800001, 0x20c00229, 0x00ad0181, 0x00000000 },
-   { 0x00800001, 0x20e00229, 0x00ad01a1, 0x00000000 },
-   { 0x00800001, 0x21000229, 0x00ad01c1, 0x00000000 },
-   { 0x00800001, 0x21200229, 0x00ad01e1, 0x00000000 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0182 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01a2 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01c2 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01e2 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000011 },
-   { 0x00800001, 0x20c00229, 0x00ad0182, 0x00000000 },
-   { 0x00800001, 0x20e00229, 0x00ad01a2, 0x00000000 },
-   { 0x00800001, 0x21000229, 0x00ad01c2, 0x00000000 },
-   { 0x00800001, 0x21200229, 0x00ad01e2, 0x00000000 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0183 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01a3 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01c3 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01e3 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000008 },
-   { 0x00800001, 0x20c00229, 0x00ad0183, 0x00000000 },
-   { 0x00800001, 0x20e00229, 0x00ad01a3, 0x00000000 },
-   { 0x00800001, 0x21000229, 0x00ad01c3, 0x00000000 },
-   { 0x00800001, 0x21200229, 0x00ad01e3, 0x00000000 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0184 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01a4 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01c4 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01e4 },
-   { 0x00800008, 0x20c02d29, 0x00b100c0, 0x00010001 },
-   { 0x00800008, 0x20e02d29, 0x00b100e0, 0x00010001 },
-   { 0x00800008, 0x21002d29, 0x00b10100, 0x00010001 },
-   { 0x00800008, 0x21202d29, 0x00b10120, 0x00010001 },
-   { 0x00800001, 0x20800231, 0x00b200c0, 0x00000000 },
-   { 0x00800001, 0x20900231, 0x00b200e0, 0x00000000 },
-   { 0x00800001, 0x20a00231, 0x00b20100, 0x00000000 },
-   { 0x00800001, 0x20b00231, 0x00b20120, 0x00000000 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x0000004e },
-   { 0x01000005, 0x20000c3c, 0x00210070, 0x00000000 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000034 },
-   { 0x00000001, 0x20480061, 0x00000000, 0x0009000f },
-   { 0x00000005, 0x20580c21, 0x00210040, 0x00000003 },
-   { 0x00800031, 0x21801d29, 0x008d0040, 0x0415a007 },
-   { 0x00000041, 0x20580c21, 0x00210058, 0x00000009 },
-   { 0x00000020, 0x34001400, 0x00001400, 0x00210058 },
-   { 0x00800001, 0x20c00229, 0x00ad0180, 0x00000000 },
-   { 0x00800001, 0x20e00229, 0x00ad01a0, 0x00000000 },
-   { 0x00800001, 0x21000229, 0x00ad01c0, 0x00000000 },
-   { 0x00800001, 0x21200229, 0x00ad01e0, 0x00000000 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0190 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01b0 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01d0 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01f0 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x0000001a },
-   { 0x00800001, 0x20c00229, 0x00ad0181, 0x00000000 },
-   { 0x00800001, 0x20e00229, 0x00ad01a1, 0x00000000 },
-   { 0x00800001, 0x21000229, 0x00ad01c1, 0x00000000 },
-   { 0x00800001, 0x21200229, 0x00ad01e1, 0x00000000 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0191 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01b1 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01d1 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01f1 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000011 },
-   { 0x00800001, 0x20c00229, 0x00ad0182, 0x00000000 },
-   { 0x00800001, 0x20e00229, 0x00ad01a2, 0x00000000 },
-   { 0x00800001, 0x21000229, 0x00ad01c2, 0x00000000 },
-   { 0x00800001, 0x21200229, 0x00ad01e2, 0x00000000 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0192 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01b2 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01d2 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01f2 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000008 },
-   { 0x00800001, 0x20c00229, 0x00ad0183, 0x00000000 },
-   { 0x00800001, 0x20e00229, 0x00ad01a3, 0x00000000 },
-   { 0x00800001, 0x21000229, 0x00ad01c3, 0x00000000 },
-   { 0x00800001, 0x21200229, 0x00ad01e3, 0x00000000 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0193 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01b3 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01d3 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01f3 },
-   { 0x00800040, 0x20c02d29, 0x00b100c0, 0x00010001 },
-   { 0x00800040, 0x20e02d29, 0x00b100e0, 0x00010001 },
-   { 0x00800040, 0x21002d29, 0x00b10100, 0x00010001 },
-   { 0x00800040, 0x21202d29, 0x00b10120, 0x00010001 },
-   { 0x80800008, 0x40c02d31, 0x00b100c0, 0x00010001 },
-   { 0x80800008, 0x40e02d31, 0x00b100e0, 0x00010001 },
-   { 0x80800008, 0x41002d31, 0x00b10100, 0x00010001 },
-   { 0x80800008, 0x41202d31, 0x00b10120, 0x00010001 },
-   { 0x00800001, 0x20800231, 0x00b200c0, 0x00000000 },
-   { 0x00800001, 0x20900231, 0x00b200e0, 0x00000000 },
-   { 0x00800001, 0x20a00231, 0x00b20100, 0x00000000 },
-   { 0x00800001, 0x20b00231, 0x00b20120, 0x00000000 },
-   { 0x00000001, 0x20480061, 0x00000000, 0x0007000f },
-   { 0x00000005, 0x20580c21, 0x00210040, 0x00000003 },
-   { 0x00800031, 0x21801d29, 0x008d0040, 0x0414a007 },
-   { 0x00000041, 0x20580c21, 0x00210058, 0x00000005 },
-   { 0x00000020, 0x34001400, 0x00001400, 0x00210058 },
-   { 0x00800001, 0x20800231, 0x00ad0180, 0x00000000 },
-   { 0x00800001, 0x20900231, 0x00ad01a0, 0x00000000 },
-   { 0x00800001, 0x20a00231, 0x00ad01c0, 0x00000000 },
-   { 0x00800001, 0x20b00231, 0x00ad01e0, 0x00000000 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x0000000e },
-   { 0x00800001, 0x20800231, 0x00ad0181, 0x00000000 },
-   { 0x00800001, 0x20900231, 0x00ad01a1, 0x00000000 },
-   { 0x00800001, 0x20a00231, 0x00ad01c1, 0x00000000 },
-   { 0x00800001, 0x20b00231, 0x00ad01e1, 0x00000000 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000009 },
-   { 0x00800001, 0x20800231, 0x00ad0182, 0x00000000 },
-   { 0x00800001, 0x20900231, 0x00ad01a2, 0x00000000 },
-   { 0x00800001, 0x20a00231, 0x00ad01c2, 0x00000000 },
-   { 0x00800001, 0x20b00231, 0x00ad01e2, 0x00000000 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000004 },
-   { 0x00800001, 0x20800231, 0x00ad0183, 0x00000000 },
-   { 0x00800001, 0x20900231, 0x00ad01a3, 0x00000000 },
-   { 0x00800001, 0x20a00231, 0x00ad01c3, 0x00000000 },
-   { 0x00800001, 0x20b00231, 0x00ad01e3, 0x00000000 },
-   { 0x00000001, 0x20480061, 0x00000000, 0x00070007 },
-   { 0x01000005, 0x20000c3c, 0x0021006c, 0x00000010 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000015 },
-   { 0x00000040, 0x20440c21, 0x00210068, 0x00000000 },
-   { 0x00800031, 0x20c01d21, 0x008d0040, 0x04110203 },
-   { 0x00000040, 0x20440c21, 0x00210044, 0x00000020 },
-   { 0x00800031, 0x20e01d21, 0x008d0040, 0x04110203 },
-   { 0x00000040, 0x20440c21, 0x00210044, 0x00000020 },
-   { 0x00800031, 0x21001d21, 0x008d0040, 0x04110203 },
-   { 0x00000040, 0x20440c21, 0x00210044, 0x00000020 },
-   { 0x00800031, 0x21201d21, 0x008d0040, 0x04110203 },
-   { 0x00000040, 0x20680c21, 0x00210068, 0x00000080 },
-   { 0x00800040, 0x20c045ad, 0x00b100c0, 0x00b10080 },
-   { 0x00800040, 0x20e045ad, 0x00b100e0, 0x00b10090 },
-   { 0x00800040, 0x210045ad, 0x00b10100, 0x00b100a0 },
-   { 0x00800040, 0x212045ad, 0x00b10120, 0x00b100b0 },
-   { 0x80800001, 0x40c001b1, 0x00b100c0, 0x00000000 },
-   { 0x80800001, 0x40e001b1, 0x00b100e0, 0x00000000 },
-   { 0x80800001, 0x410001b1, 0x00b10100, 0x00000000 },
-   { 0x80800001, 0x412001b1, 0x00b10120, 0x00000000 },
-   { 0x00800001, 0x20800231, 0x00b200c0, 0x00000000 },
-   { 0x00800001, 0x20900231, 0x00b200e0, 0x00000000 },
-   { 0x00800001, 0x20a00231, 0x00b20100, 0x00000000 },
-   { 0x00800001, 0x20b00231, 0x00b20120, 0x00000000 },
-   { 0x00802001, 0x20200022, 0x008d0080, 0x00000000 },
-   { 0x00800031, 0x24001d28, 0x008d0020, 0x05302000 },
-   { 0x00000040, 0x20201c21, 0x00210060, 0x00000000 },
-   { 0x00000040, 0x20241c21, 0x00210064, 0x00000008 },
-   { 0x00200040, 0x20401421, 0x00450020, 0x00450030 },
-   { 0x01000005, 0x20000c3c, 0x00210070, 0x00000001 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000088 },
-   { 0x01000005, 0x20000c3c, 0x00210074, 0x00000001 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000055 },
-   { 0x00000001, 0x20480061, 0x00000000, 0x0009000f },
-   { 0x00000005, 0x20580c21, 0x00210040, 0x00000003 },
-   { 0x00800031, 0x21801d29, 0x008d0040, 0x0415a007 },
-   { 0x00000041, 0x20580c21, 0x00210058, 0x00000011 },
-   { 0x00000020, 0x34001400, 0x00001400, 0x00210058 },
-   { 0x00800001, 0x20c00229, 0x00ad0180, 0x00000000 },
-   { 0x00800001, 0x20e00229, 0x00ad01a0, 0x00000000 },
-   { 0x00800001, 0x21000229, 0x00ad01c0, 0x00000000 },
-   { 0x00800001, 0x21200229, 0x00ad01e0, 0x00000000 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0181 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01a1 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01c1 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01e1 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0190 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01b0 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01d0 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01f0 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0191 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01b1 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01d1 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01f1 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000032 },
-   { 0x00800001, 0x20c00229, 0x00ad0181, 0x00000000 },
-   { 0x00800001, 0x20e00229, 0x00ad01a1, 0x00000000 },
-   { 0x00800001, 0x21000229, 0x00ad01c1, 0x00000000 },
-   { 0x00800001, 0x21200229, 0x00ad01e1, 0x00000000 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0181 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01a1 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01c1 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01e1 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0191 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01b1 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01d1 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01f1 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0192 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01b2 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01d2 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01f2 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000021 },
-   { 0x00800001, 0x20c00229, 0x00ad0182, 0x00000000 },
-   { 0x00800001, 0x20e00229, 0x00ad01a2, 0x00000000 },
-   { 0x00800001, 0x21000229, 0x00ad01c2, 0x00000000 },
-   { 0x00800001, 0x21200229, 0x00ad01e2, 0x00000000 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0183 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01a3 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01c3 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01e3 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0192 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01b2 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01d2 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01f2 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0193 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01b3 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01d3 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01f3 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000010 },
-   { 0x00800001, 0x20c00229, 0x00ad0183, 0x00000000 },
-   { 0x00800001, 0x20e00229, 0x00ad01a3, 0x00000000 },
-   { 0x00800001, 0x21000229, 0x00ad01c3, 0x00000000 },
-   { 0x00800001, 0x21200229, 0x00ad01e3, 0x00000000 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0184 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01a4 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01c4 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01e4 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0193 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01b3 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01d3 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01f3 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0194 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01b4 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01d4 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01f4 },
-   { 0x00800040, 0x20c02d29, 0x00b100c0, 0x00010001 },
-   { 0x00800040, 0x20e02d29, 0x00b100e0, 0x00010001 },
-   { 0x00800040, 0x21002d29, 0x00b10100, 0x00010001 },
-   { 0x00800040, 0x21202d29, 0x00b10120, 0x00010001 },
-   { 0x00800008, 0x40c02d31, 0x00b100c0, 0x00020002 },
-   { 0x00800008, 0x40e02d31, 0x00b100e0, 0x00020002 },
-   { 0x00800008, 0x41002d31, 0x00b10100, 0x00020002 },
-   { 0x00800008, 0x41202d31, 0x00b10120, 0x00020002 },
-   { 0x00800001, 0x20800231, 0x00b200c0, 0x00000000 },
-   { 0x00800001, 0x20900231, 0x00b200e0, 0x00000000 },
-   { 0x00800001, 0x20a00231, 0x00b20100, 0x00000000 },
-   { 0x00800001, 0x20b00231, 0x00b20120, 0x00000000 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000030 },
-   { 0x00000001, 0x20480061, 0x00000000, 0x0007000f },
-   { 0x00000005, 0x20580c21, 0x00210040, 0x00000003 },
-   { 0x00800031, 0x21801d29, 0x008d0040, 0x0414a007 },
-   { 0x00000041, 0x20580c21, 0x00210058, 0x00000009 },
-   { 0x00000020, 0x34001400, 0x00001400, 0x00210058 },
-   { 0x00800001, 0x20c00229, 0x00ad0180, 0x00000000 },
-   { 0x00800001, 0x20e00229, 0x00ad01a0, 0x00000000 },
-   { 0x00800001, 0x21000229, 0x00ad01c0, 0x00000000 },
-   { 0x00800001, 0x21200229, 0x00ad01e0, 0x00000000 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0181 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01a1 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01c1 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01e1 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x0000001a },
-   { 0x00800001, 0x20c00229, 0x00ad0181, 0x00000000 },
-   { 0x00800001, 0x20e00229, 0x00ad01a1, 0x00000000 },
-   { 0x00800001, 0x21000229, 0x00ad01c1, 0x00000000 },
-   { 0x00800001, 0x21200229, 0x00ad01e1, 0x00000000 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0182 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01a2 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01c2 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01e2 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000011 },
-   { 0x00800001, 0x20c00229, 0x00ad0182, 0x00000000 },
-   { 0x00800001, 0x20e00229, 0x00ad01a2, 0x00000000 },
-   { 0x00800001, 0x21000229, 0x00ad01c2, 0x00000000 },
-   { 0x00800001, 0x21200229, 0x00ad01e2, 0x00000000 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0183 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01a3 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01c3 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01e3 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000008 },
-   { 0x00800001, 0x20c00229, 0x00ad0183, 0x00000000 },
-   { 0x00800001, 0x20e00229, 0x00ad01a3, 0x00000000 },
-   { 0x00800001, 0x21000229, 0x00ad01c3, 0x00000000 },
-   { 0x00800001, 0x21200229, 0x00ad01e3, 0x00000000 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0184 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01a4 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01c4 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01e4 },
-   { 0x00800008, 0x20c02d29, 0x00b100c0, 0x00010001 },
-   { 0x00800008, 0x20e02d29, 0x00b100e0, 0x00010001 },
-   { 0x00800008, 0x21002d29, 0x00b10100, 0x00010001 },
-   { 0x00800008, 0x21202d29, 0x00b10120, 0x00010001 },
-   { 0x00800001, 0x20800231, 0x00b200c0, 0x00000000 },
-   { 0x00800001, 0x20900231, 0x00b200e0, 0x00000000 },
-   { 0x00800001, 0x20a00231, 0x00b20100, 0x00000000 },
-   { 0x00800001, 0x20b00231, 0x00b20120, 0x00000000 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x0000004e },
-   { 0x01000005, 0x20000c3c, 0x00210070, 0x00000000 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000034 },
-   { 0x00000001, 0x20480061, 0x00000000, 0x0009000f },
-   { 0x00000005, 0x20580c21, 0x00210040, 0x00000003 },
-   { 0x00800031, 0x21801d29, 0x008d0040, 0x0415a007 },
-   { 0x00000041, 0x20580c21, 0x00210058, 0x00000009 },
-   { 0x00000020, 0x34001400, 0x00001400, 0x00210058 },
-   { 0x00800001, 0x20c00229, 0x00ad0180, 0x00000000 },
-   { 0x00800001, 0x20e00229, 0x00ad01a0, 0x00000000 },
-   { 0x00800001, 0x21000229, 0x00ad01c0, 0x00000000 },
-   { 0x00800001, 0x21200229, 0x00ad01e0, 0x00000000 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0190 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01b0 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01d0 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01f0 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x0000001a },
-   { 0x00800001, 0x20c00229, 0x00ad0181, 0x00000000 },
-   { 0x00800001, 0x20e00229, 0x00ad01a1, 0x00000000 },
-   { 0x00800001, 0x21000229, 0x00ad01c1, 0x00000000 },
-   { 0x00800001, 0x21200229, 0x00ad01e1, 0x00000000 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0191 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01b1 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01d1 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01f1 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000011 },
-   { 0x00800001, 0x20c00229, 0x00ad0182, 0x00000000 },
-   { 0x00800001, 0x20e00229, 0x00ad01a2, 0x00000000 },
-   { 0x00800001, 0x21000229, 0x00ad01c2, 0x00000000 },
-   { 0x00800001, 0x21200229, 0x00ad01e2, 0x00000000 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0192 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01b2 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01d2 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01f2 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000008 },
-   { 0x00800001, 0x20c00229, 0x00ad0183, 0x00000000 },
-   { 0x00800001, 0x20e00229, 0x00ad01a3, 0x00000000 },
-   { 0x00800001, 0x21000229, 0x00ad01c3, 0x00000000 },
-   { 0x00800001, 0x21200229, 0x00ad01e3, 0x00000000 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0193 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01b3 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01d3 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01f3 },
-   { 0x00800040, 0x20c02d29, 0x00b100c0, 0x00010001 },
-   { 0x00800040, 0x20e02d29, 0x00b100e0, 0x00010001 },
-   { 0x00800040, 0x21002d29, 0x00b10100, 0x00010001 },
-   { 0x00800040, 0x21202d29, 0x00b10120, 0x00010001 },
-   { 0x80800008, 0x40c02d31, 0x00b100c0, 0x00010001 },
-   { 0x80800008, 0x40e02d31, 0x00b100e0, 0x00010001 },
-   { 0x80800008, 0x41002d31, 0x00b10100, 0x00010001 },
-   { 0x80800008, 0x41202d31, 0x00b10120, 0x00010001 },
-   { 0x00800001, 0x20800231, 0x00b200c0, 0x00000000 },
-   { 0x00800001, 0x20900231, 0x00b200e0, 0x00000000 },
-   { 0x00800001, 0x20a00231, 0x00b20100, 0x00000000 },
-   { 0x00800001, 0x20b00231, 0x00b20120, 0x00000000 },
-   { 0x00000001, 0x20480061, 0x00000000, 0x0007000f },
-   { 0x00000005, 0x20580c21, 0x00210040, 0x00000003 },
-   { 0x00800031, 0x21801d29, 0x008d0040, 0x0414a007 },
-   { 0x00000041, 0x20580c21, 0x00210058, 0x00000005 },
-   { 0x00000020, 0x34001400, 0x00001400, 0x00210058 },
-   { 0x00800001, 0x20800231, 0x00ad0180, 0x00000000 },
-   { 0x00800001, 0x20900231, 0x00ad01a0, 0x00000000 },
-   { 0x00800001, 0x20a00231, 0x00ad01c0, 0x00000000 },
-   { 0x00800001, 0x20b00231, 0x00ad01e0, 0x00000000 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x0000000e },
-   { 0x00800001, 0x20800231, 0x00ad0181, 0x00000000 },
-   { 0x00800001, 0x20900231, 0x00ad01a1, 0x00000000 },
-   { 0x00800001, 0x20a00231, 0x00ad01c1, 0x00000000 },
-   { 0x00800001, 0x20b00231, 0x00ad01e1, 0x00000000 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000009 },
-   { 0x00800001, 0x20800231, 0x00ad0182, 0x00000000 },
-   { 0x00800001, 0x20900231, 0x00ad01a2, 0x00000000 },
-   { 0x00800001, 0x20a00231, 0x00ad01c2, 0x00000000 },
-   { 0x00800001, 0x20b00231, 0x00ad01e2, 0x00000000 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000004 },
-   { 0x00800001, 0x20800231, 0x00ad0183, 0x00000000 },
-   { 0x00800001, 0x20900231, 0x00ad01a3, 0x00000000 },
-   { 0x00800001, 0x20a00231, 0x00ad01c3, 0x00000000 },
-   { 0x00800001, 0x20b00231, 0x00ad01e3, 0x00000000 },
-   { 0x00000001, 0x20480061, 0x00000000, 0x00070007 },
-   { 0x01000005, 0x20000c3c, 0x0021006c, 0x00000008 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000015 },
-   { 0x00000040, 0x20440c21, 0x00210068, 0x00000000 },
-   { 0x00800031, 0x20c01d21, 0x008d0040, 0x04110203 },
-   { 0x00000040, 0x20440c21, 0x00210044, 0x00000020 },
-   { 0x00800031, 0x20e01d21, 0x008d0040, 0x04110203 },
-   { 0x00000040, 0x20440c21, 0x00210044, 0x00000020 },
-   { 0x00800031, 0x21001d21, 0x008d0040, 0x04110203 },
-   { 0x00000040, 0x20440c21, 0x00210044, 0x00000020 },
-   { 0x00800031, 0x21201d21, 0x008d0040, 0x04110203 },
-   { 0x00000040, 0x20680c21, 0x00210068, 0x00000080 },
-   { 0x00800040, 0x20c045ad, 0x00b100c0, 0x00b10080 },
-   { 0x00800040, 0x20e045ad, 0x00b100e0, 0x00b10090 },
-   { 0x00800040, 0x210045ad, 0x00b10100, 0x00b100a0 },
-   { 0x00800040, 0x212045ad, 0x00b10120, 0x00b100b0 },
-   { 0x80800001, 0x40c001b1, 0x00b100c0, 0x00000000 },
-   { 0x80800001, 0x40e001b1, 0x00b100e0, 0x00000000 },
-   { 0x80800001, 0x410001b1, 0x00b10100, 0x00000000 },
-   { 0x80800001, 0x412001b1, 0x00b10120, 0x00000000 },
-   { 0x00800001, 0x20800231, 0x00b200c0, 0x00000000 },
-   { 0x00800001, 0x20900231, 0x00b200e0, 0x00000000 },
-   { 0x00800001, 0x20a00231, 0x00b20100, 0x00000000 },
-   { 0x00800001, 0x20b00231, 0x00b20120, 0x00000000 },
-   { 0x00802001, 0x20200022, 0x008d0080, 0x00000000 },
-   { 0x00800031, 0x24001d28, 0x008d0020, 0x05302000 },
-   { 0x00200040, 0x20201c21, 0x00450060, 0x00000008 },
-   { 0x80200040, 0x20401421, 0x00450020, 0x00450030 },
-   { 0x01000005, 0x20000c3c, 0x00210070, 0x00000001 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000088 },
-   { 0x01000005, 0x20000c3c, 0x00210074, 0x00000001 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000055 },
-   { 0x00000001, 0x20480061, 0x00000000, 0x0009000f },
-   { 0x00000005, 0x20580c21, 0x00210040, 0x00000003 },
-   { 0x00800031, 0x21801d29, 0x008d0040, 0x0415a007 },
-   { 0x00000041, 0x20580c21, 0x00210058, 0x00000011 },
-   { 0x00000020, 0x34001400, 0x00001400, 0x00210058 },
-   { 0x00800001, 0x20c00229, 0x00ad0180, 0x00000000 },
-   { 0x00800001, 0x20e00229, 0x00ad01a0, 0x00000000 },
-   { 0x00800001, 0x21000229, 0x00ad01c0, 0x00000000 },
-   { 0x00800001, 0x21200229, 0x00ad01e0, 0x00000000 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0181 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01a1 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01c1 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01e1 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0190 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01b0 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01d0 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01f0 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0191 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01b1 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01d1 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01f1 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000032 },
-   { 0x00800001, 0x20c00229, 0x00ad0181, 0x00000000 },
-   { 0x00800001, 0x20e00229, 0x00ad01a1, 0x00000000 },
-   { 0x00800001, 0x21000229, 0x00ad01c1, 0x00000000 },
-   { 0x00800001, 0x21200229, 0x00ad01e1, 0x00000000 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0181 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01a1 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01c1 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01e1 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0191 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01b1 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01d1 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01f1 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0192 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01b2 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01d2 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01f2 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000021 },
-   { 0x00800001, 0x20c00229, 0x00ad0182, 0x00000000 },
-   { 0x00800001, 0x20e00229, 0x00ad01a2, 0x00000000 },
-   { 0x00800001, 0x21000229, 0x00ad01c2, 0x00000000 },
-   { 0x00800001, 0x21200229, 0x00ad01e2, 0x00000000 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0183 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01a3 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01c3 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01e3 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0192 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01b2 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01d2 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01f2 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0193 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01b3 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01d3 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01f3 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000010 },
-   { 0x00800001, 0x20c00229, 0x00ad0183, 0x00000000 },
-   { 0x00800001, 0x20e00229, 0x00ad01a3, 0x00000000 },
-   { 0x00800001, 0x21000229, 0x00ad01c3, 0x00000000 },
-   { 0x00800001, 0x21200229, 0x00ad01e3, 0x00000000 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0184 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01a4 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01c4 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01e4 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0193 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01b3 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01d3 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01f3 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0194 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01b4 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01d4 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01f4 },
-   { 0x00800040, 0x20c02d29, 0x00b100c0, 0x00010001 },
-   { 0x00800040, 0x20e02d29, 0x00b100e0, 0x00010001 },
-   { 0x00800040, 0x21002d29, 0x00b10100, 0x00010001 },
-   { 0x00800040, 0x21202d29, 0x00b10120, 0x00010001 },
-   { 0x00800008, 0x40c02d31, 0x00b100c0, 0x00020002 },
-   { 0x00800008, 0x40e02d31, 0x00b100e0, 0x00020002 },
-   { 0x00800008, 0x41002d31, 0x00b10100, 0x00020002 },
-   { 0x00800008, 0x41202d31, 0x00b10120, 0x00020002 },
-   { 0x00800001, 0x20800231, 0x00b200c0, 0x00000000 },
-   { 0x00800001, 0x20900231, 0x00b200e0, 0x00000000 },
-   { 0x00800001, 0x20a00231, 0x00b20100, 0x00000000 },
-   { 0x00800001, 0x20b00231, 0x00b20120, 0x00000000 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000030 },
-   { 0x00000001, 0x20480061, 0x00000000, 0x0007000f },
-   { 0x00000005, 0x20580c21, 0x00210040, 0x00000003 },
-   { 0x00800031, 0x21801d29, 0x008d0040, 0x0414a007 },
-   { 0x00000041, 0x20580c21, 0x00210058, 0x00000009 },
-   { 0x00000020, 0x34001400, 0x00001400, 0x00210058 },
-   { 0x00800001, 0x20c00229, 0x00ad0180, 0x00000000 },
-   { 0x00800001, 0x20e00229, 0x00ad01a0, 0x00000000 },
-   { 0x00800001, 0x21000229, 0x00ad01c0, 0x00000000 },
-   { 0x00800001, 0x21200229, 0x00ad01e0, 0x00000000 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0181 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01a1 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01c1 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01e1 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x0000001a },
-   { 0x00800001, 0x20c00229, 0x00ad0181, 0x00000000 },
-   { 0x00800001, 0x20e00229, 0x00ad01a1, 0x00000000 },
-   { 0x00800001, 0x21000229, 0x00ad01c1, 0x00000000 },
-   { 0x00800001, 0x21200229, 0x00ad01e1, 0x00000000 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0182 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01a2 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01c2 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01e2 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000011 },
-   { 0x00800001, 0x20c00229, 0x00ad0182, 0x00000000 },
-   { 0x00800001, 0x20e00229, 0x00ad01a2, 0x00000000 },
-   { 0x00800001, 0x21000229, 0x00ad01c2, 0x00000000 },
-   { 0x00800001, 0x21200229, 0x00ad01e2, 0x00000000 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0183 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01a3 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01c3 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01e3 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000008 },
-   { 0x00800001, 0x20c00229, 0x00ad0183, 0x00000000 },
-   { 0x00800001, 0x20e00229, 0x00ad01a3, 0x00000000 },
-   { 0x00800001, 0x21000229, 0x00ad01c3, 0x00000000 },
-   { 0x00800001, 0x21200229, 0x00ad01e3, 0x00000000 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0184 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01a4 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01c4 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01e4 },
-   { 0x00800008, 0x20c02d29, 0x00b100c0, 0x00010001 },
-   { 0x00800008, 0x20e02d29, 0x00b100e0, 0x00010001 },
-   { 0x00800008, 0x21002d29, 0x00b10100, 0x00010001 },
-   { 0x00800008, 0x21202d29, 0x00b10120, 0x00010001 },
-   { 0x00800001, 0x20800231, 0x00b200c0, 0x00000000 },
-   { 0x00800001, 0x20900231, 0x00b200e0, 0x00000000 },
-   { 0x00800001, 0x20a00231, 0x00b20100, 0x00000000 },
-   { 0x00800001, 0x20b00231, 0x00b20120, 0x00000000 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x0000004e },
-   { 0x01000005, 0x20000c3c, 0x00210070, 0x00000000 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000034 },
-   { 0x00000001, 0x20480061, 0x00000000, 0x0009000f },
-   { 0x00000005, 0x20580c21, 0x00210040, 0x00000003 },
-   { 0x00800031, 0x21801d29, 0x008d0040, 0x0415a007 },
-   { 0x00000041, 0x20580c21, 0x00210058, 0x00000009 },
-   { 0x00000020, 0x34001400, 0x00001400, 0x00210058 },
-   { 0x00800001, 0x20c00229, 0x00ad0180, 0x00000000 },
-   { 0x00800001, 0x20e00229, 0x00ad01a0, 0x00000000 },
-   { 0x00800001, 0x21000229, 0x00ad01c0, 0x00000000 },
-   { 0x00800001, 0x21200229, 0x00ad01e0, 0x00000000 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0190 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01b0 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01d0 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01f0 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x0000001a },
-   { 0x00800001, 0x20c00229, 0x00ad0181, 0x00000000 },
-   { 0x00800001, 0x20e00229, 0x00ad01a1, 0x00000000 },
-   { 0x00800001, 0x21000229, 0x00ad01c1, 0x00000000 },
-   { 0x00800001, 0x21200229, 0x00ad01e1, 0x00000000 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0191 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01b1 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01d1 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01f1 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000011 },
-   { 0x00800001, 0x20c00229, 0x00ad0182, 0x00000000 },
-   { 0x00800001, 0x20e00229, 0x00ad01a2, 0x00000000 },
-   { 0x00800001, 0x21000229, 0x00ad01c2, 0x00000000 },
-   { 0x00800001, 0x21200229, 0x00ad01e2, 0x00000000 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0192 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01b2 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01d2 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01f2 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000008 },
-   { 0x00800001, 0x20c00229, 0x00ad0183, 0x00000000 },
-   { 0x00800001, 0x20e00229, 0x00ad01a3, 0x00000000 },
-   { 0x00800001, 0x21000229, 0x00ad01c3, 0x00000000 },
-   { 0x00800001, 0x21200229, 0x00ad01e3, 0x00000000 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0193 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01b3 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01d3 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01f3 },
-   { 0x00800040, 0x20c02d29, 0x00b100c0, 0x00010001 },
-   { 0x00800040, 0x20e02d29, 0x00b100e0, 0x00010001 },
-   { 0x00800040, 0x21002d29, 0x00b10100, 0x00010001 },
-   { 0x00800040, 0x21202d29, 0x00b10120, 0x00010001 },
-   { 0x80800008, 0x40c02d31, 0x00b100c0, 0x00010001 },
-   { 0x80800008, 0x40e02d31, 0x00b100e0, 0x00010001 },
-   { 0x80800008, 0x41002d31, 0x00b10100, 0x00010001 },
-   { 0x80800008, 0x41202d31, 0x00b10120, 0x00010001 },
-   { 0x00800001, 0x20800231, 0x00b200c0, 0x00000000 },
-   { 0x00800001, 0x20900231, 0x00b200e0, 0x00000000 },
-   { 0x00800001, 0x20a00231, 0x00b20100, 0x00000000 },
-   { 0x00800001, 0x20b00231, 0x00b20120, 0x00000000 },
-   { 0x00000001, 0x20480061, 0x00000000, 0x0007000f },
-   { 0x00000005, 0x20580c21, 0x00210040, 0x00000003 },
-   { 0x00800031, 0x21801d29, 0x008d0040, 0x0414a007 },
-   { 0x00000041, 0x20580c21, 0x00210058, 0x00000005 },
-   { 0x00000020, 0x34001400, 0x00001400, 0x00210058 },
-   { 0x00800001, 0x20800231, 0x00ad0180, 0x00000000 },
-   { 0x00800001, 0x20900231, 0x00ad01a0, 0x00000000 },
-   { 0x00800001, 0x20a00231, 0x00ad01c0, 0x00000000 },
-   { 0x00800001, 0x20b00231, 0x00ad01e0, 0x00000000 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x0000000e },
-   { 0x00800001, 0x20800231, 0x00ad0181, 0x00000000 },
-   { 0x00800001, 0x20900231, 0x00ad01a1, 0x00000000 },
-   { 0x00800001, 0x20a00231, 0x00ad01c1, 0x00000000 },
-   { 0x00800001, 0x20b00231, 0x00ad01e1, 0x00000000 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000009 },
-   { 0x00800001, 0x20800231, 0x00ad0182, 0x00000000 },
-   { 0x00800001, 0x20900231, 0x00ad01a2, 0x00000000 },
-   { 0x00800001, 0x20a00231, 0x00ad01c2, 0x00000000 },
-   { 0x00800001, 0x20b00231, 0x00ad01e2, 0x00000000 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000004 },
-   { 0x00800001, 0x20800231, 0x00ad0183, 0x00000000 },
-   { 0x00800001, 0x20900231, 0x00ad01a3, 0x00000000 },
-   { 0x00800001, 0x20a00231, 0x00ad01c3, 0x00000000 },
-   { 0x00800001, 0x20b00231, 0x00ad01e3, 0x00000000 },
-   { 0x00000001, 0x20480061, 0x00000000, 0x00070007 },
-   { 0x01000005, 0x20000c3c, 0x0021006c, 0x00000004 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000015 },
-   { 0x00000040, 0x20440c21, 0x00210068, 0x00000000 },
-   { 0x00800031, 0x20c01d21, 0x008d0040, 0x04110203 },
-   { 0x00000040, 0x20440c21, 0x00210044, 0x00000020 },
-   { 0x00800031, 0x20e01d21, 0x008d0040, 0x04110203 },
-   { 0x00000040, 0x20440c21, 0x00210044, 0x00000020 },
-   { 0x00800031, 0x21001d21, 0x008d0040, 0x04110203 },
-   { 0x00000040, 0x20440c21, 0x00210044, 0x00000020 },
-   { 0x00800031, 0x21201d21, 0x008d0040, 0x04110203 },
-   { 0x00000040, 0x20680c21, 0x00210068, 0x00000080 },
-   { 0x00800040, 0x20c045ad, 0x00b100c0, 0x00b10080 },
-   { 0x00800040, 0x20e045ad, 0x00b100e0, 0x00b10090 },
-   { 0x00800040, 0x210045ad, 0x00b10100, 0x00b100a0 },
-   { 0x00800040, 0x212045ad, 0x00b10120, 0x00b100b0 },
-   { 0x80800001, 0x40c001b1, 0x00b100c0, 0x00000000 },
-   { 0x80800001, 0x40e001b1, 0x00b100e0, 0x00000000 },
-   { 0x80800001, 0x410001b1, 0x00b10100, 0x00000000 },
-   { 0x80800001, 0x412001b1, 0x00b10120, 0x00000000 },
-   { 0x00800001, 0x20800231, 0x00b200c0, 0x00000000 },
-   { 0x00800001, 0x20900231, 0x00b200e0, 0x00000000 },
-   { 0x00800001, 0x20a00231, 0x00b20100, 0x00000000 },
-   { 0x00800001, 0x20b00231, 0x00b20120, 0x00000000 },
-   { 0x00802001, 0x20200022, 0x008d0080, 0x00000000 },
-   { 0x00800031, 0x24001d28, 0x008d0020, 0x05302000 },
-   { 0x00200008, 0x20200c21, 0x00450060, 0x00000001 },
-   { 0x0020000c, 0x20701ca5, 0x00450070, 0x00000001 },
-   { 0x0020000c, 0x20301ca5, 0x00450070, 0x00000001 },
-   { 0x00200040, 0x20401421, 0x00450020, 0x00450030 },
-   { 0x01000005, 0x20000c3c, 0x00210070, 0x00000001 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000088 },
-   { 0x01000005, 0x20000c3c, 0x00210074, 0x00000001 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000055 },
-   { 0x00000001, 0x20480061, 0x00000000, 0x0009000f },
-   { 0x00000005, 0x20580c21, 0x00210040, 0x00000003 },
-   { 0x00800031, 0x21801d29, 0x008d0040, 0x0415a008 },
-   { 0x00000041, 0x20580c21, 0x00210058, 0x00000011 },
-   { 0x00000020, 0x34001400, 0x00001400, 0x00210058 },
-   { 0x00800001, 0x20c00229, 0x00ad0180, 0x00000000 },
-   { 0x00800001, 0x20e00229, 0x00ad01a0, 0x00000000 },
-   { 0x00800001, 0x21000229, 0x00ad01c0, 0x00000000 },
-   { 0x00800001, 0x21200229, 0x00ad01e0, 0x00000000 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0181 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01a1 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01c1 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01e1 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0190 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01b0 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01d0 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01f0 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0191 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01b1 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01d1 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01f1 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000032 },
-   { 0x00800001, 0x20c00229, 0x00ad0181, 0x00000000 },
-   { 0x00800001, 0x20e00229, 0x00ad01a1, 0x00000000 },
-   { 0x00800001, 0x21000229, 0x00ad01c1, 0x00000000 },
-   { 0x00800001, 0x21200229, 0x00ad01e1, 0x00000000 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0181 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01a1 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01c1 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01e1 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0191 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01b1 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01d1 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01f1 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0192 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01b2 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01d2 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01f2 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000021 },
-   { 0x00800001, 0x20c00229, 0x00ad0182, 0x00000000 },
-   { 0x00800001, 0x20e00229, 0x00ad01a2, 0x00000000 },
-   { 0x00800001, 0x21000229, 0x00ad01c2, 0x00000000 },
-   { 0x00800001, 0x21200229, 0x00ad01e2, 0x00000000 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0183 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01a3 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01c3 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01e3 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0192 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01b2 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01d2 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01f2 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0193 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01b3 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01d3 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01f3 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000010 },
-   { 0x00800001, 0x20c00229, 0x00ad0183, 0x00000000 },
-   { 0x00800001, 0x20e00229, 0x00ad01a3, 0x00000000 },
-   { 0x00800001, 0x21000229, 0x00ad01c3, 0x00000000 },
-   { 0x00800001, 0x21200229, 0x00ad01e3, 0x00000000 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0184 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01a4 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01c4 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01e4 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0193 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01b3 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01d3 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01f3 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0194 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01b4 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01d4 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01f4 },
-   { 0x00800040, 0x20c02d29, 0x00b100c0, 0x00010001 },
-   { 0x00800040, 0x20e02d29, 0x00b100e0, 0x00010001 },
-   { 0x00800040, 0x21002d29, 0x00b10100, 0x00010001 },
-   { 0x00800040, 0x21202d29, 0x00b10120, 0x00010001 },
-   { 0x00800008, 0x40c02d31, 0x00b100c0, 0x00020002 },
-   { 0x00800008, 0x40e02d31, 0x00b100e0, 0x00020002 },
-   { 0x00800008, 0x41002d31, 0x00b10100, 0x00020002 },
-   { 0x00800008, 0x41202d31, 0x00b10120, 0x00020002 },
-   { 0x00800001, 0x20800231, 0x00b200c0, 0x00000000 },
-   { 0x00800001, 0x20900231, 0x00b200e0, 0x00000000 },
-   { 0x00800001, 0x20a00231, 0x00b20100, 0x00000000 },
-   { 0x00800001, 0x20b00231, 0x00b20120, 0x00000000 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000030 },
-   { 0x00000001, 0x20480061, 0x00000000, 0x0007000f },
-   { 0x00000005, 0x20580c21, 0x00210040, 0x00000003 },
-   { 0x00800031, 0x21801d29, 0x008d0040, 0x0414a008 },
-   { 0x00000041, 0x20580c21, 0x00210058, 0x00000009 },
-   { 0x00000020, 0x34001400, 0x00001400, 0x00210058 },
-   { 0x00800001, 0x20c00229, 0x00ad0180, 0x00000000 },
-   { 0x00800001, 0x20e00229, 0x00ad01a0, 0x00000000 },
-   { 0x00800001, 0x21000229, 0x00ad01c0, 0x00000000 },
-   { 0x00800001, 0x21200229, 0x00ad01e0, 0x00000000 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0181 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01a1 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01c1 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01e1 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x0000001a },
-   { 0x00800001, 0x20c00229, 0x00ad0181, 0x00000000 },
-   { 0x00800001, 0x20e00229, 0x00ad01a1, 0x00000000 },
-   { 0x00800001, 0x21000229, 0x00ad01c1, 0x00000000 },
-   { 0x00800001, 0x21200229, 0x00ad01e1, 0x00000000 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0182 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01a2 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01c2 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01e2 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000011 },
-   { 0x00800001, 0x20c00229, 0x00ad0182, 0x00000000 },
-   { 0x00800001, 0x20e00229, 0x00ad01a2, 0x00000000 },
-   { 0x00800001, 0x21000229, 0x00ad01c2, 0x00000000 },
-   { 0x00800001, 0x21200229, 0x00ad01e2, 0x00000000 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0183 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01a3 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01c3 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01e3 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000008 },
-   { 0x00800001, 0x20c00229, 0x00ad0183, 0x00000000 },
-   { 0x00800001, 0x20e00229, 0x00ad01a3, 0x00000000 },
-   { 0x00800001, 0x21000229, 0x00ad01c3, 0x00000000 },
-   { 0x00800001, 0x21200229, 0x00ad01e3, 0x00000000 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0184 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01a4 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01c4 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01e4 },
-   { 0x00800008, 0x20c02d29, 0x00b100c0, 0x00010001 },
-   { 0x00800008, 0x20e02d29, 0x00b100e0, 0x00010001 },
-   { 0x00800008, 0x21002d29, 0x00b10100, 0x00010001 },
-   { 0x00800008, 0x21202d29, 0x00b10120, 0x00010001 },
-   { 0x00800001, 0x20800231, 0x00b200c0, 0x00000000 },
-   { 0x00800001, 0x20900231, 0x00b200e0, 0x00000000 },
-   { 0x00800001, 0x20a00231, 0x00b20100, 0x00000000 },
-   { 0x00800001, 0x20b00231, 0x00b20120, 0x00000000 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x0000004e },
-   { 0x01000005, 0x20000c3c, 0x00210070, 0x00000000 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000034 },
-   { 0x00000001, 0x20480061, 0x00000000, 0x0009000f },
-   { 0x00000005, 0x20580c21, 0x00210040, 0x00000003 },
-   { 0x00800031, 0x21801d29, 0x008d0040, 0x0415a008 },
-   { 0x00000041, 0x20580c21, 0x00210058, 0x00000009 },
-   { 0x00000020, 0x34001400, 0x00001400, 0x00210058 },
-   { 0x00800001, 0x20c00229, 0x00ad0180, 0x00000000 },
-   { 0x00800001, 0x20e00229, 0x00ad01a0, 0x00000000 },
-   { 0x00800001, 0x21000229, 0x00ad01c0, 0x00000000 },
-   { 0x00800001, 0x21200229, 0x00ad01e0, 0x00000000 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0190 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01b0 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01d0 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01f0 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x0000001a },
-   { 0x00800001, 0x20c00229, 0x00ad0181, 0x00000000 },
-   { 0x00800001, 0x20e00229, 0x00ad01a1, 0x00000000 },
-   { 0x00800001, 0x21000229, 0x00ad01c1, 0x00000000 },
-   { 0x00800001, 0x21200229, 0x00ad01e1, 0x00000000 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0191 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01b1 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01d1 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01f1 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000011 },
-   { 0x00800001, 0x20c00229, 0x00ad0182, 0x00000000 },
-   { 0x00800001, 0x20e00229, 0x00ad01a2, 0x00000000 },
-   { 0x00800001, 0x21000229, 0x00ad01c2, 0x00000000 },
-   { 0x00800001, 0x21200229, 0x00ad01e2, 0x00000000 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0192 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01b2 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01d2 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01f2 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000008 },
-   { 0x00800001, 0x20c00229, 0x00ad0183, 0x00000000 },
-   { 0x00800001, 0x20e00229, 0x00ad01a3, 0x00000000 },
-   { 0x00800001, 0x21000229, 0x00ad01c3, 0x00000000 },
-   { 0x00800001, 0x21200229, 0x00ad01e3, 0x00000000 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0193 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01b3 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01d3 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01f3 },
-   { 0x00800040, 0x20c02d29, 0x00b100c0, 0x00010001 },
-   { 0x00800040, 0x20e02d29, 0x00b100e0, 0x00010001 },
-   { 0x00800040, 0x21002d29, 0x00b10100, 0x00010001 },
-   { 0x00800040, 0x21202d29, 0x00b10120, 0x00010001 },
-   { 0x80800008, 0x40c02d31, 0x00b100c0, 0x00010001 },
-   { 0x80800008, 0x40e02d31, 0x00b100e0, 0x00010001 },
-   { 0x80800008, 0x41002d31, 0x00b10100, 0x00010001 },
-   { 0x80800008, 0x41202d31, 0x00b10120, 0x00010001 },
-   { 0x00800001, 0x20800231, 0x00b200c0, 0x00000000 },
-   { 0x00800001, 0x20900231, 0x00b200e0, 0x00000000 },
-   { 0x00800001, 0x20a00231, 0x00b20100, 0x00000000 },
-   { 0x00800001, 0x20b00231, 0x00b20120, 0x00000000 },
-   { 0x00000001, 0x20480061, 0x00000000, 0x0007000f },
-   { 0x00000005, 0x20580c21, 0x00210040, 0x00000003 },
-   { 0x00800031, 0x21801d29, 0x008d0040, 0x0414a008 },
-   { 0x00000041, 0x20580c21, 0x00210058, 0x00000005 },
-   { 0x00000020, 0x34001400, 0x00001400, 0x00210058 },
-   { 0x00800001, 0x20800231, 0x00ad0180, 0x00000000 },
-   { 0x00800001, 0x20900231, 0x00ad01a0, 0x00000000 },
-   { 0x00800001, 0x20a00231, 0x00ad01c0, 0x00000000 },
-   { 0x00800001, 0x20b00231, 0x00ad01e0, 0x00000000 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x0000000e },
-   { 0x00800001, 0x20800231, 0x00ad0181, 0x00000000 },
-   { 0x00800001, 0x20900231, 0x00ad01a1, 0x00000000 },
-   { 0x00800001, 0x20a00231, 0x00ad01c1, 0x00000000 },
-   { 0x00800001, 0x20b00231, 0x00ad01e1, 0x00000000 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000009 },
-   { 0x00800001, 0x20800231, 0x00ad0182, 0x00000000 },
-   { 0x00800001, 0x20900231, 0x00ad01a2, 0x00000000 },
-   { 0x00800001, 0x20a00231, 0x00ad01c2, 0x00000000 },
-   { 0x00800001, 0x20b00231, 0x00ad01e2, 0x00000000 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000004 },
-   { 0x00800001, 0x20800231, 0x00ad0183, 0x00000000 },
-   { 0x00800001, 0x20900231, 0x00ad01a3, 0x00000000 },
-   { 0x00800001, 0x20a00231, 0x00ad01c3, 0x00000000 },
-   { 0x00800001, 0x20b00231, 0x00ad01e3, 0x00000000 },
-   { 0x00000001, 0x20480061, 0x00000000, 0x00070007 },
-   { 0x01000005, 0x20000c3c, 0x0021006c, 0x00000002 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000015 },
-   { 0x00000040, 0x20440c21, 0x00210068, 0x00000000 },
-   { 0x00800031, 0x20c01d21, 0x008d0040, 0x04110203 },
-   { 0x00000040, 0x20440c21, 0x00210044, 0x00000020 },
-   { 0x00800031, 0x20e01d21, 0x008d0040, 0x04110203 },
-   { 0x00000040, 0x20440c21, 0x00210044, 0x00000020 },
-   { 0x00800031, 0x21001d21, 0x008d0040, 0x04110203 },
-   { 0x00000040, 0x20440c21, 0x00210044, 0x00000020 },
-   { 0x00800031, 0x21201d21, 0x008d0040, 0x04110203 },
-   { 0x00000040, 0x20680c21, 0x00210068, 0x00000080 },
-   { 0x00800040, 0x20c045ad, 0x00b100c0, 0x00b10080 },
-   { 0x00800040, 0x20e045ad, 0x00b100e0, 0x00b10090 },
-   { 0x00800040, 0x210045ad, 0x00b10100, 0x00b100a0 },
-   { 0x00800040, 0x212045ad, 0x00b10120, 0x00b100b0 },
-   { 0x80800001, 0x40c001b1, 0x00b100c0, 0x00000000 },
-   { 0x80800001, 0x40e001b1, 0x00b100e0, 0x00000000 },
-   { 0x80800001, 0x410001b1, 0x00b10100, 0x00000000 },
-   { 0x80800001, 0x412001b1, 0x00b10120, 0x00000000 },
-   { 0x00800001, 0x20800231, 0x00b200c0, 0x00000000 },
-   { 0x00800001, 0x20900231, 0x00b200e0, 0x00000000 },
-   { 0x00800001, 0x20a00231, 0x00b20100, 0x00000000 },
-   { 0x00800001, 0x20b00231, 0x00b20120, 0x00000000 },
-   { 0x00802001, 0x20200022, 0x008d0080, 0x00000000 },
-   { 0x00800031, 0x24001d28, 0x008d0020, 0x05302001 },
-   { 0x00200040, 0x20401421, 0x00450020, 0x00450030 },
-   { 0x01000005, 0x20000c3c, 0x00210070, 0x00000001 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000088 },
-   { 0x01000005, 0x20000c3c, 0x00210074, 0x00000001 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000055 },
-   { 0x00000001, 0x20480061, 0x00000000, 0x0009000f },
-   { 0x00000005, 0x20580c21, 0x00210040, 0x00000003 },
-   { 0x00800031, 0x21801d29, 0x008d0040, 0x0415a009 },
-   { 0x00000041, 0x20580c21, 0x00210058, 0x00000011 },
-   { 0x00000020, 0x34001400, 0x00001400, 0x00210058 },
-   { 0x00800001, 0x20c00229, 0x00ad0180, 0x00000000 },
-   { 0x00800001, 0x20e00229, 0x00ad01a0, 0x00000000 },
-   { 0x00800001, 0x21000229, 0x00ad01c0, 0x00000000 },
-   { 0x00800001, 0x21200229, 0x00ad01e0, 0x00000000 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0181 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01a1 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01c1 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01e1 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0190 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01b0 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01d0 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01f0 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0191 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01b1 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01d1 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01f1 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000032 },
-   { 0x00800001, 0x20c00229, 0x00ad0181, 0x00000000 },
-   { 0x00800001, 0x20e00229, 0x00ad01a1, 0x00000000 },
-   { 0x00800001, 0x21000229, 0x00ad01c1, 0x00000000 },
-   { 0x00800001, 0x21200229, 0x00ad01e1, 0x00000000 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0181 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01a1 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01c1 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01e1 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0191 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01b1 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01d1 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01f1 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0192 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01b2 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01d2 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01f2 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000021 },
-   { 0x00800001, 0x20c00229, 0x00ad0182, 0x00000000 },
-   { 0x00800001, 0x20e00229, 0x00ad01a2, 0x00000000 },
-   { 0x00800001, 0x21000229, 0x00ad01c2, 0x00000000 },
-   { 0x00800001, 0x21200229, 0x00ad01e2, 0x00000000 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0183 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01a3 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01c3 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01e3 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0192 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01b2 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01d2 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01f2 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0193 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01b3 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01d3 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01f3 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000010 },
-   { 0x00800001, 0x20c00229, 0x00ad0183, 0x00000000 },
-   { 0x00800001, 0x20e00229, 0x00ad01a3, 0x00000000 },
-   { 0x00800001, 0x21000229, 0x00ad01c3, 0x00000000 },
-   { 0x00800001, 0x21200229, 0x00ad01e3, 0x00000000 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0184 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01a4 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01c4 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01e4 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0193 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01b3 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01d3 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01f3 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0194 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01b4 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01d4 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01f4 },
-   { 0x00800040, 0x20c02d29, 0x00b100c0, 0x00010001 },
-   { 0x00800040, 0x20e02d29, 0x00b100e0, 0x00010001 },
-   { 0x00800040, 0x21002d29, 0x00b10100, 0x00010001 },
-   { 0x00800040, 0x21202d29, 0x00b10120, 0x00010001 },
-   { 0x00800008, 0x40c02d31, 0x00b100c0, 0x00020002 },
-   { 0x00800008, 0x40e02d31, 0x00b100e0, 0x00020002 },
-   { 0x00800008, 0x41002d31, 0x00b10100, 0x00020002 },
-   { 0x00800008, 0x41202d31, 0x00b10120, 0x00020002 },
-   { 0x00800001, 0x20800231, 0x00b200c0, 0x00000000 },
-   { 0x00800001, 0x20900231, 0x00b200e0, 0x00000000 },
-   { 0x00800001, 0x20a00231, 0x00b20100, 0x00000000 },
-   { 0x00800001, 0x20b00231, 0x00b20120, 0x00000000 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000030 },
-   { 0x00000001, 0x20480061, 0x00000000, 0x0007000f },
-   { 0x00000005, 0x20580c21, 0x00210040, 0x00000003 },
-   { 0x00800031, 0x21801d29, 0x008d0040, 0x0414a009 },
-   { 0x00000041, 0x20580c21, 0x00210058, 0x00000009 },
-   { 0x00000020, 0x34001400, 0x00001400, 0x00210058 },
-   { 0x00800001, 0x20c00229, 0x00ad0180, 0x00000000 },
-   { 0x00800001, 0x20e00229, 0x00ad01a0, 0x00000000 },
-   { 0x00800001, 0x21000229, 0x00ad01c0, 0x00000000 },
-   { 0x00800001, 0x21200229, 0x00ad01e0, 0x00000000 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0181 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01a1 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01c1 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01e1 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x0000001a },
-   { 0x00800001, 0x20c00229, 0x00ad0181, 0x00000000 },
-   { 0x00800001, 0x20e00229, 0x00ad01a1, 0x00000000 },
-   { 0x00800001, 0x21000229, 0x00ad01c1, 0x00000000 },
-   { 0x00800001, 0x21200229, 0x00ad01e1, 0x00000000 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0182 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01a2 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01c2 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01e2 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000011 },
-   { 0x00800001, 0x20c00229, 0x00ad0182, 0x00000000 },
-   { 0x00800001, 0x20e00229, 0x00ad01a2, 0x00000000 },
-   { 0x00800001, 0x21000229, 0x00ad01c2, 0x00000000 },
-   { 0x00800001, 0x21200229, 0x00ad01e2, 0x00000000 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0183 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01a3 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01c3 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01e3 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000008 },
-   { 0x00800001, 0x20c00229, 0x00ad0183, 0x00000000 },
-   { 0x00800001, 0x20e00229, 0x00ad01a3, 0x00000000 },
-   { 0x00800001, 0x21000229, 0x00ad01c3, 0x00000000 },
-   { 0x00800001, 0x21200229, 0x00ad01e3, 0x00000000 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0184 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01a4 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01c4 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01e4 },
-   { 0x00800008, 0x20c02d29, 0x00b100c0, 0x00010001 },
-   { 0x00800008, 0x20e02d29, 0x00b100e0, 0x00010001 },
-   { 0x00800008, 0x21002d29, 0x00b10100, 0x00010001 },
-   { 0x00800008, 0x21202d29, 0x00b10120, 0x00010001 },
-   { 0x00800001, 0x20800231, 0x00b200c0, 0x00000000 },
-   { 0x00800001, 0x20900231, 0x00b200e0, 0x00000000 },
-   { 0x00800001, 0x20a00231, 0x00b20100, 0x00000000 },
-   { 0x00800001, 0x20b00231, 0x00b20120, 0x00000000 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x0000004e },
-   { 0x01000005, 0x20000c3c, 0x00210070, 0x00000000 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000034 },
-   { 0x00000001, 0x20480061, 0x00000000, 0x0009000f },
-   { 0x00000005, 0x20580c21, 0x00210040, 0x00000003 },
-   { 0x00800031, 0x21801d29, 0x008d0040, 0x0415a009 },
-   { 0x00000041, 0x20580c21, 0x00210058, 0x00000009 },
-   { 0x00000020, 0x34001400, 0x00001400, 0x00210058 },
-   { 0x00800001, 0x20c00229, 0x00ad0180, 0x00000000 },
-   { 0x00800001, 0x20e00229, 0x00ad01a0, 0x00000000 },
-   { 0x00800001, 0x21000229, 0x00ad01c0, 0x00000000 },
-   { 0x00800001, 0x21200229, 0x00ad01e0, 0x00000000 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0190 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01b0 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01d0 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01f0 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x0000001a },
-   { 0x00800001, 0x20c00229, 0x00ad0181, 0x00000000 },
-   { 0x00800001, 0x20e00229, 0x00ad01a1, 0x00000000 },
-   { 0x00800001, 0x21000229, 0x00ad01c1, 0x00000000 },
-   { 0x00800001, 0x21200229, 0x00ad01e1, 0x00000000 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0191 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01b1 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01d1 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01f1 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000011 },
-   { 0x00800001, 0x20c00229, 0x00ad0182, 0x00000000 },
-   { 0x00800001, 0x20e00229, 0x00ad01a2, 0x00000000 },
-   { 0x00800001, 0x21000229, 0x00ad01c2, 0x00000000 },
-   { 0x00800001, 0x21200229, 0x00ad01e2, 0x00000000 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0192 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01b2 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01d2 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01f2 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000008 },
-   { 0x00800001, 0x20c00229, 0x00ad0183, 0x00000000 },
-   { 0x00800001, 0x20e00229, 0x00ad01a3, 0x00000000 },
-   { 0x00800001, 0x21000229, 0x00ad01c3, 0x00000000 },
-   { 0x00800001, 0x21200229, 0x00ad01e3, 0x00000000 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0193 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01b3 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01d3 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01f3 },
-   { 0x00800040, 0x20c02d29, 0x00b100c0, 0x00010001 },
-   { 0x00800040, 0x20e02d29, 0x00b100e0, 0x00010001 },
-   { 0x00800040, 0x21002d29, 0x00b10100, 0x00010001 },
-   { 0x00800040, 0x21202d29, 0x00b10120, 0x00010001 },
-   { 0x80800008, 0x40c02d31, 0x00b100c0, 0x00010001 },
-   { 0x80800008, 0x40e02d31, 0x00b100e0, 0x00010001 },
-   { 0x80800008, 0x41002d31, 0x00b10100, 0x00010001 },
-   { 0x80800008, 0x41202d31, 0x00b10120, 0x00010001 },
-   { 0x00800001, 0x20800231, 0x00b200c0, 0x00000000 },
-   { 0x00800001, 0x20900231, 0x00b200e0, 0x00000000 },
-   { 0x00800001, 0x20a00231, 0x00b20100, 0x00000000 },
-   { 0x00800001, 0x20b00231, 0x00b20120, 0x00000000 },
-   { 0x00000001, 0x20480061, 0x00000000, 0x0007000f },
-   { 0x00000005, 0x20580c21, 0x00210040, 0x00000003 },
-   { 0x00800031, 0x21801d29, 0x008d0040, 0x0414a009 },
-   { 0x00000041, 0x20580c21, 0x00210058, 0x00000005 },
-   { 0x00000020, 0x34001400, 0x00001400, 0x00210058 },
-   { 0x00800001, 0x20800231, 0x00ad0180, 0x00000000 },
-   { 0x00800001, 0x20900231, 0x00ad01a0, 0x00000000 },
-   { 0x00800001, 0x20a00231, 0x00ad01c0, 0x00000000 },
-   { 0x00800001, 0x20b00231, 0x00ad01e0, 0x00000000 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x0000000e },
-   { 0x00800001, 0x20800231, 0x00ad0181, 0x00000000 },
-   { 0x00800001, 0x20900231, 0x00ad01a1, 0x00000000 },
-   { 0x00800001, 0x20a00231, 0x00ad01c1, 0x00000000 },
-   { 0x00800001, 0x20b00231, 0x00ad01e1, 0x00000000 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000009 },
-   { 0x00800001, 0x20800231, 0x00ad0182, 0x00000000 },
-   { 0x00800001, 0x20900231, 0x00ad01a2, 0x00000000 },
-   { 0x00800001, 0x20a00231, 0x00ad01c2, 0x00000000 },
-   { 0x00800001, 0x20b00231, 0x00ad01e2, 0x00000000 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000004 },
-   { 0x00800001, 0x20800231, 0x00ad0183, 0x00000000 },
-   { 0x00800001, 0x20900231, 0x00ad01a3, 0x00000000 },
-   { 0x00800001, 0x20a00231, 0x00ad01c3, 0x00000000 },
-   { 0x00800001, 0x20b00231, 0x00ad01e3, 0x00000000 },
-   { 0x00000001, 0x20480061, 0x00000000, 0x00070007 },
-   { 0x01000005, 0x20000c3c, 0x0021006c, 0x00000001 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000015 },
-   { 0x00000040, 0x20440c21, 0x00210068, 0x00000000 },
-   { 0x00800031, 0x20c01d21, 0x008d0040, 0x04110203 },
-   { 0x00000040, 0x20440c21, 0x00210044, 0x00000020 },
-   { 0x00800031, 0x20e01d21, 0x008d0040, 0x04110203 },
-   { 0x00000040, 0x20440c21, 0x00210044, 0x00000020 },
-   { 0x00800031, 0x21001d21, 0x008d0040, 0x04110203 },
-   { 0x00000040, 0x20440c21, 0x00210044, 0x00000020 },
-   { 0x00800031, 0x21201d21, 0x008d0040, 0x04110203 },
-   { 0x00000040, 0x20680c21, 0x00210068, 0x00000080 },
-   { 0x00800040, 0x20c045ad, 0x00b100c0, 0x00b10080 },
-   { 0x00800040, 0x20e045ad, 0x00b100e0, 0x00b10090 },
-   { 0x00800040, 0x210045ad, 0x00b10100, 0x00b100a0 },
-   { 0x00800040, 0x212045ad, 0x00b10120, 0x00b100b0 },
-   { 0x80800001, 0x40c001b1, 0x00b100c0, 0x00000000 },
-   { 0x80800001, 0x40e001b1, 0x00b100e0, 0x00000000 },
-   { 0x80800001, 0x410001b1, 0x00b10100, 0x00000000 },
-   { 0x80800001, 0x412001b1, 0x00b10120, 0x00000000 },
-   { 0x00800001, 0x20800231, 0x00b200c0, 0x00000000 },
-   { 0x00800001, 0x20900231, 0x00b200e0, 0x00000000 },
-   { 0x00800001, 0x20a00231, 0x00b20100, 0x00000000 },
-   { 0x00800001, 0x20b00231, 0x00b20120, 0x00000000 },
-   { 0x00802001, 0x20200022, 0x008d0080, 0x00000000 },
-   { 0x00800031, 0x24001d28, 0x008d0020, 0x05302002 },
-   { 0x00800031, 0x24001d28, 0x008d0000, 0x87100000 },
diff --git a/src/xvmc/f_b.g4b b/src/xvmc/f_b.g4b
deleted file mode 100644
index beace4d..0000000
--- a/src/xvmc/f_b.g4b
+++ /dev/null
@@ -1,2886 +0,0 @@
-   { 0x00600001, 0x20600021, 0x008d0020, 0x00000000 },
-   { 0x00000001, 0x20280061, 0x00000000, 0x00070007 },
-   { 0x00600001, 0x20400021, 0x008d0020, 0x00000000 },
-   { 0x0020000c, 0x20301ca5, 0x00450070, 0x00000001 },
-   { 0x00200040, 0x20401421, 0x00450060, 0x00450030 },
-   { 0x01000005, 0x20000c3c, 0x00210070, 0x00000001 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000088 },
-   { 0x01000005, 0x20000c3c, 0x00210074, 0x00000001 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000055 },
-   { 0x00000001, 0x20480061, 0x00000000, 0x0009000f },
-   { 0x00000005, 0x20580c21, 0x00210040, 0x00000003 },
-   { 0x00800031, 0x21801d29, 0x008d0040, 0x0415a004 },
-   { 0x00000041, 0x20580c21, 0x00210058, 0x00000011 },
-   { 0x00000020, 0x34001400, 0x00001400, 0x00210058 },
-   { 0x00800001, 0x20c00229, 0x00ad0180, 0x00000000 },
-   { 0x00800001, 0x20e00229, 0x00ad01a0, 0x00000000 },
-   { 0x00800001, 0x21000229, 0x00ad01c0, 0x00000000 },
-   { 0x00800001, 0x21200229, 0x00ad01e0, 0x00000000 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0181 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01a1 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01c1 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01e1 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0190 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01b0 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01d0 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01f0 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0191 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01b1 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01d1 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01f1 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000032 },
-   { 0x00800001, 0x20c00229, 0x00ad0181, 0x00000000 },
-   { 0x00800001, 0x20e00229, 0x00ad01a1, 0x00000000 },
-   { 0x00800001, 0x21000229, 0x00ad01c1, 0x00000000 },
-   { 0x00800001, 0x21200229, 0x00ad01e1, 0x00000000 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0181 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01a1 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01c1 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01e1 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0191 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01b1 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01d1 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01f1 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0192 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01b2 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01d2 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01f2 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000021 },
-   { 0x00800001, 0x20c00229, 0x00ad0182, 0x00000000 },
-   { 0x00800001, 0x20e00229, 0x00ad01a2, 0x00000000 },
-   { 0x00800001, 0x21000229, 0x00ad01c2, 0x00000000 },
-   { 0x00800001, 0x21200229, 0x00ad01e2, 0x00000000 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0183 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01a3 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01c3 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01e3 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0192 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01b2 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01d2 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01f2 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0193 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01b3 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01d3 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01f3 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000010 },
-   { 0x00800001, 0x20c00229, 0x00ad0183, 0x00000000 },
-   { 0x00800001, 0x20e00229, 0x00ad01a3, 0x00000000 },
-   { 0x00800001, 0x21000229, 0x00ad01c3, 0x00000000 },
-   { 0x00800001, 0x21200229, 0x00ad01e3, 0x00000000 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0184 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01a4 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01c4 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01e4 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0193 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01b3 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01d3 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01f3 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0194 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01b4 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01d4 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01f4 },
-   { 0x00800040, 0x20c02d29, 0x00b100c0, 0x00010001 },
-   { 0x00800040, 0x20e02d29, 0x00b100e0, 0x00010001 },
-   { 0x00800040, 0x21002d29, 0x00b10100, 0x00010001 },
-   { 0x00800040, 0x21202d29, 0x00b10120, 0x00010001 },
-   { 0x00800008, 0x40c02d31, 0x00b100c0, 0x00020002 },
-   { 0x00800008, 0x40e02d31, 0x00b100e0, 0x00020002 },
-   { 0x00800008, 0x41002d31, 0x00b10100, 0x00020002 },
-   { 0x00800008, 0x41202d31, 0x00b10120, 0x00020002 },
-   { 0x00800001, 0x20800231, 0x00b200c0, 0x00000000 },
-   { 0x00800001, 0x20900231, 0x00b200e0, 0x00000000 },
-   { 0x00800001, 0x20a00231, 0x00b20100, 0x00000000 },
-   { 0x00800001, 0x20b00231, 0x00b20120, 0x00000000 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000030 },
-   { 0x00000001, 0x20480061, 0x00000000, 0x0007000f },
-   { 0x00000005, 0x20580c21, 0x00210040, 0x00000003 },
-   { 0x00800031, 0x21801d29, 0x008d0040, 0x0414a004 },
-   { 0x00000041, 0x20580c21, 0x00210058, 0x00000009 },
-   { 0x00000020, 0x34001400, 0x00001400, 0x00210058 },
-   { 0x00800001, 0x20c00229, 0x00ad0180, 0x00000000 },
-   { 0x00800001, 0x20e00229, 0x00ad01a0, 0x00000000 },
-   { 0x00800001, 0x21000229, 0x00ad01c0, 0x00000000 },
-   { 0x00800001, 0x21200229, 0x00ad01e0, 0x00000000 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0181 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01a1 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01c1 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01e1 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x0000001a },
-   { 0x00800001, 0x20c00229, 0x00ad0181, 0x00000000 },
-   { 0x00800001, 0x20e00229, 0x00ad01a1, 0x00000000 },
-   { 0x00800001, 0x21000229, 0x00ad01c1, 0x00000000 },
-   { 0x00800001, 0x21200229, 0x00ad01e1, 0x00000000 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0182 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01a2 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01c2 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01e2 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000011 },
-   { 0x00800001, 0x20c00229, 0x00ad0182, 0x00000000 },
-   { 0x00800001, 0x20e00229, 0x00ad01a2, 0x00000000 },
-   { 0x00800001, 0x21000229, 0x00ad01c2, 0x00000000 },
-   { 0x00800001, 0x21200229, 0x00ad01e2, 0x00000000 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0183 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01a3 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01c3 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01e3 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000008 },
-   { 0x00800001, 0x20c00229, 0x00ad0183, 0x00000000 },
-   { 0x00800001, 0x20e00229, 0x00ad01a3, 0x00000000 },
-   { 0x00800001, 0x21000229, 0x00ad01c3, 0x00000000 },
-   { 0x00800001, 0x21200229, 0x00ad01e3, 0x00000000 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0184 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01a4 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01c4 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01e4 },
-   { 0x00800008, 0x20c02d29, 0x00b100c0, 0x00010001 },
-   { 0x00800008, 0x20e02d29, 0x00b100e0, 0x00010001 },
-   { 0x00800008, 0x21002d29, 0x00b10100, 0x00010001 },
-   { 0x00800008, 0x21202d29, 0x00b10120, 0x00010001 },
-   { 0x00800001, 0x20800231, 0x00b200c0, 0x00000000 },
-   { 0x00800001, 0x20900231, 0x00b200e0, 0x00000000 },
-   { 0x00800001, 0x20a00231, 0x00b20100, 0x00000000 },
-   { 0x00800001, 0x20b00231, 0x00b20120, 0x00000000 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x0000004e },
-   { 0x01000005, 0x20000c3c, 0x00210070, 0x00000000 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000034 },
-   { 0x00000001, 0x20480061, 0x00000000, 0x0009000f },
-   { 0x00000005, 0x20580c21, 0x00210040, 0x00000003 },
-   { 0x00800031, 0x21801d29, 0x008d0040, 0x0415a004 },
-   { 0x00000041, 0x20580c21, 0x00210058, 0x00000009 },
-   { 0x00000020, 0x34001400, 0x00001400, 0x00210058 },
-   { 0x00800001, 0x20c00229, 0x00ad0180, 0x00000000 },
-   { 0x00800001, 0x20e00229, 0x00ad01a0, 0x00000000 },
-   { 0x00800001, 0x21000229, 0x00ad01c0, 0x00000000 },
-   { 0x00800001, 0x21200229, 0x00ad01e0, 0x00000000 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0190 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01b0 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01d0 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01f0 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x0000001a },
-   { 0x00800001, 0x20c00229, 0x00ad0181, 0x00000000 },
-   { 0x00800001, 0x20e00229, 0x00ad01a1, 0x00000000 },
-   { 0x00800001, 0x21000229, 0x00ad01c1, 0x00000000 },
-   { 0x00800001, 0x21200229, 0x00ad01e1, 0x00000000 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0191 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01b1 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01d1 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01f1 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000011 },
-   { 0x00800001, 0x20c00229, 0x00ad0182, 0x00000000 },
-   { 0x00800001, 0x20e00229, 0x00ad01a2, 0x00000000 },
-   { 0x00800001, 0x21000229, 0x00ad01c2, 0x00000000 },
-   { 0x00800001, 0x21200229, 0x00ad01e2, 0x00000000 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0192 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01b2 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01d2 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01f2 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000008 },
-   { 0x00800001, 0x20c00229, 0x00ad0183, 0x00000000 },
-   { 0x00800001, 0x20e00229, 0x00ad01a3, 0x00000000 },
-   { 0x00800001, 0x21000229, 0x00ad01c3, 0x00000000 },
-   { 0x00800001, 0x21200229, 0x00ad01e3, 0x00000000 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0193 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01b3 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01d3 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01f3 },
-   { 0x00800040, 0x20c02d29, 0x00b100c0, 0x00010001 },
-   { 0x00800040, 0x20e02d29, 0x00b100e0, 0x00010001 },
-   { 0x00800040, 0x21002d29, 0x00b10100, 0x00010001 },
-   { 0x00800040, 0x21202d29, 0x00b10120, 0x00010001 },
-   { 0x80800008, 0x40c02d31, 0x00b100c0, 0x00010001 },
-   { 0x80800008, 0x40e02d31, 0x00b100e0, 0x00010001 },
-   { 0x80800008, 0x41002d31, 0x00b10100, 0x00010001 },
-   { 0x80800008, 0x41202d31, 0x00b10120, 0x00010001 },
-   { 0x00800001, 0x20800231, 0x00b200c0, 0x00000000 },
-   { 0x00800001, 0x20900231, 0x00b200e0, 0x00000000 },
-   { 0x00800001, 0x20a00231, 0x00b20100, 0x00000000 },
-   { 0x00800001, 0x20b00231, 0x00b20120, 0x00000000 },
-   { 0x00000001, 0x20480061, 0x00000000, 0x0007000f },
-   { 0x00000005, 0x20580c21, 0x00210040, 0x00000003 },
-   { 0x00800031, 0x21801d29, 0x008d0040, 0x0414a004 },
-   { 0x00000041, 0x20580c21, 0x00210058, 0x00000005 },
-   { 0x00000020, 0x34001400, 0x00001400, 0x00210058 },
-   { 0x00800001, 0x20800231, 0x00ad0180, 0x00000000 },
-   { 0x00800001, 0x20900231, 0x00ad01a0, 0x00000000 },
-   { 0x00800001, 0x20a00231, 0x00ad01c0, 0x00000000 },
-   { 0x00800001, 0x20b00231, 0x00ad01e0, 0x00000000 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x0000000e },
-   { 0x00800001, 0x20800231, 0x00ad0181, 0x00000000 },
-   { 0x00800001, 0x20900231, 0x00ad01a1, 0x00000000 },
-   { 0x00800001, 0x20a00231, 0x00ad01c1, 0x00000000 },
-   { 0x00800001, 0x20b00231, 0x00ad01e1, 0x00000000 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000009 },
-   { 0x00800001, 0x20800231, 0x00ad0182, 0x00000000 },
-   { 0x00800001, 0x20900231, 0x00ad01a2, 0x00000000 },
-   { 0x00800001, 0x20a00231, 0x00ad01c2, 0x00000000 },
-   { 0x00800001, 0x20b00231, 0x00ad01e2, 0x00000000 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000004 },
-   { 0x00800001, 0x20800231, 0x00ad0183, 0x00000000 },
-   { 0x00800001, 0x20900231, 0x00ad01a3, 0x00000000 },
-   { 0x00800001, 0x20a00231, 0x00ad01c3, 0x00000000 },
-   { 0x00800001, 0x20b00231, 0x00ad01e3, 0x00000000 },
-   { 0x00000001, 0x20480061, 0x00000000, 0x00070007 },
-   { 0x0020000c, 0x20301ca5, 0x00450078, 0x00000001 },
-   { 0x00200040, 0x20401421, 0x00450060, 0x00450030 },
-   { 0x01000005, 0x20000c3c, 0x00210078, 0x00000001 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000088 },
-   { 0x01000005, 0x20000c3c, 0x0021007c, 0x00000001 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000055 },
-   { 0x00000001, 0x20480061, 0x00000000, 0x0009000f },
-   { 0x00000005, 0x20580c21, 0x00210040, 0x00000003 },
-   { 0x00800031, 0x21801d29, 0x008d0040, 0x0415a007 },
-   { 0x00000041, 0x20580c21, 0x00210058, 0x00000011 },
-   { 0x00000020, 0x34001400, 0x00001400, 0x00210058 },
-   { 0x00800001, 0x20c00229, 0x00ad0180, 0x00000000 },
-   { 0x00800001, 0x20e00229, 0x00ad01a0, 0x00000000 },
-   { 0x00800001, 0x21000229, 0x00ad01c0, 0x00000000 },
-   { 0x00800001, 0x21200229, 0x00ad01e0, 0x00000000 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0181 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01a1 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01c1 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01e1 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0190 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01b0 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01d0 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01f0 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0191 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01b1 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01d1 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01f1 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000032 },
-   { 0x00800001, 0x20c00229, 0x00ad0181, 0x00000000 },
-   { 0x00800001, 0x20e00229, 0x00ad01a1, 0x00000000 },
-   { 0x00800001, 0x21000229, 0x00ad01c1, 0x00000000 },
-   { 0x00800001, 0x21200229, 0x00ad01e1, 0x00000000 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0181 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01a1 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01c1 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01e1 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0191 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01b1 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01d1 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01f1 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0192 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01b2 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01d2 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01f2 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000021 },
-   { 0x00800001, 0x20c00229, 0x00ad0182, 0x00000000 },
-   { 0x00800001, 0x20e00229, 0x00ad01a2, 0x00000000 },
-   { 0x00800001, 0x21000229, 0x00ad01c2, 0x00000000 },
-   { 0x00800001, 0x21200229, 0x00ad01e2, 0x00000000 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0183 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01a3 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01c3 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01e3 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0192 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01b2 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01d2 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01f2 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0193 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01b3 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01d3 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01f3 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000010 },
-   { 0x00800001, 0x20c00229, 0x00ad0183, 0x00000000 },
-   { 0x00800001, 0x20e00229, 0x00ad01a3, 0x00000000 },
-   { 0x00800001, 0x21000229, 0x00ad01c3, 0x00000000 },
-   { 0x00800001, 0x21200229, 0x00ad01e3, 0x00000000 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0184 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01a4 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01c4 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01e4 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0193 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01b3 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01d3 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01f3 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0194 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01b4 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01d4 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01f4 },
-   { 0x00800040, 0x20c02d29, 0x00b100c0, 0x00010001 },
-   { 0x00800040, 0x20e02d29, 0x00b100e0, 0x00010001 },
-   { 0x00800040, 0x21002d29, 0x00b10100, 0x00010001 },
-   { 0x00800040, 0x21202d29, 0x00b10120, 0x00010001 },
-   { 0x00800008, 0x40c02d31, 0x00b100c0, 0x00020002 },
-   { 0x00800008, 0x40e02d31, 0x00b100e0, 0x00020002 },
-   { 0x00800008, 0x41002d31, 0x00b10100, 0x00020002 },
-   { 0x00800008, 0x41202d31, 0x00b10120, 0x00020002 },
-   { 0x00800001, 0x21400231, 0x00b200c0, 0x00000000 },
-   { 0x00800001, 0x21500231, 0x00b200e0, 0x00000000 },
-   { 0x00800001, 0x21600231, 0x00b20100, 0x00000000 },
-   { 0x00800001, 0x21700231, 0x00b20120, 0x00000000 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000030 },
-   { 0x00000001, 0x20480061, 0x00000000, 0x0007000f },
-   { 0x00000005, 0x20580c21, 0x00210040, 0x00000003 },
-   { 0x00800031, 0x21801d29, 0x008d0040, 0x0414a007 },
-   { 0x00000041, 0x20580c21, 0x00210058, 0x00000009 },
-   { 0x00000020, 0x34001400, 0x00001400, 0x00210058 },
-   { 0x00800001, 0x20c00229, 0x00ad0180, 0x00000000 },
-   { 0x00800001, 0x20e00229, 0x00ad01a0, 0x00000000 },
-   { 0x00800001, 0x21000229, 0x00ad01c0, 0x00000000 },
-   { 0x00800001, 0x21200229, 0x00ad01e0, 0x00000000 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0181 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01a1 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01c1 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01e1 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x0000001a },
-   { 0x00800001, 0x20c00229, 0x00ad0181, 0x00000000 },
-   { 0x00800001, 0x20e00229, 0x00ad01a1, 0x00000000 },
-   { 0x00800001, 0x21000229, 0x00ad01c1, 0x00000000 },
-   { 0x00800001, 0x21200229, 0x00ad01e1, 0x00000000 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0182 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01a2 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01c2 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01e2 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000011 },
-   { 0x00800001, 0x20c00229, 0x00ad0182, 0x00000000 },
-   { 0x00800001, 0x20e00229, 0x00ad01a2, 0x00000000 },
-   { 0x00800001, 0x21000229, 0x00ad01c2, 0x00000000 },
-   { 0x00800001, 0x21200229, 0x00ad01e2, 0x00000000 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0183 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01a3 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01c3 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01e3 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000008 },
-   { 0x00800001, 0x20c00229, 0x00ad0183, 0x00000000 },
-   { 0x00800001, 0x20e00229, 0x00ad01a3, 0x00000000 },
-   { 0x00800001, 0x21000229, 0x00ad01c3, 0x00000000 },
-   { 0x00800001, 0x21200229, 0x00ad01e3, 0x00000000 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0184 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01a4 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01c4 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01e4 },
-   { 0x00800008, 0x20c02d29, 0x00b100c0, 0x00010001 },
-   { 0x00800008, 0x20e02d29, 0x00b100e0, 0x00010001 },
-   { 0x00800008, 0x21002d29, 0x00b10100, 0x00010001 },
-   { 0x00800008, 0x21202d29, 0x00b10120, 0x00010001 },
-   { 0x00800001, 0x21400231, 0x00b200c0, 0x00000000 },
-   { 0x00800001, 0x21500231, 0x00b200e0, 0x00000000 },
-   { 0x00800001, 0x21600231, 0x00b20100, 0x00000000 },
-   { 0x00800001, 0x21700231, 0x00b20120, 0x00000000 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x0000004e },
-   { 0x01000005, 0x20000c3c, 0x00210078, 0x00000000 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000034 },
-   { 0x00000001, 0x20480061, 0x00000000, 0x0009000f },
-   { 0x00000005, 0x20580c21, 0x00210040, 0x00000003 },
-   { 0x00800031, 0x21801d29, 0x008d0040, 0x0415a007 },
-   { 0x00000041, 0x20580c21, 0x00210058, 0x00000009 },
-   { 0x00000020, 0x34001400, 0x00001400, 0x00210058 },
-   { 0x00800001, 0x20c00229, 0x00ad0180, 0x00000000 },
-   { 0x00800001, 0x20e00229, 0x00ad01a0, 0x00000000 },
-   { 0x00800001, 0x21000229, 0x00ad01c0, 0x00000000 },
-   { 0x00800001, 0x21200229, 0x00ad01e0, 0x00000000 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0190 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01b0 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01d0 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01f0 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x0000001a },
-   { 0x00800001, 0x20c00229, 0x00ad0181, 0x00000000 },
-   { 0x00800001, 0x20e00229, 0x00ad01a1, 0x00000000 },
-   { 0x00800001, 0x21000229, 0x00ad01c1, 0x00000000 },
-   { 0x00800001, 0x21200229, 0x00ad01e1, 0x00000000 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0191 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01b1 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01d1 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01f1 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000011 },
-   { 0x00800001, 0x20c00229, 0x00ad0182, 0x00000000 },
-   { 0x00800001, 0x20e00229, 0x00ad01a2, 0x00000000 },
-   { 0x00800001, 0x21000229, 0x00ad01c2, 0x00000000 },
-   { 0x00800001, 0x21200229, 0x00ad01e2, 0x00000000 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0192 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01b2 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01d2 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01f2 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000008 },
-   { 0x00800001, 0x20c00229, 0x00ad0183, 0x00000000 },
-   { 0x00800001, 0x20e00229, 0x00ad01a3, 0x00000000 },
-   { 0x00800001, 0x21000229, 0x00ad01c3, 0x00000000 },
-   { 0x00800001, 0x21200229, 0x00ad01e3, 0x00000000 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0193 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01b3 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01d3 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01f3 },
-   { 0x00800040, 0x20c02d29, 0x00b100c0, 0x00010001 },
-   { 0x00800040, 0x20e02d29, 0x00b100e0, 0x00010001 },
-   { 0x00800040, 0x21002d29, 0x00b10100, 0x00010001 },
-   { 0x00800040, 0x21202d29, 0x00b10120, 0x00010001 },
-   { 0x80800008, 0x40c02d31, 0x00b100c0, 0x00010001 },
-   { 0x80800008, 0x40e02d31, 0x00b100e0, 0x00010001 },
-   { 0x80800008, 0x41002d31, 0x00b10100, 0x00010001 },
-   { 0x80800008, 0x41202d31, 0x00b10120, 0x00010001 },
-   { 0x00800001, 0x21400231, 0x00b200c0, 0x00000000 },
-   { 0x00800001, 0x21500231, 0x00b200e0, 0x00000000 },
-   { 0x00800001, 0x21600231, 0x00b20100, 0x00000000 },
-   { 0x00800001, 0x21700231, 0x00b20120, 0x00000000 },
-   { 0x00000001, 0x20480061, 0x00000000, 0x0007000f },
-   { 0x00000005, 0x20580c21, 0x00210040, 0x00000003 },
-   { 0x00800031, 0x21801d29, 0x008d0040, 0x0414a007 },
-   { 0x00000041, 0x20580c21, 0x00210058, 0x00000005 },
-   { 0x00000020, 0x34001400, 0x00001400, 0x00210058 },
-   { 0x00800001, 0x21400231, 0x00ad0180, 0x00000000 },
-   { 0x00800001, 0x21500231, 0x00ad01a0, 0x00000000 },
-   { 0x00800001, 0x21600231, 0x00ad01c0, 0x00000000 },
-   { 0x00800001, 0x21700231, 0x00ad01e0, 0x00000000 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x0000000e },
-   { 0x00800001, 0x21400231, 0x00ad0181, 0x00000000 },
-   { 0x00800001, 0x21500231, 0x00ad01a1, 0x00000000 },
-   { 0x00800001, 0x21600231, 0x00ad01c1, 0x00000000 },
-   { 0x00800001, 0x21700231, 0x00ad01e1, 0x00000000 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000009 },
-   { 0x00800001, 0x21400231, 0x00ad0182, 0x00000000 },
-   { 0x00800001, 0x21500231, 0x00ad01a2, 0x00000000 },
-   { 0x00800001, 0x21600231, 0x00ad01c2, 0x00000000 },
-   { 0x00800001, 0x21700231, 0x00ad01e2, 0x00000000 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000004 },
-   { 0x00800001, 0x21400231, 0x00ad0183, 0x00000000 },
-   { 0x00800001, 0x21500231, 0x00ad01a3, 0x00000000 },
-   { 0x00800001, 0x21600231, 0x00ad01c3, 0x00000000 },
-   { 0x00800001, 0x21700231, 0x00ad01e3, 0x00000000 },
-   { 0x00000001, 0x20480061, 0x00000000, 0x00070007 },
-   { 0x00800001, 0x20c00229, 0x00b10080, 0x00000000 },
-   { 0x00800001, 0x20e00229, 0x00b10090, 0x00000000 },
-   { 0x00800001, 0x21000229, 0x00b100a0, 0x00000000 },
-   { 0x00800001, 0x21200229, 0x00b100b0, 0x00000000 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00b10140 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00b10150 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00b10160 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00b10170 },
-   { 0x80800008, 0x40c02d31, 0x00b100c0, 0x00010001 },
-   { 0x80800008, 0x40e02d31, 0x00b100e0, 0x00010001 },
-   { 0x80800008, 0x41002d31, 0x00b10100, 0x00010001 },
-   { 0x80800008, 0x41202d31, 0x00b10120, 0x00010001 },
-   { 0x00800001, 0x20800231, 0x00b200c0, 0x00000000 },
-   { 0x00800001, 0x20900231, 0x00b200e0, 0x00000000 },
-   { 0x00800001, 0x20a00231, 0x00b20100, 0x00000000 },
-   { 0x00800001, 0x20b00231, 0x00b20120, 0x00000000 },
-   { 0x01000005, 0x20000c3c, 0x0021006c, 0x00000020 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000015 },
-   { 0x00000040, 0x20440c21, 0x00210068, 0x00000000 },
-   { 0x00800031, 0x20c01d21, 0x008d0040, 0x04110203 },
-   { 0x00000040, 0x20440c21, 0x00210044, 0x00000020 },
-   { 0x00800031, 0x20e01d21, 0x008d0040, 0x04110203 },
-   { 0x00000040, 0x20440c21, 0x00210044, 0x00000020 },
-   { 0x00800031, 0x21001d21, 0x008d0040, 0x04110203 },
-   { 0x00000040, 0x20440c21, 0x00210044, 0x00000020 },
-   { 0x00800031, 0x21201d21, 0x008d0040, 0x04110203 },
-   { 0x00000040, 0x20680c21, 0x00210068, 0x00000080 },
-   { 0x00800040, 0x20c045ad, 0x00b100c0, 0x00b10080 },
-   { 0x00800040, 0x20e045ad, 0x00b100e0, 0x00b10090 },
-   { 0x00800040, 0x210045ad, 0x00b10100, 0x00b100a0 },
-   { 0x00800040, 0x212045ad, 0x00b10120, 0x00b100b0 },
-   { 0x80800001, 0x40c001b1, 0x00b100c0, 0x00000000 },
-   { 0x80800001, 0x40e001b1, 0x00b100e0, 0x00000000 },
-   { 0x80800001, 0x410001b1, 0x00b10100, 0x00000000 },
-   { 0x80800001, 0x412001b1, 0x00b10120, 0x00000000 },
-   { 0x00800001, 0x20800231, 0x00b200c0, 0x00000000 },
-   { 0x00800001, 0x20900231, 0x00b200e0, 0x00000000 },
-   { 0x00800001, 0x20a00231, 0x00b20100, 0x00000000 },
-   { 0x00800001, 0x20b00231, 0x00b20120, 0x00000000 },
-   { 0x00802001, 0x20200022, 0x008d0080, 0x00000000 },
-   { 0x00800031, 0x24001d28, 0x008d0020, 0x05302000 },
-   { 0x00000040, 0x20201c21, 0x00210060, 0x00000008 },
-   { 0x00000040, 0x20241c21, 0x00210064, 0x00000000 },
-   { 0x0020000c, 0x20301ca5, 0x00450070, 0x00000001 },
-   { 0x00200040, 0x20401421, 0x00450020, 0x00450030 },
-   { 0x01000005, 0x20000c3c, 0x00210070, 0x00000001 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000088 },
-   { 0x01000005, 0x20000c3c, 0x00210074, 0x00000001 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000055 },
-   { 0x00000001, 0x20480061, 0x00000000, 0x0009000f },
-   { 0x00000005, 0x20580c21, 0x00210040, 0x00000003 },
-   { 0x00800031, 0x21801d29, 0x008d0040, 0x0415a004 },
-   { 0x00000041, 0x20580c21, 0x00210058, 0x00000011 },
-   { 0x00000020, 0x34001400, 0x00001400, 0x00210058 },
-   { 0x00800001, 0x20c00229, 0x00ad0180, 0x00000000 },
-   { 0x00800001, 0x20e00229, 0x00ad01a0, 0x00000000 },
-   { 0x00800001, 0x21000229, 0x00ad01c0, 0x00000000 },
-   { 0x00800001, 0x21200229, 0x00ad01e0, 0x00000000 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0181 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01a1 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01c1 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01e1 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0190 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01b0 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01d0 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01f0 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0191 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01b1 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01d1 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01f1 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000032 },
-   { 0x00800001, 0x20c00229, 0x00ad0181, 0x00000000 },
-   { 0x00800001, 0x20e00229, 0x00ad01a1, 0x00000000 },
-   { 0x00800001, 0x21000229, 0x00ad01c1, 0x00000000 },
-   { 0x00800001, 0x21200229, 0x00ad01e1, 0x00000000 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0181 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01a1 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01c1 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01e1 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0191 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01b1 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01d1 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01f1 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0192 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01b2 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01d2 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01f2 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000021 },
-   { 0x00800001, 0x20c00229, 0x00ad0182, 0x00000000 },
-   { 0x00800001, 0x20e00229, 0x00ad01a2, 0x00000000 },
-   { 0x00800001, 0x21000229, 0x00ad01c2, 0x00000000 },
-   { 0x00800001, 0x21200229, 0x00ad01e2, 0x00000000 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0183 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01a3 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01c3 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01e3 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0192 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01b2 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01d2 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01f2 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0193 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01b3 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01d3 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01f3 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000010 },
-   { 0x00800001, 0x20c00229, 0x00ad0183, 0x00000000 },
-   { 0x00800001, 0x20e00229, 0x00ad01a3, 0x00000000 },
-   { 0x00800001, 0x21000229, 0x00ad01c3, 0x00000000 },
-   { 0x00800001, 0x21200229, 0x00ad01e3, 0x00000000 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0184 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01a4 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01c4 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01e4 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0193 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01b3 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01d3 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01f3 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0194 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01b4 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01d4 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01f4 },
-   { 0x00800040, 0x20c02d29, 0x00b100c0, 0x00010001 },
-   { 0x00800040, 0x20e02d29, 0x00b100e0, 0x00010001 },
-   { 0x00800040, 0x21002d29, 0x00b10100, 0x00010001 },
-   { 0x00800040, 0x21202d29, 0x00b10120, 0x00010001 },
-   { 0x00800008, 0x40c02d31, 0x00b100c0, 0x00020002 },
-   { 0x00800008, 0x40e02d31, 0x00b100e0, 0x00020002 },
-   { 0x00800008, 0x41002d31, 0x00b10100, 0x00020002 },
-   { 0x00800008, 0x41202d31, 0x00b10120, 0x00020002 },
-   { 0x00800001, 0x20800231, 0x00b200c0, 0x00000000 },
-   { 0x00800001, 0x20900231, 0x00b200e0, 0x00000000 },
-   { 0x00800001, 0x20a00231, 0x00b20100, 0x00000000 },
-   { 0x00800001, 0x20b00231, 0x00b20120, 0x00000000 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000030 },
-   { 0x00000001, 0x20480061, 0x00000000, 0x0007000f },
-   { 0x00000005, 0x20580c21, 0x00210040, 0x00000003 },
-   { 0x00800031, 0x21801d29, 0x008d0040, 0x0414a004 },
-   { 0x00000041, 0x20580c21, 0x00210058, 0x00000009 },
-   { 0x00000020, 0x34001400, 0x00001400, 0x00210058 },
-   { 0x00800001, 0x20c00229, 0x00ad0180, 0x00000000 },
-   { 0x00800001, 0x20e00229, 0x00ad01a0, 0x00000000 },
-   { 0x00800001, 0x21000229, 0x00ad01c0, 0x00000000 },
-   { 0x00800001, 0x21200229, 0x00ad01e0, 0x00000000 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0181 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01a1 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01c1 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01e1 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x0000001a },
-   { 0x00800001, 0x20c00229, 0x00ad0181, 0x00000000 },
-   { 0x00800001, 0x20e00229, 0x00ad01a1, 0x00000000 },
-   { 0x00800001, 0x21000229, 0x00ad01c1, 0x00000000 },
-   { 0x00800001, 0x21200229, 0x00ad01e1, 0x00000000 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0182 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01a2 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01c2 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01e2 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000011 },
-   { 0x00800001, 0x20c00229, 0x00ad0182, 0x00000000 },
-   { 0x00800001, 0x20e00229, 0x00ad01a2, 0x00000000 },
-   { 0x00800001, 0x21000229, 0x00ad01c2, 0x00000000 },
-   { 0x00800001, 0x21200229, 0x00ad01e2, 0x00000000 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0183 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01a3 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01c3 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01e3 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000008 },
-   { 0x00800001, 0x20c00229, 0x00ad0183, 0x00000000 },
-   { 0x00800001, 0x20e00229, 0x00ad01a3, 0x00000000 },
-   { 0x00800001, 0x21000229, 0x00ad01c3, 0x00000000 },
-   { 0x00800001, 0x21200229, 0x00ad01e3, 0x00000000 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0184 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01a4 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01c4 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01e4 },
-   { 0x00800008, 0x20c02d29, 0x00b100c0, 0x00010001 },
-   { 0x00800008, 0x20e02d29, 0x00b100e0, 0x00010001 },
-   { 0x00800008, 0x21002d29, 0x00b10100, 0x00010001 },
-   { 0x00800008, 0x21202d29, 0x00b10120, 0x00010001 },
-   { 0x00800001, 0x20800231, 0x00b200c0, 0x00000000 },
-   { 0x00800001, 0x20900231, 0x00b200e0, 0x00000000 },
-   { 0x00800001, 0x20a00231, 0x00b20100, 0x00000000 },
-   { 0x00800001, 0x20b00231, 0x00b20120, 0x00000000 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x0000004e },
-   { 0x01000005, 0x20000c3c, 0x00210070, 0x00000000 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000034 },
-   { 0x00000001, 0x20480061, 0x00000000, 0x0009000f },
-   { 0x00000005, 0x20580c21, 0x00210040, 0x00000003 },
-   { 0x00800031, 0x21801d29, 0x008d0040, 0x0415a004 },
-   { 0x00000041, 0x20580c21, 0x00210058, 0x00000009 },
-   { 0x00000020, 0x34001400, 0x00001400, 0x00210058 },
-   { 0x00800001, 0x20c00229, 0x00ad0180, 0x00000000 },
-   { 0x00800001, 0x20e00229, 0x00ad01a0, 0x00000000 },
-   { 0x00800001, 0x21000229, 0x00ad01c0, 0x00000000 },
-   { 0x00800001, 0x21200229, 0x00ad01e0, 0x00000000 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0190 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01b0 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01d0 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01f0 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x0000001a },
-   { 0x00800001, 0x20c00229, 0x00ad0181, 0x00000000 },
-   { 0x00800001, 0x20e00229, 0x00ad01a1, 0x00000000 },
-   { 0x00800001, 0x21000229, 0x00ad01c1, 0x00000000 },
-   { 0x00800001, 0x21200229, 0x00ad01e1, 0x00000000 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0191 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01b1 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01d1 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01f1 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000011 },
-   { 0x00800001, 0x20c00229, 0x00ad0182, 0x00000000 },
-   { 0x00800001, 0x20e00229, 0x00ad01a2, 0x00000000 },
-   { 0x00800001, 0x21000229, 0x00ad01c2, 0x00000000 },
-   { 0x00800001, 0x21200229, 0x00ad01e2, 0x00000000 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0192 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01b2 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01d2 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01f2 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000008 },
-   { 0x00800001, 0x20c00229, 0x00ad0183, 0x00000000 },
-   { 0x00800001, 0x20e00229, 0x00ad01a3, 0x00000000 },
-   { 0x00800001, 0x21000229, 0x00ad01c3, 0x00000000 },
-   { 0x00800001, 0x21200229, 0x00ad01e3, 0x00000000 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0193 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01b3 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01d3 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01f3 },
-   { 0x00800040, 0x20c02d29, 0x00b100c0, 0x00010001 },
-   { 0x00800040, 0x20e02d29, 0x00b100e0, 0x00010001 },
-   { 0x00800040, 0x21002d29, 0x00b10100, 0x00010001 },
-   { 0x00800040, 0x21202d29, 0x00b10120, 0x00010001 },
-   { 0x80800008, 0x40c02d31, 0x00b100c0, 0x00010001 },
-   { 0x80800008, 0x40e02d31, 0x00b100e0, 0x00010001 },
-   { 0x80800008, 0x41002d31, 0x00b10100, 0x00010001 },
-   { 0x80800008, 0x41202d31, 0x00b10120, 0x00010001 },
-   { 0x00800001, 0x20800231, 0x00b200c0, 0x00000000 },
-   { 0x00800001, 0x20900231, 0x00b200e0, 0x00000000 },
-   { 0x00800001, 0x20a00231, 0x00b20100, 0x00000000 },
-   { 0x00800001, 0x20b00231, 0x00b20120, 0x00000000 },
-   { 0x00000001, 0x20480061, 0x00000000, 0x0007000f },
-   { 0x00000005, 0x20580c21, 0x00210040, 0x00000003 },
-   { 0x00800031, 0x21801d29, 0x008d0040, 0x0414a004 },
-   { 0x00000041, 0x20580c21, 0x00210058, 0x00000005 },
-   { 0x00000020, 0x34001400, 0x00001400, 0x00210058 },
-   { 0x00800001, 0x20800231, 0x00ad0180, 0x00000000 },
-   { 0x00800001, 0x20900231, 0x00ad01a0, 0x00000000 },
-   { 0x00800001, 0x20a00231, 0x00ad01c0, 0x00000000 },
-   { 0x00800001, 0x20b00231, 0x00ad01e0, 0x00000000 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x0000000e },
-   { 0x00800001, 0x20800231, 0x00ad0181, 0x00000000 },
-   { 0x00800001, 0x20900231, 0x00ad01a1, 0x00000000 },
-   { 0x00800001, 0x20a00231, 0x00ad01c1, 0x00000000 },
-   { 0x00800001, 0x20b00231, 0x00ad01e1, 0x00000000 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000009 },
-   { 0x00800001, 0x20800231, 0x00ad0182, 0x00000000 },
-   { 0x00800001, 0x20900231, 0x00ad01a2, 0x00000000 },
-   { 0x00800001, 0x20a00231, 0x00ad01c2, 0x00000000 },
-   { 0x00800001, 0x20b00231, 0x00ad01e2, 0x00000000 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000004 },
-   { 0x00800001, 0x20800231, 0x00ad0183, 0x00000000 },
-   { 0x00800001, 0x20900231, 0x00ad01a3, 0x00000000 },
-   { 0x00800001, 0x20a00231, 0x00ad01c3, 0x00000000 },
-   { 0x00800001, 0x20b00231, 0x00ad01e3, 0x00000000 },
-   { 0x00000001, 0x20480061, 0x00000000, 0x00070007 },
-   { 0x0020000c, 0x20301ca5, 0x00450078, 0x00000001 },
-   { 0x00200040, 0x20401421, 0x00450020, 0x00450030 },
-   { 0x01000005, 0x20000c3c, 0x00210078, 0x00000001 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000088 },
-   { 0x01000005, 0x20000c3c, 0x0021007c, 0x00000001 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000055 },
-   { 0x00000001, 0x20480061, 0x00000000, 0x0009000f },
-   { 0x00000005, 0x20580c21, 0x00210040, 0x00000003 },
-   { 0x00800031, 0x21801d29, 0x008d0040, 0x0415a007 },
-   { 0x00000041, 0x20580c21, 0x00210058, 0x00000011 },
-   { 0x00000020, 0x34001400, 0x00001400, 0x00210058 },
-   { 0x00800001, 0x20c00229, 0x00ad0180, 0x00000000 },
-   { 0x00800001, 0x20e00229, 0x00ad01a0, 0x00000000 },
-   { 0x00800001, 0x21000229, 0x00ad01c0, 0x00000000 },
-   { 0x00800001, 0x21200229, 0x00ad01e0, 0x00000000 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0181 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01a1 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01c1 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01e1 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0190 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01b0 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01d0 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01f0 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0191 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01b1 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01d1 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01f1 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000032 },
-   { 0x00800001, 0x20c00229, 0x00ad0181, 0x00000000 },
-   { 0x00800001, 0x20e00229, 0x00ad01a1, 0x00000000 },
-   { 0x00800001, 0x21000229, 0x00ad01c1, 0x00000000 },
-   { 0x00800001, 0x21200229, 0x00ad01e1, 0x00000000 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0181 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01a1 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01c1 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01e1 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0191 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01b1 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01d1 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01f1 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0192 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01b2 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01d2 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01f2 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000021 },
-   { 0x00800001, 0x20c00229, 0x00ad0182, 0x00000000 },
-   { 0x00800001, 0x20e00229, 0x00ad01a2, 0x00000000 },
-   { 0x00800001, 0x21000229, 0x00ad01c2, 0x00000000 },
-   { 0x00800001, 0x21200229, 0x00ad01e2, 0x00000000 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0183 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01a3 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01c3 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01e3 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0192 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01b2 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01d2 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01f2 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0193 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01b3 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01d3 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01f3 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000010 },
-   { 0x00800001, 0x20c00229, 0x00ad0183, 0x00000000 },
-   { 0x00800001, 0x20e00229, 0x00ad01a3, 0x00000000 },
-   { 0x00800001, 0x21000229, 0x00ad01c3, 0x00000000 },
-   { 0x00800001, 0x21200229, 0x00ad01e3, 0x00000000 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0184 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01a4 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01c4 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01e4 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0193 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01b3 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01d3 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01f3 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0194 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01b4 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01d4 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01f4 },
-   { 0x00800040, 0x20c02d29, 0x00b100c0, 0x00010001 },
-   { 0x00800040, 0x20e02d29, 0x00b100e0, 0x00010001 },
-   { 0x00800040, 0x21002d29, 0x00b10100, 0x00010001 },
-   { 0x00800040, 0x21202d29, 0x00b10120, 0x00010001 },
-   { 0x00800008, 0x40c02d31, 0x00b100c0, 0x00020002 },
-   { 0x00800008, 0x40e02d31, 0x00b100e0, 0x00020002 },
-   { 0x00800008, 0x41002d31, 0x00b10100, 0x00020002 },
-   { 0x00800008, 0x41202d31, 0x00b10120, 0x00020002 },
-   { 0x00800001, 0x21400231, 0x00b200c0, 0x00000000 },
-   { 0x00800001, 0x21500231, 0x00b200e0, 0x00000000 },
-   { 0x00800001, 0x21600231, 0x00b20100, 0x00000000 },
-   { 0x00800001, 0x21700231, 0x00b20120, 0x00000000 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000030 },
-   { 0x00000001, 0x20480061, 0x00000000, 0x0007000f },
-   { 0x00000005, 0x20580c21, 0x00210040, 0x00000003 },
-   { 0x00800031, 0x21801d29, 0x008d0040, 0x0414a007 },
-   { 0x00000041, 0x20580c21, 0x00210058, 0x00000009 },
-   { 0x00000020, 0x34001400, 0x00001400, 0x00210058 },
-   { 0x00800001, 0x20c00229, 0x00ad0180, 0x00000000 },
-   { 0x00800001, 0x20e00229, 0x00ad01a0, 0x00000000 },
-   { 0x00800001, 0x21000229, 0x00ad01c0, 0x00000000 },
-   { 0x00800001, 0x21200229, 0x00ad01e0, 0x00000000 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0181 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01a1 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01c1 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01e1 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x0000001a },
-   { 0x00800001, 0x20c00229, 0x00ad0181, 0x00000000 },
-   { 0x00800001, 0x20e00229, 0x00ad01a1, 0x00000000 },
-   { 0x00800001, 0x21000229, 0x00ad01c1, 0x00000000 },
-   { 0x00800001, 0x21200229, 0x00ad01e1, 0x00000000 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0182 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01a2 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01c2 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01e2 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000011 },
-   { 0x00800001, 0x20c00229, 0x00ad0182, 0x00000000 },
-   { 0x00800001, 0x20e00229, 0x00ad01a2, 0x00000000 },
-   { 0x00800001, 0x21000229, 0x00ad01c2, 0x00000000 },
-   { 0x00800001, 0x21200229, 0x00ad01e2, 0x00000000 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0183 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01a3 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01c3 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01e3 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000008 },
-   { 0x00800001, 0x20c00229, 0x00ad0183, 0x00000000 },
-   { 0x00800001, 0x20e00229, 0x00ad01a3, 0x00000000 },
-   { 0x00800001, 0x21000229, 0x00ad01c3, 0x00000000 },
-   { 0x00800001, 0x21200229, 0x00ad01e3, 0x00000000 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0184 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01a4 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01c4 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01e4 },
-   { 0x00800008, 0x20c02d29, 0x00b100c0, 0x00010001 },
-   { 0x00800008, 0x20e02d29, 0x00b100e0, 0x00010001 },
-   { 0x00800008, 0x21002d29, 0x00b10100, 0x00010001 },
-   { 0x00800008, 0x21202d29, 0x00b10120, 0x00010001 },
-   { 0x00800001, 0x21400231, 0x00b200c0, 0x00000000 },
-   { 0x00800001, 0x21500231, 0x00b200e0, 0x00000000 },
-   { 0x00800001, 0x21600231, 0x00b20100, 0x00000000 },
-   { 0x00800001, 0x21700231, 0x00b20120, 0x00000000 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x0000004e },
-   { 0x01000005, 0x20000c3c, 0x00210078, 0x00000000 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000034 },
-   { 0x00000001, 0x20480061, 0x00000000, 0x0009000f },
-   { 0x00000005, 0x20580c21, 0x00210040, 0x00000003 },
-   { 0x00800031, 0x21801d29, 0x008d0040, 0x0415a007 },
-   { 0x00000041, 0x20580c21, 0x00210058, 0x00000009 },
-   { 0x00000020, 0x34001400, 0x00001400, 0x00210058 },
-   { 0x00800001, 0x20c00229, 0x00ad0180, 0x00000000 },
-   { 0x00800001, 0x20e00229, 0x00ad01a0, 0x00000000 },
-   { 0x00800001, 0x21000229, 0x00ad01c0, 0x00000000 },
-   { 0x00800001, 0x21200229, 0x00ad01e0, 0x00000000 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0190 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01b0 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01d0 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01f0 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x0000001a },
-   { 0x00800001, 0x20c00229, 0x00ad0181, 0x00000000 },
-   { 0x00800001, 0x20e00229, 0x00ad01a1, 0x00000000 },
-   { 0x00800001, 0x21000229, 0x00ad01c1, 0x00000000 },
-   { 0x00800001, 0x21200229, 0x00ad01e1, 0x00000000 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0191 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01b1 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01d1 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01f1 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000011 },
-   { 0x00800001, 0x20c00229, 0x00ad0182, 0x00000000 },
-   { 0x00800001, 0x20e00229, 0x00ad01a2, 0x00000000 },
-   { 0x00800001, 0x21000229, 0x00ad01c2, 0x00000000 },
-   { 0x00800001, 0x21200229, 0x00ad01e2, 0x00000000 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0192 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01b2 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01d2 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01f2 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000008 },
-   { 0x00800001, 0x20c00229, 0x00ad0183, 0x00000000 },
-   { 0x00800001, 0x20e00229, 0x00ad01a3, 0x00000000 },
-   { 0x00800001, 0x21000229, 0x00ad01c3, 0x00000000 },
-   { 0x00800001, 0x21200229, 0x00ad01e3, 0x00000000 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0193 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01b3 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01d3 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01f3 },
-   { 0x00800040, 0x20c02d29, 0x00b100c0, 0x00010001 },
-   { 0x00800040, 0x20e02d29, 0x00b100e0, 0x00010001 },
-   { 0x00800040, 0x21002d29, 0x00b10100, 0x00010001 },
-   { 0x00800040, 0x21202d29, 0x00b10120, 0x00010001 },
-   { 0x80800008, 0x40c02d31, 0x00b100c0, 0x00010001 },
-   { 0x80800008, 0x40e02d31, 0x00b100e0, 0x00010001 },
-   { 0x80800008, 0x41002d31, 0x00b10100, 0x00010001 },
-   { 0x80800008, 0x41202d31, 0x00b10120, 0x00010001 },
-   { 0x00800001, 0x21400231, 0x00b200c0, 0x00000000 },
-   { 0x00800001, 0x21500231, 0x00b200e0, 0x00000000 },
-   { 0x00800001, 0x21600231, 0x00b20100, 0x00000000 },
-   { 0x00800001, 0x21700231, 0x00b20120, 0x00000000 },
-   { 0x00000001, 0x20480061, 0x00000000, 0x0007000f },
-   { 0x00000005, 0x20580c21, 0x00210040, 0x00000003 },
-   { 0x00800031, 0x21801d29, 0x008d0040, 0x0414a007 },
-   { 0x00000041, 0x20580c21, 0x00210058, 0x00000005 },
-   { 0x00000020, 0x34001400, 0x00001400, 0x00210058 },
-   { 0x00800001, 0x21400231, 0x00ad0180, 0x00000000 },
-   { 0x00800001, 0x21500231, 0x00ad01a0, 0x00000000 },
-   { 0x00800001, 0x21600231, 0x00ad01c0, 0x00000000 },
-   { 0x00800001, 0x21700231, 0x00ad01e0, 0x00000000 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x0000000e },
-   { 0x00800001, 0x21400231, 0x00ad0181, 0x00000000 },
-   { 0x00800001, 0x21500231, 0x00ad01a1, 0x00000000 },
-   { 0x00800001, 0x21600231, 0x00ad01c1, 0x00000000 },
-   { 0x00800001, 0x21700231, 0x00ad01e1, 0x00000000 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000009 },
-   { 0x00800001, 0x21400231, 0x00ad0182, 0x00000000 },
-   { 0x00800001, 0x21500231, 0x00ad01a2, 0x00000000 },
-   { 0x00800001, 0x21600231, 0x00ad01c2, 0x00000000 },
-   { 0x00800001, 0x21700231, 0x00ad01e2, 0x00000000 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000004 },
-   { 0x00800001, 0x21400231, 0x00ad0183, 0x00000000 },
-   { 0x00800001, 0x21500231, 0x00ad01a3, 0x00000000 },
-   { 0x00800001, 0x21600231, 0x00ad01c3, 0x00000000 },
-   { 0x00800001, 0x21700231, 0x00ad01e3, 0x00000000 },
-   { 0x00000001, 0x20480061, 0x00000000, 0x00070007 },
-   { 0x00800001, 0x20c00229, 0x00b10080, 0x00000000 },
-   { 0x00800001, 0x20e00229, 0x00b10090, 0x00000000 },
-   { 0x00800001, 0x21000229, 0x00b100a0, 0x00000000 },
-   { 0x00800001, 0x21200229, 0x00b100b0, 0x00000000 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00b10140 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00b10150 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00b10160 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00b10170 },
-   { 0x80800008, 0x40c02d31, 0x00b100c0, 0x00010001 },
-   { 0x80800008, 0x40e02d31, 0x00b100e0, 0x00010001 },
-   { 0x80800008, 0x41002d31, 0x00b10100, 0x00010001 },
-   { 0x80800008, 0x41202d31, 0x00b10120, 0x00010001 },
-   { 0x00800001, 0x20800231, 0x00b200c0, 0x00000000 },
-   { 0x00800001, 0x20900231, 0x00b200e0, 0x00000000 },
-   { 0x00800001, 0x20a00231, 0x00b20100, 0x00000000 },
-   { 0x00800001, 0x20b00231, 0x00b20120, 0x00000000 },
-   { 0x01000005, 0x20000c3c, 0x0021006c, 0x00000010 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000015 },
-   { 0x00000040, 0x20440c21, 0x00210068, 0x00000000 },
-   { 0x00800031, 0x20c01d21, 0x008d0040, 0x04110203 },
-   { 0x00000040, 0x20440c21, 0x00210044, 0x00000020 },
-   { 0x00800031, 0x20e01d21, 0x008d0040, 0x04110203 },
-   { 0x00000040, 0x20440c21, 0x00210044, 0x00000020 },
-   { 0x00800031, 0x21001d21, 0x008d0040, 0x04110203 },
-   { 0x00000040, 0x20440c21, 0x00210044, 0x00000020 },
-   { 0x00800031, 0x21201d21, 0x008d0040, 0x04110203 },
-   { 0x00000040, 0x20680c21, 0x00210068, 0x00000080 },
-   { 0x00800040, 0x20c045ad, 0x00b100c0, 0x00b10080 },
-   { 0x00800040, 0x20e045ad, 0x00b100e0, 0x00b10090 },
-   { 0x00800040, 0x210045ad, 0x00b10100, 0x00b100a0 },
-   { 0x00800040, 0x212045ad, 0x00b10120, 0x00b100b0 },
-   { 0x80800001, 0x40c001b1, 0x00b100c0, 0x00000000 },
-   { 0x80800001, 0x40e001b1, 0x00b100e0, 0x00000000 },
-   { 0x80800001, 0x410001b1, 0x00b10100, 0x00000000 },
-   { 0x80800001, 0x412001b1, 0x00b10120, 0x00000000 },
-   { 0x00800001, 0x20800231, 0x00b200c0, 0x00000000 },
-   { 0x00800001, 0x20900231, 0x00b200e0, 0x00000000 },
-   { 0x00800001, 0x20a00231, 0x00b20100, 0x00000000 },
-   { 0x00800001, 0x20b00231, 0x00b20120, 0x00000000 },
-   { 0x00802001, 0x20200022, 0x008d0080, 0x00000000 },
-   { 0x00800031, 0x24001d28, 0x008d0020, 0x05302000 },
-   { 0x00000040, 0x20201c21, 0x00210060, 0x00000000 },
-   { 0x00000040, 0x20241c21, 0x00210064, 0x00000008 },
-   { 0x0020000c, 0x20301ca5, 0x00450070, 0x00000001 },
-   { 0x00200040, 0x20401421, 0x00450020, 0x00450030 },
-   { 0x01000005, 0x20000c3c, 0x00210070, 0x00000001 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000088 },
-   { 0x01000005, 0x20000c3c, 0x00210074, 0x00000001 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000055 },
-   { 0x00000001, 0x20480061, 0x00000000, 0x0009000f },
-   { 0x00000005, 0x20580c21, 0x00210040, 0x00000003 },
-   { 0x00800031, 0x21801d29, 0x008d0040, 0x0415a004 },
-   { 0x00000041, 0x20580c21, 0x00210058, 0x00000011 },
-   { 0x00000020, 0x34001400, 0x00001400, 0x00210058 },
-   { 0x00800001, 0x20c00229, 0x00ad0180, 0x00000000 },
-   { 0x00800001, 0x20e00229, 0x00ad01a0, 0x00000000 },
-   { 0x00800001, 0x21000229, 0x00ad01c0, 0x00000000 },
-   { 0x00800001, 0x21200229, 0x00ad01e0, 0x00000000 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0181 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01a1 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01c1 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01e1 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0190 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01b0 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01d0 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01f0 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0191 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01b1 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01d1 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01f1 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000032 },
-   { 0x00800001, 0x20c00229, 0x00ad0181, 0x00000000 },
-   { 0x00800001, 0x20e00229, 0x00ad01a1, 0x00000000 },
-   { 0x00800001, 0x21000229, 0x00ad01c1, 0x00000000 },
-   { 0x00800001, 0x21200229, 0x00ad01e1, 0x00000000 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0181 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01a1 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01c1 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01e1 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0191 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01b1 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01d1 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01f1 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0192 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01b2 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01d2 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01f2 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000021 },
-   { 0x00800001, 0x20c00229, 0x00ad0182, 0x00000000 },
-   { 0x00800001, 0x20e00229, 0x00ad01a2, 0x00000000 },
-   { 0x00800001, 0x21000229, 0x00ad01c2, 0x00000000 },
-   { 0x00800001, 0x21200229, 0x00ad01e2, 0x00000000 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0183 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01a3 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01c3 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01e3 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0192 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01b2 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01d2 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01f2 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0193 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01b3 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01d3 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01f3 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000010 },
-   { 0x00800001, 0x20c00229, 0x00ad0183, 0x00000000 },
-   { 0x00800001, 0x20e00229, 0x00ad01a3, 0x00000000 },
-   { 0x00800001, 0x21000229, 0x00ad01c3, 0x00000000 },
-   { 0x00800001, 0x21200229, 0x00ad01e3, 0x00000000 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0184 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01a4 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01c4 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01e4 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0193 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01b3 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01d3 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01f3 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0194 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01b4 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01d4 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01f4 },
-   { 0x00800040, 0x20c02d29, 0x00b100c0, 0x00010001 },
-   { 0x00800040, 0x20e02d29, 0x00b100e0, 0x00010001 },
-   { 0x00800040, 0x21002d29, 0x00b10100, 0x00010001 },
-   { 0x00800040, 0x21202d29, 0x00b10120, 0x00010001 },
-   { 0x00800008, 0x40c02d31, 0x00b100c0, 0x00020002 },
-   { 0x00800008, 0x40e02d31, 0x00b100e0, 0x00020002 },
-   { 0x00800008, 0x41002d31, 0x00b10100, 0x00020002 },
-   { 0x00800008, 0x41202d31, 0x00b10120, 0x00020002 },
-   { 0x00800001, 0x20800231, 0x00b200c0, 0x00000000 },
-   { 0x00800001, 0x20900231, 0x00b200e0, 0x00000000 },
-   { 0x00800001, 0x20a00231, 0x00b20100, 0x00000000 },
-   { 0x00800001, 0x20b00231, 0x00b20120, 0x00000000 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000030 },
-   { 0x00000001, 0x20480061, 0x00000000, 0x0007000f },
-   { 0x00000005, 0x20580c21, 0x00210040, 0x00000003 },
-   { 0x00800031, 0x21801d29, 0x008d0040, 0x0414a004 },
-   { 0x00000041, 0x20580c21, 0x00210058, 0x00000009 },
-   { 0x00000020, 0x34001400, 0x00001400, 0x00210058 },
-   { 0x00800001, 0x20c00229, 0x00ad0180, 0x00000000 },
-   { 0x00800001, 0x20e00229, 0x00ad01a0, 0x00000000 },
-   { 0x00800001, 0x21000229, 0x00ad01c0, 0x00000000 },
-   { 0x00800001, 0x21200229, 0x00ad01e0, 0x00000000 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0181 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01a1 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01c1 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01e1 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x0000001a },
-   { 0x00800001, 0x20c00229, 0x00ad0181, 0x00000000 },
-   { 0x00800001, 0x20e00229, 0x00ad01a1, 0x00000000 },
-   { 0x00800001, 0x21000229, 0x00ad01c1, 0x00000000 },
-   { 0x00800001, 0x21200229, 0x00ad01e1, 0x00000000 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0182 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01a2 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01c2 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01e2 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000011 },
-   { 0x00800001, 0x20c00229, 0x00ad0182, 0x00000000 },
-   { 0x00800001, 0x20e00229, 0x00ad01a2, 0x00000000 },
-   { 0x00800001, 0x21000229, 0x00ad01c2, 0x00000000 },
-   { 0x00800001, 0x21200229, 0x00ad01e2, 0x00000000 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0183 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01a3 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01c3 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01e3 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000008 },
-   { 0x00800001, 0x20c00229, 0x00ad0183, 0x00000000 },
-   { 0x00800001, 0x20e00229, 0x00ad01a3, 0x00000000 },
-   { 0x00800001, 0x21000229, 0x00ad01c3, 0x00000000 },
-   { 0x00800001, 0x21200229, 0x00ad01e3, 0x00000000 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0184 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01a4 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01c4 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01e4 },
-   { 0x00800008, 0x20c02d29, 0x00b100c0, 0x00010001 },
-   { 0x00800008, 0x20e02d29, 0x00b100e0, 0x00010001 },
-   { 0x00800008, 0x21002d29, 0x00b10100, 0x00010001 },
-   { 0x00800008, 0x21202d29, 0x00b10120, 0x00010001 },
-   { 0x00800001, 0x20800231, 0x00b200c0, 0x00000000 },
-   { 0x00800001, 0x20900231, 0x00b200e0, 0x00000000 },
-   { 0x00800001, 0x20a00231, 0x00b20100, 0x00000000 },
-   { 0x00800001, 0x20b00231, 0x00b20120, 0x00000000 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x0000004e },
-   { 0x01000005, 0x20000c3c, 0x00210070, 0x00000000 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000034 },
-   { 0x00000001, 0x20480061, 0x00000000, 0x0009000f },
-   { 0x00000005, 0x20580c21, 0x00210040, 0x00000003 },
-   { 0x00800031, 0x21801d29, 0x008d0040, 0x0415a004 },
-   { 0x00000041, 0x20580c21, 0x00210058, 0x00000009 },
-   { 0x00000020, 0x34001400, 0x00001400, 0x00210058 },
-   { 0x00800001, 0x20c00229, 0x00ad0180, 0x00000000 },
-   { 0x00800001, 0x20e00229, 0x00ad01a0, 0x00000000 },
-   { 0x00800001, 0x21000229, 0x00ad01c0, 0x00000000 },
-   { 0x00800001, 0x21200229, 0x00ad01e0, 0x00000000 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0190 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01b0 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01d0 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01f0 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x0000001a },
-   { 0x00800001, 0x20c00229, 0x00ad0181, 0x00000000 },
-   { 0x00800001, 0x20e00229, 0x00ad01a1, 0x00000000 },
-   { 0x00800001, 0x21000229, 0x00ad01c1, 0x00000000 },
-   { 0x00800001, 0x21200229, 0x00ad01e1, 0x00000000 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0191 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01b1 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01d1 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01f1 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000011 },
-   { 0x00800001, 0x20c00229, 0x00ad0182, 0x00000000 },
-   { 0x00800001, 0x20e00229, 0x00ad01a2, 0x00000000 },
-   { 0x00800001, 0x21000229, 0x00ad01c2, 0x00000000 },
-   { 0x00800001, 0x21200229, 0x00ad01e2, 0x00000000 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0192 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01b2 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01d2 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01f2 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000008 },
-   { 0x00800001, 0x20c00229, 0x00ad0183, 0x00000000 },
-   { 0x00800001, 0x20e00229, 0x00ad01a3, 0x00000000 },
-   { 0x00800001, 0x21000229, 0x00ad01c3, 0x00000000 },
-   { 0x00800001, 0x21200229, 0x00ad01e3, 0x00000000 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0193 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01b3 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01d3 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01f3 },
-   { 0x00800040, 0x20c02d29, 0x00b100c0, 0x00010001 },
-   { 0x00800040, 0x20e02d29, 0x00b100e0, 0x00010001 },
-   { 0x00800040, 0x21002d29, 0x00b10100, 0x00010001 },
-   { 0x00800040, 0x21202d29, 0x00b10120, 0x00010001 },
-   { 0x80800008, 0x40c02d31, 0x00b100c0, 0x00010001 },
-   { 0x80800008, 0x40e02d31, 0x00b100e0, 0x00010001 },
-   { 0x80800008, 0x41002d31, 0x00b10100, 0x00010001 },
-   { 0x80800008, 0x41202d31, 0x00b10120, 0x00010001 },
-   { 0x00800001, 0x20800231, 0x00b200c0, 0x00000000 },
-   { 0x00800001, 0x20900231, 0x00b200e0, 0x00000000 },
-   { 0x00800001, 0x20a00231, 0x00b20100, 0x00000000 },
-   { 0x00800001, 0x20b00231, 0x00b20120, 0x00000000 },
-   { 0x00000001, 0x20480061, 0x00000000, 0x0007000f },
-   { 0x00000005, 0x20580c21, 0x00210040, 0x00000003 },
-   { 0x00800031, 0x21801d29, 0x008d0040, 0x0414a004 },
-   { 0x00000041, 0x20580c21, 0x00210058, 0x00000005 },
-   { 0x00000020, 0x34001400, 0x00001400, 0x00210058 },
-   { 0x00800001, 0x20800231, 0x00ad0180, 0x00000000 },
-   { 0x00800001, 0x20900231, 0x00ad01a0, 0x00000000 },
-   { 0x00800001, 0x20a00231, 0x00ad01c0, 0x00000000 },
-   { 0x00800001, 0x20b00231, 0x00ad01e0, 0x00000000 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x0000000e },
-   { 0x00800001, 0x20800231, 0x00ad0181, 0x00000000 },
-   { 0x00800001, 0x20900231, 0x00ad01a1, 0x00000000 },
-   { 0x00800001, 0x20a00231, 0x00ad01c1, 0x00000000 },
-   { 0x00800001, 0x20b00231, 0x00ad01e1, 0x00000000 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000009 },
-   { 0x00800001, 0x20800231, 0x00ad0182, 0x00000000 },
-   { 0x00800001, 0x20900231, 0x00ad01a2, 0x00000000 },
-   { 0x00800001, 0x20a00231, 0x00ad01c2, 0x00000000 },
-   { 0x00800001, 0x20b00231, 0x00ad01e2, 0x00000000 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000004 },
-   { 0x00800001, 0x20800231, 0x00ad0183, 0x00000000 },
-   { 0x00800001, 0x20900231, 0x00ad01a3, 0x00000000 },
-   { 0x00800001, 0x20a00231, 0x00ad01c3, 0x00000000 },
-   { 0x00800001, 0x20b00231, 0x00ad01e3, 0x00000000 },
-   { 0x00000001, 0x20480061, 0x00000000, 0x00070007 },
-   { 0x0020000c, 0x20301ca5, 0x00450078, 0x00000001 },
-   { 0x00200040, 0x20401421, 0x00450020, 0x00450030 },
-   { 0x01000005, 0x20000c3c, 0x00210078, 0x00000001 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000088 },
-   { 0x01000005, 0x20000c3c, 0x0021007c, 0x00000001 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000055 },
-   { 0x00000001, 0x20480061, 0x00000000, 0x0009000f },
-   { 0x00000005, 0x20580c21, 0x00210040, 0x00000003 },
-   { 0x00800031, 0x21801d29, 0x008d0040, 0x0415a007 },
-   { 0x00000041, 0x20580c21, 0x00210058, 0x00000011 },
-   { 0x00000020, 0x34001400, 0x00001400, 0x00210058 },
-   { 0x00800001, 0x20c00229, 0x00ad0180, 0x00000000 },
-   { 0x00800001, 0x20e00229, 0x00ad01a0, 0x00000000 },
-   { 0x00800001, 0x21000229, 0x00ad01c0, 0x00000000 },
-   { 0x00800001, 0x21200229, 0x00ad01e0, 0x00000000 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0181 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01a1 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01c1 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01e1 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0190 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01b0 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01d0 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01f0 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0191 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01b1 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01d1 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01f1 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000032 },
-   { 0x00800001, 0x20c00229, 0x00ad0181, 0x00000000 },
-   { 0x00800001, 0x20e00229, 0x00ad01a1, 0x00000000 },
-   { 0x00800001, 0x21000229, 0x00ad01c1, 0x00000000 },
-   { 0x00800001, 0x21200229, 0x00ad01e1, 0x00000000 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0181 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01a1 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01c1 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01e1 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0191 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01b1 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01d1 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01f1 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0192 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01b2 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01d2 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01f2 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000021 },
-   { 0x00800001, 0x20c00229, 0x00ad0182, 0x00000000 },
-   { 0x00800001, 0x20e00229, 0x00ad01a2, 0x00000000 },
-   { 0x00800001, 0x21000229, 0x00ad01c2, 0x00000000 },
-   { 0x00800001, 0x21200229, 0x00ad01e2, 0x00000000 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0183 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01a3 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01c3 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01e3 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0192 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01b2 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01d2 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01f2 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0193 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01b3 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01d3 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01f3 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000010 },
-   { 0x00800001, 0x20c00229, 0x00ad0183, 0x00000000 },
-   { 0x00800001, 0x20e00229, 0x00ad01a3, 0x00000000 },
-   { 0x00800001, 0x21000229, 0x00ad01c3, 0x00000000 },
-   { 0x00800001, 0x21200229, 0x00ad01e3, 0x00000000 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0184 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01a4 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01c4 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01e4 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0193 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01b3 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01d3 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01f3 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0194 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01b4 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01d4 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01f4 },
-   { 0x00800040, 0x20c02d29, 0x00b100c0, 0x00010001 },
-   { 0x00800040, 0x20e02d29, 0x00b100e0, 0x00010001 },
-   { 0x00800040, 0x21002d29, 0x00b10100, 0x00010001 },
-   { 0x00800040, 0x21202d29, 0x00b10120, 0x00010001 },
-   { 0x00800008, 0x40c02d31, 0x00b100c0, 0x00020002 },
-   { 0x00800008, 0x40e02d31, 0x00b100e0, 0x00020002 },
-   { 0x00800008, 0x41002d31, 0x00b10100, 0x00020002 },
-   { 0x00800008, 0x41202d31, 0x00b10120, 0x00020002 },
-   { 0x00800001, 0x21400231, 0x00b200c0, 0x00000000 },
-   { 0x00800001, 0x21500231, 0x00b200e0, 0x00000000 },
-   { 0x00800001, 0x21600231, 0x00b20100, 0x00000000 },
-   { 0x00800001, 0x21700231, 0x00b20120, 0x00000000 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000030 },
-   { 0x00000001, 0x20480061, 0x00000000, 0x0007000f },
-   { 0x00000005, 0x20580c21, 0x00210040, 0x00000003 },
-   { 0x00800031, 0x21801d29, 0x008d0040, 0x0414a007 },
-   { 0x00000041, 0x20580c21, 0x00210058, 0x00000009 },
-   { 0x00000020, 0x34001400, 0x00001400, 0x00210058 },
-   { 0x00800001, 0x20c00229, 0x00ad0180, 0x00000000 },
-   { 0x00800001, 0x20e00229, 0x00ad01a0, 0x00000000 },
-   { 0x00800001, 0x21000229, 0x00ad01c0, 0x00000000 },
-   { 0x00800001, 0x21200229, 0x00ad01e0, 0x00000000 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0181 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01a1 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01c1 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01e1 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x0000001a },
-   { 0x00800001, 0x20c00229, 0x00ad0181, 0x00000000 },
-   { 0x00800001, 0x20e00229, 0x00ad01a1, 0x00000000 },
-   { 0x00800001, 0x21000229, 0x00ad01c1, 0x00000000 },
-   { 0x00800001, 0x21200229, 0x00ad01e1, 0x00000000 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0182 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01a2 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01c2 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01e2 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000011 },
-   { 0x00800001, 0x20c00229, 0x00ad0182, 0x00000000 },
-   { 0x00800001, 0x20e00229, 0x00ad01a2, 0x00000000 },
-   { 0x00800001, 0x21000229, 0x00ad01c2, 0x00000000 },
-   { 0x00800001, 0x21200229, 0x00ad01e2, 0x00000000 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0183 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01a3 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01c3 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01e3 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000008 },
-   { 0x00800001, 0x20c00229, 0x00ad0183, 0x00000000 },
-   { 0x00800001, 0x20e00229, 0x00ad01a3, 0x00000000 },
-   { 0x00800001, 0x21000229, 0x00ad01c3, 0x00000000 },
-   { 0x00800001, 0x21200229, 0x00ad01e3, 0x00000000 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0184 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01a4 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01c4 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01e4 },
-   { 0x00800008, 0x20c02d29, 0x00b100c0, 0x00010001 },
-   { 0x00800008, 0x20e02d29, 0x00b100e0, 0x00010001 },
-   { 0x00800008, 0x21002d29, 0x00b10100, 0x00010001 },
-   { 0x00800008, 0x21202d29, 0x00b10120, 0x00010001 },
-   { 0x00800001, 0x21400231, 0x00b200c0, 0x00000000 },
-   { 0x00800001, 0x21500231, 0x00b200e0, 0x00000000 },
-   { 0x00800001, 0x21600231, 0x00b20100, 0x00000000 },
-   { 0x00800001, 0x21700231, 0x00b20120, 0x00000000 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x0000004e },
-   { 0x01000005, 0x20000c3c, 0x00210078, 0x00000000 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000034 },
-   { 0x00000001, 0x20480061, 0x00000000, 0x0009000f },
-   { 0x00000005, 0x20580c21, 0x00210040, 0x00000003 },
-   { 0x00800031, 0x21801d29, 0x008d0040, 0x0415a007 },
-   { 0x00000041, 0x20580c21, 0x00210058, 0x00000009 },
-   { 0x00000020, 0x34001400, 0x00001400, 0x00210058 },
-   { 0x00800001, 0x20c00229, 0x00ad0180, 0x00000000 },
-   { 0x00800001, 0x20e00229, 0x00ad01a0, 0x00000000 },
-   { 0x00800001, 0x21000229, 0x00ad01c0, 0x00000000 },
-   { 0x00800001, 0x21200229, 0x00ad01e0, 0x00000000 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0190 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01b0 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01d0 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01f0 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x0000001a },
-   { 0x00800001, 0x20c00229, 0x00ad0181, 0x00000000 },
-   { 0x00800001, 0x20e00229, 0x00ad01a1, 0x00000000 },
-   { 0x00800001, 0x21000229, 0x00ad01c1, 0x00000000 },
-   { 0x00800001, 0x21200229, 0x00ad01e1, 0x00000000 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0191 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01b1 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01d1 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01f1 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000011 },
-   { 0x00800001, 0x20c00229, 0x00ad0182, 0x00000000 },
-   { 0x00800001, 0x20e00229, 0x00ad01a2, 0x00000000 },
-   { 0x00800001, 0x21000229, 0x00ad01c2, 0x00000000 },
-   { 0x00800001, 0x21200229, 0x00ad01e2, 0x00000000 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0192 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01b2 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01d2 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01f2 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000008 },
-   { 0x00800001, 0x20c00229, 0x00ad0183, 0x00000000 },
-   { 0x00800001, 0x20e00229, 0x00ad01a3, 0x00000000 },
-   { 0x00800001, 0x21000229, 0x00ad01c3, 0x00000000 },
-   { 0x00800001, 0x21200229, 0x00ad01e3, 0x00000000 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0193 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01b3 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01d3 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01f3 },
-   { 0x00800040, 0x20c02d29, 0x00b100c0, 0x00010001 },
-   { 0x00800040, 0x20e02d29, 0x00b100e0, 0x00010001 },
-   { 0x00800040, 0x21002d29, 0x00b10100, 0x00010001 },
-   { 0x00800040, 0x21202d29, 0x00b10120, 0x00010001 },
-   { 0x80800008, 0x40c02d31, 0x00b100c0, 0x00010001 },
-   { 0x80800008, 0x40e02d31, 0x00b100e0, 0x00010001 },
-   { 0x80800008, 0x41002d31, 0x00b10100, 0x00010001 },
-   { 0x80800008, 0x41202d31, 0x00b10120, 0x00010001 },
-   { 0x00800001, 0x21400231, 0x00b200c0, 0x00000000 },
-   { 0x00800001, 0x21500231, 0x00b200e0, 0x00000000 },
-   { 0x00800001, 0x21600231, 0x00b20100, 0x00000000 },
-   { 0x00800001, 0x21700231, 0x00b20120, 0x00000000 },
-   { 0x00000001, 0x20480061, 0x00000000, 0x0007000f },
-   { 0x00000005, 0x20580c21, 0x00210040, 0x00000003 },
-   { 0x00800031, 0x21801d29, 0x008d0040, 0x0414a007 },
-   { 0x00000041, 0x20580c21, 0x00210058, 0x00000005 },
-   { 0x00000020, 0x34001400, 0x00001400, 0x00210058 },
-   { 0x00800001, 0x21400231, 0x00ad0180, 0x00000000 },
-   { 0x00800001, 0x21500231, 0x00ad01a0, 0x00000000 },
-   { 0x00800001, 0x21600231, 0x00ad01c0, 0x00000000 },
-   { 0x00800001, 0x21700231, 0x00ad01e0, 0x00000000 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x0000000e },
-   { 0x00800001, 0x21400231, 0x00ad0181, 0x00000000 },
-   { 0x00800001, 0x21500231, 0x00ad01a1, 0x00000000 },
-   { 0x00800001, 0x21600231, 0x00ad01c1, 0x00000000 },
-   { 0x00800001, 0x21700231, 0x00ad01e1, 0x00000000 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000009 },
-   { 0x00800001, 0x21400231, 0x00ad0182, 0x00000000 },
-   { 0x00800001, 0x21500231, 0x00ad01a2, 0x00000000 },
-   { 0x00800001, 0x21600231, 0x00ad01c2, 0x00000000 },
-   { 0x00800001, 0x21700231, 0x00ad01e2, 0x00000000 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000004 },
-   { 0x00800001, 0x21400231, 0x00ad0183, 0x00000000 },
-   { 0x00800001, 0x21500231, 0x00ad01a3, 0x00000000 },
-   { 0x00800001, 0x21600231, 0x00ad01c3, 0x00000000 },
-   { 0x00800001, 0x21700231, 0x00ad01e3, 0x00000000 },
-   { 0x00000001, 0x20480061, 0x00000000, 0x00070007 },
-   { 0x00800001, 0x20c00229, 0x00b10080, 0x00000000 },
-   { 0x00800001, 0x20e00229, 0x00b10090, 0x00000000 },
-   { 0x00800001, 0x21000229, 0x00b100a0, 0x00000000 },
-   { 0x00800001, 0x21200229, 0x00b100b0, 0x00000000 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00b10140 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00b10150 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00b10160 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00b10170 },
-   { 0x80800008, 0x40c02d31, 0x00b100c0, 0x00010001 },
-   { 0x80800008, 0x40e02d31, 0x00b100e0, 0x00010001 },
-   { 0x80800008, 0x41002d31, 0x00b10100, 0x00010001 },
-   { 0x80800008, 0x41202d31, 0x00b10120, 0x00010001 },
-   { 0x00800001, 0x20800231, 0x00b200c0, 0x00000000 },
-   { 0x00800001, 0x20900231, 0x00b200e0, 0x00000000 },
-   { 0x00800001, 0x20a00231, 0x00b20100, 0x00000000 },
-   { 0x00800001, 0x20b00231, 0x00b20120, 0x00000000 },
-   { 0x01000005, 0x20000c3c, 0x0021006c, 0x00000008 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000015 },
-   { 0x00000040, 0x20440c21, 0x00210068, 0x00000000 },
-   { 0x00800031, 0x20c01d21, 0x008d0040, 0x04110203 },
-   { 0x00000040, 0x20440c21, 0x00210044, 0x00000020 },
-   { 0x00800031, 0x20e01d21, 0x008d0040, 0x04110203 },
-   { 0x00000040, 0x20440c21, 0x00210044, 0x00000020 },
-   { 0x00800031, 0x21001d21, 0x008d0040, 0x04110203 },
-   { 0x00000040, 0x20440c21, 0x00210044, 0x00000020 },
-   { 0x00800031, 0x21201d21, 0x008d0040, 0x04110203 },
-   { 0x00000040, 0x20680c21, 0x00210068, 0x00000080 },
-   { 0x00800040, 0x20c045ad, 0x00b100c0, 0x00b10080 },
-   { 0x00800040, 0x20e045ad, 0x00b100e0, 0x00b10090 },
-   { 0x00800040, 0x210045ad, 0x00b10100, 0x00b100a0 },
-   { 0x00800040, 0x212045ad, 0x00b10120, 0x00b100b0 },
-   { 0x80800001, 0x40c001b1, 0x00b100c0, 0x00000000 },
-   { 0x80800001, 0x40e001b1, 0x00b100e0, 0x00000000 },
-   { 0x80800001, 0x410001b1, 0x00b10100, 0x00000000 },
-   { 0x80800001, 0x412001b1, 0x00b10120, 0x00000000 },
-   { 0x00800001, 0x20800231, 0x00b200c0, 0x00000000 },
-   { 0x00800001, 0x20900231, 0x00b200e0, 0x00000000 },
-   { 0x00800001, 0x20a00231, 0x00b20100, 0x00000000 },
-   { 0x00800001, 0x20b00231, 0x00b20120, 0x00000000 },
-   { 0x00802001, 0x20200022, 0x008d0080, 0x00000000 },
-   { 0x00800031, 0x24001d28, 0x008d0020, 0x05302000 },
-   { 0x00200040, 0x20201c21, 0x00450060, 0x00000008 },
-   { 0x0020000c, 0x20301ca5, 0x00450070, 0x00000001 },
-   { 0x00200040, 0x204014a5, 0x00450020, 0x00450030 },
-   { 0x01000005, 0x20000c3c, 0x00210070, 0x00000001 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000088 },
-   { 0x01000005, 0x20000c3c, 0x00210074, 0x00000001 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000055 },
-   { 0x00000001, 0x20480061, 0x00000000, 0x0009000f },
-   { 0x00000005, 0x20580c21, 0x00210040, 0x00000003 },
-   { 0x00800031, 0x21801d29, 0x008d0040, 0x0415a004 },
-   { 0x00000041, 0x20580c21, 0x00210058, 0x00000011 },
-   { 0x00000020, 0x34001400, 0x00001400, 0x00210058 },
-   { 0x00800001, 0x20c00229, 0x00ad0180, 0x00000000 },
-   { 0x00800001, 0x20e00229, 0x00ad01a0, 0x00000000 },
-   { 0x00800001, 0x21000229, 0x00ad01c0, 0x00000000 },
-   { 0x00800001, 0x21200229, 0x00ad01e0, 0x00000000 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0181 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01a1 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01c1 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01e1 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0190 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01b0 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01d0 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01f0 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0191 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01b1 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01d1 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01f1 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000032 },
-   { 0x00800001, 0x20c00229, 0x00ad0181, 0x00000000 },
-   { 0x00800001, 0x20e00229, 0x00ad01a1, 0x00000000 },
-   { 0x00800001, 0x21000229, 0x00ad01c1, 0x00000000 },
-   { 0x00800001, 0x21200229, 0x00ad01e1, 0x00000000 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0181 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01a1 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01c1 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01e1 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0191 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01b1 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01d1 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01f1 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0192 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01b2 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01d2 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01f2 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000021 },
-   { 0x00800001, 0x20c00229, 0x00ad0182, 0x00000000 },
-   { 0x00800001, 0x20e00229, 0x00ad01a2, 0x00000000 },
-   { 0x00800001, 0x21000229, 0x00ad01c2, 0x00000000 },
-   { 0x00800001, 0x21200229, 0x00ad01e2, 0x00000000 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0183 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01a3 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01c3 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01e3 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0192 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01b2 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01d2 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01f2 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0193 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01b3 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01d3 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01f3 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000010 },
-   { 0x00800001, 0x20c00229, 0x00ad0183, 0x00000000 },
-   { 0x00800001, 0x20e00229, 0x00ad01a3, 0x00000000 },
-   { 0x00800001, 0x21000229, 0x00ad01c3, 0x00000000 },
-   { 0x00800001, 0x21200229, 0x00ad01e3, 0x00000000 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0184 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01a4 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01c4 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01e4 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0193 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01b3 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01d3 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01f3 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0194 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01b4 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01d4 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01f4 },
-   { 0x00800040, 0x20c02d29, 0x00b100c0, 0x00010001 },
-   { 0x00800040, 0x20e02d29, 0x00b100e0, 0x00010001 },
-   { 0x00800040, 0x21002d29, 0x00b10100, 0x00010001 },
-   { 0x00800040, 0x21202d29, 0x00b10120, 0x00010001 },
-   { 0x00800008, 0x40c02d31, 0x00b100c0, 0x00020002 },
-   { 0x00800008, 0x40e02d31, 0x00b100e0, 0x00020002 },
-   { 0x00800008, 0x41002d31, 0x00b10100, 0x00020002 },
-   { 0x00800008, 0x41202d31, 0x00b10120, 0x00020002 },
-   { 0x00800001, 0x20800231, 0x00b200c0, 0x00000000 },
-   { 0x00800001, 0x20900231, 0x00b200e0, 0x00000000 },
-   { 0x00800001, 0x20a00231, 0x00b20100, 0x00000000 },
-   { 0x00800001, 0x20b00231, 0x00b20120, 0x00000000 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000030 },
-   { 0x00000001, 0x20480061, 0x00000000, 0x0007000f },
-   { 0x00000005, 0x20580c21, 0x00210040, 0x00000003 },
-   { 0x00800031, 0x21801d29, 0x008d0040, 0x0414a004 },
-   { 0x00000041, 0x20580c21, 0x00210058, 0x00000009 },
-   { 0x00000020, 0x34001400, 0x00001400, 0x00210058 },
-   { 0x00800001, 0x20c00229, 0x00ad0180, 0x00000000 },
-   { 0x00800001, 0x20e00229, 0x00ad01a0, 0x00000000 },
-   { 0x00800001, 0x21000229, 0x00ad01c0, 0x00000000 },
-   { 0x00800001, 0x21200229, 0x00ad01e0, 0x00000000 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0181 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01a1 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01c1 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01e1 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x0000001a },
-   { 0x00800001, 0x20c00229, 0x00ad0181, 0x00000000 },
-   { 0x00800001, 0x20e00229, 0x00ad01a1, 0x00000000 },
-   { 0x00800001, 0x21000229, 0x00ad01c1, 0x00000000 },
-   { 0x00800001, 0x21200229, 0x00ad01e1, 0x00000000 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0182 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01a2 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01c2 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01e2 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000011 },
-   { 0x00800001, 0x20c00229, 0x00ad0182, 0x00000000 },
-   { 0x00800001, 0x20e00229, 0x00ad01a2, 0x00000000 },
-   { 0x00800001, 0x21000229, 0x00ad01c2, 0x00000000 },
-   { 0x00800001, 0x21200229, 0x00ad01e2, 0x00000000 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0183 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01a3 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01c3 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01e3 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000008 },
-   { 0x00800001, 0x20c00229, 0x00ad0183, 0x00000000 },
-   { 0x00800001, 0x20e00229, 0x00ad01a3, 0x00000000 },
-   { 0x00800001, 0x21000229, 0x00ad01c3, 0x00000000 },
-   { 0x00800001, 0x21200229, 0x00ad01e3, 0x00000000 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0184 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01a4 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01c4 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01e4 },
-   { 0x00800008, 0x20c02d29, 0x00b100c0, 0x00010001 },
-   { 0x00800008, 0x20e02d29, 0x00b100e0, 0x00010001 },
-   { 0x00800008, 0x21002d29, 0x00b10100, 0x00010001 },
-   { 0x00800008, 0x21202d29, 0x00b10120, 0x00010001 },
-   { 0x00800001, 0x20800231, 0x00b200c0, 0x00000000 },
-   { 0x00800001, 0x20900231, 0x00b200e0, 0x00000000 },
-   { 0x00800001, 0x20a00231, 0x00b20100, 0x00000000 },
-   { 0x00800001, 0x20b00231, 0x00b20120, 0x00000000 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x0000004e },
-   { 0x01000005, 0x20000c3c, 0x00210070, 0x00000000 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000034 },
-   { 0x00000001, 0x20480061, 0x00000000, 0x0009000f },
-   { 0x00000005, 0x20580c21, 0x00210040, 0x00000003 },
-   { 0x00800031, 0x21801d29, 0x008d0040, 0x0415a004 },
-   { 0x00000041, 0x20580c21, 0x00210058, 0x00000009 },
-   { 0x00000020, 0x34001400, 0x00001400, 0x00210058 },
-   { 0x00800001, 0x20c00229, 0x00ad0180, 0x00000000 },
-   { 0x00800001, 0x20e00229, 0x00ad01a0, 0x00000000 },
-   { 0x00800001, 0x21000229, 0x00ad01c0, 0x00000000 },
-   { 0x00800001, 0x21200229, 0x00ad01e0, 0x00000000 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0190 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01b0 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01d0 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01f0 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x0000001a },
-   { 0x00800001, 0x20c00229, 0x00ad0181, 0x00000000 },
-   { 0x00800001, 0x20e00229, 0x00ad01a1, 0x00000000 },
-   { 0x00800001, 0x21000229, 0x00ad01c1, 0x00000000 },
-   { 0x00800001, 0x21200229, 0x00ad01e1, 0x00000000 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0191 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01b1 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01d1 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01f1 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000011 },
-   { 0x00800001, 0x20c00229, 0x00ad0182, 0x00000000 },
-   { 0x00800001, 0x20e00229, 0x00ad01a2, 0x00000000 },
-   { 0x00800001, 0x21000229, 0x00ad01c2, 0x00000000 },
-   { 0x00800001, 0x21200229, 0x00ad01e2, 0x00000000 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0192 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01b2 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01d2 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01f2 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000008 },
-   { 0x00800001, 0x20c00229, 0x00ad0183, 0x00000000 },
-   { 0x00800001, 0x20e00229, 0x00ad01a3, 0x00000000 },
-   { 0x00800001, 0x21000229, 0x00ad01c3, 0x00000000 },
-   { 0x00800001, 0x21200229, 0x00ad01e3, 0x00000000 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0193 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01b3 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01d3 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01f3 },
-   { 0x00800040, 0x20c02d29, 0x00b100c0, 0x00010001 },
-   { 0x00800040, 0x20e02d29, 0x00b100e0, 0x00010001 },
-   { 0x00800040, 0x21002d29, 0x00b10100, 0x00010001 },
-   { 0x00800040, 0x21202d29, 0x00b10120, 0x00010001 },
-   { 0x80800008, 0x40c02d31, 0x00b100c0, 0x00010001 },
-   { 0x80800008, 0x40e02d31, 0x00b100e0, 0x00010001 },
-   { 0x80800008, 0x41002d31, 0x00b10100, 0x00010001 },
-   { 0x80800008, 0x41202d31, 0x00b10120, 0x00010001 },
-   { 0x00800001, 0x20800231, 0x00b200c0, 0x00000000 },
-   { 0x00800001, 0x20900231, 0x00b200e0, 0x00000000 },
-   { 0x00800001, 0x20a00231, 0x00b20100, 0x00000000 },
-   { 0x00800001, 0x20b00231, 0x00b20120, 0x00000000 },
-   { 0x00000001, 0x20480061, 0x00000000, 0x0007000f },
-   { 0x00000005, 0x20580c21, 0x00210040, 0x00000003 },
-   { 0x00800031, 0x21801d29, 0x008d0040, 0x0414a004 },
-   { 0x00000041, 0x20580c21, 0x00210058, 0x00000005 },
-   { 0x00000020, 0x34001400, 0x00001400, 0x00210058 },
-   { 0x00800001, 0x20800231, 0x00ad0180, 0x00000000 },
-   { 0x00800001, 0x20900231, 0x00ad01a0, 0x00000000 },
-   { 0x00800001, 0x20a00231, 0x00ad01c0, 0x00000000 },
-   { 0x00800001, 0x20b00231, 0x00ad01e0, 0x00000000 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x0000000e },
-   { 0x00800001, 0x20800231, 0x00ad0181, 0x00000000 },
-   { 0x00800001, 0x20900231, 0x00ad01a1, 0x00000000 },
-   { 0x00800001, 0x20a00231, 0x00ad01c1, 0x00000000 },
-   { 0x00800001, 0x20b00231, 0x00ad01e1, 0x00000000 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000009 },
-   { 0x00800001, 0x20800231, 0x00ad0182, 0x00000000 },
-   { 0x00800001, 0x20900231, 0x00ad01a2, 0x00000000 },
-   { 0x00800001, 0x20a00231, 0x00ad01c2, 0x00000000 },
-   { 0x00800001, 0x20b00231, 0x00ad01e2, 0x00000000 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000004 },
-   { 0x00800001, 0x20800231, 0x00ad0183, 0x00000000 },
-   { 0x00800001, 0x20900231, 0x00ad01a3, 0x00000000 },
-   { 0x00800001, 0x20a00231, 0x00ad01c3, 0x00000000 },
-   { 0x00800001, 0x20b00231, 0x00ad01e3, 0x00000000 },
-   { 0x00000001, 0x20480061, 0x00000000, 0x00070007 },
-   { 0x0020000c, 0x20301ca5, 0x00450078, 0x00000001 },
-   { 0x00200040, 0x20401421, 0x00450020, 0x00450030 },
-   { 0x01000005, 0x20000c3c, 0x00210078, 0x00000001 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000088 },
-   { 0x01000005, 0x20000c3c, 0x0021007c, 0x00000001 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000055 },
-   { 0x00000001, 0x20480061, 0x00000000, 0x0009000f },
-   { 0x00000005, 0x20580c21, 0x00210040, 0x00000003 },
-   { 0x00800031, 0x21801d29, 0x008d0040, 0x0415a007 },
-   { 0x00000041, 0x20580c21, 0x00210058, 0x00000011 },
-   { 0x00000020, 0x34001400, 0x00001400, 0x00210058 },
-   { 0x00800001, 0x20c00229, 0x00ad0180, 0x00000000 },
-   { 0x00800001, 0x20e00229, 0x00ad01a0, 0x00000000 },
-   { 0x00800001, 0x21000229, 0x00ad01c0, 0x00000000 },
-   { 0x00800001, 0x21200229, 0x00ad01e0, 0x00000000 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0181 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01a1 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01c1 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01e1 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0190 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01b0 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01d0 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01f0 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0191 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01b1 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01d1 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01f1 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000032 },
-   { 0x00800001, 0x20c00229, 0x00ad0181, 0x00000000 },
-   { 0x00800001, 0x20e00229, 0x00ad01a1, 0x00000000 },
-   { 0x00800001, 0x21000229, 0x00ad01c1, 0x00000000 },
-   { 0x00800001, 0x21200229, 0x00ad01e1, 0x00000000 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0181 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01a1 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01c1 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01e1 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0191 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01b1 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01d1 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01f1 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0192 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01b2 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01d2 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01f2 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000021 },
-   { 0x00800001, 0x20c00229, 0x00ad0182, 0x00000000 },
-   { 0x00800001, 0x20e00229, 0x00ad01a2, 0x00000000 },
-   { 0x00800001, 0x21000229, 0x00ad01c2, 0x00000000 },
-   { 0x00800001, 0x21200229, 0x00ad01e2, 0x00000000 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0183 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01a3 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01c3 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01e3 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0192 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01b2 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01d2 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01f2 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0193 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01b3 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01d3 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01f3 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000010 },
-   { 0x00800001, 0x20c00229, 0x00ad0183, 0x00000000 },
-   { 0x00800001, 0x20e00229, 0x00ad01a3, 0x00000000 },
-   { 0x00800001, 0x21000229, 0x00ad01c3, 0x00000000 },
-   { 0x00800001, 0x21200229, 0x00ad01e3, 0x00000000 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0184 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01a4 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01c4 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01e4 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0193 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01b3 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01d3 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01f3 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0194 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01b4 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01d4 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01f4 },
-   { 0x00800040, 0x20c02d29, 0x00b100c0, 0x00010001 },
-   { 0x00800040, 0x20e02d29, 0x00b100e0, 0x00010001 },
-   { 0x00800040, 0x21002d29, 0x00b10100, 0x00010001 },
-   { 0x00800040, 0x21202d29, 0x00b10120, 0x00010001 },
-   { 0x00800008, 0x40c02d31, 0x00b100c0, 0x00020002 },
-   { 0x00800008, 0x40e02d31, 0x00b100e0, 0x00020002 },
-   { 0x00800008, 0x41002d31, 0x00b10100, 0x00020002 },
-   { 0x00800008, 0x41202d31, 0x00b10120, 0x00020002 },
-   { 0x00800001, 0x21400231, 0x00b200c0, 0x00000000 },
-   { 0x00800001, 0x21500231, 0x00b200e0, 0x00000000 },
-   { 0x00800001, 0x21600231, 0x00b20100, 0x00000000 },
-   { 0x00800001, 0x21700231, 0x00b20120, 0x00000000 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000030 },
-   { 0x00000001, 0x20480061, 0x00000000, 0x0007000f },
-   { 0x00000005, 0x20580c21, 0x00210040, 0x00000003 },
-   { 0x00800031, 0x21801d29, 0x008d0040, 0x0414a007 },
-   { 0x00000041, 0x20580c21, 0x00210058, 0x00000009 },
-   { 0x00000020, 0x34001400, 0x00001400, 0x00210058 },
-   { 0x00800001, 0x20c00229, 0x00ad0180, 0x00000000 },
-   { 0x00800001, 0x20e00229, 0x00ad01a0, 0x00000000 },
-   { 0x00800001, 0x21000229, 0x00ad01c0, 0x00000000 },
-   { 0x00800001, 0x21200229, 0x00ad01e0, 0x00000000 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0181 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01a1 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01c1 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01e1 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x0000001a },
-   { 0x00800001, 0x20c00229, 0x00ad0181, 0x00000000 },
-   { 0x00800001, 0x20e00229, 0x00ad01a1, 0x00000000 },
-   { 0x00800001, 0x21000229, 0x00ad01c1, 0x00000000 },
-   { 0x00800001, 0x21200229, 0x00ad01e1, 0x00000000 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0182 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01a2 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01c2 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01e2 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000011 },
-   { 0x00800001, 0x20c00229, 0x00ad0182, 0x00000000 },
-   { 0x00800001, 0x20e00229, 0x00ad01a2, 0x00000000 },
-   { 0x00800001, 0x21000229, 0x00ad01c2, 0x00000000 },
-   { 0x00800001, 0x21200229, 0x00ad01e2, 0x00000000 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0183 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01a3 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01c3 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01e3 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000008 },
-   { 0x00800001, 0x20c00229, 0x00ad0183, 0x00000000 },
-   { 0x00800001, 0x20e00229, 0x00ad01a3, 0x00000000 },
-   { 0x00800001, 0x21000229, 0x00ad01c3, 0x00000000 },
-   { 0x00800001, 0x21200229, 0x00ad01e3, 0x00000000 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0184 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01a4 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01c4 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01e4 },
-   { 0x00800008, 0x20c02d29, 0x00b100c0, 0x00010001 },
-   { 0x00800008, 0x20e02d29, 0x00b100e0, 0x00010001 },
-   { 0x00800008, 0x21002d29, 0x00b10100, 0x00010001 },
-   { 0x00800008, 0x21202d29, 0x00b10120, 0x00010001 },
-   { 0x00800001, 0x21400231, 0x00b200c0, 0x00000000 },
-   { 0x00800001, 0x21500231, 0x00b200e0, 0x00000000 },
-   { 0x00800001, 0x21600231, 0x00b20100, 0x00000000 },
-   { 0x00800001, 0x21700231, 0x00b20120, 0x00000000 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x0000004e },
-   { 0x01000005, 0x20000c3c, 0x00210078, 0x00000000 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000034 },
-   { 0x00000001, 0x20480061, 0x00000000, 0x0009000f },
-   { 0x00000005, 0x20580c21, 0x00210040, 0x00000003 },
-   { 0x00800031, 0x21801d29, 0x008d0040, 0x0415a007 },
-   { 0x00000041, 0x20580c21, 0x00210058, 0x00000009 },
-   { 0x00000020, 0x34001400, 0x00001400, 0x00210058 },
-   { 0x00800001, 0x20c00229, 0x00ad0180, 0x00000000 },
-   { 0x00800001, 0x20e00229, 0x00ad01a0, 0x00000000 },
-   { 0x00800001, 0x21000229, 0x00ad01c0, 0x00000000 },
-   { 0x00800001, 0x21200229, 0x00ad01e0, 0x00000000 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0190 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01b0 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01d0 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01f0 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x0000001a },
-   { 0x00800001, 0x20c00229, 0x00ad0181, 0x00000000 },
-   { 0x00800001, 0x20e00229, 0x00ad01a1, 0x00000000 },
-   { 0x00800001, 0x21000229, 0x00ad01c1, 0x00000000 },
-   { 0x00800001, 0x21200229, 0x00ad01e1, 0x00000000 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0191 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01b1 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01d1 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01f1 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000011 },
-   { 0x00800001, 0x20c00229, 0x00ad0182, 0x00000000 },
-   { 0x00800001, 0x20e00229, 0x00ad01a2, 0x00000000 },
-   { 0x00800001, 0x21000229, 0x00ad01c2, 0x00000000 },
-   { 0x00800001, 0x21200229, 0x00ad01e2, 0x00000000 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0192 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01b2 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01d2 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01f2 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000008 },
-   { 0x00800001, 0x20c00229, 0x00ad0183, 0x00000000 },
-   { 0x00800001, 0x20e00229, 0x00ad01a3, 0x00000000 },
-   { 0x00800001, 0x21000229, 0x00ad01c3, 0x00000000 },
-   { 0x00800001, 0x21200229, 0x00ad01e3, 0x00000000 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0193 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01b3 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01d3 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01f3 },
-   { 0x00800040, 0x20c02d29, 0x00b100c0, 0x00010001 },
-   { 0x00800040, 0x20e02d29, 0x00b100e0, 0x00010001 },
-   { 0x00800040, 0x21002d29, 0x00b10100, 0x00010001 },
-   { 0x00800040, 0x21202d29, 0x00b10120, 0x00010001 },
-   { 0x80800008, 0x40c02d31, 0x00b100c0, 0x00010001 },
-   { 0x80800008, 0x40e02d31, 0x00b100e0, 0x00010001 },
-   { 0x80800008, 0x41002d31, 0x00b10100, 0x00010001 },
-   { 0x80800008, 0x41202d31, 0x00b10120, 0x00010001 },
-   { 0x00800001, 0x21400231, 0x00b200c0, 0x00000000 },
-   { 0x00800001, 0x21500231, 0x00b200e0, 0x00000000 },
-   { 0x00800001, 0x21600231, 0x00b20100, 0x00000000 },
-   { 0x00800001, 0x21700231, 0x00b20120, 0x00000000 },
-   { 0x00000001, 0x20480061, 0x00000000, 0x0007000f },
-   { 0x00000005, 0x20580c21, 0x00210040, 0x00000003 },
-   { 0x00800031, 0x21801d29, 0x008d0040, 0x0414a007 },
-   { 0x00000041, 0x20580c21, 0x00210058, 0x00000005 },
-   { 0x00000020, 0x34001400, 0x00001400, 0x00210058 },
-   { 0x00800001, 0x21400231, 0x00ad0180, 0x00000000 },
-   { 0x00800001, 0x21500231, 0x00ad01a0, 0x00000000 },
-   { 0x00800001, 0x21600231, 0x00ad01c0, 0x00000000 },
-   { 0x00800001, 0x21700231, 0x00ad01e0, 0x00000000 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x0000000e },
-   { 0x00800001, 0x21400231, 0x00ad0181, 0x00000000 },
-   { 0x00800001, 0x21500231, 0x00ad01a1, 0x00000000 },
-   { 0x00800001, 0x21600231, 0x00ad01c1, 0x00000000 },
-   { 0x00800001, 0x21700231, 0x00ad01e1, 0x00000000 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000009 },
-   { 0x00800001, 0x21400231, 0x00ad0182, 0x00000000 },
-   { 0x00800001, 0x21500231, 0x00ad01a2, 0x00000000 },
-   { 0x00800001, 0x21600231, 0x00ad01c2, 0x00000000 },
-   { 0x00800001, 0x21700231, 0x00ad01e2, 0x00000000 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000004 },
-   { 0x00800001, 0x21400231, 0x00ad0183, 0x00000000 },
-   { 0x00800001, 0x21500231, 0x00ad01a3, 0x00000000 },
-   { 0x00800001, 0x21600231, 0x00ad01c3, 0x00000000 },
-   { 0x00800001, 0x21700231, 0x00ad01e3, 0x00000000 },
-   { 0x00000001, 0x20480061, 0x00000000, 0x00070007 },
-   { 0x00800001, 0x20c00229, 0x00b10080, 0x00000000 },
-   { 0x00800001, 0x20e00229, 0x00b10090, 0x00000000 },
-   { 0x00800001, 0x21000229, 0x00b100a0, 0x00000000 },
-   { 0x00800001, 0x21200229, 0x00b100b0, 0x00000000 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00b10140 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00b10150 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00b10160 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00b10170 },
-   { 0x80800008, 0x40c02d31, 0x00b100c0, 0x00010001 },
-   { 0x80800008, 0x40e02d31, 0x00b100e0, 0x00010001 },
-   { 0x80800008, 0x41002d31, 0x00b10100, 0x00010001 },
-   { 0x80800008, 0x41202d31, 0x00b10120, 0x00010001 },
-   { 0x00800001, 0x20800231, 0x00b200c0, 0x00000000 },
-   { 0x00800001, 0x20900231, 0x00b200e0, 0x00000000 },
-   { 0x00800001, 0x20a00231, 0x00b20100, 0x00000000 },
-   { 0x00800001, 0x20b00231, 0x00b20120, 0x00000000 },
-   { 0x01000005, 0x20000c3c, 0x0021006c, 0x00000004 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000015 },
-   { 0x00000040, 0x20440c21, 0x00210068, 0x00000000 },
-   { 0x00800031, 0x20c01d21, 0x008d0040, 0x04110203 },
-   { 0x00000040, 0x20440c21, 0x00210044, 0x00000020 },
-   { 0x00800031, 0x20e01d21, 0x008d0040, 0x04110203 },
-   { 0x00000040, 0x20440c21, 0x00210044, 0x00000020 },
-   { 0x00800031, 0x21001d21, 0x008d0040, 0x04110203 },
-   { 0x00000040, 0x20440c21, 0x00210044, 0x00000020 },
-   { 0x00800031, 0x21201d21, 0x008d0040, 0x04110203 },
-   { 0x00000040, 0x20680c21, 0x00210068, 0x00000080 },
-   { 0x00800040, 0x20c045ad, 0x00b100c0, 0x00b10080 },
-   { 0x00800040, 0x20e045ad, 0x00b100e0, 0x00b10090 },
-   { 0x00800040, 0x210045ad, 0x00b10100, 0x00b100a0 },
-   { 0x00800040, 0x212045ad, 0x00b10120, 0x00b100b0 },
-   { 0x80800001, 0x40c001b1, 0x00b100c0, 0x00000000 },
-   { 0x80800001, 0x40e001b1, 0x00b100e0, 0x00000000 },
-   { 0x80800001, 0x410001b1, 0x00b10100, 0x00000000 },
-   { 0x80800001, 0x412001b1, 0x00b10120, 0x00000000 },
-   { 0x00800001, 0x20800231, 0x00b200c0, 0x00000000 },
-   { 0x00800001, 0x20900231, 0x00b200e0, 0x00000000 },
-   { 0x00800001, 0x20a00231, 0x00b20100, 0x00000000 },
-   { 0x00800001, 0x20b00231, 0x00b20120, 0x00000000 },
-   { 0x00802001, 0x20200022, 0x008d0080, 0x00000000 },
-   { 0x00800031, 0x24001d28, 0x008d0020, 0x05302000 },
-   { 0x00200008, 0x20200c21, 0x00450060, 0x00000001 },
-   { 0x0020000c, 0x20701ca5, 0x00450070, 0x00000001 },
-   { 0x0020000c, 0x20301ca5, 0x00450070, 0x00000001 },
-   { 0x00200040, 0x20401421, 0x00450020, 0x00450030 },
-   { 0x01000005, 0x20000c3c, 0x00210070, 0x00000001 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000088 },
-   { 0x01000005, 0x20000c3c, 0x00210074, 0x00000001 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000055 },
-   { 0x00000001, 0x20480061, 0x00000000, 0x0009000f },
-   { 0x00000005, 0x20580c21, 0x00210040, 0x00000003 },
-   { 0x00800031, 0x21801d29, 0x008d0040, 0x0415a005 },
-   { 0x00000041, 0x20580c21, 0x00210058, 0x00000011 },
-   { 0x00000020, 0x34001400, 0x00001400, 0x00210058 },
-   { 0x00800001, 0x20c00229, 0x00ad0180, 0x00000000 },
-   { 0x00800001, 0x20e00229, 0x00ad01a0, 0x00000000 },
-   { 0x00800001, 0x21000229, 0x00ad01c0, 0x00000000 },
-   { 0x00800001, 0x21200229, 0x00ad01e0, 0x00000000 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0181 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01a1 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01c1 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01e1 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0190 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01b0 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01d0 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01f0 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0191 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01b1 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01d1 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01f1 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000032 },
-   { 0x00800001, 0x20c00229, 0x00ad0181, 0x00000000 },
-   { 0x00800001, 0x20e00229, 0x00ad01a1, 0x00000000 },
-   { 0x00800001, 0x21000229, 0x00ad01c1, 0x00000000 },
-   { 0x00800001, 0x21200229, 0x00ad01e1, 0x00000000 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0181 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01a1 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01c1 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01e1 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0191 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01b1 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01d1 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01f1 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0192 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01b2 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01d2 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01f2 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000021 },
-   { 0x00800001, 0x20c00229, 0x00ad0182, 0x00000000 },
-   { 0x00800001, 0x20e00229, 0x00ad01a2, 0x00000000 },
-   { 0x00800001, 0x21000229, 0x00ad01c2, 0x00000000 },
-   { 0x00800001, 0x21200229, 0x00ad01e2, 0x00000000 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0183 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01a3 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01c3 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01e3 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0192 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01b2 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01d2 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01f2 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0193 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01b3 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01d3 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01f3 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000010 },
-   { 0x00800001, 0x20c00229, 0x00ad0183, 0x00000000 },
-   { 0x00800001, 0x20e00229, 0x00ad01a3, 0x00000000 },
-   { 0x00800001, 0x21000229, 0x00ad01c3, 0x00000000 },
-   { 0x00800001, 0x21200229, 0x00ad01e3, 0x00000000 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0184 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01a4 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01c4 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01e4 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0193 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01b3 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01d3 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01f3 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0194 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01b4 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01d4 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01f4 },
-   { 0x00800040, 0x20c02d29, 0x00b100c0, 0x00010001 },
-   { 0x00800040, 0x20e02d29, 0x00b100e0, 0x00010001 },
-   { 0x00800040, 0x21002d29, 0x00b10100, 0x00010001 },
-   { 0x00800040, 0x21202d29, 0x00b10120, 0x00010001 },
-   { 0x00800008, 0x40c02d31, 0x00b100c0, 0x00020002 },
-   { 0x00800008, 0x40e02d31, 0x00b100e0, 0x00020002 },
-   { 0x00800008, 0x41002d31, 0x00b10100, 0x00020002 },
-   { 0x00800008, 0x41202d31, 0x00b10120, 0x00020002 },
-   { 0x00800001, 0x20800231, 0x00b200c0, 0x00000000 },
-   { 0x00800001, 0x20900231, 0x00b200e0, 0x00000000 },
-   { 0x00800001, 0x20a00231, 0x00b20100, 0x00000000 },
-   { 0x00800001, 0x20b00231, 0x00b20120, 0x00000000 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000030 },
-   { 0x00000001, 0x20480061, 0x00000000, 0x0007000f },
-   { 0x00000005, 0x20580c21, 0x00210040, 0x00000003 },
-   { 0x00800031, 0x21801d29, 0x008d0040, 0x0414a005 },
-   { 0x00000041, 0x20580c21, 0x00210058, 0x00000009 },
-   { 0x00000020, 0x34001400, 0x00001400, 0x00210058 },
-   { 0x00800001, 0x20c00229, 0x00ad0180, 0x00000000 },
-   { 0x00800001, 0x20e00229, 0x00ad01a0, 0x00000000 },
-   { 0x00800001, 0x21000229, 0x00ad01c0, 0x00000000 },
-   { 0x00800001, 0x21200229, 0x00ad01e0, 0x00000000 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0181 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01a1 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01c1 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01e1 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x0000001a },
-   { 0x00800001, 0x20c00229, 0x00ad0181, 0x00000000 },
-   { 0x00800001, 0x20e00229, 0x00ad01a1, 0x00000000 },
-   { 0x00800001, 0x21000229, 0x00ad01c1, 0x00000000 },
-   { 0x00800001, 0x21200229, 0x00ad01e1, 0x00000000 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0182 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01a2 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01c2 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01e2 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000011 },
-   { 0x00800001, 0x20c00229, 0x00ad0182, 0x00000000 },
-   { 0x00800001, 0x20e00229, 0x00ad01a2, 0x00000000 },
-   { 0x00800001, 0x21000229, 0x00ad01c2, 0x00000000 },
-   { 0x00800001, 0x21200229, 0x00ad01e2, 0x00000000 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0183 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01a3 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01c3 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01e3 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000008 },
-   { 0x00800001, 0x20c00229, 0x00ad0183, 0x00000000 },
-   { 0x00800001, 0x20e00229, 0x00ad01a3, 0x00000000 },
-   { 0x00800001, 0x21000229, 0x00ad01c3, 0x00000000 },
-   { 0x00800001, 0x21200229, 0x00ad01e3, 0x00000000 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0184 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01a4 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01c4 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01e4 },
-   { 0x00800008, 0x20c02d29, 0x00b100c0, 0x00010001 },
-   { 0x00800008, 0x20e02d29, 0x00b100e0, 0x00010001 },
-   { 0x00800008, 0x21002d29, 0x00b10100, 0x00010001 },
-   { 0x00800008, 0x21202d29, 0x00b10120, 0x00010001 },
-   { 0x00800001, 0x20800231, 0x00b200c0, 0x00000000 },
-   { 0x00800001, 0x20900231, 0x00b200e0, 0x00000000 },
-   { 0x00800001, 0x20a00231, 0x00b20100, 0x00000000 },
-   { 0x00800001, 0x20b00231, 0x00b20120, 0x00000000 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x0000004e },
-   { 0x01000005, 0x20000c3c, 0x00210070, 0x00000000 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000034 },
-   { 0x00000001, 0x20480061, 0x00000000, 0x0009000f },
-   { 0x00000005, 0x20580c21, 0x00210040, 0x00000003 },
-   { 0x00800031, 0x21801d29, 0x008d0040, 0x0415a005 },
-   { 0x00000041, 0x20580c21, 0x00210058, 0x00000009 },
-   { 0x00000020, 0x34001400, 0x00001400, 0x00210058 },
-   { 0x00800001, 0x20c00229, 0x00ad0180, 0x00000000 },
-   { 0x00800001, 0x20e00229, 0x00ad01a0, 0x00000000 },
-   { 0x00800001, 0x21000229, 0x00ad01c0, 0x00000000 },
-   { 0x00800001, 0x21200229, 0x00ad01e0, 0x00000000 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0190 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01b0 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01d0 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01f0 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x0000001a },
-   { 0x00800001, 0x20c00229, 0x00ad0181, 0x00000000 },
-   { 0x00800001, 0x20e00229, 0x00ad01a1, 0x00000000 },
-   { 0x00800001, 0x21000229, 0x00ad01c1, 0x00000000 },
-   { 0x00800001, 0x21200229, 0x00ad01e1, 0x00000000 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0191 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01b1 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01d1 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01f1 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000011 },
-   { 0x00800001, 0x20c00229, 0x00ad0182, 0x00000000 },
-   { 0x00800001, 0x20e00229, 0x00ad01a2, 0x00000000 },
-   { 0x00800001, 0x21000229, 0x00ad01c2, 0x00000000 },
-   { 0x00800001, 0x21200229, 0x00ad01e2, 0x00000000 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0192 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01b2 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01d2 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01f2 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000008 },
-   { 0x00800001, 0x20c00229, 0x00ad0183, 0x00000000 },
-   { 0x00800001, 0x20e00229, 0x00ad01a3, 0x00000000 },
-   { 0x00800001, 0x21000229, 0x00ad01c3, 0x00000000 },
-   { 0x00800001, 0x21200229, 0x00ad01e3, 0x00000000 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0193 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01b3 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01d3 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01f3 },
-   { 0x00800040, 0x20c02d29, 0x00b100c0, 0x00010001 },
-   { 0x00800040, 0x20e02d29, 0x00b100e0, 0x00010001 },
-   { 0x00800040, 0x21002d29, 0x00b10100, 0x00010001 },
-   { 0x00800040, 0x21202d29, 0x00b10120, 0x00010001 },
-   { 0x80800008, 0x40c02d31, 0x00b100c0, 0x00010001 },
-   { 0x80800008, 0x40e02d31, 0x00b100e0, 0x00010001 },
-   { 0x80800008, 0x41002d31, 0x00b10100, 0x00010001 },
-   { 0x80800008, 0x41202d31, 0x00b10120, 0x00010001 },
-   { 0x00800001, 0x20800231, 0x00b200c0, 0x00000000 },
-   { 0x00800001, 0x20900231, 0x00b200e0, 0x00000000 },
-   { 0x00800001, 0x20a00231, 0x00b20100, 0x00000000 },
-   { 0x00800001, 0x20b00231, 0x00b20120, 0x00000000 },
-   { 0x00000001, 0x20480061, 0x00000000, 0x0007000f },
-   { 0x00000005, 0x20580c21, 0x00210040, 0x00000003 },
-   { 0x00800031, 0x21801d29, 0x008d0040, 0x0414a005 },
-   { 0x00000041, 0x20580c21, 0x00210058, 0x00000005 },
-   { 0x00000020, 0x34001400, 0x00001400, 0x00210058 },
-   { 0x00800001, 0x20800231, 0x00ad0180, 0x00000000 },
-   { 0x00800001, 0x20900231, 0x00ad01a0, 0x00000000 },
-   { 0x00800001, 0x20a00231, 0x00ad01c0, 0x00000000 },
-   { 0x00800001, 0x20b00231, 0x00ad01e0, 0x00000000 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x0000000e },
-   { 0x00800001, 0x20800231, 0x00ad0181, 0x00000000 },
-   { 0x00800001, 0x20900231, 0x00ad01a1, 0x00000000 },
-   { 0x00800001, 0x20a00231, 0x00ad01c1, 0x00000000 },
-   { 0x00800001, 0x20b00231, 0x00ad01e1, 0x00000000 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000009 },
-   { 0x00800001, 0x20800231, 0x00ad0182, 0x00000000 },
-   { 0x00800001, 0x20900231, 0x00ad01a2, 0x00000000 },
-   { 0x00800001, 0x20a00231, 0x00ad01c2, 0x00000000 },
-   { 0x00800001, 0x20b00231, 0x00ad01e2, 0x00000000 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000004 },
-   { 0x00800001, 0x20800231, 0x00ad0183, 0x00000000 },
-   { 0x00800001, 0x20900231, 0x00ad01a3, 0x00000000 },
-   { 0x00800001, 0x20a00231, 0x00ad01c3, 0x00000000 },
-   { 0x00800001, 0x20b00231, 0x00ad01e3, 0x00000000 },
-   { 0x00000001, 0x20480061, 0x00000000, 0x00070007 },
-   { 0x0020000c, 0x20781ca5, 0x00450078, 0x00000001 },
-   { 0x0020000c, 0x20301ca5, 0x00450078, 0x00000001 },
-   { 0x00200040, 0x20401421, 0x00450020, 0x00450030 },
-   { 0x01000005, 0x20000c3c, 0x00210078, 0x00000001 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000088 },
-   { 0x01000005, 0x20000c3c, 0x0021007c, 0x00000001 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000055 },
-   { 0x00000001, 0x20480061, 0x00000000, 0x0009000f },
-   { 0x00000005, 0x20580c21, 0x00210040, 0x00000003 },
-   { 0x00800031, 0x21801d29, 0x008d0040, 0x0415a008 },
-   { 0x00000041, 0x20580c21, 0x00210058, 0x00000011 },
-   { 0x00000020, 0x34001400, 0x00001400, 0x00210058 },
-   { 0x00800001, 0x20c00229, 0x00ad0180, 0x00000000 },
-   { 0x00800001, 0x20e00229, 0x00ad01a0, 0x00000000 },
-   { 0x00800001, 0x21000229, 0x00ad01c0, 0x00000000 },
-   { 0x00800001, 0x21200229, 0x00ad01e0, 0x00000000 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0181 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01a1 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01c1 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01e1 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0190 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01b0 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01d0 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01f0 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0191 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01b1 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01d1 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01f1 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000032 },
-   { 0x00800001, 0x20c00229, 0x00ad0181, 0x00000000 },
-   { 0x00800001, 0x20e00229, 0x00ad01a1, 0x00000000 },
-   { 0x00800001, 0x21000229, 0x00ad01c1, 0x00000000 },
-   { 0x00800001, 0x21200229, 0x00ad01e1, 0x00000000 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0181 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01a1 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01c1 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01e1 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0191 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01b1 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01d1 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01f1 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0192 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01b2 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01d2 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01f2 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000021 },
-   { 0x00800001, 0x20c00229, 0x00ad0182, 0x00000000 },
-   { 0x00800001, 0x20e00229, 0x00ad01a2, 0x00000000 },
-   { 0x00800001, 0x21000229, 0x00ad01c2, 0x00000000 },
-   { 0x00800001, 0x21200229, 0x00ad01e2, 0x00000000 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0183 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01a3 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01c3 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01e3 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0192 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01b2 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01d2 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01f2 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0193 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01b3 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01d3 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01f3 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000010 },
-   { 0x00800001, 0x20c00229, 0x00ad0183, 0x00000000 },
-   { 0x00800001, 0x20e00229, 0x00ad01a3, 0x00000000 },
-   { 0x00800001, 0x21000229, 0x00ad01c3, 0x00000000 },
-   { 0x00800001, 0x21200229, 0x00ad01e3, 0x00000000 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0184 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01a4 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01c4 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01e4 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0193 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01b3 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01d3 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01f3 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0194 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01b4 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01d4 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01f4 },
-   { 0x00800040, 0x20c02d29, 0x00b100c0, 0x00010001 },
-   { 0x00800040, 0x20e02d29, 0x00b100e0, 0x00010001 },
-   { 0x00800040, 0x21002d29, 0x00b10100, 0x00010001 },
-   { 0x00800040, 0x21202d29, 0x00b10120, 0x00010001 },
-   { 0x00800008, 0x40c02d31, 0x00b100c0, 0x00020002 },
-   { 0x00800008, 0x40e02d31, 0x00b100e0, 0x00020002 },
-   { 0x00800008, 0x41002d31, 0x00b10100, 0x00020002 },
-   { 0x00800008, 0x41202d31, 0x00b10120, 0x00020002 },
-   { 0x00800001, 0x21400231, 0x00b200c0, 0x00000000 },
-   { 0x00800001, 0x21500231, 0x00b200e0, 0x00000000 },
-   { 0x00800001, 0x21600231, 0x00b20100, 0x00000000 },
-   { 0x00800001, 0x21700231, 0x00b20120, 0x00000000 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000030 },
-   { 0x00000001, 0x20480061, 0x00000000, 0x0007000f },
-   { 0x00000005, 0x20580c21, 0x00210040, 0x00000003 },
-   { 0x00800031, 0x21801d29, 0x008d0040, 0x0414a008 },
-   { 0x00000041, 0x20580c21, 0x00210058, 0x00000009 },
-   { 0x00000020, 0x34001400, 0x00001400, 0x00210058 },
-   { 0x00800001, 0x20c00229, 0x00ad0180, 0x00000000 },
-   { 0x00800001, 0x20e00229, 0x00ad01a0, 0x00000000 },
-   { 0x00800001, 0x21000229, 0x00ad01c0, 0x00000000 },
-   { 0x00800001, 0x21200229, 0x00ad01e0, 0x00000000 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0181 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01a1 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01c1 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01e1 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x0000001a },
-   { 0x00800001, 0x20c00229, 0x00ad0181, 0x00000000 },
-   { 0x00800001, 0x20e00229, 0x00ad01a1, 0x00000000 },
-   { 0x00800001, 0x21000229, 0x00ad01c1, 0x00000000 },
-   { 0x00800001, 0x21200229, 0x00ad01e1, 0x00000000 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0182 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01a2 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01c2 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01e2 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000011 },
-   { 0x00800001, 0x20c00229, 0x00ad0182, 0x00000000 },
-   { 0x00800001, 0x20e00229, 0x00ad01a2, 0x00000000 },
-   { 0x00800001, 0x21000229, 0x00ad01c2, 0x00000000 },
-   { 0x00800001, 0x21200229, 0x00ad01e2, 0x00000000 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0183 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01a3 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01c3 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01e3 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000008 },
-   { 0x00800001, 0x20c00229, 0x00ad0183, 0x00000000 },
-   { 0x00800001, 0x20e00229, 0x00ad01a3, 0x00000000 },
-   { 0x00800001, 0x21000229, 0x00ad01c3, 0x00000000 },
-   { 0x00800001, 0x21200229, 0x00ad01e3, 0x00000000 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0184 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01a4 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01c4 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01e4 },
-   { 0x00800008, 0x20c02d29, 0x00b100c0, 0x00010001 },
-   { 0x00800008, 0x20e02d29, 0x00b100e0, 0x00010001 },
-   { 0x00800008, 0x21002d29, 0x00b10100, 0x00010001 },
-   { 0x00800008, 0x21202d29, 0x00b10120, 0x00010001 },
-   { 0x00800001, 0x21400231, 0x00b200c0, 0x00000000 },
-   { 0x00800001, 0x21500231, 0x00b200e0, 0x00000000 },
-   { 0x00800001, 0x21600231, 0x00b20100, 0x00000000 },
-   { 0x00800001, 0x21700231, 0x00b20120, 0x00000000 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x0000004e },
-   { 0x01000005, 0x20000c3c, 0x00210078, 0x00000000 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000034 },
-   { 0x00000001, 0x20480061, 0x00000000, 0x0009000f },
-   { 0x00000005, 0x20580c21, 0x00210040, 0x00000003 },
-   { 0x00800031, 0x21801d29, 0x008d0040, 0x0415a008 },
-   { 0x00000041, 0x20580c21, 0x00210058, 0x00000009 },
-   { 0x00000020, 0x34001400, 0x00001400, 0x00210058 },
-   { 0x00800001, 0x20c00229, 0x00ad0180, 0x00000000 },
-   { 0x00800001, 0x20e00229, 0x00ad01a0, 0x00000000 },
-   { 0x00800001, 0x21000229, 0x00ad01c0, 0x00000000 },
-   { 0x00800001, 0x21200229, 0x00ad01e0, 0x00000000 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0190 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01b0 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01d0 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01f0 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x0000001a },
-   { 0x00800001, 0x20c00229, 0x00ad0181, 0x00000000 },
-   { 0x00800001, 0x20e00229, 0x00ad01a1, 0x00000000 },
-   { 0x00800001, 0x21000229, 0x00ad01c1, 0x00000000 },
-   { 0x00800001, 0x21200229, 0x00ad01e1, 0x00000000 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0191 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01b1 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01d1 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01f1 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000011 },
-   { 0x00800001, 0x20c00229, 0x00ad0182, 0x00000000 },
-   { 0x00800001, 0x20e00229, 0x00ad01a2, 0x00000000 },
-   { 0x00800001, 0x21000229, 0x00ad01c2, 0x00000000 },
-   { 0x00800001, 0x21200229, 0x00ad01e2, 0x00000000 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0192 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01b2 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01d2 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01f2 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000008 },
-   { 0x00800001, 0x20c00229, 0x00ad0183, 0x00000000 },
-   { 0x00800001, 0x20e00229, 0x00ad01a3, 0x00000000 },
-   { 0x00800001, 0x21000229, 0x00ad01c3, 0x00000000 },
-   { 0x00800001, 0x21200229, 0x00ad01e3, 0x00000000 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0193 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01b3 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01d3 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01f3 },
-   { 0x00800040, 0x20c02d29, 0x00b100c0, 0x00010001 },
-   { 0x00800040, 0x20e02d29, 0x00b100e0, 0x00010001 },
-   { 0x00800040, 0x21002d29, 0x00b10100, 0x00010001 },
-   { 0x00800040, 0x21202d29, 0x00b10120, 0x00010001 },
-   { 0x80800008, 0x40c02d31, 0x00b100c0, 0x00010001 },
-   { 0x80800008, 0x40e02d31, 0x00b100e0, 0x00010001 },
-   { 0x80800008, 0x41002d31, 0x00b10100, 0x00010001 },
-   { 0x80800008, 0x41202d31, 0x00b10120, 0x00010001 },
-   { 0x00800001, 0x21400231, 0x00b200c0, 0x00000000 },
-   { 0x00800001, 0x21500231, 0x00b200e0, 0x00000000 },
-   { 0x00800001, 0x21600231, 0x00b20100, 0x00000000 },
-   { 0x00800001, 0x21700231, 0x00b20120, 0x00000000 },
-   { 0x00000001, 0x20480061, 0x00000000, 0x0007000f },
-   { 0x00000005, 0x20580c21, 0x00210040, 0x00000003 },
-   { 0x00800031, 0x21801d29, 0x008d0040, 0x0414a008 },
-   { 0x00000041, 0x20580c21, 0x00210058, 0x00000005 },
-   { 0x00000020, 0x34001400, 0x00001400, 0x00210058 },
-   { 0x00800001, 0x21400231, 0x00ad0180, 0x00000000 },
-   { 0x00800001, 0x21500231, 0x00ad01a0, 0x00000000 },
-   { 0x00800001, 0x21600231, 0x00ad01c0, 0x00000000 },
-   { 0x00800001, 0x21700231, 0x00ad01e0, 0x00000000 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x0000000e },
-   { 0x00800001, 0x21400231, 0x00ad0181, 0x00000000 },
-   { 0x00800001, 0x21500231, 0x00ad01a1, 0x00000000 },
-   { 0x00800001, 0x21600231, 0x00ad01c1, 0x00000000 },
-   { 0x00800001, 0x21700231, 0x00ad01e1, 0x00000000 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000009 },
-   { 0x00800001, 0x21400231, 0x00ad0182, 0x00000000 },
-   { 0x00800001, 0x21500231, 0x00ad01a2, 0x00000000 },
-   { 0x00800001, 0x21600231, 0x00ad01c2, 0x00000000 },
-   { 0x00800001, 0x21700231, 0x00ad01e2, 0x00000000 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000004 },
-   { 0x00800001, 0x21400231, 0x00ad0183, 0x00000000 },
-   { 0x00800001, 0x21500231, 0x00ad01a3, 0x00000000 },
-   { 0x00800001, 0x21600231, 0x00ad01c3, 0x00000000 },
-   { 0x00800001, 0x21700231, 0x00ad01e3, 0x00000000 },
-   { 0x00000001, 0x20480061, 0x00000000, 0x00070007 },
-   { 0x00800001, 0x20c00229, 0x00b10080, 0x00000000 },
-   { 0x00800001, 0x20e00229, 0x00b10090, 0x00000000 },
-   { 0x00800001, 0x21000229, 0x00b100a0, 0x00000000 },
-   { 0x00800001, 0x21200229, 0x00b100b0, 0x00000000 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00b10140 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00b10150 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00b10160 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00b10170 },
-   { 0x80800008, 0x40c02d31, 0x00b100c0, 0x00010001 },
-   { 0x80800008, 0x40e02d31, 0x00b100e0, 0x00010001 },
-   { 0x80800008, 0x41002d31, 0x00b10100, 0x00010001 },
-   { 0x80800008, 0x41202d31, 0x00b10120, 0x00010001 },
-   { 0x00800001, 0x20800231, 0x00b200c0, 0x00000000 },
-   { 0x00800001, 0x20900231, 0x00b200e0, 0x00000000 },
-   { 0x00800001, 0x20a00231, 0x00b20100, 0x00000000 },
-   { 0x00800001, 0x20b00231, 0x00b20120, 0x00000000 },
-   { 0x01000005, 0x20000c3c, 0x0021006c, 0x00000002 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000015 },
-   { 0x00000040, 0x20440c21, 0x00210068, 0x00000000 },
-   { 0x00800031, 0x20c01d21, 0x008d0040, 0x04110203 },
-   { 0x00000040, 0x20440c21, 0x00210044, 0x00000020 },
-   { 0x00800031, 0x20e01d21, 0x008d0040, 0x04110203 },
-   { 0x00000040, 0x20440c21, 0x00210044, 0x00000020 },
-   { 0x00800031, 0x21001d21, 0x008d0040, 0x04110203 },
-   { 0x00000040, 0x20440c21, 0x00210044, 0x00000020 },
-   { 0x00800031, 0x21201d21, 0x008d0040, 0x04110203 },
-   { 0x00000040, 0x20680c21, 0x00210068, 0x00000080 },
-   { 0x00800040, 0x20c045ad, 0x00b100c0, 0x00b10080 },
-   { 0x00800040, 0x20e045ad, 0x00b100e0, 0x00b10090 },
-   { 0x00800040, 0x210045ad, 0x00b10100, 0x00b100a0 },
-   { 0x00800040, 0x212045ad, 0x00b10120, 0x00b100b0 },
-   { 0x80800001, 0x40c001b1, 0x00b100c0, 0x00000000 },
-   { 0x80800001, 0x40e001b1, 0x00b100e0, 0x00000000 },
-   { 0x80800001, 0x410001b1, 0x00b10100, 0x00000000 },
-   { 0x80800001, 0x412001b1, 0x00b10120, 0x00000000 },
-   { 0x00800001, 0x20800231, 0x00b200c0, 0x00000000 },
-   { 0x00800001, 0x20900231, 0x00b200e0, 0x00000000 },
-   { 0x00800001, 0x20a00231, 0x00b20100, 0x00000000 },
-   { 0x00800001, 0x20b00231, 0x00b20120, 0x00000000 },
-   { 0x00802001, 0x20200022, 0x008d0080, 0x00000000 },
-   { 0x00800031, 0x24001d28, 0x008d0020, 0x05302001 },
-   { 0x0020000c, 0x20301ca5, 0x00450070, 0x00000001 },
-   { 0x00200040, 0x20401421, 0x00450020, 0x00450030 },
-   { 0x01000005, 0x20000c3c, 0x00210070, 0x00000001 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000088 },
-   { 0x01000005, 0x20000c3c, 0x00210074, 0x00000001 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000055 },
-   { 0x00000001, 0x20480061, 0x00000000, 0x0009000f },
-   { 0x00000005, 0x20580c21, 0x00210040, 0x00000003 },
-   { 0x00800031, 0x21801d29, 0x008d0040, 0x0415a006 },
-   { 0x00000041, 0x20580c21, 0x00210058, 0x00000011 },
-   { 0x00000020, 0x34001400, 0x00001400, 0x00210058 },
-   { 0x00800001, 0x20c00229, 0x00ad0180, 0x00000000 },
-   { 0x00800001, 0x20e00229, 0x00ad01a0, 0x00000000 },
-   { 0x00800001, 0x21000229, 0x00ad01c0, 0x00000000 },
-   { 0x00800001, 0x21200229, 0x00ad01e0, 0x00000000 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0181 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01a1 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01c1 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01e1 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0190 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01b0 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01d0 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01f0 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0191 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01b1 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01d1 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01f1 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000032 },
-   { 0x00800001, 0x20c00229, 0x00ad0181, 0x00000000 },
-   { 0x00800001, 0x20e00229, 0x00ad01a1, 0x00000000 },
-   { 0x00800001, 0x21000229, 0x00ad01c1, 0x00000000 },
-   { 0x00800001, 0x21200229, 0x00ad01e1, 0x00000000 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0181 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01a1 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01c1 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01e1 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0191 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01b1 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01d1 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01f1 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0192 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01b2 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01d2 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01f2 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000021 },
-   { 0x00800001, 0x20c00229, 0x00ad0182, 0x00000000 },
-   { 0x00800001, 0x20e00229, 0x00ad01a2, 0x00000000 },
-   { 0x00800001, 0x21000229, 0x00ad01c2, 0x00000000 },
-   { 0x00800001, 0x21200229, 0x00ad01e2, 0x00000000 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0183 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01a3 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01c3 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01e3 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0192 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01b2 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01d2 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01f2 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0193 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01b3 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01d3 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01f3 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000010 },
-   { 0x00800001, 0x20c00229, 0x00ad0183, 0x00000000 },
-   { 0x00800001, 0x20e00229, 0x00ad01a3, 0x00000000 },
-   { 0x00800001, 0x21000229, 0x00ad01c3, 0x00000000 },
-   { 0x00800001, 0x21200229, 0x00ad01e3, 0x00000000 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0184 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01a4 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01c4 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01e4 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0193 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01b3 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01d3 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01f3 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0194 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01b4 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01d4 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01f4 },
-   { 0x00800040, 0x20c02d29, 0x00b100c0, 0x00010001 },
-   { 0x00800040, 0x20e02d29, 0x00b100e0, 0x00010001 },
-   { 0x00800040, 0x21002d29, 0x00b10100, 0x00010001 },
-   { 0x00800040, 0x21202d29, 0x00b10120, 0x00010001 },
-   { 0x00800008, 0x40c02d31, 0x00b100c0, 0x00020002 },
-   { 0x00800008, 0x40e02d31, 0x00b100e0, 0x00020002 },
-   { 0x00800008, 0x41002d31, 0x00b10100, 0x00020002 },
-   { 0x00800008, 0x41202d31, 0x00b10120, 0x00020002 },
-   { 0x00800001, 0x20800231, 0x00b200c0, 0x00000000 },
-   { 0x00800001, 0x20900231, 0x00b200e0, 0x00000000 },
-   { 0x00800001, 0x20a00231, 0x00b20100, 0x00000000 },
-   { 0x00800001, 0x20b00231, 0x00b20120, 0x00000000 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000030 },
-   { 0x00000001, 0x20480061, 0x00000000, 0x0007000f },
-   { 0x00000005, 0x20580c21, 0x00210040, 0x00000003 },
-   { 0x00800031, 0x21801d29, 0x008d0040, 0x0414a006 },
-   { 0x00000041, 0x20580c21, 0x00210058, 0x00000009 },
-   { 0x00000020, 0x34001400, 0x00001400, 0x00210058 },
-   { 0x00800001, 0x20c00229, 0x00ad0180, 0x00000000 },
-   { 0x00800001, 0x20e00229, 0x00ad01a0, 0x00000000 },
-   { 0x00800001, 0x21000229, 0x00ad01c0, 0x00000000 },
-   { 0x00800001, 0x21200229, 0x00ad01e0, 0x00000000 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0181 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01a1 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01c1 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01e1 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x0000001a },
-   { 0x00800001, 0x20c00229, 0x00ad0181, 0x00000000 },
-   { 0x00800001, 0x20e00229, 0x00ad01a1, 0x00000000 },
-   { 0x00800001, 0x21000229, 0x00ad01c1, 0x00000000 },
-   { 0x00800001, 0x21200229, 0x00ad01e1, 0x00000000 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0182 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01a2 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01c2 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01e2 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000011 },
-   { 0x00800001, 0x20c00229, 0x00ad0182, 0x00000000 },
-   { 0x00800001, 0x20e00229, 0x00ad01a2, 0x00000000 },
-   { 0x00800001, 0x21000229, 0x00ad01c2, 0x00000000 },
-   { 0x00800001, 0x21200229, 0x00ad01e2, 0x00000000 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0183 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01a3 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01c3 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01e3 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000008 },
-   { 0x00800001, 0x20c00229, 0x00ad0183, 0x00000000 },
-   { 0x00800001, 0x20e00229, 0x00ad01a3, 0x00000000 },
-   { 0x00800001, 0x21000229, 0x00ad01c3, 0x00000000 },
-   { 0x00800001, 0x21200229, 0x00ad01e3, 0x00000000 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0184 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01a4 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01c4 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01e4 },
-   { 0x00800008, 0x20c02d29, 0x00b100c0, 0x00010001 },
-   { 0x00800008, 0x20e02d29, 0x00b100e0, 0x00010001 },
-   { 0x00800008, 0x21002d29, 0x00b10100, 0x00010001 },
-   { 0x00800008, 0x21202d29, 0x00b10120, 0x00010001 },
-   { 0x00800001, 0x20800231, 0x00b200c0, 0x00000000 },
-   { 0x00800001, 0x20900231, 0x00b200e0, 0x00000000 },
-   { 0x00800001, 0x20a00231, 0x00b20100, 0x00000000 },
-   { 0x00800001, 0x20b00231, 0x00b20120, 0x00000000 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x0000004e },
-   { 0x01000005, 0x20000c3c, 0x00210070, 0x00000000 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000034 },
-   { 0x00000001, 0x20480061, 0x00000000, 0x0009000f },
-   { 0x00000005, 0x20580c21, 0x00210040, 0x00000003 },
-   { 0x00800031, 0x21801d29, 0x008d0040, 0x0415a006 },
-   { 0x00000041, 0x20580c21, 0x00210058, 0x00000009 },
-   { 0x00000020, 0x34001400, 0x00001400, 0x00210058 },
-   { 0x00800001, 0x20c00229, 0x00ad0180, 0x00000000 },
-   { 0x00800001, 0x20e00229, 0x00ad01a0, 0x00000000 },
-   { 0x00800001, 0x21000229, 0x00ad01c0, 0x00000000 },
-   { 0x00800001, 0x21200229, 0x00ad01e0, 0x00000000 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0190 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01b0 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01d0 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01f0 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x0000001a },
-   { 0x00800001, 0x20c00229, 0x00ad0181, 0x00000000 },
-   { 0x00800001, 0x20e00229, 0x00ad01a1, 0x00000000 },
-   { 0x00800001, 0x21000229, 0x00ad01c1, 0x00000000 },
-   { 0x00800001, 0x21200229, 0x00ad01e1, 0x00000000 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0191 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01b1 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01d1 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01f1 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000011 },
-   { 0x00800001, 0x20c00229, 0x00ad0182, 0x00000000 },
-   { 0x00800001, 0x20e00229, 0x00ad01a2, 0x00000000 },
-   { 0x00800001, 0x21000229, 0x00ad01c2, 0x00000000 },
-   { 0x00800001, 0x21200229, 0x00ad01e2, 0x00000000 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0192 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01b2 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01d2 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01f2 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000008 },
-   { 0x00800001, 0x20c00229, 0x00ad0183, 0x00000000 },
-   { 0x00800001, 0x20e00229, 0x00ad01a3, 0x00000000 },
-   { 0x00800001, 0x21000229, 0x00ad01c3, 0x00000000 },
-   { 0x00800001, 0x21200229, 0x00ad01e3, 0x00000000 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0193 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01b3 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01d3 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01f3 },
-   { 0x00800040, 0x20c02d29, 0x00b100c0, 0x00010001 },
-   { 0x00800040, 0x20e02d29, 0x00b100e0, 0x00010001 },
-   { 0x00800040, 0x21002d29, 0x00b10100, 0x00010001 },
-   { 0x00800040, 0x21202d29, 0x00b10120, 0x00010001 },
-   { 0x80800008, 0x40c02d31, 0x00b100c0, 0x00010001 },
-   { 0x80800008, 0x40e02d31, 0x00b100e0, 0x00010001 },
-   { 0x80800008, 0x41002d31, 0x00b10100, 0x00010001 },
-   { 0x80800008, 0x41202d31, 0x00b10120, 0x00010001 },
-   { 0x00800001, 0x20800231, 0x00b200c0, 0x00000000 },
-   { 0x00800001, 0x20900231, 0x00b200e0, 0x00000000 },
-   { 0x00800001, 0x20a00231, 0x00b20100, 0x00000000 },
-   { 0x00800001, 0x20b00231, 0x00b20120, 0x00000000 },
-   { 0x00000001, 0x20480061, 0x00000000, 0x0007000f },
-   { 0x00000005, 0x20580c21, 0x00210040, 0x00000003 },
-   { 0x00800031, 0x21801d29, 0x008d0040, 0x0414a006 },
-   { 0x00000041, 0x20580c21, 0x00210058, 0x00000005 },
-   { 0x00000020, 0x34001400, 0x00001400, 0x00210058 },
-   { 0x00800001, 0x20800231, 0x00ad0180, 0x00000000 },
-   { 0x00800001, 0x20900231, 0x00ad01a0, 0x00000000 },
-   { 0x00800001, 0x20a00231, 0x00ad01c0, 0x00000000 },
-   { 0x00800001, 0x20b00231, 0x00ad01e0, 0x00000000 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x0000000e },
-   { 0x00800001, 0x20800231, 0x00ad0181, 0x00000000 },
-   { 0x00800001, 0x20900231, 0x00ad01a1, 0x00000000 },
-   { 0x00800001, 0x20a00231, 0x00ad01c1, 0x00000000 },
-   { 0x00800001, 0x20b00231, 0x00ad01e1, 0x00000000 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000009 },
-   { 0x00800001, 0x20800231, 0x00ad0182, 0x00000000 },
-   { 0x00800001, 0x20900231, 0x00ad01a2, 0x00000000 },
-   { 0x00800001, 0x20a00231, 0x00ad01c2, 0x00000000 },
-   { 0x00800001, 0x20b00231, 0x00ad01e2, 0x00000000 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000004 },
-   { 0x00800001, 0x20800231, 0x00ad0183, 0x00000000 },
-   { 0x00800001, 0x20900231, 0x00ad01a3, 0x00000000 },
-   { 0x00800001, 0x20a00231, 0x00ad01c3, 0x00000000 },
-   { 0x00800001, 0x20b00231, 0x00ad01e3, 0x00000000 },
-   { 0x00000001, 0x20480061, 0x00000000, 0x00070007 },
-   { 0x0020000c, 0x20301ca5, 0x00450078, 0x00000001 },
-   { 0x00200040, 0x20401421, 0x00450020, 0x00450030 },
-   { 0x01000005, 0x20000c3c, 0x00210078, 0x00000001 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000088 },
-   { 0x01000005, 0x20000c3c, 0x0021007c, 0x00000001 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000055 },
-   { 0x00000001, 0x20480061, 0x00000000, 0x0009000f },
-   { 0x00000005, 0x20580c21, 0x00210040, 0x00000003 },
-   { 0x00800031, 0x21801d29, 0x008d0040, 0x0415a009 },
-   { 0x00000041, 0x20580c21, 0x00210058, 0x00000011 },
-   { 0x00000020, 0x34001400, 0x00001400, 0x00210058 },
-   { 0x00800001, 0x20c00229, 0x00ad0180, 0x00000000 },
-   { 0x00800001, 0x20e00229, 0x00ad01a0, 0x00000000 },
-   { 0x00800001, 0x21000229, 0x00ad01c0, 0x00000000 },
-   { 0x00800001, 0x21200229, 0x00ad01e0, 0x00000000 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0181 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01a1 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01c1 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01e1 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0190 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01b0 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01d0 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01f0 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0191 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01b1 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01d1 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01f1 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000032 },
-   { 0x00800001, 0x20c00229, 0x00ad0181, 0x00000000 },
-   { 0x00800001, 0x20e00229, 0x00ad01a1, 0x00000000 },
-   { 0x00800001, 0x21000229, 0x00ad01c1, 0x00000000 },
-   { 0x00800001, 0x21200229, 0x00ad01e1, 0x00000000 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0181 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01a1 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01c1 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01e1 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0191 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01b1 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01d1 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01f1 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0192 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01b2 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01d2 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01f2 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000021 },
-   { 0x00800001, 0x20c00229, 0x00ad0182, 0x00000000 },
-   { 0x00800001, 0x20e00229, 0x00ad01a2, 0x00000000 },
-   { 0x00800001, 0x21000229, 0x00ad01c2, 0x00000000 },
-   { 0x00800001, 0x21200229, 0x00ad01e2, 0x00000000 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0183 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01a3 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01c3 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01e3 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0192 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01b2 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01d2 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01f2 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0193 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01b3 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01d3 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01f3 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000010 },
-   { 0x00800001, 0x20c00229, 0x00ad0183, 0x00000000 },
-   { 0x00800001, 0x20e00229, 0x00ad01a3, 0x00000000 },
-   { 0x00800001, 0x21000229, 0x00ad01c3, 0x00000000 },
-   { 0x00800001, 0x21200229, 0x00ad01e3, 0x00000000 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0184 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01a4 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01c4 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01e4 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0193 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01b3 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01d3 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01f3 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0194 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01b4 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01d4 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01f4 },
-   { 0x00800040, 0x20c02d29, 0x00b100c0, 0x00010001 },
-   { 0x00800040, 0x20e02d29, 0x00b100e0, 0x00010001 },
-   { 0x00800040, 0x21002d29, 0x00b10100, 0x00010001 },
-   { 0x00800040, 0x21202d29, 0x00b10120, 0x00010001 },
-   { 0x00800008, 0x40c02d31, 0x00b100c0, 0x00020002 },
-   { 0x00800008, 0x40e02d31, 0x00b100e0, 0x00020002 },
-   { 0x00800008, 0x41002d31, 0x00b10100, 0x00020002 },
-   { 0x00800008, 0x41202d31, 0x00b10120, 0x00020002 },
-   { 0x00800001, 0x21400231, 0x00b200c0, 0x00000000 },
-   { 0x00800001, 0x21500231, 0x00b200e0, 0x00000000 },
-   { 0x00800001, 0x21600231, 0x00b20100, 0x00000000 },
-   { 0x00800001, 0x21700231, 0x00b20120, 0x00000000 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000030 },
-   { 0x00000001, 0x20480061, 0x00000000, 0x0007000f },
-   { 0x00000005, 0x20580c21, 0x00210040, 0x00000003 },
-   { 0x00800031, 0x21801d29, 0x008d0040, 0x0414a009 },
-   { 0x00000041, 0x20580c21, 0x00210058, 0x00000009 },
-   { 0x00000020, 0x34001400, 0x00001400, 0x00210058 },
-   { 0x00800001, 0x20c00229, 0x00ad0180, 0x00000000 },
-   { 0x00800001, 0x20e00229, 0x00ad01a0, 0x00000000 },
-   { 0x00800001, 0x21000229, 0x00ad01c0, 0x00000000 },
-   { 0x00800001, 0x21200229, 0x00ad01e0, 0x00000000 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0181 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01a1 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01c1 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01e1 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x0000001a },
-   { 0x00800001, 0x20c00229, 0x00ad0181, 0x00000000 },
-   { 0x00800001, 0x20e00229, 0x00ad01a1, 0x00000000 },
-   { 0x00800001, 0x21000229, 0x00ad01c1, 0x00000000 },
-   { 0x00800001, 0x21200229, 0x00ad01e1, 0x00000000 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0182 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01a2 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01c2 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01e2 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000011 },
-   { 0x00800001, 0x20c00229, 0x00ad0182, 0x00000000 },
-   { 0x00800001, 0x20e00229, 0x00ad01a2, 0x00000000 },
-   { 0x00800001, 0x21000229, 0x00ad01c2, 0x00000000 },
-   { 0x00800001, 0x21200229, 0x00ad01e2, 0x00000000 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0183 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01a3 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01c3 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01e3 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000008 },
-   { 0x00800001, 0x20c00229, 0x00ad0183, 0x00000000 },
-   { 0x00800001, 0x20e00229, 0x00ad01a3, 0x00000000 },
-   { 0x00800001, 0x21000229, 0x00ad01c3, 0x00000000 },
-   { 0x00800001, 0x21200229, 0x00ad01e3, 0x00000000 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0184 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01a4 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01c4 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01e4 },
-   { 0x00800008, 0x20c02d29, 0x00b100c0, 0x00010001 },
-   { 0x00800008, 0x20e02d29, 0x00b100e0, 0x00010001 },
-   { 0x00800008, 0x21002d29, 0x00b10100, 0x00010001 },
-   { 0x00800008, 0x21202d29, 0x00b10120, 0x00010001 },
-   { 0x00800001, 0x21400231, 0x00b200c0, 0x00000000 },
-   { 0x00800001, 0x21500231, 0x00b200e0, 0x00000000 },
-   { 0x00800001, 0x21600231, 0x00b20100, 0x00000000 },
-   { 0x00800001, 0x21700231, 0x00b20120, 0x00000000 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x0000004e },
-   { 0x01000005, 0x20000c3c, 0x00210078, 0x00000000 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000034 },
-   { 0x00000001, 0x20480061, 0x00000000, 0x0009000f },
-   { 0x00000005, 0x20580c21, 0x00210040, 0x00000003 },
-   { 0x00800031, 0x21801d29, 0x008d0040, 0x0415a009 },
-   { 0x00000041, 0x20580c21, 0x00210058, 0x00000009 },
-   { 0x00000020, 0x34001400, 0x00001400, 0x00210058 },
-   { 0x00800001, 0x20c00229, 0x00ad0180, 0x00000000 },
-   { 0x00800001, 0x20e00229, 0x00ad01a0, 0x00000000 },
-   { 0x00800001, 0x21000229, 0x00ad01c0, 0x00000000 },
-   { 0x00800001, 0x21200229, 0x00ad01e0, 0x00000000 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0190 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01b0 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01d0 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01f0 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x0000001a },
-   { 0x00800001, 0x20c00229, 0x00ad0181, 0x00000000 },
-   { 0x00800001, 0x20e00229, 0x00ad01a1, 0x00000000 },
-   { 0x00800001, 0x21000229, 0x00ad01c1, 0x00000000 },
-   { 0x00800001, 0x21200229, 0x00ad01e1, 0x00000000 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0191 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01b1 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01d1 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01f1 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000011 },
-   { 0x00800001, 0x20c00229, 0x00ad0182, 0x00000000 },
-   { 0x00800001, 0x20e00229, 0x00ad01a2, 0x00000000 },
-   { 0x00800001, 0x21000229, 0x00ad01c2, 0x00000000 },
-   { 0x00800001, 0x21200229, 0x00ad01e2, 0x00000000 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0192 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01b2 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01d2 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01f2 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000008 },
-   { 0x00800001, 0x20c00229, 0x00ad0183, 0x00000000 },
-   { 0x00800001, 0x20e00229, 0x00ad01a3, 0x00000000 },
-   { 0x00800001, 0x21000229, 0x00ad01c3, 0x00000000 },
-   { 0x00800001, 0x21200229, 0x00ad01e3, 0x00000000 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0193 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01b3 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01d3 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01f3 },
-   { 0x00800040, 0x20c02d29, 0x00b100c0, 0x00010001 },
-   { 0x00800040, 0x20e02d29, 0x00b100e0, 0x00010001 },
-   { 0x00800040, 0x21002d29, 0x00b10100, 0x00010001 },
-   { 0x00800040, 0x21202d29, 0x00b10120, 0x00010001 },
-   { 0x80800008, 0x40c02d31, 0x00b100c0, 0x00010001 },
-   { 0x80800008, 0x40e02d31, 0x00b100e0, 0x00010001 },
-   { 0x80800008, 0x41002d31, 0x00b10100, 0x00010001 },
-   { 0x80800008, 0x41202d31, 0x00b10120, 0x00010001 },
-   { 0x00800001, 0x21400231, 0x00b200c0, 0x00000000 },
-   { 0x00800001, 0x21500231, 0x00b200e0, 0x00000000 },
-   { 0x00800001, 0x21600231, 0x00b20100, 0x00000000 },
-   { 0x00800001, 0x21700231, 0x00b20120, 0x00000000 },
-   { 0x00000001, 0x20480061, 0x00000000, 0x0007000f },
-   { 0x00000005, 0x20580c21, 0x00210040, 0x00000003 },
-   { 0x00800031, 0x21801d29, 0x008d0040, 0x0414a009 },
-   { 0x00000041, 0x20580c21, 0x00210058, 0x00000005 },
-   { 0x00000020, 0x34001400, 0x00001400, 0x00210058 },
-   { 0x00800001, 0x21400231, 0x00ad0180, 0x00000000 },
-   { 0x00800001, 0x21500231, 0x00ad01a0, 0x00000000 },
-   { 0x00800001, 0x21600231, 0x00ad01c0, 0x00000000 },
-   { 0x00800001, 0x21700231, 0x00ad01e0, 0x00000000 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x0000000e },
-   { 0x00800001, 0x21400231, 0x00ad0181, 0x00000000 },
-   { 0x00800001, 0x21500231, 0x00ad01a1, 0x00000000 },
-   { 0x00800001, 0x21600231, 0x00ad01c1, 0x00000000 },
-   { 0x00800001, 0x21700231, 0x00ad01e1, 0x00000000 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000009 },
-   { 0x00800001, 0x21400231, 0x00ad0182, 0x00000000 },
-   { 0x00800001, 0x21500231, 0x00ad01a2, 0x00000000 },
-   { 0x00800001, 0x21600231, 0x00ad01c2, 0x00000000 },
-   { 0x00800001, 0x21700231, 0x00ad01e2, 0x00000000 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000004 },
-   { 0x00800001, 0x21400231, 0x00ad0183, 0x00000000 },
-   { 0x00800001, 0x21500231, 0x00ad01a3, 0x00000000 },
-   { 0x00800001, 0x21600231, 0x00ad01c3, 0x00000000 },
-   { 0x00800001, 0x21700231, 0x00ad01e3, 0x00000000 },
-   { 0x00000001, 0x20480061, 0x00000000, 0x00070007 },
-   { 0x00800001, 0x20c00229, 0x00b10080, 0x00000000 },
-   { 0x00800001, 0x20e00229, 0x00b10090, 0x00000000 },
-   { 0x00800001, 0x21000229, 0x00b100a0, 0x00000000 },
-   { 0x00800001, 0x21200229, 0x00b100b0, 0x00000000 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00b10140 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00b10150 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00b10160 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00b10170 },
-   { 0x80800008, 0x40c02d31, 0x00b100c0, 0x00010001 },
-   { 0x80800008, 0x40e02d31, 0x00b100e0, 0x00010001 },
-   { 0x80800008, 0x41002d31, 0x00b10100, 0x00010001 },
-   { 0x80800008, 0x41202d31, 0x00b10120, 0x00010001 },
-   { 0x00800001, 0x20800231, 0x00b200c0, 0x00000000 },
-   { 0x00800001, 0x20900231, 0x00b200e0, 0x00000000 },
-   { 0x00800001, 0x20a00231, 0x00b20100, 0x00000000 },
-   { 0x00800001, 0x20b00231, 0x00b20120, 0x00000000 },
-   { 0x01000005, 0x20000c3c, 0x0021006c, 0x00000001 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000015 },
-   { 0x00000040, 0x20440c21, 0x00210068, 0x00000000 },
-   { 0x00800031, 0x20c01d21, 0x008d0040, 0x04110203 },
-   { 0x00000040, 0x20440c21, 0x00210044, 0x00000020 },
-   { 0x00800031, 0x20e01d21, 0x008d0040, 0x04110203 },
-   { 0x00000040, 0x20440c21, 0x00210044, 0x00000020 },
-   { 0x00800031, 0x21001d21, 0x008d0040, 0x04110203 },
-   { 0x00000040, 0x20440c21, 0x00210044, 0x00000020 },
-   { 0x00800031, 0x21201d21, 0x008d0040, 0x04110203 },
-   { 0x00000040, 0x20680c21, 0x00210068, 0x00000080 },
-   { 0x00800040, 0x20c045ad, 0x00b100c0, 0x00b10080 },
-   { 0x00800040, 0x20e045ad, 0x00b100e0, 0x00b10090 },
-   { 0x00800040, 0x210045ad, 0x00b10100, 0x00b100a0 },
-   { 0x00800040, 0x212045ad, 0x00b10120, 0x00b100b0 },
-   { 0x80800001, 0x40c001b1, 0x00b100c0, 0x00000000 },
-   { 0x80800001, 0x40e001b1, 0x00b100e0, 0x00000000 },
-   { 0x80800001, 0x410001b1, 0x00b10100, 0x00000000 },
-   { 0x80800001, 0x412001b1, 0x00b10120, 0x00000000 },
-   { 0x00800001, 0x20800231, 0x00b200c0, 0x00000000 },
-   { 0x00800001, 0x20900231, 0x00b200e0, 0x00000000 },
-   { 0x00800001, 0x20a00231, 0x00b20100, 0x00000000 },
-   { 0x00800001, 0x20b00231, 0x00b20120, 0x00000000 },
-   { 0x00802001, 0x20200022, 0x008d0080, 0x00000000 },
-   { 0x00800031, 0x24001d28, 0x008d0020, 0x05302002 },
-   { 0x00800031, 0x24001d28, 0x008d0000, 0x87100000 },
diff --git a/src/xvmc/forward.g4b b/src/xvmc/forward.g4b
deleted file mode 100644
index 6c46c50..0000000
--- a/src/xvmc/forward.g4b
+++ /dev/null
@@ -1,1471 +0,0 @@
-   { 0x00600001, 0x20600021, 0x008d0020, 0x00000000 },
-   { 0x00000001, 0x20280061, 0x00000000, 0x00070007 },
-   { 0x00600001, 0x20400021, 0x008d0020, 0x00000000 },
-   { 0x0020000c, 0x20301ca5, 0x00450070, 0x00000001 },
-   { 0x00200040, 0x20401421, 0x00450060, 0x00450030 },
-   { 0x01000005, 0x20000c3c, 0x00210070, 0x00000001 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000088 },
-   { 0x01000005, 0x20000c3c, 0x00210074, 0x00000001 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000055 },
-   { 0x00000001, 0x20480061, 0x00000000, 0x0009000f },
-   { 0x00000005, 0x20580c21, 0x00210040, 0x00000003 },
-   { 0x00800031, 0x21801d29, 0x008d0040, 0x0415a004 },
-   { 0x00000041, 0x20580c21, 0x00210058, 0x00000011 },
-   { 0x00000020, 0x34001400, 0x00001400, 0x00210058 },
-   { 0x00800001, 0x20c00229, 0x00ad0180, 0x00000000 },
-   { 0x00800001, 0x20e00229, 0x00ad01a0, 0x00000000 },
-   { 0x00800001, 0x21000229, 0x00ad01c0, 0x00000000 },
-   { 0x00800001, 0x21200229, 0x00ad01e0, 0x00000000 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0181 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01a1 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01c1 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01e1 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0190 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01b0 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01d0 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01f0 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0191 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01b1 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01d1 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01f1 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000032 },
-   { 0x00800001, 0x20c00229, 0x00ad0181, 0x00000000 },
-   { 0x00800001, 0x20e00229, 0x00ad01a1, 0x00000000 },
-   { 0x00800001, 0x21000229, 0x00ad01c1, 0x00000000 },
-   { 0x00800001, 0x21200229, 0x00ad01e1, 0x00000000 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0181 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01a1 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01c1 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01e1 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0191 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01b1 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01d1 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01f1 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0192 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01b2 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01d2 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01f2 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000021 },
-   { 0x00800001, 0x20c00229, 0x00ad0182, 0x00000000 },
-   { 0x00800001, 0x20e00229, 0x00ad01a2, 0x00000000 },
-   { 0x00800001, 0x21000229, 0x00ad01c2, 0x00000000 },
-   { 0x00800001, 0x21200229, 0x00ad01e2, 0x00000000 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0183 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01a3 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01c3 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01e3 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0192 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01b2 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01d2 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01f2 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0193 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01b3 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01d3 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01f3 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000010 },
-   { 0x00800001, 0x20c00229, 0x00ad0183, 0x00000000 },
-   { 0x00800001, 0x20e00229, 0x00ad01a3, 0x00000000 },
-   { 0x00800001, 0x21000229, 0x00ad01c3, 0x00000000 },
-   { 0x00800001, 0x21200229, 0x00ad01e3, 0x00000000 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0184 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01a4 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01c4 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01e4 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0193 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01b3 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01d3 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01f3 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0194 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01b4 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01d4 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01f4 },
-   { 0x00800040, 0x20c02d29, 0x00b100c0, 0x00010001 },
-   { 0x00800040, 0x20e02d29, 0x00b100e0, 0x00010001 },
-   { 0x00800040, 0x21002d29, 0x00b10100, 0x00010001 },
-   { 0x00800040, 0x21202d29, 0x00b10120, 0x00010001 },
-   { 0x00800008, 0x40c02d31, 0x00b100c0, 0x00020002 },
-   { 0x00800008, 0x40e02d31, 0x00b100e0, 0x00020002 },
-   { 0x00800008, 0x41002d31, 0x00b10100, 0x00020002 },
-   { 0x00800008, 0x41202d31, 0x00b10120, 0x00020002 },
-   { 0x00800001, 0x20800231, 0x00b200c0, 0x00000000 },
-   { 0x00800001, 0x20900231, 0x00b200e0, 0x00000000 },
-   { 0x00800001, 0x20a00231, 0x00b20100, 0x00000000 },
-   { 0x00800001, 0x20b00231, 0x00b20120, 0x00000000 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000030 },
-   { 0x00000001, 0x20480061, 0x00000000, 0x0007000f },
-   { 0x00000005, 0x20580c21, 0x00210040, 0x00000003 },
-   { 0x00800031, 0x21801d29, 0x008d0040, 0x0414a004 },
-   { 0x00000041, 0x20580c21, 0x00210058, 0x00000009 },
-   { 0x00000020, 0x34001400, 0x00001400, 0x00210058 },
-   { 0x00800001, 0x20c00229, 0x00ad0180, 0x00000000 },
-   { 0x00800001, 0x20e00229, 0x00ad01a0, 0x00000000 },
-   { 0x00800001, 0x21000229, 0x00ad01c0, 0x00000000 },
-   { 0x00800001, 0x21200229, 0x00ad01e0, 0x00000000 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0181 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01a1 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01c1 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01e1 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x0000001a },
-   { 0x00800001, 0x20c00229, 0x00ad0181, 0x00000000 },
-   { 0x00800001, 0x20e00229, 0x00ad01a1, 0x00000000 },
-   { 0x00800001, 0x21000229, 0x00ad01c1, 0x00000000 },
-   { 0x00800001, 0x21200229, 0x00ad01e1, 0x00000000 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0182 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01a2 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01c2 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01e2 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000011 },
-   { 0x00800001, 0x20c00229, 0x00ad0182, 0x00000000 },
-   { 0x00800001, 0x20e00229, 0x00ad01a2, 0x00000000 },
-   { 0x00800001, 0x21000229, 0x00ad01c2, 0x00000000 },
-   { 0x00800001, 0x21200229, 0x00ad01e2, 0x00000000 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0183 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01a3 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01c3 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01e3 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000008 },
-   { 0x00800001, 0x20c00229, 0x00ad0183, 0x00000000 },
-   { 0x00800001, 0x20e00229, 0x00ad01a3, 0x00000000 },
-   { 0x00800001, 0x21000229, 0x00ad01c3, 0x00000000 },
-   { 0x00800001, 0x21200229, 0x00ad01e3, 0x00000000 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0184 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01a4 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01c4 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01e4 },
-   { 0x00800008, 0x20c02d29, 0x00b100c0, 0x00010001 },
-   { 0x00800008, 0x20e02d29, 0x00b100e0, 0x00010001 },
-   { 0x00800008, 0x21002d29, 0x00b10100, 0x00010001 },
-   { 0x00800008, 0x21202d29, 0x00b10120, 0x00010001 },
-   { 0x00800001, 0x20800231, 0x00b200c0, 0x00000000 },
-   { 0x00800001, 0x20900231, 0x00b200e0, 0x00000000 },
-   { 0x00800001, 0x20a00231, 0x00b20100, 0x00000000 },
-   { 0x00800001, 0x20b00231, 0x00b20120, 0x00000000 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x0000004e },
-   { 0x01000005, 0x20000c3c, 0x00210070, 0x00000000 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000034 },
-   { 0x00000001, 0x20480061, 0x00000000, 0x0009000f },
-   { 0x00000005, 0x20580c21, 0x00210040, 0x00000003 },
-   { 0x00800031, 0x21801d29, 0x008d0040, 0x0415a004 },
-   { 0x00000041, 0x20580c21, 0x00210058, 0x00000009 },
-   { 0x00000020, 0x34001400, 0x00001400, 0x00210058 },
-   { 0x00800001, 0x20c00229, 0x00ad0180, 0x00000000 },
-   { 0x00800001, 0x20e00229, 0x00ad01a0, 0x00000000 },
-   { 0x00800001, 0x21000229, 0x00ad01c0, 0x00000000 },
-   { 0x00800001, 0x21200229, 0x00ad01e0, 0x00000000 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0190 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01b0 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01d0 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01f0 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x0000001a },
-   { 0x00800001, 0x20c00229, 0x00ad0181, 0x00000000 },
-   { 0x00800001, 0x20e00229, 0x00ad01a1, 0x00000000 },
-   { 0x00800001, 0x21000229, 0x00ad01c1, 0x00000000 },
-   { 0x00800001, 0x21200229, 0x00ad01e1, 0x00000000 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0191 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01b1 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01d1 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01f1 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000011 },
-   { 0x00800001, 0x20c00229, 0x00ad0182, 0x00000000 },
-   { 0x00800001, 0x20e00229, 0x00ad01a2, 0x00000000 },
-   { 0x00800001, 0x21000229, 0x00ad01c2, 0x00000000 },
-   { 0x00800001, 0x21200229, 0x00ad01e2, 0x00000000 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0192 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01b2 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01d2 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01f2 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000008 },
-   { 0x00800001, 0x20c00229, 0x00ad0183, 0x00000000 },
-   { 0x00800001, 0x20e00229, 0x00ad01a3, 0x00000000 },
-   { 0x00800001, 0x21000229, 0x00ad01c3, 0x00000000 },
-   { 0x00800001, 0x21200229, 0x00ad01e3, 0x00000000 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0193 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01b3 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01d3 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01f3 },
-   { 0x00800040, 0x20c02d29, 0x00b100c0, 0x00010001 },
-   { 0x00800040, 0x20e02d29, 0x00b100e0, 0x00010001 },
-   { 0x00800040, 0x21002d29, 0x00b10100, 0x00010001 },
-   { 0x00800040, 0x21202d29, 0x00b10120, 0x00010001 },
-   { 0x80800008, 0x40c02d31, 0x00b100c0, 0x00010001 },
-   { 0x80800008, 0x40e02d31, 0x00b100e0, 0x00010001 },
-   { 0x80800008, 0x41002d31, 0x00b10100, 0x00010001 },
-   { 0x80800008, 0x41202d31, 0x00b10120, 0x00010001 },
-   { 0x00800001, 0x20800231, 0x00b200c0, 0x00000000 },
-   { 0x00800001, 0x20900231, 0x00b200e0, 0x00000000 },
-   { 0x00800001, 0x20a00231, 0x00b20100, 0x00000000 },
-   { 0x00800001, 0x20b00231, 0x00b20120, 0x00000000 },
-   { 0x00000001, 0x20480061, 0x00000000, 0x0007000f },
-   { 0x00000005, 0x20580c21, 0x00210040, 0x00000003 },
-   { 0x00800031, 0x21801d29, 0x008d0040, 0x0414a004 },
-   { 0x00000041, 0x20580c21, 0x00210058, 0x00000005 },
-   { 0x00000020, 0x34001400, 0x00001400, 0x00210058 },
-   { 0x00800001, 0x20800231, 0x00ad0180, 0x00000000 },
-   { 0x00800001, 0x20900231, 0x00ad01a0, 0x00000000 },
-   { 0x00800001, 0x20a00231, 0x00ad01c0, 0x00000000 },
-   { 0x00800001, 0x20b00231, 0x00ad01e0, 0x00000000 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x0000000e },
-   { 0x00800001, 0x20800231, 0x00ad0181, 0x00000000 },
-   { 0x00800001, 0x20900231, 0x00ad01a1, 0x00000000 },
-   { 0x00800001, 0x20a00231, 0x00ad01c1, 0x00000000 },
-   { 0x00800001, 0x20b00231, 0x00ad01e1, 0x00000000 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000009 },
-   { 0x00800001, 0x20800231, 0x00ad0182, 0x00000000 },
-   { 0x00800001, 0x20900231, 0x00ad01a2, 0x00000000 },
-   { 0x00800001, 0x20a00231, 0x00ad01c2, 0x00000000 },
-   { 0x00800001, 0x20b00231, 0x00ad01e2, 0x00000000 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000004 },
-   { 0x00800001, 0x20800231, 0x00ad0183, 0x00000000 },
-   { 0x00800001, 0x20900231, 0x00ad01a3, 0x00000000 },
-   { 0x00800001, 0x20a00231, 0x00ad01c3, 0x00000000 },
-   { 0x00800001, 0x20b00231, 0x00ad01e3, 0x00000000 },
-   { 0x00000001, 0x20480061, 0x00000000, 0x00070007 },
-   { 0x01000005, 0x20000c3c, 0x0021006c, 0x00000020 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000015 },
-   { 0x00000040, 0x20440c21, 0x00210068, 0x00000000 },
-   { 0x00800031, 0x20c01d21, 0x008d0040, 0x04110203 },
-   { 0x00000040, 0x20440c21, 0x00210044, 0x00000020 },
-   { 0x00800031, 0x20e01d21, 0x008d0040, 0x04110203 },
-   { 0x00000040, 0x20440c21, 0x00210044, 0x00000020 },
-   { 0x00800031, 0x21001d21, 0x008d0040, 0x04110203 },
-   { 0x00000040, 0x20440c21, 0x00210044, 0x00000020 },
-   { 0x00800031, 0x21201d21, 0x008d0040, 0x04110203 },
-   { 0x00000040, 0x20680c21, 0x00210068, 0x00000080 },
-   { 0x00800040, 0x20c045ad, 0x00b100c0, 0x00b10080 },
-   { 0x00800040, 0x20e045ad, 0x00b100e0, 0x00b10090 },
-   { 0x00800040, 0x210045ad, 0x00b10100, 0x00b100a0 },
-   { 0x00800040, 0x212045ad, 0x00b10120, 0x00b100b0 },
-   { 0x80800001, 0x40c001b1, 0x00b100c0, 0x00000000 },
-   { 0x80800001, 0x40e001b1, 0x00b100e0, 0x00000000 },
-   { 0x80800001, 0x410001b1, 0x00b10100, 0x00000000 },
-   { 0x80800001, 0x412001b1, 0x00b10120, 0x00000000 },
-   { 0x00800001, 0x20800231, 0x00b200c0, 0x00000000 },
-   { 0x00800001, 0x20900231, 0x00b200e0, 0x00000000 },
-   { 0x00800001, 0x20a00231, 0x00b20100, 0x00000000 },
-   { 0x00800001, 0x20b00231, 0x00b20120, 0x00000000 },
-   { 0x00802001, 0x20200022, 0x008d0080, 0x00000000 },
-   { 0x00800031, 0x24001d28, 0x008d0020, 0x05302000 },
-   { 0x00000040, 0x20201c21, 0x00210060, 0x00000008 },
-   { 0x00000040, 0x20241c21, 0x00210064, 0x00000000 },
-   { 0x80200040, 0x20401421, 0x00450020, 0x00450030 },
-   { 0x01000005, 0x20000c3c, 0x00210070, 0x00000001 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000088 },
-   { 0x01000005, 0x20000c3c, 0x00210074, 0x00000001 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000055 },
-   { 0x00000001, 0x20480061, 0x00000000, 0x0009000f },
-   { 0x00000005, 0x20580c21, 0x00210040, 0x00000003 },
-   { 0x00800031, 0x21801d29, 0x008d0040, 0x0415a004 },
-   { 0x00000041, 0x20580c21, 0x00210058, 0x00000011 },
-   { 0x00000020, 0x34001400, 0x00001400, 0x00210058 },
-   { 0x00800001, 0x20c00229, 0x00ad0180, 0x00000000 },
-   { 0x00800001, 0x20e00229, 0x00ad01a0, 0x00000000 },
-   { 0x00800001, 0x21000229, 0x00ad01c0, 0x00000000 },
-   { 0x00800001, 0x21200229, 0x00ad01e0, 0x00000000 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0181 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01a1 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01c1 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01e1 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0190 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01b0 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01d0 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01f0 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0191 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01b1 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01d1 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01f1 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000032 },
-   { 0x00800001, 0x20c00229, 0x00ad0181, 0x00000000 },
-   { 0x00800001, 0x20e00229, 0x00ad01a1, 0x00000000 },
-   { 0x00800001, 0x21000229, 0x00ad01c1, 0x00000000 },
-   { 0x00800001, 0x21200229, 0x00ad01e1, 0x00000000 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0181 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01a1 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01c1 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01e1 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0191 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01b1 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01d1 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01f1 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0192 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01b2 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01d2 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01f2 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000021 },
-   { 0x00800001, 0x20c00229, 0x00ad0182, 0x00000000 },
-   { 0x00800001, 0x20e00229, 0x00ad01a2, 0x00000000 },
-   { 0x00800001, 0x21000229, 0x00ad01c2, 0x00000000 },
-   { 0x00800001, 0x21200229, 0x00ad01e2, 0x00000000 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0183 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01a3 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01c3 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01e3 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0192 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01b2 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01d2 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01f2 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0193 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01b3 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01d3 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01f3 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000010 },
-   { 0x00800001, 0x20c00229, 0x00ad0183, 0x00000000 },
-   { 0x00800001, 0x20e00229, 0x00ad01a3, 0x00000000 },
-   { 0x00800001, 0x21000229, 0x00ad01c3, 0x00000000 },
-   { 0x00800001, 0x21200229, 0x00ad01e3, 0x00000000 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0184 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01a4 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01c4 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01e4 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0193 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01b3 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01d3 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01f3 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0194 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01b4 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01d4 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01f4 },
-   { 0x00800040, 0x20c02d29, 0x00b100c0, 0x00010001 },
-   { 0x00800040, 0x20e02d29, 0x00b100e0, 0x00010001 },
-   { 0x00800040, 0x21002d29, 0x00b10100, 0x00010001 },
-   { 0x00800040, 0x21202d29, 0x00b10120, 0x00010001 },
-   { 0x00800008, 0x40c02d31, 0x00b100c0, 0x00020002 },
-   { 0x00800008, 0x40e02d31, 0x00b100e0, 0x00020002 },
-   { 0x00800008, 0x41002d31, 0x00b10100, 0x00020002 },
-   { 0x00800008, 0x41202d31, 0x00b10120, 0x00020002 },
-   { 0x00800001, 0x20800231, 0x00b200c0, 0x00000000 },
-   { 0x00800001, 0x20900231, 0x00b200e0, 0x00000000 },
-   { 0x00800001, 0x20a00231, 0x00b20100, 0x00000000 },
-   { 0x00800001, 0x20b00231, 0x00b20120, 0x00000000 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000030 },
-   { 0x00000001, 0x20480061, 0x00000000, 0x0007000f },
-   { 0x00000005, 0x20580c21, 0x00210040, 0x00000003 },
-   { 0x00800031, 0x21801d29, 0x008d0040, 0x0414a004 },
-   { 0x00000041, 0x20580c21, 0x00210058, 0x00000009 },
-   { 0x00000020, 0x34001400, 0x00001400, 0x00210058 },
-   { 0x00800001, 0x20c00229, 0x00ad0180, 0x00000000 },
-   { 0x00800001, 0x20e00229, 0x00ad01a0, 0x00000000 },
-   { 0x00800001, 0x21000229, 0x00ad01c0, 0x00000000 },
-   { 0x00800001, 0x21200229, 0x00ad01e0, 0x00000000 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0181 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01a1 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01c1 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01e1 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x0000001a },
-   { 0x00800001, 0x20c00229, 0x00ad0181, 0x00000000 },
-   { 0x00800001, 0x20e00229, 0x00ad01a1, 0x00000000 },
-   { 0x00800001, 0x21000229, 0x00ad01c1, 0x00000000 },
-   { 0x00800001, 0x21200229, 0x00ad01e1, 0x00000000 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0182 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01a2 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01c2 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01e2 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000011 },
-   { 0x00800001, 0x20c00229, 0x00ad0182, 0x00000000 },
-   { 0x00800001, 0x20e00229, 0x00ad01a2, 0x00000000 },
-   { 0x00800001, 0x21000229, 0x00ad01c2, 0x00000000 },
-   { 0x00800001, 0x21200229, 0x00ad01e2, 0x00000000 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0183 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01a3 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01c3 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01e3 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000008 },
-   { 0x00800001, 0x20c00229, 0x00ad0183, 0x00000000 },
-   { 0x00800001, 0x20e00229, 0x00ad01a3, 0x00000000 },
-   { 0x00800001, 0x21000229, 0x00ad01c3, 0x00000000 },
-   { 0x00800001, 0x21200229, 0x00ad01e3, 0x00000000 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0184 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01a4 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01c4 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01e4 },
-   { 0x00800008, 0x20c02d29, 0x00b100c0, 0x00010001 },
-   { 0x00800008, 0x20e02d29, 0x00b100e0, 0x00010001 },
-   { 0x00800008, 0x21002d29, 0x00b10100, 0x00010001 },
-   { 0x00800008, 0x21202d29, 0x00b10120, 0x00010001 },
-   { 0x00800001, 0x20800231, 0x00b200c0, 0x00000000 },
-   { 0x00800001, 0x20900231, 0x00b200e0, 0x00000000 },
-   { 0x00800001, 0x20a00231, 0x00b20100, 0x00000000 },
-   { 0x00800001, 0x20b00231, 0x00b20120, 0x00000000 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x0000004e },
-   { 0x01000005, 0x20000c3c, 0x00210070, 0x00000000 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000034 },
-   { 0x00000001, 0x20480061, 0x00000000, 0x0009000f },
-   { 0x00000005, 0x20580c21, 0x00210040, 0x00000003 },
-   { 0x00800031, 0x21801d29, 0x008d0040, 0x0415a004 },
-   { 0x00000041, 0x20580c21, 0x00210058, 0x00000009 },
-   { 0x00000020, 0x34001400, 0x00001400, 0x00210058 },
-   { 0x00800001, 0x20c00229, 0x00ad0180, 0x00000000 },
-   { 0x00800001, 0x20e00229, 0x00ad01a0, 0x00000000 },
-   { 0x00800001, 0x21000229, 0x00ad01c0, 0x00000000 },
-   { 0x00800001, 0x21200229, 0x00ad01e0, 0x00000000 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0190 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01b0 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01d0 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01f0 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x0000001a },
-   { 0x00800001, 0x20c00229, 0x00ad0181, 0x00000000 },
-   { 0x00800001, 0x20e00229, 0x00ad01a1, 0x00000000 },
-   { 0x00800001, 0x21000229, 0x00ad01c1, 0x00000000 },
-   { 0x00800001, 0x21200229, 0x00ad01e1, 0x00000000 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0191 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01b1 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01d1 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01f1 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000011 },
-   { 0x00800001, 0x20c00229, 0x00ad0182, 0x00000000 },
-   { 0x00800001, 0x20e00229, 0x00ad01a2, 0x00000000 },
-   { 0x00800001, 0x21000229, 0x00ad01c2, 0x00000000 },
-   { 0x00800001, 0x21200229, 0x00ad01e2, 0x00000000 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0192 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01b2 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01d2 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01f2 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000008 },
-   { 0x00800001, 0x20c00229, 0x00ad0183, 0x00000000 },
-   { 0x00800001, 0x20e00229, 0x00ad01a3, 0x00000000 },
-   { 0x00800001, 0x21000229, 0x00ad01c3, 0x00000000 },
-   { 0x00800001, 0x21200229, 0x00ad01e3, 0x00000000 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0193 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01b3 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01d3 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01f3 },
-   { 0x00800040, 0x20c02d29, 0x00b100c0, 0x00010001 },
-   { 0x00800040, 0x20e02d29, 0x00b100e0, 0x00010001 },
-   { 0x00800040, 0x21002d29, 0x00b10100, 0x00010001 },
-   { 0x00800040, 0x21202d29, 0x00b10120, 0x00010001 },
-   { 0x80800008, 0x40c02d31, 0x00b100c0, 0x00010001 },
-   { 0x80800008, 0x40e02d31, 0x00b100e0, 0x00010001 },
-   { 0x80800008, 0x41002d31, 0x00b10100, 0x00010001 },
-   { 0x80800008, 0x41202d31, 0x00b10120, 0x00010001 },
-   { 0x00800001, 0x20800231, 0x00b200c0, 0x00000000 },
-   { 0x00800001, 0x20900231, 0x00b200e0, 0x00000000 },
-   { 0x00800001, 0x20a00231, 0x00b20100, 0x00000000 },
-   { 0x00800001, 0x20b00231, 0x00b20120, 0x00000000 },
-   { 0x00000001, 0x20480061, 0x00000000, 0x0007000f },
-   { 0x00000005, 0x20580c21, 0x00210040, 0x00000003 },
-   { 0x00800031, 0x21801d29, 0x008d0040, 0x0414a004 },
-   { 0x00000041, 0x20580c21, 0x00210058, 0x00000005 },
-   { 0x00000020, 0x34001400, 0x00001400, 0x00210058 },
-   { 0x00800001, 0x20800231, 0x00ad0180, 0x00000000 },
-   { 0x00800001, 0x20900231, 0x00ad01a0, 0x00000000 },
-   { 0x00800001, 0x20a00231, 0x00ad01c0, 0x00000000 },
-   { 0x00800001, 0x20b00231, 0x00ad01e0, 0x00000000 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x0000000e },
-   { 0x00800001, 0x20800231, 0x00ad0181, 0x00000000 },
-   { 0x00800001, 0x20900231, 0x00ad01a1, 0x00000000 },
-   { 0x00800001, 0x20a00231, 0x00ad01c1, 0x00000000 },
-   { 0x00800001, 0x20b00231, 0x00ad01e1, 0x00000000 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000009 },
-   { 0x00800001, 0x20800231, 0x00ad0182, 0x00000000 },
-   { 0x00800001, 0x20900231, 0x00ad01a2, 0x00000000 },
-   { 0x00800001, 0x20a00231, 0x00ad01c2, 0x00000000 },
-   { 0x00800001, 0x20b00231, 0x00ad01e2, 0x00000000 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000004 },
-   { 0x00800001, 0x20800231, 0x00ad0183, 0x00000000 },
-   { 0x00800001, 0x20900231, 0x00ad01a3, 0x00000000 },
-   { 0x00800001, 0x20a00231, 0x00ad01c3, 0x00000000 },
-   { 0x00800001, 0x20b00231, 0x00ad01e3, 0x00000000 },
-   { 0x00000001, 0x20480061, 0x00000000, 0x00070007 },
-   { 0x01000005, 0x20000c3c, 0x0021006c, 0x00000010 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000015 },
-   { 0x00000040, 0x20440c21, 0x00210068, 0x00000000 },
-   { 0x00800031, 0x20c01d21, 0x008d0040, 0x04110203 },
-   { 0x00000040, 0x20440c21, 0x00210044, 0x00000020 },
-   { 0x00800031, 0x20e01d21, 0x008d0040, 0x04110203 },
-   { 0x00000040, 0x20440c21, 0x00210044, 0x00000020 },
-   { 0x00800031, 0x21001d21, 0x008d0040, 0x04110203 },
-   { 0x00000040, 0x20440c21, 0x00210044, 0x00000020 },
-   { 0x00800031, 0x21201d21, 0x008d0040, 0x04110203 },
-   { 0x00000040, 0x20680c21, 0x00210068, 0x00000080 },
-   { 0x00800040, 0x20c045ad, 0x00b100c0, 0x00b10080 },
-   { 0x00800040, 0x20e045ad, 0x00b100e0, 0x00b10090 },
-   { 0x00800040, 0x210045ad, 0x00b10100, 0x00b100a0 },
-   { 0x00800040, 0x212045ad, 0x00b10120, 0x00b100b0 },
-   { 0x80800001, 0x40c001b1, 0x00b100c0, 0x00000000 },
-   { 0x80800001, 0x40e001b1, 0x00b100e0, 0x00000000 },
-   { 0x80800001, 0x410001b1, 0x00b10100, 0x00000000 },
-   { 0x80800001, 0x412001b1, 0x00b10120, 0x00000000 },
-   { 0x00800001, 0x20800231, 0x00b200c0, 0x00000000 },
-   { 0x00800001, 0x20900231, 0x00b200e0, 0x00000000 },
-   { 0x00800001, 0x20a00231, 0x00b20100, 0x00000000 },
-   { 0x00800001, 0x20b00231, 0x00b20120, 0x00000000 },
-   { 0x00802001, 0x20200022, 0x008d0080, 0x00000000 },
-   { 0x00800031, 0x24001d28, 0x008d0020, 0x05302000 },
-   { 0x00000040, 0x20201c21, 0x00210060, 0x00000000 },
-   { 0x00000040, 0x20241c21, 0x00210064, 0x00000008 },
-   { 0x00200040, 0x20401421, 0x00450020, 0x00450030 },
-   { 0x01000005, 0x20000c3c, 0x00210070, 0x00000001 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000088 },
-   { 0x01000005, 0x20000c3c, 0x00210074, 0x00000001 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000055 },
-   { 0x00000001, 0x20480061, 0x00000000, 0x0009000f },
-   { 0x00000005, 0x20580c21, 0x00210040, 0x00000003 },
-   { 0x00800031, 0x21801d29, 0x008d0040, 0x0415a004 },
-   { 0x00000041, 0x20580c21, 0x00210058, 0x00000011 },
-   { 0x00000020, 0x34001400, 0x00001400, 0x00210058 },
-   { 0x00800001, 0x20c00229, 0x00ad0180, 0x00000000 },
-   { 0x00800001, 0x20e00229, 0x00ad01a0, 0x00000000 },
-   { 0x00800001, 0x21000229, 0x00ad01c0, 0x00000000 },
-   { 0x00800001, 0x21200229, 0x00ad01e0, 0x00000000 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0181 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01a1 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01c1 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01e1 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0190 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01b0 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01d0 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01f0 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0191 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01b1 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01d1 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01f1 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000032 },
-   { 0x00800001, 0x20c00229, 0x00ad0181, 0x00000000 },
-   { 0x00800001, 0x20e00229, 0x00ad01a1, 0x00000000 },
-   { 0x00800001, 0x21000229, 0x00ad01c1, 0x00000000 },
-   { 0x00800001, 0x21200229, 0x00ad01e1, 0x00000000 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0181 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01a1 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01c1 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01e1 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0191 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01b1 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01d1 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01f1 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0192 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01b2 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01d2 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01f2 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000021 },
-   { 0x00800001, 0x20c00229, 0x00ad0182, 0x00000000 },
-   { 0x00800001, 0x20e00229, 0x00ad01a2, 0x00000000 },
-   { 0x00800001, 0x21000229, 0x00ad01c2, 0x00000000 },
-   { 0x00800001, 0x21200229, 0x00ad01e2, 0x00000000 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0183 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01a3 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01c3 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01e3 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0192 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01b2 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01d2 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01f2 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0193 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01b3 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01d3 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01f3 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000010 },
-   { 0x00800001, 0x20c00229, 0x00ad0183, 0x00000000 },
-   { 0x00800001, 0x20e00229, 0x00ad01a3, 0x00000000 },
-   { 0x00800001, 0x21000229, 0x00ad01c3, 0x00000000 },
-   { 0x00800001, 0x21200229, 0x00ad01e3, 0x00000000 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0184 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01a4 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01c4 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01e4 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0193 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01b3 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01d3 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01f3 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0194 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01b4 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01d4 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01f4 },
-   { 0x00800040, 0x20c02d29, 0x00b100c0, 0x00010001 },
-   { 0x00800040, 0x20e02d29, 0x00b100e0, 0x00010001 },
-   { 0x00800040, 0x21002d29, 0x00b10100, 0x00010001 },
-   { 0x00800040, 0x21202d29, 0x00b10120, 0x00010001 },
-   { 0x00800008, 0x40c02d31, 0x00b100c0, 0x00020002 },
-   { 0x00800008, 0x40e02d31, 0x00b100e0, 0x00020002 },
-   { 0x00800008, 0x41002d31, 0x00b10100, 0x00020002 },
-   { 0x00800008, 0x41202d31, 0x00b10120, 0x00020002 },
-   { 0x00800001, 0x20800231, 0x00b200c0, 0x00000000 },
-   { 0x00800001, 0x20900231, 0x00b200e0, 0x00000000 },
-   { 0x00800001, 0x20a00231, 0x00b20100, 0x00000000 },
-   { 0x00800001, 0x20b00231, 0x00b20120, 0x00000000 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000030 },
-   { 0x00000001, 0x20480061, 0x00000000, 0x0007000f },
-   { 0x00000005, 0x20580c21, 0x00210040, 0x00000003 },
-   { 0x00800031, 0x21801d29, 0x008d0040, 0x0414a004 },
-   { 0x00000041, 0x20580c21, 0x00210058, 0x00000009 },
-   { 0x00000020, 0x34001400, 0x00001400, 0x00210058 },
-   { 0x00800001, 0x20c00229, 0x00ad0180, 0x00000000 },
-   { 0x00800001, 0x20e00229, 0x00ad01a0, 0x00000000 },
-   { 0x00800001, 0x21000229, 0x00ad01c0, 0x00000000 },
-   { 0x00800001, 0x21200229, 0x00ad01e0, 0x00000000 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0181 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01a1 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01c1 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01e1 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x0000001a },
-   { 0x00800001, 0x20c00229, 0x00ad0181, 0x00000000 },
-   { 0x00800001, 0x20e00229, 0x00ad01a1, 0x00000000 },
-   { 0x00800001, 0x21000229, 0x00ad01c1, 0x00000000 },
-   { 0x00800001, 0x21200229, 0x00ad01e1, 0x00000000 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0182 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01a2 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01c2 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01e2 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000011 },
-   { 0x00800001, 0x20c00229, 0x00ad0182, 0x00000000 },
-   { 0x00800001, 0x20e00229, 0x00ad01a2, 0x00000000 },
-   { 0x00800001, 0x21000229, 0x00ad01c2, 0x00000000 },
-   { 0x00800001, 0x21200229, 0x00ad01e2, 0x00000000 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0183 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01a3 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01c3 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01e3 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000008 },
-   { 0x00800001, 0x20c00229, 0x00ad0183, 0x00000000 },
-   { 0x00800001, 0x20e00229, 0x00ad01a3, 0x00000000 },
-   { 0x00800001, 0x21000229, 0x00ad01c3, 0x00000000 },
-   { 0x00800001, 0x21200229, 0x00ad01e3, 0x00000000 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0184 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01a4 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01c4 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01e4 },
-   { 0x00800008, 0x20c02d29, 0x00b100c0, 0x00010001 },
-   { 0x00800008, 0x20e02d29, 0x00b100e0, 0x00010001 },
-   { 0x00800008, 0x21002d29, 0x00b10100, 0x00010001 },
-   { 0x00800008, 0x21202d29, 0x00b10120, 0x00010001 },
-   { 0x00800001, 0x20800231, 0x00b200c0, 0x00000000 },
-   { 0x00800001, 0x20900231, 0x00b200e0, 0x00000000 },
-   { 0x00800001, 0x20a00231, 0x00b20100, 0x00000000 },
-   { 0x00800001, 0x20b00231, 0x00b20120, 0x00000000 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x0000004e },
-   { 0x01000005, 0x20000c3c, 0x00210070, 0x00000000 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000034 },
-   { 0x00000001, 0x20480061, 0x00000000, 0x0009000f },
-   { 0x00000005, 0x20580c21, 0x00210040, 0x00000003 },
-   { 0x00800031, 0x21801d29, 0x008d0040, 0x0415a004 },
-   { 0x00000041, 0x20580c21, 0x00210058, 0x00000009 },
-   { 0x00000020, 0x34001400, 0x00001400, 0x00210058 },
-   { 0x00800001, 0x20c00229, 0x00ad0180, 0x00000000 },
-   { 0x00800001, 0x20e00229, 0x00ad01a0, 0x00000000 },
-   { 0x00800001, 0x21000229, 0x00ad01c0, 0x00000000 },
-   { 0x00800001, 0x21200229, 0x00ad01e0, 0x00000000 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0190 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01b0 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01d0 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01f0 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x0000001a },
-   { 0x00800001, 0x20c00229, 0x00ad0181, 0x00000000 },
-   { 0x00800001, 0x20e00229, 0x00ad01a1, 0x00000000 },
-   { 0x00800001, 0x21000229, 0x00ad01c1, 0x00000000 },
-   { 0x00800001, 0x21200229, 0x00ad01e1, 0x00000000 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0191 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01b1 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01d1 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01f1 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000011 },
-   { 0x00800001, 0x20c00229, 0x00ad0182, 0x00000000 },
-   { 0x00800001, 0x20e00229, 0x00ad01a2, 0x00000000 },
-   { 0x00800001, 0x21000229, 0x00ad01c2, 0x00000000 },
-   { 0x00800001, 0x21200229, 0x00ad01e2, 0x00000000 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0192 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01b2 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01d2 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01f2 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000008 },
-   { 0x00800001, 0x20c00229, 0x00ad0183, 0x00000000 },
-   { 0x00800001, 0x20e00229, 0x00ad01a3, 0x00000000 },
-   { 0x00800001, 0x21000229, 0x00ad01c3, 0x00000000 },
-   { 0x00800001, 0x21200229, 0x00ad01e3, 0x00000000 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0193 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01b3 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01d3 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01f3 },
-   { 0x00800040, 0x20c02d29, 0x00b100c0, 0x00010001 },
-   { 0x00800040, 0x20e02d29, 0x00b100e0, 0x00010001 },
-   { 0x00800040, 0x21002d29, 0x00b10100, 0x00010001 },
-   { 0x00800040, 0x21202d29, 0x00b10120, 0x00010001 },
-   { 0x80800008, 0x40c02d31, 0x00b100c0, 0x00010001 },
-   { 0x80800008, 0x40e02d31, 0x00b100e0, 0x00010001 },
-   { 0x80800008, 0x41002d31, 0x00b10100, 0x00010001 },
-   { 0x80800008, 0x41202d31, 0x00b10120, 0x00010001 },
-   { 0x00800001, 0x20800231, 0x00b200c0, 0x00000000 },
-   { 0x00800001, 0x20900231, 0x00b200e0, 0x00000000 },
-   { 0x00800001, 0x20a00231, 0x00b20100, 0x00000000 },
-   { 0x00800001, 0x20b00231, 0x00b20120, 0x00000000 },
-   { 0x00000001, 0x20480061, 0x00000000, 0x0007000f },
-   { 0x00000005, 0x20580c21, 0x00210040, 0x00000003 },
-   { 0x00800031, 0x21801d29, 0x008d0040, 0x0414a004 },
-   { 0x00000041, 0x20580c21, 0x00210058, 0x00000005 },
-   { 0x00000020, 0x34001400, 0x00001400, 0x00210058 },
-   { 0x00800001, 0x20800231, 0x00ad0180, 0x00000000 },
-   { 0x00800001, 0x20900231, 0x00ad01a0, 0x00000000 },
-   { 0x00800001, 0x20a00231, 0x00ad01c0, 0x00000000 },
-   { 0x00800001, 0x20b00231, 0x00ad01e0, 0x00000000 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x0000000e },
-   { 0x00800001, 0x20800231, 0x00ad0181, 0x00000000 },
-   { 0x00800001, 0x20900231, 0x00ad01a1, 0x00000000 },
-   { 0x00800001, 0x20a00231, 0x00ad01c1, 0x00000000 },
-   { 0x00800001, 0x20b00231, 0x00ad01e1, 0x00000000 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000009 },
-   { 0x00800001, 0x20800231, 0x00ad0182, 0x00000000 },
-   { 0x00800001, 0x20900231, 0x00ad01a2, 0x00000000 },
-   { 0x00800001, 0x20a00231, 0x00ad01c2, 0x00000000 },
-   { 0x00800001, 0x20b00231, 0x00ad01e2, 0x00000000 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000004 },
-   { 0x00800001, 0x20800231, 0x00ad0183, 0x00000000 },
-   { 0x00800001, 0x20900231, 0x00ad01a3, 0x00000000 },
-   { 0x00800001, 0x20a00231, 0x00ad01c3, 0x00000000 },
-   { 0x00800001, 0x20b00231, 0x00ad01e3, 0x00000000 },
-   { 0x00000001, 0x20480061, 0x00000000, 0x00070007 },
-   { 0x01000005, 0x20000c3c, 0x0021006c, 0x00000008 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000015 },
-   { 0x00000040, 0x20440c21, 0x00210068, 0x00000000 },
-   { 0x00800031, 0x20c01d21, 0x008d0040, 0x04110203 },
-   { 0x00000040, 0x20440c21, 0x00210044, 0x00000020 },
-   { 0x00800031, 0x20e01d21, 0x008d0040, 0x04110203 },
-   { 0x00000040, 0x20440c21, 0x00210044, 0x00000020 },
-   { 0x00800031, 0x21001d21, 0x008d0040, 0x04110203 },
-   { 0x00000040, 0x20440c21, 0x00210044, 0x00000020 },
-   { 0x00800031, 0x21201d21, 0x008d0040, 0x04110203 },
-   { 0x00000040, 0x20680c21, 0x00210068, 0x00000080 },
-   { 0x00800040, 0x20c045ad, 0x00b100c0, 0x00b10080 },
-   { 0x00800040, 0x20e045ad, 0x00b100e0, 0x00b10090 },
-   { 0x00800040, 0x210045ad, 0x00b10100, 0x00b100a0 },
-   { 0x00800040, 0x212045ad, 0x00b10120, 0x00b100b0 },
-   { 0x80800001, 0x40c001b1, 0x00b100c0, 0x00000000 },
-   { 0x80800001, 0x40e001b1, 0x00b100e0, 0x00000000 },
-   { 0x80800001, 0x410001b1, 0x00b10100, 0x00000000 },
-   { 0x80800001, 0x412001b1, 0x00b10120, 0x00000000 },
-   { 0x00800001, 0x20800231, 0x00b200c0, 0x00000000 },
-   { 0x00800001, 0x20900231, 0x00b200e0, 0x00000000 },
-   { 0x00800001, 0x20a00231, 0x00b20100, 0x00000000 },
-   { 0x00800001, 0x20b00231, 0x00b20120, 0x00000000 },
-   { 0x00802001, 0x20200022, 0x008d0080, 0x00000000 },
-   { 0x00800031, 0x24001d28, 0x008d0020, 0x05302000 },
-   { 0x00200040, 0x20201c21, 0x00450060, 0x00000008 },
-   { 0x80200040, 0x20401421, 0x00450020, 0x00450030 },
-   { 0x01000005, 0x20000c3c, 0x00210070, 0x00000001 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000088 },
-   { 0x01000005, 0x20000c3c, 0x00210074, 0x00000001 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000055 },
-   { 0x00000001, 0x20480061, 0x00000000, 0x0009000f },
-   { 0x00000005, 0x20580c21, 0x00210040, 0x00000003 },
-   { 0x00800031, 0x21801d29, 0x008d0040, 0x0415a004 },
-   { 0x00000041, 0x20580c21, 0x00210058, 0x00000011 },
-   { 0x00000020, 0x34001400, 0x00001400, 0x00210058 },
-   { 0x00800001, 0x20c00229, 0x00ad0180, 0x00000000 },
-   { 0x00800001, 0x20e00229, 0x00ad01a0, 0x00000000 },
-   { 0x00800001, 0x21000229, 0x00ad01c0, 0x00000000 },
-   { 0x00800001, 0x21200229, 0x00ad01e0, 0x00000000 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0181 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01a1 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01c1 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01e1 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0190 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01b0 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01d0 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01f0 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0191 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01b1 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01d1 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01f1 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000032 },
-   { 0x00800001, 0x20c00229, 0x00ad0181, 0x00000000 },
-   { 0x00800001, 0x20e00229, 0x00ad01a1, 0x00000000 },
-   { 0x00800001, 0x21000229, 0x00ad01c1, 0x00000000 },
-   { 0x00800001, 0x21200229, 0x00ad01e1, 0x00000000 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0181 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01a1 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01c1 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01e1 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0191 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01b1 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01d1 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01f1 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0192 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01b2 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01d2 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01f2 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000021 },
-   { 0x00800001, 0x20c00229, 0x00ad0182, 0x00000000 },
-   { 0x00800001, 0x20e00229, 0x00ad01a2, 0x00000000 },
-   { 0x00800001, 0x21000229, 0x00ad01c2, 0x00000000 },
-   { 0x00800001, 0x21200229, 0x00ad01e2, 0x00000000 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0183 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01a3 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01c3 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01e3 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0192 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01b2 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01d2 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01f2 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0193 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01b3 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01d3 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01f3 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000010 },
-   { 0x00800001, 0x20c00229, 0x00ad0183, 0x00000000 },
-   { 0x00800001, 0x20e00229, 0x00ad01a3, 0x00000000 },
-   { 0x00800001, 0x21000229, 0x00ad01c3, 0x00000000 },
-   { 0x00800001, 0x21200229, 0x00ad01e3, 0x00000000 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0184 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01a4 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01c4 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01e4 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0193 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01b3 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01d3 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01f3 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0194 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01b4 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01d4 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01f4 },
-   { 0x00800040, 0x20c02d29, 0x00b100c0, 0x00010001 },
-   { 0x00800040, 0x20e02d29, 0x00b100e0, 0x00010001 },
-   { 0x00800040, 0x21002d29, 0x00b10100, 0x00010001 },
-   { 0x00800040, 0x21202d29, 0x00b10120, 0x00010001 },
-   { 0x00800008, 0x40c02d31, 0x00b100c0, 0x00020002 },
-   { 0x00800008, 0x40e02d31, 0x00b100e0, 0x00020002 },
-   { 0x00800008, 0x41002d31, 0x00b10100, 0x00020002 },
-   { 0x00800008, 0x41202d31, 0x00b10120, 0x00020002 },
-   { 0x00800001, 0x20800231, 0x00b200c0, 0x00000000 },
-   { 0x00800001, 0x20900231, 0x00b200e0, 0x00000000 },
-   { 0x00800001, 0x20a00231, 0x00b20100, 0x00000000 },
-   { 0x00800001, 0x20b00231, 0x00b20120, 0x00000000 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000030 },
-   { 0x00000001, 0x20480061, 0x00000000, 0x0007000f },
-   { 0x00000005, 0x20580c21, 0x00210040, 0x00000003 },
-   { 0x00800031, 0x21801d29, 0x008d0040, 0x0414a004 },
-   { 0x00000041, 0x20580c21, 0x00210058, 0x00000009 },
-   { 0x00000020, 0x34001400, 0x00001400, 0x00210058 },
-   { 0x00800001, 0x20c00229, 0x00ad0180, 0x00000000 },
-   { 0x00800001, 0x20e00229, 0x00ad01a0, 0x00000000 },
-   { 0x00800001, 0x21000229, 0x00ad01c0, 0x00000000 },
-   { 0x00800001, 0x21200229, 0x00ad01e0, 0x00000000 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0181 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01a1 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01c1 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01e1 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x0000001a },
-   { 0x00800001, 0x20c00229, 0x00ad0181, 0x00000000 },
-   { 0x00800001, 0x20e00229, 0x00ad01a1, 0x00000000 },
-   { 0x00800001, 0x21000229, 0x00ad01c1, 0x00000000 },
-   { 0x00800001, 0x21200229, 0x00ad01e1, 0x00000000 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0182 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01a2 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01c2 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01e2 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000011 },
-   { 0x00800001, 0x20c00229, 0x00ad0182, 0x00000000 },
-   { 0x00800001, 0x20e00229, 0x00ad01a2, 0x00000000 },
-   { 0x00800001, 0x21000229, 0x00ad01c2, 0x00000000 },
-   { 0x00800001, 0x21200229, 0x00ad01e2, 0x00000000 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0183 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01a3 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01c3 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01e3 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000008 },
-   { 0x00800001, 0x20c00229, 0x00ad0183, 0x00000000 },
-   { 0x00800001, 0x20e00229, 0x00ad01a3, 0x00000000 },
-   { 0x00800001, 0x21000229, 0x00ad01c3, 0x00000000 },
-   { 0x00800001, 0x21200229, 0x00ad01e3, 0x00000000 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0184 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01a4 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01c4 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01e4 },
-   { 0x00800008, 0x20c02d29, 0x00b100c0, 0x00010001 },
-   { 0x00800008, 0x20e02d29, 0x00b100e0, 0x00010001 },
-   { 0x00800008, 0x21002d29, 0x00b10100, 0x00010001 },
-   { 0x00800008, 0x21202d29, 0x00b10120, 0x00010001 },
-   { 0x00800001, 0x20800231, 0x00b200c0, 0x00000000 },
-   { 0x00800001, 0x20900231, 0x00b200e0, 0x00000000 },
-   { 0x00800001, 0x20a00231, 0x00b20100, 0x00000000 },
-   { 0x00800001, 0x20b00231, 0x00b20120, 0x00000000 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x0000004e },
-   { 0x01000005, 0x20000c3c, 0x00210070, 0x00000000 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000034 },
-   { 0x00000001, 0x20480061, 0x00000000, 0x0009000f },
-   { 0x00000005, 0x20580c21, 0x00210040, 0x00000003 },
-   { 0x00800031, 0x21801d29, 0x008d0040, 0x0415a004 },
-   { 0x00000041, 0x20580c21, 0x00210058, 0x00000009 },
-   { 0x00000020, 0x34001400, 0x00001400, 0x00210058 },
-   { 0x00800001, 0x20c00229, 0x00ad0180, 0x00000000 },
-   { 0x00800001, 0x20e00229, 0x00ad01a0, 0x00000000 },
-   { 0x00800001, 0x21000229, 0x00ad01c0, 0x00000000 },
-   { 0x00800001, 0x21200229, 0x00ad01e0, 0x00000000 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0190 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01b0 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01d0 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01f0 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x0000001a },
-   { 0x00800001, 0x20c00229, 0x00ad0181, 0x00000000 },
-   { 0x00800001, 0x20e00229, 0x00ad01a1, 0x00000000 },
-   { 0x00800001, 0x21000229, 0x00ad01c1, 0x00000000 },
-   { 0x00800001, 0x21200229, 0x00ad01e1, 0x00000000 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0191 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01b1 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01d1 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01f1 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000011 },
-   { 0x00800001, 0x20c00229, 0x00ad0182, 0x00000000 },
-   { 0x00800001, 0x20e00229, 0x00ad01a2, 0x00000000 },
-   { 0x00800001, 0x21000229, 0x00ad01c2, 0x00000000 },
-   { 0x00800001, 0x21200229, 0x00ad01e2, 0x00000000 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0192 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01b2 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01d2 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01f2 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000008 },
-   { 0x00800001, 0x20c00229, 0x00ad0183, 0x00000000 },
-   { 0x00800001, 0x20e00229, 0x00ad01a3, 0x00000000 },
-   { 0x00800001, 0x21000229, 0x00ad01c3, 0x00000000 },
-   { 0x00800001, 0x21200229, 0x00ad01e3, 0x00000000 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0193 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01b3 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01d3 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01f3 },
-   { 0x00800040, 0x20c02d29, 0x00b100c0, 0x00010001 },
-   { 0x00800040, 0x20e02d29, 0x00b100e0, 0x00010001 },
-   { 0x00800040, 0x21002d29, 0x00b10100, 0x00010001 },
-   { 0x00800040, 0x21202d29, 0x00b10120, 0x00010001 },
-   { 0x80800008, 0x40c02d31, 0x00b100c0, 0x00010001 },
-   { 0x80800008, 0x40e02d31, 0x00b100e0, 0x00010001 },
-   { 0x80800008, 0x41002d31, 0x00b10100, 0x00010001 },
-   { 0x80800008, 0x41202d31, 0x00b10120, 0x00010001 },
-   { 0x00800001, 0x20800231, 0x00b200c0, 0x00000000 },
-   { 0x00800001, 0x20900231, 0x00b200e0, 0x00000000 },
-   { 0x00800001, 0x20a00231, 0x00b20100, 0x00000000 },
-   { 0x00800001, 0x20b00231, 0x00b20120, 0x00000000 },
-   { 0x00000001, 0x20480061, 0x00000000, 0x0007000f },
-   { 0x00000005, 0x20580c21, 0x00210040, 0x00000003 },
-   { 0x00800031, 0x21801d29, 0x008d0040, 0x0414a004 },
-   { 0x00000041, 0x20580c21, 0x00210058, 0x00000005 },
-   { 0x00000020, 0x34001400, 0x00001400, 0x00210058 },
-   { 0x00800001, 0x20800231, 0x00ad0180, 0x00000000 },
-   { 0x00800001, 0x20900231, 0x00ad01a0, 0x00000000 },
-   { 0x00800001, 0x20a00231, 0x00ad01c0, 0x00000000 },
-   { 0x00800001, 0x20b00231, 0x00ad01e0, 0x00000000 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x0000000e },
-   { 0x00800001, 0x20800231, 0x00ad0181, 0x00000000 },
-   { 0x00800001, 0x20900231, 0x00ad01a1, 0x00000000 },
-   { 0x00800001, 0x20a00231, 0x00ad01c1, 0x00000000 },
-   { 0x00800001, 0x20b00231, 0x00ad01e1, 0x00000000 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000009 },
-   { 0x00800001, 0x20800231, 0x00ad0182, 0x00000000 },
-   { 0x00800001, 0x20900231, 0x00ad01a2, 0x00000000 },
-   { 0x00800001, 0x20a00231, 0x00ad01c2, 0x00000000 },
-   { 0x00800001, 0x20b00231, 0x00ad01e2, 0x00000000 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000004 },
-   { 0x00800001, 0x20800231, 0x00ad0183, 0x00000000 },
-   { 0x00800001, 0x20900231, 0x00ad01a3, 0x00000000 },
-   { 0x00800001, 0x20a00231, 0x00ad01c3, 0x00000000 },
-   { 0x00800001, 0x20b00231, 0x00ad01e3, 0x00000000 },
-   { 0x00000001, 0x20480061, 0x00000000, 0x00070007 },
-   { 0x01000005, 0x20000c3c, 0x0021006c, 0x00000004 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000015 },
-   { 0x00000040, 0x20440c21, 0x00210068, 0x00000000 },
-   { 0x00800031, 0x20c01d21, 0x008d0040, 0x04110203 },
-   { 0x00000040, 0x20440c21, 0x00210044, 0x00000020 },
-   { 0x00800031, 0x20e01d21, 0x008d0040, 0x04110203 },
-   { 0x00000040, 0x20440c21, 0x00210044, 0x00000020 },
-   { 0x00800031, 0x21001d21, 0x008d0040, 0x04110203 },
-   { 0x00000040, 0x20440c21, 0x00210044, 0x00000020 },
-   { 0x00800031, 0x21201d21, 0x008d0040, 0x04110203 },
-   { 0x00000040, 0x20680c21, 0x00210068, 0x00000080 },
-   { 0x00800040, 0x20c045ad, 0x00b100c0, 0x00b10080 },
-   { 0x00800040, 0x20e045ad, 0x00b100e0, 0x00b10090 },
-   { 0x00800040, 0x210045ad, 0x00b10100, 0x00b100a0 },
-   { 0x00800040, 0x212045ad, 0x00b10120, 0x00b100b0 },
-   { 0x80800001, 0x40c001b1, 0x00b100c0, 0x00000000 },
-   { 0x80800001, 0x40e001b1, 0x00b100e0, 0x00000000 },
-   { 0x80800001, 0x410001b1, 0x00b10100, 0x00000000 },
-   { 0x80800001, 0x412001b1, 0x00b10120, 0x00000000 },
-   { 0x00800001, 0x20800231, 0x00b200c0, 0x00000000 },
-   { 0x00800001, 0x20900231, 0x00b200e0, 0x00000000 },
-   { 0x00800001, 0x20a00231, 0x00b20100, 0x00000000 },
-   { 0x00800001, 0x20b00231, 0x00b20120, 0x00000000 },
-   { 0x00802001, 0x20200022, 0x008d0080, 0x00000000 },
-   { 0x00800031, 0x24001d28, 0x008d0020, 0x05302000 },
-   { 0x00200008, 0x20200c21, 0x00450060, 0x00000001 },
-   { 0x0020000c, 0x20701ca5, 0x00450070, 0x00000001 },
-   { 0x0020000c, 0x20301ca5, 0x00450070, 0x00000001 },
-   { 0x00200040, 0x20401421, 0x00450020, 0x00450030 },
-   { 0x01000005, 0x20000c3c, 0x00210070, 0x00000001 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000088 },
-   { 0x01000005, 0x20000c3c, 0x00210074, 0x00000001 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000055 },
-   { 0x00000001, 0x20480061, 0x00000000, 0x0009000f },
-   { 0x00000005, 0x20580c21, 0x00210040, 0x00000003 },
-   { 0x00800031, 0x21801d29, 0x008d0040, 0x0415a005 },
-   { 0x00000041, 0x20580c21, 0x00210058, 0x00000011 },
-   { 0x00000020, 0x34001400, 0x00001400, 0x00210058 },
-   { 0x00800001, 0x20c00229, 0x00ad0180, 0x00000000 },
-   { 0x00800001, 0x20e00229, 0x00ad01a0, 0x00000000 },
-   { 0x00800001, 0x21000229, 0x00ad01c0, 0x00000000 },
-   { 0x00800001, 0x21200229, 0x00ad01e0, 0x00000000 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0181 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01a1 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01c1 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01e1 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0190 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01b0 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01d0 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01f0 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0191 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01b1 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01d1 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01f1 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000032 },
-   { 0x00800001, 0x20c00229, 0x00ad0181, 0x00000000 },
-   { 0x00800001, 0x20e00229, 0x00ad01a1, 0x00000000 },
-   { 0x00800001, 0x21000229, 0x00ad01c1, 0x00000000 },
-   { 0x00800001, 0x21200229, 0x00ad01e1, 0x00000000 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0181 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01a1 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01c1 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01e1 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0191 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01b1 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01d1 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01f1 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0192 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01b2 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01d2 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01f2 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000021 },
-   { 0x00800001, 0x20c00229, 0x00ad0182, 0x00000000 },
-   { 0x00800001, 0x20e00229, 0x00ad01a2, 0x00000000 },
-   { 0x00800001, 0x21000229, 0x00ad01c2, 0x00000000 },
-   { 0x00800001, 0x21200229, 0x00ad01e2, 0x00000000 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0183 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01a3 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01c3 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01e3 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0192 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01b2 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01d2 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01f2 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0193 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01b3 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01d3 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01f3 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000010 },
-   { 0x00800001, 0x20c00229, 0x00ad0183, 0x00000000 },
-   { 0x00800001, 0x20e00229, 0x00ad01a3, 0x00000000 },
-   { 0x00800001, 0x21000229, 0x00ad01c3, 0x00000000 },
-   { 0x00800001, 0x21200229, 0x00ad01e3, 0x00000000 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0184 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01a4 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01c4 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01e4 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0193 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01b3 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01d3 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01f3 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0194 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01b4 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01d4 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01f4 },
-   { 0x00800040, 0x20c02d29, 0x00b100c0, 0x00010001 },
-   { 0x00800040, 0x20e02d29, 0x00b100e0, 0x00010001 },
-   { 0x00800040, 0x21002d29, 0x00b10100, 0x00010001 },
-   { 0x00800040, 0x21202d29, 0x00b10120, 0x00010001 },
-   { 0x00800008, 0x40c02d31, 0x00b100c0, 0x00020002 },
-   { 0x00800008, 0x40e02d31, 0x00b100e0, 0x00020002 },
-   { 0x00800008, 0x41002d31, 0x00b10100, 0x00020002 },
-   { 0x00800008, 0x41202d31, 0x00b10120, 0x00020002 },
-   { 0x00800001, 0x20800231, 0x00b200c0, 0x00000000 },
-   { 0x00800001, 0x20900231, 0x00b200e0, 0x00000000 },
-   { 0x00800001, 0x20a00231, 0x00b20100, 0x00000000 },
-   { 0x00800001, 0x20b00231, 0x00b20120, 0x00000000 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000030 },
-   { 0x00000001, 0x20480061, 0x00000000, 0x0007000f },
-   { 0x00000005, 0x20580c21, 0x00210040, 0x00000003 },
-   { 0x00800031, 0x21801d29, 0x008d0040, 0x0414a005 },
-   { 0x00000041, 0x20580c21, 0x00210058, 0x00000009 },
-   { 0x00000020, 0x34001400, 0x00001400, 0x00210058 },
-   { 0x00800001, 0x20c00229, 0x00ad0180, 0x00000000 },
-   { 0x00800001, 0x20e00229, 0x00ad01a0, 0x00000000 },
-   { 0x00800001, 0x21000229, 0x00ad01c0, 0x00000000 },
-   { 0x00800001, 0x21200229, 0x00ad01e0, 0x00000000 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0181 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01a1 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01c1 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01e1 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x0000001a },
-   { 0x00800001, 0x20c00229, 0x00ad0181, 0x00000000 },
-   { 0x00800001, 0x20e00229, 0x00ad01a1, 0x00000000 },
-   { 0x00800001, 0x21000229, 0x00ad01c1, 0x00000000 },
-   { 0x00800001, 0x21200229, 0x00ad01e1, 0x00000000 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0182 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01a2 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01c2 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01e2 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000011 },
-   { 0x00800001, 0x20c00229, 0x00ad0182, 0x00000000 },
-   { 0x00800001, 0x20e00229, 0x00ad01a2, 0x00000000 },
-   { 0x00800001, 0x21000229, 0x00ad01c2, 0x00000000 },
-   { 0x00800001, 0x21200229, 0x00ad01e2, 0x00000000 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0183 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01a3 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01c3 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01e3 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000008 },
-   { 0x00800001, 0x20c00229, 0x00ad0183, 0x00000000 },
-   { 0x00800001, 0x20e00229, 0x00ad01a3, 0x00000000 },
-   { 0x00800001, 0x21000229, 0x00ad01c3, 0x00000000 },
-   { 0x00800001, 0x21200229, 0x00ad01e3, 0x00000000 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0184 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01a4 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01c4 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01e4 },
-   { 0x00800008, 0x20c02d29, 0x00b100c0, 0x00010001 },
-   { 0x00800008, 0x20e02d29, 0x00b100e0, 0x00010001 },
-   { 0x00800008, 0x21002d29, 0x00b10100, 0x00010001 },
-   { 0x00800008, 0x21202d29, 0x00b10120, 0x00010001 },
-   { 0x00800001, 0x20800231, 0x00b200c0, 0x00000000 },
-   { 0x00800001, 0x20900231, 0x00b200e0, 0x00000000 },
-   { 0x00800001, 0x20a00231, 0x00b20100, 0x00000000 },
-   { 0x00800001, 0x20b00231, 0x00b20120, 0x00000000 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x0000004e },
-   { 0x01000005, 0x20000c3c, 0x00210070, 0x00000000 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000034 },
-   { 0x00000001, 0x20480061, 0x00000000, 0x0009000f },
-   { 0x00000005, 0x20580c21, 0x00210040, 0x00000003 },
-   { 0x00800031, 0x21801d29, 0x008d0040, 0x0415a005 },
-   { 0x00000041, 0x20580c21, 0x00210058, 0x00000009 },
-   { 0x00000020, 0x34001400, 0x00001400, 0x00210058 },
-   { 0x00800001, 0x20c00229, 0x00ad0180, 0x00000000 },
-   { 0x00800001, 0x20e00229, 0x00ad01a0, 0x00000000 },
-   { 0x00800001, 0x21000229, 0x00ad01c0, 0x00000000 },
-   { 0x00800001, 0x21200229, 0x00ad01e0, 0x00000000 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0190 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01b0 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01d0 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01f0 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x0000001a },
-   { 0x00800001, 0x20c00229, 0x00ad0181, 0x00000000 },
-   { 0x00800001, 0x20e00229, 0x00ad01a1, 0x00000000 },
-   { 0x00800001, 0x21000229, 0x00ad01c1, 0x00000000 },
-   { 0x00800001, 0x21200229, 0x00ad01e1, 0x00000000 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0191 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01b1 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01d1 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01f1 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000011 },
-   { 0x00800001, 0x20c00229, 0x00ad0182, 0x00000000 },
-   { 0x00800001, 0x20e00229, 0x00ad01a2, 0x00000000 },
-   { 0x00800001, 0x21000229, 0x00ad01c2, 0x00000000 },
-   { 0x00800001, 0x21200229, 0x00ad01e2, 0x00000000 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0192 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01b2 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01d2 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01f2 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000008 },
-   { 0x00800001, 0x20c00229, 0x00ad0183, 0x00000000 },
-   { 0x00800001, 0x20e00229, 0x00ad01a3, 0x00000000 },
-   { 0x00800001, 0x21000229, 0x00ad01c3, 0x00000000 },
-   { 0x00800001, 0x21200229, 0x00ad01e3, 0x00000000 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0193 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01b3 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01d3 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01f3 },
-   { 0x00800040, 0x20c02d29, 0x00b100c0, 0x00010001 },
-   { 0x00800040, 0x20e02d29, 0x00b100e0, 0x00010001 },
-   { 0x00800040, 0x21002d29, 0x00b10100, 0x00010001 },
-   { 0x00800040, 0x21202d29, 0x00b10120, 0x00010001 },
-   { 0x80800008, 0x40c02d31, 0x00b100c0, 0x00010001 },
-   { 0x80800008, 0x40e02d31, 0x00b100e0, 0x00010001 },
-   { 0x80800008, 0x41002d31, 0x00b10100, 0x00010001 },
-   { 0x80800008, 0x41202d31, 0x00b10120, 0x00010001 },
-   { 0x00800001, 0x20800231, 0x00b200c0, 0x00000000 },
-   { 0x00800001, 0x20900231, 0x00b200e0, 0x00000000 },
-   { 0x00800001, 0x20a00231, 0x00b20100, 0x00000000 },
-   { 0x00800001, 0x20b00231, 0x00b20120, 0x00000000 },
-   { 0x00000001, 0x20480061, 0x00000000, 0x0007000f },
-   { 0x00000005, 0x20580c21, 0x00210040, 0x00000003 },
-   { 0x00800031, 0x21801d29, 0x008d0040, 0x0414a005 },
-   { 0x00000041, 0x20580c21, 0x00210058, 0x00000005 },
-   { 0x00000020, 0x34001400, 0x00001400, 0x00210058 },
-   { 0x00800001, 0x20800231, 0x00ad0180, 0x00000000 },
-   { 0x00800001, 0x20900231, 0x00ad01a0, 0x00000000 },
-   { 0x00800001, 0x20a00231, 0x00ad01c0, 0x00000000 },
-   { 0x00800001, 0x20b00231, 0x00ad01e0, 0x00000000 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x0000000e },
-   { 0x00800001, 0x20800231, 0x00ad0181, 0x00000000 },
-   { 0x00800001, 0x20900231, 0x00ad01a1, 0x00000000 },
-   { 0x00800001, 0x20a00231, 0x00ad01c1, 0x00000000 },
-   { 0x00800001, 0x20b00231, 0x00ad01e1, 0x00000000 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000009 },
-   { 0x00800001, 0x20800231, 0x00ad0182, 0x00000000 },
-   { 0x00800001, 0x20900231, 0x00ad01a2, 0x00000000 },
-   { 0x00800001, 0x20a00231, 0x00ad01c2, 0x00000000 },
-   { 0x00800001, 0x20b00231, 0x00ad01e2, 0x00000000 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000004 },
-   { 0x00800001, 0x20800231, 0x00ad0183, 0x00000000 },
-   { 0x00800001, 0x20900231, 0x00ad01a3, 0x00000000 },
-   { 0x00800001, 0x20a00231, 0x00ad01c3, 0x00000000 },
-   { 0x00800001, 0x20b00231, 0x00ad01e3, 0x00000000 },
-   { 0x00000001, 0x20480061, 0x00000000, 0x00070007 },
-   { 0x01000005, 0x20000c3c, 0x0021006c, 0x00000002 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000015 },
-   { 0x00000040, 0x20440c21, 0x00210068, 0x00000000 },
-   { 0x00800031, 0x20c01d21, 0x008d0040, 0x04110203 },
-   { 0x00000040, 0x20440c21, 0x00210044, 0x00000020 },
-   { 0x00800031, 0x20e01d21, 0x008d0040, 0x04110203 },
-   { 0x00000040, 0x20440c21, 0x00210044, 0x00000020 },
-   { 0x00800031, 0x21001d21, 0x008d0040, 0x04110203 },
-   { 0x00000040, 0x20440c21, 0x00210044, 0x00000020 },
-   { 0x00800031, 0x21201d21, 0x008d0040, 0x04110203 },
-   { 0x00000040, 0x20680c21, 0x00210068, 0x00000080 },
-   { 0x00800040, 0x20c045ad, 0x00b100c0, 0x00b10080 },
-   { 0x00800040, 0x20e045ad, 0x00b100e0, 0x00b10090 },
-   { 0x00800040, 0x210045ad, 0x00b10100, 0x00b100a0 },
-   { 0x00800040, 0x212045ad, 0x00b10120, 0x00b100b0 },
-   { 0x80800001, 0x40c001b1, 0x00b100c0, 0x00000000 },
-   { 0x80800001, 0x40e001b1, 0x00b100e0, 0x00000000 },
-   { 0x80800001, 0x410001b1, 0x00b10100, 0x00000000 },
-   { 0x80800001, 0x412001b1, 0x00b10120, 0x00000000 },
-   { 0x00800001, 0x20800231, 0x00b200c0, 0x00000000 },
-   { 0x00800001, 0x20900231, 0x00b200e0, 0x00000000 },
-   { 0x00800001, 0x20a00231, 0x00b20100, 0x00000000 },
-   { 0x00800001, 0x20b00231, 0x00b20120, 0x00000000 },
-   { 0x00802001, 0x20200022, 0x008d0080, 0x00000000 },
-   { 0x00800031, 0x24001d28, 0x008d0020, 0x05302001 },
-   { 0x00200040, 0x20401421, 0x00450020, 0x00450030 },
-   { 0x01000005, 0x20000c3c, 0x00210070, 0x00000001 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000088 },
-   { 0x01000005, 0x20000c3c, 0x00210074, 0x00000001 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000055 },
-   { 0x00000001, 0x20480061, 0x00000000, 0x0009000f },
-   { 0x00000005, 0x20580c21, 0x00210040, 0x00000003 },
-   { 0x00800031, 0x21801d29, 0x008d0040, 0x0415a006 },
-   { 0x00000041, 0x20580c21, 0x00210058, 0x00000011 },
-   { 0x00000020, 0x34001400, 0x00001400, 0x00210058 },
-   { 0x00800001, 0x20c00229, 0x00ad0180, 0x00000000 },
-   { 0x00800001, 0x20e00229, 0x00ad01a0, 0x00000000 },
-   { 0x00800001, 0x21000229, 0x00ad01c0, 0x00000000 },
-   { 0x00800001, 0x21200229, 0x00ad01e0, 0x00000000 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0181 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01a1 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01c1 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01e1 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0190 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01b0 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01d0 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01f0 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0191 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01b1 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01d1 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01f1 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000032 },
-   { 0x00800001, 0x20c00229, 0x00ad0181, 0x00000000 },
-   { 0x00800001, 0x20e00229, 0x00ad01a1, 0x00000000 },
-   { 0x00800001, 0x21000229, 0x00ad01c1, 0x00000000 },
-   { 0x00800001, 0x21200229, 0x00ad01e1, 0x00000000 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0181 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01a1 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01c1 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01e1 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0191 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01b1 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01d1 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01f1 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0192 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01b2 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01d2 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01f2 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000021 },
-   { 0x00800001, 0x20c00229, 0x00ad0182, 0x00000000 },
-   { 0x00800001, 0x20e00229, 0x00ad01a2, 0x00000000 },
-   { 0x00800001, 0x21000229, 0x00ad01c2, 0x00000000 },
-   { 0x00800001, 0x21200229, 0x00ad01e2, 0x00000000 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0183 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01a3 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01c3 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01e3 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0192 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01b2 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01d2 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01f2 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0193 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01b3 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01d3 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01f3 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000010 },
-   { 0x00800001, 0x20c00229, 0x00ad0183, 0x00000000 },
-   { 0x00800001, 0x20e00229, 0x00ad01a3, 0x00000000 },
-   { 0x00800001, 0x21000229, 0x00ad01c3, 0x00000000 },
-   { 0x00800001, 0x21200229, 0x00ad01e3, 0x00000000 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0184 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01a4 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01c4 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01e4 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0193 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01b3 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01d3 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01f3 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0194 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01b4 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01d4 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01f4 },
-   { 0x00800040, 0x20c02d29, 0x00b100c0, 0x00010001 },
-   { 0x00800040, 0x20e02d29, 0x00b100e0, 0x00010001 },
-   { 0x00800040, 0x21002d29, 0x00b10100, 0x00010001 },
-   { 0x00800040, 0x21202d29, 0x00b10120, 0x00010001 },
-   { 0x00800008, 0x40c02d31, 0x00b100c0, 0x00020002 },
-   { 0x00800008, 0x40e02d31, 0x00b100e0, 0x00020002 },
-   { 0x00800008, 0x41002d31, 0x00b10100, 0x00020002 },
-   { 0x00800008, 0x41202d31, 0x00b10120, 0x00020002 },
-   { 0x00800001, 0x20800231, 0x00b200c0, 0x00000000 },
-   { 0x00800001, 0x20900231, 0x00b200e0, 0x00000000 },
-   { 0x00800001, 0x20a00231, 0x00b20100, 0x00000000 },
-   { 0x00800001, 0x20b00231, 0x00b20120, 0x00000000 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000030 },
-   { 0x00000001, 0x20480061, 0x00000000, 0x0007000f },
-   { 0x00000005, 0x20580c21, 0x00210040, 0x00000003 },
-   { 0x00800031, 0x21801d29, 0x008d0040, 0x0414a006 },
-   { 0x00000041, 0x20580c21, 0x00210058, 0x00000009 },
-   { 0x00000020, 0x34001400, 0x00001400, 0x00210058 },
-   { 0x00800001, 0x20c00229, 0x00ad0180, 0x00000000 },
-   { 0x00800001, 0x20e00229, 0x00ad01a0, 0x00000000 },
-   { 0x00800001, 0x21000229, 0x00ad01c0, 0x00000000 },
-   { 0x00800001, 0x21200229, 0x00ad01e0, 0x00000000 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0181 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01a1 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01c1 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01e1 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x0000001a },
-   { 0x00800001, 0x20c00229, 0x00ad0181, 0x00000000 },
-   { 0x00800001, 0x20e00229, 0x00ad01a1, 0x00000000 },
-   { 0x00800001, 0x21000229, 0x00ad01c1, 0x00000000 },
-   { 0x00800001, 0x21200229, 0x00ad01e1, 0x00000000 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0182 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01a2 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01c2 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01e2 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000011 },
-   { 0x00800001, 0x20c00229, 0x00ad0182, 0x00000000 },
-   { 0x00800001, 0x20e00229, 0x00ad01a2, 0x00000000 },
-   { 0x00800001, 0x21000229, 0x00ad01c2, 0x00000000 },
-   { 0x00800001, 0x21200229, 0x00ad01e2, 0x00000000 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0183 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01a3 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01c3 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01e3 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000008 },
-   { 0x00800001, 0x20c00229, 0x00ad0183, 0x00000000 },
-   { 0x00800001, 0x20e00229, 0x00ad01a3, 0x00000000 },
-   { 0x00800001, 0x21000229, 0x00ad01c3, 0x00000000 },
-   { 0x00800001, 0x21200229, 0x00ad01e3, 0x00000000 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0184 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01a4 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01c4 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01e4 },
-   { 0x00800008, 0x20c02d29, 0x00b100c0, 0x00010001 },
-   { 0x00800008, 0x20e02d29, 0x00b100e0, 0x00010001 },
-   { 0x00800008, 0x21002d29, 0x00b10100, 0x00010001 },
-   { 0x00800008, 0x21202d29, 0x00b10120, 0x00010001 },
-   { 0x00800001, 0x20800231, 0x00b200c0, 0x00000000 },
-   { 0x00800001, 0x20900231, 0x00b200e0, 0x00000000 },
-   { 0x00800001, 0x20a00231, 0x00b20100, 0x00000000 },
-   { 0x00800001, 0x20b00231, 0x00b20120, 0x00000000 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x0000004e },
-   { 0x01000005, 0x20000c3c, 0x00210070, 0x00000000 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000034 },
-   { 0x00000001, 0x20480061, 0x00000000, 0x0009000f },
-   { 0x00000005, 0x20580c21, 0x00210040, 0x00000003 },
-   { 0x00800031, 0x21801d29, 0x008d0040, 0x0415a006 },
-   { 0x00000041, 0x20580c21, 0x00210058, 0x00000009 },
-   { 0x00000020, 0x34001400, 0x00001400, 0x00210058 },
-   { 0x00800001, 0x20c00229, 0x00ad0180, 0x00000000 },
-   { 0x00800001, 0x20e00229, 0x00ad01a0, 0x00000000 },
-   { 0x00800001, 0x21000229, 0x00ad01c0, 0x00000000 },
-   { 0x00800001, 0x21200229, 0x00ad01e0, 0x00000000 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0190 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01b0 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01d0 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01f0 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x0000001a },
-   { 0x00800001, 0x20c00229, 0x00ad0181, 0x00000000 },
-   { 0x00800001, 0x20e00229, 0x00ad01a1, 0x00000000 },
-   { 0x00800001, 0x21000229, 0x00ad01c1, 0x00000000 },
-   { 0x00800001, 0x21200229, 0x00ad01e1, 0x00000000 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0191 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01b1 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01d1 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01f1 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000011 },
-   { 0x00800001, 0x20c00229, 0x00ad0182, 0x00000000 },
-   { 0x00800001, 0x20e00229, 0x00ad01a2, 0x00000000 },
-   { 0x00800001, 0x21000229, 0x00ad01c2, 0x00000000 },
-   { 0x00800001, 0x21200229, 0x00ad01e2, 0x00000000 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0192 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01b2 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01d2 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01f2 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000008 },
-   { 0x00800001, 0x20c00229, 0x00ad0183, 0x00000000 },
-   { 0x00800001, 0x20e00229, 0x00ad01a3, 0x00000000 },
-   { 0x00800001, 0x21000229, 0x00ad01c3, 0x00000000 },
-   { 0x00800001, 0x21200229, 0x00ad01e3, 0x00000000 },
-   { 0x00800040, 0x20c04529, 0x00b100c0, 0x00ad0193 },
-   { 0x00800040, 0x20e04529, 0x00b100e0, 0x00ad01b3 },
-   { 0x00800040, 0x21004529, 0x00b10100, 0x00ad01d3 },
-   { 0x00800040, 0x21204529, 0x00b10120, 0x00ad01f3 },
-   { 0x00800040, 0x20c02d29, 0x00b100c0, 0x00010001 },
-   { 0x00800040, 0x20e02d29, 0x00b100e0, 0x00010001 },
-   { 0x00800040, 0x21002d29, 0x00b10100, 0x00010001 },
-   { 0x00800040, 0x21202d29, 0x00b10120, 0x00010001 },
-   { 0x80800008, 0x40c02d31, 0x00b100c0, 0x00010001 },
-   { 0x80800008, 0x40e02d31, 0x00b100e0, 0x00010001 },
-   { 0x80800008, 0x41002d31, 0x00b10100, 0x00010001 },
-   { 0x80800008, 0x41202d31, 0x00b10120, 0x00010001 },
-   { 0x00800001, 0x20800231, 0x00b200c0, 0x00000000 },
-   { 0x00800001, 0x20900231, 0x00b200e0, 0x00000000 },
-   { 0x00800001, 0x20a00231, 0x00b20100, 0x00000000 },
-   { 0x00800001, 0x20b00231, 0x00b20120, 0x00000000 },
-   { 0x00000001, 0x20480061, 0x00000000, 0x0007000f },
-   { 0x00000005, 0x20580c21, 0x00210040, 0x00000003 },
-   { 0x00800031, 0x21801d29, 0x008d0040, 0x0414a006 },
-   { 0x00000041, 0x20580c21, 0x00210058, 0x00000005 },
-   { 0x00000020, 0x34001400, 0x00001400, 0x00210058 },
-   { 0x00800001, 0x20800231, 0x00ad0180, 0x00000000 },
-   { 0x00800001, 0x20900231, 0x00ad01a0, 0x00000000 },
-   { 0x00800001, 0x20a00231, 0x00ad01c0, 0x00000000 },
-   { 0x00800001, 0x20b00231, 0x00ad01e0, 0x00000000 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x0000000e },
-   { 0x00800001, 0x20800231, 0x00ad0181, 0x00000000 },
-   { 0x00800001, 0x20900231, 0x00ad01a1, 0x00000000 },
-   { 0x00800001, 0x20a00231, 0x00ad01c1, 0x00000000 },
-   { 0x00800001, 0x20b00231, 0x00ad01e1, 0x00000000 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000009 },
-   { 0x00800001, 0x20800231, 0x00ad0182, 0x00000000 },
-   { 0x00800001, 0x20900231, 0x00ad01a2, 0x00000000 },
-   { 0x00800001, 0x20a00231, 0x00ad01c2, 0x00000000 },
-   { 0x00800001, 0x20b00231, 0x00ad01e2, 0x00000000 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000004 },
-   { 0x00800001, 0x20800231, 0x00ad0183, 0x00000000 },
-   { 0x00800001, 0x20900231, 0x00ad01a3, 0x00000000 },
-   { 0x00800001, 0x20a00231, 0x00ad01c3, 0x00000000 },
-   { 0x00800001, 0x20b00231, 0x00ad01e3, 0x00000000 },
-   { 0x00000001, 0x20480061, 0x00000000, 0x00070007 },
-   { 0x01000005, 0x20000c3c, 0x0021006c, 0x00000001 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000015 },
-   { 0x00000040, 0x20440c21, 0x00210068, 0x00000000 },
-   { 0x00800031, 0x20c01d21, 0x008d0040, 0x04110203 },
-   { 0x00000040, 0x20440c21, 0x00210044, 0x00000020 },
-   { 0x00800031, 0x20e01d21, 0x008d0040, 0x04110203 },
-   { 0x00000040, 0x20440c21, 0x00210044, 0x00000020 },
-   { 0x00800031, 0x21001d21, 0x008d0040, 0x04110203 },
-   { 0x00000040, 0x20440c21, 0x00210044, 0x00000020 },
-   { 0x00800031, 0x21201d21, 0x008d0040, 0x04110203 },
-   { 0x00000040, 0x20680c21, 0x00210068, 0x00000080 },
-   { 0x00800040, 0x20c045ad, 0x00b100c0, 0x00b10080 },
-   { 0x00800040, 0x20e045ad, 0x00b100e0, 0x00b10090 },
-   { 0x00800040, 0x210045ad, 0x00b10100, 0x00b100a0 },
-   { 0x00800040, 0x212045ad, 0x00b10120, 0x00b100b0 },
-   { 0x80800001, 0x40c001b1, 0x00b100c0, 0x00000000 },
-   { 0x80800001, 0x40e001b1, 0x00b100e0, 0x00000000 },
-   { 0x80800001, 0x410001b1, 0x00b10100, 0x00000000 },
-   { 0x80800001, 0x412001b1, 0x00b10120, 0x00000000 },
-   { 0x00800001, 0x20800231, 0x00b200c0, 0x00000000 },
-   { 0x00800001, 0x20900231, 0x00b200e0, 0x00000000 },
-   { 0x00800001, 0x20a00231, 0x00b20100, 0x00000000 },
-   { 0x00800001, 0x20b00231, 0x00b20120, 0x00000000 },
-   { 0x00802001, 0x20200022, 0x008d0080, 0x00000000 },
-   { 0x00800031, 0x24001d28, 0x008d0020, 0x05302002 },
-   { 0x00800031, 0x24001d28, 0x008d0000, 0x87100000 },
diff --git a/src/xvmc/i965_xvmc.c b/src/xvmc/i965_xvmc.c
index 31d6896..1ffda27 100644
--- a/src/xvmc/i965_xvmc.c
+++ b/src/xvmc/i965_xvmc.c
@@ -96,13 +96,6 @@ static const uint32_t dual_prime_igd_kernel_static[][4]= {
 
 #define ALIGN(i,m)    (((i) + (m) - 1) & ~((m) - 1))
 
-#define	VFE_GENERIC_MODE	0x0
-#define	VFE_VLD_MODE		0x1
-#define VFE_IS_MODE		0x2
-#define VFE_AVC_MC_MODE		0x4
-#define VFE_AVC_IT_MODE		0x7
-#define VFE_VC1_IT_MODE		0x7
-
 #define MAX_SURFACE_NUM	10
 #define DESCRIPTOR_NUM 12
 
diff --git a/src/xvmc/intel_xvmc.c b/src/xvmc/intel_xvmc.c
index 4b73caa..76302d9 100644
--- a/src/xvmc/intel_xvmc.c
+++ b/src/xvmc/intel_xvmc.c
@@ -337,8 +337,10 @@ _X_EXPORT Status XvMCCreateContext(Display *display, XvPortID port,
 	    case XVMC_I965_MPEG2_MC:
 		xvmc_driver = &i965_xvmc_mc_driver;
 		break;
-	    case XVMC_I945_MPEG2_VLD:
 	    case XVMC_I965_MPEG2_VLD:
+		xvmc_driver = &xvmc_vld_driver;
+		break;
+	    case XVMC_I945_MPEG2_VLD:
 	    default:
 		XVMC_ERR("unimplemented xvmc type %d", comm->type);
 		XFree(priv_data);
@@ -1159,3 +1161,47 @@ _X_EXPORT Status XvMCGetAttribute(Display *display, XvMCContext *context,
 {
     return Success;
 }
+
+_X_EXPORT Status XvMCBeginSurface(Display *display, XvMCContext *context,
+                         XvMCSurface *target,
+                         XvMCSurface *past,
+                         XvMCSurface *future,
+			 const XvMCMpegControl *control)
+{
+    if (xvmc_driver->begin_surface(display, context, 
+		target, past, future, control)) {
+	XVMC_ERR("BeginSurface fail\n");
+	return BadValue;
+    }
+    return Success;
+}
+
+_X_EXPORT Status XvMCLoadQMatrix(Display *display, XvMCContext *context,
+	const XvMCQMatrix *qmx)
+{
+    if (xvmc_driver->load_qmatrix(display, context, qmx)) {
+	XVMC_ERR("LoadQMatrix fail\n");
+	return BadValue;
+    }
+    return Success;
+}
+
+_X_EXPORT Status XvMCPutSlice(Display *display, XvMCContext *context,
+			char *slice, int nbytes)
+{
+    if (xvmc_driver->put_slice(display, context, slice, nbytes)) {
+	XVMC_ERR("PutSlice fail\n");
+	return BadValue;
+    }
+    return Success;
+}
+
+_X_EXPORT Status XvMCPutSlice2(Display *display, XvMCContext *context,
+			char *slice, int nbytes, int slice_code)
+{
+    if (xvmc_driver->put_slice2(display, context, slice, nbytes, slice_code)) {
+	XVMC_ERR("PutSlice2 fail\n");
+	return BadValue;
+    }
+    return Success;
+}
diff --git a/src/xvmc/intel_xvmc.h b/src/xvmc/intel_xvmc.h
index 9ef2121..73a37a0 100644
--- a/src/xvmc/intel_xvmc.h
+++ b/src/xvmc/intel_xvmc.h
@@ -51,6 +51,7 @@
 #include <X11/extensions/Xvlib.h>
 #include <X11/extensions/XvMC.h>
 #include <X11/extensions/XvMClib.h>
+#include <X11/extensions/vldXvMC.h>
 #include <drm_sarea.h>
 
 #include "xf86dri.h"
@@ -197,11 +198,23 @@ typedef struct _intel_xvmc_driver {
 
     Status (*get_surface_status)(Display *display, XvMCSurface *surface, int *stat);
 
-    /* XXX more for vld */
+    Status (*begin_surface)(Display *display, XvMCContext *context,
+	    XvMCSurface *target_surface,
+	    XvMCSurface *past_surface,
+	    XvMCSurface *future_surface,
+	    const XvMCMpegControl *control);
+    Status (*load_qmatrix)(Display *display, XvMCContext *context,
+	    	const XvMCQMatrix *qmx);
+    Status (*put_slice)(Display *display, XvMCContext *context,
+	    	unsigned char *slice, int bytes);
+    Status (*put_slice2)(Display *display, XvMCContext *context,
+	    	unsigned char *slice, int bytes, int slice_code);
+    
 } intel_xvmc_driver_t, *intel_xvmc_driver_ptr;
 
 extern struct _intel_xvmc_driver i915_xvmc_mc_driver;
 extern struct _intel_xvmc_driver i965_xvmc_mc_driver;
+extern struct _intel_xvmc_driver xvmc_vld_driver;
 extern struct _intel_xvmc_driver *xvmc_driver;
 
 #define SET_BLOCKED_SIGSET()   do {    \
@@ -262,4 +275,12 @@ extern void intel_xvmc_dump_render(XvMCContext *context, unsigned int picture_st
 	    unsigned int num_macroblocks, unsigned int first_macroblock,
 	    XvMCMacroBlockArray *macroblock_array, XvMCBlockArray *blocks);
 
+
+#define	VFE_GENERIC_MODE	0x0
+#define	VFE_VLD_MODE		0x1
+#define VFE_IS_MODE		0x2
+#define VFE_AVC_MC_MODE		0x4
+#define VFE_AVC_IT_MODE		0x7
+#define VFE_VC1_IT_MODE		0x7
+
 #endif
diff --git a/src/xvmc/shader/Makefile.am b/src/xvmc/shader/Makefile.am
new file mode 100644
index 0000000..1a27c83
--- /dev/null
+++ b/src/xvmc/shader/Makefile.am
@@ -0,0 +1 @@
+SUBDIRS = vld 
diff --git a/src/xvmc/shader/vld/Makefile.am b/src/xvmc/shader/vld/Makefile.am
new file mode 100644
index 0000000..49e2043
--- /dev/null
+++ b/src/xvmc/shader/vld/Makefile.am
@@ -0,0 +1,31 @@
+INTEL_G4A = ipicture.g4a 	\
+	    lib.g4a		\
+	    frame_forward.g4a	\
+	    frame_backward.g4a	\
+	    frame_f_b.g4a	\
+	    field_forward.g4a	\
+	    field_backward.g4a	\
+	    field_f_b.g4a	
+
+INTEL_G4B = ipicture.g4b	\
+	    lib.g4b		\
+	    frame_forward.g4b	\
+	    frame_backward.g4b	\
+	    frame_f_b.g4b	\
+	    field_forward.g4b	\
+	    field_backward.g4b  \
+	    field_f_b.g4b
+
+if HAVE_GEN4ASM
+
+SUFFIXES = .g4a .g4b
+.g4a.g4b:
+	m4 $*.g4a > $*.g4m && intel-gen4asm -o $@ $*.g4m && rm $*.g4m
+
+$(INTEL_G4B): $(INTEL_G4I)
+
+BUILT_SOURCES= $(INTEL_G4B)
+
+clean-local:
+	-rm -f $(INTEL_G4B)
+endif    
diff --git a/src/xvmc/shader/vld/addidct.g4i b/src/xvmc/shader/vld/addidct.g4i
new file mode 100644
index 0000000..b57548d
--- /dev/null
+++ b/src/xvmc/shader/vld/addidct.g4i
@@ -0,0 +1,152 @@
+/*
+ * Copyright © 2008 Intel Corporation
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice (including the next
+ * paragraph) shall be included in all copies or substantial portions of the
+ * Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
+ * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+ * SOFTWARE.
+ *
+ * Author:
+ *    Zou Nan hai <nanhai.zou at intel.com>
+ *    Yan Li <li.l.yan at intel.com>
+ *    Liu Xi bin<xibin.liu at intel.com>
+ */
+/* GRF allocation:
+   g1~g30: constant buffer
+           g1~g2:intra IQ matrix
+           g3~g4:non intra IQ matrix
+           g5~g20:IDCT table
+   g31:    thread payload 
+   g32:    message descriptor for reading reference data
+   g58~g81:reference data
+   g82:    thread payload backup
+   g83~g106:IDCT data                           */
+mov (2) g31.0<1>UD g82.12<2,2,1>UW {align1};          //restore x and y
+
+and.nz (1) null g82.2<1,1,1>UW 0x20UW {align1};       //dct_type
+(f0) jmpi field_dct;
+
+add (16) g58.0<1>W g83.0<16,16,1>W g58.0<16,16,2>UB {align1};
+add (16) g59.0<1>W g84.0<16,16,1>W g59.0<16,16,2>UB {align1};
+add (16) g60.0<1>W g85.0<16,16,1>W g60.0<16,16,2>UB {align1};
+add (16) g61.0<1>W g86.0<16,16,1>W g61.0<16,16,2>UB {align1};
+add (16) g62.0<1>W g87.0<16,16,1>W g62.0<16,16,2>UB {align1};
+add (16) g63.0<1>W g88.0<16,16,1>W g63.0<16,16,2>UB {align1};
+add (16) g64.0<1>W g89.0<16,16,1>W g64.0<16,16,2>UB {align1};
+add (16) g65.0<1>W g90.0<16,16,1>W g65.0<16,16,2>UB {align1};
+add (16) g66.0<1>W g91.0<16,16,1>W g66.0<16,16,2>UB {align1};
+add (16) g67.0<1>W g92.0<16,16,1>W g67.0<16,16,2>UB {align1};
+add (16) g68.0<1>W g93.0<16,16,1>W g68.0<16,16,2>UB {align1};
+add (16) g69.0<1>W g94.0<16,16,1>W g69.0<16,16,2>UB {align1};
+add (16) g70.0<1>W g95.0<16,16,1>W g70.0<16,16,2>UB {align1};
+add (16) g71.0<1>W g96.0<16,16,1>W g71.0<16,16,2>UB {align1};
+add (16) g72.0<1>W g97.0<16,16,1>W g72.0<16,16,2>UB {align1};
+add (16) g73.0<1>W g98.0<16,16,1>W g73.0<16,16,2>UB {align1};
+jmpi write_back;
+
+field_dct:
+add (16) g58.0<1>W g83.0<16,16,1>W g58.0<16,16,2>UB {align1};
+add (16) g59.0<1>W g91.0<16,16,1>W g59.0<16,16,2>UB {align1};
+add (16) g60.0<1>W g84.0<16,16,1>W g60.0<16,16,2>UB {align1};
+add (16) g61.0<1>W g92.0<16,16,1>W g61.0<16,16,2>UB {align1};
+add (16) g62.0<1>W g85.0<16,16,1>W g62.0<16,16,2>UB {align1};
+add (16) g63.0<1>W g93.0<16,16,1>W g63.0<16,16,2>UB {align1};
+add (16) g64.0<1>W g86.0<16,16,1>W g64.0<16,16,2>UB {align1};
+add (16) g65.0<1>W g94.0<16,16,1>W g65.0<16,16,2>UB {align1};
+add (16) g66.0<1>W g87.0<16,16,1>W g66.0<16,16,2>UB {align1};
+add (16) g67.0<1>W g95.0<16,16,1>W g67.0<16,16,2>UB {align1};
+add (16) g68.0<1>W g88.0<16,16,1>W g68.0<16,16,2>UB {align1};
+add (16) g69.0<1>W g96.0<16,16,1>W g69.0<16,16,2>UB {align1};
+add (16) g70.0<1>W g89.0<16,16,1>W g70.0<16,16,2>UB {align1};
+add (16) g71.0<1>W g97.0<16,16,1>W g71.0<16,16,2>UB {align1};
+add (16) g72.0<1>W g90.0<16,16,1>W g72.0<16,16,2>UB {align1};
+add (16) g73.0<1>W g98.0<16,16,1>W g73.0<16,16,2>UB {align1};
+
+write_back:
+mov (1) g31.8<1>UD 0x00F000FUD {align1};
+mov.sat (16) g58.0<2>UB g58.0<16,16,1>W {align1};
+mov.sat (16) g59.0<2>UB g59.0<16,16,1>W {align1};
+mov.sat (16) g60.0<2>UB g60.0<16,16,1>W {align1};
+mov.sat (16) g61.0<2>UB g61.0<16,16,1>W {align1};
+mov.sat (16) g62.0<2>UB g62.0<16,16,1>W {align1};
+mov.sat (16) g63.0<2>UB g63.0<16,16,1>W {align1};
+mov.sat (16) g64.0<2>UB g64.0<16,16,1>W {align1};
+mov.sat (16) g65.0<2>UB g65.0<16,16,1>W {align1};
+mov.sat (16) g66.0<2>UB g66.0<16,16,1>W {align1};
+mov.sat (16) g67.0<2>UB g67.0<16,16,1>W {align1};
+mov.sat (16) g68.0<2>UB g68.0<16,16,1>W {align1};
+mov.sat (16) g69.0<2>UB g69.0<16,16,1>W {align1};
+mov.sat (16) g70.0<2>UB g70.0<16,16,1>W {align1};
+mov.sat (16) g71.0<2>UB g71.0<16,16,1>W {align1};
+mov.sat (16) g72.0<2>UB g72.0<16,16,1>W {align1};
+mov.sat (16) g73.0<2>UB g73.0<16,16,1>W {align1};
+
+mov (16) m1.0<1>UB  g58.0<16,16,2>UB {align1};
+mov (16) m1.16<1>UB g59.0<16,16,2>UB {align1};
+mov (16) m2.0<1>UB  g60.0<16,16,2>UB {align1};
+mov (16) m2.16<1>UB g61.0<16,16,2>UB {align1};
+mov (16) m3.0<1>UB  g62.0<16,16,2>UB {align1};
+mov (16) m3.16<1>UB g63.0<16,16,2>UB {align1};
+mov (16) m4.0<1>UB  g64.0<16,16,2>UB {align1};
+mov (16) m4.16<1>UB g65.0<16,16,2>UB {align1};
+mov (16) m5.0<1>UB  g66.0<16,16,2>UB {align1};
+mov (16) m5.16<1>UB g67.0<16,16,2>UB {align1};
+mov (16) m6.0<1>UB  g68.0<16,16,2>UB {align1};
+mov (16) m6.16<1>UB g69.0<16,16,2>UB {align1};
+mov (16) m7.0<1>UB  g70.0<16,16,2>UB {align1};
+mov (16) m7.16<1>UB g71.0<16,16,2>UB {align1};
+mov (16) m8.0<1>UB  g72.0<16,16,2>UB {align1};
+mov (16) m8.16<1>UB g73.0<16,16,2>UB {align1};
+send (16) 0 acc0<1>UW g31<8,8,1>UW write(0,0,2,0) mlen 9 rlen 0 {align1};
+
+//U
+mov (1) g31.8<1>UD 0x0070007UD  { align1 };
+shr (2) g31.0<1>UD g31.0<2,2,1>UD 1D {align1};
+add (16) g74.0<1>W g99.0<16,16,1>W g74.0<16,16,1>UW {align1};
+add (16) g75.0<1>W g100.0<16,16,1>W g75.0<16,16,1>UW {align1};
+add (16) g76.0<1>W g101.0<16,16,1>W g76.0<16,16,1>UW {align1};
+add (16) g77.0<1>W g102.0<16,16,1>W g77.0<16,16,1>UW {align1};
+mov.sat (16) g74.0<2>UB g74.0<16,16,1>W {align1};
+mov.sat (16) g75.0<2>UB g75.0<16,16,1>W {align1};
+mov.sat (16) g76.0<2>UB g76.0<16,16,1>W {align1};
+mov.sat (16) g77.0<2>UB g77.0<16,16,1>W {align1};
+
+mov (16) m1.0<1>UB g74.0<16,16,2>UB {align1};
+mov (16) m1.16<1>UB g75.0<16,16,2>UB {align1};
+mov (16) m2.0<1>UB g76.0<16,16,2>UB {align1};
+mov (16) m2.16<1>UB g77.0<16,16,2>UB {align1};
+send (16) 0 acc0<1>UW g31<8,8,1>UW write(1, 0, 2, 0) mlen 3 rlen 0 { align1 };
+
+//V
+add (16) g78.0<1>UW g103.0<16,16,1>W g78.0<16,16,1>UW {align1};
+add (16) g79.0<1>UW g104.0<16,16,1>W g79.0<16,16,1>UW {align1};
+add (16) g80.0<1>UW g105.0<16,16,1>W g80.0<16,16,1>UW {align1};
+add (16) g81.0<1>UW g106.0<16,16,1>W g81.0<16,16,1>UW {align1};
+mov.sat (16) g78.0<2>UB g78.0<16,16,1>W {align1};
+mov.sat (16) g79.0<2>UB g79.0<16,16,1>W {align1};
+mov.sat (16) g80.0<2>UB g80.0<16,16,1>W {align1};
+mov.sat (16) g81.0<2>UB g81.0<16,16,1>W {align1};
+
+mov (16) m1.0<1>UB g78.0<16,16,2>UB {align1};
+mov (16) m1.16<1>UB g79.0<16,16,2>UB {align1};
+mov (16) m2.0<1>UB g80.0<16,16,2>UB {align1};
+mov (16) m2.16<1>UB g81.0<16,16,2>UB {align1};
+send (16) 0 acc0<1>UW g31<8,8,1>UW write(2, 0, 2, 0) mlen 3 rlen 0 { align1 };
+
+send (16) 0 acc0<1>UW g0<8,8,1>UW
+        thread_spawner(0, 0, 0) mlen 1 rlen 0 { align1 EOT};
+
diff --git a/src/xvmc/shader/vld/do_iq_intra.g4i b/src/xvmc/shader/vld/do_iq_intra.g4i
new file mode 100644
index 0000000..29bd020
--- /dev/null
+++ b/src/xvmc/shader/vld/do_iq_intra.g4i
@@ -0,0 +1,64 @@
+/*
+ * Copyright © 2008 Intel Corporation
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice (including the next
+ * paragraph) shall be included in all copies or substantial portions of the
+ * Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
+ * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+ * SOFTWARE.
+ *
+ * Author:
+ *    Zou Nan hai <nanhai.zou at intel.com>
+ *    Yan Li <li.l.yan at intel.com>
+ *    Liu Xi bin<xibin.liu at intel.com>
+ */
+/* GRF allocation:
+   g1~g30: constant buffer
+           g1~g2:intra IQ matrix
+           g3~g4:non intra IQ matrix
+           g5~g20:IDCT table 
+   g112~g115: intra IQ matrix in UW format (in order to use instruction compress), copys from g1~g2
+   g[a0.0]:DCT data of a block
+   g125:   ip before jump
+   if(v==0 && u==0 && intra_mb) 
+        F''[v][u] = QF[v][u] * intra_dc_mult
+   else 
+        F''[v][u] = (QF[v][u]*W[w][v][u]*quantiser_scale*2)/32       
+*/
+DO_IQ_INTRA:
+add (1) a0.0<1>UD a0.0<1,1,1>UD 0x00200020UD {align1};
+mov (1) g111.0<1>W g[a0.0]<1,1,1>W  {align1};
+mul (16) g116.0<1>D g[a0.0]<8,8,1>W g112.0<8,8,1>UW {align1 compr};
+mul (16) g116.0<1>D g116.0<8,8,1>D g109.0<8,8,0>UW {align1 compr};
+asr (16) g116.0<1>D g116.0<8,8,1>D 4UW {align1 compr};
+mul (1) g116.0<1>D g111<1,1,1>W g109.4<1,1,1>UW {align1};  //intra_dc_mult
+
+add (1) a0.0<1>UD a0.0<1,1,1>UD 0x00200020UD {align1};
+mul (16) g118.0<1>D g[a0.0]<8,8,1>W g113.0<8,8,1>UW {align1 compr};
+mul (16) g118.0<1>D g118.0<8,8,1>D g109.0<8,8,0>UW {align1 compr};
+asr (16) g118.0<1>D g118.0<8,8,1>D 4UW {align1 compr};
+
+add (1) a0.0<1>UD a0.0<1,1,1>UD 0x00200020UD {align1};
+mul (16) g120.0<1>D g[a0.0]<8,8,1>W g114.0<8,8,1>UW {align1 compr};
+mul (16) g120.0<1>D g120.0<8,8,1>D g109.0<8,8,0>UW {align1 compr};
+asr (16) g120.0<1>D g120.0<8,8,1>D 4UW {align1 compr};
+
+add (1) a0.0<1>UD a0.0<1,1,1>UD 0x00200020UD {align1};
+mul (16) g122.0<1>D g[a0.0]<8,8,1>W g115.0<8,8,1>UW {align1 compr};
+mul (16) g122.0<1>D g122.0<8,8,1>D g109.0<8,8,0>UW {align1 compr};
+asr (16) g122.0<1>D g122.0<8,8,1>D 4UW {align1 compr};
+
+add (1) ip g125.0<1,1,1>UD 0x20UD {align1};            //jump back
diff --git a/src/xvmc/shader/vld/do_iq_non_intra.g4i b/src/xvmc/shader/vld/do_iq_non_intra.g4i
new file mode 100644
index 0000000..da85e84
--- /dev/null
+++ b/src/xvmc/shader/vld/do_iq_non_intra.g4i
@@ -0,0 +1,59 @@
+/*
+ * Copyright © 2009 Intel Corporation
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice (including the next
+ * paragraph) shall be included in all copies or substantial portions of the
+ * Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
+ * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+ * SOFTWARE.
+ *
+ * Author:
+ *    Zou Nan hai <nanhai.zou at intel.com>
+ *    Yan Li <li.l.yan at intel.com>
+ *    Liu Xi bin<xibin.liu at intel.com>
+ */
+/* GRF allocation:
+   g1~g30: constant buffer
+           g1~g2:intra IQ matrix
+           g3~g4:non intra IQ matrix
+           g5~g20:IDCT table 
+   g112~g115: intra IQ matrix in UW format (in order to use instruction compress), copys from g1~g2
+   g[a0.0]:DCT data of a block
+   g125:   ip before jump
+   F''[v][u]=(((QF[v][u]*2)+Sign(QF[v][u])) * W[w][v][u] * quantiser_scale)/32;  
+*/
+DO_IQ_NON_INTRA:
+add (1)  a0.0<1>UD a0.0<1,1,1>UD 0x00200020UD {align1};
+mul (16) g116.0<1>D g[a0.0]<8,8,1>W g112.0<8,8,1>UW {align1 compr};
+mul (16) g116.0<1>D g116.0<8,8,1>D  g109.0<8,8,0>UW {align1 compr};
+asr (16) g116.0<1>D g116.0<8,8,1>D  4UW {align1 compr};
+
+add (1)  a0.0<1>UD a0.0<1,1,1>UD 0x00200020UD {align1};
+mul (16) g118.0<1>D g[a0.0]<8,8,1>W g113.0<8,8,1>UW {align1 compr};
+mul (16) g118.0<1>D g118.0<8,8,1>D  g109.0<8,8,0>UW {align1 compr};
+asr (16) g118.0<1>D g118.0<8,8,1>D  4UW {align1 compr};
+
+add (1)  a0.0<1>UD a0.0<1,1,1>UD 0x00200020UD {align1};
+mul (16) g120.0<1>D g[a0.0]<8,8,1>W g114.0<8,8,1>UW {align1 compr};
+mul (16) g120.0<1>D g120.0<8,8,1>D  g109.0<8,8,0>UW {align1 compr};
+asr (16) g120.0<1>D g120.0<8,8,1>D  4UW {align1 compr};
+
+add (1)  a0.0<1>UD a0.0<1,1,1>UD 0x00200020UD {align1};
+mul (16) g122.0<1>D g[a0.0]<8,8,1>W g115.0<8,8,1>UW {align1 compr};
+mul (16) g122.0<1>D g122.0<8,8,1>D  g109.0<8,8,0>UW {align1 compr};
+asr (16) g122.0<1>D g122.0<8,8,1>D  4UW {align1 compr};
+
+add (1) ip g125.0<1,1,1>UD 0x20UD {align1};            //jump back
diff --git a/src/xvmc/shader/vld/field_backward.g4a b/src/xvmc/shader/vld/field_backward.g4a
new file mode 100644
index 0000000..9db50ed
--- /dev/null
+++ b/src/xvmc/shader/vld/field_backward.g4a
@@ -0,0 +1,126 @@
+/*
+ * Copyright © 2009 Intel Corporation
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice (including the next
+ * paragraph) shall be included in all copies or substantial portions of the
+ * Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
+ * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+ * SOFTWARE.
+ *
+ * Author:
+ *    Zou Nan hai <nanhai.zou at intel.com>
+ *    Yan Li <li.l.yan at intel.com>
+ *    Liu Xi bin<xibin.liu at intel.com>
+ */
+/* GRF allocation:
+   g1~g30: constant buffer
+           g1~g2:intra IQ matrix
+           g3~g4:non intra IQ matrix
+           g5~g20:IDCT table
+   g31:    thread payload 
+   g58~g81:reference data
+   g82:    thread payload backup
+   g83~g106:IDCT data
+   g115:   message descriptor for reading reference data   */
+mov (8) g82.0<1>UD g31.0<8,8,1>UD {align1};
+mov(2) g31.0<1>UD g82.12<2,2,1>UW {align1};
+mov (1) g126.8<1>UD ip {align1};
+mov (1) ip g21.0<1,1,1>UD {align1};
+
+/*field 0 of Y*/
+asr (2) g31.14<1>W g82.20<2,2,1>W 1W {align1};
+shl (1) g31.16<1>W g31.16<1,1,1>W 1W {align1};
+add (2) g115.0<1>UD g31.0<2,2,1>UD g31.14<2,2,1>W {align1};
+and (1) g115.4<1>UD g115.4<1,1,1>UD 0xFFFFFFFEUD {align1};
+and.nz (1) null g82.2<1,1,1>UW 0x2000UW {align1};
+(f0) add (1) g115.4<1>UD g115.4<1,1,1>UD 1UD {align1};
+define(`surface',`7')
+define(`mv1',`g82.20')
+define(`mv2',`g82.22')
+include(`motion_field_y.g4i')
+mov (8) g58.0<1>UD g32.0<8,8,1>UD {align1};
+mov (8) g60.0<1>UD g33.0<8,8,1>UD {align1};
+mov (8) g62.0<1>UD g34.0<8,8,1>UD {align1};
+mov (8) g64.0<1>UD g35.0<8,8,1>UD {align1};
+mov (8) g66.0<1>UD g36.0<8,8,1>UD {align1};
+mov (8) g68.0<1>UD g37.0<8,8,1>UD {align1};
+mov (8) g70.0<1>UD g38.0<8,8,1>UD {align1};
+mov (8) g72.0<1>UD g39.0<8,8,1>UD {align1};
+
+/*field 1 of Y*/
+asr (2) g31.14<1>W g82.28<2,2,1>W 1W {align1};
+shl (1) g31.16<1>W g31.16<1,1,1>W 1W {align1};
+add (2) g115.0<1>UD g31.0<2,2,1>UD g31.14<2,2,1>W {align1};
+and (1) g115.4<1>UD g115.4<1,1,1>UD 0xFFFFFFFEUD {align1};
+and.nz (1) null g82.2<1,1,1>UW 0x8000UW {align1};
+(f0) add (1) g115.4<1>UD g115.4<1,1,1>UD 1UD {align1};
+define(`surface',`7')
+define(`mv1',`g82.28')
+define(`mv2',`g82.30')
+include(`motion_field_y.g4i')
+mov (8) g59.0<1>UD g32.0<8,8,1>UD {align1};
+mov (8) g61.0<1>UD g33.0<8,8,1>UD {align1};
+mov (8) g63.0<1>UD g34.0<8,8,1>UD {align1};
+mov (8) g65.0<1>UD g35.0<8,8,1>UD {align1};
+mov (8) g67.0<1>UD g36.0<8,8,1>UD {align1};
+mov (8) g69.0<1>UD g37.0<8,8,1>UD {align1};
+mov (8) g71.0<1>UD g38.0<8,8,1>UD {align1};
+mov (8) g73.0<1>UD g39.0<8,8,1>UD {align1};
+
+/*field 0 of UV*/
+shr (2) g31.0<1>UD g31.0<2,2,1>UD 1UD {align1};
+asr (2) g82.20<1>W g82.20<2,2,1>W 1W {align1};
+asr (2) g31.14<1>W g82.20<2,2,1>W 1W {align1};
+shl (1) g31.16<1>W g31.16<1,1,1>W 1W {align1};
+add (2) g115.0<1>UD g31.0<2,2,1>UD g31.14<2,2,1>W {align1};
+and.nz (1) null g82.2<1,1,1>UW 0x2000UW {align1};
+(f0) add (1) g115.4<1>UD g115.4<1,1,1>UD 1UD {align1};
+define(`surface_u', `8')
+define(`surface_v', `9')
+define(`mv1',`g82.20')
+define(`mv2',`g82.22')
+include(`motion_field_uv.g4i')
+mov (8) g74.0<1>UW g32.0<8,8,1>UW {align1};
+mov (8) g75.0<1>UW g33.0<8,8,1>UW {align1};
+mov (8) g76.0<1>UW g34.0<8,8,1>UW {align1};
+mov (8) g77.0<1>UW g35.0<8,8,1>UW {align1};
+mov (8) g78.0<1>UW g36.0<8,8,1>UW {align1};
+mov (8) g79.0<1>UW g37.0<8,8,1>UW {align1};
+mov (8) g80.0<1>UW g38.0<8,8,1>UW {align1};
+mov (8) g81.0<1>UW g39.0<8,8,1>UW {align1};
+
+/*field 1 of UV*/
+asr (2) g82.28<1>W g82.28<2,2,1>W 1W {align1};
+asr (2) g31.14<1>W g82.28<2,2,1>W 1W {align1};
+shl (1) g31.16<1>W g31.16<1,1,1>W 1W {align1};
+add (2) g115.0<1>UD g31.0<2,2,1>UD g31.14<2,2,1>W {align1};
+and.nz (1) null g82.2<1,1,1>UW 0x8000UW {align1};
+(f0) add (1) g115.4<1>UD g115.4<1,1,1>UD 1UD {align1};
+define(`mv1',`g82.28')
+define(`mv2',`g82.30')
+include(`motion_field_uv.g4i')
+mov (8) g74.16<1>UW g32.0<8,8,1>UW {align1};
+mov (8) g75.16<1>UW g33.0<8,8,1>UW {align1};
+mov (8) g76.16<1>UW g34.0<8,8,1>UW {align1};
+mov (8) g77.16<1>UW g35.0<8,8,1>UW {align1};
+mov (8) g78.16<1>UW g36.0<8,8,1>UW {align1};
+mov (8) g79.16<1>UW g37.0<8,8,1>UW {align1};
+mov (8) g80.16<1>UW g38.0<8,8,1>UW {align1};
+mov (8) g81.16<1>UW g39.0<8,8,1>UW {align1};
+
+include(`addidct.g4i')
+send (16) 0 acc0<1>UW g0<8,8,1>UW 
+	thread_spawner(0, 0, 0) mlen 1 rlen 0 { align1 EOT};
diff --git a/src/xvmc/shader/vld/field_backward.g4b b/src/xvmc/shader/vld/field_backward.g4b
new file mode 100644
index 0000000..c1283e4
--- /dev/null
+++ b/src/xvmc/shader/vld/field_backward.g4b
@@ -0,0 +1,413 @@
+   { 0x00600001, 0x2a400021, 0x008d03e0, 0x00000000 },
+   { 0x00200001, 0x23e00121, 0x00450a4c, 0x00000000 },
+   { 0x00000001, 0x2fc80001, 0x00001400, 0x00000000 },
+   { 0x00000001, 0x34000020, 0x002102a0, 0x00000000 },
+   { 0x0020000c, 0x23ee3dad, 0x00450a54, 0x00010001 },
+   { 0x00000009, 0x23f03dad, 0x002103f0, 0x00010001 },
+   { 0x00200040, 0x2e603421, 0x004503e0, 0x004503ee },
+   { 0x00000005, 0x2e640c21, 0x00210e64, 0xfffffffe },
+   { 0x02000005, 0x20002d3c, 0x00210a42, 0x20002000 },
+   { 0x00010040, 0x2e640c21, 0x00210e64, 0x00000001 },
+   { 0x01000005, 0x20002dbc, 0x00210a54, 0x00010001 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x00000045 },
+   { 0x01000005, 0x20002dbc, 0x00210a56, 0x00010001 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x0000002f },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
+   { 0x00800031, 0x25001d29, 0x008d0e60, 0x0411a007 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00800031, 0x25401d29, 0x008d0e60, 0x0411a007 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00800031, 0x25801d29, 0x008d0e60, 0x0411a007 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00800031, 0x25c01d29, 0x008d0e60, 0x0411a007 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0007001f },
+   { 0x00800031, 0x26001d29, 0x008d0e60, 0x0418a007 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
+   { 0x00800031, 0x27001d29, 0x008d0e60, 0x0411a007 },
+   { 0x00800040, 0x24004629, 0x00b10500, 0x00b10540 },
+   { 0x00800040, 0x24204629, 0x00b10540, 0x00b10580 },
+   { 0x00800040, 0x24404629, 0x00b10580, 0x00b105c0 },
+   { 0x00800040, 0x24604629, 0x00b105c0, 0x00b10600 },
+   { 0x00800040, 0x24804629, 0x00b10600, 0x00b10640 },
+   { 0x00800040, 0x24a04629, 0x00b10640, 0x00b10680 },
+   { 0x00800040, 0x24c04629, 0x00b10680, 0x00b106c0 },
+   { 0x00800040, 0x24e04629, 0x00b106c0, 0x00b10700 },
+   { 0x00800040, 0x24004529, 0x00b10400, 0x00b10501 },
+   { 0x00800040, 0x24204529, 0x00b10420, 0x00b10541 },
+   { 0x00800040, 0x24404529, 0x00b10440, 0x00b10581 },
+   { 0x00800040, 0x24604529, 0x00b10460, 0x00b105c1 },
+   { 0x00800040, 0x24804529, 0x00b10480, 0x00b10601 },
+   { 0x00800040, 0x24a04529, 0x00b104a0, 0x00b10641 },
+   { 0x00800040, 0x24c04529, 0x00b104c0, 0x00b10681 },
+   { 0x00800040, 0x24e04529, 0x00b104e0, 0x00b106c1 },
+   { 0x00800040, 0x24004529, 0x00b10400, 0x00b10541 },
+   { 0x00800040, 0x24204529, 0x00b10420, 0x00b10581 },
+   { 0x00800040, 0x24404529, 0x00b10440, 0x00b105c1 },
+   { 0x00800040, 0x24604529, 0x00b10460, 0x00b10601 },
+   { 0x00800040, 0x24804529, 0x00b10480, 0x00b10641 },
+   { 0x00800040, 0x24a04529, 0x00b104a0, 0x00b10681 },
+   { 0x00800040, 0x24c04529, 0x00b104c0, 0x00b106c1 },
+   { 0x00800040, 0x24e04529, 0x00b104e0, 0x00b10701 },
+   { 0x00800008, 0x24002d29, 0x00b10400, 0x00020002 },
+   { 0x00800008, 0x24202d29, 0x00b10420, 0x00020002 },
+   { 0x00800008, 0x24402d29, 0x00b10440, 0x00020002 },
+   { 0x00800008, 0x24602d29, 0x00b10460, 0x00020002 },
+   { 0x00800008, 0x24802d29, 0x00b10480, 0x00020002 },
+   { 0x00800008, 0x24a02d29, 0x00b104a0, 0x00020002 },
+   { 0x00800008, 0x24c02d29, 0x00b104c0, 0x00020002 },
+   { 0x00800008, 0x24e02d29, 0x00b104e0, 0x00020002 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000040 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
+   { 0x00800031, 0x25001d29, 0x008d0e60, 0x0411a007 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00800031, 0x25401d29, 0x008d0e60, 0x0411a007 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00800031, 0x25801d29, 0x008d0e60, 0x0411a007 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00800031, 0x25c01d29, 0x008d0e60, 0x0411a007 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0007001f },
+   { 0x00800031, 0x26001d29, 0x008d0e60, 0x0418a007 },
+   { 0x80800042, 0x24004629, 0x00b10500, 0x00b10501 },
+   { 0x80800042, 0x24204629, 0x00b10540, 0x00b10541 },
+   { 0x80800042, 0x24404629, 0x00b10580, 0x00b10581 },
+   { 0x80800042, 0x24604629, 0x00b105c0, 0x00b105c1 },
+   { 0x80800042, 0x24804629, 0x00b10600, 0x00b10601 },
+   { 0x80800042, 0x24a04629, 0x00b10640, 0x00b10641 },
+   { 0x80800042, 0x24c04629, 0x00b10680, 0x00b10681 },
+   { 0x80800042, 0x24e04629, 0x00b106c0, 0x00b106c1 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x0000002c },
+   { 0x01000005, 0x20002dbc, 0x00210a56, 0x00010001 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x00000017 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
+   { 0x00800031, 0x25001d29, 0x008d0e60, 0x0411a007 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00800031, 0x25401d29, 0x008d0e60, 0x0411a007 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00800031, 0x25801d29, 0x008d0e60, 0x0411a007 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00800031, 0x25c01d29, 0x008d0e60, 0x0411a007 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0007001f },
+   { 0x00800031, 0x26001d29, 0x008d0e60, 0x0418a007 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
+   { 0x00800031, 0x27001d29, 0x008d0e60, 0x0411a007 },
+   { 0x80800042, 0x24004629, 0x00b10500, 0x00b10540 },
+   { 0x80800042, 0x24204629, 0x00b10540, 0x00b10580 },
+   { 0x80800042, 0x24404629, 0x00b10580, 0x00b105c0 },
+   { 0x80800042, 0x24604629, 0x00b105c0, 0x00b10600 },
+   { 0x80800042, 0x24804629, 0x00b10600, 0x00b10640 },
+   { 0x80800042, 0x24a04629, 0x00b10640, 0x00b10680 },
+   { 0x80800042, 0x24c04629, 0x00b10680, 0x00b106c0 },
+   { 0x80800042, 0x24e04629, 0x00b106c0, 0x00b10700 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000013 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
+   { 0x00800031, 0x25001d29, 0x008d0e60, 0x0411a007 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00800031, 0x25401d29, 0x008d0e60, 0x0411a007 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00800031, 0x25801d29, 0x008d0e60, 0x0411a007 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00800031, 0x25c01d29, 0x008d0e60, 0x0411a007 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0007001f },
+   { 0x00800031, 0x26001d29, 0x008d0e60, 0x0418a007 },
+   { 0x00800001, 0x24000229, 0x00b10500, 0x00000000 },
+   { 0x00800001, 0x24200229, 0x00b10540, 0x00000000 },
+   { 0x00800001, 0x24400229, 0x00b10580, 0x00000000 },
+   { 0x00800001, 0x24600229, 0x00b105c0, 0x00000000 },
+   { 0x00800001, 0x24800229, 0x00b10600, 0x00000000 },
+   { 0x00800001, 0x24a00229, 0x00b10640, 0x00000000 },
+   { 0x00800001, 0x24c00229, 0x00b10680, 0x00000000 },
+   { 0x00800001, 0x24e00229, 0x00b106c0, 0x00000000 },
+   { 0x00600001, 0x27400021, 0x008d0400, 0x00000000 },
+   { 0x00600001, 0x27800021, 0x008d0420, 0x00000000 },
+   { 0x00600001, 0x27c00021, 0x008d0440, 0x00000000 },
+   { 0x00600001, 0x28000021, 0x008d0460, 0x00000000 },
+   { 0x00600001, 0x28400021, 0x008d0480, 0x00000000 },
+   { 0x00600001, 0x28800021, 0x008d04a0, 0x00000000 },
+   { 0x00600001, 0x28c00021, 0x008d04c0, 0x00000000 },
+   { 0x00600001, 0x29000021, 0x008d04e0, 0x00000000 },
+   { 0x0020000c, 0x23ee3dad, 0x00450a5c, 0x00010001 },
+   { 0x00000009, 0x23f03dad, 0x002103f0, 0x00010001 },
+   { 0x00200040, 0x2e603421, 0x004503e0, 0x004503ee },
+   { 0x00000005, 0x2e640c21, 0x00210e64, 0xfffffffe },
+   { 0x02000005, 0x20002d3c, 0x00210a42, 0x80008000 },
+   { 0x00010040, 0x2e640c21, 0x00210e64, 0x00000001 },
+   { 0x01000005, 0x20002dbc, 0x00210a5c, 0x00010001 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x00000045 },
+   { 0x01000005, 0x20002dbc, 0x00210a5e, 0x00010001 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x0000002f },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
+   { 0x00800031, 0x25001d29, 0x008d0e60, 0x0411a007 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00800031, 0x25401d29, 0x008d0e60, 0x0411a007 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00800031, 0x25801d29, 0x008d0e60, 0x0411a007 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00800031, 0x25c01d29, 0x008d0e60, 0x0411a007 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0007001f },
+   { 0x00800031, 0x26001d29, 0x008d0e60, 0x0418a007 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
+   { 0x00800031, 0x27001d29, 0x008d0e60, 0x0411a007 },
+   { 0x00800040, 0x24004629, 0x00b10500, 0x00b10540 },
+   { 0x00800040, 0x24204629, 0x00b10540, 0x00b10580 },
+   { 0x00800040, 0x24404629, 0x00b10580, 0x00b105c0 },
+   { 0x00800040, 0x24604629, 0x00b105c0, 0x00b10600 },
+   { 0x00800040, 0x24804629, 0x00b10600, 0x00b10640 },
+   { 0x00800040, 0x24a04629, 0x00b10640, 0x00b10680 },
+   { 0x00800040, 0x24c04629, 0x00b10680, 0x00b106c0 },
+   { 0x00800040, 0x24e04629, 0x00b106c0, 0x00b10700 },
+   { 0x00800040, 0x24004529, 0x00b10400, 0x00b10501 },
+   { 0x00800040, 0x24204529, 0x00b10420, 0x00b10541 },
+   { 0x00800040, 0x24404529, 0x00b10440, 0x00b10581 },
+   { 0x00800040, 0x24604529, 0x00b10460, 0x00b105c1 },
+   { 0x00800040, 0x24804529, 0x00b10480, 0x00b10601 },
+   { 0x00800040, 0x24a04529, 0x00b104a0, 0x00b10641 },
+   { 0x00800040, 0x24c04529, 0x00b104c0, 0x00b10681 },
+   { 0x00800040, 0x24e04529, 0x00b104e0, 0x00b106c1 },
+   { 0x00800040, 0x24004529, 0x00b10400, 0x00b10541 },
+   { 0x00800040, 0x24204529, 0x00b10420, 0x00b10581 },
+   { 0x00800040, 0x24404529, 0x00b10440, 0x00b105c1 },
+   { 0x00800040, 0x24604529, 0x00b10460, 0x00b10601 },
+   { 0x00800040, 0x24804529, 0x00b10480, 0x00b10641 },
+   { 0x00800040, 0x24a04529, 0x00b104a0, 0x00b10681 },
+   { 0x00800040, 0x24c04529, 0x00b104c0, 0x00b106c1 },
+   { 0x00800040, 0x24e04529, 0x00b104e0, 0x00b10701 },
+   { 0x00800008, 0x24002d29, 0x00b10400, 0x00020002 },
+   { 0x00800008, 0x24202d29, 0x00b10420, 0x00020002 },
+   { 0x00800008, 0x24402d29, 0x00b10440, 0x00020002 },
+   { 0x00800008, 0x24602d29, 0x00b10460, 0x00020002 },
+   { 0x00800008, 0x24802d29, 0x00b10480, 0x00020002 },
+   { 0x00800008, 0x24a02d29, 0x00b104a0, 0x00020002 },
+   { 0x00800008, 0x24c02d29, 0x00b104c0, 0x00020002 },
+   { 0x00800008, 0x24e02d29, 0x00b104e0, 0x00020002 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000040 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
+   { 0x00800031, 0x25001d29, 0x008d0e60, 0x0411a007 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00800031, 0x25401d29, 0x008d0e60, 0x0411a007 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00800031, 0x25801d29, 0x008d0e60, 0x0411a007 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00800031, 0x25c01d29, 0x008d0e60, 0x0411a007 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0007001f },
+   { 0x00800031, 0x26001d29, 0x008d0e60, 0x0418a007 },
+   { 0x80800042, 0x24004629, 0x00b10500, 0x00b10501 },
+   { 0x80800042, 0x24204629, 0x00b10540, 0x00b10541 },
+   { 0x80800042, 0x24404629, 0x00b10580, 0x00b10581 },
+   { 0x80800042, 0x24604629, 0x00b105c0, 0x00b105c1 },
+   { 0x80800042, 0x24804629, 0x00b10600, 0x00b10601 },
+   { 0x80800042, 0x24a04629, 0x00b10640, 0x00b10641 },
+   { 0x80800042, 0x24c04629, 0x00b10680, 0x00b10681 },
+   { 0x80800042, 0x24e04629, 0x00b106c0, 0x00b106c1 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x0000002c },
+   { 0x01000005, 0x20002dbc, 0x00210a5e, 0x00010001 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x00000017 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
+   { 0x00800031, 0x25001d29, 0x008d0e60, 0x0411a007 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00800031, 0x25401d29, 0x008d0e60, 0x0411a007 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00800031, 0x25801d29, 0x008d0e60, 0x0411a007 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00800031, 0x25c01d29, 0x008d0e60, 0x0411a007 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0007001f },
+   { 0x00800031, 0x26001d29, 0x008d0e60, 0x0418a007 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
+   { 0x00800031, 0x27001d29, 0x008d0e60, 0x0411a007 },
+   { 0x80800042, 0x24004629, 0x00b10500, 0x00b10540 },
+   { 0x80800042, 0x24204629, 0x00b10540, 0x00b10580 },
+   { 0x80800042, 0x24404629, 0x00b10580, 0x00b105c0 },
+   { 0x80800042, 0x24604629, 0x00b105c0, 0x00b10600 },
+   { 0x80800042, 0x24804629, 0x00b10600, 0x00b10640 },
+   { 0x80800042, 0x24a04629, 0x00b10640, 0x00b10680 },
+   { 0x80800042, 0x24c04629, 0x00b10680, 0x00b106c0 },
+   { 0x80800042, 0x24e04629, 0x00b106c0, 0x00b10700 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000013 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
+   { 0x00800031, 0x25001d29, 0x008d0e60, 0x0411a007 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00800031, 0x25401d29, 0x008d0e60, 0x0411a007 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00800031, 0x25801d29, 0x008d0e60, 0x0411a007 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00800031, 0x25c01d29, 0x008d0e60, 0x0411a007 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0007001f },
+   { 0x00800031, 0x26001d29, 0x008d0e60, 0x0418a007 },
+   { 0x00800001, 0x24000229, 0x00b10500, 0x00000000 },
+   { 0x00800001, 0x24200229, 0x00b10540, 0x00000000 },
+   { 0x00800001, 0x24400229, 0x00b10580, 0x00000000 },
+   { 0x00800001, 0x24600229, 0x00b105c0, 0x00000000 },
+   { 0x00800001, 0x24800229, 0x00b10600, 0x00000000 },
+   { 0x00800001, 0x24a00229, 0x00b10640, 0x00000000 },
+   { 0x00800001, 0x24c00229, 0x00b10680, 0x00000000 },
+   { 0x00800001, 0x24e00229, 0x00b106c0, 0x00000000 },
+   { 0x00600001, 0x27600021, 0x008d0400, 0x00000000 },
+   { 0x00600001, 0x27a00021, 0x008d0420, 0x00000000 },
+   { 0x00600001, 0x27e00021, 0x008d0440, 0x00000000 },
+   { 0x00600001, 0x28200021, 0x008d0460, 0x00000000 },
+   { 0x00600001, 0x28600021, 0x008d0480, 0x00000000 },
+   { 0x00600001, 0x28a00021, 0x008d04a0, 0x00000000 },
+   { 0x00600001, 0x28e00021, 0x008d04c0, 0x00000000 },
+   { 0x00600001, 0x29200021, 0x008d04e0, 0x00000000 },
+   { 0x00200008, 0x23e00c21, 0x004503e0, 0x00000001 },
+   { 0x0020000c, 0x2a543dad, 0x00450a54, 0x00010001 },
+   { 0x0020000c, 0x23ee3dad, 0x00450a54, 0x00010001 },
+   { 0x00000009, 0x23f03dad, 0x002103f0, 0x00010001 },
+   { 0x00200040, 0x2e603421, 0x004503e0, 0x004503ee },
+   { 0x02000005, 0x20002d3c, 0x00210a42, 0x20002000 },
+   { 0x00010040, 0x2e640c21, 0x00210e64, 0x00000001 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0007000f },
+   { 0x00800031, 0x25001d29, 0x00ad0e60, 0x0414a008 },
+   { 0x00800031, 0x25a01d29, 0x00ad0e60, 0x0414a009 },
+   { 0x00800001, 0x24000229, 0x00ad0500, 0x00000000 },
+   { 0x00800001, 0x24200229, 0x00ad0520, 0x00000000 },
+   { 0x00800001, 0x24400229, 0x00ad0540, 0x00000000 },
+   { 0x00800001, 0x24600229, 0x00ad0560, 0x00000000 },
+   { 0x00800001, 0x24800229, 0x00ad05a0, 0x00000000 },
+   { 0x00800001, 0x24a00229, 0x00ad05c0, 0x00000000 },
+   { 0x00800001, 0x24c00229, 0x00ad05e0, 0x00000000 },
+   { 0x00800001, 0x24e00229, 0x00ad0600, 0x00000000 },
+   { 0x00600001, 0x29400129, 0x008d0400, 0x00000000 },
+   { 0x00600001, 0x29600129, 0x008d0420, 0x00000000 },
+   { 0x00600001, 0x29800129, 0x008d0440, 0x00000000 },
+   { 0x00600001, 0x29a00129, 0x008d0460, 0x00000000 },
+   { 0x00600001, 0x29c00129, 0x008d0480, 0x00000000 },
+   { 0x00600001, 0x29e00129, 0x008d04a0, 0x00000000 },
+   { 0x00600001, 0x2a000129, 0x008d04c0, 0x00000000 },
+   { 0x00600001, 0x2a200129, 0x008d04e0, 0x00000000 },
+   { 0x0020000c, 0x2a5c3dad, 0x00450a5c, 0x00010001 },
+   { 0x0020000c, 0x23ee3dad, 0x00450a5c, 0x00010001 },
+   { 0x00000009, 0x23f03dad, 0x002103f0, 0x00010001 },
+   { 0x00200040, 0x2e603421, 0x004503e0, 0x004503ee },
+   { 0x02000005, 0x20002d3c, 0x00210a42, 0x80008000 },
+   { 0x00010040, 0x2e640c21, 0x00210e64, 0x00000001 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0007000f },
+   { 0x00800031, 0x25001d29, 0x00ad0e60, 0x0414a008 },
+   { 0x00800031, 0x25a01d29, 0x00ad0e60, 0x0414a009 },
+   { 0x00800001, 0x24000229, 0x00ad0500, 0x00000000 },
+   { 0x00800001, 0x24200229, 0x00ad0520, 0x00000000 },
+   { 0x00800001, 0x24400229, 0x00ad0540, 0x00000000 },
+   { 0x00800001, 0x24600229, 0x00ad0560, 0x00000000 },
+   { 0x00800001, 0x24800229, 0x00ad05a0, 0x00000000 },
+   { 0x00800001, 0x24a00229, 0x00ad05c0, 0x00000000 },
+   { 0x00800001, 0x24c00229, 0x00ad05e0, 0x00000000 },
+   { 0x00800001, 0x24e00229, 0x00ad0600, 0x00000000 },
+   { 0x00600001, 0x29500129, 0x008d0400, 0x00000000 },
+   { 0x00600001, 0x29700129, 0x008d0420, 0x00000000 },
+   { 0x00600001, 0x29900129, 0x008d0440, 0x00000000 },
+   { 0x00600001, 0x29b00129, 0x008d0460, 0x00000000 },
+   { 0x00600001, 0x29d00129, 0x008d0480, 0x00000000 },
+   { 0x00600001, 0x29f00129, 0x008d04a0, 0x00000000 },
+   { 0x00600001, 0x2a100129, 0x008d04c0, 0x00000000 },
+   { 0x00600001, 0x2a300129, 0x008d04e0, 0x00000000 },
+   { 0x00200001, 0x23e00121, 0x00450a4c, 0x00000000 },
+   { 0x02000005, 0x20002d3c, 0x00210a42, 0x00200020 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x00000011 },
+   { 0x00800040, 0x274045ad, 0x00b10a60, 0x00b20740 },
+   { 0x00800040, 0x276045ad, 0x00b10a80, 0x00b20760 },
+   { 0x00800040, 0x278045ad, 0x00b10aa0, 0x00b20780 },
+   { 0x00800040, 0x27a045ad, 0x00b10ac0, 0x00b207a0 },
+   { 0x00800040, 0x27c045ad, 0x00b10ae0, 0x00b207c0 },
+   { 0x00800040, 0x27e045ad, 0x00b10b00, 0x00b207e0 },
+   { 0x00800040, 0x280045ad, 0x00b10b20, 0x00b20800 },
+   { 0x00800040, 0x282045ad, 0x00b10b40, 0x00b20820 },
+   { 0x00800040, 0x284045ad, 0x00b10b60, 0x00b20840 },
+   { 0x00800040, 0x286045ad, 0x00b10b80, 0x00b20860 },
+   { 0x00800040, 0x288045ad, 0x00b10ba0, 0x00b20880 },
+   { 0x00800040, 0x28a045ad, 0x00b10bc0, 0x00b208a0 },
+   { 0x00800040, 0x28c045ad, 0x00b10be0, 0x00b208c0 },
+   { 0x00800040, 0x28e045ad, 0x00b10c00, 0x00b208e0 },
+   { 0x00800040, 0x290045ad, 0x00b10c20, 0x00b20900 },
+   { 0x00800040, 0x292045ad, 0x00b10c40, 0x00b20920 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000010 },
+   { 0x00800040, 0x274045ad, 0x00b10a60, 0x00b20740 },
+   { 0x00800040, 0x276045ad, 0x00b10b60, 0x00b20760 },
+   { 0x00800040, 0x278045ad, 0x00b10a80, 0x00b20780 },
+   { 0x00800040, 0x27a045ad, 0x00b10b80, 0x00b207a0 },
+   { 0x00800040, 0x27c045ad, 0x00b10aa0, 0x00b207c0 },
+   { 0x00800040, 0x27e045ad, 0x00b10ba0, 0x00b207e0 },
+   { 0x00800040, 0x280045ad, 0x00b10ac0, 0x00b20800 },
+   { 0x00800040, 0x282045ad, 0x00b10bc0, 0x00b20820 },
+   { 0x00800040, 0x284045ad, 0x00b10ae0, 0x00b20840 },
+   { 0x00800040, 0x286045ad, 0x00b10be0, 0x00b20860 },
+   { 0x00800040, 0x288045ad, 0x00b10b00, 0x00b20880 },
+   { 0x00800040, 0x28a045ad, 0x00b10c00, 0x00b208a0 },
+   { 0x00800040, 0x28c045ad, 0x00b10b20, 0x00b208c0 },
+   { 0x00800040, 0x28e045ad, 0x00b10c20, 0x00b208e0 },
+   { 0x00800040, 0x290045ad, 0x00b10b40, 0x00b20900 },
+   { 0x00800040, 0x292045ad, 0x00b10c40, 0x00b20920 },
+   { 0x00000001, 0x23e80061, 0x00000000, 0x000f000f },
+   { 0x80800001, 0x474001b1, 0x00b10740, 0x00000000 },
+   { 0x80800001, 0x476001b1, 0x00b10760, 0x00000000 },
+   { 0x80800001, 0x478001b1, 0x00b10780, 0x00000000 },
+   { 0x80800001, 0x47a001b1, 0x00b107a0, 0x00000000 },
+   { 0x80800001, 0x47c001b1, 0x00b107c0, 0x00000000 },
+   { 0x80800001, 0x47e001b1, 0x00b107e0, 0x00000000 },
+   { 0x80800001, 0x480001b1, 0x00b10800, 0x00000000 },
+   { 0x80800001, 0x482001b1, 0x00b10820, 0x00000000 },
+   { 0x80800001, 0x484001b1, 0x00b10840, 0x00000000 },
+   { 0x80800001, 0x486001b1, 0x00b10860, 0x00000000 },
+   { 0x80800001, 0x488001b1, 0x00b10880, 0x00000000 },
+   { 0x80800001, 0x48a001b1, 0x00b108a0, 0x00000000 },
+   { 0x80800001, 0x48c001b1, 0x00b108c0, 0x00000000 },
+   { 0x80800001, 0x48e001b1, 0x00b108e0, 0x00000000 },
+   { 0x80800001, 0x490001b1, 0x00b10900, 0x00000000 },
+   { 0x80800001, 0x492001b1, 0x00b10920, 0x00000000 },
+   { 0x00800001, 0x20200232, 0x00b20740, 0x00000000 },
+   { 0x00800001, 0x20300232, 0x00b20760, 0x00000000 },
+   { 0x00800001, 0x20400232, 0x00b20780, 0x00000000 },
+   { 0x00800001, 0x20500232, 0x00b207a0, 0x00000000 },
+   { 0x00800001, 0x20600232, 0x00b207c0, 0x00000000 },
+   { 0x00800001, 0x20700232, 0x00b207e0, 0x00000000 },
+   { 0x00800001, 0x20800232, 0x00b20800, 0x00000000 },
+   { 0x00800001, 0x20900232, 0x00b20820, 0x00000000 },
+   { 0x00800001, 0x20a00232, 0x00b20840, 0x00000000 },
+   { 0x00800001, 0x20b00232, 0x00b20860, 0x00000000 },
+   { 0x00800001, 0x20c00232, 0x00b20880, 0x00000000 },
+   { 0x00800001, 0x20d00232, 0x00b208a0, 0x00000000 },
+   { 0x00800001, 0x20e00232, 0x00b208c0, 0x00000000 },
+   { 0x00800001, 0x20f00232, 0x00b208e0, 0x00000000 },
+   { 0x00800001, 0x21000232, 0x00b20900, 0x00000000 },
+   { 0x00800001, 0x21100232, 0x00b20920, 0x00000000 },
+   { 0x00800031, 0x24001d28, 0x008d03e0, 0x05902000 },
+   { 0x00000001, 0x23e80061, 0x00000000, 0x00070007 },
+   { 0x00200008, 0x23e01c21, 0x004503e0, 0x00000001 },
+   { 0x00800040, 0x294025ad, 0x00b10c60, 0x00b10940 },
+   { 0x00800040, 0x296025ad, 0x00b10c80, 0x00b10960 },
+   { 0x00800040, 0x298025ad, 0x00b10ca0, 0x00b10980 },
+   { 0x00800040, 0x29a025ad, 0x00b10cc0, 0x00b109a0 },
+   { 0x80800001, 0x494001b1, 0x00b10940, 0x00000000 },
+   { 0x80800001, 0x496001b1, 0x00b10960, 0x00000000 },
+   { 0x80800001, 0x498001b1, 0x00b10980, 0x00000000 },
+   { 0x80800001, 0x49a001b1, 0x00b109a0, 0x00000000 },
+   { 0x00800001, 0x20200232, 0x00b20940, 0x00000000 },
+   { 0x00800001, 0x20300232, 0x00b20960, 0x00000000 },
+   { 0x00800001, 0x20400232, 0x00b20980, 0x00000000 },
+   { 0x00800001, 0x20500232, 0x00b209a0, 0x00000000 },
+   { 0x00800031, 0x24001d28, 0x008d03e0, 0x05302001 },
+   { 0x00800040, 0x29c025a9, 0x00b10ce0, 0x00b109c0 },
+   { 0x00800040, 0x29e025a9, 0x00b10d00, 0x00b109e0 },
+   { 0x00800040, 0x2a0025a9, 0x00b10d20, 0x00b10a00 },
+   { 0x00800040, 0x2a2025a9, 0x00b10d40, 0x00b10a20 },
+   { 0x80800001, 0x49c001b1, 0x00b109c0, 0x00000000 },
+   { 0x80800001, 0x49e001b1, 0x00b109e0, 0x00000000 },
+   { 0x80800001, 0x4a0001b1, 0x00b10a00, 0x00000000 },
+   { 0x80800001, 0x4a2001b1, 0x00b10a20, 0x00000000 },
+   { 0x00800001, 0x20200232, 0x00b209c0, 0x00000000 },
+   { 0x00800001, 0x20300232, 0x00b209e0, 0x00000000 },
+   { 0x00800001, 0x20400232, 0x00b20a00, 0x00000000 },
+   { 0x00800001, 0x20500232, 0x00b20a20, 0x00000000 },
+   { 0x00800031, 0x24001d28, 0x008d03e0, 0x05302002 },
+   { 0x00800031, 0x24001d28, 0x008d0000, 0x87100000 },
+   { 0x00800031, 0x24001d28, 0x008d0000, 0x87100000 },
diff --git a/src/xvmc/shader/vld/field_f_b.g4a b/src/xvmc/shader/vld/field_f_b.g4a
new file mode 100644
index 0000000..fdc1e83
--- /dev/null
+++ b/src/xvmc/shader/vld/field_f_b.g4a
@@ -0,0 +1,213 @@
+/*
+ * Copyright © 2009 Intel Corporation
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice (including the next
+ * paragraph) shall be included in all copies or substantial portions of the
+ * Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
+ * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+ * SOFTWARE.
+ *
+ * Author:
+ *    Zou Nan hai <nanhai.zou at intel.com>
+ *    Yan Li <li.l.yan at intel.com>
+ *    Liu Xi bin<xibin.liu at intel.com>
+ */
+/* GRF allocation:
+   g1~g30: constant buffer
+           g1~g2:intra IQ matrix
+           g3~g4:non intra IQ matrix
+           g5~g20:IDCT table
+   g31:    thread payload 
+   g58~g81:reference data
+   g82:    thread payload backup
+   g83~g106:IDCT data
+   g115:   message descriptor for reading reference data   */
+mov (8) g82.0<1>UD g31.0<8,8,1>UD {align1};
+mov(2) g31.0<1>UD g82.12<2,2,1>UW {align1};
+mov (1) g126.8<1>UD ip {align1};
+mov (1) ip g21.0<1,1,1>UD {align1};
+
+/*field 0 forward prediction of Y*/
+asr (2) g31.14<1>W g82.16<2,2,1>W 1W {align1};
+shl (1) g31.16<1>W g31.16<1,1,1>W 1W {align1};
+add (2) g115.0<1>UD g31.0<2,2,1>UD g31.14<2,2,1>W {align1};
+and (1) g115.4<1>UD g115.4<1,1,1>UD 0xFFFFFFFEUD {align1};
+and.nz (1) null g82.2<1,1,1>UW 0x1000UW {align1};
+(f0) add (1) g115.4<1>UD g115.4<1,1,1>UD 1UD {align1};
+define(`surface',`4')
+define(`mv1',`g82.16')
+define(`mv2',`g82.18')
+include(`motion_field_y.g4i')
+mov (8) g58.0<1>UD g32.0<8,8,1>UD {align1};
+mov (8) g60.0<1>UD g33.0<8,8,1>UD {align1};
+mov (8) g62.0<1>UD g34.0<8,8,1>UD {align1};
+mov (8) g64.0<1>UD g35.0<8,8,1>UD {align1};
+mov (8) g66.0<1>UD g36.0<8,8,1>UD {align1};
+mov (8) g68.0<1>UD g37.0<8,8,1>UD {align1};
+mov (8) g70.0<1>UD g38.0<8,8,1>UD {align1};
+mov (8) g72.0<1>UD g39.0<8,8,1>UD {align1};
+
+/*field 1 forward prediction of Y*/
+asr (2) g31.14<1>W g82.24<2,2,1>W 1W {align1};
+shl (1) g31.16<1>W g31.16<1,1,1>W 1W {align1};
+add (2) g115.0<1>UD g31.0<2,2,1>UD g31.14<2,2,1>W {align1};
+and (1) g115.4<1>UD g115.4<1,1,1>UD 0xFFFFFFFEUD {align1};
+and.nz (1) null g82.2<1,1,1>UW 0x4000UW {align1};
+(f0) add (1) g115.4<1>UD g115.4<1,1,1>UD 1UD {align1};
+define(`surface',`4')
+define(`mv1',`g82.24')
+define(`mv2',`g82.26')
+include(`motion_field_y.g4i')
+mov (8) g59.0<1>UD g32.0<8,8,1>UD {align1};
+mov (8) g61.0<1>UD g33.0<8,8,1>UD {align1};
+mov (8) g63.0<1>UD g34.0<8,8,1>UD {align1};
+mov (8) g65.0<1>UD g35.0<8,8,1>UD {align1};
+mov (8) g67.0<1>UD g36.0<8,8,1>UD {align1};
+mov (8) g69.0<1>UD g37.0<8,8,1>UD {align1};
+mov (8) g71.0<1>UD g38.0<8,8,1>UD {align1};
+mov (8) g73.0<1>UD g39.0<8,8,1>UD {align1};
+
+/*field 0 forward prediction of UV*/
+shr (2) g31.0<1>UD g31.0<2,2,1>UD 1UD {align1};
+asr (2) g82.16<1>W g82.16<2,2,1>W 1W {align1};
+asr (2) g31.14<1>W g82.16<2,2,1>W 1W {align1};
+shl (1) g31.16<1>W g31.16<1,1,1>W 1W {align1};
+add (2) g115.0<1>UD g31.0<2,2,1>UD g31.14<2,2,1>W {align1};
+and (1) g115.4<1>UD g115.4<1,1,1>UD 0xFFFFFFFEUD {align1};
+and.nz (1) null g82.2<1,1,1>UW 0x1000UW {align1};
+(f0) add (1) g115.4<1>UD g115.4<1,1,1>UD 1UD {align1};
+define(`surface_u', `5')
+define(`surface_v', `6')
+define(`mv1',`g82.16')
+define(`mv2',`g82.18')
+include(`motion_field_uv.g4i')
+mov (8) g74.0<1>UW g32.0<8,8,1>UW {align1};
+mov (8) g75.0<1>UW g33.0<8,8,1>UW {align1};
+mov (8) g76.0<1>UW g34.0<8,8,1>UW {align1};
+mov (8) g77.0<1>UW g35.0<8,8,1>UW {align1};
+mov (8) g78.0<1>UW g36.0<8,8,1>UW {align1};
+mov (8) g79.0<1>UW g37.0<8,8,1>UW {align1};
+mov (8) g80.0<1>UW g38.0<8,8,1>UW {align1};
+mov (8) g81.0<1>UW g39.0<8,8,1>UW {align1};
+
+/*field 1 forward prediction of UV*/
+asr (2) g82.24<1>W g82.24<2,2,1>W 1W {align1};
+asr (2) g31.14<1>W g82.24<2,2,1>W 1W {align1};
+shl (1) g31.16<1>W g31.16<1,1,1>W 1W {align1};
+add (2) g115.0<1>UD g31.0<2,2,1>UD g31.14<2,2,1>W {align1};
+and (1) g115.4<1>UD g115.4<1,1,1>UD 0xFFFFFFFEUD {align1};
+and.nz (1) null g82.2<1,1,1>UW 0x4000UW {align1};
+(f0) add (1) g115.4<1>UD g115.4<1,1,1>UD 1UD {align1};
+define(`mv1',`g82.24')
+define(`mv2',`g82.26')
+include(`motion_field_uv.g4i')
+mov (8) g74.16<1>UW g32.0<8,8,1>UW {align1};
+mov (8) g75.16<1>UW g33.0<8,8,1>UW {align1};
+mov (8) g76.16<1>UW g34.0<8,8,1>UW {align1};
+mov (8) g77.16<1>UW g35.0<8,8,1>UW {align1};
+mov (8) g78.16<1>UW g36.0<8,8,1>UW {align1};
+mov (8) g79.16<1>UW g37.0<8,8,1>UW {align1};
+mov (8) g80.16<1>UW g38.0<8,8,1>UW {align1};
+mov (8) g81.16<1>UW g39.0<8,8,1>UW {align1};
+
+/*field 0 backward prediction of Y*/
+mov(2) g31.0<1>UD g82.12<2,2,1>UW {align1};
+
+asr (2) g31.14<1>W g82.20<2,2,1>W 1W {align1};
+shl (1) g31.16<1>W g31.16<1,1,1>W 1W {align1};
+add (2) g115.0<1>UD g31.0<2,2,1>UD g31.14<2,2,1>W {align1};
+and (1) g115.4<1>UD g115.4<1,1,1>UD 0xFFFFFFFEUD {align1};
+and.nz (1) null g82.2<1,1,1>UW 0x2000UW {align1};
+(f0) add (1) g115.4<1>UD g115.4<1,1,1>UD 1UD {align1};
+define(`surface',`7')
+define(`mv1',`g82.20')
+define(`mv2',`g82.22')
+include(`motion_field_y.g4i')
+avg.sat (16) g58.0<1>UW g58.0<16,16,1>UW g32.0<16,16,1>UW {align1};
+avg.sat (16) g60.0<1>UW g60.0<16,16,1>UW g33.0<16,16,1>UW {align1};
+avg.sat (16) g62.0<1>UW g62.0<16,16,1>UW g34.0<16,16,1>UW {align1};
+avg.sat (16) g64.0<1>UW g64.0<16,16,1>UW g35.0<16,16,1>UW {align1};
+avg.sat (16) g66.0<1>UW g66.0<16,16,1>UW g36.0<16,16,1>UW {align1};
+avg.sat (16) g68.0<1>UW g68.0<16,16,1>UW g37.0<16,16,1>UW {align1};
+avg.sat (16) g70.0<1>UW g70.0<16,16,1>UW g38.0<16,16,1>UW {align1};
+avg.sat (16) g72.0<1>UW g72.0<16,16,1>UW g39.0<16,16,1>UW {align1};
+
+/*field 1 backward prediction of Y*/
+asr (2) g31.14<1>W g82.28<2,2,1>W 1W {align1};
+shl (1) g31.16<1>W g31.16<1,1,1>W 1W {align1};
+add (2) g115.0<1>UD g31.0<2,2,1>UD g31.14<2,2,1>W {align1};
+and (1) g115.4<1>UD g115.4<1,1,1>UD 0xFFFFFFFEUD {align1};
+and.nz (1) null g82.2<1,1,1>UW 0x8000UW {align1};
+(f0) add (1) g115.4<1>UD g115.4<1,1,1>UD 1UD {align1};
+define(`surface',`7')
+define(`mv1',`g82.28')
+define(`mv2',`g82.30')
+include(`motion_field_y.g4i')
+avg.sat (16) g59.0<1>UW g59.0<16,16,1>UW g32.0<16,16,1>UW {align1};
+avg.sat (16) g61.0<1>UW g61.0<16,16,1>UW g33.0<16,16,1>UW {align1};
+avg.sat (16) g63.0<1>UW g63.0<16,16,1>UW g34.0<16,16,1>UW {align1};
+avg.sat (16) g65.0<1>UW g65.0<16,16,1>UW g35.0<16,16,1>UW {align1};
+avg.sat (16) g67.0<1>UW g67.0<16,16,1>UW g36.0<16,16,1>UW {align1};
+avg.sat (16) g69.0<1>UW g69.0<16,16,1>UW g37.0<16,16,1>UW {align1};
+avg.sat (16) g71.0<1>UW g71.0<16,16,1>UW g38.0<16,16,1>UW {align1};
+avg.sat (16) g73.0<1>UW g73.0<16,16,1>UW g39.0<16,16,1>UW {align1};
+
+/*field 0 backward prediction of UV*/
+shr (2) g31.0<1>UD g31.0<2,2,1>UD 1UD {align1};
+asr (2) g82.20<1>W g82.20<2,2,1>W 1W {align1};
+asr (2) g31.14<1>W g82.20<2,2,1>W 1W {align1};
+shl (1) g31.16<1>W g31.16<1,1,1>W 1W {align1};
+add (2) g115.0<1>UD g31.0<2,2,1>UD g31.14<2,2,1>W {align1};
+and (1) g115.4<1>UD g115.4<1,1,1>UD 0xFFFFFFFEUD {align1};
+and.nz (1) null g82.2<1,1,1>UW 0x2000UW {align1};
+(f0) add (1) g115.4<1>UD g115.4<1,1,1>UD 1UD {align1};
+define(`surface_u', `8')
+define(`surface_v', `9')
+define(`mv1',`g82.20')
+define(`mv2',`g82.22')
+include(`motion_field_uv.g4i')
+avg.sat (8) g74.0<1>UW g74.0<8,8,1>UW g32.0<8,8,1>UW {align1};
+avg.sat (8) g75.0<1>UW g75.0<8,8,1>UW g33.0<8,8,1>UW {align1};
+avg.sat (8) g76.0<1>UW g76.0<8,8,1>UW g34.0<8,8,1>UW {align1};
+avg.sat (8) g77.0<1>UW g77.0<8,8,1>UW g35.0<8,8,1>UW {align1};
+avg.sat (8) g78.0<1>UW g78.0<8,8,1>UW g36.0<8,8,1>UW {align1};
+avg.sat (8) g79.0<1>UW g79.0<8,8,1>UW g37.0<8,8,1>UW {align1};
+avg.sat (8) g80.0<1>UW g80.0<8,8,1>UW g38.0<8,8,1>UW {align1};
+avg.sat (8) g81.0<1>UW g81.0<8,8,1>UW g39.0<8,8,1>UW {align1};
+
+/*field 1 backward prediction of UV*/
+asr (2) g82.28<1>W g82.28<2,2,1>W 1W {align1};
+asr (2) g31.14<1>W g82.28<2,2,1>W 1W {align1};
+shl (1) g31.16<1>W g31.16<1,1,1>W 1W {align1};
+add (2) g115.0<1>UD g31.0<2,2,1>UD g31.14<2,2,1>W {align1};
+and (1) g115.4<1>UD g115.4<1,1,1>UD 0xFFFFFFFEUD {align1};
+and.nz (1) null g82.2<1,1,1>UW 0x8000UW {align1};
+(f0) add (1) g115.4<1>UD g115.4<1,1,1>UD 1UD {align1};
+define(`mv1',`g82.28')
+define(`mv2',`g82.30')
+include(`motion_field_uv.g4i')
+avg.sat (8) g74.16<1>UW g74.16<8,8,1>UW g32.0<8,8,1>UW {align1};
+avg.sat (8) g75.16<1>UW g75.16<8,8,1>UW g33.0<8,8,1>UW {align1};
+avg.sat (8) g76.16<1>UW g76.16<8,8,1>UW g34.0<8,8,1>UW {align1};
+avg.sat (8) g77.16<1>UW g77.16<8,8,1>UW g35.0<8,8,1>UW {align1};
+avg.sat (8) g78.16<1>UW g78.16<8,8,1>UW g36.0<8,8,1>UW {align1};
+avg.sat (8) g79.16<1>UW g79.16<8,8,1>UW g37.0<8,8,1>UW {align1};
+avg.sat (8) g80.16<1>UW g80.16<8,8,1>UW g38.0<8,8,1>UW {align1};
+avg.sat (8) g81.16<1>UW g81.16<8,8,1>UW g39.0<8,8,1>UW {align1};
+
+include(`addidct.g4i')
+send (16) 0 acc0<1>UW g0<8,8,1>UW 
+	thread_spawner(0, 0, 0) mlen 1 rlen 0 { align1 EOT};
diff --git a/src/xvmc/shader/vld/field_f_b.g4b b/src/xvmc/shader/vld/field_f_b.g4b
new file mode 100644
index 0000000..437c664
--- /dev/null
+++ b/src/xvmc/shader/vld/field_f_b.g4b
@@ -0,0 +1,727 @@
+   { 0x00600001, 0x2a400021, 0x008d03e0, 0x00000000 },
+   { 0x00200001, 0x23e00121, 0x00450a4c, 0x00000000 },
+   { 0x00000001, 0x2fc80001, 0x00001400, 0x00000000 },
+   { 0x00000001, 0x34000020, 0x002102a0, 0x00000000 },
+   { 0x0020000c, 0x23ee3dad, 0x00450a50, 0x00010001 },
+   { 0x00000009, 0x23f03dad, 0x002103f0, 0x00010001 },
+   { 0x00200040, 0x2e603421, 0x004503e0, 0x004503ee },
+   { 0x00000005, 0x2e640c21, 0x00210e64, 0xfffffffe },
+   { 0x02000005, 0x20002d3c, 0x00210a42, 0x10001000 },
+   { 0x00010040, 0x2e640c21, 0x00210e64, 0x00000001 },
+   { 0x01000005, 0x20002dbc, 0x00210a50, 0x00010001 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x00000045 },
+   { 0x01000005, 0x20002dbc, 0x00210a52, 0x00010001 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x0000002f },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
+   { 0x00800031, 0x25001d29, 0x008d0e60, 0x0411a004 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00800031, 0x25401d29, 0x008d0e60, 0x0411a004 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00800031, 0x25801d29, 0x008d0e60, 0x0411a004 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00800031, 0x25c01d29, 0x008d0e60, 0x0411a004 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0007001f },
+   { 0x00800031, 0x26001d29, 0x008d0e60, 0x0418a004 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
+   { 0x00800031, 0x27001d29, 0x008d0e60, 0x0411a004 },
+   { 0x00800040, 0x24004629, 0x00b10500, 0x00b10540 },
+   { 0x00800040, 0x24204629, 0x00b10540, 0x00b10580 },
+   { 0x00800040, 0x24404629, 0x00b10580, 0x00b105c0 },
+   { 0x00800040, 0x24604629, 0x00b105c0, 0x00b10600 },
+   { 0x00800040, 0x24804629, 0x00b10600, 0x00b10640 },
+   { 0x00800040, 0x24a04629, 0x00b10640, 0x00b10680 },
+   { 0x00800040, 0x24c04629, 0x00b10680, 0x00b106c0 },
+   { 0x00800040, 0x24e04629, 0x00b106c0, 0x00b10700 },
+   { 0x00800040, 0x24004529, 0x00b10400, 0x00b10501 },
+   { 0x00800040, 0x24204529, 0x00b10420, 0x00b10541 },
+   { 0x00800040, 0x24404529, 0x00b10440, 0x00b10581 },
+   { 0x00800040, 0x24604529, 0x00b10460, 0x00b105c1 },
+   { 0x00800040, 0x24804529, 0x00b10480, 0x00b10601 },
+   { 0x00800040, 0x24a04529, 0x00b104a0, 0x00b10641 },
+   { 0x00800040, 0x24c04529, 0x00b104c0, 0x00b10681 },
+   { 0x00800040, 0x24e04529, 0x00b104e0, 0x00b106c1 },
+   { 0x00800040, 0x24004529, 0x00b10400, 0x00b10541 },
+   { 0x00800040, 0x24204529, 0x00b10420, 0x00b10581 },
+   { 0x00800040, 0x24404529, 0x00b10440, 0x00b105c1 },
+   { 0x00800040, 0x24604529, 0x00b10460, 0x00b10601 },
+   { 0x00800040, 0x24804529, 0x00b10480, 0x00b10641 },
+   { 0x00800040, 0x24a04529, 0x00b104a0, 0x00b10681 },
+   { 0x00800040, 0x24c04529, 0x00b104c0, 0x00b106c1 },
+   { 0x00800040, 0x24e04529, 0x00b104e0, 0x00b10701 },
+   { 0x00800008, 0x24002d29, 0x00b10400, 0x00020002 },
+   { 0x00800008, 0x24202d29, 0x00b10420, 0x00020002 },
+   { 0x00800008, 0x24402d29, 0x00b10440, 0x00020002 },
+   { 0x00800008, 0x24602d29, 0x00b10460, 0x00020002 },
+   { 0x00800008, 0x24802d29, 0x00b10480, 0x00020002 },
+   { 0x00800008, 0x24a02d29, 0x00b104a0, 0x00020002 },
+   { 0x00800008, 0x24c02d29, 0x00b104c0, 0x00020002 },
+   { 0x00800008, 0x24e02d29, 0x00b104e0, 0x00020002 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000040 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
+   { 0x00800031, 0x25001d29, 0x008d0e60, 0x0411a004 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00800031, 0x25401d29, 0x008d0e60, 0x0411a004 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00800031, 0x25801d29, 0x008d0e60, 0x0411a004 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00800031, 0x25c01d29, 0x008d0e60, 0x0411a004 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0007001f },
+   { 0x00800031, 0x26001d29, 0x008d0e60, 0x0418a004 },
+   { 0x80800042, 0x24004629, 0x00b10500, 0x00b10501 },
+   { 0x80800042, 0x24204629, 0x00b10540, 0x00b10541 },
+   { 0x80800042, 0x24404629, 0x00b10580, 0x00b10581 },
+   { 0x80800042, 0x24604629, 0x00b105c0, 0x00b105c1 },
+   { 0x80800042, 0x24804629, 0x00b10600, 0x00b10601 },
+   { 0x80800042, 0x24a04629, 0x00b10640, 0x00b10641 },
+   { 0x80800042, 0x24c04629, 0x00b10680, 0x00b10681 },
+   { 0x80800042, 0x24e04629, 0x00b106c0, 0x00b106c1 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x0000002c },
+   { 0x01000005, 0x20002dbc, 0x00210a52, 0x00010001 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x00000017 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
+   { 0x00800031, 0x25001d29, 0x008d0e60, 0x0411a004 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00800031, 0x25401d29, 0x008d0e60, 0x0411a004 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00800031, 0x25801d29, 0x008d0e60, 0x0411a004 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00800031, 0x25c01d29, 0x008d0e60, 0x0411a004 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0007001f },
+   { 0x00800031, 0x26001d29, 0x008d0e60, 0x0418a004 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
+   { 0x00800031, 0x27001d29, 0x008d0e60, 0x0411a004 },
+   { 0x80800042, 0x24004629, 0x00b10500, 0x00b10540 },
+   { 0x80800042, 0x24204629, 0x00b10540, 0x00b10580 },
+   { 0x80800042, 0x24404629, 0x00b10580, 0x00b105c0 },
+   { 0x80800042, 0x24604629, 0x00b105c0, 0x00b10600 },
+   { 0x80800042, 0x24804629, 0x00b10600, 0x00b10640 },
+   { 0x80800042, 0x24a04629, 0x00b10640, 0x00b10680 },
+   { 0x80800042, 0x24c04629, 0x00b10680, 0x00b106c0 },
+   { 0x80800042, 0x24e04629, 0x00b106c0, 0x00b10700 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000013 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
+   { 0x00800031, 0x25001d29, 0x008d0e60, 0x0411a004 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00800031, 0x25401d29, 0x008d0e60, 0x0411a004 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00800031, 0x25801d29, 0x008d0e60, 0x0411a004 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00800031, 0x25c01d29, 0x008d0e60, 0x0411a004 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0007001f },
+   { 0x00800031, 0x26001d29, 0x008d0e60, 0x0418a004 },
+   { 0x00800001, 0x24000229, 0x00b10500, 0x00000000 },
+   { 0x00800001, 0x24200229, 0x00b10540, 0x00000000 },
+   { 0x00800001, 0x24400229, 0x00b10580, 0x00000000 },
+   { 0x00800001, 0x24600229, 0x00b105c0, 0x00000000 },
+   { 0x00800001, 0x24800229, 0x00b10600, 0x00000000 },
+   { 0x00800001, 0x24a00229, 0x00b10640, 0x00000000 },
+   { 0x00800001, 0x24c00229, 0x00b10680, 0x00000000 },
+   { 0x00800001, 0x24e00229, 0x00b106c0, 0x00000000 },
+   { 0x00600001, 0x27400021, 0x008d0400, 0x00000000 },
+   { 0x00600001, 0x27800021, 0x008d0420, 0x00000000 },
+   { 0x00600001, 0x27c00021, 0x008d0440, 0x00000000 },
+   { 0x00600001, 0x28000021, 0x008d0460, 0x00000000 },
+   { 0x00600001, 0x28400021, 0x008d0480, 0x00000000 },
+   { 0x00600001, 0x28800021, 0x008d04a0, 0x00000000 },
+   { 0x00600001, 0x28c00021, 0x008d04c0, 0x00000000 },
+   { 0x00600001, 0x29000021, 0x008d04e0, 0x00000000 },
+   { 0x0020000c, 0x23ee3dad, 0x00450a58, 0x00010001 },
+   { 0x00000009, 0x23f03dad, 0x002103f0, 0x00010001 },
+   { 0x00200040, 0x2e603421, 0x004503e0, 0x004503ee },
+   { 0x00000005, 0x2e640c21, 0x00210e64, 0xfffffffe },
+   { 0x02000005, 0x20002d3c, 0x00210a42, 0x40004000 },
+   { 0x00010040, 0x2e640c21, 0x00210e64, 0x00000001 },
+   { 0x01000005, 0x20002dbc, 0x00210a58, 0x00010001 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x00000045 },
+   { 0x01000005, 0x20002dbc, 0x00210a5a, 0x00010001 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x0000002f },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
+   { 0x00800031, 0x25001d29, 0x008d0e60, 0x0411a004 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00800031, 0x25401d29, 0x008d0e60, 0x0411a004 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00800031, 0x25801d29, 0x008d0e60, 0x0411a004 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00800031, 0x25c01d29, 0x008d0e60, 0x0411a004 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0007001f },
+   { 0x00800031, 0x26001d29, 0x008d0e60, 0x0418a004 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
+   { 0x00800031, 0x27001d29, 0x008d0e60, 0x0411a004 },
+   { 0x00800040, 0x24004629, 0x00b10500, 0x00b10540 },
+   { 0x00800040, 0x24204629, 0x00b10540, 0x00b10580 },
+   { 0x00800040, 0x24404629, 0x00b10580, 0x00b105c0 },
+   { 0x00800040, 0x24604629, 0x00b105c0, 0x00b10600 },
+   { 0x00800040, 0x24804629, 0x00b10600, 0x00b10640 },
+   { 0x00800040, 0x24a04629, 0x00b10640, 0x00b10680 },
+   { 0x00800040, 0x24c04629, 0x00b10680, 0x00b106c0 },
+   { 0x00800040, 0x24e04629, 0x00b106c0, 0x00b10700 },
+   { 0x00800040, 0x24004529, 0x00b10400, 0x00b10501 },
+   { 0x00800040, 0x24204529, 0x00b10420, 0x00b10541 },
+   { 0x00800040, 0x24404529, 0x00b10440, 0x00b10581 },
+   { 0x00800040, 0x24604529, 0x00b10460, 0x00b105c1 },
+   { 0x00800040, 0x24804529, 0x00b10480, 0x00b10601 },
+   { 0x00800040, 0x24a04529, 0x00b104a0, 0x00b10641 },
+   { 0x00800040, 0x24c04529, 0x00b104c0, 0x00b10681 },
+   { 0x00800040, 0x24e04529, 0x00b104e0, 0x00b106c1 },
+   { 0x00800040, 0x24004529, 0x00b10400, 0x00b10541 },
+   { 0x00800040, 0x24204529, 0x00b10420, 0x00b10581 },
+   { 0x00800040, 0x24404529, 0x00b10440, 0x00b105c1 },
+   { 0x00800040, 0x24604529, 0x00b10460, 0x00b10601 },
+   { 0x00800040, 0x24804529, 0x00b10480, 0x00b10641 },
+   { 0x00800040, 0x24a04529, 0x00b104a0, 0x00b10681 },
+   { 0x00800040, 0x24c04529, 0x00b104c0, 0x00b106c1 },
+   { 0x00800040, 0x24e04529, 0x00b104e0, 0x00b10701 },
+   { 0x00800008, 0x24002d29, 0x00b10400, 0x00020002 },
+   { 0x00800008, 0x24202d29, 0x00b10420, 0x00020002 },
+   { 0x00800008, 0x24402d29, 0x00b10440, 0x00020002 },
+   { 0x00800008, 0x24602d29, 0x00b10460, 0x00020002 },
+   { 0x00800008, 0x24802d29, 0x00b10480, 0x00020002 },
+   { 0x00800008, 0x24a02d29, 0x00b104a0, 0x00020002 },
+   { 0x00800008, 0x24c02d29, 0x00b104c0, 0x00020002 },
+   { 0x00800008, 0x24e02d29, 0x00b104e0, 0x00020002 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000040 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
+   { 0x00800031, 0x25001d29, 0x008d0e60, 0x0411a004 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00800031, 0x25401d29, 0x008d0e60, 0x0411a004 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00800031, 0x25801d29, 0x008d0e60, 0x0411a004 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00800031, 0x25c01d29, 0x008d0e60, 0x0411a004 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0007001f },
+   { 0x00800031, 0x26001d29, 0x008d0e60, 0x0418a004 },
+   { 0x80800042, 0x24004629, 0x00b10500, 0x00b10501 },
+   { 0x80800042, 0x24204629, 0x00b10540, 0x00b10541 },
+   { 0x80800042, 0x24404629, 0x00b10580, 0x00b10581 },
+   { 0x80800042, 0x24604629, 0x00b105c0, 0x00b105c1 },
+   { 0x80800042, 0x24804629, 0x00b10600, 0x00b10601 },
+   { 0x80800042, 0x24a04629, 0x00b10640, 0x00b10641 },
+   { 0x80800042, 0x24c04629, 0x00b10680, 0x00b10681 },
+   { 0x80800042, 0x24e04629, 0x00b106c0, 0x00b106c1 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x0000002c },
+   { 0x01000005, 0x20002dbc, 0x00210a5a, 0x00010001 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x00000017 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
+   { 0x00800031, 0x25001d29, 0x008d0e60, 0x0411a004 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00800031, 0x25401d29, 0x008d0e60, 0x0411a004 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00800031, 0x25801d29, 0x008d0e60, 0x0411a004 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00800031, 0x25c01d29, 0x008d0e60, 0x0411a004 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0007001f },
+   { 0x00800031, 0x26001d29, 0x008d0e60, 0x0418a004 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
+   { 0x00800031, 0x27001d29, 0x008d0e60, 0x0411a004 },
+   { 0x80800042, 0x24004629, 0x00b10500, 0x00b10540 },
+   { 0x80800042, 0x24204629, 0x00b10540, 0x00b10580 },
+   { 0x80800042, 0x24404629, 0x00b10580, 0x00b105c0 },
+   { 0x80800042, 0x24604629, 0x00b105c0, 0x00b10600 },
+   { 0x80800042, 0x24804629, 0x00b10600, 0x00b10640 },
+   { 0x80800042, 0x24a04629, 0x00b10640, 0x00b10680 },
+   { 0x80800042, 0x24c04629, 0x00b10680, 0x00b106c0 },
+   { 0x80800042, 0x24e04629, 0x00b106c0, 0x00b10700 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000013 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
+   { 0x00800031, 0x25001d29, 0x008d0e60, 0x0411a004 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00800031, 0x25401d29, 0x008d0e60, 0x0411a004 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00800031, 0x25801d29, 0x008d0e60, 0x0411a004 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00800031, 0x25c01d29, 0x008d0e60, 0x0411a004 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0007001f },
+   { 0x00800031, 0x26001d29, 0x008d0e60, 0x0418a004 },
+   { 0x00800001, 0x24000229, 0x00b10500, 0x00000000 },
+   { 0x00800001, 0x24200229, 0x00b10540, 0x00000000 },
+   { 0x00800001, 0x24400229, 0x00b10580, 0x00000000 },
+   { 0x00800001, 0x24600229, 0x00b105c0, 0x00000000 },
+   { 0x00800001, 0x24800229, 0x00b10600, 0x00000000 },
+   { 0x00800001, 0x24a00229, 0x00b10640, 0x00000000 },
+   { 0x00800001, 0x24c00229, 0x00b10680, 0x00000000 },
+   { 0x00800001, 0x24e00229, 0x00b106c0, 0x00000000 },
+   { 0x00600001, 0x27600021, 0x008d0400, 0x00000000 },
+   { 0x00600001, 0x27a00021, 0x008d0420, 0x00000000 },
+   { 0x00600001, 0x27e00021, 0x008d0440, 0x00000000 },
+   { 0x00600001, 0x28200021, 0x008d0460, 0x00000000 },
+   { 0x00600001, 0x28600021, 0x008d0480, 0x00000000 },
+   { 0x00600001, 0x28a00021, 0x008d04a0, 0x00000000 },
+   { 0x00600001, 0x28e00021, 0x008d04c0, 0x00000000 },
+   { 0x00600001, 0x29200021, 0x008d04e0, 0x00000000 },
+   { 0x00200008, 0x23e00c21, 0x004503e0, 0x00000001 },
+   { 0x0020000c, 0x2a503dad, 0x00450a50, 0x00010001 },
+   { 0x0020000c, 0x23ee3dad, 0x00450a50, 0x00010001 },
+   { 0x00000009, 0x23f03dad, 0x002103f0, 0x00010001 },
+   { 0x00200040, 0x2e603421, 0x004503e0, 0x004503ee },
+   { 0x00000005, 0x2e640c21, 0x00210e64, 0xfffffffe },
+   { 0x02000005, 0x20002d3c, 0x00210a42, 0x10001000 },
+   { 0x00010040, 0x2e640c21, 0x00210e64, 0x00000001 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0007000f },
+   { 0x00800031, 0x25001d29, 0x00ad0e60, 0x0414a005 },
+   { 0x00800031, 0x25a01d29, 0x00ad0e60, 0x0414a006 },
+   { 0x00800001, 0x24000229, 0x00ad0500, 0x00000000 },
+   { 0x00800001, 0x24200229, 0x00ad0520, 0x00000000 },
+   { 0x00800001, 0x24400229, 0x00ad0540, 0x00000000 },
+   { 0x00800001, 0x24600229, 0x00ad0560, 0x00000000 },
+   { 0x00800001, 0x24800229, 0x00ad05a0, 0x00000000 },
+   { 0x00800001, 0x24a00229, 0x00ad05c0, 0x00000000 },
+   { 0x00800001, 0x24c00229, 0x00ad05e0, 0x00000000 },
+   { 0x00800001, 0x24e00229, 0x00ad0600, 0x00000000 },
+   { 0x00600001, 0x29400129, 0x008d0400, 0x00000000 },
+   { 0x00600001, 0x29600129, 0x008d0420, 0x00000000 },
+   { 0x00600001, 0x29800129, 0x008d0440, 0x00000000 },
+   { 0x00600001, 0x29a00129, 0x008d0460, 0x00000000 },
+   { 0x00600001, 0x29c00129, 0x008d0480, 0x00000000 },
+   { 0x00600001, 0x29e00129, 0x008d04a0, 0x00000000 },
+   { 0x00600001, 0x2a000129, 0x008d04c0, 0x00000000 },
+   { 0x00600001, 0x2a200129, 0x008d04e0, 0x00000000 },
+   { 0x0020000c, 0x2a583dad, 0x00450a58, 0x00010001 },
+   { 0x0020000c, 0x23ee3dad, 0x00450a58, 0x00010001 },
+   { 0x00000009, 0x23f03dad, 0x002103f0, 0x00010001 },
+   { 0x00200040, 0x2e603421, 0x004503e0, 0x004503ee },
+   { 0x00000005, 0x2e640c21, 0x00210e64, 0xfffffffe },
+   { 0x02000005, 0x20002d3c, 0x00210a42, 0x40004000 },
+   { 0x00010040, 0x2e640c21, 0x00210e64, 0x00000001 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0007000f },
+   { 0x00800031, 0x25001d29, 0x00ad0e60, 0x0414a005 },
+   { 0x00800031, 0x25a01d29, 0x00ad0e60, 0x0414a006 },
+   { 0x00800001, 0x24000229, 0x00ad0500, 0x00000000 },
+   { 0x00800001, 0x24200229, 0x00ad0520, 0x00000000 },
+   { 0x00800001, 0x24400229, 0x00ad0540, 0x00000000 },
+   { 0x00800001, 0x24600229, 0x00ad0560, 0x00000000 },
+   { 0x00800001, 0x24800229, 0x00ad05a0, 0x00000000 },
+   { 0x00800001, 0x24a00229, 0x00ad05c0, 0x00000000 },
+   { 0x00800001, 0x24c00229, 0x00ad05e0, 0x00000000 },
+   { 0x00800001, 0x24e00229, 0x00ad0600, 0x00000000 },
+   { 0x00600001, 0x29500129, 0x008d0400, 0x00000000 },
+   { 0x00600001, 0x29700129, 0x008d0420, 0x00000000 },
+   { 0x00600001, 0x29900129, 0x008d0440, 0x00000000 },
+   { 0x00600001, 0x29b00129, 0x008d0460, 0x00000000 },
+   { 0x00600001, 0x29d00129, 0x008d0480, 0x00000000 },
+   { 0x00600001, 0x29f00129, 0x008d04a0, 0x00000000 },
+   { 0x00600001, 0x2a100129, 0x008d04c0, 0x00000000 },
+   { 0x00600001, 0x2a300129, 0x008d04e0, 0x00000000 },
+   { 0x00200001, 0x23e00121, 0x00450a4c, 0x00000000 },
+   { 0x0020000c, 0x23ee3dad, 0x00450a54, 0x00010001 },
+   { 0x00000009, 0x23f03dad, 0x002103f0, 0x00010001 },
+   { 0x00200040, 0x2e603421, 0x004503e0, 0x004503ee },
+   { 0x00000005, 0x2e640c21, 0x00210e64, 0xfffffffe },
+   { 0x02000005, 0x20002d3c, 0x00210a42, 0x20002000 },
+   { 0x00010040, 0x2e640c21, 0x00210e64, 0x00000001 },
+   { 0x01000005, 0x20002dbc, 0x00210a54, 0x00010001 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x00000045 },
+   { 0x01000005, 0x20002dbc, 0x00210a56, 0x00010001 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x0000002f },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
+   { 0x00800031, 0x25001d29, 0x008d0e60, 0x0411a007 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00800031, 0x25401d29, 0x008d0e60, 0x0411a007 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00800031, 0x25801d29, 0x008d0e60, 0x0411a007 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00800031, 0x25c01d29, 0x008d0e60, 0x0411a007 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0007001f },
+   { 0x00800031, 0x26001d29, 0x008d0e60, 0x0418a007 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
+   { 0x00800031, 0x27001d29, 0x008d0e60, 0x0411a007 },
+   { 0x00800040, 0x24004629, 0x00b10500, 0x00b10540 },
+   { 0x00800040, 0x24204629, 0x00b10540, 0x00b10580 },
+   { 0x00800040, 0x24404629, 0x00b10580, 0x00b105c0 },
+   { 0x00800040, 0x24604629, 0x00b105c0, 0x00b10600 },
+   { 0x00800040, 0x24804629, 0x00b10600, 0x00b10640 },
+   { 0x00800040, 0x24a04629, 0x00b10640, 0x00b10680 },
+   { 0x00800040, 0x24c04629, 0x00b10680, 0x00b106c0 },
+   { 0x00800040, 0x24e04629, 0x00b106c0, 0x00b10700 },
+   { 0x00800040, 0x24004529, 0x00b10400, 0x00b10501 },
+   { 0x00800040, 0x24204529, 0x00b10420, 0x00b10541 },
+   { 0x00800040, 0x24404529, 0x00b10440, 0x00b10581 },
+   { 0x00800040, 0x24604529, 0x00b10460, 0x00b105c1 },
+   { 0x00800040, 0x24804529, 0x00b10480, 0x00b10601 },
+   { 0x00800040, 0x24a04529, 0x00b104a0, 0x00b10641 },
+   { 0x00800040, 0x24c04529, 0x00b104c0, 0x00b10681 },
+   { 0x00800040, 0x24e04529, 0x00b104e0, 0x00b106c1 },
+   { 0x00800040, 0x24004529, 0x00b10400, 0x00b10541 },
+   { 0x00800040, 0x24204529, 0x00b10420, 0x00b10581 },
+   { 0x00800040, 0x24404529, 0x00b10440, 0x00b105c1 },
+   { 0x00800040, 0x24604529, 0x00b10460, 0x00b10601 },
+   { 0x00800040, 0x24804529, 0x00b10480, 0x00b10641 },
+   { 0x00800040, 0x24a04529, 0x00b104a0, 0x00b10681 },
+   { 0x00800040, 0x24c04529, 0x00b104c0, 0x00b106c1 },
+   { 0x00800040, 0x24e04529, 0x00b104e0, 0x00b10701 },
+   { 0x00800008, 0x24002d29, 0x00b10400, 0x00020002 },
+   { 0x00800008, 0x24202d29, 0x00b10420, 0x00020002 },
+   { 0x00800008, 0x24402d29, 0x00b10440, 0x00020002 },
+   { 0x00800008, 0x24602d29, 0x00b10460, 0x00020002 },
+   { 0x00800008, 0x24802d29, 0x00b10480, 0x00020002 },
+   { 0x00800008, 0x24a02d29, 0x00b104a0, 0x00020002 },
+   { 0x00800008, 0x24c02d29, 0x00b104c0, 0x00020002 },
+   { 0x00800008, 0x24e02d29, 0x00b104e0, 0x00020002 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000040 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
+   { 0x00800031, 0x25001d29, 0x008d0e60, 0x0411a007 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00800031, 0x25401d29, 0x008d0e60, 0x0411a007 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00800031, 0x25801d29, 0x008d0e60, 0x0411a007 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00800031, 0x25c01d29, 0x008d0e60, 0x0411a007 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0007001f },
+   { 0x00800031, 0x26001d29, 0x008d0e60, 0x0418a007 },
+   { 0x80800042, 0x24004629, 0x00b10500, 0x00b10501 },
+   { 0x80800042, 0x24204629, 0x00b10540, 0x00b10541 },
+   { 0x80800042, 0x24404629, 0x00b10580, 0x00b10581 },
+   { 0x80800042, 0x24604629, 0x00b105c0, 0x00b105c1 },
+   { 0x80800042, 0x24804629, 0x00b10600, 0x00b10601 },
+   { 0x80800042, 0x24a04629, 0x00b10640, 0x00b10641 },
+   { 0x80800042, 0x24c04629, 0x00b10680, 0x00b10681 },
+   { 0x80800042, 0x24e04629, 0x00b106c0, 0x00b106c1 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x0000002c },
+   { 0x01000005, 0x20002dbc, 0x00210a56, 0x00010001 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x00000017 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
+   { 0x00800031, 0x25001d29, 0x008d0e60, 0x0411a007 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00800031, 0x25401d29, 0x008d0e60, 0x0411a007 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00800031, 0x25801d29, 0x008d0e60, 0x0411a007 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00800031, 0x25c01d29, 0x008d0e60, 0x0411a007 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0007001f },
+   { 0x00800031, 0x26001d29, 0x008d0e60, 0x0418a007 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
+   { 0x00800031, 0x27001d29, 0x008d0e60, 0x0411a007 },
+   { 0x80800042, 0x24004629, 0x00b10500, 0x00b10540 },
+   { 0x80800042, 0x24204629, 0x00b10540, 0x00b10580 },
+   { 0x80800042, 0x24404629, 0x00b10580, 0x00b105c0 },
+   { 0x80800042, 0x24604629, 0x00b105c0, 0x00b10600 },
+   { 0x80800042, 0x24804629, 0x00b10600, 0x00b10640 },
+   { 0x80800042, 0x24a04629, 0x00b10640, 0x00b10680 },
+   { 0x80800042, 0x24c04629, 0x00b10680, 0x00b106c0 },
+   { 0x80800042, 0x24e04629, 0x00b106c0, 0x00b10700 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000013 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
+   { 0x00800031, 0x25001d29, 0x008d0e60, 0x0411a007 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00800031, 0x25401d29, 0x008d0e60, 0x0411a007 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00800031, 0x25801d29, 0x008d0e60, 0x0411a007 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00800031, 0x25c01d29, 0x008d0e60, 0x0411a007 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0007001f },
+   { 0x00800031, 0x26001d29, 0x008d0e60, 0x0418a007 },
+   { 0x00800001, 0x24000229, 0x00b10500, 0x00000000 },
+   { 0x00800001, 0x24200229, 0x00b10540, 0x00000000 },
+   { 0x00800001, 0x24400229, 0x00b10580, 0x00000000 },
+   { 0x00800001, 0x24600229, 0x00b105c0, 0x00000000 },
+   { 0x00800001, 0x24800229, 0x00b10600, 0x00000000 },
+   { 0x00800001, 0x24a00229, 0x00b10640, 0x00000000 },
+   { 0x00800001, 0x24c00229, 0x00b10680, 0x00000000 },
+   { 0x00800001, 0x24e00229, 0x00b106c0, 0x00000000 },
+   { 0x80800042, 0x27402529, 0x00b10740, 0x00b10400 },
+   { 0x80800042, 0x27802529, 0x00b10780, 0x00b10420 },
+   { 0x80800042, 0x27c02529, 0x00b107c0, 0x00b10440 },
+   { 0x80800042, 0x28002529, 0x00b10800, 0x00b10460 },
+   { 0x80800042, 0x28402529, 0x00b10840, 0x00b10480 },
+   { 0x80800042, 0x28802529, 0x00b10880, 0x00b104a0 },
+   { 0x80800042, 0x28c02529, 0x00b108c0, 0x00b104c0 },
+   { 0x80800042, 0x29002529, 0x00b10900, 0x00b104e0 },
+   { 0x0020000c, 0x23ee3dad, 0x00450a5c, 0x00010001 },
+   { 0x00000009, 0x23f03dad, 0x002103f0, 0x00010001 },
+   { 0x00200040, 0x2e603421, 0x004503e0, 0x004503ee },
+   { 0x00000005, 0x2e640c21, 0x00210e64, 0xfffffffe },
+   { 0x02000005, 0x20002d3c, 0x00210a42, 0x80008000 },
+   { 0x00010040, 0x2e640c21, 0x00210e64, 0x00000001 },
+   { 0x01000005, 0x20002dbc, 0x00210a5c, 0x00010001 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x00000045 },
+   { 0x01000005, 0x20002dbc, 0x00210a5e, 0x00010001 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x0000002f },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
+   { 0x00800031, 0x25001d29, 0x008d0e60, 0x0411a007 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00800031, 0x25401d29, 0x008d0e60, 0x0411a007 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00800031, 0x25801d29, 0x008d0e60, 0x0411a007 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00800031, 0x25c01d29, 0x008d0e60, 0x0411a007 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0007001f },
+   { 0x00800031, 0x26001d29, 0x008d0e60, 0x0418a007 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
+   { 0x00800031, 0x27001d29, 0x008d0e60, 0x0411a007 },
+   { 0x00800040, 0x24004629, 0x00b10500, 0x00b10540 },
+   { 0x00800040, 0x24204629, 0x00b10540, 0x00b10580 },
+   { 0x00800040, 0x24404629, 0x00b10580, 0x00b105c0 },
+   { 0x00800040, 0x24604629, 0x00b105c0, 0x00b10600 },
+   { 0x00800040, 0x24804629, 0x00b10600, 0x00b10640 },
+   { 0x00800040, 0x24a04629, 0x00b10640, 0x00b10680 },
+   { 0x00800040, 0x24c04629, 0x00b10680, 0x00b106c0 },
+   { 0x00800040, 0x24e04629, 0x00b106c0, 0x00b10700 },
+   { 0x00800040, 0x24004529, 0x00b10400, 0x00b10501 },
+   { 0x00800040, 0x24204529, 0x00b10420, 0x00b10541 },
+   { 0x00800040, 0x24404529, 0x00b10440, 0x00b10581 },
+   { 0x00800040, 0x24604529, 0x00b10460, 0x00b105c1 },
+   { 0x00800040, 0x24804529, 0x00b10480, 0x00b10601 },
+   { 0x00800040, 0x24a04529, 0x00b104a0, 0x00b10641 },
+   { 0x00800040, 0x24c04529, 0x00b104c0, 0x00b10681 },
+   { 0x00800040, 0x24e04529, 0x00b104e0, 0x00b106c1 },
+   { 0x00800040, 0x24004529, 0x00b10400, 0x00b10541 },
+   { 0x00800040, 0x24204529, 0x00b10420, 0x00b10581 },
+   { 0x00800040, 0x24404529, 0x00b10440, 0x00b105c1 },
+   { 0x00800040, 0x24604529, 0x00b10460, 0x00b10601 },
+   { 0x00800040, 0x24804529, 0x00b10480, 0x00b10641 },
+   { 0x00800040, 0x24a04529, 0x00b104a0, 0x00b10681 },
+   { 0x00800040, 0x24c04529, 0x00b104c0, 0x00b106c1 },
+   { 0x00800040, 0x24e04529, 0x00b104e0, 0x00b10701 },
+   { 0x00800008, 0x24002d29, 0x00b10400, 0x00020002 },
+   { 0x00800008, 0x24202d29, 0x00b10420, 0x00020002 },
+   { 0x00800008, 0x24402d29, 0x00b10440, 0x00020002 },
+   { 0x00800008, 0x24602d29, 0x00b10460, 0x00020002 },
+   { 0x00800008, 0x24802d29, 0x00b10480, 0x00020002 },
+   { 0x00800008, 0x24a02d29, 0x00b104a0, 0x00020002 },
+   { 0x00800008, 0x24c02d29, 0x00b104c0, 0x00020002 },
+   { 0x00800008, 0x24e02d29, 0x00b104e0, 0x00020002 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000040 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
+   { 0x00800031, 0x25001d29, 0x008d0e60, 0x0411a007 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00800031, 0x25401d29, 0x008d0e60, 0x0411a007 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00800031, 0x25801d29, 0x008d0e60, 0x0411a007 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00800031, 0x25c01d29, 0x008d0e60, 0x0411a007 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0007001f },
+   { 0x00800031, 0x26001d29, 0x008d0e60, 0x0418a007 },
+   { 0x80800042, 0x24004629, 0x00b10500, 0x00b10501 },
+   { 0x80800042, 0x24204629, 0x00b10540, 0x00b10541 },
+   { 0x80800042, 0x24404629, 0x00b10580, 0x00b10581 },
+   { 0x80800042, 0x24604629, 0x00b105c0, 0x00b105c1 },
+   { 0x80800042, 0x24804629, 0x00b10600, 0x00b10601 },
+   { 0x80800042, 0x24a04629, 0x00b10640, 0x00b10641 },
+   { 0x80800042, 0x24c04629, 0x00b10680, 0x00b10681 },
+   { 0x80800042, 0x24e04629, 0x00b106c0, 0x00b106c1 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x0000002c },
+   { 0x01000005, 0x20002dbc, 0x00210a5e, 0x00010001 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x00000017 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
+   { 0x00800031, 0x25001d29, 0x008d0e60, 0x0411a007 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00800031, 0x25401d29, 0x008d0e60, 0x0411a007 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00800031, 0x25801d29, 0x008d0e60, 0x0411a007 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00800031, 0x25c01d29, 0x008d0e60, 0x0411a007 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0007001f },
+   { 0x00800031, 0x26001d29, 0x008d0e60, 0x0418a007 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
+   { 0x00800031, 0x27001d29, 0x008d0e60, 0x0411a007 },
+   { 0x80800042, 0x24004629, 0x00b10500, 0x00b10540 },
+   { 0x80800042, 0x24204629, 0x00b10540, 0x00b10580 },
+   { 0x80800042, 0x24404629, 0x00b10580, 0x00b105c0 },
+   { 0x80800042, 0x24604629, 0x00b105c0, 0x00b10600 },
+   { 0x80800042, 0x24804629, 0x00b10600, 0x00b10640 },
+   { 0x80800042, 0x24a04629, 0x00b10640, 0x00b10680 },
+   { 0x80800042, 0x24c04629, 0x00b10680, 0x00b106c0 },
+   { 0x80800042, 0x24e04629, 0x00b106c0, 0x00b10700 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000013 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
+   { 0x00800031, 0x25001d29, 0x008d0e60, 0x0411a007 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00800031, 0x25401d29, 0x008d0e60, 0x0411a007 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00800031, 0x25801d29, 0x008d0e60, 0x0411a007 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00800031, 0x25c01d29, 0x008d0e60, 0x0411a007 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0007001f },
+   { 0x00800031, 0x26001d29, 0x008d0e60, 0x0418a007 },
+   { 0x00800001, 0x24000229, 0x00b10500, 0x00000000 },
+   { 0x00800001, 0x24200229, 0x00b10540, 0x00000000 },
+   { 0x00800001, 0x24400229, 0x00b10580, 0x00000000 },
+   { 0x00800001, 0x24600229, 0x00b105c0, 0x00000000 },
+   { 0x00800001, 0x24800229, 0x00b10600, 0x00000000 },
+   { 0x00800001, 0x24a00229, 0x00b10640, 0x00000000 },
+   { 0x00800001, 0x24c00229, 0x00b10680, 0x00000000 },
+   { 0x00800001, 0x24e00229, 0x00b106c0, 0x00000000 },
+   { 0x80800042, 0x27602529, 0x00b10760, 0x00b10400 },
+   { 0x80800042, 0x27a02529, 0x00b107a0, 0x00b10420 },
+   { 0x80800042, 0x27e02529, 0x00b107e0, 0x00b10440 },
+   { 0x80800042, 0x28202529, 0x00b10820, 0x00b10460 },
+   { 0x80800042, 0x28602529, 0x00b10860, 0x00b10480 },
+   { 0x80800042, 0x28a02529, 0x00b108a0, 0x00b104a0 },
+   { 0x80800042, 0x28e02529, 0x00b108e0, 0x00b104c0 },
+   { 0x80800042, 0x29202529, 0x00b10920, 0x00b104e0 },
+   { 0x00200008, 0x23e00c21, 0x004503e0, 0x00000001 },
+   { 0x0020000c, 0x2a543dad, 0x00450a54, 0x00010001 },
+   { 0x0020000c, 0x23ee3dad, 0x00450a54, 0x00010001 },
+   { 0x00000009, 0x23f03dad, 0x002103f0, 0x00010001 },
+   { 0x00200040, 0x2e603421, 0x004503e0, 0x004503ee },
+   { 0x00000005, 0x2e640c21, 0x00210e64, 0xfffffffe },
+   { 0x02000005, 0x20002d3c, 0x00210a42, 0x20002000 },
+   { 0x00010040, 0x2e640c21, 0x00210e64, 0x00000001 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0007000f },
+   { 0x00800031, 0x25001d29, 0x00ad0e60, 0x0414a008 },
+   { 0x00800031, 0x25a01d29, 0x00ad0e60, 0x0414a009 },
+   { 0x00800001, 0x24000229, 0x00ad0500, 0x00000000 },
+   { 0x00800001, 0x24200229, 0x00ad0520, 0x00000000 },
+   { 0x00800001, 0x24400229, 0x00ad0540, 0x00000000 },
+   { 0x00800001, 0x24600229, 0x00ad0560, 0x00000000 },
+   { 0x00800001, 0x24800229, 0x00ad05a0, 0x00000000 },
+   { 0x00800001, 0x24a00229, 0x00ad05c0, 0x00000000 },
+   { 0x00800001, 0x24c00229, 0x00ad05e0, 0x00000000 },
+   { 0x00800001, 0x24e00229, 0x00ad0600, 0x00000000 },
+   { 0x80600042, 0x29402529, 0x008d0940, 0x008d0400 },
+   { 0x80600042, 0x29602529, 0x008d0960, 0x008d0420 },
+   { 0x80600042, 0x29802529, 0x008d0980, 0x008d0440 },
+   { 0x80600042, 0x29a02529, 0x008d09a0, 0x008d0460 },
+   { 0x80600042, 0x29c02529, 0x008d09c0, 0x008d0480 },
+   { 0x80600042, 0x29e02529, 0x008d09e0, 0x008d04a0 },
+   { 0x80600042, 0x2a002529, 0x008d0a00, 0x008d04c0 },
+   { 0x80600042, 0x2a202529, 0x008d0a20, 0x008d04e0 },
+   { 0x0020000c, 0x2a5c3dad, 0x00450a5c, 0x00010001 },
+   { 0x0020000c, 0x23ee3dad, 0x00450a5c, 0x00010001 },
+   { 0x00000009, 0x23f03dad, 0x002103f0, 0x00010001 },
+   { 0x00200040, 0x2e603421, 0x004503e0, 0x004503ee },
+   { 0x00000005, 0x2e640c21, 0x00210e64, 0xfffffffe },
+   { 0x02000005, 0x20002d3c, 0x00210a42, 0x80008000 },
+   { 0x00010040, 0x2e640c21, 0x00210e64, 0x00000001 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0007000f },
+   { 0x00800031, 0x25001d29, 0x00ad0e60, 0x0414a008 },
+   { 0x00800031, 0x25a01d29, 0x00ad0e60, 0x0414a009 },
+   { 0x00800001, 0x24000229, 0x00ad0500, 0x00000000 },
+   { 0x00800001, 0x24200229, 0x00ad0520, 0x00000000 },
+   { 0x00800001, 0x24400229, 0x00ad0540, 0x00000000 },
+   { 0x00800001, 0x24600229, 0x00ad0560, 0x00000000 },
+   { 0x00800001, 0x24800229, 0x00ad05a0, 0x00000000 },
+   { 0x00800001, 0x24a00229, 0x00ad05c0, 0x00000000 },
+   { 0x00800001, 0x24c00229, 0x00ad05e0, 0x00000000 },
+   { 0x00800001, 0x24e00229, 0x00ad0600, 0x00000000 },
+   { 0x80600042, 0x29502529, 0x008d0950, 0x008d0400 },
+   { 0x80600042, 0x29702529, 0x008d0970, 0x008d0420 },
+   { 0x80600042, 0x29902529, 0x008d0990, 0x008d0440 },
+   { 0x80600042, 0x29b02529, 0x008d09b0, 0x008d0460 },
+   { 0x80600042, 0x29d02529, 0x008d09d0, 0x008d0480 },
+   { 0x80600042, 0x29f02529, 0x008d09f0, 0x008d04a0 },
+   { 0x80600042, 0x2a102529, 0x008d0a10, 0x008d04c0 },
+   { 0x80600042, 0x2a302529, 0x008d0a30, 0x008d04e0 },
+   { 0x00200001, 0x23e00121, 0x00450a4c, 0x00000000 },
+   { 0x02000005, 0x20002d3c, 0x00210a42, 0x00200020 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x00000011 },
+   { 0x00800040, 0x274045ad, 0x00b10a60, 0x00b20740 },
+   { 0x00800040, 0x276045ad, 0x00b10a80, 0x00b20760 },
+   { 0x00800040, 0x278045ad, 0x00b10aa0, 0x00b20780 },
+   { 0x00800040, 0x27a045ad, 0x00b10ac0, 0x00b207a0 },
+   { 0x00800040, 0x27c045ad, 0x00b10ae0, 0x00b207c0 },
+   { 0x00800040, 0x27e045ad, 0x00b10b00, 0x00b207e0 },
+   { 0x00800040, 0x280045ad, 0x00b10b20, 0x00b20800 },
+   { 0x00800040, 0x282045ad, 0x00b10b40, 0x00b20820 },
+   { 0x00800040, 0x284045ad, 0x00b10b60, 0x00b20840 },
+   { 0x00800040, 0x286045ad, 0x00b10b80, 0x00b20860 },
+   { 0x00800040, 0x288045ad, 0x00b10ba0, 0x00b20880 },
+   { 0x00800040, 0x28a045ad, 0x00b10bc0, 0x00b208a0 },
+   { 0x00800040, 0x28c045ad, 0x00b10be0, 0x00b208c0 },
+   { 0x00800040, 0x28e045ad, 0x00b10c00, 0x00b208e0 },
+   { 0x00800040, 0x290045ad, 0x00b10c20, 0x00b20900 },
+   { 0x00800040, 0x292045ad, 0x00b10c40, 0x00b20920 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000010 },
+   { 0x00800040, 0x274045ad, 0x00b10a60, 0x00b20740 },
+   { 0x00800040, 0x276045ad, 0x00b10b60, 0x00b20760 },
+   { 0x00800040, 0x278045ad, 0x00b10a80, 0x00b20780 },
+   { 0x00800040, 0x27a045ad, 0x00b10b80, 0x00b207a0 },
+   { 0x00800040, 0x27c045ad, 0x00b10aa0, 0x00b207c0 },
+   { 0x00800040, 0x27e045ad, 0x00b10ba0, 0x00b207e0 },
+   { 0x00800040, 0x280045ad, 0x00b10ac0, 0x00b20800 },
+   { 0x00800040, 0x282045ad, 0x00b10bc0, 0x00b20820 },
+   { 0x00800040, 0x284045ad, 0x00b10ae0, 0x00b20840 },
+   { 0x00800040, 0x286045ad, 0x00b10be0, 0x00b20860 },
+   { 0x00800040, 0x288045ad, 0x00b10b00, 0x00b20880 },
+   { 0x00800040, 0x28a045ad, 0x00b10c00, 0x00b208a0 },
+   { 0x00800040, 0x28c045ad, 0x00b10b20, 0x00b208c0 },
+   { 0x00800040, 0x28e045ad, 0x00b10c20, 0x00b208e0 },
+   { 0x00800040, 0x290045ad, 0x00b10b40, 0x00b20900 },
+   { 0x00800040, 0x292045ad, 0x00b10c40, 0x00b20920 },
+   { 0x00000001, 0x23e80061, 0x00000000, 0x000f000f },
+   { 0x80800001, 0x474001b1, 0x00b10740, 0x00000000 },
+   { 0x80800001, 0x476001b1, 0x00b10760, 0x00000000 },
+   { 0x80800001, 0x478001b1, 0x00b10780, 0x00000000 },
+   { 0x80800001, 0x47a001b1, 0x00b107a0, 0x00000000 },
+   { 0x80800001, 0x47c001b1, 0x00b107c0, 0x00000000 },
+   { 0x80800001, 0x47e001b1, 0x00b107e0, 0x00000000 },
+   { 0x80800001, 0x480001b1, 0x00b10800, 0x00000000 },
+   { 0x80800001, 0x482001b1, 0x00b10820, 0x00000000 },
+   { 0x80800001, 0x484001b1, 0x00b10840, 0x00000000 },
+   { 0x80800001, 0x486001b1, 0x00b10860, 0x00000000 },
+   { 0x80800001, 0x488001b1, 0x00b10880, 0x00000000 },
+   { 0x80800001, 0x48a001b1, 0x00b108a0, 0x00000000 },
+   { 0x80800001, 0x48c001b1, 0x00b108c0, 0x00000000 },
+   { 0x80800001, 0x48e001b1, 0x00b108e0, 0x00000000 },
+   { 0x80800001, 0x490001b1, 0x00b10900, 0x00000000 },
+   { 0x80800001, 0x492001b1, 0x00b10920, 0x00000000 },
+   { 0x00800001, 0x20200232, 0x00b20740, 0x00000000 },
+   { 0x00800001, 0x20300232, 0x00b20760, 0x00000000 },
+   { 0x00800001, 0x20400232, 0x00b20780, 0x00000000 },
+   { 0x00800001, 0x20500232, 0x00b207a0, 0x00000000 },
+   { 0x00800001, 0x20600232, 0x00b207c0, 0x00000000 },
+   { 0x00800001, 0x20700232, 0x00b207e0, 0x00000000 },
+   { 0x00800001, 0x20800232, 0x00b20800, 0x00000000 },
+   { 0x00800001, 0x20900232, 0x00b20820, 0x00000000 },
+   { 0x00800001, 0x20a00232, 0x00b20840, 0x00000000 },
+   { 0x00800001, 0x20b00232, 0x00b20860, 0x00000000 },
+   { 0x00800001, 0x20c00232, 0x00b20880, 0x00000000 },
+   { 0x00800001, 0x20d00232, 0x00b208a0, 0x00000000 },
+   { 0x00800001, 0x20e00232, 0x00b208c0, 0x00000000 },
+   { 0x00800001, 0x20f00232, 0x00b208e0, 0x00000000 },
+   { 0x00800001, 0x21000232, 0x00b20900, 0x00000000 },
+   { 0x00800001, 0x21100232, 0x00b20920, 0x00000000 },
+   { 0x00800031, 0x24001d28, 0x008d03e0, 0x05902000 },
+   { 0x00000001, 0x23e80061, 0x00000000, 0x00070007 },
+   { 0x00200008, 0x23e01c21, 0x004503e0, 0x00000001 },
+   { 0x00800040, 0x294025ad, 0x00b10c60, 0x00b10940 },
+   { 0x00800040, 0x296025ad, 0x00b10c80, 0x00b10960 },
+   { 0x00800040, 0x298025ad, 0x00b10ca0, 0x00b10980 },
+   { 0x00800040, 0x29a025ad, 0x00b10cc0, 0x00b109a0 },
+   { 0x80800001, 0x494001b1, 0x00b10940, 0x00000000 },
+   { 0x80800001, 0x496001b1, 0x00b10960, 0x00000000 },
+   { 0x80800001, 0x498001b1, 0x00b10980, 0x00000000 },
+   { 0x80800001, 0x49a001b1, 0x00b109a0, 0x00000000 },
+   { 0x00800001, 0x20200232, 0x00b20940, 0x00000000 },
+   { 0x00800001, 0x20300232, 0x00b20960, 0x00000000 },
+   { 0x00800001, 0x20400232, 0x00b20980, 0x00000000 },
+   { 0x00800001, 0x20500232, 0x00b209a0, 0x00000000 },
+   { 0x00800031, 0x24001d28, 0x008d03e0, 0x05302001 },
+   { 0x00800040, 0x29c025a9, 0x00b10ce0, 0x00b109c0 },
+   { 0x00800040, 0x29e025a9, 0x00b10d00, 0x00b109e0 },
+   { 0x00800040, 0x2a0025a9, 0x00b10d20, 0x00b10a00 },
+   { 0x00800040, 0x2a2025a9, 0x00b10d40, 0x00b10a20 },
+   { 0x80800001, 0x49c001b1, 0x00b109c0, 0x00000000 },
+   { 0x80800001, 0x49e001b1, 0x00b109e0, 0x00000000 },
+   { 0x80800001, 0x4a0001b1, 0x00b10a00, 0x00000000 },
+   { 0x80800001, 0x4a2001b1, 0x00b10a20, 0x00000000 },
+   { 0x00800001, 0x20200232, 0x00b209c0, 0x00000000 },
+   { 0x00800001, 0x20300232, 0x00b209e0, 0x00000000 },
+   { 0x00800001, 0x20400232, 0x00b20a00, 0x00000000 },
+   { 0x00800001, 0x20500232, 0x00b20a20, 0x00000000 },
+   { 0x00800031, 0x24001d28, 0x008d03e0, 0x05302002 },
+   { 0x00800031, 0x24001d28, 0x008d0000, 0x87100000 },
+   { 0x00800031, 0x24001d28, 0x008d0000, 0x87100000 },
diff --git a/src/xvmc/shader/vld/field_forward.g4a b/src/xvmc/shader/vld/field_forward.g4a
new file mode 100644
index 0000000..4c79c5f
--- /dev/null
+++ b/src/xvmc/shader/vld/field_forward.g4a
@@ -0,0 +1,130 @@
+/*
+ * Copyright © 2009 Intel Corporation
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice (including the next
+ * paragraph) shall be included in all copies or substantial portions of the
+ * Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
+ * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+ * SOFTWARE.
+ *
+ * Author:
+ *    Zou Nan hai <nanhai.zou at intel.com>
+ *    Yan Li <li.l.yan at intel.com>
+ *    Liu Xi bin<xibin.liu at intel.com>
+ */
+/* GRF allocation:
+   g1~g30: constant buffer
+           g1~g2:intra IQ matrix
+           g3~g4:non intra IQ matrix
+           g5~g20:IDCT table
+   g31:    thread payload 
+   g58~g81:reference data
+   g82:    thread payload backup
+   g83~g106:IDCT data
+   g115:   message descriptor for reading reference data   */
+mov (8) g82.0<1>UD g31.0<8,8,1>UD {align1};
+mov (2) g31.0<1>UD g82.12<2,2,1>UW {align1};
+mov (1) g126.8<1>UD ip {align1};
+mov (1) ip g21.0<1,1,1>UD {align1};
+
+/*field 0 of Y*/
+asr (2) g31.14<1>W g82.16<2,2,1>W 1W {align1};
+shl (1) g31.16<1>W g31.16<1,1,1>W 1W {align1};
+add (2) g115.0<1>UD g31.0<2,2,1>UD g31.14<2,2,1>W {align1};
+and (1) g115.4<1>UD g115.4<1,1,1>UD 0xFFFFFFFEUD {align1};
+and.nz (1) null g82.2<1,1,1>UW 0x1000UW {align1};             //motion vertical field select
+(f0) add (1) g115.4<1>UD g115.4<1,1,1>UD 1UD {align1};
+define(`surface',`4')
+define(`mv1',`g82.16')
+define(`mv2',`g82.18')
+include(`motion_field_y.g4i')
+mov (8) g58.0<1>UD g32.0<8,8,1>UD {align1};
+mov (8) g60.0<1>UD g33.0<8,8,1>UD {align1};
+mov (8) g62.0<1>UD g34.0<8,8,1>UD {align1};
+mov (8) g64.0<1>UD g35.0<8,8,1>UD {align1};
+mov (8) g66.0<1>UD g36.0<8,8,1>UD {align1};
+mov (8) g68.0<1>UD g37.0<8,8,1>UD {align1};
+mov (8) g70.0<1>UD g38.0<8,8,1>UD {align1};
+mov (8) g72.0<1>UD g39.0<8,8,1>UD {align1};
+
+/*field 1 of Y*/
+asr (2) g31.14<1>W g82.24<2,2,1>W 1W {align1};
+shl (1) g31.16<1>W g31.16<1,1,1>W 1W {align1};
+add (2) g115.0<1>UD g31.0<2,2,1>UD g31.14<2,2,1>W {align1};
+and (1) g115.4<1>UD g115.4<1,1,1>UD 0xFFFFFFFEUD {align1};
+and.nz (1) null g82.2<1,1,1>UW 0x4000UW {align1};
+(f0) add (1) g115.4<1>UD g115.4<1,1,1>UD 1UD {align1};
+define(`surface',`4')
+define(`mv1',`g82.24')
+define(`mv2',`g82.26')
+include(`motion_field_y.g4i')
+mov (8) g59.0<1>UD g32.0<8,8,1>UD {align1};
+mov (8) g61.0<1>UD g33.0<8,8,1>UD {align1};
+mov (8) g63.0<1>UD g34.0<8,8,1>UD {align1};
+mov (8) g65.0<1>UD g35.0<8,8,1>UD {align1};
+mov (8) g67.0<1>UD g36.0<8,8,1>UD {align1};
+mov (8) g69.0<1>UD g37.0<8,8,1>UD {align1};
+mov (8) g71.0<1>UD g38.0<8,8,1>UD {align1};
+mov (8) g73.0<1>UD g39.0<8,8,1>UD {align1};
+
+/*field 0 of UV*/
+shr (2) g31.0<1>UD g31.0<2,2,1>UD 1UD {align1};
+asr (2) g82.16<1>W g82.16<2,2,1>W 1W {align1};
+asr (2) g31.14<1>W g82.16<2,2,1>W 1W {align1};
+shl (1) g31.16<1>W g31.16<1,1,1>W 1W {align1};
+add (2) g115.0<1>UD g31.0<2,2,1>UD g31.14<2,2,1>W {align1};
+and (1) g115.4<1>UD g115.4<1,1,1>UD 0xFFFFFFFEUD {align1};
+and.nz (1) null g82.2<1,1,1>UW 0x1000UW {align1};
+(f0) add (1) g115.4<1>UD g115.4<1,1,1>UD 1UD {align1};
+define(`surface_u', `5')
+define(`surface_v', `6')
+define(`mv1',`g82.16')
+define(`mv2',`g82.18')
+include(`motion_field_uv.g4i')
+mov (8) g74.0<1>UW g32.0<8,8,1>UW {align1};
+mov (8) g75.0<1>UW g33.0<8,8,1>UW {align1};
+mov (8) g76.0<1>UW g34.0<8,8,1>UW {align1};
+mov (8) g77.0<1>UW g35.0<8,8,1>UW {align1};
+mov (8) g78.0<1>UW g36.0<8,8,1>UW {align1};
+mov (8) g79.0<1>UW g37.0<8,8,1>UW {align1};
+mov (8) g80.0<1>UW g38.0<8,8,1>UW {align1};
+mov (8) g81.0<1>UW g39.0<8,8,1>UW {align1};
+
+/*field 1 of UV*/
+asr (2) g82.24<1>W g82.24<2,2,1>W 1W {align1};
+asr (2) g31.14<1>W g82.24<2,2,1>W 1W {align1};
+shl (1) g31.16<1>W g31.16<1,1,1>W 1W {align1};
+add (2) g115.0<1>UD g31.0<2,2,1>UD g31.14<2,2,1>W {align1};
+and (1) g115.4<1>UD g115.4<1,1,1>UD 0xFFFFFFFEUD {align1};
+and.nz (1) null g82.2<1,1,1>UW 0x4000UW {align1};
+(f0) add (1) g115.4<1>UD g115.4<1,1,1>UD 1UD {align1};
+define(`surface_u', `5')
+define(`surface_v', `6')
+define(`mv1',`g82.24')
+define(`mv2',`g82.26')
+include(`motion_field_uv.g4i')
+mov (8) g74.16<1>UW g32.0<8,8,1>UW {align1};
+mov (8) g75.16<1>UW g33.0<8,8,1>UW {align1};
+mov (8) g76.16<1>UW g34.0<8,8,1>UW {align1};
+mov (8) g77.16<1>UW g35.0<8,8,1>UW {align1};
+mov (8) g78.16<1>UW g36.0<8,8,1>UW {align1};
+mov (8) g79.16<1>UW g37.0<8,8,1>UW {align1};
+mov (8) g80.16<1>UW g38.0<8,8,1>UW {align1};
+mov (8) g81.16<1>UW g39.0<8,8,1>UW {align1};
+
+include(`addidct.g4i')
+send (16) 0 acc0<1>UW g0<8,8,1>UW 
+	thread_spawner(0, 0, 0) mlen 1 rlen 0 { align1 EOT};
diff --git a/src/xvmc/shader/vld/field_forward.g4b b/src/xvmc/shader/vld/field_forward.g4b
new file mode 100644
index 0000000..343643c
--- /dev/null
+++ b/src/xvmc/shader/vld/field_forward.g4b
@@ -0,0 +1,415 @@
+   { 0x00600001, 0x2a400021, 0x008d03e0, 0x00000000 },
+   { 0x00200001, 0x23e00121, 0x00450a4c, 0x00000000 },
+   { 0x00000001, 0x2fc80001, 0x00001400, 0x00000000 },
+   { 0x00000001, 0x34000020, 0x002102a0, 0x00000000 },
+   { 0x0020000c, 0x23ee3dad, 0x00450a50, 0x00010001 },
+   { 0x00000009, 0x23f03dad, 0x002103f0, 0x00010001 },
+   { 0x00200040, 0x2e603421, 0x004503e0, 0x004503ee },
+   { 0x00000005, 0x2e640c21, 0x00210e64, 0xfffffffe },
+   { 0x02000005, 0x20002d3c, 0x00210a42, 0x10001000 },
+   { 0x00010040, 0x2e640c21, 0x00210e64, 0x00000001 },
+   { 0x01000005, 0x20002dbc, 0x00210a50, 0x00010001 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x00000045 },
+   { 0x01000005, 0x20002dbc, 0x00210a52, 0x00010001 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x0000002f },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
+   { 0x00800031, 0x25001d29, 0x008d0e60, 0x0411a004 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00800031, 0x25401d29, 0x008d0e60, 0x0411a004 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00800031, 0x25801d29, 0x008d0e60, 0x0411a004 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00800031, 0x25c01d29, 0x008d0e60, 0x0411a004 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0007001f },
+   { 0x00800031, 0x26001d29, 0x008d0e60, 0x0418a004 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
+   { 0x00800031, 0x27001d29, 0x008d0e60, 0x0411a004 },
+   { 0x00800040, 0x24004629, 0x00b10500, 0x00b10540 },
+   { 0x00800040, 0x24204629, 0x00b10540, 0x00b10580 },
+   { 0x00800040, 0x24404629, 0x00b10580, 0x00b105c0 },
+   { 0x00800040, 0x24604629, 0x00b105c0, 0x00b10600 },
+   { 0x00800040, 0x24804629, 0x00b10600, 0x00b10640 },
+   { 0x00800040, 0x24a04629, 0x00b10640, 0x00b10680 },
+   { 0x00800040, 0x24c04629, 0x00b10680, 0x00b106c0 },
+   { 0x00800040, 0x24e04629, 0x00b106c0, 0x00b10700 },
+   { 0x00800040, 0x24004529, 0x00b10400, 0x00b10501 },
+   { 0x00800040, 0x24204529, 0x00b10420, 0x00b10541 },
+   { 0x00800040, 0x24404529, 0x00b10440, 0x00b10581 },
+   { 0x00800040, 0x24604529, 0x00b10460, 0x00b105c1 },
+   { 0x00800040, 0x24804529, 0x00b10480, 0x00b10601 },
+   { 0x00800040, 0x24a04529, 0x00b104a0, 0x00b10641 },
+   { 0x00800040, 0x24c04529, 0x00b104c0, 0x00b10681 },
+   { 0x00800040, 0x24e04529, 0x00b104e0, 0x00b106c1 },
+   { 0x00800040, 0x24004529, 0x00b10400, 0x00b10541 },
+   { 0x00800040, 0x24204529, 0x00b10420, 0x00b10581 },
+   { 0x00800040, 0x24404529, 0x00b10440, 0x00b105c1 },
+   { 0x00800040, 0x24604529, 0x00b10460, 0x00b10601 },
+   { 0x00800040, 0x24804529, 0x00b10480, 0x00b10641 },
+   { 0x00800040, 0x24a04529, 0x00b104a0, 0x00b10681 },
+   { 0x00800040, 0x24c04529, 0x00b104c0, 0x00b106c1 },
+   { 0x00800040, 0x24e04529, 0x00b104e0, 0x00b10701 },
+   { 0x00800008, 0x24002d29, 0x00b10400, 0x00020002 },
+   { 0x00800008, 0x24202d29, 0x00b10420, 0x00020002 },
+   { 0x00800008, 0x24402d29, 0x00b10440, 0x00020002 },
+   { 0x00800008, 0x24602d29, 0x00b10460, 0x00020002 },
+   { 0x00800008, 0x24802d29, 0x00b10480, 0x00020002 },
+   { 0x00800008, 0x24a02d29, 0x00b104a0, 0x00020002 },
+   { 0x00800008, 0x24c02d29, 0x00b104c0, 0x00020002 },
+   { 0x00800008, 0x24e02d29, 0x00b104e0, 0x00020002 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000040 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
+   { 0x00800031, 0x25001d29, 0x008d0e60, 0x0411a004 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00800031, 0x25401d29, 0x008d0e60, 0x0411a004 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00800031, 0x25801d29, 0x008d0e60, 0x0411a004 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00800031, 0x25c01d29, 0x008d0e60, 0x0411a004 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0007001f },
+   { 0x00800031, 0x26001d29, 0x008d0e60, 0x0418a004 },
+   { 0x80800042, 0x24004629, 0x00b10500, 0x00b10501 },
+   { 0x80800042, 0x24204629, 0x00b10540, 0x00b10541 },
+   { 0x80800042, 0x24404629, 0x00b10580, 0x00b10581 },
+   { 0x80800042, 0x24604629, 0x00b105c0, 0x00b105c1 },
+   { 0x80800042, 0x24804629, 0x00b10600, 0x00b10601 },
+   { 0x80800042, 0x24a04629, 0x00b10640, 0x00b10641 },
+   { 0x80800042, 0x24c04629, 0x00b10680, 0x00b10681 },
+   { 0x80800042, 0x24e04629, 0x00b106c0, 0x00b106c1 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x0000002c },
+   { 0x01000005, 0x20002dbc, 0x00210a52, 0x00010001 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x00000017 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
+   { 0x00800031, 0x25001d29, 0x008d0e60, 0x0411a004 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00800031, 0x25401d29, 0x008d0e60, 0x0411a004 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00800031, 0x25801d29, 0x008d0e60, 0x0411a004 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00800031, 0x25c01d29, 0x008d0e60, 0x0411a004 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0007001f },
+   { 0x00800031, 0x26001d29, 0x008d0e60, 0x0418a004 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
+   { 0x00800031, 0x27001d29, 0x008d0e60, 0x0411a004 },
+   { 0x80800042, 0x24004629, 0x00b10500, 0x00b10540 },
+   { 0x80800042, 0x24204629, 0x00b10540, 0x00b10580 },
+   { 0x80800042, 0x24404629, 0x00b10580, 0x00b105c0 },
+   { 0x80800042, 0x24604629, 0x00b105c0, 0x00b10600 },
+   { 0x80800042, 0x24804629, 0x00b10600, 0x00b10640 },
+   { 0x80800042, 0x24a04629, 0x00b10640, 0x00b10680 },
+   { 0x80800042, 0x24c04629, 0x00b10680, 0x00b106c0 },
+   { 0x80800042, 0x24e04629, 0x00b106c0, 0x00b10700 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000013 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
+   { 0x00800031, 0x25001d29, 0x008d0e60, 0x0411a004 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00800031, 0x25401d29, 0x008d0e60, 0x0411a004 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00800031, 0x25801d29, 0x008d0e60, 0x0411a004 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00800031, 0x25c01d29, 0x008d0e60, 0x0411a004 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0007001f },
+   { 0x00800031, 0x26001d29, 0x008d0e60, 0x0418a004 },
+   { 0x00800001, 0x24000229, 0x00b10500, 0x00000000 },
+   { 0x00800001, 0x24200229, 0x00b10540, 0x00000000 },
+   { 0x00800001, 0x24400229, 0x00b10580, 0x00000000 },
+   { 0x00800001, 0x24600229, 0x00b105c0, 0x00000000 },
+   { 0x00800001, 0x24800229, 0x00b10600, 0x00000000 },
+   { 0x00800001, 0x24a00229, 0x00b10640, 0x00000000 },
+   { 0x00800001, 0x24c00229, 0x00b10680, 0x00000000 },
+   { 0x00800001, 0x24e00229, 0x00b106c0, 0x00000000 },
+   { 0x00600001, 0x27400021, 0x008d0400, 0x00000000 },
+   { 0x00600001, 0x27800021, 0x008d0420, 0x00000000 },
+   { 0x00600001, 0x27c00021, 0x008d0440, 0x00000000 },
+   { 0x00600001, 0x28000021, 0x008d0460, 0x00000000 },
+   { 0x00600001, 0x28400021, 0x008d0480, 0x00000000 },
+   { 0x00600001, 0x28800021, 0x008d04a0, 0x00000000 },
+   { 0x00600001, 0x28c00021, 0x008d04c0, 0x00000000 },
+   { 0x00600001, 0x29000021, 0x008d04e0, 0x00000000 },
+   { 0x0020000c, 0x23ee3dad, 0x00450a58, 0x00010001 },
+   { 0x00000009, 0x23f03dad, 0x002103f0, 0x00010001 },
+   { 0x00200040, 0x2e603421, 0x004503e0, 0x004503ee },
+   { 0x00000005, 0x2e640c21, 0x00210e64, 0xfffffffe },
+   { 0x02000005, 0x20002d3c, 0x00210a42, 0x40004000 },
+   { 0x00010040, 0x2e640c21, 0x00210e64, 0x00000001 },
+   { 0x01000005, 0x20002dbc, 0x00210a58, 0x00010001 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x00000045 },
+   { 0x01000005, 0x20002dbc, 0x00210a5a, 0x00010001 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x0000002f },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
+   { 0x00800031, 0x25001d29, 0x008d0e60, 0x0411a004 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00800031, 0x25401d29, 0x008d0e60, 0x0411a004 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00800031, 0x25801d29, 0x008d0e60, 0x0411a004 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00800031, 0x25c01d29, 0x008d0e60, 0x0411a004 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0007001f },
+   { 0x00800031, 0x26001d29, 0x008d0e60, 0x0418a004 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
+   { 0x00800031, 0x27001d29, 0x008d0e60, 0x0411a004 },
+   { 0x00800040, 0x24004629, 0x00b10500, 0x00b10540 },
+   { 0x00800040, 0x24204629, 0x00b10540, 0x00b10580 },
+   { 0x00800040, 0x24404629, 0x00b10580, 0x00b105c0 },
+   { 0x00800040, 0x24604629, 0x00b105c0, 0x00b10600 },
+   { 0x00800040, 0x24804629, 0x00b10600, 0x00b10640 },
+   { 0x00800040, 0x24a04629, 0x00b10640, 0x00b10680 },
+   { 0x00800040, 0x24c04629, 0x00b10680, 0x00b106c0 },
+   { 0x00800040, 0x24e04629, 0x00b106c0, 0x00b10700 },
+   { 0x00800040, 0x24004529, 0x00b10400, 0x00b10501 },
+   { 0x00800040, 0x24204529, 0x00b10420, 0x00b10541 },
+   { 0x00800040, 0x24404529, 0x00b10440, 0x00b10581 },
+   { 0x00800040, 0x24604529, 0x00b10460, 0x00b105c1 },
+   { 0x00800040, 0x24804529, 0x00b10480, 0x00b10601 },
+   { 0x00800040, 0x24a04529, 0x00b104a0, 0x00b10641 },
+   { 0x00800040, 0x24c04529, 0x00b104c0, 0x00b10681 },
+   { 0x00800040, 0x24e04529, 0x00b104e0, 0x00b106c1 },
+   { 0x00800040, 0x24004529, 0x00b10400, 0x00b10541 },
+   { 0x00800040, 0x24204529, 0x00b10420, 0x00b10581 },
+   { 0x00800040, 0x24404529, 0x00b10440, 0x00b105c1 },
+   { 0x00800040, 0x24604529, 0x00b10460, 0x00b10601 },
+   { 0x00800040, 0x24804529, 0x00b10480, 0x00b10641 },
+   { 0x00800040, 0x24a04529, 0x00b104a0, 0x00b10681 },
+   { 0x00800040, 0x24c04529, 0x00b104c0, 0x00b106c1 },
+   { 0x00800040, 0x24e04529, 0x00b104e0, 0x00b10701 },
+   { 0x00800008, 0x24002d29, 0x00b10400, 0x00020002 },
+   { 0x00800008, 0x24202d29, 0x00b10420, 0x00020002 },
+   { 0x00800008, 0x24402d29, 0x00b10440, 0x00020002 },
+   { 0x00800008, 0x24602d29, 0x00b10460, 0x00020002 },
+   { 0x00800008, 0x24802d29, 0x00b10480, 0x00020002 },
+   { 0x00800008, 0x24a02d29, 0x00b104a0, 0x00020002 },
+   { 0x00800008, 0x24c02d29, 0x00b104c0, 0x00020002 },
+   { 0x00800008, 0x24e02d29, 0x00b104e0, 0x00020002 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000040 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
+   { 0x00800031, 0x25001d29, 0x008d0e60, 0x0411a004 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00800031, 0x25401d29, 0x008d0e60, 0x0411a004 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00800031, 0x25801d29, 0x008d0e60, 0x0411a004 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00800031, 0x25c01d29, 0x008d0e60, 0x0411a004 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0007001f },
+   { 0x00800031, 0x26001d29, 0x008d0e60, 0x0418a004 },
+   { 0x80800042, 0x24004629, 0x00b10500, 0x00b10501 },
+   { 0x80800042, 0x24204629, 0x00b10540, 0x00b10541 },
+   { 0x80800042, 0x24404629, 0x00b10580, 0x00b10581 },
+   { 0x80800042, 0x24604629, 0x00b105c0, 0x00b105c1 },
+   { 0x80800042, 0x24804629, 0x00b10600, 0x00b10601 },
+   { 0x80800042, 0x24a04629, 0x00b10640, 0x00b10641 },
+   { 0x80800042, 0x24c04629, 0x00b10680, 0x00b10681 },
+   { 0x80800042, 0x24e04629, 0x00b106c0, 0x00b106c1 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x0000002c },
+   { 0x01000005, 0x20002dbc, 0x00210a5a, 0x00010001 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x00000017 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
+   { 0x00800031, 0x25001d29, 0x008d0e60, 0x0411a004 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00800031, 0x25401d29, 0x008d0e60, 0x0411a004 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00800031, 0x25801d29, 0x008d0e60, 0x0411a004 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00800031, 0x25c01d29, 0x008d0e60, 0x0411a004 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0007001f },
+   { 0x00800031, 0x26001d29, 0x008d0e60, 0x0418a004 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
+   { 0x00800031, 0x27001d29, 0x008d0e60, 0x0411a004 },
+   { 0x80800042, 0x24004629, 0x00b10500, 0x00b10540 },
+   { 0x80800042, 0x24204629, 0x00b10540, 0x00b10580 },
+   { 0x80800042, 0x24404629, 0x00b10580, 0x00b105c0 },
+   { 0x80800042, 0x24604629, 0x00b105c0, 0x00b10600 },
+   { 0x80800042, 0x24804629, 0x00b10600, 0x00b10640 },
+   { 0x80800042, 0x24a04629, 0x00b10640, 0x00b10680 },
+   { 0x80800042, 0x24c04629, 0x00b10680, 0x00b106c0 },
+   { 0x80800042, 0x24e04629, 0x00b106c0, 0x00b10700 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000013 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
+   { 0x00800031, 0x25001d29, 0x008d0e60, 0x0411a004 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00800031, 0x25401d29, 0x008d0e60, 0x0411a004 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00800031, 0x25801d29, 0x008d0e60, 0x0411a004 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00800031, 0x25c01d29, 0x008d0e60, 0x0411a004 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0007001f },
+   { 0x00800031, 0x26001d29, 0x008d0e60, 0x0418a004 },
+   { 0x00800001, 0x24000229, 0x00b10500, 0x00000000 },
+   { 0x00800001, 0x24200229, 0x00b10540, 0x00000000 },
+   { 0x00800001, 0x24400229, 0x00b10580, 0x00000000 },
+   { 0x00800001, 0x24600229, 0x00b105c0, 0x00000000 },
+   { 0x00800001, 0x24800229, 0x00b10600, 0x00000000 },
+   { 0x00800001, 0x24a00229, 0x00b10640, 0x00000000 },
+   { 0x00800001, 0x24c00229, 0x00b10680, 0x00000000 },
+   { 0x00800001, 0x24e00229, 0x00b106c0, 0x00000000 },
+   { 0x00600001, 0x27600021, 0x008d0400, 0x00000000 },
+   { 0x00600001, 0x27a00021, 0x008d0420, 0x00000000 },
+   { 0x00600001, 0x27e00021, 0x008d0440, 0x00000000 },
+   { 0x00600001, 0x28200021, 0x008d0460, 0x00000000 },
+   { 0x00600001, 0x28600021, 0x008d0480, 0x00000000 },
+   { 0x00600001, 0x28a00021, 0x008d04a0, 0x00000000 },
+   { 0x00600001, 0x28e00021, 0x008d04c0, 0x00000000 },
+   { 0x00600001, 0x29200021, 0x008d04e0, 0x00000000 },
+   { 0x00200008, 0x23e00c21, 0x004503e0, 0x00000001 },
+   { 0x0020000c, 0x2a503dad, 0x00450a50, 0x00010001 },
+   { 0x0020000c, 0x23ee3dad, 0x00450a50, 0x00010001 },
+   { 0x00000009, 0x23f03dad, 0x002103f0, 0x00010001 },
+   { 0x00200040, 0x2e603421, 0x004503e0, 0x004503ee },
+   { 0x00000005, 0x2e640c21, 0x00210e64, 0xfffffffe },
+   { 0x02000005, 0x20002d3c, 0x00210a42, 0x10001000 },
+   { 0x00010040, 0x2e640c21, 0x00210e64, 0x00000001 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0007000f },
+   { 0x00800031, 0x25001d29, 0x00ad0e60, 0x0414a005 },
+   { 0x00800031, 0x25a01d29, 0x00ad0e60, 0x0414a006 },
+   { 0x00800001, 0x24000229, 0x00ad0500, 0x00000000 },
+   { 0x00800001, 0x24200229, 0x00ad0520, 0x00000000 },
+   { 0x00800001, 0x24400229, 0x00ad0540, 0x00000000 },
+   { 0x00800001, 0x24600229, 0x00ad0560, 0x00000000 },
+   { 0x00800001, 0x24800229, 0x00ad05a0, 0x00000000 },
+   { 0x00800001, 0x24a00229, 0x00ad05c0, 0x00000000 },
+   { 0x00800001, 0x24c00229, 0x00ad05e0, 0x00000000 },
+   { 0x00800001, 0x24e00229, 0x00ad0600, 0x00000000 },
+   { 0x00600001, 0x29400129, 0x008d0400, 0x00000000 },
+   { 0x00600001, 0x29600129, 0x008d0420, 0x00000000 },
+   { 0x00600001, 0x29800129, 0x008d0440, 0x00000000 },
+   { 0x00600001, 0x29a00129, 0x008d0460, 0x00000000 },
+   { 0x00600001, 0x29c00129, 0x008d0480, 0x00000000 },
+   { 0x00600001, 0x29e00129, 0x008d04a0, 0x00000000 },
+   { 0x00600001, 0x2a000129, 0x008d04c0, 0x00000000 },
+   { 0x00600001, 0x2a200129, 0x008d04e0, 0x00000000 },
+   { 0x0020000c, 0x2a583dad, 0x00450a58, 0x00010001 },
+   { 0x0020000c, 0x23ee3dad, 0x00450a58, 0x00010001 },
+   { 0x00000009, 0x23f03dad, 0x002103f0, 0x00010001 },
+   { 0x00200040, 0x2e603421, 0x004503e0, 0x004503ee },
+   { 0x00000005, 0x2e640c21, 0x00210e64, 0xfffffffe },
+   { 0x02000005, 0x20002d3c, 0x00210a42, 0x40004000 },
+   { 0x00010040, 0x2e640c21, 0x00210e64, 0x00000001 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0007000f },
+   { 0x00800031, 0x25001d29, 0x00ad0e60, 0x0414a005 },
+   { 0x00800031, 0x25a01d29, 0x00ad0e60, 0x0414a006 },
+   { 0x00800001, 0x24000229, 0x00ad0500, 0x00000000 },
+   { 0x00800001, 0x24200229, 0x00ad0520, 0x00000000 },
+   { 0x00800001, 0x24400229, 0x00ad0540, 0x00000000 },
+   { 0x00800001, 0x24600229, 0x00ad0560, 0x00000000 },
+   { 0x00800001, 0x24800229, 0x00ad05a0, 0x00000000 },
+   { 0x00800001, 0x24a00229, 0x00ad05c0, 0x00000000 },
+   { 0x00800001, 0x24c00229, 0x00ad05e0, 0x00000000 },
+   { 0x00800001, 0x24e00229, 0x00ad0600, 0x00000000 },
+   { 0x00600001, 0x29500129, 0x008d0400, 0x00000000 },
+   { 0x00600001, 0x29700129, 0x008d0420, 0x00000000 },
+   { 0x00600001, 0x29900129, 0x008d0440, 0x00000000 },
+   { 0x00600001, 0x29b00129, 0x008d0460, 0x00000000 },
+   { 0x00600001, 0x29d00129, 0x008d0480, 0x00000000 },
+   { 0x00600001, 0x29f00129, 0x008d04a0, 0x00000000 },
+   { 0x00600001, 0x2a100129, 0x008d04c0, 0x00000000 },
+   { 0x00600001, 0x2a300129, 0x008d04e0, 0x00000000 },
+   { 0x00200001, 0x23e00121, 0x00450a4c, 0x00000000 },
+   { 0x02000005, 0x20002d3c, 0x00210a42, 0x00200020 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x00000011 },
+   { 0x00800040, 0x274045ad, 0x00b10a60, 0x00b20740 },
+   { 0x00800040, 0x276045ad, 0x00b10a80, 0x00b20760 },
+   { 0x00800040, 0x278045ad, 0x00b10aa0, 0x00b20780 },
+   { 0x00800040, 0x27a045ad, 0x00b10ac0, 0x00b207a0 },
+   { 0x00800040, 0x27c045ad, 0x00b10ae0, 0x00b207c0 },
+   { 0x00800040, 0x27e045ad, 0x00b10b00, 0x00b207e0 },
+   { 0x00800040, 0x280045ad, 0x00b10b20, 0x00b20800 },
+   { 0x00800040, 0x282045ad, 0x00b10b40, 0x00b20820 },
+   { 0x00800040, 0x284045ad, 0x00b10b60, 0x00b20840 },
+   { 0x00800040, 0x286045ad, 0x00b10b80, 0x00b20860 },
+   { 0x00800040, 0x288045ad, 0x00b10ba0, 0x00b20880 },
+   { 0x00800040, 0x28a045ad, 0x00b10bc0, 0x00b208a0 },
+   { 0x00800040, 0x28c045ad, 0x00b10be0, 0x00b208c0 },
+   { 0x00800040, 0x28e045ad, 0x00b10c00, 0x00b208e0 },
+   { 0x00800040, 0x290045ad, 0x00b10c20, 0x00b20900 },
+   { 0x00800040, 0x292045ad, 0x00b10c40, 0x00b20920 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000010 },
+   { 0x00800040, 0x274045ad, 0x00b10a60, 0x00b20740 },
+   { 0x00800040, 0x276045ad, 0x00b10b60, 0x00b20760 },
+   { 0x00800040, 0x278045ad, 0x00b10a80, 0x00b20780 },
+   { 0x00800040, 0x27a045ad, 0x00b10b80, 0x00b207a0 },
+   { 0x00800040, 0x27c045ad, 0x00b10aa0, 0x00b207c0 },
+   { 0x00800040, 0x27e045ad, 0x00b10ba0, 0x00b207e0 },
+   { 0x00800040, 0x280045ad, 0x00b10ac0, 0x00b20800 },
+   { 0x00800040, 0x282045ad, 0x00b10bc0, 0x00b20820 },
+   { 0x00800040, 0x284045ad, 0x00b10ae0, 0x00b20840 },
+   { 0x00800040, 0x286045ad, 0x00b10be0, 0x00b20860 },
+   { 0x00800040, 0x288045ad, 0x00b10b00, 0x00b20880 },
+   { 0x00800040, 0x28a045ad, 0x00b10c00, 0x00b208a0 },
+   { 0x00800040, 0x28c045ad, 0x00b10b20, 0x00b208c0 },
+   { 0x00800040, 0x28e045ad, 0x00b10c20, 0x00b208e0 },
+   { 0x00800040, 0x290045ad, 0x00b10b40, 0x00b20900 },
+   { 0x00800040, 0x292045ad, 0x00b10c40, 0x00b20920 },
+   { 0x00000001, 0x23e80061, 0x00000000, 0x000f000f },
+   { 0x80800001, 0x474001b1, 0x00b10740, 0x00000000 },
+   { 0x80800001, 0x476001b1, 0x00b10760, 0x00000000 },
+   { 0x80800001, 0x478001b1, 0x00b10780, 0x00000000 },
+   { 0x80800001, 0x47a001b1, 0x00b107a0, 0x00000000 },
+   { 0x80800001, 0x47c001b1, 0x00b107c0, 0x00000000 },
+   { 0x80800001, 0x47e001b1, 0x00b107e0, 0x00000000 },
+   { 0x80800001, 0x480001b1, 0x00b10800, 0x00000000 },
+   { 0x80800001, 0x482001b1, 0x00b10820, 0x00000000 },
+   { 0x80800001, 0x484001b1, 0x00b10840, 0x00000000 },
+   { 0x80800001, 0x486001b1, 0x00b10860, 0x00000000 },
+   { 0x80800001, 0x488001b1, 0x00b10880, 0x00000000 },
+   { 0x80800001, 0x48a001b1, 0x00b108a0, 0x00000000 },
+   { 0x80800001, 0x48c001b1, 0x00b108c0, 0x00000000 },
+   { 0x80800001, 0x48e001b1, 0x00b108e0, 0x00000000 },
+   { 0x80800001, 0x490001b1, 0x00b10900, 0x00000000 },
+   { 0x80800001, 0x492001b1, 0x00b10920, 0x00000000 },
+   { 0x00800001, 0x20200232, 0x00b20740, 0x00000000 },
+   { 0x00800001, 0x20300232, 0x00b20760, 0x00000000 },
+   { 0x00800001, 0x20400232, 0x00b20780, 0x00000000 },
+   { 0x00800001, 0x20500232, 0x00b207a0, 0x00000000 },
+   { 0x00800001, 0x20600232, 0x00b207c0, 0x00000000 },
+   { 0x00800001, 0x20700232, 0x00b207e0, 0x00000000 },
+   { 0x00800001, 0x20800232, 0x00b20800, 0x00000000 },
+   { 0x00800001, 0x20900232, 0x00b20820, 0x00000000 },
+   { 0x00800001, 0x20a00232, 0x00b20840, 0x00000000 },
+   { 0x00800001, 0x20b00232, 0x00b20860, 0x00000000 },
+   { 0x00800001, 0x20c00232, 0x00b20880, 0x00000000 },
+   { 0x00800001, 0x20d00232, 0x00b208a0, 0x00000000 },
+   { 0x00800001, 0x20e00232, 0x00b208c0, 0x00000000 },
+   { 0x00800001, 0x20f00232, 0x00b208e0, 0x00000000 },
+   { 0x00800001, 0x21000232, 0x00b20900, 0x00000000 },
+   { 0x00800001, 0x21100232, 0x00b20920, 0x00000000 },
+   { 0x00800031, 0x24001d28, 0x008d03e0, 0x05902000 },
+   { 0x00000001, 0x23e80061, 0x00000000, 0x00070007 },
+   { 0x00200008, 0x23e01c21, 0x004503e0, 0x00000001 },
+   { 0x00800040, 0x294025ad, 0x00b10c60, 0x00b10940 },
+   { 0x00800040, 0x296025ad, 0x00b10c80, 0x00b10960 },
+   { 0x00800040, 0x298025ad, 0x00b10ca0, 0x00b10980 },
+   { 0x00800040, 0x29a025ad, 0x00b10cc0, 0x00b109a0 },
+   { 0x80800001, 0x494001b1, 0x00b10940, 0x00000000 },
+   { 0x80800001, 0x496001b1, 0x00b10960, 0x00000000 },
+   { 0x80800001, 0x498001b1, 0x00b10980, 0x00000000 },
+   { 0x80800001, 0x49a001b1, 0x00b109a0, 0x00000000 },
+   { 0x00800001, 0x20200232, 0x00b20940, 0x00000000 },
+   { 0x00800001, 0x20300232, 0x00b20960, 0x00000000 },
+   { 0x00800001, 0x20400232, 0x00b20980, 0x00000000 },
+   { 0x00800001, 0x20500232, 0x00b209a0, 0x00000000 },
+   { 0x00800031, 0x24001d28, 0x008d03e0, 0x05302001 },
+   { 0x00800040, 0x29c025a9, 0x00b10ce0, 0x00b109c0 },
+   { 0x00800040, 0x29e025a9, 0x00b10d00, 0x00b109e0 },
+   { 0x00800040, 0x2a0025a9, 0x00b10d20, 0x00b10a00 },
+   { 0x00800040, 0x2a2025a9, 0x00b10d40, 0x00b10a20 },
+   { 0x80800001, 0x49c001b1, 0x00b109c0, 0x00000000 },
+   { 0x80800001, 0x49e001b1, 0x00b109e0, 0x00000000 },
+   { 0x80800001, 0x4a0001b1, 0x00b10a00, 0x00000000 },
+   { 0x80800001, 0x4a2001b1, 0x00b10a20, 0x00000000 },
+   { 0x00800001, 0x20200232, 0x00b209c0, 0x00000000 },
+   { 0x00800001, 0x20300232, 0x00b209e0, 0x00000000 },
+   { 0x00800001, 0x20400232, 0x00b20a00, 0x00000000 },
+   { 0x00800001, 0x20500232, 0x00b20a20, 0x00000000 },
+   { 0x00800031, 0x24001d28, 0x008d03e0, 0x05302002 },
+   { 0x00800031, 0x24001d28, 0x008d0000, 0x87100000 },
+   { 0x00800031, 0x24001d28, 0x008d0000, 0x87100000 },
diff --git a/src/xvmc/shader/vld/frame_backward.g4a b/src/xvmc/shader/vld/frame_backward.g4a
new file mode 100644
index 0000000..28fe910
--- /dev/null
+++ b/src/xvmc/shader/vld/frame_backward.g4a
@@ -0,0 +1,61 @@
+/*
+ * Copyright © 2009 Intel Corporation
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice (including the next
+ * paragraph) shall be included in all copies or substantial portions of the
+ * Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
+ * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+ * SOFTWARE.
+ *
+ * Author:
+ *    Zou Nan hai <nanhai.zou at intel.com>
+ *    Yan Li <li.l.yan at intel.com>
+ *    Liu Xi bin<xibin.liu at intel.com>
+ */
+/* GRF allocation:
+   g1~g30: constant buffer
+           g1~g2:intra IQ matrix
+           g3~g4:non intra IQ matrix
+           g5~g20:IDCT table
+   g31:    thread payload 
+   g32:    message descriptor for reading reference data
+   g58~g81:reference data
+   g82:    thread payload backup
+   g83~g106:IDCT data                           */
+mov (8) g82.0<1>UD g31.0<8,8,1>UD {align1};
+mov(2) g31.0<1>UD g82.12<2,2,1>UW {align1};
+mov (1) g126.8<1>UD ip {align1};
+mov (1) ip g21.0<1,1,1>UD {align1};
+ 
+//Y, (x', y') = (x, y) + (motion_vector.x >> 1, motion_vector.y >> 1) 
+asr (2) g31.14<1>W g82.20<2,2,1>W 1W {align1};
+add (2) g32.0<1>UD g31.0<2,2,1>UD g31.14<2,2,1>W {align1};
+define(`input_surface',	`7')
+define(`mv1',	`g82.20')
+define(`mv2',	`g82.22') 
+include(`motion_frame_y.g4i')
+
+//UV, (x', y') = (x >> 1, y >> 1) + (motion_vector.x >> 2, motion_vector.y >> 2)
+shr (2) g31.0<1>UD g31.0<2,2,1>UD 1UD {align1};
+asr (2) g31.14<1>W g82.20<2,2,1>W 2W {align1};
+add (2) g32.0<1>UD g31.0<2,2,1>UD g31.14<2,2,1>W {align1};
+define(`input_surface1', `8')
+define(`input_surface2', `9')
+include(`motion_frame_uv.g4i')
+
+include(`addidct.g4i')
+send (16) 0 acc0<1>UW g0<8,8,1>UW 
+	thread_spawner(0, 0, 0) mlen 1 rlen 0 { align1 EOT};
diff --git a/src/xvmc/shader/vld/frame_backward.g4b b/src/xvmc/shader/vld/frame_backward.g4b
new file mode 100644
index 0000000..66d911f
--- /dev/null
+++ b/src/xvmc/shader/vld/frame_backward.g4b
@@ -0,0 +1,263 @@
+   { 0x00600001, 0x2a400021, 0x008d03e0, 0x00000000 },
+   { 0x00200001, 0x23e00121, 0x00450a4c, 0x00000000 },
+   { 0x00000001, 0x2fc80001, 0x00001400, 0x00000000 },
+   { 0x00000001, 0x34000020, 0x002102a0, 0x00000000 },
+   { 0x0020000c, 0x23ee3dad, 0x00450a54, 0x00010001 },
+   { 0x00200040, 0x24003421, 0x004503e0, 0x004503ee },
+   { 0x01000005, 0x20000d3c, 0x00210a54, 0x00000001 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x0000005f },
+   { 0x01000005, 0x20000d3c, 0x00210a56, 0x00000001 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x00000048 },
+   { 0x00000001, 0x24080061, 0x00000000, 0x0007001f },
+   { 0x00800031, 0x24c01d29, 0x008d0400, 0x0418a007 },
+   { 0x00000040, 0x24040c21, 0x00210404, 0x00000008 },
+   { 0x00800031, 0x25c01d29, 0x008d0400, 0x0418a007 },
+   { 0x00000040, 0x24040c21, 0x00210404, 0x00000008 },
+   { 0x00000001, 0x24080061, 0x00000000, 0x0000001f },
+   { 0x00800031, 0x26c01d29, 0x008d0400, 0x0411a007 },
+   { 0x00800040, 0x27404629, 0x00b104c0, 0x00b104c1 },
+   { 0x00800040, 0x27604629, 0x00b104e0, 0x00b104e1 },
+   { 0x00800040, 0x27804629, 0x00b10500, 0x00b10501 },
+   { 0x00800040, 0x27a04629, 0x00b10520, 0x00b10521 },
+   { 0x00800040, 0x27c04629, 0x00b10540, 0x00b10541 },
+   { 0x00800040, 0x27e04629, 0x00b10560, 0x00b10561 },
+   { 0x00800040, 0x28004629, 0x00b10580, 0x00b10581 },
+   { 0x00800040, 0x28204629, 0x00b105a0, 0x00b105a1 },
+   { 0x00800040, 0x28404629, 0x00b105c0, 0x00b105c1 },
+   { 0x00800040, 0x28604629, 0x00b105e0, 0x00b105e1 },
+   { 0x00800040, 0x28804629, 0x00b10600, 0x00b10601 },
+   { 0x00800040, 0x28a04629, 0x00b10620, 0x00b10621 },
+   { 0x00800040, 0x28c04629, 0x00b10640, 0x00b10641 },
+   { 0x00800040, 0x28e04629, 0x00b10660, 0x00b10661 },
+   { 0x00800040, 0x29004629, 0x00b10680, 0x00b10681 },
+   { 0x00800040, 0x29204629, 0x00b106a0, 0x00b106a1 },
+   { 0x00800040, 0x27404529, 0x00b10740, 0x00b104e0 },
+   { 0x00800040, 0x27604529, 0x00b10760, 0x00b10500 },
+   { 0x00800040, 0x27804529, 0x00b10780, 0x00b10520 },
+   { 0x00800040, 0x27a04529, 0x00b107a0, 0x00b10540 },
+   { 0x00800040, 0x27c04529, 0x00b107c0, 0x00b10560 },
+   { 0x00800040, 0x27e04529, 0x00b107e0, 0x00b10580 },
+   { 0x00800040, 0x28004529, 0x00b10800, 0x00b105a0 },
+   { 0x00800040, 0x28204529, 0x00b10820, 0x00b105c0 },
+   { 0x00800040, 0x28404529, 0x00b10840, 0x00b105e0 },
+   { 0x00800040, 0x28604529, 0x00b10860, 0x00b10600 },
+   { 0x00800040, 0x28804529, 0x00b10880, 0x00b10620 },
+   { 0x00800040, 0x28a04529, 0x00b108a0, 0x00b10640 },
+   { 0x00800040, 0x28c04529, 0x00b108c0, 0x00b10660 },
+   { 0x00800040, 0x28e04529, 0x00b108e0, 0x00b10680 },
+   { 0x00800040, 0x29004529, 0x00b10900, 0x00b106a0 },
+   { 0x00800040, 0x29204529, 0x00b10920, 0x00b106c0 },
+   { 0x00800040, 0x27404529, 0x00b10740, 0x00b104e1 },
+   { 0x00800040, 0x27604529, 0x00b10760, 0x00b10501 },
+   { 0x00800040, 0x27804529, 0x00b10780, 0x00b10521 },
+   { 0x00800040, 0x27a04529, 0x00b107a0, 0x00b10541 },
+   { 0x00800040, 0x27c04529, 0x00b107c0, 0x00b10561 },
+   { 0x00800040, 0x27e04529, 0x00b107e0, 0x00b10581 },
+   { 0x00800040, 0x28004529, 0x00b10800, 0x00b105a1 },
+   { 0x00800040, 0x28204529, 0x00b10820, 0x00b105c1 },
+   { 0x00800040, 0x28404529, 0x00b10840, 0x00b105e1 },
+   { 0x00800040, 0x28604529, 0x00b10860, 0x00b10601 },
+   { 0x00800040, 0x28804529, 0x00b10880, 0x00b10621 },
+   { 0x00800040, 0x28a04529, 0x00b108a0, 0x00b10641 },
+   { 0x00800040, 0x28c04529, 0x00b108c0, 0x00b10661 },
+   { 0x00800040, 0x28e04529, 0x00b108e0, 0x00b10681 },
+   { 0x00800040, 0x29004529, 0x00b10900, 0x00b106a1 },
+   { 0x00800040, 0x29204529, 0x00b10920, 0x00b106c1 },
+   { 0x80800008, 0x27402d29, 0x00b10740, 0x00020002 },
+   { 0x80800008, 0x27602d29, 0x00b10760, 0x00020002 },
+   { 0x80800008, 0x27802d29, 0x00b10780, 0x00020002 },
+   { 0x80800008, 0x27a02d29, 0x00b107a0, 0x00020002 },
+   { 0x80800008, 0x27c02d29, 0x00b107c0, 0x00020002 },
+   { 0x80800008, 0x27e02d29, 0x00b107e0, 0x00020002 },
+   { 0x80800008, 0x28002d29, 0x00b10800, 0x00020002 },
+   { 0x80800008, 0x28202d29, 0x00b10820, 0x00020002 },
+   { 0x80800008, 0x28402d29, 0x00b10840, 0x00020002 },
+   { 0x80800008, 0x28602d29, 0x00b10860, 0x00020002 },
+   { 0x80800008, 0x28802d29, 0x00b10880, 0x00020002 },
+   { 0x80800008, 0x28a02d29, 0x00b108a0, 0x00020002 },
+   { 0x80800008, 0x28c02d29, 0x00b108c0, 0x00020002 },
+   { 0x80800008, 0x28e02d29, 0x00b108e0, 0x00020002 },
+   { 0x80800008, 0x29002d29, 0x00b10900, 0x00020002 },
+   { 0x80800008, 0x29202d29, 0x00b10920, 0x00020002 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000043 },
+   { 0x00000001, 0x24080061, 0x00000000, 0x0007001f },
+   { 0x00800031, 0x24c01d29, 0x008d0400, 0x0418a007 },
+   { 0x00000040, 0x24040c21, 0x00210404, 0x00000008 },
+   { 0x00800031, 0x25c01d29, 0x008d0400, 0x0418a007 },
+   { 0x80800042, 0x27404629, 0x00b104c0, 0x00b104c1 },
+   { 0x80800042, 0x27604629, 0x00b104e0, 0x00b104e1 },
+   { 0x80800042, 0x27804629, 0x00b10500, 0x00b10501 },
+   { 0x80800042, 0x27a04629, 0x00b10520, 0x00b10521 },
+   { 0x80800042, 0x27c04629, 0x00b10540, 0x00b10541 },
+   { 0x80800042, 0x27e04629, 0x00b10560, 0x00b10561 },
+   { 0x80800042, 0x28004629, 0x00b10580, 0x00b10581 },
+   { 0x80800042, 0x28204629, 0x00b105a0, 0x00b105a1 },
+   { 0x80800042, 0x28404629, 0x00b105c0, 0x00b105c1 },
+   { 0x80800042, 0x28604629, 0x00b105e0, 0x00b105e1 },
+   { 0x80800042, 0x28804629, 0x00b10600, 0x00b10601 },
+   { 0x80800042, 0x28a04629, 0x00b10620, 0x00b10621 },
+   { 0x80800042, 0x28c04629, 0x00b10640, 0x00b10641 },
+   { 0x80800042, 0x28e04629, 0x00b10660, 0x00b10661 },
+   { 0x80800042, 0x29004629, 0x00b10680, 0x00b10681 },
+   { 0x80800042, 0x29204629, 0x00b106a0, 0x00b106a1 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x0000002e },
+   { 0x01000005, 0x20000d3c, 0x00210a56, 0x00000001 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x00000018 },
+   { 0x00000001, 0x24080061, 0x00000000, 0x0007001f },
+   { 0x00800031, 0x24c01d29, 0x008d0400, 0x0418a007 },
+   { 0x00000040, 0x24040c21, 0x00210404, 0x00000008 },
+   { 0x00800031, 0x25c01d29, 0x008d0400, 0x0418a007 },
+   { 0x00000040, 0x24040c21, 0x00210404, 0x00000008 },
+   { 0x00000001, 0x24080061, 0x00000000, 0x0000001f },
+   { 0x00800031, 0x26c01d29, 0x008d0400, 0x0411a007 },
+   { 0x80800042, 0x27404629, 0x00b104c0, 0x00b104e0 },
+   { 0x80800042, 0x27604629, 0x00b104e0, 0x00b10500 },
+   { 0x80800042, 0x27804629, 0x00b10500, 0x00b10520 },
+   { 0x80800042, 0x27a04629, 0x00b10520, 0x00b10540 },
+   { 0x80800042, 0x27c04629, 0x00b10540, 0x00b10560 },
+   { 0x80800042, 0x27e04629, 0x00b10560, 0x00b10580 },
+   { 0x80800042, 0x28004629, 0x00b10580, 0x00b105a0 },
+   { 0x80800042, 0x28204629, 0x00b105a0, 0x00b105c0 },
+   { 0x80800042, 0x28404629, 0x00b105c0, 0x00b105e0 },
+   { 0x80800042, 0x28604629, 0x00b105e0, 0x00b10600 },
+   { 0x80800042, 0x28804629, 0x00b10600, 0x00b10620 },
+   { 0x80800042, 0x28a04629, 0x00b10620, 0x00b10640 },
+   { 0x80800042, 0x28c04629, 0x00b10640, 0x00b10660 },
+   { 0x80800042, 0x28e04629, 0x00b10660, 0x00b10680 },
+   { 0x80800042, 0x29004629, 0x00b10680, 0x00b106a0 },
+   { 0x80800042, 0x29204629, 0x00b106a0, 0x00b106c0 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000014 },
+   { 0x00000001, 0x24080061, 0x00000000, 0x0007001f },
+   { 0x00800031, 0x24c01d29, 0x008d0400, 0x0418a007 },
+   { 0x00000040, 0x24040c21, 0x00210404, 0x00000008 },
+   { 0x00800031, 0x25c01d29, 0x008d0400, 0x0418a007 },
+   { 0x00800001, 0x27400229, 0x00b104c0, 0x00000000 },
+   { 0x00800001, 0x27600229, 0x00b104e0, 0x00000000 },
+   { 0x00800001, 0x27800229, 0x00b10500, 0x00000000 },
+   { 0x00800001, 0x27a00229, 0x00b10520, 0x00000000 },
+   { 0x00800001, 0x27c00229, 0x00b10540, 0x00000000 },
+   { 0x00800001, 0x27e00229, 0x00b10560, 0x00000000 },
+   { 0x00800001, 0x28000229, 0x00b10580, 0x00000000 },
+   { 0x00800001, 0x28200229, 0x00b105a0, 0x00000000 },
+   { 0x00800001, 0x28400229, 0x00b105c0, 0x00000000 },
+   { 0x00800001, 0x28600229, 0x00b105e0, 0x00000000 },
+   { 0x00800001, 0x28800229, 0x00b10600, 0x00000000 },
+   { 0x00800001, 0x28a00229, 0x00b10620, 0x00000000 },
+   { 0x00800001, 0x28c00229, 0x00b10640, 0x00000000 },
+   { 0x00800001, 0x28e00229, 0x00b10660, 0x00000000 },
+   { 0x00800001, 0x29000229, 0x00b10680, 0x00000000 },
+   { 0x00800001, 0x29200229, 0x00b106a0, 0x00000000 },
+   { 0x00200008, 0x23e00c21, 0x004503e0, 0x00000001 },
+   { 0x0020000c, 0x23ee3dad, 0x00450a54, 0x00020002 },
+   { 0x00200040, 0x24003421, 0x004503e0, 0x004503ee },
+   { 0x00000001, 0x24080061, 0x00000000, 0x0007000f },
+   { 0x00800031, 0x24801d29, 0x008d0400, 0x0414a008 },
+   { 0x00800031, 0x25001d29, 0x008d0400, 0x0414a009 },
+   { 0x00800001, 0x29400229, 0x00ad0480, 0x00000000 },
+   { 0x00800001, 0x29600229, 0x00ad04a0, 0x00000000 },
+   { 0x00800001, 0x29800229, 0x00ad04c0, 0x00000000 },
+   { 0x00800001, 0x29a00229, 0x00ad04e0, 0x00000000 },
+   { 0x00800001, 0x29c00229, 0x00ad0500, 0x00000000 },
+   { 0x00800001, 0x29e00229, 0x00ad0520, 0x00000000 },
+   { 0x00800001, 0x2a000229, 0x00ad0540, 0x00000000 },
+   { 0x00800001, 0x2a200229, 0x00ad0560, 0x00000000 },
+   { 0x00200001, 0x23e00121, 0x00450a4c, 0x00000000 },
+   { 0x02000005, 0x20002d3c, 0x00210a42, 0x00200020 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x00000011 },
+   { 0x00800040, 0x274045ad, 0x00b10a60, 0x00b20740 },
+   { 0x00800040, 0x276045ad, 0x00b10a80, 0x00b20760 },
+   { 0x00800040, 0x278045ad, 0x00b10aa0, 0x00b20780 },
+   { 0x00800040, 0x27a045ad, 0x00b10ac0, 0x00b207a0 },
+   { 0x00800040, 0x27c045ad, 0x00b10ae0, 0x00b207c0 },
+   { 0x00800040, 0x27e045ad, 0x00b10b00, 0x00b207e0 },
+   { 0x00800040, 0x280045ad, 0x00b10b20, 0x00b20800 },
+   { 0x00800040, 0x282045ad, 0x00b10b40, 0x00b20820 },
+   { 0x00800040, 0x284045ad, 0x00b10b60, 0x00b20840 },
+   { 0x00800040, 0x286045ad, 0x00b10b80, 0x00b20860 },
+   { 0x00800040, 0x288045ad, 0x00b10ba0, 0x00b20880 },
+   { 0x00800040, 0x28a045ad, 0x00b10bc0, 0x00b208a0 },
+   { 0x00800040, 0x28c045ad, 0x00b10be0, 0x00b208c0 },
+   { 0x00800040, 0x28e045ad, 0x00b10c00, 0x00b208e0 },
+   { 0x00800040, 0x290045ad, 0x00b10c20, 0x00b20900 },
+   { 0x00800040, 0x292045ad, 0x00b10c40, 0x00b20920 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000010 },
+   { 0x00800040, 0x274045ad, 0x00b10a60, 0x00b20740 },
+   { 0x00800040, 0x276045ad, 0x00b10b60, 0x00b20760 },
+   { 0x00800040, 0x278045ad, 0x00b10a80, 0x00b20780 },
+   { 0x00800040, 0x27a045ad, 0x00b10b80, 0x00b207a0 },
+   { 0x00800040, 0x27c045ad, 0x00b10aa0, 0x00b207c0 },
+   { 0x00800040, 0x27e045ad, 0x00b10ba0, 0x00b207e0 },
+   { 0x00800040, 0x280045ad, 0x00b10ac0, 0x00b20800 },
+   { 0x00800040, 0x282045ad, 0x00b10bc0, 0x00b20820 },
+   { 0x00800040, 0x284045ad, 0x00b10ae0, 0x00b20840 },
+   { 0x00800040, 0x286045ad, 0x00b10be0, 0x00b20860 },
+   { 0x00800040, 0x288045ad, 0x00b10b00, 0x00b20880 },
+   { 0x00800040, 0x28a045ad, 0x00b10c00, 0x00b208a0 },
+   { 0x00800040, 0x28c045ad, 0x00b10b20, 0x00b208c0 },
+   { 0x00800040, 0x28e045ad, 0x00b10c20, 0x00b208e0 },
+   { 0x00800040, 0x290045ad, 0x00b10b40, 0x00b20900 },
+   { 0x00800040, 0x292045ad, 0x00b10c40, 0x00b20920 },
+   { 0x00000001, 0x23e80061, 0x00000000, 0x000f000f },
+   { 0x80800001, 0x474001b1, 0x00b10740, 0x00000000 },
+   { 0x80800001, 0x476001b1, 0x00b10760, 0x00000000 },
+   { 0x80800001, 0x478001b1, 0x00b10780, 0x00000000 },
+   { 0x80800001, 0x47a001b1, 0x00b107a0, 0x00000000 },
+   { 0x80800001, 0x47c001b1, 0x00b107c0, 0x00000000 },
+   { 0x80800001, 0x47e001b1, 0x00b107e0, 0x00000000 },
+   { 0x80800001, 0x480001b1, 0x00b10800, 0x00000000 },
+   { 0x80800001, 0x482001b1, 0x00b10820, 0x00000000 },
+   { 0x80800001, 0x484001b1, 0x00b10840, 0x00000000 },
+   { 0x80800001, 0x486001b1, 0x00b10860, 0x00000000 },
+   { 0x80800001, 0x488001b1, 0x00b10880, 0x00000000 },
+   { 0x80800001, 0x48a001b1, 0x00b108a0, 0x00000000 },
+   { 0x80800001, 0x48c001b1, 0x00b108c0, 0x00000000 },
+   { 0x80800001, 0x48e001b1, 0x00b108e0, 0x00000000 },
+   { 0x80800001, 0x490001b1, 0x00b10900, 0x00000000 },
+   { 0x80800001, 0x492001b1, 0x00b10920, 0x00000000 },
+   { 0x00800001, 0x20200232, 0x00b20740, 0x00000000 },
+   { 0x00800001, 0x20300232, 0x00b20760, 0x00000000 },
+   { 0x00800001, 0x20400232, 0x00b20780, 0x00000000 },
+   { 0x00800001, 0x20500232, 0x00b207a0, 0x00000000 },
+   { 0x00800001, 0x20600232, 0x00b207c0, 0x00000000 },
+   { 0x00800001, 0x20700232, 0x00b207e0, 0x00000000 },
+   { 0x00800001, 0x20800232, 0x00b20800, 0x00000000 },
+   { 0x00800001, 0x20900232, 0x00b20820, 0x00000000 },
+   { 0x00800001, 0x20a00232, 0x00b20840, 0x00000000 },
+   { 0x00800001, 0x20b00232, 0x00b20860, 0x00000000 },
+   { 0x00800001, 0x20c00232, 0x00b20880, 0x00000000 },
+   { 0x00800001, 0x20d00232, 0x00b208a0, 0x00000000 },
+   { 0x00800001, 0x20e00232, 0x00b208c0, 0x00000000 },
+   { 0x00800001, 0x20f00232, 0x00b208e0, 0x00000000 },
+   { 0x00800001, 0x21000232, 0x00b20900, 0x00000000 },
+   { 0x00800001, 0x21100232, 0x00b20920, 0x00000000 },
+   { 0x00800031, 0x24001d28, 0x008d03e0, 0x05902000 },
+   { 0x00000001, 0x23e80061, 0x00000000, 0x00070007 },
+   { 0x00200008, 0x23e01c21, 0x004503e0, 0x00000001 },
+   { 0x00800040, 0x294025ad, 0x00b10c60, 0x00b10940 },
+   { 0x00800040, 0x296025ad, 0x00b10c80, 0x00b10960 },
+   { 0x00800040, 0x298025ad, 0x00b10ca0, 0x00b10980 },
+   { 0x00800040, 0x29a025ad, 0x00b10cc0, 0x00b109a0 },
+   { 0x80800001, 0x494001b1, 0x00b10940, 0x00000000 },
+   { 0x80800001, 0x496001b1, 0x00b10960, 0x00000000 },
+   { 0x80800001, 0x498001b1, 0x00b10980, 0x00000000 },
+   { 0x80800001, 0x49a001b1, 0x00b109a0, 0x00000000 },
+   { 0x00800001, 0x20200232, 0x00b20940, 0x00000000 },
+   { 0x00800001, 0x20300232, 0x00b20960, 0x00000000 },
+   { 0x00800001, 0x20400232, 0x00b20980, 0x00000000 },
+   { 0x00800001, 0x20500232, 0x00b209a0, 0x00000000 },
+   { 0x00800031, 0x24001d28, 0x008d03e0, 0x05302001 },
+   { 0x00800040, 0x29c025a9, 0x00b10ce0, 0x00b109c0 },
+   { 0x00800040, 0x29e025a9, 0x00b10d00, 0x00b109e0 },
+   { 0x00800040, 0x2a0025a9, 0x00b10d20, 0x00b10a00 },
+   { 0x00800040, 0x2a2025a9, 0x00b10d40, 0x00b10a20 },
+   { 0x80800001, 0x49c001b1, 0x00b109c0, 0x00000000 },
+   { 0x80800001, 0x49e001b1, 0x00b109e0, 0x00000000 },
+   { 0x80800001, 0x4a0001b1, 0x00b10a00, 0x00000000 },
+   { 0x80800001, 0x4a2001b1, 0x00b10a20, 0x00000000 },
+   { 0x00800001, 0x20200232, 0x00b209c0, 0x00000000 },
+   { 0x00800001, 0x20300232, 0x00b209e0, 0x00000000 },
+   { 0x00800001, 0x20400232, 0x00b20a00, 0x00000000 },
+   { 0x00800001, 0x20500232, 0x00b20a20, 0x00000000 },
+   { 0x00800031, 0x24001d28, 0x008d03e0, 0x05302002 },
+   { 0x00800031, 0x24001d28, 0x008d0000, 0x87100000 },
+   { 0x00800031, 0x24001d28, 0x008d0000, 0x87100000 },
diff --git a/src/xvmc/shader/vld/frame_f_b.g4a b/src/xvmc/shader/vld/frame_f_b.g4a
new file mode 100644
index 0000000..cf7ef57
--- /dev/null
+++ b/src/xvmc/shader/vld/frame_f_b.g4a
@@ -0,0 +1,120 @@
+/*
+ * Copyright © 2009 Intel Corporation
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice (including the next
+ * paragraph) shall be included in all copies or substantial portions of the
+ * Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
+ * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+ * SOFTWARE.
+ *
+ * Author:
+ *    Zou Nan hai <nanhai.zou at intel.com>
+ *    Yan Li <li.l.yan at intel.com>
+ *    Liu Xi bin<xibin.liu at intel.com>
+ */
+/* GRF allocation:
+   g1~g30: constant buffer
+           g1~g2:intra IQ matrix
+           g3~g4:non intra IQ matrix
+           g5~g20:IDCT table
+   g31:    thread payload 
+   g32:    message descriptor for reading reference data
+   g58~g81:reference data
+   g82:    thread payload backup
+   g83~g106:IDCT data                           */
+mov (8) g82.0<1>UD g31.0<8,8,1>UD {align1};
+mov (2) g31.0<1>UD g82.12<2,2,1>UW {align1};
+mov (1) g126.8<1>UD ip {align1};
+mov (1) ip g21.0<1,1,1>UD {align1};
+
+//Y, Forward
+mov (1) g31.8<1>UD 0x0070007UD {align1};  
+define(`input_surface',	`4')
+define(`mv1',	`g82.16')
+define(`mv2',	`g82.18')
+asr (2) g31.14<1>W g82.16<2,2,1>W 1W {align1};
+add (2) g32.0<1>UD g31.0<2,2,1>UD g31.14<2,2,1>W {align1};
+include(`motion_frame_y.g4i')
+//Save Forward
+mov (16) g108.0<1>UD g58.0<16,16,1>UD {align1 compr};
+mov (16) g110.0<1>UD g60.0<16,16,1>UD {align1 compr};
+mov (16) g112.0<1>UD g62.0<16,16,1>UD {align1 compr};
+mov (16) g114.0<1>UD g64.0<16,16,1>UD {align1 compr};
+mov (16) g116.0<1>UD g66.0<16,16,1>UD {align1 compr};
+mov (16) g118.0<1>UD g68.0<16,16,1>UD {align1 compr};
+mov (16) g120.0<1>UD g70.0<16,16,1>UD {align1 compr};
+mov (16) g122.0<1>UD g72.0<16,16,1>UD {align1 compr};
+//Y, Backward
+define(`input_surface',	`7')
+define(`mv1',	`g82.20')
+define(`mv2',	`g82.22')  
+asr (2) g31.14<1>W g82.20<2,2,1>W 1W {align1};
+add (2) g32.0<1>UD g31.0<2,2,1>UD g31.14<2,2,1>W {align1};
+include(`motion_frame_y.g4i')
+//Average Forward and Backward
+avg.sat (16) g58.0<1>UW g58.0<16,16,1>UW g108.0<16,16,1>UW {align1};
+avg.sat (16) g59.0<1>UW g59.0<16,16,1>UW g109.0<16,16,1>UW {align1};
+avg.sat (16) g60.0<1>UW g60.0<16,16,1>UW g110.0<16,16,1>UW {align1};
+avg.sat (16) g61.0<1>UW g61.0<16,16,1>UW g111.0<16,16,1>UW {align1};
+avg.sat (16) g62.0<1>UW g62.0<16,16,1>UW g112.0<16,16,1>UW {align1};
+avg.sat (16) g63.0<1>UW g63.0<16,16,1>UW g113.0<16,16,1>UW {align1};
+avg.sat (16) g64.0<1>UW g64.0<16,16,1>UW g114.0<16,16,1>UW {align1};
+avg.sat (16) g65.0<1>UW g65.0<16,16,1>UW g115.0<16,16,1>UW {align1};
+avg.sat (16) g66.0<1>UW g66.0<16,16,1>UW g116.0<16,16,1>UW {align1};
+avg.sat (16) g67.0<1>UW g67.0<16,16,1>UW g117.0<16,16,1>UW {align1};
+avg.sat (16) g68.0<1>UW g68.0<16,16,1>UW g118.0<16,16,1>UW {align1};
+avg.sat (16) g69.0<1>UW g69.0<16,16,1>UW g119.0<16,16,1>UW {align1};
+avg.sat (16) g70.0<1>UW g70.0<16,16,1>UW g120.0<16,16,1>UW {align1};
+avg.sat (16) g71.0<1>UW g71.0<16,16,1>UW g121.0<16,16,1>UW {align1};
+avg.sat (16) g72.0<1>UW g72.0<16,16,1>UW g122.0<16,16,1>UW {align1};
+avg.sat (16) g73.0<1>UW g73.0<16,16,1>UW g123.0<16,16,1>UW {align1};
+
+//UV, Forward
+shr (2) g31.0<1>UD g31.0<2,2,1>UD 1UD {align1};
+asr (2) g31.14<1>W g82.16<2,2,1>W 2W {align1};
+add (2) g32.0<1>UD g31.0<2,2,1>UD g31.14<2,2,1>W {align1};
+define(`input_surface1', `5')
+define(`input_surface2', `6')
+mov (1) g32.8<1>UD 0x007000fUD  {align1};
+include(`motion_frame_uv.g4i')
+//Save UV Forward
+mov (16) g108.0<1>UB  g74.0<16,16,2>UB {align1};
+mov (16) g108.16<1>UB g75.0<16,16,2>UB {align1};
+mov (16) g109.0<1>UB  g76.0<16,16,2>UB {align1};
+mov (16) g109.16<1>UB g77.0<16,16,2>UB {align1};
+mov (16) g110.0<1>UB  g78.0<16,16,2>UB {align1};
+mov (16) g110.16<1>UB g79.0<16,16,2>UB {align1};
+mov (16) g111.0<1>UB  g80.0<16,16,2>UB {align1};
+mov (16) g111.16<1>UB g81.0<16,16,2>UB {align1};
+//UV, Backward
+asr (2) g31.14<1>W g82.20<2,2,1>W 2W {align1};
+add (2) g32.0<1>UD g31.0<2,2,1>UD g31.14<2,2,1>W {align1};
+define(`input_surface1', `8')
+define(`input_surface2', `9')
+include(`motion_frame_uv.g4i')
+//Average Forward and Backward
+avg.sat (16) g74.0<1>UW g74.0<16,16,1>UW g108.0<16,16,1>UB {align1};
+avg.sat (16) g75.0<1>UW g75.0<16,16,1>UW g108.16<16,16,1>UB {align1};
+avg.sat (16) g76.0<1>UW g76.0<16,16,1>UW g109.0<16,16,1>UB {align1};
+avg.sat (16) g77.0<1>UW g77.0<16,16,1>UW g109.16<16,16,1>UB {align1};
+avg.sat (16) g78.0<1>UW g78.0<16,16,1>UW g110.0<16,16,1>UB {align1};
+avg.sat (16) g79.0<1>UW g79.0<16,16,1>UW g110.16<16,16,1>UB {align1};
+avg.sat (16) g80.0<1>UW g80.0<16,16,1>UW g111.0<16,16,1>UB {align1};
+avg.sat (16) g81.0<1>UW g81.0<16,16,1>UW g111.16<16,16,1>UB {align1};
+
+include(`addidct.g4i')
+send (16) 0 acc0<1>UW g0<8,8,1>UW 
+	thread_spawner(0, 0, 0) mlen 1 rlen 0 { align1 EOT};
diff --git a/src/xvmc/shader/vld/frame_f_b.g4b b/src/xvmc/shader/vld/frame_f_b.g4b
new file mode 100644
index 0000000..c006968
--- /dev/null
+++ b/src/xvmc/shader/vld/frame_f_b.g4b
@@ -0,0 +1,463 @@
+   { 0x00600001, 0x2a400021, 0x008d03e0, 0x00000000 },
+   { 0x00200001, 0x23e00121, 0x00450a4c, 0x00000000 },
+   { 0x00000001, 0x2fc80001, 0x00001400, 0x00000000 },
+   { 0x00000001, 0x34000020, 0x002102a0, 0x00000000 },
+   { 0x00000001, 0x23e80061, 0x00000000, 0x00070007 },
+   { 0x0020000c, 0x23ee3dad, 0x00450a50, 0x00010001 },
+   { 0x00200040, 0x24003421, 0x004503e0, 0x004503ee },
+   { 0x01000005, 0x20000d3c, 0x00210a50, 0x00000001 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x0000005f },
+   { 0x01000005, 0x20000d3c, 0x00210a52, 0x00000001 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x00000048 },
+   { 0x00000001, 0x24080061, 0x00000000, 0x0007001f },
+   { 0x00800031, 0x24c01d29, 0x008d0400, 0x0418a004 },
+   { 0x00000040, 0x24040c21, 0x00210404, 0x00000008 },
+   { 0x00800031, 0x25c01d29, 0x008d0400, 0x0418a004 },
+   { 0x00000040, 0x24040c21, 0x00210404, 0x00000008 },
+   { 0x00000001, 0x24080061, 0x00000000, 0x0000001f },
+   { 0x00800031, 0x26c01d29, 0x008d0400, 0x0411a004 },
+   { 0x00800040, 0x27404629, 0x00b104c0, 0x00b104c1 },
+   { 0x00800040, 0x27604629, 0x00b104e0, 0x00b104e1 },
+   { 0x00800040, 0x27804629, 0x00b10500, 0x00b10501 },
+   { 0x00800040, 0x27a04629, 0x00b10520, 0x00b10521 },
+   { 0x00800040, 0x27c04629, 0x00b10540, 0x00b10541 },
+   { 0x00800040, 0x27e04629, 0x00b10560, 0x00b10561 },
+   { 0x00800040, 0x28004629, 0x00b10580, 0x00b10581 },
+   { 0x00800040, 0x28204629, 0x00b105a0, 0x00b105a1 },
+   { 0x00800040, 0x28404629, 0x00b105c0, 0x00b105c1 },
+   { 0x00800040, 0x28604629, 0x00b105e0, 0x00b105e1 },
+   { 0x00800040, 0x28804629, 0x00b10600, 0x00b10601 },
+   { 0x00800040, 0x28a04629, 0x00b10620, 0x00b10621 },
+   { 0x00800040, 0x28c04629, 0x00b10640, 0x00b10641 },
+   { 0x00800040, 0x28e04629, 0x00b10660, 0x00b10661 },
+   { 0x00800040, 0x29004629, 0x00b10680, 0x00b10681 },
+   { 0x00800040, 0x29204629, 0x00b106a0, 0x00b106a1 },
+   { 0x00800040, 0x27404529, 0x00b10740, 0x00b104e0 },
+   { 0x00800040, 0x27604529, 0x00b10760, 0x00b10500 },
+   { 0x00800040, 0x27804529, 0x00b10780, 0x00b10520 },
+   { 0x00800040, 0x27a04529, 0x00b107a0, 0x00b10540 },
+   { 0x00800040, 0x27c04529, 0x00b107c0, 0x00b10560 },
+   { 0x00800040, 0x27e04529, 0x00b107e0, 0x00b10580 },
+   { 0x00800040, 0x28004529, 0x00b10800, 0x00b105a0 },
+   { 0x00800040, 0x28204529, 0x00b10820, 0x00b105c0 },
+   { 0x00800040, 0x28404529, 0x00b10840, 0x00b105e0 },
+   { 0x00800040, 0x28604529, 0x00b10860, 0x00b10600 },
+   { 0x00800040, 0x28804529, 0x00b10880, 0x00b10620 },
+   { 0x00800040, 0x28a04529, 0x00b108a0, 0x00b10640 },
+   { 0x00800040, 0x28c04529, 0x00b108c0, 0x00b10660 },
+   { 0x00800040, 0x28e04529, 0x00b108e0, 0x00b10680 },
+   { 0x00800040, 0x29004529, 0x00b10900, 0x00b106a0 },
+   { 0x00800040, 0x29204529, 0x00b10920, 0x00b106c0 },
+   { 0x00800040, 0x27404529, 0x00b10740, 0x00b104e1 },
+   { 0x00800040, 0x27604529, 0x00b10760, 0x00b10501 },
+   { 0x00800040, 0x27804529, 0x00b10780, 0x00b10521 },
+   { 0x00800040, 0x27a04529, 0x00b107a0, 0x00b10541 },
+   { 0x00800040, 0x27c04529, 0x00b107c0, 0x00b10561 },
+   { 0x00800040, 0x27e04529, 0x00b107e0, 0x00b10581 },
+   { 0x00800040, 0x28004529, 0x00b10800, 0x00b105a1 },
+   { 0x00800040, 0x28204529, 0x00b10820, 0x00b105c1 },
+   { 0x00800040, 0x28404529, 0x00b10840, 0x00b105e1 },
+   { 0x00800040, 0x28604529, 0x00b10860, 0x00b10601 },
+   { 0x00800040, 0x28804529, 0x00b10880, 0x00b10621 },
+   { 0x00800040, 0x28a04529, 0x00b108a0, 0x00b10641 },
+   { 0x00800040, 0x28c04529, 0x00b108c0, 0x00b10661 },
+   { 0x00800040, 0x28e04529, 0x00b108e0, 0x00b10681 },
+   { 0x00800040, 0x29004529, 0x00b10900, 0x00b106a1 },
+   { 0x00800040, 0x29204529, 0x00b10920, 0x00b106c1 },
+   { 0x80800008, 0x27402d29, 0x00b10740, 0x00020002 },
+   { 0x80800008, 0x27602d29, 0x00b10760, 0x00020002 },
+   { 0x80800008, 0x27802d29, 0x00b10780, 0x00020002 },
+   { 0x80800008, 0x27a02d29, 0x00b107a0, 0x00020002 },
+   { 0x80800008, 0x27c02d29, 0x00b107c0, 0x00020002 },
+   { 0x80800008, 0x27e02d29, 0x00b107e0, 0x00020002 },
+   { 0x80800008, 0x28002d29, 0x00b10800, 0x00020002 },
+   { 0x80800008, 0x28202d29, 0x00b10820, 0x00020002 },
+   { 0x80800008, 0x28402d29, 0x00b10840, 0x00020002 },
+   { 0x80800008, 0x28602d29, 0x00b10860, 0x00020002 },
+   { 0x80800008, 0x28802d29, 0x00b10880, 0x00020002 },
+   { 0x80800008, 0x28a02d29, 0x00b108a0, 0x00020002 },
+   { 0x80800008, 0x28c02d29, 0x00b108c0, 0x00020002 },
+   { 0x80800008, 0x28e02d29, 0x00b108e0, 0x00020002 },
+   { 0x80800008, 0x29002d29, 0x00b10900, 0x00020002 },
+   { 0x80800008, 0x29202d29, 0x00b10920, 0x00020002 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000043 },
+   { 0x00000001, 0x24080061, 0x00000000, 0x0007001f },
+   { 0x00800031, 0x24c01d29, 0x008d0400, 0x0418a004 },
+   { 0x00000040, 0x24040c21, 0x00210404, 0x00000008 },
+   { 0x00800031, 0x25c01d29, 0x008d0400, 0x0418a004 },
+   { 0x80800042, 0x27404629, 0x00b104c0, 0x00b104c1 },
+   { 0x80800042, 0x27604629, 0x00b104e0, 0x00b104e1 },
+   { 0x80800042, 0x27804629, 0x00b10500, 0x00b10501 },
+   { 0x80800042, 0x27a04629, 0x00b10520, 0x00b10521 },
+   { 0x80800042, 0x27c04629, 0x00b10540, 0x00b10541 },
+   { 0x80800042, 0x27e04629, 0x00b10560, 0x00b10561 },
+   { 0x80800042, 0x28004629, 0x00b10580, 0x00b10581 },
+   { 0x80800042, 0x28204629, 0x00b105a0, 0x00b105a1 },
+   { 0x80800042, 0x28404629, 0x00b105c0, 0x00b105c1 },
+   { 0x80800042, 0x28604629, 0x00b105e0, 0x00b105e1 },
+   { 0x80800042, 0x28804629, 0x00b10600, 0x00b10601 },
+   { 0x80800042, 0x28a04629, 0x00b10620, 0x00b10621 },
+   { 0x80800042, 0x28c04629, 0x00b10640, 0x00b10641 },
+   { 0x80800042, 0x28e04629, 0x00b10660, 0x00b10661 },
+   { 0x80800042, 0x29004629, 0x00b10680, 0x00b10681 },
+   { 0x80800042, 0x29204629, 0x00b106a0, 0x00b106a1 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x0000002e },
+   { 0x01000005, 0x20000d3c, 0x00210a52, 0x00000001 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x00000018 },
+   { 0x00000001, 0x24080061, 0x00000000, 0x0007001f },
+   { 0x00800031, 0x24c01d29, 0x008d0400, 0x0418a004 },
+   { 0x00000040, 0x24040c21, 0x00210404, 0x00000008 },
+   { 0x00800031, 0x25c01d29, 0x008d0400, 0x0418a004 },
+   { 0x00000040, 0x24040c21, 0x00210404, 0x00000008 },
+   { 0x00000001, 0x24080061, 0x00000000, 0x0000001f },
+   { 0x00800031, 0x26c01d29, 0x008d0400, 0x0411a004 },
+   { 0x80800042, 0x27404629, 0x00b104c0, 0x00b104e0 },
+   { 0x80800042, 0x27604629, 0x00b104e0, 0x00b10500 },
+   { 0x80800042, 0x27804629, 0x00b10500, 0x00b10520 },
+   { 0x80800042, 0x27a04629, 0x00b10520, 0x00b10540 },
+   { 0x80800042, 0x27c04629, 0x00b10540, 0x00b10560 },
+   { 0x80800042, 0x27e04629, 0x00b10560, 0x00b10580 },
+   { 0x80800042, 0x28004629, 0x00b10580, 0x00b105a0 },
+   { 0x80800042, 0x28204629, 0x00b105a0, 0x00b105c0 },
+   { 0x80800042, 0x28404629, 0x00b105c0, 0x00b105e0 },
+   { 0x80800042, 0x28604629, 0x00b105e0, 0x00b10600 },
+   { 0x80800042, 0x28804629, 0x00b10600, 0x00b10620 },
+   { 0x80800042, 0x28a04629, 0x00b10620, 0x00b10640 },
+   { 0x80800042, 0x28c04629, 0x00b10640, 0x00b10660 },
+   { 0x80800042, 0x28e04629, 0x00b10660, 0x00b10680 },
+   { 0x80800042, 0x29004629, 0x00b10680, 0x00b106a0 },
+   { 0x80800042, 0x29204629, 0x00b106a0, 0x00b106c0 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000014 },
+   { 0x00000001, 0x24080061, 0x00000000, 0x0007001f },
+   { 0x00800031, 0x24c01d29, 0x008d0400, 0x0418a004 },
+   { 0x00000040, 0x24040c21, 0x00210404, 0x00000008 },
+   { 0x00800031, 0x25c01d29, 0x008d0400, 0x0418a004 },
+   { 0x00800001, 0x27400229, 0x00b104c0, 0x00000000 },
+   { 0x00800001, 0x27600229, 0x00b104e0, 0x00000000 },
+   { 0x00800001, 0x27800229, 0x00b10500, 0x00000000 },
+   { 0x00800001, 0x27a00229, 0x00b10520, 0x00000000 },
+   { 0x00800001, 0x27c00229, 0x00b10540, 0x00000000 },
+   { 0x00800001, 0x27e00229, 0x00b10560, 0x00000000 },
+   { 0x00800001, 0x28000229, 0x00b10580, 0x00000000 },
+   { 0x00800001, 0x28200229, 0x00b105a0, 0x00000000 },
+   { 0x00800001, 0x28400229, 0x00b105c0, 0x00000000 },
+   { 0x00800001, 0x28600229, 0x00b105e0, 0x00000000 },
+   { 0x00800001, 0x28800229, 0x00b10600, 0x00000000 },
+   { 0x00800001, 0x28a00229, 0x00b10620, 0x00000000 },
+   { 0x00800001, 0x28c00229, 0x00b10640, 0x00000000 },
+   { 0x00800001, 0x28e00229, 0x00b10660, 0x00000000 },
+   { 0x00800001, 0x29000229, 0x00b10680, 0x00000000 },
+   { 0x00800001, 0x29200229, 0x00b106a0, 0x00000000 },
+   { 0x00802001, 0x2d800021, 0x00b10740, 0x00000000 },
+   { 0x00802001, 0x2dc00021, 0x00b10780, 0x00000000 },
+   { 0x00802001, 0x2e000021, 0x00b107c0, 0x00000000 },
+   { 0x00802001, 0x2e400021, 0x00b10800, 0x00000000 },
+   { 0x00802001, 0x2e800021, 0x00b10840, 0x00000000 },
+   { 0x00802001, 0x2ec00021, 0x00b10880, 0x00000000 },
+   { 0x00802001, 0x2f000021, 0x00b108c0, 0x00000000 },
+   { 0x00802001, 0x2f400021, 0x00b10900, 0x00000000 },
+   { 0x0020000c, 0x23ee3dad, 0x00450a54, 0x00010001 },
+   { 0x00200040, 0x24003421, 0x004503e0, 0x004503ee },
+   { 0x01000005, 0x20000d3c, 0x00210a54, 0x00000001 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x0000005f },
+   { 0x01000005, 0x20000d3c, 0x00210a56, 0x00000001 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x00000048 },
+   { 0x00000001, 0x24080061, 0x00000000, 0x0007001f },
+   { 0x00800031, 0x24c01d29, 0x008d0400, 0x0418a007 },
+   { 0x00000040, 0x24040c21, 0x00210404, 0x00000008 },
+   { 0x00800031, 0x25c01d29, 0x008d0400, 0x0418a007 },
+   { 0x00000040, 0x24040c21, 0x00210404, 0x00000008 },
+   { 0x00000001, 0x24080061, 0x00000000, 0x0000001f },
+   { 0x00800031, 0x26c01d29, 0x008d0400, 0x0411a007 },
+   { 0x00800040, 0x27404629, 0x00b104c0, 0x00b104c1 },
+   { 0x00800040, 0x27604629, 0x00b104e0, 0x00b104e1 },
+   { 0x00800040, 0x27804629, 0x00b10500, 0x00b10501 },
+   { 0x00800040, 0x27a04629, 0x00b10520, 0x00b10521 },
+   { 0x00800040, 0x27c04629, 0x00b10540, 0x00b10541 },
+   { 0x00800040, 0x27e04629, 0x00b10560, 0x00b10561 },
+   { 0x00800040, 0x28004629, 0x00b10580, 0x00b10581 },
+   { 0x00800040, 0x28204629, 0x00b105a0, 0x00b105a1 },
+   { 0x00800040, 0x28404629, 0x00b105c0, 0x00b105c1 },
+   { 0x00800040, 0x28604629, 0x00b105e0, 0x00b105e1 },
+   { 0x00800040, 0x28804629, 0x00b10600, 0x00b10601 },
+   { 0x00800040, 0x28a04629, 0x00b10620, 0x00b10621 },
+   { 0x00800040, 0x28c04629, 0x00b10640, 0x00b10641 },
+   { 0x00800040, 0x28e04629, 0x00b10660, 0x00b10661 },
+   { 0x00800040, 0x29004629, 0x00b10680, 0x00b10681 },
+   { 0x00800040, 0x29204629, 0x00b106a0, 0x00b106a1 },
+   { 0x00800040, 0x27404529, 0x00b10740, 0x00b104e0 },
+   { 0x00800040, 0x27604529, 0x00b10760, 0x00b10500 },
+   { 0x00800040, 0x27804529, 0x00b10780, 0x00b10520 },
+   { 0x00800040, 0x27a04529, 0x00b107a0, 0x00b10540 },
+   { 0x00800040, 0x27c04529, 0x00b107c0, 0x00b10560 },
+   { 0x00800040, 0x27e04529, 0x00b107e0, 0x00b10580 },
+   { 0x00800040, 0x28004529, 0x00b10800, 0x00b105a0 },
+   { 0x00800040, 0x28204529, 0x00b10820, 0x00b105c0 },
+   { 0x00800040, 0x28404529, 0x00b10840, 0x00b105e0 },
+   { 0x00800040, 0x28604529, 0x00b10860, 0x00b10600 },
+   { 0x00800040, 0x28804529, 0x00b10880, 0x00b10620 },
+   { 0x00800040, 0x28a04529, 0x00b108a0, 0x00b10640 },
+   { 0x00800040, 0x28c04529, 0x00b108c0, 0x00b10660 },
+   { 0x00800040, 0x28e04529, 0x00b108e0, 0x00b10680 },
+   { 0x00800040, 0x29004529, 0x00b10900, 0x00b106a0 },
+   { 0x00800040, 0x29204529, 0x00b10920, 0x00b106c0 },
+   { 0x00800040, 0x27404529, 0x00b10740, 0x00b104e1 },
+   { 0x00800040, 0x27604529, 0x00b10760, 0x00b10501 },
+   { 0x00800040, 0x27804529, 0x00b10780, 0x00b10521 },
+   { 0x00800040, 0x27a04529, 0x00b107a0, 0x00b10541 },
+   { 0x00800040, 0x27c04529, 0x00b107c0, 0x00b10561 },
+   { 0x00800040, 0x27e04529, 0x00b107e0, 0x00b10581 },
+   { 0x00800040, 0x28004529, 0x00b10800, 0x00b105a1 },
+   { 0x00800040, 0x28204529, 0x00b10820, 0x00b105c1 },
+   { 0x00800040, 0x28404529, 0x00b10840, 0x00b105e1 },
+   { 0x00800040, 0x28604529, 0x00b10860, 0x00b10601 },
+   { 0x00800040, 0x28804529, 0x00b10880, 0x00b10621 },
+   { 0x00800040, 0x28a04529, 0x00b108a0, 0x00b10641 },
+   { 0x00800040, 0x28c04529, 0x00b108c0, 0x00b10661 },
+   { 0x00800040, 0x28e04529, 0x00b108e0, 0x00b10681 },
+   { 0x00800040, 0x29004529, 0x00b10900, 0x00b106a1 },
+   { 0x00800040, 0x29204529, 0x00b10920, 0x00b106c1 },
+   { 0x80800008, 0x27402d29, 0x00b10740, 0x00020002 },
+   { 0x80800008, 0x27602d29, 0x00b10760, 0x00020002 },
+   { 0x80800008, 0x27802d29, 0x00b10780, 0x00020002 },
+   { 0x80800008, 0x27a02d29, 0x00b107a0, 0x00020002 },
+   { 0x80800008, 0x27c02d29, 0x00b107c0, 0x00020002 },
+   { 0x80800008, 0x27e02d29, 0x00b107e0, 0x00020002 },
+   { 0x80800008, 0x28002d29, 0x00b10800, 0x00020002 },
+   { 0x80800008, 0x28202d29, 0x00b10820, 0x00020002 },
+   { 0x80800008, 0x28402d29, 0x00b10840, 0x00020002 },
+   { 0x80800008, 0x28602d29, 0x00b10860, 0x00020002 },
+   { 0x80800008, 0x28802d29, 0x00b10880, 0x00020002 },
+   { 0x80800008, 0x28a02d29, 0x00b108a0, 0x00020002 },
+   { 0x80800008, 0x28c02d29, 0x00b108c0, 0x00020002 },
+   { 0x80800008, 0x28e02d29, 0x00b108e0, 0x00020002 },
+   { 0x80800008, 0x29002d29, 0x00b10900, 0x00020002 },
+   { 0x80800008, 0x29202d29, 0x00b10920, 0x00020002 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000043 },
+   { 0x00000001, 0x24080061, 0x00000000, 0x0007001f },
+   { 0x00800031, 0x24c01d29, 0x008d0400, 0x0418a007 },
+   { 0x00000040, 0x24040c21, 0x00210404, 0x00000008 },
+   { 0x00800031, 0x25c01d29, 0x008d0400, 0x0418a007 },
+   { 0x80800042, 0x27404629, 0x00b104c0, 0x00b104c1 },
+   { 0x80800042, 0x27604629, 0x00b104e0, 0x00b104e1 },
+   { 0x80800042, 0x27804629, 0x00b10500, 0x00b10501 },
+   { 0x80800042, 0x27a04629, 0x00b10520, 0x00b10521 },
+   { 0x80800042, 0x27c04629, 0x00b10540, 0x00b10541 },
+   { 0x80800042, 0x27e04629, 0x00b10560, 0x00b10561 },
+   { 0x80800042, 0x28004629, 0x00b10580, 0x00b10581 },
+   { 0x80800042, 0x28204629, 0x00b105a0, 0x00b105a1 },
+   { 0x80800042, 0x28404629, 0x00b105c0, 0x00b105c1 },
+   { 0x80800042, 0x28604629, 0x00b105e0, 0x00b105e1 },
+   { 0x80800042, 0x28804629, 0x00b10600, 0x00b10601 },
+   { 0x80800042, 0x28a04629, 0x00b10620, 0x00b10621 },
+   { 0x80800042, 0x28c04629, 0x00b10640, 0x00b10641 },
+   { 0x80800042, 0x28e04629, 0x00b10660, 0x00b10661 },
+   { 0x80800042, 0x29004629, 0x00b10680, 0x00b10681 },
+   { 0x80800042, 0x29204629, 0x00b106a0, 0x00b106a1 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x0000002e },
+   { 0x01000005, 0x20000d3c, 0x00210a56, 0x00000001 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x00000018 },
+   { 0x00000001, 0x24080061, 0x00000000, 0x0007001f },
+   { 0x00800031, 0x24c01d29, 0x008d0400, 0x0418a007 },
+   { 0x00000040, 0x24040c21, 0x00210404, 0x00000008 },
+   { 0x00800031, 0x25c01d29, 0x008d0400, 0x0418a007 },
+   { 0x00000040, 0x24040c21, 0x00210404, 0x00000008 },
+   { 0x00000001, 0x24080061, 0x00000000, 0x0000001f },
+   { 0x00800031, 0x26c01d29, 0x008d0400, 0x0411a007 },
+   { 0x80800042, 0x27404629, 0x00b104c0, 0x00b104e0 },
+   { 0x80800042, 0x27604629, 0x00b104e0, 0x00b10500 },
+   { 0x80800042, 0x27804629, 0x00b10500, 0x00b10520 },
+   { 0x80800042, 0x27a04629, 0x00b10520, 0x00b10540 },
+   { 0x80800042, 0x27c04629, 0x00b10540, 0x00b10560 },
+   { 0x80800042, 0x27e04629, 0x00b10560, 0x00b10580 },
+   { 0x80800042, 0x28004629, 0x00b10580, 0x00b105a0 },
+   { 0x80800042, 0x28204629, 0x00b105a0, 0x00b105c0 },
+   { 0x80800042, 0x28404629, 0x00b105c0, 0x00b105e0 },
+   { 0x80800042, 0x28604629, 0x00b105e0, 0x00b10600 },
+   { 0x80800042, 0x28804629, 0x00b10600, 0x00b10620 },
+   { 0x80800042, 0x28a04629, 0x00b10620, 0x00b10640 },
+   { 0x80800042, 0x28c04629, 0x00b10640, 0x00b10660 },
+   { 0x80800042, 0x28e04629, 0x00b10660, 0x00b10680 },
+   { 0x80800042, 0x29004629, 0x00b10680, 0x00b106a0 },
+   { 0x80800042, 0x29204629, 0x00b106a0, 0x00b106c0 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000014 },
+   { 0x00000001, 0x24080061, 0x00000000, 0x0007001f },
+   { 0x00800031, 0x24c01d29, 0x008d0400, 0x0418a007 },
+   { 0x00000040, 0x24040c21, 0x00210404, 0x00000008 },
+   { 0x00800031, 0x25c01d29, 0x008d0400, 0x0418a007 },
+   { 0x00800001, 0x27400229, 0x00b104c0, 0x00000000 },
+   { 0x00800001, 0x27600229, 0x00b104e0, 0x00000000 },
+   { 0x00800001, 0x27800229, 0x00b10500, 0x00000000 },
+   { 0x00800001, 0x27a00229, 0x00b10520, 0x00000000 },
+   { 0x00800001, 0x27c00229, 0x00b10540, 0x00000000 },
+   { 0x00800001, 0x27e00229, 0x00b10560, 0x00000000 },
+   { 0x00800001, 0x28000229, 0x00b10580, 0x00000000 },
+   { 0x00800001, 0x28200229, 0x00b105a0, 0x00000000 },
+   { 0x00800001, 0x28400229, 0x00b105c0, 0x00000000 },
+   { 0x00800001, 0x28600229, 0x00b105e0, 0x00000000 },
+   { 0x00800001, 0x28800229, 0x00b10600, 0x00000000 },
+   { 0x00800001, 0x28a00229, 0x00b10620, 0x00000000 },
+   { 0x00800001, 0x28c00229, 0x00b10640, 0x00000000 },
+   { 0x00800001, 0x28e00229, 0x00b10660, 0x00000000 },
+   { 0x00800001, 0x29000229, 0x00b10680, 0x00000000 },
+   { 0x00800001, 0x29200229, 0x00b106a0, 0x00000000 },
+   { 0x80800042, 0x27402529, 0x00b10740, 0x00b10d80 },
+   { 0x80800042, 0x27602529, 0x00b10760, 0x00b10da0 },
+   { 0x80800042, 0x27802529, 0x00b10780, 0x00b10dc0 },
+   { 0x80800042, 0x27a02529, 0x00b107a0, 0x00b10de0 },
+   { 0x80800042, 0x27c02529, 0x00b107c0, 0x00b10e00 },
+   { 0x80800042, 0x27e02529, 0x00b107e0, 0x00b10e20 },
+   { 0x80800042, 0x28002529, 0x00b10800, 0x00b10e40 },
+   { 0x80800042, 0x28202529, 0x00b10820, 0x00b10e60 },
+   { 0x80800042, 0x28402529, 0x00b10840, 0x00b10e80 },
+   { 0x80800042, 0x28602529, 0x00b10860, 0x00b10ea0 },
+   { 0x80800042, 0x28802529, 0x00b10880, 0x00b10ec0 },
+   { 0x80800042, 0x28a02529, 0x00b108a0, 0x00b10ee0 },
+   { 0x80800042, 0x28c02529, 0x00b108c0, 0x00b10f00 },
+   { 0x80800042, 0x28e02529, 0x00b108e0, 0x00b10f20 },
+   { 0x80800042, 0x29002529, 0x00b10900, 0x00b10f40 },
+   { 0x80800042, 0x29202529, 0x00b10920, 0x00b10f60 },
+   { 0x00200008, 0x23e00c21, 0x004503e0, 0x00000001 },
+   { 0x0020000c, 0x23ee3dad, 0x00450a50, 0x00020002 },
+   { 0x00200040, 0x24003421, 0x004503e0, 0x004503ee },
+   { 0x00000001, 0x24080061, 0x00000000, 0x0007000f },
+   { 0x00000001, 0x24080061, 0x00000000, 0x0007000f },
+   { 0x00800031, 0x24801d29, 0x008d0400, 0x0414a005 },
+   { 0x00800031, 0x25001d29, 0x008d0400, 0x0414a006 },
+   { 0x00800001, 0x29400229, 0x00ad0480, 0x00000000 },
+   { 0x00800001, 0x29600229, 0x00ad04a0, 0x00000000 },
+   { 0x00800001, 0x29800229, 0x00ad04c0, 0x00000000 },
+   { 0x00800001, 0x29a00229, 0x00ad04e0, 0x00000000 },
+   { 0x00800001, 0x29c00229, 0x00ad0500, 0x00000000 },
+   { 0x00800001, 0x29e00229, 0x00ad0520, 0x00000000 },
+   { 0x00800001, 0x2a000229, 0x00ad0540, 0x00000000 },
+   { 0x00800001, 0x2a200229, 0x00ad0560, 0x00000000 },
+   { 0x00800001, 0x2d800231, 0x00b20940, 0x00000000 },
+   { 0x00800001, 0x2d900231, 0x00b20960, 0x00000000 },
+   { 0x00800001, 0x2da00231, 0x00b20980, 0x00000000 },
+   { 0x00800001, 0x2db00231, 0x00b209a0, 0x00000000 },
+   { 0x00800001, 0x2dc00231, 0x00b209c0, 0x00000000 },
+   { 0x00800001, 0x2dd00231, 0x00b209e0, 0x00000000 },
+   { 0x00800001, 0x2de00231, 0x00b20a00, 0x00000000 },
+   { 0x00800001, 0x2df00231, 0x00b20a20, 0x00000000 },
+   { 0x0020000c, 0x23ee3dad, 0x00450a54, 0x00020002 },
+   { 0x00200040, 0x24003421, 0x004503e0, 0x004503ee },
+   { 0x00000001, 0x24080061, 0x00000000, 0x0007000f },
+   { 0x00800031, 0x24801d29, 0x008d0400, 0x0414a008 },
+   { 0x00800031, 0x25001d29, 0x008d0400, 0x0414a009 },
+   { 0x00800001, 0x29400229, 0x00ad0480, 0x00000000 },
+   { 0x00800001, 0x29600229, 0x00ad04a0, 0x00000000 },
+   { 0x00800001, 0x29800229, 0x00ad04c0, 0x00000000 },
+   { 0x00800001, 0x29a00229, 0x00ad04e0, 0x00000000 },
+   { 0x00800001, 0x29c00229, 0x00ad0500, 0x00000000 },
+   { 0x00800001, 0x29e00229, 0x00ad0520, 0x00000000 },
+   { 0x00800001, 0x2a000229, 0x00ad0540, 0x00000000 },
+   { 0x00800001, 0x2a200229, 0x00ad0560, 0x00000000 },
+   { 0x80800042, 0x29404529, 0x00b10940, 0x00b10d80 },
+   { 0x80800042, 0x29604529, 0x00b10960, 0x00b10d90 },
+   { 0x80800042, 0x29804529, 0x00b10980, 0x00b10da0 },
+   { 0x80800042, 0x29a04529, 0x00b109a0, 0x00b10db0 },
+   { 0x80800042, 0x29c04529, 0x00b109c0, 0x00b10dc0 },
+   { 0x80800042, 0x29e04529, 0x00b109e0, 0x00b10dd0 },
+   { 0x80800042, 0x2a004529, 0x00b10a00, 0x00b10de0 },
+   { 0x80800042, 0x2a204529, 0x00b10a20, 0x00b10df0 },
+   { 0x00200001, 0x23e00121, 0x00450a4c, 0x00000000 },
+   { 0x02000005, 0x20002d3c, 0x00210a42, 0x00200020 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x00000011 },
+   { 0x00800040, 0x274045ad, 0x00b10a60, 0x00b20740 },
+   { 0x00800040, 0x276045ad, 0x00b10a80, 0x00b20760 },
+   { 0x00800040, 0x278045ad, 0x00b10aa0, 0x00b20780 },
+   { 0x00800040, 0x27a045ad, 0x00b10ac0, 0x00b207a0 },
+   { 0x00800040, 0x27c045ad, 0x00b10ae0, 0x00b207c0 },
+   { 0x00800040, 0x27e045ad, 0x00b10b00, 0x00b207e0 },
+   { 0x00800040, 0x280045ad, 0x00b10b20, 0x00b20800 },
+   { 0x00800040, 0x282045ad, 0x00b10b40, 0x00b20820 },
+   { 0x00800040, 0x284045ad, 0x00b10b60, 0x00b20840 },
+   { 0x00800040, 0x286045ad, 0x00b10b80, 0x00b20860 },
+   { 0x00800040, 0x288045ad, 0x00b10ba0, 0x00b20880 },
+   { 0x00800040, 0x28a045ad, 0x00b10bc0, 0x00b208a0 },
+   { 0x00800040, 0x28c045ad, 0x00b10be0, 0x00b208c0 },
+   { 0x00800040, 0x28e045ad, 0x00b10c00, 0x00b208e0 },
+   { 0x00800040, 0x290045ad, 0x00b10c20, 0x00b20900 },
+   { 0x00800040, 0x292045ad, 0x00b10c40, 0x00b20920 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000010 },
+   { 0x00800040, 0x274045ad, 0x00b10a60, 0x00b20740 },
+   { 0x00800040, 0x276045ad, 0x00b10b60, 0x00b20760 },
+   { 0x00800040, 0x278045ad, 0x00b10a80, 0x00b20780 },
+   { 0x00800040, 0x27a045ad, 0x00b10b80, 0x00b207a0 },
+   { 0x00800040, 0x27c045ad, 0x00b10aa0, 0x00b207c0 },
+   { 0x00800040, 0x27e045ad, 0x00b10ba0, 0x00b207e0 },
+   { 0x00800040, 0x280045ad, 0x00b10ac0, 0x00b20800 },
+   { 0x00800040, 0x282045ad, 0x00b10bc0, 0x00b20820 },
+   { 0x00800040, 0x284045ad, 0x00b10ae0, 0x00b20840 },
+   { 0x00800040, 0x286045ad, 0x00b10be0, 0x00b20860 },
+   { 0x00800040, 0x288045ad, 0x00b10b00, 0x00b20880 },
+   { 0x00800040, 0x28a045ad, 0x00b10c00, 0x00b208a0 },
+   { 0x00800040, 0x28c045ad, 0x00b10b20, 0x00b208c0 },
+   { 0x00800040, 0x28e045ad, 0x00b10c20, 0x00b208e0 },
+   { 0x00800040, 0x290045ad, 0x00b10b40, 0x00b20900 },
+   { 0x00800040, 0x292045ad, 0x00b10c40, 0x00b20920 },
+   { 0x00000001, 0x23e80061, 0x00000000, 0x000f000f },
+   { 0x80800001, 0x474001b1, 0x00b10740, 0x00000000 },
+   { 0x80800001, 0x476001b1, 0x00b10760, 0x00000000 },
+   { 0x80800001, 0x478001b1, 0x00b10780, 0x00000000 },
+   { 0x80800001, 0x47a001b1, 0x00b107a0, 0x00000000 },
+   { 0x80800001, 0x47c001b1, 0x00b107c0, 0x00000000 },
+   { 0x80800001, 0x47e001b1, 0x00b107e0, 0x00000000 },
+   { 0x80800001, 0x480001b1, 0x00b10800, 0x00000000 },
+   { 0x80800001, 0x482001b1, 0x00b10820, 0x00000000 },
+   { 0x80800001, 0x484001b1, 0x00b10840, 0x00000000 },
+   { 0x80800001, 0x486001b1, 0x00b10860, 0x00000000 },
+   { 0x80800001, 0x488001b1, 0x00b10880, 0x00000000 },
+   { 0x80800001, 0x48a001b1, 0x00b108a0, 0x00000000 },
+   { 0x80800001, 0x48c001b1, 0x00b108c0, 0x00000000 },
+   { 0x80800001, 0x48e001b1, 0x00b108e0, 0x00000000 },
+   { 0x80800001, 0x490001b1, 0x00b10900, 0x00000000 },
+   { 0x80800001, 0x492001b1, 0x00b10920, 0x00000000 },
+   { 0x00800001, 0x20200232, 0x00b20740, 0x00000000 },
+   { 0x00800001, 0x20300232, 0x00b20760, 0x00000000 },
+   { 0x00800001, 0x20400232, 0x00b20780, 0x00000000 },
+   { 0x00800001, 0x20500232, 0x00b207a0, 0x00000000 },
+   { 0x00800001, 0x20600232, 0x00b207c0, 0x00000000 },
+   { 0x00800001, 0x20700232, 0x00b207e0, 0x00000000 },
+   { 0x00800001, 0x20800232, 0x00b20800, 0x00000000 },
+   { 0x00800001, 0x20900232, 0x00b20820, 0x00000000 },
+   { 0x00800001, 0x20a00232, 0x00b20840, 0x00000000 },
+   { 0x00800001, 0x20b00232, 0x00b20860, 0x00000000 },
+   { 0x00800001, 0x20c00232, 0x00b20880, 0x00000000 },
+   { 0x00800001, 0x20d00232, 0x00b208a0, 0x00000000 },
+   { 0x00800001, 0x20e00232, 0x00b208c0, 0x00000000 },
+   { 0x00800001, 0x20f00232, 0x00b208e0, 0x00000000 },
+   { 0x00800001, 0x21000232, 0x00b20900, 0x00000000 },
+   { 0x00800001, 0x21100232, 0x00b20920, 0x00000000 },
+   { 0x00800031, 0x24001d28, 0x008d03e0, 0x05902000 },
+   { 0x00000001, 0x23e80061, 0x00000000, 0x00070007 },
+   { 0x00200008, 0x23e01c21, 0x004503e0, 0x00000001 },
+   { 0x00800040, 0x294025ad, 0x00b10c60, 0x00b10940 },
+   { 0x00800040, 0x296025ad, 0x00b10c80, 0x00b10960 },
+   { 0x00800040, 0x298025ad, 0x00b10ca0, 0x00b10980 },
+   { 0x00800040, 0x29a025ad, 0x00b10cc0, 0x00b109a0 },
+   { 0x80800001, 0x494001b1, 0x00b10940, 0x00000000 },
+   { 0x80800001, 0x496001b1, 0x00b10960, 0x00000000 },
+   { 0x80800001, 0x498001b1, 0x00b10980, 0x00000000 },
+   { 0x80800001, 0x49a001b1, 0x00b109a0, 0x00000000 },
+   { 0x00800001, 0x20200232, 0x00b20940, 0x00000000 },
+   { 0x00800001, 0x20300232, 0x00b20960, 0x00000000 },
+   { 0x00800001, 0x20400232, 0x00b20980, 0x00000000 },
+   { 0x00800001, 0x20500232, 0x00b209a0, 0x00000000 },
+   { 0x00800031, 0x24001d28, 0x008d03e0, 0x05302001 },
+   { 0x00800040, 0x29c025a9, 0x00b10ce0, 0x00b109c0 },
+   { 0x00800040, 0x29e025a9, 0x00b10d00, 0x00b109e0 },
+   { 0x00800040, 0x2a0025a9, 0x00b10d20, 0x00b10a00 },
+   { 0x00800040, 0x2a2025a9, 0x00b10d40, 0x00b10a20 },
+   { 0x80800001, 0x49c001b1, 0x00b109c0, 0x00000000 },
+   { 0x80800001, 0x49e001b1, 0x00b109e0, 0x00000000 },
+   { 0x80800001, 0x4a0001b1, 0x00b10a00, 0x00000000 },
+   { 0x80800001, 0x4a2001b1, 0x00b10a20, 0x00000000 },
+   { 0x00800001, 0x20200232, 0x00b209c0, 0x00000000 },
+   { 0x00800001, 0x20300232, 0x00b209e0, 0x00000000 },
+   { 0x00800001, 0x20400232, 0x00b20a00, 0x00000000 },
+   { 0x00800001, 0x20500232, 0x00b20a20, 0x00000000 },
+   { 0x00800031, 0x24001d28, 0x008d03e0, 0x05302002 },
+   { 0x00800031, 0x24001d28, 0x008d0000, 0x87100000 },
+   { 0x00800031, 0x24001d28, 0x008d0000, 0x87100000 },
diff --git a/src/xvmc/shader/vld/frame_forward.g4a b/src/xvmc/shader/vld/frame_forward.g4a
new file mode 100644
index 0000000..22f4804
--- /dev/null
+++ b/src/xvmc/shader/vld/frame_forward.g4a
@@ -0,0 +1,61 @@
+/*
+ * Copyright © 2009 Intel Corporation
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice (including the next
+ * paragraph) shall be included in all copies or substantial portions of the
+ * Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
+ * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+ * SOFTWARE.
+ *
+ * Author:
+ *    Zou Nan hai <nanhai.zou at intel.com>
+ *    Yan Li <li.l.yan at intel.com>
+ *    Liu Xi bin<xibin.liu at intel.com>
+ */
+/* GRF allocation:
+   g1~g30: constant buffer
+           g1~g2:intra IQ matrix
+           g3~g4:non intra IQ matrix
+           g5~g20:IDCT table
+   g31:    thread payload 
+   g32:    message descriptor for reading reference data
+   g58~g81:reference data
+   g82:    thread payload backup
+   g83~g106:IDCT data                           */
+mov (8) g82.0<1>UD g31.0<8,8,1>UD {align1};
+mov (2) g31.0<1>UD g82.12<2,2,1>UW {align1};
+mov (1) g126.8<1>UD ip {align1};
+mov (1) ip g21.0<1,1,1>UD {align1};
+
+//Y, (x', y') = (x, y) + (motion_vector.x >> 1, motion_vector.y >> 1) 
+asr (2) g31.14<1>W g82.16<2,2,1>W 1W {align1};  
+add (2) g32.0<1>UD g31.0<2,2,1>UD g31.14<2,2,1>W {align1};
+define(`input_surface',	`4')
+define(`mv1',	`g82.16')
+define(`mv2',	`g82.18')
+include(`motion_frame_y.g4i')
+
+//UV, (x', y') = (x >> 1, y >> 1) + (motion_vector.x >> 2, motion_vector.y >> 2)
+shr (2) g31.0<1>UD g31.0<2,2,1>UD 1UD {align1};
+asr (2) g31.14<1>W g82.16<2,2,1>W 2W {align1};
+add (2) g32.0<1>UD g31.0<2,2,1>UD g31.14<2,2,1>W {align1};
+define(`input_surface1', `5')
+define(`input_surface2', `6')
+include(`motion_frame_uv.g4i')
+
+include(`addidct.g4i')
+send (16) 0 acc0<1>UW g0<8,8,1>UW 
+	thread_spawner(0, 0, 0) mlen 1 rlen 0 { align1 EOT};
diff --git a/src/xvmc/shader/vld/frame_forward.g4b b/src/xvmc/shader/vld/frame_forward.g4b
new file mode 100644
index 0000000..fed4551
--- /dev/null
+++ b/src/xvmc/shader/vld/frame_forward.g4b
@@ -0,0 +1,263 @@
+   { 0x00600001, 0x2a400021, 0x008d03e0, 0x00000000 },
+   { 0x00200001, 0x23e00121, 0x00450a4c, 0x00000000 },
+   { 0x00000001, 0x2fc80001, 0x00001400, 0x00000000 },
+   { 0x00000001, 0x34000020, 0x002102a0, 0x00000000 },
+   { 0x0020000c, 0x23ee3dad, 0x00450a50, 0x00010001 },
+   { 0x00200040, 0x24003421, 0x004503e0, 0x004503ee },
+   { 0x01000005, 0x20000d3c, 0x00210a50, 0x00000001 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x0000005f },
+   { 0x01000005, 0x20000d3c, 0x00210a52, 0x00000001 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x00000048 },
+   { 0x00000001, 0x24080061, 0x00000000, 0x0007001f },
+   { 0x00800031, 0x24c01d29, 0x008d0400, 0x0418a004 },
+   { 0x00000040, 0x24040c21, 0x00210404, 0x00000008 },
+   { 0x00800031, 0x25c01d29, 0x008d0400, 0x0418a004 },
+   { 0x00000040, 0x24040c21, 0x00210404, 0x00000008 },
+   { 0x00000001, 0x24080061, 0x00000000, 0x0000001f },
+   { 0x00800031, 0x26c01d29, 0x008d0400, 0x0411a004 },
+   { 0x00800040, 0x27404629, 0x00b104c0, 0x00b104c1 },
+   { 0x00800040, 0x27604629, 0x00b104e0, 0x00b104e1 },
+   { 0x00800040, 0x27804629, 0x00b10500, 0x00b10501 },
+   { 0x00800040, 0x27a04629, 0x00b10520, 0x00b10521 },
+   { 0x00800040, 0x27c04629, 0x00b10540, 0x00b10541 },
+   { 0x00800040, 0x27e04629, 0x00b10560, 0x00b10561 },
+   { 0x00800040, 0x28004629, 0x00b10580, 0x00b10581 },
+   { 0x00800040, 0x28204629, 0x00b105a0, 0x00b105a1 },
+   { 0x00800040, 0x28404629, 0x00b105c0, 0x00b105c1 },
+   { 0x00800040, 0x28604629, 0x00b105e0, 0x00b105e1 },
+   { 0x00800040, 0x28804629, 0x00b10600, 0x00b10601 },
+   { 0x00800040, 0x28a04629, 0x00b10620, 0x00b10621 },
+   { 0x00800040, 0x28c04629, 0x00b10640, 0x00b10641 },
+   { 0x00800040, 0x28e04629, 0x00b10660, 0x00b10661 },
+   { 0x00800040, 0x29004629, 0x00b10680, 0x00b10681 },
+   { 0x00800040, 0x29204629, 0x00b106a0, 0x00b106a1 },
+   { 0x00800040, 0x27404529, 0x00b10740, 0x00b104e0 },
+   { 0x00800040, 0x27604529, 0x00b10760, 0x00b10500 },
+   { 0x00800040, 0x27804529, 0x00b10780, 0x00b10520 },
+   { 0x00800040, 0x27a04529, 0x00b107a0, 0x00b10540 },
+   { 0x00800040, 0x27c04529, 0x00b107c0, 0x00b10560 },
+   { 0x00800040, 0x27e04529, 0x00b107e0, 0x00b10580 },
+   { 0x00800040, 0x28004529, 0x00b10800, 0x00b105a0 },
+   { 0x00800040, 0x28204529, 0x00b10820, 0x00b105c0 },
+   { 0x00800040, 0x28404529, 0x00b10840, 0x00b105e0 },
+   { 0x00800040, 0x28604529, 0x00b10860, 0x00b10600 },
+   { 0x00800040, 0x28804529, 0x00b10880, 0x00b10620 },
+   { 0x00800040, 0x28a04529, 0x00b108a0, 0x00b10640 },
+   { 0x00800040, 0x28c04529, 0x00b108c0, 0x00b10660 },
+   { 0x00800040, 0x28e04529, 0x00b108e0, 0x00b10680 },
+   { 0x00800040, 0x29004529, 0x00b10900, 0x00b106a0 },
+   { 0x00800040, 0x29204529, 0x00b10920, 0x00b106c0 },
+   { 0x00800040, 0x27404529, 0x00b10740, 0x00b104e1 },
+   { 0x00800040, 0x27604529, 0x00b10760, 0x00b10501 },
+   { 0x00800040, 0x27804529, 0x00b10780, 0x00b10521 },
+   { 0x00800040, 0x27a04529, 0x00b107a0, 0x00b10541 },
+   { 0x00800040, 0x27c04529, 0x00b107c0, 0x00b10561 },
+   { 0x00800040, 0x27e04529, 0x00b107e0, 0x00b10581 },
+   { 0x00800040, 0x28004529, 0x00b10800, 0x00b105a1 },
+   { 0x00800040, 0x28204529, 0x00b10820, 0x00b105c1 },
+   { 0x00800040, 0x28404529, 0x00b10840, 0x00b105e1 },
+   { 0x00800040, 0x28604529, 0x00b10860, 0x00b10601 },
+   { 0x00800040, 0x28804529, 0x00b10880, 0x00b10621 },
+   { 0x00800040, 0x28a04529, 0x00b108a0, 0x00b10641 },
+   { 0x00800040, 0x28c04529, 0x00b108c0, 0x00b10661 },
+   { 0x00800040, 0x28e04529, 0x00b108e0, 0x00b10681 },
+   { 0x00800040, 0x29004529, 0x00b10900, 0x00b106a1 },
+   { 0x00800040, 0x29204529, 0x00b10920, 0x00b106c1 },
+   { 0x80800008, 0x27402d29, 0x00b10740, 0x00020002 },
+   { 0x80800008, 0x27602d29, 0x00b10760, 0x00020002 },
+   { 0x80800008, 0x27802d29, 0x00b10780, 0x00020002 },
+   { 0x80800008, 0x27a02d29, 0x00b107a0, 0x00020002 },
+   { 0x80800008, 0x27c02d29, 0x00b107c0, 0x00020002 },
+   { 0x80800008, 0x27e02d29, 0x00b107e0, 0x00020002 },
+   { 0x80800008, 0x28002d29, 0x00b10800, 0x00020002 },
+   { 0x80800008, 0x28202d29, 0x00b10820, 0x00020002 },
+   { 0x80800008, 0x28402d29, 0x00b10840, 0x00020002 },
+   { 0x80800008, 0x28602d29, 0x00b10860, 0x00020002 },
+   { 0x80800008, 0x28802d29, 0x00b10880, 0x00020002 },
+   { 0x80800008, 0x28a02d29, 0x00b108a0, 0x00020002 },
+   { 0x80800008, 0x28c02d29, 0x00b108c0, 0x00020002 },
+   { 0x80800008, 0x28e02d29, 0x00b108e0, 0x00020002 },
+   { 0x80800008, 0x29002d29, 0x00b10900, 0x00020002 },
+   { 0x80800008, 0x29202d29, 0x00b10920, 0x00020002 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000043 },
+   { 0x00000001, 0x24080061, 0x00000000, 0x0007001f },
+   { 0x00800031, 0x24c01d29, 0x008d0400, 0x0418a004 },
+   { 0x00000040, 0x24040c21, 0x00210404, 0x00000008 },
+   { 0x00800031, 0x25c01d29, 0x008d0400, 0x0418a004 },
+   { 0x80800042, 0x27404629, 0x00b104c0, 0x00b104c1 },
+   { 0x80800042, 0x27604629, 0x00b104e0, 0x00b104e1 },
+   { 0x80800042, 0x27804629, 0x00b10500, 0x00b10501 },
+   { 0x80800042, 0x27a04629, 0x00b10520, 0x00b10521 },
+   { 0x80800042, 0x27c04629, 0x00b10540, 0x00b10541 },
+   { 0x80800042, 0x27e04629, 0x00b10560, 0x00b10561 },
+   { 0x80800042, 0x28004629, 0x00b10580, 0x00b10581 },
+   { 0x80800042, 0x28204629, 0x00b105a0, 0x00b105a1 },
+   { 0x80800042, 0x28404629, 0x00b105c0, 0x00b105c1 },
+   { 0x80800042, 0x28604629, 0x00b105e0, 0x00b105e1 },
+   { 0x80800042, 0x28804629, 0x00b10600, 0x00b10601 },
+   { 0x80800042, 0x28a04629, 0x00b10620, 0x00b10621 },
+   { 0x80800042, 0x28c04629, 0x00b10640, 0x00b10641 },
+   { 0x80800042, 0x28e04629, 0x00b10660, 0x00b10661 },
+   { 0x80800042, 0x29004629, 0x00b10680, 0x00b10681 },
+   { 0x80800042, 0x29204629, 0x00b106a0, 0x00b106a1 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x0000002e },
+   { 0x01000005, 0x20000d3c, 0x00210a52, 0x00000001 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x00000018 },
+   { 0x00000001, 0x24080061, 0x00000000, 0x0007001f },
+   { 0x00800031, 0x24c01d29, 0x008d0400, 0x0418a004 },
+   { 0x00000040, 0x24040c21, 0x00210404, 0x00000008 },
+   { 0x00800031, 0x25c01d29, 0x008d0400, 0x0418a004 },
+   { 0x00000040, 0x24040c21, 0x00210404, 0x00000008 },
+   { 0x00000001, 0x24080061, 0x00000000, 0x0000001f },
+   { 0x00800031, 0x26c01d29, 0x008d0400, 0x0411a004 },
+   { 0x80800042, 0x27404629, 0x00b104c0, 0x00b104e0 },
+   { 0x80800042, 0x27604629, 0x00b104e0, 0x00b10500 },
+   { 0x80800042, 0x27804629, 0x00b10500, 0x00b10520 },
+   { 0x80800042, 0x27a04629, 0x00b10520, 0x00b10540 },
+   { 0x80800042, 0x27c04629, 0x00b10540, 0x00b10560 },
+   { 0x80800042, 0x27e04629, 0x00b10560, 0x00b10580 },
+   { 0x80800042, 0x28004629, 0x00b10580, 0x00b105a0 },
+   { 0x80800042, 0x28204629, 0x00b105a0, 0x00b105c0 },
+   { 0x80800042, 0x28404629, 0x00b105c0, 0x00b105e0 },
+   { 0x80800042, 0x28604629, 0x00b105e0, 0x00b10600 },
+   { 0x80800042, 0x28804629, 0x00b10600, 0x00b10620 },
+   { 0x80800042, 0x28a04629, 0x00b10620, 0x00b10640 },
+   { 0x80800042, 0x28c04629, 0x00b10640, 0x00b10660 },
+   { 0x80800042, 0x28e04629, 0x00b10660, 0x00b10680 },
+   { 0x80800042, 0x29004629, 0x00b10680, 0x00b106a0 },
+   { 0x80800042, 0x29204629, 0x00b106a0, 0x00b106c0 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000014 },
+   { 0x00000001, 0x24080061, 0x00000000, 0x0007001f },
+   { 0x00800031, 0x24c01d29, 0x008d0400, 0x0418a004 },
+   { 0x00000040, 0x24040c21, 0x00210404, 0x00000008 },
+   { 0x00800031, 0x25c01d29, 0x008d0400, 0x0418a004 },
+   { 0x00800001, 0x27400229, 0x00b104c0, 0x00000000 },
+   { 0x00800001, 0x27600229, 0x00b104e0, 0x00000000 },
+   { 0x00800001, 0x27800229, 0x00b10500, 0x00000000 },
+   { 0x00800001, 0x27a00229, 0x00b10520, 0x00000000 },
+   { 0x00800001, 0x27c00229, 0x00b10540, 0x00000000 },
+   { 0x00800001, 0x27e00229, 0x00b10560, 0x00000000 },
+   { 0x00800001, 0x28000229, 0x00b10580, 0x00000000 },
+   { 0x00800001, 0x28200229, 0x00b105a0, 0x00000000 },
+   { 0x00800001, 0x28400229, 0x00b105c0, 0x00000000 },
+   { 0x00800001, 0x28600229, 0x00b105e0, 0x00000000 },
+   { 0x00800001, 0x28800229, 0x00b10600, 0x00000000 },
+   { 0x00800001, 0x28a00229, 0x00b10620, 0x00000000 },
+   { 0x00800001, 0x28c00229, 0x00b10640, 0x00000000 },
+   { 0x00800001, 0x28e00229, 0x00b10660, 0x00000000 },
+   { 0x00800001, 0x29000229, 0x00b10680, 0x00000000 },
+   { 0x00800001, 0x29200229, 0x00b106a0, 0x00000000 },
+   { 0x00200008, 0x23e00c21, 0x004503e0, 0x00000001 },
+   { 0x0020000c, 0x23ee3dad, 0x00450a50, 0x00020002 },
+   { 0x00200040, 0x24003421, 0x004503e0, 0x004503ee },
+   { 0x00000001, 0x24080061, 0x00000000, 0x0007000f },
+   { 0x00800031, 0x24801d29, 0x008d0400, 0x0414a005 },
+   { 0x00800031, 0x25001d29, 0x008d0400, 0x0414a006 },
+   { 0x00800001, 0x29400229, 0x00ad0480, 0x00000000 },
+   { 0x00800001, 0x29600229, 0x00ad04a0, 0x00000000 },
+   { 0x00800001, 0x29800229, 0x00ad04c0, 0x00000000 },
+   { 0x00800001, 0x29a00229, 0x00ad04e0, 0x00000000 },
+   { 0x00800001, 0x29c00229, 0x00ad0500, 0x00000000 },
+   { 0x00800001, 0x29e00229, 0x00ad0520, 0x00000000 },
+   { 0x00800001, 0x2a000229, 0x00ad0540, 0x00000000 },
+   { 0x00800001, 0x2a200229, 0x00ad0560, 0x00000000 },
+   { 0x00200001, 0x23e00121, 0x00450a4c, 0x00000000 },
+   { 0x02000005, 0x20002d3c, 0x00210a42, 0x00200020 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x00000011 },
+   { 0x00800040, 0x274045ad, 0x00b10a60, 0x00b20740 },
+   { 0x00800040, 0x276045ad, 0x00b10a80, 0x00b20760 },
+   { 0x00800040, 0x278045ad, 0x00b10aa0, 0x00b20780 },
+   { 0x00800040, 0x27a045ad, 0x00b10ac0, 0x00b207a0 },
+   { 0x00800040, 0x27c045ad, 0x00b10ae0, 0x00b207c0 },
+   { 0x00800040, 0x27e045ad, 0x00b10b00, 0x00b207e0 },
+   { 0x00800040, 0x280045ad, 0x00b10b20, 0x00b20800 },
+   { 0x00800040, 0x282045ad, 0x00b10b40, 0x00b20820 },
+   { 0x00800040, 0x284045ad, 0x00b10b60, 0x00b20840 },
+   { 0x00800040, 0x286045ad, 0x00b10b80, 0x00b20860 },
+   { 0x00800040, 0x288045ad, 0x00b10ba0, 0x00b20880 },
+   { 0x00800040, 0x28a045ad, 0x00b10bc0, 0x00b208a0 },
+   { 0x00800040, 0x28c045ad, 0x00b10be0, 0x00b208c0 },
+   { 0x00800040, 0x28e045ad, 0x00b10c00, 0x00b208e0 },
+   { 0x00800040, 0x290045ad, 0x00b10c20, 0x00b20900 },
+   { 0x00800040, 0x292045ad, 0x00b10c40, 0x00b20920 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000010 },
+   { 0x00800040, 0x274045ad, 0x00b10a60, 0x00b20740 },
+   { 0x00800040, 0x276045ad, 0x00b10b60, 0x00b20760 },
+   { 0x00800040, 0x278045ad, 0x00b10a80, 0x00b20780 },
+   { 0x00800040, 0x27a045ad, 0x00b10b80, 0x00b207a0 },
+   { 0x00800040, 0x27c045ad, 0x00b10aa0, 0x00b207c0 },
+   { 0x00800040, 0x27e045ad, 0x00b10ba0, 0x00b207e0 },
+   { 0x00800040, 0x280045ad, 0x00b10ac0, 0x00b20800 },
+   { 0x00800040, 0x282045ad, 0x00b10bc0, 0x00b20820 },
+   { 0x00800040, 0x284045ad, 0x00b10ae0, 0x00b20840 },
+   { 0x00800040, 0x286045ad, 0x00b10be0, 0x00b20860 },
+   { 0x00800040, 0x288045ad, 0x00b10b00, 0x00b20880 },
+   { 0x00800040, 0x28a045ad, 0x00b10c00, 0x00b208a0 },
+   { 0x00800040, 0x28c045ad, 0x00b10b20, 0x00b208c0 },
+   { 0x00800040, 0x28e045ad, 0x00b10c20, 0x00b208e0 },
+   { 0x00800040, 0x290045ad, 0x00b10b40, 0x00b20900 },
+   { 0x00800040, 0x292045ad, 0x00b10c40, 0x00b20920 },
+   { 0x00000001, 0x23e80061, 0x00000000, 0x000f000f },
+   { 0x80800001, 0x474001b1, 0x00b10740, 0x00000000 },
+   { 0x80800001, 0x476001b1, 0x00b10760, 0x00000000 },
+   { 0x80800001, 0x478001b1, 0x00b10780, 0x00000000 },
+   { 0x80800001, 0x47a001b1, 0x00b107a0, 0x00000000 },
+   { 0x80800001, 0x47c001b1, 0x00b107c0, 0x00000000 },
+   { 0x80800001, 0x47e001b1, 0x00b107e0, 0x00000000 },
+   { 0x80800001, 0x480001b1, 0x00b10800, 0x00000000 },
+   { 0x80800001, 0x482001b1, 0x00b10820, 0x00000000 },
+   { 0x80800001, 0x484001b1, 0x00b10840, 0x00000000 },
+   { 0x80800001, 0x486001b1, 0x00b10860, 0x00000000 },
+   { 0x80800001, 0x488001b1, 0x00b10880, 0x00000000 },
+   { 0x80800001, 0x48a001b1, 0x00b108a0, 0x00000000 },
+   { 0x80800001, 0x48c001b1, 0x00b108c0, 0x00000000 },
+   { 0x80800001, 0x48e001b1, 0x00b108e0, 0x00000000 },
+   { 0x80800001, 0x490001b1, 0x00b10900, 0x00000000 },
+   { 0x80800001, 0x492001b1, 0x00b10920, 0x00000000 },
+   { 0x00800001, 0x20200232, 0x00b20740, 0x00000000 },
+   { 0x00800001, 0x20300232, 0x00b20760, 0x00000000 },
+   { 0x00800001, 0x20400232, 0x00b20780, 0x00000000 },
+   { 0x00800001, 0x20500232, 0x00b207a0, 0x00000000 },
+   { 0x00800001, 0x20600232, 0x00b207c0, 0x00000000 },
+   { 0x00800001, 0x20700232, 0x00b207e0, 0x00000000 },
+   { 0x00800001, 0x20800232, 0x00b20800, 0x00000000 },
+   { 0x00800001, 0x20900232, 0x00b20820, 0x00000000 },
+   { 0x00800001, 0x20a00232, 0x00b20840, 0x00000000 },
+   { 0x00800001, 0x20b00232, 0x00b20860, 0x00000000 },
+   { 0x00800001, 0x20c00232, 0x00b20880, 0x00000000 },
+   { 0x00800001, 0x20d00232, 0x00b208a0, 0x00000000 },
+   { 0x00800001, 0x20e00232, 0x00b208c0, 0x00000000 },
+   { 0x00800001, 0x20f00232, 0x00b208e0, 0x00000000 },
+   { 0x00800001, 0x21000232, 0x00b20900, 0x00000000 },
+   { 0x00800001, 0x21100232, 0x00b20920, 0x00000000 },
+   { 0x00800031, 0x24001d28, 0x008d03e0, 0x05902000 },
+   { 0x00000001, 0x23e80061, 0x00000000, 0x00070007 },
+   { 0x00200008, 0x23e01c21, 0x004503e0, 0x00000001 },
+   { 0x00800040, 0x294025ad, 0x00b10c60, 0x00b10940 },
+   { 0x00800040, 0x296025ad, 0x00b10c80, 0x00b10960 },
+   { 0x00800040, 0x298025ad, 0x00b10ca0, 0x00b10980 },
+   { 0x00800040, 0x29a025ad, 0x00b10cc0, 0x00b109a0 },
+   { 0x80800001, 0x494001b1, 0x00b10940, 0x00000000 },
+   { 0x80800001, 0x496001b1, 0x00b10960, 0x00000000 },
+   { 0x80800001, 0x498001b1, 0x00b10980, 0x00000000 },
+   { 0x80800001, 0x49a001b1, 0x00b109a0, 0x00000000 },
+   { 0x00800001, 0x20200232, 0x00b20940, 0x00000000 },
+   { 0x00800001, 0x20300232, 0x00b20960, 0x00000000 },
+   { 0x00800001, 0x20400232, 0x00b20980, 0x00000000 },
+   { 0x00800001, 0x20500232, 0x00b209a0, 0x00000000 },
+   { 0x00800031, 0x24001d28, 0x008d03e0, 0x05302001 },
+   { 0x00800040, 0x29c025a9, 0x00b10ce0, 0x00b109c0 },
+   { 0x00800040, 0x29e025a9, 0x00b10d00, 0x00b109e0 },
+   { 0x00800040, 0x2a0025a9, 0x00b10d20, 0x00b10a00 },
+   { 0x00800040, 0x2a2025a9, 0x00b10d40, 0x00b10a20 },
+   { 0x80800001, 0x49c001b1, 0x00b109c0, 0x00000000 },
+   { 0x80800001, 0x49e001b1, 0x00b109e0, 0x00000000 },
+   { 0x80800001, 0x4a0001b1, 0x00b10a00, 0x00000000 },
+   { 0x80800001, 0x4a2001b1, 0x00b10a20, 0x00000000 },
+   { 0x00800001, 0x20200232, 0x00b209c0, 0x00000000 },
+   { 0x00800001, 0x20300232, 0x00b209e0, 0x00000000 },
+   { 0x00800001, 0x20400232, 0x00b20a00, 0x00000000 },
+   { 0x00800001, 0x20500232, 0x00b20a20, 0x00000000 },
+   { 0x00800031, 0x24001d28, 0x008d03e0, 0x05302002 },
+   { 0x00800031, 0x24001d28, 0x008d0000, 0x87100000 },
+   { 0x00800031, 0x24001d28, 0x008d0000, 0x87100000 },
diff --git a/src/xvmc/shader/vld/idct.g4i b/src/xvmc/shader/vld/idct.g4i
new file mode 100644
index 0000000..c1747d1
--- /dev/null
+++ b/src/xvmc/shader/vld/idct.g4i
@@ -0,0 +1,147 @@
+/*
+ * Copyright © 2009 Intel Corporation
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice (including the next
+ * paragraph) shall be included in all copies or substantial portions of the
+ * Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
+ * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+ * SOFTWARE.
+ *
+ * Author:
+ *    Zou Nan hai <nanhai.zou at intel.com>
+ *    Yan Li <li.l.yan at intel.com>
+ *    Liu Xi bin<xibin.liu at intel.com>
+ */
+/* GRF allocation:
+   g1~g30: constant buffer
+           g1~g2:intra IQ matrix in UB format
+           g3~g4:non intra IQ matrix in UB format
+           g5~g20:IDCT table
+   g56~g79:DCT data after IQ before idct
+   g83~g106: IDCT data after idct
+   g82:    thread payload backup
+   g125:   ip before idct
+*/
+IDCT_START:
+mov (1) g126.0<1>UD ip {align1};
+jmpi DO_IDCT;
+add (16) g32<1>D g32<8,8,1>D ROW_ADD {compr};
+add (16) g34<1>D g34<8,8,1>D ROW_ADD {compr};
+add (16) g36<1>D g36<8,8,1>D ROW_ADD {compr};
+add (16) g38<1>D g38<8,8,1>D ROW_ADD {compr};
+
+shr (16) g32<1>D g32<8,8,1>D ROW_SHIFT {compr};
+shr (16) g34<1>D g34<8,8,1>D ROW_SHIFT {compr};
+shr (16) g36<1>D g36<8,8,1>D ROW_SHIFT {compr};
+shr (16) g38<1>D g38<8,8,1>D ROW_SHIFT {compr};
+
+mov (16) g110.0<1>W g32<16,8,2>W {align1};
+mov (16) g111.0<1>W g34<16,8,2>W {align1};
+mov (16) g112.0<1>W g36<16,8,2>W {align1};
+mov (16) g113.0<1>W g38<16,8,2>W {align1};
+
+mov (1) g80.0<1>UD a0.0<1,1,1>UD {align1};  //save a0
+mov (1) a0.0<1>UD 0x0DB00DA0UD {align1};  //begin at g110.0, the output of idct_row.g4i
+mov (1) g126.0<1>UD ip {align1};
+jmpi DO_IDCT;
+
+add (16) g32<1>D g32<8,8,1>D COL_ADD {compr};
+add (16) g34<1>D g34<8,8,1>D COL_ADD {compr};
+add (16) g36<1>D g36<8,8,1>D COL_ADD {compr};
+add (16) g38<1>D g38<8,8,1>D COL_ADD {compr};
+
+shr (16) g32<1>D g32<8,8,1>D COL_SHIFT {compr};
+shr (16) g34<1>D g34<8,8,1>D COL_SHIFT {compr};
+shr (16) g36<1>D g36<8,8,1>D COL_SHIFT {compr};
+shr (16) g38<1>D g38<8,8,1>D COL_SHIFT {compr};
+
+mov (1) a0.0<1>UD g80.0<1,1,1>UD {align1};             //restore a0 
+add (1) ip g125.0<1,1,1>UD 0x20UD {align1};            //jump back
+
+DO_IDCT:
+add (1) a0.0<1>UD a0.0<1,1,1>UD 0x00200020UD {align1};           //increase the address 
+dp4 (16) g40<1>D g[a0.0]<8,8,1>W g5<8,8,1>D {align1 compr};
+dp4 (16) g42<1>D g[a0.0]<8,8,1>W g7<8,8,1>D {align1 compr};
+dp4 (16) g44<1>D g[a0.0]<8,8,1>W g9<8,8,1>D {align1 compr};
+dp4 (16) g46<1>D g[a0.0]<8,8,1>W g11<8,8,1>D {align1 compr};
+dp4 (16) g48<1>D g[a0.0]<8,8,1>W g13<8,8,1>D {align1 compr};
+dp4 (16) g50<1>D g[a0.0]<8,8,1>W g15<8,8,1>D {align1 compr};
+dp4 (16) g52<1>D g[a0.0]<8,8,1>W g17<8,8,1>D {align1 compr};
+dp4 (16) g54<1>D g[a0.0]<8,8,1>W g19<8,8,1>D {align1 compr};
+add (2) g32.0<1>D g40.0<8,1,8>D g40.16<8,1,8>D {align1};
+add (2) g33.0<1>D g42.0<8,1,8>D g42.16<8,1,8>D {align1};
+add (2) g34.0<1>D g44.0<8,1,8>D g44.16<8,1,8>D {align1};
+add (2) g35.0<1>D g46.0<8,1,8>D g46.16<8,1,8>D {align1};
+add (2) g36.0<1>D g48.0<8,1,8>D g48.16<8,1,8>D {align1};
+add (2) g37.0<1>D g50.0<8,1,8>D g50.16<8,1,8>D {align1};
+add (2) g38.0<1>D g52.0<8,1,8>D g52.16<8,1,8>D {align1};
+add (2) g39.0<1>D g54.0<8,1,8>D g54.16<8,1,8>D {align1};
+
+add (1) a0.0<1>UD a0.0<1,1,1>UD 0x00200020UD {align1};
+dp4 (16) g40<1>D g[a0.0]<8,8,1>W g5<8,8,1>D {align1 compr};
+dp4 (16) g42<1>D g[a0.0]<8,8,1>W g7<8,8,1>D {align1 compr};
+dp4 (16) g44<1>D g[a0.0]<8,8,1>W g9<8,8,1>D {align1 compr};
+dp4 (16) g46<1>D g[a0.0]<8,8,1>W g11<8,8,1>D {align1 compr};
+dp4 (16) g48<1>D g[a0.0]<8,8,1>W g13<8,8,1>D {align1 compr};
+dp4 (16) g50<1>D g[a0.0]<8,8,1>W g15<8,8,1>D {align1 compr};
+dp4 (16) g52<1>D g[a0.0]<8,8,1>W g17<8,8,1>D {align1 compr};
+dp4 (16) g54<1>D g[a0.0]<8,8,1>W g19<8,8,1>D {align1 compr};
+add (2) g32.8<1>D g40.0<8,1,8>D g40.16<8,1,8>D {align1};
+add (2) g33.8<1>D g42.0<8,1,8>D g42.16<8,1,8>D {align1};
+add (2) g34.8<1>D g44.0<8,1,8>D g44.16<8,1,8>D {align1};
+add (2) g35.8<1>D g46.0<8,1,8>D g46.16<8,1,8>D {align1};
+add (2) g36.8<1>D g48.0<8,1,8>D g48.16<8,1,8>D {align1};
+add (2) g37.8<1>D g50.0<8,1,8>D g50.16<8,1,8>D {align1};
+add (2) g38.8<1>D g52.0<8,1,8>D g52.16<8,1,8>D {align1};
+add (2) g39.8<1>D g54.0<8,1,8>D g54.16<8,1,8>D {align1};
+
+add (1) a0.0<1>UD a0.0<1,1,1>UD 0x00200020UD {align1};
+dp4 (16) g40<1>D g[a0.0]<8,8,1>W g5<8,8,1>D {align1 compr};
+dp4 (16) g42<1>D g[a0.0]<8,8,1>W g7<8,8,1>D {align1 compr};
+dp4 (16) g44<1>D g[a0.0]<8,8,1>W g9<8,8,1>D {align1 compr};
+dp4 (16) g46<1>D g[a0.0]<8,8,1>W g11<8,8,1>D {align1 compr};
+dp4 (16) g48<1>D g[a0.0]<8,8,1>W g13<8,8,1>D {align1 compr};
+dp4 (16) g50<1>D g[a0.0]<8,8,1>W g15<8,8,1>D {align1 compr};
+dp4 (16) g52<1>D g[a0.0]<8,8,1>W g17<8,8,1>D {align1 compr};
+dp4 (16) g54<1>D g[a0.0]<8,8,1>W g19<8,8,1>D {align1 compr};
+add (2) g32.16<1>D g40.0<8,1,8>D g40.16<8,1,8>D {align1};
+add (2) g33.16<1>D g42.0<8,1,8>D g42.16<8,1,8>D {align1};
+add (2) g34.16<1>D g44.0<8,1,8>D g44.16<8,1,8>D {align1};
+add (2) g35.16<1>D g46.0<8,1,8>D g46.16<8,1,8>D {align1};
+add (2) g36.16<1>D g48.0<8,1,8>D g48.16<8,1,8>D {align1};
+add (2) g37.16<1>D g50.0<8,1,8>D g50.16<8,1,8>D {align1};
+add (2) g38.16<1>D g52.0<8,1,8>D g52.16<8,1,8>D {align1};
+add (2) g39.16<1>D g54.0<8,1,8>D g54.16<8,1,8>D {align1};
+
+add (1) a0.0<1>UD a0.0<1,1,1>UD 0x00200020UD {align1};
+dp4 (16) g40<1>D g[a0.0]<8,8,1>W g5<8,8,1>D {align1 compr};
+dp4 (16) g42<1>D g[a0.0]<8,8,1>W g7<8,8,1>D {align1 compr};
+dp4 (16) g44<1>D g[a0.0]<8,8,1>W g9<8,8,1>D {align1 compr};
+dp4 (16) g46<1>D g[a0.0]<8,8,1>W g11<8,8,1>D {align1 compr};
+dp4 (16) g48<1>D g[a0.0]<8,8,1>W g13<8,8,1>D {align1 compr};
+dp4 (16) g50<1>D g[a0.0]<8,8,1>W g15<8,8,1>D {align1 compr};
+dp4 (16) g52<1>D g[a0.0]<8,8,1>W g17<8,8,1>D {align1 compr};
+dp4 (16) g54<1>D g[a0.0]<8,8,1>W g19<8,8,1>D {align1 compr};
+add (2) g32.24<1>D g40.0<8,1,8>D g40.16<8,1,8>D {align1};
+add (2) g33.24<1>D g42.0<8,1,8>D g42.16<8,1,8>D {align1};
+add (2) g34.24<1>D g44.0<8,1,8>D g44.16<8,1,8>D {align1};
+add (2) g35.24<1>D g46.0<8,1,8>D g46.16<8,1,8>D {align1};
+add (2) g36.24<1>D g48.0<8,1,8>D g48.16<8,1,8>D {align1};
+add (2) g37.24<1>D g50.0<8,1,8>D g50.16<8,1,8>D {align1};
+add (2) g38.24<1>D g52.0<8,1,8>D g52.16<8,1,8>D {align1};
+add (2) g39.24<1>D g54.0<8,1,8>D g54.16<8,1,8>D {align1};
+
+add (1) ip g126.0<1,1,1>UD 0x20UD {align1};            //jump back
diff --git a/src/xvmc/shader/vld/ipicture.g4a b/src/xvmc/shader/vld/ipicture.g4a
new file mode 100644
index 0000000..688cf94
--- /dev/null
+++ b/src/xvmc/shader/vld/ipicture.g4a
@@ -0,0 +1,209 @@
+/*
+ * Copyright © 2009 Intel Corporation
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice (including the next
+ * paragraph) shall be included in all copies or substantial portions of the
+ * Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
+ * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+ * SOFTWARE.
+ *
+ * Author:
+ *    Zou Nan hai <nanhai.zou at intel.com>
+ *    Yan Li <li.l.yan at intel.com>
+ *    Liu Xi bin<xibin.liu at intel.com>
+ */
+/*
+   GRF allocation:
+   g1~g30: constant buffer
+           g1~g2:intra IQ matrix
+           g3~g4:non intra IQ matrix
+           g5~g20:IDCT tab
+   g31:    read and write message descriptor
+   g32~g55:DCT data
+   g58~g81:reference data
+   g82:    thread payload 
+   g83~g106:IDCT data 
+*/
+mov (8) g82.0<1>UD g31.0<8,8,1>UD {align1};
+mov (2) g31.0<1>UD g82.12<2,2,1>UW {align1};
+
+include(`iq_intra.g4i')
+
+//defined for idct
+define(`ROW_SHIFT', `11UD') 
+define(`ROW_ADD', `0x400UD')          
+define(`COL_SHIFT', `20UD') 
+define(`COL_ADD', `0x80000UD')          
+
+mov (1) a0.0<1>UD 0x06F006E0UD {align1};      //0x06F006E0UD+0x00200020UD=0x07100700UD (g56.0 and g56.16)
+
+//Y0
+mov (1) g125.0<1>UD ip {align1};
+jmpi IDCT_START;
+add (8) g83.0<1>W g32.0<16,8,2>W 128UW {align1};
+add (8) g84.0<1>W g33.0<16,8,2>W 128UW {align1};
+add (8) g85.0<1>W g34.0<16,8,2>W 128UW {align1};
+add (8) g86.0<1>W g35.0<16,8,2>W 128UW {align1};
+add (8) g87.0<1>W g36.0<16,8,2>W 128UW {align1};
+add (8) g88.0<1>W g37.0<16,8,2>W 128UW {align1};
+add (8) g89.0<1>W g38.0<16,8,2>W 128UW {align1};
+add (8) g90.0<1>W g39.0<16,8,2>W 128UW {align1};
+
+//Y1
+mov (1) g125.0<1>UD ip {align1};
+jmpi IDCT_START;
+add (8) g83.16<1>W g32.0<16,8,2>W 128UW {align1};
+add (8) g84.16<1>W g33.0<16,8,2>W 128UW {align1};
+add (8) g85.16<1>W g34.0<16,8,2>W 128UW {align1};
+add (8) g86.16<1>W g35.0<16,8,2>W 128UW {align1};
+add (8) g87.16<1>W g36.0<16,8,2>W 128UW {align1};
+add (8) g88.16<1>W g37.0<16,8,2>W 128UW {align1};
+add (8) g89.16<1>W g38.0<16,8,2>W 128UW {align1};
+add (8) g90.16<1>W g39.0<16,8,2>W 128UW {align1};
+
+//Y2
+mov (1) g125.0<1>UD ip {align1};
+jmpi IDCT_START;
+add (8) g91.0<1>W g32.0<16,8,2>W 128UW {align1};
+add (8) g92.0<1>W g33.0<16,8,2>W 128UW {align1};
+add (8) g93.0<1>W g34.0<16,8,2>W 128UW {align1};
+add (8) g94.0<1>W g35.0<16,8,2>W 128UW {align1};
+add (8) g95.0<1>W g36.0<16,8,2>W 128UW {align1};
+add (8) g96.0<1>W g37.0<16,8,2>W 128UW {align1};
+add (8) g97.0<1>W g38.0<16,8,2>W 128UW {align1};
+add (8) g98.0<1>W g39.0<16,8,2>W 128UW {align1};
+
+//Y3
+mov (1) g125.0<1>UD ip {align1};
+jmpi IDCT_START;
+add (8) g91.16<1>W g32.0<16,8,2>W 128UW {align1};
+add (8) g92.16<1>W g33.0<16,8,2>W 128UW {align1};
+add (8) g93.16<1>W g34.0<16,8,2>W 128UW {align1};
+add (8) g94.16<1>W g35.0<16,8,2>W 128UW {align1};
+add (8) g95.16<1>W g36.0<16,8,2>W 128UW {align1};
+add (8) g96.16<1>W g37.0<16,8,2>W 128UW {align1};
+add (8) g97.16<1>W g38.0<16,8,2>W 128UW {align1};
+add (8) g98.16<1>W g39.0<16,8,2>W 128UW {align1};
+
+//U
+mov (1) g125.0<1>UD ip {align1};
+jmpi IDCT_START;
+add (16) g99.0<1>W g32.0<16,8,2>W 128UW {align1};
+add (16) g100.0<1>W g34.0<16,8,2>W 128UW {align1};
+add (16) g101.0<1>W g36.0<16,8,2>W 128UW {align1};
+add (16) g102.0<1>W g38.0<16,8,2>W 128UW {align1};
+
+//V
+mov (1) g125.0<1>UD ip {align1};
+jmpi IDCT_START;
+add (16) g103.0<1>W g32.0<16,8,2>W 128UW {align1};
+add (16) g104.0<1>W g34.0<16,8,2>W 128UW {align1};
+add (16) g105.0<1>W g36.0<16,8,2>W 128UW {align1};
+add (16) g106.0<1>W g38.0<16,8,2>W 128UW {align1};
+
+/******************* MC ************************/
+mov (1) g31.8<1>UD 0x00F000FUD {align1};
+mov.sat (16) g83.0<2>UB g83.0<16,16,1>W {align1};
+mov.sat (16) g84.0<2>UB g84.0<16,16,1>W {align1};
+mov.sat (16) g85.0<2>UB g85.0<16,16,1>W {align1};
+mov.sat (16) g86.0<2>UB g86.0<16,16,1>W {align1};
+mov.sat (16) g87.0<2>UB g87.0<16,16,1>W {align1};
+mov.sat (16) g88.0<2>UB g88.0<16,16,1>W {align1};
+mov.sat (16) g89.0<2>UB g89.0<16,16,1>W {align1};
+mov.sat (16) g90.0<2>UB g90.0<16,16,1>W {align1};
+mov.sat (16) g91.0<2>UB g91.0<16,16,1>W {align1};
+mov.sat (16) g92.0<2>UB g92.0<16,16,1>W {align1};
+mov.sat (16) g93.0<2>UB g93.0<16,16,1>W {align1};
+mov.sat (16) g94.0<2>UB g94.0<16,16,1>W {align1};
+mov.sat (16) g95.0<2>UB g95.0<16,16,1>W {align1};
+mov.sat (16) g96.0<2>UB g96.0<16,16,1>W {align1};
+mov.sat (16) g97.0<2>UB g97.0<16,16,1>W {align1};
+mov.sat (16) g98.0<2>UB g98.0<16,16,1>W {align1};
+
+and.nz (1) null g82.2<1,1,1>UW 0x20UW{align1};
+(f0) jmpi field_dct;
+
+mov (16) m1.0<1>UB  g83.0<16,16,2>UB {align1};
+mov (16) m1.16<1>UB g84.0<16,16,2>UB {align1};
+mov (16) m2.0<1>UB  g85.0<16,16,2>UB {align1};
+mov (16) m2.16<1>UB g86.0<16,16,2>UB {align1};
+mov (16) m3.0<1>UB  g87.0<16,16,2>UB {align1};
+mov (16) m3.16<1>UB g88.0<16,16,2>UB {align1};
+mov (16) m4.0<1>UB  g89.0<16,16,2>UB {align1};
+mov (16) m4.16<1>UB g90.0<16,16,2>UB {align1};
+mov (16) m5.0<1>UB  g91.0<16,16,2>UB {align1};
+mov (16) m5.16<1>UB g92.0<16,16,2>UB {align1};
+mov (16) m6.0<1>UB  g93.0<16,16,2>UB {align1};
+mov (16) m6.16<1>UB g94.0<16,16,2>UB {align1};
+mov (16) m7.0<1>UB  g95.0<16,16,2>UB {align1};
+mov (16) m7.16<1>UB g96.0<16,16,2>UB {align1};
+mov (16) m8.0<1>UB  g97.0<16,16,2>UB {align1};
+mov (16) m8.16<1>UB g98.0<16,16,2>UB {align1};
+jmpi write_back;
+
+field_dct:
+mov (16) m1.0<1>UB  g83.0<16,16,2>UB {align1};
+mov (16) m1.16<1>UB g91.0<16,16,2>UB {align1};
+mov (16) m2.0<1>UB  g84.0<16,16,2>UB {align1};
+mov (16) m2.16<1>UB g92.0<16,16,2>UB {align1};
+mov (16) m3.0<1>UB  g85.0<16,16,2>UB {align1};
+mov (16) m3.16<1>UB g93.0<16,16,2>UB {align1};
+mov (16) m4.0<1>UB  g86.0<16,16,2>UB {align1};
+mov (16) m4.16<1>UB g94.0<16,16,2>UB {align1};
+mov (16) m5.0<1>UB  g87.0<16,16,2>UB {align1};
+mov (16) m5.16<1>UB g95.0<16,16,2>UB {align1};
+mov (16) m6.0<1>UB  g88.0<16,16,2>UB {align1};
+mov (16) m6.16<1>UB g96.0<16,16,2>UB {align1};
+mov (16) m7.0<1>UB  g89.0<16,16,2>UB {align1};
+mov (16) m7.16<1>UB g97.0<16,16,2>UB {align1};
+mov (16) m8.0<1>UB  g90.0<16,16,2>UB {align1};
+mov (16) m8.16<1>UB g98.0<16,16,2>UB {align1};
+
+write_back:
+send (16) 0 acc0<1>UW g31<8,8,1>UW write(0,0,2,0) mlen 9 rlen 0 {align1};
+
+//U
+mov (1) g31.8<1>UD 0x0070007UD  { align1 };
+shr (2) g31.0<1>UD g82.12<2,2,1>UW 1D {align1};
+mov.sat (16) g99.0<2>UB g99.0<16,16,1>W {align1};
+mov.sat (16) g100.0<2>UB g100.0<16,16,1>W {align1};
+mov.sat (16) g101.0<2>UB g101.0<16,16,1>W {align1};
+mov.sat (16) g102.0<2>UB g102.0<16,16,1>W {align1};
+
+mov (16) m1.0<1>UB  g99.0<16,16,2>UB {align1};
+mov (16) m1.16<1>UB g100.0<16,16,2>UB {align1};
+mov (16) m2.0<1>UB  g101.0<16,16,2>UB {align1};
+mov (16) m2.16<1>UB g102.0<16,16,2>UB {align1};
+send (16) 0 acc0<1>UW g31<8,8,1>UW write(1, 0, 2, 0) mlen 3 rlen 0 { align1 };
+
+//V
+mov.sat (16) g103.0<2>UB g103.0<16,16,1>W {align1};
+mov.sat (16) g104.0<2>UB g104.0<16,16,1>W {align1};
+mov.sat (16) g105.0<2>UB g105.0<16,16,1>W {align1};
+mov.sat (16) g106.0<2>UB g106.0<16,16,1>W {align1};
+
+mov (16) m1.0<1>UB  g103.0<16,16,2>UB {align1};
+mov (16) m1.16<1>UB g104.0<16,16,2>UB {align1};
+mov (16) m2.0<1>UB  g105.0<16,16,2>UB {align1};
+mov (16) m2.16<1>UB g106.0<16,16,2>UB {align1};
+send (16) 0 acc0<1>UW g31<8,8,1>UW write(2, 0, 2, 0) mlen 3 rlen 0 { align1 };
+
+OUT:
+send (16) 0 acc0<1>UW g0<8,8,1>UW
+        thread_spawner(0, 0, 0) mlen 1 rlen 0 { align1 EOT};
+
+include(`do_iq_intra.g4i')
+include(`idct.g4i')
diff --git a/src/xvmc/shader/vld/ipicture.g4b b/src/xvmc/shader/vld/ipicture.g4b
new file mode 100644
index 0000000..4c1c8c4
--- /dev/null
+++ b/src/xvmc/shader/vld/ipicture.g4b
@@ -0,0 +1,313 @@
+   { 0x00600001, 0x2a400021, 0x008d03e0, 0x00000000 },
+   { 0x00200001, 0x23e00121, 0x00450a4c, 0x00000000 },
+   { 0x00000005, 0x2da02d29, 0x00210a48, 0x001f001f },
+   { 0x00000005, 0x2da42d29, 0x00210a48, 0x60006000 },
+   { 0x00000008, 0x2da42d29, 0x00210da4, 0x000d000d },
+   { 0x00000001, 0x2da60169, 0x00000000, 0x00080008 },
+   { 0x00000008, 0x2da42529, 0x00210da6, 0x00210da4 },
+   { 0x01000005, 0x20002d3c, 0x00210a48, 0x00200020 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x00000012 },
+   { 0x05000010, 0x20002d3c, 0x00210da0, 0x00090009 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x00000011 },
+   { 0x05000010, 0x20002d3c, 0x00210da0, 0x00110011 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x00000006 },
+   { 0x05000010, 0x20002d3c, 0x00210da0, 0x00190019 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x00000008 },
+   { 0x00000040, 0x2da03d29, 0x00210da0, 0xffe7ffe7 },
+   { 0x00000009, 0x2da02d29, 0x00210da0, 0x00030003 },
+   { 0x00000040, 0x2da02d29, 0x00210da0, 0x00400040 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000009 },
+   { 0x00000040, 0x2da03d29, 0x00210da0, 0xfff7fff7 },
+   { 0x00000009, 0x2da02d29, 0x00210da0, 0x00010001 },
+   { 0x00000040, 0x2da02d29, 0x00210da0, 0x000a000a },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000005 },
+   { 0x00000040, 0x2da03d29, 0x00210da0, 0xffefffef },
+   { 0x00000009, 0x2da02d29, 0x00210da0, 0x00020002 },
+   { 0x00000040, 0x2da02d29, 0x00210da0, 0x001c001c },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000001 },
+   { 0x00000009, 0x2da00d29, 0x00210da0, 0x00000001 },
+   { 0x00000001, 0x2dc00129, 0x00210da0, 0x00000000 },
+   { 0x00800001, 0x2e000229, 0x00b10020, 0x00000000 },
+   { 0x00800001, 0x2e200229, 0x00b10030, 0x00000000 },
+   { 0x00800001, 0x2e400229, 0x00b10040, 0x00000000 },
+   { 0x00800001, 0x2e600229, 0x00b10050, 0x00000000 },
+   { 0x00000001, 0x22000060, 0x00000000, 0x03f003e0 },
+   { 0x00000001, 0x2fa00001, 0x00001400, 0x00000000 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x000000a1 },
+   { 0x00800001, 0x270001ad, 0x00ae0e80, 0x00000000 },
+   { 0x00800001, 0x272001ad, 0x00ae0ec0, 0x00000000 },
+   { 0x00800001, 0x274001ad, 0x00ae0f00, 0x00000000 },
+   { 0x00800001, 0x276001ad, 0x00ae0f40, 0x00000000 },
+   { 0x00000001, 0x2fa00001, 0x00001400, 0x00000000 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x0000009b },
+   { 0x00800001, 0x278001ad, 0x00ae0e80, 0x00000000 },
+   { 0x00800001, 0x27a001ad, 0x00ae0ec0, 0x00000000 },
+   { 0x00800001, 0x27c001ad, 0x00ae0f00, 0x00000000 },
+   { 0x00800001, 0x27e001ad, 0x00ae0f40, 0x00000000 },
+   { 0x00000001, 0x2fa00001, 0x00001400, 0x00000000 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000095 },
+   { 0x00800001, 0x280001ad, 0x00ae0e80, 0x00000000 },
+   { 0x00800001, 0x282001ad, 0x00ae0ec0, 0x00000000 },
+   { 0x00800001, 0x284001ad, 0x00ae0f00, 0x00000000 },
+   { 0x00800001, 0x286001ad, 0x00ae0f40, 0x00000000 },
+   { 0x00000001, 0x2fa00001, 0x00001400, 0x00000000 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x0000008f },
+   { 0x00800001, 0x288001ad, 0x00ae0e80, 0x00000000 },
+   { 0x00800001, 0x28a001ad, 0x00ae0ec0, 0x00000000 },
+   { 0x00800001, 0x28c001ad, 0x00ae0f00, 0x00000000 },
+   { 0x00800001, 0x28e001ad, 0x00ae0f40, 0x00000000 },
+   { 0x00000001, 0x2fa00001, 0x00001400, 0x00000000 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000089 },
+   { 0x00800001, 0x290001ad, 0x00ae0e80, 0x00000000 },
+   { 0x00800001, 0x292001ad, 0x00ae0ec0, 0x00000000 },
+   { 0x00800001, 0x294001ad, 0x00ae0f00, 0x00000000 },
+   { 0x00800001, 0x296001ad, 0x00ae0f40, 0x00000000 },
+   { 0x00000001, 0x2fa00001, 0x00001400, 0x00000000 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000083 },
+   { 0x00800001, 0x298001ad, 0x00ae0e80, 0x00000000 },
+   { 0x00800001, 0x29a001ad, 0x00ae0ec0, 0x00000000 },
+   { 0x00800001, 0x29c001ad, 0x00ae0f00, 0x00000000 },
+   { 0x00800001, 0x29e001ad, 0x00ae0f40, 0x00000000 },
+   { 0x00000001, 0x22000060, 0x00000000, 0x06f006e0 },
+   { 0x00000001, 0x2fa00001, 0x00001400, 0x00000000 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x0000008f },
+   { 0x00600040, 0x2a602dad, 0x00ae0400, 0x00800080 },
+   { 0x00600040, 0x2a802dad, 0x00ae0420, 0x00800080 },
+   { 0x00600040, 0x2aa02dad, 0x00ae0440, 0x00800080 },
+   { 0x00600040, 0x2ac02dad, 0x00ae0460, 0x00800080 },
+   { 0x00600040, 0x2ae02dad, 0x00ae0480, 0x00800080 },
+   { 0x00600040, 0x2b002dad, 0x00ae04a0, 0x00800080 },
+   { 0x00600040, 0x2b202dad, 0x00ae04c0, 0x00800080 },
+   { 0x00600040, 0x2b402dad, 0x00ae04e0, 0x00800080 },
+   { 0x00000001, 0x2fa00001, 0x00001400, 0x00000000 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000085 },
+   { 0x00600040, 0x2a702dad, 0x00ae0400, 0x00800080 },
+   { 0x00600040, 0x2a902dad, 0x00ae0420, 0x00800080 },
+   { 0x00600040, 0x2ab02dad, 0x00ae0440, 0x00800080 },
+   { 0x00600040, 0x2ad02dad, 0x00ae0460, 0x00800080 },
+   { 0x00600040, 0x2af02dad, 0x00ae0480, 0x00800080 },
+   { 0x00600040, 0x2b102dad, 0x00ae04a0, 0x00800080 },
+   { 0x00600040, 0x2b302dad, 0x00ae04c0, 0x00800080 },
+   { 0x00600040, 0x2b502dad, 0x00ae04e0, 0x00800080 },
+   { 0x00000001, 0x2fa00001, 0x00001400, 0x00000000 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x0000007b },
+   { 0x00600040, 0x2b602dad, 0x00ae0400, 0x00800080 },
+   { 0x00600040, 0x2b802dad, 0x00ae0420, 0x00800080 },
+   { 0x00600040, 0x2ba02dad, 0x00ae0440, 0x00800080 },
+   { 0x00600040, 0x2bc02dad, 0x00ae0460, 0x00800080 },
+   { 0x00600040, 0x2be02dad, 0x00ae0480, 0x00800080 },
+   { 0x00600040, 0x2c002dad, 0x00ae04a0, 0x00800080 },
+   { 0x00600040, 0x2c202dad, 0x00ae04c0, 0x00800080 },
+   { 0x00600040, 0x2c402dad, 0x00ae04e0, 0x00800080 },
+   { 0x00000001, 0x2fa00001, 0x00001400, 0x00000000 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000071 },
+   { 0x00600040, 0x2b702dad, 0x00ae0400, 0x00800080 },
+   { 0x00600040, 0x2b902dad, 0x00ae0420, 0x00800080 },
+   { 0x00600040, 0x2bb02dad, 0x00ae0440, 0x00800080 },
+   { 0x00600040, 0x2bd02dad, 0x00ae0460, 0x00800080 },
+   { 0x00600040, 0x2bf02dad, 0x00ae0480, 0x00800080 },
+   { 0x00600040, 0x2c102dad, 0x00ae04a0, 0x00800080 },
+   { 0x00600040, 0x2c302dad, 0x00ae04c0, 0x00800080 },
+   { 0x00600040, 0x2c502dad, 0x00ae04e0, 0x00800080 },
+   { 0x00000001, 0x2fa00001, 0x00001400, 0x00000000 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000067 },
+   { 0x00800040, 0x2c602dad, 0x00ae0400, 0x00800080 },
+   { 0x00800040, 0x2c802dad, 0x00ae0440, 0x00800080 },
+   { 0x00800040, 0x2ca02dad, 0x00ae0480, 0x00800080 },
+   { 0x00800040, 0x2cc02dad, 0x00ae04c0, 0x00800080 },
+   { 0x00000001, 0x2fa00001, 0x00001400, 0x00000000 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000061 },
+   { 0x00800040, 0x2ce02dad, 0x00ae0400, 0x00800080 },
+   { 0x00800040, 0x2d002dad, 0x00ae0440, 0x00800080 },
+   { 0x00800040, 0x2d202dad, 0x00ae0480, 0x00800080 },
+   { 0x00800040, 0x2d402dad, 0x00ae04c0, 0x00800080 },
+   { 0x00000001, 0x23e80061, 0x00000000, 0x000f000f },
+   { 0x80800001, 0x4a6001b1, 0x00b10a60, 0x00000000 },
+   { 0x80800001, 0x4a8001b1, 0x00b10a80, 0x00000000 },
+   { 0x80800001, 0x4aa001b1, 0x00b10aa0, 0x00000000 },
+   { 0x80800001, 0x4ac001b1, 0x00b10ac0, 0x00000000 },
+   { 0x80800001, 0x4ae001b1, 0x00b10ae0, 0x00000000 },
+   { 0x80800001, 0x4b0001b1, 0x00b10b00, 0x00000000 },
+   { 0x80800001, 0x4b2001b1, 0x00b10b20, 0x00000000 },
+   { 0x80800001, 0x4b4001b1, 0x00b10b40, 0x00000000 },
+   { 0x80800001, 0x4b6001b1, 0x00b10b60, 0x00000000 },
+   { 0x80800001, 0x4b8001b1, 0x00b10b80, 0x00000000 },
+   { 0x80800001, 0x4ba001b1, 0x00b10ba0, 0x00000000 },
+   { 0x80800001, 0x4bc001b1, 0x00b10bc0, 0x00000000 },
+   { 0x80800001, 0x4be001b1, 0x00b10be0, 0x00000000 },
+   { 0x80800001, 0x4c0001b1, 0x00b10c00, 0x00000000 },
+   { 0x80800001, 0x4c2001b1, 0x00b10c20, 0x00000000 },
+   { 0x80800001, 0x4c4001b1, 0x00b10c40, 0x00000000 },
+   { 0x02000005, 0x20002d3c, 0x00210a42, 0x00200020 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x00000011 },
+   { 0x00800001, 0x20200232, 0x00b20a60, 0x00000000 },
+   { 0x00800001, 0x20300232, 0x00b20a80, 0x00000000 },
+   { 0x00800001, 0x20400232, 0x00b20aa0, 0x00000000 },
+   { 0x00800001, 0x20500232, 0x00b20ac0, 0x00000000 },
+   { 0x00800001, 0x20600232, 0x00b20ae0, 0x00000000 },
+   { 0x00800001, 0x20700232, 0x00b20b00, 0x00000000 },
+   { 0x00800001, 0x20800232, 0x00b20b20, 0x00000000 },
+   { 0x00800001, 0x20900232, 0x00b20b40, 0x00000000 },
+   { 0x00800001, 0x20a00232, 0x00b20b60, 0x00000000 },
+   { 0x00800001, 0x20b00232, 0x00b20b80, 0x00000000 },
+   { 0x00800001, 0x20c00232, 0x00b20ba0, 0x00000000 },
+   { 0x00800001, 0x20d00232, 0x00b20bc0, 0x00000000 },
+   { 0x00800001, 0x20e00232, 0x00b20be0, 0x00000000 },
+   { 0x00800001, 0x20f00232, 0x00b20c00, 0x00000000 },
+   { 0x00800001, 0x21000232, 0x00b20c20, 0x00000000 },
+   { 0x00800001, 0x21100232, 0x00b20c40, 0x00000000 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000010 },
+   { 0x00800001, 0x20200232, 0x00b20a60, 0x00000000 },
+   { 0x00800001, 0x20300232, 0x00b20b60, 0x00000000 },
+   { 0x00800001, 0x20400232, 0x00b20a80, 0x00000000 },
+   { 0x00800001, 0x20500232, 0x00b20b80, 0x00000000 },
+   { 0x00800001, 0x20600232, 0x00b20aa0, 0x00000000 },
+   { 0x00800001, 0x20700232, 0x00b20ba0, 0x00000000 },
+   { 0x00800001, 0x20800232, 0x00b20ac0, 0x00000000 },
+   { 0x00800001, 0x20900232, 0x00b20bc0, 0x00000000 },
+   { 0x00800001, 0x20a00232, 0x00b20ae0, 0x00000000 },
+   { 0x00800001, 0x20b00232, 0x00b20be0, 0x00000000 },
+   { 0x00800001, 0x20c00232, 0x00b20b00, 0x00000000 },
+   { 0x00800001, 0x20d00232, 0x00b20c00, 0x00000000 },
+   { 0x00800001, 0x20e00232, 0x00b20b20, 0x00000000 },
+   { 0x00800001, 0x20f00232, 0x00b20c20, 0x00000000 },
+   { 0x00800001, 0x21000232, 0x00b20b40, 0x00000000 },
+   { 0x00800001, 0x21100232, 0x00b20c40, 0x00000000 },
+   { 0x00800031, 0x24001d28, 0x008d03e0, 0x05902000 },
+   { 0x00000001, 0x23e80061, 0x00000000, 0x00070007 },
+   { 0x00200008, 0x23e01d21, 0x00450a4c, 0x00000001 },
+   { 0x80800001, 0x4c6001b1, 0x00b10c60, 0x00000000 },
+   { 0x80800001, 0x4c8001b1, 0x00b10c80, 0x00000000 },
+   { 0x80800001, 0x4ca001b1, 0x00b10ca0, 0x00000000 },
+   { 0x80800001, 0x4cc001b1, 0x00b10cc0, 0x00000000 },
+   { 0x00800001, 0x20200232, 0x00b20c60, 0x00000000 },
+   { 0x00800001, 0x20300232, 0x00b20c80, 0x00000000 },
+   { 0x00800001, 0x20400232, 0x00b20ca0, 0x00000000 },
+   { 0x00800001, 0x20500232, 0x00b20cc0, 0x00000000 },
+   { 0x00800031, 0x24001d28, 0x008d03e0, 0x05302001 },
+   { 0x80800001, 0x4ce001b1, 0x00b10ce0, 0x00000000 },
+   { 0x80800001, 0x4d0001b1, 0x00b10d00, 0x00000000 },
+   { 0x80800001, 0x4d2001b1, 0x00b10d20, 0x00000000 },
+   { 0x80800001, 0x4d4001b1, 0x00b10d40, 0x00000000 },
+   { 0x00800001, 0x20200232, 0x00b20ce0, 0x00000000 },
+   { 0x00800001, 0x20300232, 0x00b20d00, 0x00000000 },
+   { 0x00800001, 0x20400232, 0x00b20d20, 0x00000000 },
+   { 0x00800001, 0x20500232, 0x00b20d40, 0x00000000 },
+   { 0x00800031, 0x24001d28, 0x008d03e0, 0x05302002 },
+   { 0x00800031, 0x24001d28, 0x008d0000, 0x87100000 },
+   { 0x00000040, 0x22000c00, 0x00210200, 0x00200020 },
+   { 0x00000001, 0x2de001ad, 0x00218000, 0x00000000 },
+   { 0x00802041, 0x2e8025a5, 0x008d8000, 0x008d0e00 },
+   { 0x00802041, 0x2e8024a5, 0x008d0e80, 0x008c0da0 },
+   { 0x0080200c, 0x2e802ca5, 0x008d0e80, 0x00040004 },
+   { 0x00000041, 0x2e8025a5, 0x00210de0, 0x00210da4 },
+   { 0x00000040, 0x22000c00, 0x00210200, 0x00200020 },
+   { 0x00802041, 0x2ec025a5, 0x008d8000, 0x008d0e20 },
+   { 0x00802041, 0x2ec024a5, 0x008d0ec0, 0x008c0da0 },
+   { 0x0080200c, 0x2ec02ca5, 0x008d0ec0, 0x00040004 },
+   { 0x00000040, 0x22000c00, 0x00210200, 0x00200020 },
+   { 0x00802041, 0x2f0025a5, 0x008d8000, 0x008d0e40 },
+   { 0x00802041, 0x2f0024a5, 0x008d0f00, 0x008c0da0 },
+   { 0x0080200c, 0x2f002ca5, 0x008d0f00, 0x00040004 },
+   { 0x00000040, 0x22000c00, 0x00210200, 0x00200020 },
+   { 0x00802041, 0x2f4025a5, 0x008d8000, 0x008d0e60 },
+   { 0x00802041, 0x2f4024a5, 0x008d0f40, 0x008c0da0 },
+   { 0x0080200c, 0x2f402ca5, 0x008d0f40, 0x00040004 },
+   { 0x00000040, 0x34000c20, 0x00210fa0, 0x00000020 },
+   { 0x00000001, 0x2fc00001, 0x00001400, 0x00000000 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x0000001a },
+   { 0x00802040, 0x24000ca5, 0x008d0400, 0x00000400 },
+   { 0x00802040, 0x24400ca5, 0x008d0440, 0x00000400 },
+   { 0x00802040, 0x24800ca5, 0x008d0480, 0x00000400 },
+   { 0x00802040, 0x24c00ca5, 0x008d04c0, 0x00000400 },
+   { 0x00802008, 0x24000ca5, 0x008d0400, 0x0000000b },
+   { 0x00802008, 0x24400ca5, 0x008d0440, 0x0000000b },
+   { 0x00802008, 0x24800ca5, 0x008d0480, 0x0000000b },
+   { 0x00802008, 0x24c00ca5, 0x008d04c0, 0x0000000b },
+   { 0x00800001, 0x2dc001ad, 0x00ae0400, 0x00000000 },
+   { 0x00800001, 0x2de001ad, 0x00ae0440, 0x00000000 },
+   { 0x00800001, 0x2e0001ad, 0x00ae0480, 0x00000000 },
+   { 0x00800001, 0x2e2001ad, 0x00ae04c0, 0x00000000 },
+   { 0x00000001, 0x2a000001, 0x00210200, 0x00000000 },
+   { 0x00000001, 0x22000060, 0x00000000, 0x0db00da0 },
+   { 0x00000001, 0x2fc00001, 0x00001400, 0x00000000 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x0000000a },
+   { 0x00802040, 0x24000ca5, 0x008d0400, 0x00080000 },
+   { 0x00802040, 0x24400ca5, 0x008d0440, 0x00080000 },
+   { 0x00802040, 0x24800ca5, 0x008d0480, 0x00080000 },
+   { 0x00802040, 0x24c00ca5, 0x008d04c0, 0x00080000 },
+   { 0x00802008, 0x24000ca5, 0x008d0400, 0x00000014 },
+   { 0x00802008, 0x24400ca5, 0x008d0440, 0x00000014 },
+   { 0x00802008, 0x24800ca5, 0x008d0480, 0x00000014 },
+   { 0x00802008, 0x24c00ca5, 0x008d04c0, 0x00000014 },
+   { 0x00000001, 0x22000020, 0x00210a00, 0x00000000 },
+   { 0x00000040, 0x34000c20, 0x00210fa0, 0x00000020 },
+   { 0x00000040, 0x22000c00, 0x00210200, 0x00200020 },
+   { 0x00802054, 0x250015a5, 0x008d8000, 0x008d00a0 },
+   { 0x00802054, 0x254015a5, 0x008d8000, 0x008d00e0 },
+   { 0x00802054, 0x258015a5, 0x008d8000, 0x008d0120 },
+   { 0x00802054, 0x25c015a5, 0x008d8000, 0x008d0160 },
+   { 0x00802054, 0x260015a5, 0x008d8000, 0x008d01a0 },
+   { 0x00802054, 0x264015a5, 0x008d8000, 0x008d01e0 },
+   { 0x00802054, 0x268015a5, 0x008d8000, 0x008d0220 },
+   { 0x00802054, 0x26c015a5, 0x008d8000, 0x008d0260 },
+   { 0x00200040, 0x240014a5, 0x00800500, 0x00800510 },
+   { 0x00200040, 0x242014a5, 0x00800540, 0x00800550 },
+   { 0x00200040, 0x244014a5, 0x00800580, 0x00800590 },
+   { 0x00200040, 0x246014a5, 0x008005c0, 0x008005d0 },
+   { 0x00200040, 0x248014a5, 0x00800600, 0x00800610 },
+   { 0x00200040, 0x24a014a5, 0x00800640, 0x00800650 },
+   { 0x00200040, 0x24c014a5, 0x00800680, 0x00800690 },
+   { 0x00200040, 0x24e014a5, 0x008006c0, 0x008006d0 },
+   { 0x00000040, 0x22000c00, 0x00210200, 0x00200020 },
+   { 0x00802054, 0x250015a5, 0x008d8000, 0x008d00a0 },
+   { 0x00802054, 0x254015a5, 0x008d8000, 0x008d00e0 },
+   { 0x00802054, 0x258015a5, 0x008d8000, 0x008d0120 },
+   { 0x00802054, 0x25c015a5, 0x008d8000, 0x008d0160 },
+   { 0x00802054, 0x260015a5, 0x008d8000, 0x008d01a0 },
+   { 0x00802054, 0x264015a5, 0x008d8000, 0x008d01e0 },
+   { 0x00802054, 0x268015a5, 0x008d8000, 0x008d0220 },
+   { 0x00802054, 0x26c015a5, 0x008d8000, 0x008d0260 },
+   { 0x00200040, 0x240814a5, 0x00800500, 0x00800510 },
+   { 0x00200040, 0x242814a5, 0x00800540, 0x00800550 },
+   { 0x00200040, 0x244814a5, 0x00800580, 0x00800590 },
+   { 0x00200040, 0x246814a5, 0x008005c0, 0x008005d0 },
+   { 0x00200040, 0x248814a5, 0x00800600, 0x00800610 },
+   { 0x00200040, 0x24a814a5, 0x00800640, 0x00800650 },
+   { 0x00200040, 0x24c814a5, 0x00800680, 0x00800690 },
+   { 0x00200040, 0x24e814a5, 0x008006c0, 0x008006d0 },
+   { 0x00000040, 0x22000c00, 0x00210200, 0x00200020 },
+   { 0x00802054, 0x250015a5, 0x008d8000, 0x008d00a0 },
+   { 0x00802054, 0x254015a5, 0x008d8000, 0x008d00e0 },
+   { 0x00802054, 0x258015a5, 0x008d8000, 0x008d0120 },
+   { 0x00802054, 0x25c015a5, 0x008d8000, 0x008d0160 },
+   { 0x00802054, 0x260015a5, 0x008d8000, 0x008d01a0 },
+   { 0x00802054, 0x264015a5, 0x008d8000, 0x008d01e0 },
+   { 0x00802054, 0x268015a5, 0x008d8000, 0x008d0220 },
+   { 0x00802054, 0x26c015a5, 0x008d8000, 0x008d0260 },
+   { 0x00200040, 0x241014a5, 0x00800500, 0x00800510 },
+   { 0x00200040, 0x243014a5, 0x00800540, 0x00800550 },
+   { 0x00200040, 0x245014a5, 0x00800580, 0x00800590 },
+   { 0x00200040, 0x247014a5, 0x008005c0, 0x008005d0 },
+   { 0x00200040, 0x249014a5, 0x00800600, 0x00800610 },
+   { 0x00200040, 0x24b014a5, 0x00800640, 0x00800650 },
+   { 0x00200040, 0x24d014a5, 0x00800680, 0x00800690 },
+   { 0x00200040, 0x24f014a5, 0x008006c0, 0x008006d0 },
+   { 0x00000040, 0x22000c00, 0x00210200, 0x00200020 },
+   { 0x00802054, 0x250015a5, 0x008d8000, 0x008d00a0 },
+   { 0x00802054, 0x254015a5, 0x008d8000, 0x008d00e0 },
+   { 0x00802054, 0x258015a5, 0x008d8000, 0x008d0120 },
+   { 0x00802054, 0x25c015a5, 0x008d8000, 0x008d0160 },
+   { 0x00802054, 0x260015a5, 0x008d8000, 0x008d01a0 },
+   { 0x00802054, 0x264015a5, 0x008d8000, 0x008d01e0 },
+   { 0x00802054, 0x268015a5, 0x008d8000, 0x008d0220 },
+   { 0x00802054, 0x26c015a5, 0x008d8000, 0x008d0260 },
+   { 0x00200040, 0x241814a5, 0x00800500, 0x00800510 },
+   { 0x00200040, 0x243814a5, 0x00800540, 0x00800550 },
+   { 0x00200040, 0x245814a5, 0x00800580, 0x00800590 },
+   { 0x00200040, 0x247814a5, 0x008005c0, 0x008005d0 },
+   { 0x00200040, 0x249814a5, 0x00800600, 0x00800610 },
+   { 0x00200040, 0x24b814a5, 0x00800640, 0x00800650 },
+   { 0x00200040, 0x24d814a5, 0x00800680, 0x00800690 },
+   { 0x00200040, 0x24f814a5, 0x008006c0, 0x008006d0 },
+   { 0x00000040, 0x34000c20, 0x00210fc0, 0x00000020 },
diff --git a/src/xvmc/shader/vld/iq_intra.g4i b/src/xvmc/shader/vld/iq_intra.g4i
new file mode 100644
index 0000000..b014361
--- /dev/null
+++ b/src/xvmc/shader/vld/iq_intra.g4i
@@ -0,0 +1,131 @@
+/*
+ * Copyright © 2009 Intel Corporation
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice (including the next
+ * paragraph) shall be included in all copies or substantial portions of the
+ * Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
+ * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+ * SOFTWARE.
+ *
+ * Author:
+ *    Zou Nan hai <nanhai.zou at intel.com>
+ *    Yan Li <li.l.yan at intel.com>
+ *    Liu Xi bin<xibin.liu at intel.com>
+ */
+/* GRF allocation:
+   g1~g30: constant buffer
+           g1~g2:intra IQ matrix in UB format
+           g3~g4:non intra IQ matrix in UB format
+           g5~g20:IDCT table
+   g32~g55:DCT data before IQ
+   g56~g79:DCT data after IQ
+   g82:    thread payload backup
+   g109:   g109.0:q_scale_code, g109.4:intra_dc_mult, 
+   g110:   q_scale_code
+   g111:   intra DC coefficient 
+   g112~g115: intra IQ matrix in UW format (in order to use instruction compress), copys from g1~g2
+   g125:   ip before jump
+*/
+and (1) g109.0<1>UW g82.8<1,1,1>UW 0x1fUW {align1};    //q_scale_code
+
+and (1) g109.4<1>UW g82.8<1,1,1>UW 0x6000UW {align1};   //intra_dc_presion
+shr (1) g109.4<1>UW g109.4<1,1,1>UW 13UW {align1};
+mov (1) g109.6<1>UW 0x8UW {align1};
+shr (1) g109.4<1>UW g109.6<1,1,1>UW g109.4<1,1,1>UW {align1};  //intra_dc_mult
+ 
+and.z (1) null g82.8<1,1,1>UW 0x20UW {align1};   //if(q_scale_type==0) q_scale=q_scale_code*2;
+(f0) jmpi Q_SCALE_TYPE_0;
+
+cmp.l (1) null g109.0<1,1,1>UW 9UW {align1};      //if(q_scale_type!=0) calculate q_scale
+(f0) jmpi DO_IQ;
+cmp.l (1) null g109.0<1,1,1>UW 17UW {align1};
+(f0) jmpi RANG_9_16;
+cmp.l (1) null g109.0<1,1,1>UW 25UW {align1};
+(f0) jmpi RANG_17_24;
+
+RANG_25_31:
+add (1) g109.0<1>UW g109.0<1,1,1>UW -25W {align1};
+shl (1) g109.0<1>UW g109.0<1,1,1>UW 3UW {align1};
+add (1) g109.0<1>UW g109.0<1,1,1>UW 64UW {align1};
+jmpi DO_IQ;
+
+RANG_9_16:
+add (1) g109.0<1>UW g109.0<1,1,1>UW -9W {align1};
+shl (1) g109.0<1>UW g109.0<1,1,1>UW 1UW {align1};
+add (1) g109.0<1>UW g109.0<1,1,1>UW 10UW {align1};
+jmpi DO_IQ;
+
+RANG_17_24:
+add (1) g109.0<1>UW g109.0<1,1,1>UW -17W {align1};
+shl (1) g109.0<1>UW g109.0<1,1,1>UW 2UW {align1};
+add (1) g109.0<1>UW g109.0<1,1,1>UW 28UW {align1};
+jmpi DO_IQ;
+
+Q_SCALE_TYPE_0:
+shl (1) g109.0<1>UW g109.0<1,1,1>UW 1UD {align1};
+
+DO_IQ:
+mov (1) g110.0<1>UW g109.0<1,1,1>UW {align1};
+
+mov (16) g112.0<1>UW g1.0<16,16,1>UB {align1};
+mov (16) g113.0<1>UW g1.16<16,16,1>UB {align1};
+mov (16) g114.0<1>UW g2.0<16,16,1>UB {align1};
+mov (16) g115.0<1>UW g2.16<16,16,1>UB {align1};
+
+mov (1) a0.0<1>UD 0x03F003E0UD {align1};
+
+mov (1) g125.0<1>UD ip {align1};
+jmpi DO_IQ_INTRA;
+mov (16) g56.0<1>W g116.0<16,8,2>W {align1};
+mov (16) g57.0<1>W g118.0<16,8,2>W {align1};
+mov (16) g58.0<1>W g120.0<16,8,2>W {align1};
+mov (16) g59.0<1>W g122.0<16,8,2>W {align1};
+
+mov (1) g125.0<1>UD ip {align1};
+jmpi DO_IQ_INTRA;
+mov (16) g60.0<1>W g116.0<16,8,2>W {align1};
+mov (16) g61.0<1>W g118.0<16,8,2>W {align1};
+mov (16) g62.0<1>W g120.0<16,8,2>W {align1};
+mov (16) g63.0<1>W g122.0<16,8,2>W {align1};
+
+mov (1) g125.0<1>UD ip {align1};
+jmpi DO_IQ_INTRA;
+mov (16) g64.0<1>W g116.0<16,8,2>W {align1};
+mov (16) g65.0<1>W g118.0<16,8,2>W {align1};
+mov (16) g66.0<1>W g120.0<16,8,2>W {align1};
+mov (16) g67.0<1>W g122.0<16,8,2>W {align1};
+
+mov (1) g125.0<1>UD ip {align1};
+jmpi DO_IQ_INTRA;
+mov (16) g68.0<1>W g116.0<16,8,2>W {align1};
+mov (16) g69.0<1>W g118.0<16,8,2>W {align1};
+mov (16) g70.0<1>W g120.0<16,8,2>W {align1};
+mov (16) g71.0<1>W g122.0<16,8,2>W {align1};
+
+mov (1) g125.0<1>UD ip {align1};
+jmpi DO_IQ_INTRA;
+mov (16) g72.0<1>W g116.0<16,8,2>W {align1};
+mov (16) g73.0<1>W g118.0<16,8,2>W {align1};
+mov (16) g74.0<1>W g120.0<16,8,2>W {align1};
+mov (16) g75.0<1>W g122.0<16,8,2>W {align1};
+
+mov (1) g125.0<1>UD ip {align1};
+jmpi DO_IQ_INTRA;
+mov (16) g76.0<1>W g116.0<16,8,2>W {align1};
+mov (16) g77.0<1>W g118.0<16,8,2>W {align1};
+mov (16) g78.0<1>W g120.0<16,8,2>W {align1};
+mov (16) g79.0<1>W g122.0<16,8,2>W {align1};
+
diff --git a/src/xvmc/shader/vld/iq_non_intra.g4i b/src/xvmc/shader/vld/iq_non_intra.g4i
new file mode 100644
index 0000000..03c09aa
--- /dev/null
+++ b/src/xvmc/shader/vld/iq_non_intra.g4i
@@ -0,0 +1,150 @@
+/*
+ * Copyright © 2009 Intel Corporation
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice (including the next
+ * paragraph) shall be included in all copies or substantial portions of the
+ * Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
+ * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+ * SOFTWARE.
+ *
+ * Author:
+ *    Zou Nan hai <nanhai.zou at intel.com>
+ *    Yan Li <li.l.yan at intel.com>
+ *    Liu Xi bin<xibin.liu at intel.com>
+ */
+/* GRF allocation:
+   g1~g30: constant buffer
+           g1~g2:intra IQ matrix in UB format
+           g3~g4:non intra IQ matrix in UB format
+           g5~g20:IDCT table
+   g32~g55:DCT data before IQ
+   g56~g79:DCT data after IQ
+   g82:    thread payload backup
+   g109:   q_scale_code
+   g110:   q_scale_code
+   g112~g115: non intra IQ matrix in UW format (in order to use instruction compress), copys from g3~g4
+   g125:   ip before jump
+*/
+and (1) g109.0<1>UW g82.8<1,1,1>UW 0x1fUW {align1}; //q_scale_code
+
+and.z (1) null g82.8<1,1,1>UW 0x20UW {align1};   //if(q_scale_type==0) q_scale=q_scale_code*2;
+(f0) jmpi Q_SCALE_TYPE_0;
+
+cmp.l (1) null g109.0<1,1,1>UW 9UW {align1};      //if(q_scale_type!=0) calculate q_scale
+(f0) jmpi DO_IQ;
+cmp.l (1) null g109.0<1,1,1>UW 17UW {align1};
+(f0) jmpi RANG_9_16;
+cmp.l (1) null g109.0<1,1,1>UW 25UW {align1};
+(f0) jmpi RANG_17_24;
+
+RANG_25_31:
+add (1) g109.0<1>UW g109.0<1,1,1>UW -25W {align1};
+shl (1) g109.0<1>UW g109.0<1,1,1>UW 3UW {align1};
+add (1) g109.0<1>UW g109.0<1,1,1>UW 64UW {align1};
+jmpi DO_IQ;
+
+RANG_9_16:
+add (1) g109.0<1>UW g109.0<1,1,1>UW -9W {align1};
+shl (1) g109.0<1>UW g109.0<1,1,1>UW 1UW {align1};
+add (1) g109.0<1>UW g109.0<1,1,1>UW 10UW {align1};
+jmpi DO_IQ;
+
+RANG_17_24:
+add (1) g109.0<1>UW g109.0<1,1,1>UW -17W {align1};
+shl (1) g109.0<1>UW g109.0<1,1,1>UW 2UW {align1};
+add (1) g109.0<1>UW g109.0<1,1,1>UW 28UW {align1};
+jmpi DO_IQ;
+
+Q_SCALE_TYPE_0:
+shl (1) g109.0<1>UW g109.0<1,1,1>UW 1UD {align1};
+
+DO_IQ:
+mov (1) g110.0<1>UW g109.0<1,1,1>UW {align1};
+
+mov (16) g112.0<1>UW g3.0<16,16,1>UB {align1};
+mov (16) g113.0<1>UW g3.16<16,16,1>UB {align1};
+mov (16) g114.0<1>UW g4.0<16,16,1>UB {align1};
+mov (16) g115.0<1>UW g4.16<16,16,1>UB {align1};
+
+mov (1) a0.0<1>UD 0x03F003E0UD {align1};
+
+//Y0
+iq_non_intra_y0:
+and.z (1) null g82.8<1,1,1>UW 0x800UW {align1};
+(f0) jmpi iq_non_intra_y1;
+mov (1) g125.0<1>UD ip {align1};
+jmpi DO_IQ_NON_INTRA;
+mov (16) g56.0<1>W g116.0<16,8,2>W {align1};
+mov (16) g57.0<1>W g118.0<16,8,2>W {align1};
+mov (16) g58.0<1>W g120.0<16,8,2>W {align1};
+mov (16) g59.0<1>W g122.0<16,8,2>W {align1};
+
+//Y1
+iq_non_intra_y1:
+and.z (1) null g82.8<1,1,1>UW 0x400UW {align1};
+(f0) jmpi iq_non_intra_y2;
+mov (1) g125.0<1>UD ip {align1};
+jmpi DO_IQ_NON_INTRA;
+mov (16) g60.0<1>W g116.0<16,8,2>W {align1};
+mov (16) g61.0<1>W g118.0<16,8,2>W {align1};
+mov (16) g62.0<1>W g120.0<16,8,2>W {align1};
+mov (16) g63.0<1>W g122.0<16,8,2>W {align1};
+
+//Y2
+iq_non_intra_y2:
+and.z (1) null g82.8<1,1,1>UW 0x200UW {align1};
+(f0) jmpi iq_non_intra_y3;
+mov (1) g125.0<1>UD ip {align1};
+jmpi DO_IQ_NON_INTRA;
+mov (16) g64.0<1>W g116.0<16,8,2>W {align1};
+mov (16) g65.0<1>W g118.0<16,8,2>W {align1};
+mov (16) g66.0<1>W g120.0<16,8,2>W {align1};
+mov (16) g67.0<1>W g122.0<16,8,2>W {align1};
+
+//Y3
+iq_non_intra_y3:
+and.z (1) null g82.8<1,1,1>UW 0x100UW {align1};
+(f0) jmpi iq_non_intra_u;
+mov (1) g125.0<1>UD ip {align1};
+jmpi DO_IQ_NON_INTRA;
+mov (16) g68.0<1>W g116.0<16,8,2>W {align1};
+mov (16) g69.0<1>W g118.0<16,8,2>W {align1};
+mov (16) g70.0<1>W g120.0<16,8,2>W {align1};
+mov (16) g71.0<1>W g122.0<16,8,2>W {align1};
+
+//U
+iq_non_intra_u:
+and.z (1) null g82.8<1,1,1>UW 0x80UW {align1};
+(f0) jmpi iq_non_intra_v;
+mov (1) g125.0<1>UD ip {align1};
+jmpi DO_IQ_NON_INTRA;
+mov (16) g72.0<1>W g116.0<16,8,2>W {align1};
+mov (16) g73.0<1>W g118.0<16,8,2>W {align1};
+mov (16) g74.0<1>W g120.0<16,8,2>W {align1};
+mov (16) g75.0<1>W g122.0<16,8,2>W {align1};
+
+//V
+iq_non_intra_v:
+and.z (1) null g82.8<1,1,1>UW 0x40UW {align1};
+(f0) jmpi iq_non_intra_end;
+mov (1) g125.0<1>UD ip {align1};
+jmpi DO_IQ_NON_INTRA;
+mov (16) g76.0<1>W g116.0<16,8,2>W {align1};
+mov (16) g77.0<1>W g118.0<16,8,2>W {align1};
+mov (16) g78.0<1>W g120.0<16,8,2>W {align1};
+mov (16) g79.0<1>W g122.0<16,8,2>W {align1};
+
+iq_non_intra_end:
diff --git a/src/xvmc/shader/vld/lib.g4a b/src/xvmc/shader/vld/lib.g4a
new file mode 100644
index 0000000..567caaf
--- /dev/null
+++ b/src/xvmc/shader/vld/lib.g4a
@@ -0,0 +1,190 @@
+/*
+ * Copyright © 2009 Intel Corporation
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice (including the next
+ * paragraph) shall be included in all copies or substantial portions of the
+ * Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
+ * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+ * SOFTWARE.
+ *
+ * Author:
+ *    Zou Nan hai <nanhai.zou at intel.com>
+ *    Yan Li <li.l.yan at intel.com>
+ *    Liu Xi bin<xibin.liu at intel.com>
+ */
+/* GRF allocation:
+   g1~g30: constant buffer
+           g1~g2:intra IQ matrix in UB format
+           g3~g4:non intra IQ matrix in UB format
+           g5~g20:IDCT table
+   g32~g55:DCT data before IQ
+   g56~g79:DCT data after IQ
+   g83~g106: IDCT data after idct
+   g82:    thread payload backup
+   g125:   ip before jump
+*/
+include(`iq_non_intra.g4i')
+
+define(`ROW_SHIFT', `11UD') //define for idct
+define(`ROW_ADD', `0x400UD')            
+define(`COL_SHIFT', `20UD') 
+define(`COL_ADD', `0x80000UD')           
+
+mov (1) a0.0<1>UD 0x06F006E0UD {align1};//0x06F006E0UD+0x00200020UD=0x07100700UD (g56.0 and g56.16,the start of DCT data)
+
+//Y0
+and.nz (1) null g82.8<1,1,1>UW 0x800UW {align1};
+(f0) jmpi do_idct_y0;
+
+mov (8) g83.0<1>UW 0UW {align1}; 
+mov (8) g84.0<1>UW 0UW {align1}; 
+mov (8) g85.0<1>UW 0UW {align1}; 
+mov (8) g86.0<1>UW 0UW {align1}; 
+mov (8) g87.0<1>UW 0UW {align1}; 
+mov (8) g88.0<1>UW 0UW {align1}; 
+mov (8) g89.0<1>UW 0UW {align1}; 
+mov (8) g90.0<1>UW 0UW {align1}; 
+add (1) a0.0<1>UD a0.0<1,1,1>UD 0x00800080UD {align1};
+jmpi block_y1;
+do_idct_y0:
+mov (1) g125.0<1>UD ip {align1};
+jmpi IDCT_START;
+mov (8) g83.0<1>W g32.0<16,8,2>W {align1};
+mov (8) g84.0<1>W g33.0<16,8,2>W {align1};
+mov (8) g85.0<1>W g34.0<16,8,2>W {align1};
+mov (8) g86.0<1>W g35.0<16,8,2>W {align1};
+mov (8) g87.0<1>W g36.0<16,8,2>W {align1};
+mov (8) g88.0<1>W g37.0<16,8,2>W {align1};
+mov (8) g89.0<1>W g38.0<16,8,2>W {align1};
+mov (8) g90.0<1>W g39.0<16,8,2>W {align1};
+
+//Y1
+block_y1:
+and.nz (1) null g82.8<1,1,1>UW 0x400UW {align1};
+(f0) jmpi do_idct_y1;
+mov (8) g83.16<1>UW 0UW {align1}; 
+mov (8) g84.16<1>UW 0UW {align1}; 
+mov (8) g85.16<1>UW 0UW {align1}; 
+mov (8) g86.16<1>UW 0UW {align1}; 
+mov (8) g87.16<1>UW 0UW {align1}; 
+mov (8) g88.16<1>UW 0UW {align1}; 
+mov (8) g89.16<1>UW 0UW {align1}; 
+mov (8) g90.16<1>UW 0UW {align1}; 
+add (1) a0.0<1>UD a0.0<1,1,1>UD 0x00800080UD {align1};
+jmpi block_y2;
+do_idct_y1:
+mov (1) g125.0<1>UD ip {align1};
+jmpi IDCT_START;
+mov (8) g83.16<1>W g32.0<16,8,2>W {align1};
+mov (8) g84.16<1>W g33.0<16,8,2>W {align1};
+mov (8) g85.16<1>W g34.0<16,8,2>W {align1};
+mov (8) g86.16<1>W g35.0<16,8,2>W {align1};
+mov (8) g87.16<1>W g36.0<16,8,2>W {align1};
+mov (8) g88.16<1>W g37.0<16,8,2>W {align1};
+mov (8) g89.16<1>W g38.0<16,8,2>W {align1};
+mov (8) g90.16<1>W g39.0<16,8,2>W {align1};
+
+//Y2
+block_y2:
+and.nz (1) null g82.8<1,1,1>UW 0x200UW {align1};
+(f0) jmpi do_idct_y2;
+mov (8) g91.0<1>UW 0UW {align1}; 
+mov (8) g92.0<1>UW 0UW {align1}; 
+mov (8) g93.0<1>UW 0UW {align1}; 
+mov (8) g94.0<1>UW 0UW {align1}; 
+mov (8) g95.0<1>UW 0UW {align1}; 
+mov (8) g96.0<1>UW 0UW {align1}; 
+mov (8) g97.0<1>UW 0UW {align1}; 
+mov (8) g98.0<1>UW 0UW {align1}; 
+add (1) a0.0<1>UD a0.0<1,1,1>UD 0x00800080UD {align1};
+jmpi block_y3;
+do_idct_y2:
+mov (1) g125.0<1>UD ip {align1};
+jmpi IDCT_START;
+mov (8) g91.0<1>W g32.0<16,8,2>W {align1};
+mov (8) g92.0<1>W g33.0<16,8,2>W {align1};
+mov (8) g93.0<1>W g34.0<16,8,2>W {align1};
+mov (8) g94.0<1>W g35.0<16,8,2>W {align1};
+mov (8) g95.0<1>W g36.0<16,8,2>W {align1};
+mov (8) g96.0<1>W g37.0<16,8,2>W {align1};
+mov (8) g97.0<1>W g38.0<16,8,2>W {align1};
+mov (8) g98.0<1>W g39.0<16,8,2>W {align1};
+
+//Y3
+block_y3:
+and.nz (1) null g82.8<1,1,1>UW 0x100UW {align1};
+(f0) jmpi do_idct_y3;
+mov (8) g91.16<1>UW 0UW {align1}; 
+mov (8) g92.16<1>UW 0UW {align1}; 
+mov (8) g93.16<1>UW 0UW {align1}; 
+mov (8) g94.16<1>UW 0UW {align1}; 
+mov (8) g95.16<1>UW 0UW {align1}; 
+mov (8) g96.16<1>UW 0UW {align1}; 
+mov (8) g97.16<1>UW 0UW {align1}; 
+mov (8) g98.16<1>UW 0UW {align1}; 
+add (1) a0.0<1>UD a0.0<1,1,1>UD 0x00800080UD {align1};
+jmpi block_u;
+do_idct_y3:
+mov (1) g125.0<1>UD ip {align1};
+jmpi IDCT_START;
+mov (8) g91.16<1>W g32.0<16,8,2>W {align1};
+mov (8) g92.16<1>W g33.0<16,8,2>W {align1};
+mov (8) g93.16<1>W g34.0<16,8,2>W {align1};
+mov (8) g94.16<1>W g35.0<16,8,2>W {align1};
+mov (8) g95.16<1>W g36.0<16,8,2>W {align1};
+mov (8) g96.16<1>W g37.0<16,8,2>W {align1};
+mov (8) g97.16<1>W g38.0<16,8,2>W {align1};
+mov (8) g98.16<1>W g39.0<16,8,2>W {align1};
+
+//U
+block_u:
+and.nz (1) null g82.8<1,1,1>UW 0x80UW {align1};
+(f0) jmpi do_idct_u;
+mov (16) g99.0<1>UW 0UW {align1}; 
+mov (16) g100.0<1>UW 0UW {align1}; 
+mov (16) g101.0<1>UW 0UW {align1}; 
+mov (16) g102.0<1>UW 0UW {align1}; 
+add (1) a0.0<1>UD a0.0<1,1,1>UD 0x00800080UD {align1};
+jmpi block_v;
+do_idct_u:
+mov (1) g125.0<1>UD ip {align1};
+jmpi IDCT_START;
+mov (16) g99.0<1>W g32.0<16,8,2>W {align1};
+mov (16) g100.0<1>W g34.0<16,8,2>W {align1};
+mov (16) g101.0<1>W g36.0<16,8,2>W {align1};
+mov (16) g102.0<1>W g38.0<16,8,2>W {align1};
+
+//V
+block_v:
+and.nz (1) null g82.8<1,1,1>UW 0x40UW {align1};
+(f0) jmpi do_idct_v;
+mov (16) g103.0<1>UW 0UW {align1}; 
+mov (16) g104.0<1>UW 0UW {align1}; 
+mov (16) g105.0<1>UW 0UW {align1}; 
+mov (16) g106.0<1>UW 0UW {align1};  
+jmpi block_end;
+do_idct_v:
+mov (1) g125.0<1>UD ip {align1};
+jmpi IDCT_START;
+mov (16) g103.0<1>W g32.0<16,8,2>W {align1};
+mov (16) g104.0<1>W g34.0<16,8,2>W {align1};
+mov (16) g105.0<1>W g36.0<16,8,2>W {align1};
+mov (16) g106.0<1>W g38.0<16,8,2>W {align1};
+block_end:
+
+add (1) ip g126.8<1,1,1>UD 0x20UD {align1};            //jump back
+include(`do_iq_non_intra.g4i')
+include(`idct.g4i')
diff --git a/src/xvmc/shader/vld/lib.g4b b/src/xvmc/shader/vld/lib.g4b
new file mode 100644
index 0000000..262bff9
--- /dev/null
+++ b/src/xvmc/shader/vld/lib.g4b
@@ -0,0 +1,307 @@
+   { 0x00000005, 0x2da02d29, 0x00210a48, 0x001f001f },
+   { 0x01000005, 0x20002d3c, 0x00210a48, 0x00200020 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x00000012 },
+   { 0x05000010, 0x20002d3c, 0x00210da0, 0x00090009 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x00000011 },
+   { 0x05000010, 0x20002d3c, 0x00210da0, 0x00110011 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x00000006 },
+   { 0x05000010, 0x20002d3c, 0x00210da0, 0x00190019 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x00000008 },
+   { 0x00000040, 0x2da03d29, 0x00210da0, 0xffe7ffe7 },
+   { 0x00000009, 0x2da02d29, 0x00210da0, 0x00030003 },
+   { 0x00000040, 0x2da02d29, 0x00210da0, 0x00400040 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000009 },
+   { 0x00000040, 0x2da03d29, 0x00210da0, 0xfff7fff7 },
+   { 0x00000009, 0x2da02d29, 0x00210da0, 0x00010001 },
+   { 0x00000040, 0x2da02d29, 0x00210da0, 0x000a000a },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000005 },
+   { 0x00000040, 0x2da03d29, 0x00210da0, 0xffefffef },
+   { 0x00000009, 0x2da02d29, 0x00210da0, 0x00020002 },
+   { 0x00000040, 0x2da02d29, 0x00210da0, 0x001c001c },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000001 },
+   { 0x00000009, 0x2da00d29, 0x00210da0, 0x00000001 },
+   { 0x00000001, 0x2dc00129, 0x00210da0, 0x00000000 },
+   { 0x00800001, 0x2e000229, 0x00b10060, 0x00000000 },
+   { 0x00800001, 0x2e200229, 0x00b10070, 0x00000000 },
+   { 0x00800001, 0x2e400229, 0x00b10080, 0x00000000 },
+   { 0x00800001, 0x2e600229, 0x00b10090, 0x00000000 },
+   { 0x00000001, 0x22000060, 0x00000000, 0x03f003e0 },
+   { 0x01000005, 0x20002d3c, 0x00210a48, 0x08000800 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x00000006 },
+   { 0x00000001, 0x2fa00001, 0x00001400, 0x00000000 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x000000a1 },
+   { 0x00800001, 0x270001ad, 0x00ae0e80, 0x00000000 },
+   { 0x00800001, 0x272001ad, 0x00ae0ec0, 0x00000000 },
+   { 0x00800001, 0x274001ad, 0x00ae0f00, 0x00000000 },
+   { 0x00800001, 0x276001ad, 0x00ae0f40, 0x00000000 },
+   { 0x01000005, 0x20002d3c, 0x00210a48, 0x04000400 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x00000006 },
+   { 0x00000001, 0x2fa00001, 0x00001400, 0x00000000 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000099 },
+   { 0x00800001, 0x278001ad, 0x00ae0e80, 0x00000000 },
+   { 0x00800001, 0x27a001ad, 0x00ae0ec0, 0x00000000 },
+   { 0x00800001, 0x27c001ad, 0x00ae0f00, 0x00000000 },
+   { 0x00800001, 0x27e001ad, 0x00ae0f40, 0x00000000 },
+   { 0x01000005, 0x20002d3c, 0x00210a48, 0x02000200 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x00000006 },
+   { 0x00000001, 0x2fa00001, 0x00001400, 0x00000000 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000091 },
+   { 0x00800001, 0x280001ad, 0x00ae0e80, 0x00000000 },
+   { 0x00800001, 0x282001ad, 0x00ae0ec0, 0x00000000 },
+   { 0x00800001, 0x284001ad, 0x00ae0f00, 0x00000000 },
+   { 0x00800001, 0x286001ad, 0x00ae0f40, 0x00000000 },
+   { 0x01000005, 0x20002d3c, 0x00210a48, 0x01000100 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x00000006 },
+   { 0x00000001, 0x2fa00001, 0x00001400, 0x00000000 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000089 },
+   { 0x00800001, 0x288001ad, 0x00ae0e80, 0x00000000 },
+   { 0x00800001, 0x28a001ad, 0x00ae0ec0, 0x00000000 },
+   { 0x00800001, 0x28c001ad, 0x00ae0f00, 0x00000000 },
+   { 0x00800001, 0x28e001ad, 0x00ae0f40, 0x00000000 },
+   { 0x01000005, 0x20002d3c, 0x00210a48, 0x00800080 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x00000006 },
+   { 0x00000001, 0x2fa00001, 0x00001400, 0x00000000 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000081 },
+   { 0x00800001, 0x290001ad, 0x00ae0e80, 0x00000000 },
+   { 0x00800001, 0x292001ad, 0x00ae0ec0, 0x00000000 },
+   { 0x00800001, 0x294001ad, 0x00ae0f00, 0x00000000 },
+   { 0x00800001, 0x296001ad, 0x00ae0f40, 0x00000000 },
+   { 0x01000005, 0x20002d3c, 0x00210a48, 0x00400040 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x00000006 },
+   { 0x00000001, 0x2fa00001, 0x00001400, 0x00000000 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000079 },
+   { 0x00800001, 0x298001ad, 0x00ae0e80, 0x00000000 },
+   { 0x00800001, 0x29a001ad, 0x00ae0ec0, 0x00000000 },
+   { 0x00800001, 0x29c001ad, 0x00ae0f00, 0x00000000 },
+   { 0x00800001, 0x29e001ad, 0x00ae0f40, 0x00000000 },
+   { 0x00000001, 0x22000060, 0x00000000, 0x06f006e0 },
+   { 0x02000005, 0x20002d3c, 0x00210a48, 0x08000800 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x0000000a },
+   { 0x00600001, 0x2a600169, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x2a800169, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x2aa00169, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x2ac00169, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x2ae00169, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x2b000169, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x2b200169, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x2b400169, 0x00000000, 0x00000000 },
+   { 0x00000040, 0x22000c00, 0x00210200, 0x00800080 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x0000000a },
+   { 0x00000001, 0x2fa00001, 0x00001400, 0x00000000 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000077 },
+   { 0x00600001, 0x2a6001ad, 0x00ae0400, 0x00000000 },
+   { 0x00600001, 0x2a8001ad, 0x00ae0420, 0x00000000 },
+   { 0x00600001, 0x2aa001ad, 0x00ae0440, 0x00000000 },
+   { 0x00600001, 0x2ac001ad, 0x00ae0460, 0x00000000 },
+   { 0x00600001, 0x2ae001ad, 0x00ae0480, 0x00000000 },
+   { 0x00600001, 0x2b0001ad, 0x00ae04a0, 0x00000000 },
+   { 0x00600001, 0x2b2001ad, 0x00ae04c0, 0x00000000 },
+   { 0x00600001, 0x2b4001ad, 0x00ae04e0, 0x00000000 },
+   { 0x02000005, 0x20002d3c, 0x00210a48, 0x04000400 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x0000000a },
+   { 0x00600001, 0x2a700169, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x2a900169, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x2ab00169, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x2ad00169, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x2af00169, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x2b100169, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x2b300169, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x2b500169, 0x00000000, 0x00000000 },
+   { 0x00000040, 0x22000c00, 0x00210200, 0x00800080 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x0000000a },
+   { 0x00000001, 0x2fa00001, 0x00001400, 0x00000000 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000061 },
+   { 0x00600001, 0x2a7001ad, 0x00ae0400, 0x00000000 },
+   { 0x00600001, 0x2a9001ad, 0x00ae0420, 0x00000000 },
+   { 0x00600001, 0x2ab001ad, 0x00ae0440, 0x00000000 },
+   { 0x00600001, 0x2ad001ad, 0x00ae0460, 0x00000000 },
+   { 0x00600001, 0x2af001ad, 0x00ae0480, 0x00000000 },
+   { 0x00600001, 0x2b1001ad, 0x00ae04a0, 0x00000000 },
+   { 0x00600001, 0x2b3001ad, 0x00ae04c0, 0x00000000 },
+   { 0x00600001, 0x2b5001ad, 0x00ae04e0, 0x00000000 },
+   { 0x02000005, 0x20002d3c, 0x00210a48, 0x02000200 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x0000000a },
+   { 0x00600001, 0x2b600169, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x2b800169, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x2ba00169, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x2bc00169, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x2be00169, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x2c000169, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x2c200169, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x2c400169, 0x00000000, 0x00000000 },
+   { 0x00000040, 0x22000c00, 0x00210200, 0x00800080 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x0000000a },
+   { 0x00000001, 0x2fa00001, 0x00001400, 0x00000000 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x0000004b },
+   { 0x00600001, 0x2b6001ad, 0x00ae0400, 0x00000000 },
+   { 0x00600001, 0x2b8001ad, 0x00ae0420, 0x00000000 },
+   { 0x00600001, 0x2ba001ad, 0x00ae0440, 0x00000000 },
+   { 0x00600001, 0x2bc001ad, 0x00ae0460, 0x00000000 },
+   { 0x00600001, 0x2be001ad, 0x00ae0480, 0x00000000 },
+   { 0x00600001, 0x2c0001ad, 0x00ae04a0, 0x00000000 },
+   { 0x00600001, 0x2c2001ad, 0x00ae04c0, 0x00000000 },
+   { 0x00600001, 0x2c4001ad, 0x00ae04e0, 0x00000000 },
+   { 0x02000005, 0x20002d3c, 0x00210a48, 0x01000100 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x0000000a },
+   { 0x00600001, 0x2b700169, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x2b900169, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x2bb00169, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x2bd00169, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x2bf00169, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x2c100169, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x2c300169, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x2c500169, 0x00000000, 0x00000000 },
+   { 0x00000040, 0x22000c00, 0x00210200, 0x00800080 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x0000000a },
+   { 0x00000001, 0x2fa00001, 0x00001400, 0x00000000 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000035 },
+   { 0x00600001, 0x2b7001ad, 0x00ae0400, 0x00000000 },
+   { 0x00600001, 0x2b9001ad, 0x00ae0420, 0x00000000 },
+   { 0x00600001, 0x2bb001ad, 0x00ae0440, 0x00000000 },
+   { 0x00600001, 0x2bd001ad, 0x00ae0460, 0x00000000 },
+   { 0x00600001, 0x2bf001ad, 0x00ae0480, 0x00000000 },
+   { 0x00600001, 0x2c1001ad, 0x00ae04a0, 0x00000000 },
+   { 0x00600001, 0x2c3001ad, 0x00ae04c0, 0x00000000 },
+   { 0x00600001, 0x2c5001ad, 0x00ae04e0, 0x00000000 },
+   { 0x02000005, 0x20002d3c, 0x00210a48, 0x00800080 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x00000006 },
+   { 0x00800001, 0x2c600169, 0x00000000, 0x00000000 },
+   { 0x00800001, 0x2c800169, 0x00000000, 0x00000000 },
+   { 0x00800001, 0x2ca00169, 0x00000000, 0x00000000 },
+   { 0x00800001, 0x2cc00169, 0x00000000, 0x00000000 },
+   { 0x00000040, 0x22000c00, 0x00210200, 0x00800080 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000006 },
+   { 0x00000001, 0x2fa00001, 0x00001400, 0x00000000 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000023 },
+   { 0x00800001, 0x2c6001ad, 0x00ae0400, 0x00000000 },
+   { 0x00800001, 0x2c8001ad, 0x00ae0440, 0x00000000 },
+   { 0x00800001, 0x2ca001ad, 0x00ae0480, 0x00000000 },
+   { 0x00800001, 0x2cc001ad, 0x00ae04c0, 0x00000000 },
+   { 0x02000005, 0x20002d3c, 0x00210a48, 0x00400040 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x00000005 },
+   { 0x00800001, 0x2ce00169, 0x00000000, 0x00000000 },
+   { 0x00800001, 0x2d000169, 0x00000000, 0x00000000 },
+   { 0x00800001, 0x2d200169, 0x00000000, 0x00000000 },
+   { 0x00800001, 0x2d400169, 0x00000000, 0x00000000 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000006 },
+   { 0x00000001, 0x2fa00001, 0x00001400, 0x00000000 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000016 },
+   { 0x00800001, 0x2ce001ad, 0x00ae0400, 0x00000000 },
+   { 0x00800001, 0x2d0001ad, 0x00ae0440, 0x00000000 },
+   { 0x00800001, 0x2d2001ad, 0x00ae0480, 0x00000000 },
+   { 0x00800001, 0x2d4001ad, 0x00ae04c0, 0x00000000 },
+   { 0x00000040, 0x34000c20, 0x00210fc8, 0x00000020 },
+   { 0x00000040, 0x22000c00, 0x00210200, 0x00200020 },
+   { 0x00802041, 0x2e8025a5, 0x008d8000, 0x008d0e00 },
+   { 0x00802041, 0x2e8024a5, 0x008d0e80, 0x008c0da0 },
+   { 0x0080200c, 0x2e802ca5, 0x008d0e80, 0x00040004 },
+   { 0x00000040, 0x22000c00, 0x00210200, 0x00200020 },
+   { 0x00802041, 0x2ec025a5, 0x008d8000, 0x008d0e20 },
+   { 0x00802041, 0x2ec024a5, 0x008d0ec0, 0x008c0da0 },
+   { 0x0080200c, 0x2ec02ca5, 0x008d0ec0, 0x00040004 },
+   { 0x00000040, 0x22000c00, 0x00210200, 0x00200020 },
+   { 0x00802041, 0x2f0025a5, 0x008d8000, 0x008d0e40 },
+   { 0x00802041, 0x2f0024a5, 0x008d0f00, 0x008c0da0 },
+   { 0x0080200c, 0x2f002ca5, 0x008d0f00, 0x00040004 },
+   { 0x00000040, 0x22000c00, 0x00210200, 0x00200020 },
+   { 0x00802041, 0x2f4025a5, 0x008d8000, 0x008d0e60 },
+   { 0x00802041, 0x2f4024a5, 0x008d0f40, 0x008c0da0 },
+   { 0x0080200c, 0x2f402ca5, 0x008d0f40, 0x00040004 },
+   { 0x00000040, 0x34000c20, 0x00210fa0, 0x00000020 },
+   { 0x00000001, 0x2fc00001, 0x00001400, 0x00000000 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x0000001a },
+   { 0x00802040, 0x24000ca5, 0x008d0400, 0x00000400 },
+   { 0x00802040, 0x24400ca5, 0x008d0440, 0x00000400 },
+   { 0x00802040, 0x24800ca5, 0x008d0480, 0x00000400 },
+   { 0x00802040, 0x24c00ca5, 0x008d04c0, 0x00000400 },
+   { 0x00802008, 0x24000ca5, 0x008d0400, 0x0000000b },
+   { 0x00802008, 0x24400ca5, 0x008d0440, 0x0000000b },
+   { 0x00802008, 0x24800ca5, 0x008d0480, 0x0000000b },
+   { 0x00802008, 0x24c00ca5, 0x008d04c0, 0x0000000b },
+   { 0x00800001, 0x2dc001ad, 0x00ae0400, 0x00000000 },
+   { 0x00800001, 0x2de001ad, 0x00ae0440, 0x00000000 },
+   { 0x00800001, 0x2e0001ad, 0x00ae0480, 0x00000000 },
+   { 0x00800001, 0x2e2001ad, 0x00ae04c0, 0x00000000 },
+   { 0x00000001, 0x2a000001, 0x00210200, 0x00000000 },
+   { 0x00000001, 0x22000060, 0x00000000, 0x0db00da0 },
+   { 0x00000001, 0x2fc00001, 0x00001400, 0x00000000 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x0000000a },
+   { 0x00802040, 0x24000ca5, 0x008d0400, 0x00080000 },
+   { 0x00802040, 0x24400ca5, 0x008d0440, 0x00080000 },
+   { 0x00802040, 0x24800ca5, 0x008d0480, 0x00080000 },
+   { 0x00802040, 0x24c00ca5, 0x008d04c0, 0x00080000 },
+   { 0x00802008, 0x24000ca5, 0x008d0400, 0x00000014 },
+   { 0x00802008, 0x24400ca5, 0x008d0440, 0x00000014 },
+   { 0x00802008, 0x24800ca5, 0x008d0480, 0x00000014 },
+   { 0x00802008, 0x24c00ca5, 0x008d04c0, 0x00000014 },
+   { 0x00000001, 0x22000020, 0x00210a00, 0x00000000 },
+   { 0x00000040, 0x34000c20, 0x00210fa0, 0x00000020 },
+   { 0x00000040, 0x22000c00, 0x00210200, 0x00200020 },
+   { 0x00802054, 0x250015a5, 0x008d8000, 0x008d00a0 },
+   { 0x00802054, 0x254015a5, 0x008d8000, 0x008d00e0 },
+   { 0x00802054, 0x258015a5, 0x008d8000, 0x008d0120 },
+   { 0x00802054, 0x25c015a5, 0x008d8000, 0x008d0160 },
+   { 0x00802054, 0x260015a5, 0x008d8000, 0x008d01a0 },
+   { 0x00802054, 0x264015a5, 0x008d8000, 0x008d01e0 },
+   { 0x00802054, 0x268015a5, 0x008d8000, 0x008d0220 },
+   { 0x00802054, 0x26c015a5, 0x008d8000, 0x008d0260 },
+   { 0x00200040, 0x240014a5, 0x00800500, 0x00800510 },
+   { 0x00200040, 0x242014a5, 0x00800540, 0x00800550 },
+   { 0x00200040, 0x244014a5, 0x00800580, 0x00800590 },
+   { 0x00200040, 0x246014a5, 0x008005c0, 0x008005d0 },
+   { 0x00200040, 0x248014a5, 0x00800600, 0x00800610 },
+   { 0x00200040, 0x24a014a5, 0x00800640, 0x00800650 },
+   { 0x00200040, 0x24c014a5, 0x00800680, 0x00800690 },
+   { 0x00200040, 0x24e014a5, 0x008006c0, 0x008006d0 },
+   { 0x00000040, 0x22000c00, 0x00210200, 0x00200020 },
+   { 0x00802054, 0x250015a5, 0x008d8000, 0x008d00a0 },
+   { 0x00802054, 0x254015a5, 0x008d8000, 0x008d00e0 },
+   { 0x00802054, 0x258015a5, 0x008d8000, 0x008d0120 },
+   { 0x00802054, 0x25c015a5, 0x008d8000, 0x008d0160 },
+   { 0x00802054, 0x260015a5, 0x008d8000, 0x008d01a0 },
+   { 0x00802054, 0x264015a5, 0x008d8000, 0x008d01e0 },
+   { 0x00802054, 0x268015a5, 0x008d8000, 0x008d0220 },
+   { 0x00802054, 0x26c015a5, 0x008d8000, 0x008d0260 },
+   { 0x00200040, 0x240814a5, 0x00800500, 0x00800510 },
+   { 0x00200040, 0x242814a5, 0x00800540, 0x00800550 },
+   { 0x00200040, 0x244814a5, 0x00800580, 0x00800590 },
+   { 0x00200040, 0x246814a5, 0x008005c0, 0x008005d0 },
+   { 0x00200040, 0x248814a5, 0x00800600, 0x00800610 },
+   { 0x00200040, 0x24a814a5, 0x00800640, 0x00800650 },
+   { 0x00200040, 0x24c814a5, 0x00800680, 0x00800690 },
+   { 0x00200040, 0x24e814a5, 0x008006c0, 0x008006d0 },
+   { 0x00000040, 0x22000c00, 0x00210200, 0x00200020 },
+   { 0x00802054, 0x250015a5, 0x008d8000, 0x008d00a0 },
+   { 0x00802054, 0x254015a5, 0x008d8000, 0x008d00e0 },
+   { 0x00802054, 0x258015a5, 0x008d8000, 0x008d0120 },
+   { 0x00802054, 0x25c015a5, 0x008d8000, 0x008d0160 },
+   { 0x00802054, 0x260015a5, 0x008d8000, 0x008d01a0 },
+   { 0x00802054, 0x264015a5, 0x008d8000, 0x008d01e0 },
+   { 0x00802054, 0x268015a5, 0x008d8000, 0x008d0220 },
+   { 0x00802054, 0x26c015a5, 0x008d8000, 0x008d0260 },
+   { 0x00200040, 0x241014a5, 0x00800500, 0x00800510 },
+   { 0x00200040, 0x243014a5, 0x00800540, 0x00800550 },
+   { 0x00200040, 0x245014a5, 0x00800580, 0x00800590 },
+   { 0x00200040, 0x247014a5, 0x008005c0, 0x008005d0 },
+   { 0x00200040, 0x249014a5, 0x00800600, 0x00800610 },
+   { 0x00200040, 0x24b014a5, 0x00800640, 0x00800650 },
+   { 0x00200040, 0x24d014a5, 0x00800680, 0x00800690 },
+   { 0x00200040, 0x24f014a5, 0x008006c0, 0x008006d0 },
+   { 0x00000040, 0x22000c00, 0x00210200, 0x00200020 },
+   { 0x00802054, 0x250015a5, 0x008d8000, 0x008d00a0 },
+   { 0x00802054, 0x254015a5, 0x008d8000, 0x008d00e0 },
+   { 0x00802054, 0x258015a5, 0x008d8000, 0x008d0120 },
+   { 0x00802054, 0x25c015a5, 0x008d8000, 0x008d0160 },
+   { 0x00802054, 0x260015a5, 0x008d8000, 0x008d01a0 },
+   { 0x00802054, 0x264015a5, 0x008d8000, 0x008d01e0 },
+   { 0x00802054, 0x268015a5, 0x008d8000, 0x008d0220 },
+   { 0x00802054, 0x26c015a5, 0x008d8000, 0x008d0260 },
+   { 0x00200040, 0x241814a5, 0x00800500, 0x00800510 },
+   { 0x00200040, 0x243814a5, 0x00800540, 0x00800550 },
+   { 0x00200040, 0x245814a5, 0x00800580, 0x00800590 },
+   { 0x00200040, 0x247814a5, 0x008005c0, 0x008005d0 },
+   { 0x00200040, 0x249814a5, 0x00800600, 0x00800610 },
+   { 0x00200040, 0x24b814a5, 0x00800640, 0x00800650 },
+   { 0x00200040, 0x24d814a5, 0x00800680, 0x00800690 },
+   { 0x00200040, 0x24f814a5, 0x008006c0, 0x008006d0 },
+   { 0x00000040, 0x34000c20, 0x00210fc0, 0x00000020 },
diff --git a/src/xvmc/shader/vld/motion_field_uv.g4i b/src/xvmc/shader/vld/motion_field_uv.g4i
new file mode 100644
index 0000000..3329569
--- /dev/null
+++ b/src/xvmc/shader/vld/motion_field_uv.g4i
@@ -0,0 +1,29 @@
+/*
+ * Copyright © 2009 Intel Corporation
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice (including the next
+ * paragraph) shall be included in all copies or substantial portions of the
+ * Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
+ * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+ * SOFTWARE.
+ *
+ * Author:
+ *    Zou Nan hai <nanhai.zou at intel.com>
+ *    Zhang Hua jun <huajun.zhang at intel.com>
+ *    Xing Dong sheng <dongsheng.xing at intel.com>
+ *
+ */
+include(`read_field_x0y0_uv.g4i')
diff --git a/src/xvmc/shader/vld/motion_field_y.g4i b/src/xvmc/shader/vld/motion_field_y.g4i
new file mode 100644
index 0000000..47d2ec4
--- /dev/null
+++ b/src/xvmc/shader/vld/motion_field_y.g4i
@@ -0,0 +1,45 @@
+/*
+ * Copyright © 2009 Intel Corporation
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice (including the next
+ * paragraph) shall be included in all copies or substantial portions of the
+ * Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
+ * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+ * SOFTWARE.
+ *
+ * Author:
+ *    Zou Nan hai <nanhai.zou at intel.com>
+ *    Zhang Hua jun <huajun.zhang at intel.com>
+ *    Xing Dong sheng <dongsheng.xing at intel.com>
+ *
+ */
+	and.z (1) null mv1<1,1,1>W 1UW {align1};	
+	(f0) jmpi L1;
+	and.z (1) null mv2<1,1,1>W 1UW {align1};	
+	(f0) jmpi L2;
+	include(`read_field_x1y1_y.g4i')
+	jmpi L5;
+L2:
+	include(`read_field_x1y0_y.g4i')
+	jmpi L5;
+L1:
+	and.z (1) null mv2<1,1,1>W 1UW {align1};	
+	(f0) jmpi L4;
+	include(`read_field_x0y1_y.g4i')
+	jmpi L5;
+L4:
+	include(`read_field_x0y0_y.g4i')
+L5:
diff --git a/src/xvmc/shader/vld/motion_frame_uv.g4i b/src/xvmc/shader/vld/motion_frame_uv.g4i
new file mode 100644
index 0000000..3d39313
--- /dev/null
+++ b/src/xvmc/shader/vld/motion_frame_uv.g4i
@@ -0,0 +1,29 @@
+/*
+ * Copyright © 2009 Intel Corporation
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice (including the next
+ * paragraph) shall be included in all copies or substantial portions of the
+ * Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
+ * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+ * SOFTWARE.
+ *
+ * Author:
+ *    Zou Nan hai <nanhai.zou at intel.com>
+ *    Zhang Hua jun <huajun.zhang at intel.com>
+ *    Xing Dong sheng <dongsheng.xing at intel.com>
+ */  
+
+	include(`read_frame_x0y0_uv.g4i')
diff --git a/src/xvmc/shader/vld/motion_frame_y.g4i b/src/xvmc/shader/vld/motion_frame_y.g4i
new file mode 100644
index 0000000..88c8085
--- /dev/null
+++ b/src/xvmc/shader/vld/motion_frame_y.g4i
@@ -0,0 +1,57 @@
+/*
+ * Copyright © 2009 Intel Corporation
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice (including the next
+ * paragraph) shall be included in all copies or substantial portions of the
+ * Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
+ * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+ * SOFTWARE.
+ *
+ * Author:
+ *    Zou Nan hai <nanhai.zou at intel.com>
+ */  
+ 
+/* if (motion_vect.x & 1) {
+ *   if (motion_vect.y & 1)
+ *	 half_pixel in x and y;
+ *   else
+ *	 half_pixel in x;
+ * } else {
+ *	if (motion_vect.y & 1) 
+ *	  half_pixel y;
+ *	else
+ *	  full_pixel_read;	
+ * }	 
+ */
+
+	and.z (1) null mv1<1,1,1>UW 1UD {align1};	
+	(f0) jmpi LL1;
+	and.z (1) null mv2<1,1,1>UW 1UD {align1};	
+	(f0) jmpi LL2;
+	include(`read_frame_x1y1_y.g4i') 
+	jmpi LL5;
+LL2: 
+	include(`read_frame_x1y0_y.g4i') 
+	jmpi LL5;
+LL1: 
+	and.z (1) null mv2<1,1,1>UW 1UD {align1};	
+	(f0) jmpi LL4;
+	include(`read_frame_x0y1_y.g4i')
+	jmpi LL5;
+LL4:
+	include(`read_frame_x0y0_y.g4i')
+LL5:
+
diff --git a/src/xvmc/shader/vld/read_field_x0y0_uv.g4i b/src/xvmc/shader/vld/read_field_x0y0_uv.g4i
new file mode 100644
index 0000000..36e589a
--- /dev/null
+++ b/src/xvmc/shader/vld/read_field_x0y0_uv.g4i
@@ -0,0 +1,50 @@
+/*
+ * Copyright © 2009 Intel Corporation
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice (including the next
+ * paragraph) shall be included in all copies or substantial portions of the
+ * Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
+ * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+ * SOFTWARE.
+ *
+ * Author:
+ *    Zou Nan hai <nanhai.zou at intel.com>
+ *    Yan Li <li.l.yan at intel.com>
+ *    Liu Xi bin<xibin.liu at intel.com>
+ */
+/* GRF allocation:
+   g1~g30: constant buffer
+           g1~g2:intra IQ matrix
+           g3~g4:non intra IQ matrix
+           g5~g20:IDCT table
+   g31:    thread payload 
+   g58~g81:reference data
+   g82:    thread payload backup
+   g83~g106:IDCT data
+   g115:   message descriptor for reading reference data   */
+
+mov (1) g115.8<1>UD 0x7000FUD {align1}; // 8*16/32=4
+send (16) 0 g40.0<1>UW g115<16,8,1>UW read(surface_u, 2, 0, 2) mlen 1 rlen 4 {align1};//U
+send (16) 0 g45.0<1>UW g115<16,8,1>UW read(surface_v, 2, 0, 2) mlen 1 rlen 4 {align1};//V
+
+mov (16) g32.0<1>UW g40.0<16,8,1>UB {align1};
+mov (16) g33.0<1>UW g41.0<16,8,1>UB {align1};
+mov (16) g34.0<1>UW g42.0<16,8,1>UB {align1};
+mov (16) g35.0<1>UW g43.0<16,8,1>UB {align1};
+mov (16) g36.0<1>UW g45.0<16,8,1>UB {align1};
+mov (16) g37.0<1>UW g46.0<16,8,1>UB {align1};
+mov (16) g38.0<1>UW g47.0<16,8,1>UB {align1};
+mov (16) g39.0<1>UW g48.0<16,8,1>UB {align1};
diff --git a/src/xvmc/shader/vld/read_field_x0y0_y.g4i b/src/xvmc/shader/vld/read_field_x0y0_y.g4i
new file mode 100644
index 0000000..e549598
--- /dev/null
+++ b/src/xvmc/shader/vld/read_field_x0y0_y.g4i
@@ -0,0 +1,57 @@
+/*
+ * Copyright © 2009 Intel Corporation
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice (including the next
+ * paragraph) shall be included in all copies or substantial portions of the
+ * Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
+ * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+ * SOFTWARE.
+ *
+ * Author:
+ *    Zou Nan hai <nanhai.zou at intel.com>
+ *    Yan Li <li.l.yan at intel.com>
+ *    Liu Xi bin<xibin.liu at intel.com>
+ */
+/* GRF allocation:
+   g1~g30: constant buffer
+           g1~g2:intra IQ matrix
+           g3~g4:non intra IQ matrix
+           g5~g20:IDCT table
+   g31:    thread payload 
+   g58~g81:reference data
+   g82:    thread payload backup
+   g83~g106:IDCT data
+   g115:   message descriptor for reading reference data   */
+mov (1) g115.8<1>UD 0x01FUD {align1};
+send (16) 0 g40.0<1>UW g115<8,8,1>UW read(surface,2,0,2) mlen 1 rlen 1 {align1};
+add (1) g115.4<1>UD g115.4<1,1,1>UD 2UD {align1};
+send (16) 0 g42.0<1>UW g115<8,8,1>UW read(surface,2,0,2) mlen 1 rlen 1 {align1};
+add (1) g115.4<1>UD g115.4<1,1,1>UD 2UD {align1};
+send (16) 0 g44.0<1>UW g115<8,8,1>UW read(surface,2,0,2) mlen 1 rlen 1 {align1};
+add (1) g115.4<1>UD g115.4<1,1,1>UD 2UD {align1};
+send (16) 0 g46.0<1>UW g115<8,8,1>UW read(surface,2,0,2) mlen 1 rlen 1 {align1};
+add (1) g115.4<1>UD g115.4<1,1,1>UD 2UD {align1};
+mov (1) g115.8<1>UD 0x07001FUD {align1};
+send (16) 0 g48.0<1>UW g115<8,8,1>UW read(surface,2,0,2) mlen 1 rlen 8 {align1};
+
+mov (16) g32.0<1>UW g40.0<16,16,1>UB {align1};
+mov (16) g33.0<1>UW g42.0<16,16,1>UB {align1};
+mov (16) g34.0<1>UW g44.0<16,16,1>UB {align1};
+mov (16) g35.0<1>UW g46.0<16,16,1>UB {align1};
+mov (16) g36.0<1>UW g48.0<16,16,1>UB {align1};
+mov (16) g37.0<1>UW g50.0<16,16,1>UB {align1};
+mov (16) g38.0<1>UW g52.0<16,16,1>UB {align1};
+mov (16) g39.0<1>UW g54.0<16,16,1>UB {align1};
diff --git a/src/xvmc/shader/vld/read_field_x0y1_y.g4i b/src/xvmc/shader/vld/read_field_x0y1_y.g4i
new file mode 100644
index 0000000..7a7909f
--- /dev/null
+++ b/src/xvmc/shader/vld/read_field_x0y1_y.g4i
@@ -0,0 +1,60 @@
+/*
+ * Copyright © 2009 Intel Corporation
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice (including the next
+ * paragraph) shall be included in all copies or substantial portions of the
+ * Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
+ * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+ * SOFTWARE.
+ *
+ * Author:
+ *    Zou Nan hai <nanhai.zou at intel.com>
+ *    Yan Li <li.l.yan at intel.com>
+ *    Liu Xi bin<xibin.liu at intel.com>
+ */
+/* GRF allocation:
+   g1~g30: constant buffer
+           g1~g2:intra IQ matrix
+           g3~g4:non intra IQ matrix
+           g5~g20:IDCT table
+   g31:    thread payload 
+   g58~g81:reference data
+   g82:    thread payload backup
+   g83~g106:IDCT data
+   g115:   message descriptor for reading reference data   */
+mov (1) g115.8<1>UD 0x01FUD {align1};
+send (16) 0 g40.0<1>UW g115<8,8,1>UW read(surface,2,0,2) mlen 1 rlen 1 {align1};
+add (1) g115.4<1>UD g115.4<1,1,1>UD 2UD {align1};
+send (16) 0 g42.0<1>UW g115<8,8,1>UW read(surface,2,0,2) mlen 1 rlen 1 {align1};
+add (1) g115.4<1>UD g115.4<1,1,1>UD 2UD {align1};
+send (16) 0 g44.0<1>UW g115<8,8,1>UW read(surface,2,0,2) mlen 1 rlen 1 {align1};
+add (1) g115.4<1>UD g115.4<1,1,1>UD 2UD {align1};
+send (16) 0 g46.0<1>UW g115<8,8,1>UW read(surface,2,0,2) mlen 1 rlen 1 {align1};
+add (1) g115.4<1>UD g115.4<1,1,1>UD 2UD {align1};
+mov (1) g115.8<1>UD 0x07001FUD {align1};
+send (16) 0 g48.0<1>UW g115<8,8,1>UW read(surface,2,0,2) mlen 1 rlen 8 {align1};
+add (1) g115.4<1>UD g115.4<1,1,1>UD 8UD {align1};
+mov (1) g115.8<1>UD 0x1FUD {align1};
+send (16) 0 g56.0<1>UW g115<8,8,1>UW read(surface,2,0,2) mlen 1 rlen 1 {align1};
+
+avg.sat (16) g32.0<1>UW g40.0<16,16,1>UB g42.0<16,16,1>UB {align1};
+avg.sat (16) g33.0<1>UW g42.0<16,16,1>UB g44.0<16,16,1>UB {align1};
+avg.sat (16) g34.0<1>UW g44.0<16,16,1>UB g46.0<16,16,1>UB {align1};
+avg.sat (16) g35.0<1>UW g46.0<16,16,1>UB g48.0<16,16,1>UB {align1};
+avg.sat (16) g36.0<1>UW g48.0<16,16,1>UB g50.0<16,16,1>UB {align1};
+avg.sat (16) g37.0<1>UW g50.0<16,16,1>UB g52.0<16,16,1>UB {align1};
+avg.sat (16) g38.0<1>UW g52.0<16,16,1>UB g54.0<16,16,1>UB {align1};
+avg.sat (16) g39.0<1>UW g54.0<16,16,1>UB g56.0<16,16,1>UB {align1};
diff --git a/src/xvmc/shader/vld/read_field_x1y0_y.g4i b/src/xvmc/shader/vld/read_field_x1y0_y.g4i
new file mode 100644
index 0000000..c8ff505
--- /dev/null
+++ b/src/xvmc/shader/vld/read_field_x1y0_y.g4i
@@ -0,0 +1,57 @@
+/*
+ * Copyright © 2009 Intel Corporation
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice (including the next
+ * paragraph) shall be included in all copies or substantial portions of the
+ * Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
+ * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+ * SOFTWARE.
+ *
+ * Author:
+ *    Zou Nan hai <nanhai.zou at intel.com>
+ *    Yan Li <li.l.yan at intel.com>
+ *    Liu Xi bin<xibin.liu at intel.com>
+ */
+/* GRF allocation:
+   g1~g30: constant buffer
+           g1~g2:intra IQ matrix
+           g3~g4:non intra IQ matrix
+           g5~g20:IDCT table
+   g31:    thread payload 
+   g58~g81:reference data
+   g82:    thread payload backup
+   g83~g106:IDCT data
+   g115:   message descriptor for reading reference data   */
+mov (1) g115.8<1>UD 0x01FUD {align1};
+send (16) 0 g40.0<1>UW g115<8,8,1>UW read(surface,2,0,2) mlen 1 rlen 1 {align1};
+add (1) g115.4<1>UD g115.4<1,1,1>UD 2UD {align1};
+send (16) 0 g42.0<1>UW g115<8,8,1>UW read(surface,2,0,2) mlen 1 rlen 1 {align1};
+add (1) g115.4<1>UD g115.4<1,1,1>UD 2UD {align1};
+send (16) 0 g44.0<1>UW g115<8,8,1>UW read(surface,2,0,2) mlen 1 rlen 1 {align1};
+add (1) g115.4<1>UD g115.4<1,1,1>UD 2UD {align1};
+send (16) 0 g46.0<1>UW g115<8,8,1>UW read(surface,2,0,2) mlen 1 rlen 1 {align1};
+add (1) g115.4<1>UD g115.4<1,1,1>UD 2UD {align1};
+mov (1) g115.8<1>UD 0x07001FUD {align1};
+send (16) 0 g48.0<1>UW g115<8,8,1>UW read(surface,2,0,2) mlen 1 rlen 8 {align1};
+
+avg.sat (16) g32.0<1>UW g40.0<16,16,1>UB g40.1<16,16,1>UB {align1};
+avg.sat (16) g33.0<1>UW g42.0<16,16,1>UB g42.1<16,16,1>UB {align1};
+avg.sat (16) g34.0<1>UW g44.0<16,16,1>UB g44.1<16,16,1>UB {align1};
+avg.sat (16) g35.0<1>UW g46.0<16,16,1>UB g46.1<16,16,1>UB {align1};
+avg.sat (16) g36.0<1>UW g48.0<16,16,1>UB g48.1<16,16,1>UB {align1};
+avg.sat (16) g37.0<1>UW g50.0<16,16,1>UB g50.1<16,16,1>UB {align1};
+avg.sat (16) g38.0<1>UW g52.0<16,16,1>UB g52.1<16,16,1>UB {align1};
+avg.sat (16) g39.0<1>UW g54.0<16,16,1>UB g54.1<16,16,1>UB {align1};
diff --git a/src/xvmc/shader/vld/read_field_x1y1_y.g4i b/src/xvmc/shader/vld/read_field_x1y1_y.g4i
new file mode 100644
index 0000000..dcc9ebf
--- /dev/null
+++ b/src/xvmc/shader/vld/read_field_x1y1_y.g4i
@@ -0,0 +1,87 @@
+/*
+ * Copyright © 2009 Intel Corporation
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice (including the next
+ * paragraph) shall be included in all copies or substantial portions of the
+ * Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
+ * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+ * SOFTWARE.
+ *
+ * Author:
+ *    Zou Nan hai <nanhai.zou at intel.com>
+ *    Yan Li <li.l.yan at intel.com>
+ *    Liu Xi bin<xibin.liu at intel.com>
+ */
+/* GRF allocation:
+   g1~g30: constant buffer
+           g1~g2:intra IQ matrix
+           g3~g4:non intra IQ matrix
+           g5~g20:IDCT table
+   g31:    thread payload 
+   g58~g81:reference data
+   g82:    thread payload backup
+   g83~g106:IDCT data
+   g115:   message descriptor for reading reference data   */
+mov (1) g115.8<1>UD 0x01FUD {align1};
+send (16) 0 g40.0<1>UW g115<8,8,1>UW read(surface,2,0,2) mlen 1 rlen 1 {align1};
+add (1) g115.4<1>UD g115.4<1,1,1>UD 2UD {align1};
+send (16) 0 g42.0<1>UW g115<8,8,1>UW read(surface,2,0,2) mlen 1 rlen 1 {align1};
+add (1) g115.4<1>UD g115.4<1,1,1>UD 2UD {align1};
+send (16) 0 g44.0<1>UW g115<8,8,1>UW read(surface,2,0,2) mlen 1 rlen 1 {align1};
+add (1) g115.4<1>UD g115.4<1,1,1>UD 2UD {align1};
+send (16) 0 g46.0<1>UW g115<8,8,1>UW read(surface,2,0,2) mlen 1 rlen 1 {align1};
+add (1) g115.4<1>UD g115.4<1,1,1>UD 2UD {align1};
+mov (1) g115.8<1>UD 0x07001FUD {align1};
+send (16) 0 g48.0<1>UW g115<8,8,1>UW read(surface,2,0,2) mlen 1 rlen 8 {align1};
+add (1) g115.4<1>UD g115.4<1,1,1>UD 8UD {align1};
+mov (1) g115.8<1>UD 0x1FUD {align1};
+send (16) 0 g56.0<1>UW g115<8,8,1>UW read(surface,2,0,2) mlen 1 rlen 1 {align1};
+
+add (16) g32.0<1>UW g40.0<16,16,1>UB g42.0<16,16,1>UB {align1};
+add (16) g33.0<1>UW g42.0<16,16,1>UB g44.0<16,16,1>UB {align1};
+add (16) g34.0<1>UW g44.0<16,16,1>UB g46.0<16,16,1>UB {align1};
+add (16) g35.0<1>UW g46.0<16,16,1>UB g48.0<16,16,1>UB {align1};
+add (16) g36.0<1>UW g48.0<16,16,1>UB g50.0<16,16,1>UB {align1};
+add (16) g37.0<1>UW g50.0<16,16,1>UB g52.0<16,16,1>UB {align1};
+add (16) g38.0<1>UW g52.0<16,16,1>UB g54.0<16,16,1>UB {align1};
+add (16) g39.0<1>UW g54.0<16,16,1>UB g56.0<16,16,1>UB {align1};
+
+add (16) g32.0<1>UW g32.0<16,16,1>UW g40.1<16,16,1>UB {align1};
+add (16) g33.0<1>UW g33.0<16,16,1>UW g42.1<16,16,1>UB {align1};
+add (16) g34.0<1>UW g34.0<16,16,1>UW g44.1<16,16,1>UB {align1};
+add (16) g35.0<1>UW g35.0<16,16,1>UW g46.1<16,16,1>UB {align1};
+add (16) g36.0<1>UW g36.0<16,16,1>UW g48.1<16,16,1>UB {align1};
+add (16) g37.0<1>UW g37.0<16,16,1>UW g50.1<16,16,1>UB {align1};
+add (16) g38.0<1>UW g38.0<16,16,1>UW g52.1<16,16,1>UB {align1};
+add (16) g39.0<1>UW g39.0<16,16,1>UW g54.1<16,16,1>UB {align1};
+
+add (16) g32.0<1>UW g32.0<16,16,1>UW g42.1<16,16,1>UB {align1};
+add (16) g33.0<1>UW g33.0<16,16,1>UW g44.1<16,16,1>UB {align1};
+add (16) g34.0<1>UW g34.0<16,16,1>UW g46.1<16,16,1>UB {align1};
+add (16) g35.0<1>UW g35.0<16,16,1>UW g48.1<16,16,1>UB {align1};
+add (16) g36.0<1>UW g36.0<16,16,1>UW g50.1<16,16,1>UB {align1};
+add (16) g37.0<1>UW g37.0<16,16,1>UW g52.1<16,16,1>UB {align1};
+add (16) g38.0<1>UW g38.0<16,16,1>UW g54.1<16,16,1>UB {align1};
+add (16) g39.0<1>UW g39.0<16,16,1>UW g56.1<16,16,1>UB {align1};
+
+shr (16) g32.0<1>UW g32.0<16,16,1>UW 2UW {align1};
+shr (16) g33.0<1>UW g33.0<16,16,1>UW 2UW {align1};
+shr (16) g34.0<1>UW g34.0<16,16,1>UW 2UW {align1};
+shr (16) g35.0<1>UW g35.0<16,16,1>UW 2UW {align1};
+shr (16) g36.0<1>UW g36.0<16,16,1>UW 2UW {align1};
+shr (16) g37.0<1>UW g37.0<16,16,1>UW 2UW {align1};
+shr (16) g38.0<1>UW g38.0<16,16,1>UW 2UW {align1};
+shr (16) g39.0<1>UW g39.0<16,16,1>UW 2UW {align1};
diff --git a/src/xvmc/shader/vld/read_frame_x0y0_uv.g4i b/src/xvmc/shader/vld/read_frame_x0y0_uv.g4i
new file mode 100644
index 0000000..63f898f
--- /dev/null
+++ b/src/xvmc/shader/vld/read_frame_x0y0_uv.g4i
@@ -0,0 +1,49 @@
+/*
+ * Copyright © 2009 Intel Corporation
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice (including the next
+ * paragraph) shall be included in all copies or substantial portions of the
+ * Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
+ * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+ * SOFTWARE.
+ *
+ * Author:
+ *    Zou Nan hai <nanhai.zou at intel.com>
+ *    Yan Li <li.l.yan at intel.com>
+ *    Liu Xi bin<xibin.liu at intel.com>
+ */
+/* GRF allocation:
+   g1~g30: constant buffer
+           g1~g2:intra IQ matrix
+           g3~g4:non intra IQ matrix
+           g5~g20:IDCT table
+   g31:    thread payload 
+   g32:    message descriptor for reading reference data
+   g58~g81:reference data
+   g82:    thread payload backup
+   g83~g106:IDCT data                           */
+mov (1) g32.8<1>UD 0x007000fUD  {align1};
+send (16) 0 g36.0<1>UW g32<8,8,1>UW read(input_surface1, 2, 0, 2) mlen 1 rlen 4 {align1};
+send (16) 0 g40.0<1>UW g32<8,8,1>UW read(input_surface2, 2, 0, 2) mlen 1 rlen 4 {align1};
+
+mov (16) g74.0<1>UW g36.0<16,8,1>UB {align1};
+mov (16) g75.0<1>UW g37.0<16,8,1>UB {align1};
+mov (16) g76.0<1>UW g38.0<16,8,1>UB {align1};
+mov (16) g77.0<1>UW g39.0<16,8,1>UB {align1};
+mov (16) g78.0<1>UW g40.0<16,8,1>UB {align1};
+mov (16) g79.0<1>UW g41.0<16,8,1>UB {align1};
+mov (16) g80.0<1>UW g42.0<16,8,1>UB {align1};
+mov (16) g81.0<1>UW g43.0<16,8,1>UB {align1};
diff --git a/src/xvmc/shader/vld/read_frame_x0y0_y.g4i b/src/xvmc/shader/vld/read_frame_x0y0_y.g4i
new file mode 100644
index 0000000..3ab5ccd
--- /dev/null
+++ b/src/xvmc/shader/vld/read_frame_x0y0_y.g4i
@@ -0,0 +1,58 @@
+/*
+ * Copyright © 2009 Intel Corporation
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice (including the next
+ * paragraph) shall be included in all copies or substantial portions of the
+ * Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
+ * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+ * SOFTWARE.
+ *
+ * Author:
+ *    Zou Nan hai <nanhai.zou at intel.com>
+ *    Yan Li <li.l.yan at intel.com>
+ *    Liu Xi bin<xibin.liu at intel.com>
+ */
+/* GRF allocation:
+   g1~g30: constant buffer
+           g1~g2:intra IQ matrix
+           g3~g4:non intra IQ matrix
+           g5~g20:IDCT table
+   g31:    thread payload 
+   g32:    message descriptor for reading reference data
+   g58~g81:reference data
+   g82:    thread payload backup
+   g83~g106:IDCT data                           */
+mov (1) g32.8<1>UD 0x007001FUD {align1};
+send (16) 0 g38.0<1>UW g32<8,8,1>UW read(input_surface, 2, 0, 2) mlen 1 rlen 8 {align1};
+add (1) g32.4<1>UD g32.4<1,1,1>UD 8UD {align1};
+send (16) 0 g46.0<1>UW g32<8,8,1>UW read(input_surface, 2, 0, 2) mlen 1 rlen 8 {align1};
+
+mov (16) g58.0<1>UW g38.0<16,16,1>UB {align1};
+mov (16) g59.0<1>UW g39.0<16,16,1>UB {align1};
+mov (16) g60.0<1>UW g40.0<16,16,1>UB {align1};
+mov (16) g61.0<1>UW g41.0<16,16,1>UB {align1};
+mov (16) g62.0<1>UW g42.0<16,16,1>UB {align1};
+mov (16) g63.0<1>UW g43.0<16,16,1>UB {align1};
+mov (16) g64.0<1>UW g44.0<16,16,1>UB {align1};
+mov (16) g65.0<1>UW g45.0<16,16,1>UB {align1};
+mov (16) g66.0<1>UW g46.0<16,16,1>UB {align1};
+mov (16) g67.0<1>UW g47.0<16,16,1>UB {align1};
+mov (16) g68.0<1>UW g48.0<16,16,1>UB {align1};
+mov (16) g69.0<1>UW g49.0<16,16,1>UB {align1};
+mov (16) g70.0<1>UW g50.0<16,16,1>UB {align1};
+mov (16) g71.0<1>UW g51.0<16,16,1>UB {align1};
+mov (16) g72.0<1>UW g52.0<16,16,1>UB {align1};
+mov (16) g73.0<1>UW g53.0<16,16,1>UB {align1};
diff --git a/src/xvmc/shader/vld/read_frame_x0y1_y.g4i b/src/xvmc/shader/vld/read_frame_x0y1_y.g4i
new file mode 100644
index 0000000..db3dcc5
--- /dev/null
+++ b/src/xvmc/shader/vld/read_frame_x0y1_y.g4i
@@ -0,0 +1,61 @@
+/*
+ * Copyright © 2009 Intel Corporation
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice (including the next
+ * paragraph) shall be included in all copies or substantial portions of the
+ * Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
+ * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+ * SOFTWARE.
+ *
+ * Author:
+ *    Zou Nan hai <nanhai.zou at intel.com>
+ *    Yan Li <li.l.yan at intel.com>
+ *    Liu Xi bin<xibin.liu at intel.com>
+ */
+/* GRF allocation:
+   g1~g30: constant buffer
+           g1~g2:intra IQ matrix
+           g3~g4:non intra IQ matrix
+           g5~g20:IDCT table
+   g31:    thread payload 
+   g32:    message descriptor for reading reference data
+   g58~g81:reference data
+   g82:    thread payload backup
+   g83~g106:IDCT data                           */
+mov (1) g32.8<1>UD 0x007001FUD {align1};
+send (16) 0 g38.0<1>UW g32<8,8,1>UW read(input_surface, 2, 0, 2) mlen 1 rlen 8 {align1};
+add (1) g32.4<1>UD g32.4<1,1,1>UD 8UD {align1};
+send (16) 0 g46.0<1>UW g32<8,8,1>UW read(input_surface, 2, 0, 2) mlen 1 rlen 8 {align1};
+add (1) g32.4<1>UD g32.4<1,1,1>UD 8UD {align1};
+mov (1) g32.8<1>UD 0x1FUD {align1};
+send (16) 0 g54.0<1>UW g32<8,8,1>UW read(input_surface, 2, 0, 2) mlen 1 rlen 1 {align1};
+
+avg.sat (16) g58.0<1>UW g38.0<16,16,1>UB g39.0<16,16,1>UB {align1};
+avg.sat (16) g59.0<1>UW g39.0<16,16,1>UB g40.0<16,16,1>UB {align1};
+avg.sat (16) g60.0<1>UW g40.0<16,16,1>UB g41.0<16,16,1>UB {align1};
+avg.sat (16) g61.0<1>UW g41.0<16,16,1>UB g42.0<16,16,1>UB {align1};
+avg.sat (16) g62.0<1>UW g42.0<16,16,1>UB g43.0<16,16,1>UB {align1};
+avg.sat (16) g63.0<1>UW g43.0<16,16,1>UB g44.0<16,16,1>UB {align1};
+avg.sat (16) g64.0<1>UW g44.0<16,16,1>UB g45.0<16,16,1>UB {align1};
+avg.sat (16) g65.0<1>UW g45.0<16,16,1>UB g46.0<16,16,1>UB {align1};
+avg.sat (16) g66.0<1>UW g46.0<16,16,1>UB g47.0<16,16,1>UB {align1};
+avg.sat (16) g67.0<1>UW g47.0<16,16,1>UB g48.0<16,16,1>UB {align1};
+avg.sat (16) g68.0<1>UW g48.0<16,16,1>UB g49.0<16,16,1>UB {align1};
+avg.sat (16) g69.0<1>UW g49.0<16,16,1>UB g50.0<16,16,1>UB {align1};
+avg.sat (16) g70.0<1>UW g50.0<16,16,1>UB g51.0<16,16,1>UB {align1};
+avg.sat (16) g71.0<1>UW g51.0<16,16,1>UB g52.0<16,16,1>UB {align1};
+avg.sat (16) g72.0<1>UW g52.0<16,16,1>UB g53.0<16,16,1>UB {align1};
+avg.sat (16) g73.0<1>UW g53.0<16,16,1>UB g54.0<16,16,1>UB {align1};
diff --git a/src/xvmc/shader/vld/read_frame_x1y0_y.g4i b/src/xvmc/shader/vld/read_frame_x1y0_y.g4i
new file mode 100644
index 0000000..c236d11
--- /dev/null
+++ b/src/xvmc/shader/vld/read_frame_x1y0_y.g4i
@@ -0,0 +1,58 @@
+/*
+ * Copyright © 2009 Intel Corporation
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice (including the next
+ * paragraph) shall be included in all copies or substantial portions of the
+ * Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
+ * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+ * SOFTWARE.
+ *
+ * Author:
+ *    Zou Nan hai <nanhai.zou at intel.com>
+ *    Yan Li <li.l.yan at intel.com>
+ *    Liu Xi bin<xibin.liu at intel.com>
+ */
+/* GRF allocation:
+   g1~g30: constant buffer
+           g1~g2:intra IQ matrix
+           g3~g4:non intra IQ matrix
+           g5~g20:IDCT table
+   g31:    thread payload 
+   g32:    message descriptor for reading reference data
+   g58~g81:reference data
+   g82:    thread payload backup
+   g83~g106:IDCT data                           */
+mov (1) g32.8<1>UD 0x007001FUD {align1};
+send (16) 0 g38.0<1>UW g32<8,8,1>UW read(input_surface, 2, 0, 2) mlen 1 rlen 8 {align1};
+add (1) g32.4<1>UD g32.4<1,1,1>UD 8UD {align1};
+send (16) 0 g46.0<1>UW g32<8,8,1>UW read(input_surface, 2, 0, 2) mlen 1 rlen 8 {align1};
+
+avg.sat (16) g58.0<1>UW g38.0<16,16,1>UB g38.1<16,16,1>UB {align1};
+avg.sat (16) g59.0<1>UW g39.0<16,16,1>UB g39.1<16,16,1>UB {align1};
+avg.sat (16) g60.0<1>UW g40.0<16,16,1>UB g40.1<16,16,1>UB {align1};
+avg.sat (16) g61.0<1>UW g41.0<16,16,1>UB g41.1<16,16,1>UB {align1};
+avg.sat (16) g62.0<1>UW g42.0<16,16,1>UB g42.1<16,16,1>UB {align1};
+avg.sat (16) g63.0<1>UW g43.0<16,16,1>UB g43.1<16,16,1>UB {align1};
+avg.sat (16) g64.0<1>UW g44.0<16,16,1>UB g44.1<16,16,1>UB {align1};
+avg.sat (16) g65.0<1>UW g45.0<16,16,1>UB g45.1<16,16,1>UB {align1};
+avg.sat (16) g66.0<1>UW g46.0<16,16,1>UB g46.1<16,16,1>UB {align1};
+avg.sat (16) g67.0<1>UW g47.0<16,16,1>UB g47.1<16,16,1>UB {align1};
+avg.sat (16) g68.0<1>UW g48.0<16,16,1>UB g48.1<16,16,1>UB {align1};
+avg.sat (16) g69.0<1>UW g49.0<16,16,1>UB g49.1<16,16,1>UB {align1};
+avg.sat (16) g70.0<1>UW g50.0<16,16,1>UB g50.1<16,16,1>UB {align1};
+avg.sat (16) g71.0<1>UW g51.0<16,16,1>UB g51.1<16,16,1>UB {align1};
+avg.sat (16) g72.0<1>UW g52.0<16,16,1>UB g52.1<16,16,1>UB {align1};
+avg.sat (16) g73.0<1>UW g53.0<16,16,1>UB g53.1<16,16,1>UB {align1};
diff --git a/src/xvmc/shader/vld/read_frame_x1y1_y.g4i b/src/xvmc/shader/vld/read_frame_x1y1_y.g4i
new file mode 100644
index 0000000..990927d
--- /dev/null
+++ b/src/xvmc/shader/vld/read_frame_x1y1_y.g4i
@@ -0,0 +1,112 @@
+/*
+ * Copyright © 2009 Intel Corporation
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice (including the next
+ * paragraph) shall be included in all copies or substantial portions of the
+ * Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
+ * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+ * SOFTWARE.
+ *
+ * Author:
+ *    Zou Nan hai <nanhai.zou at intel.com>
+ *    Yan Li <li.l.yan at intel.com>
+ *    Liu Xi bin<xibin.liu at intel.com>
+ */
+/* GRF allocation:
+   g1~g30: constant buffer
+           g1~g2:intra IQ matrix
+           g3~g4:non intra IQ matrix
+           g5~g20:IDCT table
+   g31:    thread payload 
+   g32:    message descriptor for reading reference data
+   g58~g81:reference data
+   g82:    thread payload backup
+   g83~g106:IDCT data                           */
+mov (1) g32.8<1>UD 0x007001FUD {align1};
+send (16) 0 g38.0<1>UW g32<8,8,1>UW read(input_surface, 2, 0, 2) mlen 1 rlen 8 {align1};
+add (1) g32.4<1>UD g32.4<1,1,1>UD 8UD {align1};
+send (16) 0 g46.0<1>UW g32<8,8,1>UW read(input_surface, 2, 0, 2) mlen 1 rlen 8 {align1};
+add (1) g32.4<1>UD g32.4<1,1,1>UD 8UD {align1};
+mov (1) g32.8<1>UD 0x1FUD {align1};
+send (16) 0 g54.0<1>UW g32<8,8,1>UW read(input_surface, 2, 0, 2) mlen 1 rlen 1 {align1};
+
+add (16) g58.0<1>UW g38.0<16,16,1>UB g38.1<16,16,1>UB {align1};
+add (16) g59.0<1>UW g39.0<16,16,1>UB g39.1<16,16,1>UB {align1};
+add (16) g60.0<1>UW g40.0<16,16,1>UB g40.1<16,16,1>UB {align1};
+add (16) g61.0<1>UW g41.0<16,16,1>UB g41.1<16,16,1>UB {align1};
+add (16) g62.0<1>UW g42.0<16,16,1>UB g42.1<16,16,1>UB {align1};
+add (16) g63.0<1>UW g43.0<16,16,1>UB g43.1<16,16,1>UB {align1};
+add (16) g64.0<1>UW g44.0<16,16,1>UB g44.1<16,16,1>UB {align1};
+add (16) g65.0<1>UW g45.0<16,16,1>UB g45.1<16,16,1>UB {align1};
+add (16) g66.0<1>UW g46.0<16,16,1>UB g46.1<16,16,1>UB {align1};
+add (16) g67.0<1>UW g47.0<16,16,1>UB g47.1<16,16,1>UB {align1};
+add (16) g68.0<1>UW g48.0<16,16,1>UB g48.1<16,16,1>UB {align1};
+add (16) g69.0<1>UW g49.0<16,16,1>UB g49.1<16,16,1>UB {align1};
+add (16) g70.0<1>UW g50.0<16,16,1>UB g50.1<16,16,1>UB {align1};
+add (16) g71.0<1>UW g51.0<16,16,1>UB g51.1<16,16,1>UB {align1};
+add (16) g72.0<1>UW g52.0<16,16,1>UB g52.1<16,16,1>UB {align1};
+add (16) g73.0<1>UW g53.0<16,16,1>UB g53.1<16,16,1>UB {align1};
+
+add (16) g58.0<1>UW g58.0<16,16,1>UW g39.0<16,16,1>UB {align1};
+add (16) g59.0<1>UW g59.0<16,16,1>UW g40.0<16,16,1>UB {align1};
+add (16) g60.0<1>UW g60.0<16,16,1>UW g41.0<16,16,1>UB {align1};
+add (16) g61.0<1>UW g61.0<16,16,1>UW g42.0<16,16,1>UB {align1};
+add (16) g62.0<1>UW g62.0<16,16,1>UW g43.0<16,16,1>UB {align1};
+add (16) g63.0<1>UW g63.0<16,16,1>UW g44.0<16,16,1>UB {align1};
+add (16) g64.0<1>UW g64.0<16,16,1>UW g45.0<16,16,1>UB {align1};
+add (16) g65.0<1>UW g65.0<16,16,1>UW g46.0<16,16,1>UB {align1};
+add (16) g66.0<1>UW g66.0<16,16,1>UW g47.0<16,16,1>UB {align1};
+add (16) g67.0<1>UW g67.0<16,16,1>UW g48.0<16,16,1>UB {align1};
+add (16) g68.0<1>UW g68.0<16,16,1>UW g49.0<16,16,1>UB {align1};
+add (16) g69.0<1>UW g69.0<16,16,1>UW g50.0<16,16,1>UB {align1};
+add (16) g70.0<1>UW g70.0<16,16,1>UW g51.0<16,16,1>UB {align1};
+add (16) g71.0<1>UW g71.0<16,16,1>UW g52.0<16,16,1>UB {align1};
+add (16) g72.0<1>UW g72.0<16,16,1>UW g53.0<16,16,1>UB {align1};
+add (16) g73.0<1>UW g73.0<16,16,1>UW g54.0<16,16,1>UB {align1};
+
+add (16) g58.0<1>UW g58.0<16,16,1>UW g39.1<16,16,1>UB {align1};
+add (16) g59.0<1>UW g59.0<16,16,1>UW g40.1<16,16,1>UB {align1};
+add (16) g60.0<1>UW g60.0<16,16,1>UW g41.1<16,16,1>UB {align1};
+add (16) g61.0<1>UW g61.0<16,16,1>UW g42.1<16,16,1>UB {align1};
+add (16) g62.0<1>UW g62.0<16,16,1>UW g43.1<16,16,1>UB {align1};
+add (16) g63.0<1>UW g63.0<16,16,1>UW g44.1<16,16,1>UB {align1};
+add (16) g64.0<1>UW g64.0<16,16,1>UW g45.1<16,16,1>UB {align1};
+add (16) g65.0<1>UW g65.0<16,16,1>UW g46.1<16,16,1>UB {align1};
+add (16) g66.0<1>UW g66.0<16,16,1>UW g47.1<16,16,1>UB {align1};
+add (16) g67.0<1>UW g67.0<16,16,1>UW g48.1<16,16,1>UB {align1};
+add (16) g68.0<1>UW g68.0<16,16,1>UW g49.1<16,16,1>UB {align1};
+add (16) g69.0<1>UW g69.0<16,16,1>UW g50.1<16,16,1>UB {align1};
+add (16) g70.0<1>UW g70.0<16,16,1>UW g51.1<16,16,1>UB {align1};
+add (16) g71.0<1>UW g71.0<16,16,1>UW g52.1<16,16,1>UB {align1};
+add (16) g72.0<1>UW g72.0<16,16,1>UW g53.1<16,16,1>UB {align1};
+add (16) g73.0<1>UW g73.0<16,16,1>UW g54.1<16,16,1>UB {align1};
+
+shr.sat (16) g58.0<1>UW g58.0<16,16,1>UW 2UW {align1};
+shr.sat (16) g59.0<1>UW g59.0<16,16,1>UW 2UW {align1};
+shr.sat (16) g60.0<1>UW g60.0<16,16,1>UW 2UW {align1};
+shr.sat (16) g61.0<1>UW g61.0<16,16,1>UW 2UW {align1};
+shr.sat (16) g62.0<1>UW g62.0<16,16,1>UW 2UW {align1};
+shr.sat (16) g63.0<1>UW g63.0<16,16,1>UW 2UW {align1};
+shr.sat (16) g64.0<1>UW g64.0<16,16,1>UW 2UW {align1};
+shr.sat (16) g65.0<1>UW g65.0<16,16,1>UW 2UW {align1};
+shr.sat (16) g66.0<1>UW g66.0<16,16,1>UW 2UW {align1};
+shr.sat (16) g67.0<1>UW g67.0<16,16,1>UW 2UW {align1};
+shr.sat (16) g68.0<1>UW g68.0<16,16,1>UW 2UW {align1};
+shr.sat (16) g69.0<1>UW g69.0<16,16,1>UW 2UW {align1};
+shr.sat (16) g70.0<1>UW g70.0<16,16,1>UW 2UW {align1};
+shr.sat (16) g71.0<1>UW g71.0<16,16,1>UW 2UW {align1};
+shr.sat (16) g72.0<1>UW g72.0<16,16,1>UW 2UW {align1};
+shr.sat (16) g73.0<1>UW g73.0<16,16,1>UW 2UW {align1};
diff --git a/src/xvmc/xvmc_vld.c b/src/xvmc/xvmc_vld.c
new file mode 100644
index 0000000..d563e0e
--- /dev/null
+++ b/src/xvmc/xvmc_vld.c
@@ -0,0 +1,594 @@
+/*
+ * Copyright © 2009 Intel Corporation
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice (including the next
+ * paragraph) shall be included in all copies or substantial portions of the
+ * Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
+ * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+ * SOFTWARE.
+ *
+ * Author:
+ *    Zou Nan hai <nanhai.zou at intel.com>
+ */
+#include "xvmc_vld.h"
+#include "i965_hwmc.h"
+#include "i810_reg.h"
+#include "brw_defines.h"
+#include "brw_structs.h"
+
+#ifndef ALIGN
+#define ALIGN(m,n) (((m) + (n) - 1) & ~((n) - 1))
+#endif
+
+#define BATCH_STRUCT(x) intelBatchbufferData(&x, sizeof(x), 0)
+
+#define CS_SIZE 30
+#define URB_SIZE 384
+/* idct table */
+#define C0 23170
+#define C1 22725
+#define C2 21407
+#define C3 19266
+#define C4 16383
+#define C5 12873
+#define C6 8867
+#define C7 4520
+const uint32_t idct_table[] = {
+    C4, C1, C2, C3, C4, C5, C6, C7,    		//g5
+    C4, C1, C2, C3, C4, C5, C6, C7,
+    C4, C3, C6,-C7,-C4,-C1,-C2,-C5,    
+    C4, C3, C6,-C7,-C4,-C1,-C2,-C5,
+    C4, C5,-C6,-C1,-C4, C7, C2, C3,
+    C4, C5,-C6,-C1,-C4, C7, C2, C3,
+    C4, C7,-C2,-C5, C4, C3,-C6,-C1,
+    C4, C7,-C2,-C5, C4, C3,-C6,-C1,
+    C4,-C7,-C2, C5, C4,-C3,-C6, C1,
+    C4,-C7,-C2, C5, C4,-C3,-C6, C1,
+    C4,-C5,-C6, C1,-C4,-C7, C2,-C3,
+    C4,-C5,-C6, C1,-C4,-C7, C2,-C3,
+    C4,-C3, C6, C7,-C4, C1,-C2, C5,
+    C4,-C3, C6, C7,-C4, C1,-C2, C5,
+    C4,-C1, C2,-C3, C4,-C5, C6,-C7,
+    C4,-C1, C2,-C3, C4,-C5, C6,-C7		//g20
+};
+#undef C0 
+#undef C1 
+#undef C2 
+#undef C3 
+#undef C4 
+#undef C5 
+#undef C6 
+#undef C7 
+
+enum interface {
+    INTRA_INTERFACE = 0,
+    FORWARD_INTERFACE,
+    BACKWARD_INTERFACE,
+    F_B_INTERFACE,
+    FIELD_FORWARD_INTERFACE,
+    FIELD_BACKWARD_INTERFACE,
+    FIELD_F_B_INTERFACE,
+    LIB_INTERFACE
+};
+
+static uint32_t lib_kernel[][4] = {
+   #include "shader/vld/lib.g4b"
+};
+static uint32_t ipicture_kernel[][4] = {
+   #include "shader/vld/ipicture.g4b"
+};
+static uint32_t frame_forward_kernel[][4] = {
+   #include "shader/vld/frame_forward.g4b"
+};
+static uint32_t frame_backward_kernel[][4] = {
+   #include "shader/vld/frame_backward.g4b"
+};
+static uint32_t frame_f_b_kernel[][4] = {
+   #include "shader/vld/frame_f_b.g4b"
+};
+static uint32_t field_forward_kernel[][4] = {
+   #include "shader/vld/field_forward.g4b"
+};
+static uint32_t field_backward_kernel[][4] = {
+   #include "shader/vld/field_backward.g4b"
+};
+static uint32_t field_f_b_kernel[][4] = {
+   #include "shader/vld/field_f_b.g4b"
+};
+
+struct media_kernel {
+   uint32_t (*bin)[4];
+   int size;
+}media_kernels[] = {
+    {ipicture_kernel, sizeof(ipicture_kernel)},
+    {frame_forward_kernel, sizeof(frame_forward_kernel)},
+    {frame_backward_kernel, sizeof(frame_backward_kernel)},
+    {frame_f_b_kernel, sizeof(frame_f_b_kernel)},
+    {field_forward_kernel, sizeof(field_forward_kernel)},
+    {field_backward_kernel, sizeof(field_backward_kernel)},
+    {field_f_b_kernel, sizeof(field_f_b_kernel)},
+    {lib_kernel, sizeof(lib_kernel)}
+};
+
+#define MEDIA_KERNEL_NUM (sizeof(media_kernels)/sizeof(media_kernels[0]))
+
+static struct media_state {
+    unsigned long state_base;
+    void 	  *state_ptr;
+    unsigned long vld_state_offset;
+    unsigned long vfe_state_offset;
+    unsigned long interface_descriptor_offsets[16];
+    unsigned long kernel_offsets[MEDIA_KERNEL_NUM];
+    unsigned long cs_offset;
+    unsigned long surface_state_offsets[I965_MAX_SURFACES];
+    unsigned long binding_table_offset;
+} media_state;
+
+static int map_buffer(struct drm_memory_block *mem)
+{
+    return drmMap(xvmc_driver->fd, mem->handle, mem->size, &mem->ptr);
+}
+static void unmap_buffer(struct drm_memory_block *mem)
+{
+    drmUnmap(mem->ptr, mem->size);
+}
+
+static void flush()
+{
+#define FLUSH_STATE_CACHE  	1   
+    struct brw_mi_flush f;
+    memset(&f, 0, sizeof(f));
+    f.opcode = CMD_MI_FLUSH;
+    f.flags = (1<<FLUSH_STATE_CACHE);
+    BATCH_STRUCT(f);
+}
+
+static void calc_state_layout()
+{
+  int i;
+  media_state.vld_state_offset = media_state.state_base;
+  media_state.vfe_state_offset = 
+      ALIGN(media_state.vld_state_offset + sizeof(struct brw_vld_state), 64);
+  media_state.interface_descriptor_offsets[0] =
+      ALIGN(media_state.vfe_state_offset + sizeof(struct brw_vfe_state), 64);
+  for (i = 1; i < 16; i++)
+      media_state.interface_descriptor_offsets[i] =
+	  media_state.interface_descriptor_offsets[i - 1] 
+	  + sizeof(struct brw_interface_descriptor);
+  media_state.binding_table_offset = 
+	  ALIGN(media_state.interface_descriptor_offsets[15] + 
+	  + sizeof(struct brw_interface_descriptor), 64);
+  media_state.surface_state_offsets[0] = ALIGN(media_state.binding_table_offset 
+	  + 4*I965_MAX_SURFACES, 32);
+  for (i = 1; i < I965_MAX_SURFACES; i++)
+      media_state.surface_state_offsets[i] = 
+	  ALIGN(media_state.surface_state_offsets[i-1]
+		  + sizeof(struct brw_surface_state), 32);
+
+  media_state.kernel_offsets[0] = 
+      ALIGN(media_state.surface_state_offsets[I965_MAX_SURFACES - 1]
+	      + sizeof(struct brw_surface_state), 64);
+  for (i = 1; i < MEDIA_KERNEL_NUM; i++)
+      media_state.kernel_offsets[i] = 
+	  ALIGN(media_state.kernel_offsets[i-1] + media_kernels[i-1].size, 64);
+  media_state.cs_offset = ALIGN(media_state.kernel_offsets[MEDIA_KERNEL_NUM-1]
+	  + media_kernels[MEDIA_KERNEL_NUM-1].size, 64);
+}
+
+static void *offset_to_ptr(unsigned long offset)
+{
+	return media_state.state_ptr + 
+	    (offset - media_state.state_base);
+}
+
+static void vfe_state()
+{
+  struct brw_vfe_state *vfe_state;
+  vfe_state = offset_to_ptr(media_state.vfe_state_offset);
+  memset(vfe_state, 0, sizeof(*vfe_state));
+  vfe_state->vfe0.extend_vfe_state_present = 1;
+  vfe_state->vfe1.vfe_mode = VFE_VLD_MODE;
+  vfe_state->vfe1.num_urb_entries = 1;
+  vfe_state->vfe1.children_present = 0;
+  vfe_state->vfe1.urb_entry_alloc_size = 2;
+  vfe_state->vfe1.max_threads = 31;
+
+  vfe_state->vfe2.interface_descriptor_base = 
+      media_state.interface_descriptor_offsets[0] >> 4;
+}
+
+static void interface_descriptor()
+{
+    int i;
+    struct brw_interface_descriptor *desc;
+    for (i = 0; i < MEDIA_KERNEL_NUM; i++) {
+	desc = offset_to_ptr(media_state.interface_descriptor_offsets[i]);
+	memset(desc, 0, sizeof(*desc));
+	desc->desc0.grf_reg_blocks = 15;
+	desc->desc0.kernel_start_pointer = media_state.kernel_offsets[i] >> 6;
+
+	desc->desc1.const_urb_entry_read_offset = 0;
+	desc->desc1.const_urb_entry_read_len = 30;
+
+	desc->desc3.binding_table_entry_count = I965_MAX_SURFACES - 1;
+	desc->desc3.binding_table_pointer = media_state.binding_table_offset>>5;
+    }
+}
+
+static void setup_media_kernels()
+{
+    int i;
+    void *kernel_ptr;
+    for (i = 0; i < MEDIA_KERNEL_NUM; i++) {
+	kernel_ptr = offset_to_ptr(media_state.kernel_offsets[i]);
+	memcpy(kernel_ptr, media_kernels[i].bin, media_kernels[i].size);
+    }
+}
+
+static void binding_tables()
+{
+   unsigned int *table;
+   int i;
+   table = offset_to_ptr(media_state.binding_table_offset);
+   for (i = 0; i < I965_MAX_SURFACES; i++)
+       table[i] = media_state.surface_state_offsets[i];
+}
+
+static void cs_init()
+{
+   void *buf;
+   unsigned int *lib_reloc;
+   int i;
+   buf = offset_to_ptr(media_state.cs_offset);
+   memcpy(buf + 32*4, idct_table, sizeof(idct_table));
+   /* idct lib reloction */
+   lib_reloc = buf + 32*20;
+   for (i = 0; i < 8; i++)
+       lib_reloc[i] = media_state.kernel_offsets[LIB_INTERFACE];
+}
+
+static Status create_context(Display *display, XvMCContext *context,
+	int priv_count, CARD32 *priv_data)
+{
+    struct i965_xvmc_context *i965_ctx;
+    i965_ctx = (struct i965_xvmc_context *)priv_data;
+    context->privData = priv_data;
+    if (map_buffer(&i965_ctx->static_buffer))
+	return BadAlloc;
+    if (map_buffer(&i965_ctx->slice))
+	return BadAlloc;
+    media_state.state_base = i965_ctx->static_buffer.offset;
+    media_state.state_ptr = i965_ctx->static_buffer.ptr;
+    calc_state_layout();
+    vfe_state();
+    interface_descriptor();
+    setup_media_kernels();
+    binding_tables();
+    cs_init();
+    return Success;
+}
+
+static Status destroy_context(Display *display, XvMCContext *context)
+{
+    struct i965_xvmc_context *i965_ctx;
+    i965_ctx = context->privData;
+    unmap_buffer(&i965_ctx->slice);
+    unmap_buffer(&i965_ctx->static_buffer);
+    Xfree(i965_ctx);
+    return Success;
+}
+
+static Status create_surface(Display *display,
+	XvMCContext *context, XvMCSurface *surface, int priv_count,
+	CARD32 *priv_data)
+{
+    struct i965_xvmc_surface *x; 
+    surface->privData = priv_data;
+    x = surface->privData;
+    return Success;
+}
+static Status destroy_surface(Display *display,
+	XvMCSurface *surface)
+{
+    return Success;
+}
+
+static Status load_qmatrix(Display *display, XvMCContext *context,
+	const XvMCQMatrix *qmx)
+{
+    unsigned char *qmatrix;
+    qmatrix = offset_to_ptr(media_state.cs_offset);
+    memcpy(qmatrix, qmx->intra_quantiser_matrix, 64);
+    memcpy(qmatrix + 64, qmx->non_intra_quantiser_matrix, 64);
+    return Success;
+}
+
+static Status get_surface_status(Display *display, XvMCSurface *surface,
+	int *status)
+{
+    *status = 0;
+    return Success;
+}
+
+static void vld_state(const XvMCMpegControl *control)
+{
+    struct brw_vld_state *vld;
+    vld = offset_to_ptr(media_state.vld_state_offset);
+    memset(vld, 0, sizeof(*vld));
+
+    vld->vld0.f_code_0_0 = control->FHMV_range + 1;
+    vld->vld0.f_code_0_1 = control->FVMV_range + 1;
+    vld->vld0.f_code_1_0 = control->BHMV_range + 1;
+    vld->vld0.f_code_1_1 = control->BVMV_range + 1;
+    vld->vld0.intra_dc_precision = control->intra_dc_precision;
+    vld->vld0.picture_structure = control->picture_structure;
+    vld->vld0.top_field_first = !!(control->flags & XVMC_TOP_FIELD_FIRST);
+    vld->vld0.frame_predict_frame_dct =
+	!!(control->flags & XVMC_PRED_DCT_FRAME);
+    vld->vld0.concealment_motion_vector =
+	!!(control->flags & XVMC_CONCEALMENT_MOTION_VECTORS);
+    vld->vld0.quantizer_scale_type = !!(control->flags & XVMC_Q_SCALE_TYPE);
+    vld->vld0.intra_vlc_format = !!(control->flags & XVMC_INTRA_VLC_FORMAT);
+    vld->vld0.scan_order = !!(control->flags & XVMC_ALTERNATE_SCAN);
+
+    vld->vld1.picture_coding_type = control->picture_coding_type;
+
+    vld->desc_remap_table0.index_0 = INTRA_INTERFACE;
+    vld->desc_remap_table0.index_1 = FORWARD_INTERFACE;
+    vld->desc_remap_table0.index_2 = FIELD_FORWARD_INTERFACE;
+    vld->desc_remap_table0.index_3 = FIELD_F_B_INTERFACE; /* dual prime */
+    vld->desc_remap_table0.index_4 = BACKWARD_INTERFACE;
+    vld->desc_remap_table0.index_5 = FIELD_BACKWARD_INTERFACE;
+    vld->desc_remap_table0.index_6 = F_B_INTERFACE;
+    vld->desc_remap_table0.index_7 = FIELD_F_B_INTERFACE;
+
+    vld->desc_remap_table1.index_8 = INTRA_INTERFACE;
+    vld->desc_remap_table1.index_9 = FORWARD_INTERFACE;
+    vld->desc_remap_table1.index_10 = FIELD_FORWARD_INTERFACE;
+    vld->desc_remap_table1.index_11 = FIELD_F_B_INTERFACE;
+    vld->desc_remap_table1.index_12 = BACKWARD_INTERFACE;
+    vld->desc_remap_table1.index_13 = FIELD_BACKWARD_INTERFACE;
+    vld->desc_remap_table1.index_14 = F_B_INTERFACE;
+    vld->desc_remap_table1.index_15 = FIELD_F_B_INTERFACE;
+}
+
+static void setup_media_surface(int binding_table_index, 
+	unsigned long offset, int w, int h)
+{
+    struct brw_surface_state *ss;
+    ss = offset_to_ptr(media_state.surface_state_offsets[binding_table_index]);
+    memset(ss, 0, sizeof(*ss)); 
+    ss->ss0.surface_type = BRW_SURFACE_2D;
+    ss->ss0.surface_format = BRW_SURFACEFORMAT_R8_SINT;
+    ss->ss1.base_addr = offset;
+    ss->ss2.width = w - 1;
+    ss->ss2.height = h - 1;
+    ss->ss3.pitch = w - 1;
+}
+
+static void setup_surface(struct i965_xvmc_surface *target,
+	 struct i965_xvmc_surface *past,
+	 struct i965_xvmc_surface *future,
+	 int w, int h)
+{
+    unsigned long dst_offset, past_offset, future_offset;
+    dst_offset = target->buffer.offset;
+    setup_media_surface(0, dst_offset, w, h);
+    setup_media_surface(1, dst_offset + w*h, w/2, h/2);
+    setup_media_surface(2, dst_offset + w*h + w*h/4, w/2, h/2);
+    if (past) {
+	past_offset = past->buffer.offset;
+	setup_media_surface(4, past_offset, w, h);
+	setup_media_surface(5, past_offset + w*h, w/2, h/2);
+	setup_media_surface(6, past_offset + w*h + w*h/4, w/2, h/2);
+    }
+    if (future) {
+	future_offset = future->buffer.offset;
+	setup_media_surface(7, future_offset, w, h);
+	setup_media_surface(8, future_offset + w*h, w/2, h/2);
+	setup_media_surface(9, future_offset + w*h + w*h/4, w/2, h/2);
+    }
+}
+
+static  Status begin_surface(Display *display, XvMCContext *context,
+	    XvMCSurface *target,
+	    XvMCSurface *past,
+	    XvMCSurface *future,
+	    const XvMCMpegControl *control)
+{
+    struct i965_xvmc_contex *i965_ctx;
+    struct i965_xvmc_surface *priv_target, *priv_past, *priv_future;
+    intel_xvmc_context_ptr intel_ctx;
+    intel_ctx = intel_xvmc_find_context(context->context_id);
+    priv_target = target->privData;
+    priv_past = past?past->privData:NULL;
+    priv_future = future?future->privData:NULL;
+    vld_state(control);
+    setup_surface(priv_target, priv_past, priv_future, 
+	    context->width, context->height);
+    LOCK_HARDWARE(intel_ctx->hw_context);
+    flush();
+    UNLOCK_HARDWARE(intel_ctx->hw_context);
+    return Success;
+}
+
+static Status put_slice(Display *display, XvMCContext *context, 
+	unsigned char *slice, int nbytes)
+{
+    return Success;
+}
+
+static void state_base_address()
+{
+    BATCH_LOCALS;
+    BEGIN_BATCH(6);
+    OUT_BATCH(BRW_STATE_BASE_ADDRESS|4);
+    OUT_BATCH(0 | BASE_ADDRESS_MODIFY);
+    OUT_BATCH(0 | BASE_ADDRESS_MODIFY);
+    OUT_BATCH(0 | BASE_ADDRESS_MODIFY);
+    OUT_BATCH(0 | BASE_ADDRESS_MODIFY);
+    OUT_BATCH((0xFFFFF<<12) | BASE_ADDRESS_MODIFY);
+    ADVANCE_BATCH();
+}
+
+static void pipeline_select()
+{
+    BATCH_LOCALS;
+    BEGIN_BATCH(1);
+    OUT_BATCH(NEW_PIPELINE_SELECT|PIPELINE_SELECT_MEDIA);
+    ADVANCE_BATCH();
+}
+static void media_state_pointers()
+{
+    BATCH_LOCALS;
+    BEGIN_BATCH(3);
+    OUT_BATCH(BRW_MEDIA_STATE_POINTERS|1);
+    OUT_BATCH(media_state.vld_state_offset|1);
+    OUT_BATCH(media_state.vfe_state_offset);
+    ADVANCE_BATCH();
+}
+static void align_urb_fence()
+{
+    BATCH_LOCALS;
+    int i, offset_to_next_cacheline;
+    unsigned long batch_offset;
+    BEGIN_BATCH(3);
+    batch_offset = (void *)batch_ptr - xvmc_driver->alloc.ptr;
+    offset_to_next_cacheline = ALIGN(batch_offset, 64) - batch_offset; 
+    if (offset_to_next_cacheline <= 12 && offset_to_next_cacheline != 0) {
+	for (i = 0; i < offset_to_next_cacheline/4; i++)
+	    OUT_BATCH(0);
+	ADVANCE_BATCH();
+    }
+}
+static void urb_layout()
+{
+    BATCH_LOCALS;
+    align_urb_fence();
+    BEGIN_BATCH(3);
+    OUT_BATCH(BRW_URB_FENCE |
+	    UF0_VFE_REALLOC |
+	    UF0_CS_REALLOC |
+	    UF0_SF_REALLOC |
+	    UF0_CLIP_REALLOC |
+	    UF0_GS_REALLOC |
+	    UF0_VS_REALLOC |
+	    1);
+
+    OUT_BATCH((0 << UF1_CLIP_FENCE_SHIFT) |
+	    (0 << UF1_GS_FENCE_SHIFT) |
+	    (0 << UF1_VS_FENCE_SHIFT));
+
+    OUT_BATCH((0 << UF2_CS_FENCE_SHIFT) |
+	    (0 << UF2_SF_FENCE_SHIFT) |
+	    ((URB_SIZE - CS_SIZE - 1)<< UF2_VFE_FENCE_SHIFT) |	/* VFE_SIZE */
+	    ((URB_SIZE)<< UF2_CS_FENCE_SHIFT));			/* CS_SIZE */
+    ADVANCE_BATCH();
+}
+
+static void cs_urb_layout()
+{
+    BATCH_LOCALS;
+    BEGIN_BATCH(2);
+    OUT_BATCH(BRW_CS_URB_STATE | 0);
+    OUT_BATCH((CS_SIZE << 4) |    /* URB Entry Allocation Size */
+	    (1 << 0));    /* Number of URB Entries */
+    ADVANCE_BATCH();
+}
+
+static void cs_buffer()
+{
+    BATCH_LOCALS;
+    BEGIN_BATCH(2);
+    OUT_BATCH(BRW_CONSTANT_BUFFER|0|(1<<8));
+    OUT_BATCH(media_state.cs_offset|CS_SIZE);
+    ADVANCE_BATCH();
+}
+
+static void vld_send_media_object(unsigned long slice_offset,
+	int slice_len, int mb_h_pos, int mb_v_pos, int mb_bit_offset,
+	int mb_count, int q_scale_code)
+{
+    BATCH_LOCALS;
+    BEGIN_BATCH(6);
+    OUT_BATCH(BRW_MEDIA_OBJECT|4);
+    OUT_BATCH(0);
+    OUT_BATCH(slice_len);
+    OUT_BATCH(slice_offset);
+    OUT_BATCH((mb_h_pos<<24)|(mb_v_pos<<16)|(mb_count<<8)|(mb_bit_offset));
+    OUT_BATCH(q_scale_code<<24);
+    ADVANCE_BATCH();
+}
+
+static Status put_slice2(Display *display, XvMCContext *context, 
+	unsigned char *slice, int nbytes, int sliceCode)
+{
+    unsigned int bit_buf;
+    intel_xvmc_context_ptr intel_ctx;
+    struct i965_xvmc_context *i965_ctx;
+    int q_scale_code, mb_row;
+
+    i965_ctx = (struct i965_xvmc_context *)context->privData;
+    mb_row = *(slice - 1) - 1;
+    bit_buf = (slice[0]<<24) | (slice[1]<<16) | (slice[2]<<8) | (slice[3]);
+
+    q_scale_code = bit_buf>>27;
+
+    memcpy(i965_ctx->slice.ptr, slice, nbytes);
+    intel_ctx = intel_xvmc_find_context(context->context_id);
+
+    LOCK_HARDWARE(intel_ctx->hw_context);
+    state_base_address();
+    pipeline_select(&media_state);
+    media_state_pointers(&media_state);
+    urb_layout();	
+    cs_urb_layout();
+    cs_buffer();
+    vld_send_media_object(i965_ctx->slice.offset, nbytes, 
+	    0, mb_row, 6, 127, q_scale_code);
+    intelFlushBatch(TRUE);
+    UNLOCK_HARDWARE(intel_ctx->hw_context);
+
+    return Success;
+}
+
+static Status put_surface(Display *display,XvMCSurface *surface,
+	Drawable draw, short srcx, short srcy,
+	unsigned short srcw, unsigned short srch,
+	short destx, short desty,
+	unsigned short destw, unsigned short desth,
+	int flags, struct intel_xvmc_command *data)
+{
+	struct i965_xvmc_surface *private_surface =
+		surface->privData;
+
+	data->surf_offset = private_surface->buffer.offset;
+	return Success;
+}
+
+struct _intel_xvmc_driver xvmc_vld_driver = {
+    .type = XVMC_I965_MPEG2_VLD,
+    .create_context = create_context,
+    .destroy_context = destroy_context,
+    .create_surface = create_surface,
+    .destroy_surface = destroy_surface,
+    .load_qmatrix = load_qmatrix,
+    .get_surface_status = get_surface_status,
+    .begin_surface = begin_surface,
+    .put_surface = put_surface,
+    .put_slice = put_slice,
+    .put_slice2 = put_slice2
+};
diff --git a/src/xvmc/xvmc_vld.h b/src/xvmc/xvmc_vld.h
new file mode 100644
index 0000000..ad2b470
--- /dev/null
+++ b/src/xvmc/xvmc_vld.h
@@ -0,0 +1 @@
+#include "i965_xvmc.h"


More information about the xorg-commit mailing list