firmware: convert Ambassador ATM driver to request_firmware()

Since it had various regions to be loaded to separate addresses, and it
wanted to do them in fairly small chunks anyway, switch it to use the
new ihex code. Encode the start address in the first record.

Signed-off-by: David Woodhouse <dwmw2@infradead.org>
Acked-by: Chas Williams <chas@cmf.nrl.navy.mil>
diff --git a/drivers/atm/Makefile b/drivers/atm/Makefile
index e4fa996..749266e 100644
--- a/drivers/atm/Makefile
+++ b/drivers/atm/Makefile
@@ -6,9 +6,9 @@
 hostprogs-y	:= fore200e_mkfirm
 
 # Files generated that shall be removed upon make clean
-clean-files := atmsar11.bin atmsar11.bin1 atmsar11.bin2 pca200e.bin \
-	pca200e.bin1 pca200e.bin2 pca200e_ecd.bin pca200e_ecd.bin1 \
-	pca200e_ecd.bin2 sba200e_ecd.bin sba200e_ecd.bin1 sba200e_ecd.bin2
+clean-files := pca200e.bin pca200e.bin1 pca200e.bin2 pca200e_ecd.bin \
+	pca200e_ecd.bin1 pca200e_ecd.bin2 sba200e_ecd.bin sba200e_ecd.bin1 \
+	sba200e_ecd.bin2
 # Firmware generated that shall be removed upon make clean
 clean-files += fore200e_pca_fw.c fore200e_sba_fw.c
 
diff --git a/drivers/atm/ambassador.c b/drivers/atm/ambassador.c
index 6adb72a..703364b 100644
--- a/drivers/atm/ambassador.c
+++ b/drivers/atm/ambassador.c
@@ -34,6 +34,8 @@
 #include <linux/poison.h>
 #include <linux/bitrev.h>
 #include <linux/mutex.h>
+#include <linux/firmware.h>
+#include <linux/ihex.h>
 
 #include <asm/atomic.h>
 #include <asm/io.h>
@@ -290,29 +292,6 @@
   
 */
 
-/********** microcode **********/
-
-#ifdef AMB_NEW_MICROCODE
-#define UCODE(x) UCODE2(atmsar12.x)
-#else
-#define UCODE(x) UCODE2(atmsar11.x)
-#endif
-#define UCODE2(x) #x
-
-static u32 __devinitdata ucode_start =
-#include UCODE(start)
-;
-
-static region __devinitdata ucode_regions[] = {
-#include UCODE(regions)
-  { 0, 0 }
-};
-
-static u32 __devinitdata ucode_data[] = {
-#include UCODE(data)
-  0xdeadbeef
-};
-
 static void do_housekeeping (unsigned long arg);
 /********** globals **********/
 
@@ -1841,45 +1820,34 @@
 
 /* loader: write memory data blocks */
 
-static int __devinit loader_write (loader_block * lb,
-				const amb_dev * dev, const u32 * data,
-				u32 address, unsigned int count) {
-  unsigned int i;
+static int __devinit loader_write (loader_block* lb,
+				   const amb_dev *dev,
+				   const struct ihex_binrec *rec) {
   transfer_block * tb = &lb->payload.transfer;
   
   PRINTD (DBG_FLOW|DBG_LOAD, "loader_write");
-  
-  if (count > MAX_TRANSFER_DATA)
-    return -EINVAL;
-  tb->address = cpu_to_be32 (address);
-  tb->count = cpu_to_be32 (count);
-  for (i = 0; i < count; ++i)
-    tb->data[i] = cpu_to_be32 (data[i]);
+
+  tb->address = rec->addr;
+  tb->count = cpu_to_be32(be16_to_cpu(rec->len) / 4);
+  memcpy(tb->data, rec->data, be16_to_cpu(rec->len));
   return do_loader_command (lb, dev, write_adapter_memory);
 }
 
 /* loader: verify memory data blocks */
 
 static int __devinit loader_verify (loader_block * lb,
-				 const amb_dev * dev, const u32 * data,
-				 u32 address, unsigned int count) {
-  unsigned int i;
+				    const amb_dev *dev,
+				    const struct ihex_binrec *rec) {
   transfer_block * tb = &lb->payload.transfer;
   int res;
   
   PRINTD (DBG_FLOW|DBG_LOAD, "loader_verify");
   
-  if (count > MAX_TRANSFER_DATA)
-    return -EINVAL;
-  tb->address = cpu_to_be32 (address);
-  tb->count = cpu_to_be32 (count);
+  tb->address = rec->addr;
+  tb->count = cpu_to_be32(be16_to_cpu(rec->len) / 4);
   res = do_loader_command (lb, dev, read_adapter_memory);
-  if (!res)
-    for (i = 0; i < count; ++i)
-      if (tb->data[i] != cpu_to_be32 (data[i])) {
-	res = -EINVAL;
-	break;
-      }
+  if (!res && memcmp(tb->data, rec->data, be16_to_cpu(rec->len)))
+    res = -EINVAL;
   return res;
 }
 
@@ -1962,47 +1930,53 @@
 /********** transfer and start the microcode **********/
 
 static int __devinit ucode_init (loader_block * lb, amb_dev * dev) {
-  unsigned int i = 0;
-  unsigned int total = 0;
-  const u32 * pointer = ucode_data;
-  u32 address;
-  unsigned int count;
+  const struct firmware *fw;
+  unsigned long start_address;
+  const struct ihex_binrec *rec;
   int res;
   
+  res = request_ihex_firmware(&fw, "atmsar11.fw", &dev->pci_dev->dev);
+  if (res) {
+    PRINTK (KERN_ERR, "Cannot load microcode data");
+    return res;
+  }
+
+  /* First record contains just the start address */
+  rec = (const struct ihex_binrec *)fw->data;
+  if (be16_to_cpu(rec->len) != sizeof(__be32) || be32_to_cpu(rec->addr)) {
+    PRINTK (KERN_ERR, "Bad microcode data (no start record)");
+    return -EINVAL;
+  }
+  start_address = be32_to_cpup((__be32 *)rec->data);
+
+  rec = ihex_next_binrec(rec);
+
   PRINTD (DBG_FLOW|DBG_LOAD, "ucode_init");
-  
-  while (address = ucode_regions[i].start,
-	 count = ucode_regions[i].count) {
-    PRINTD (DBG_LOAD, "starting region (%x, %u)", address, count);
-    while (count) {
-      unsigned int words;
-      if (count <= MAX_TRANSFER_DATA)
-	words = count;
-      else
-	words = MAX_TRANSFER_DATA;
-      total += words;
-      res = loader_write (lb, dev, pointer, address, words);
-      if (res)
-	return res;
-      res = loader_verify (lb, dev, pointer, address, words);
-      if (res)
-	return res;
-      count -= words;
-      address += sizeof(u32) * words;
-      pointer += words;
+
+  while (rec) {
+    PRINTD (DBG_LOAD, "starting region (%x, %u)", be32_to_cpu(rec->addr),
+	    be16_to_cpu(rec->len));
+    if (be16_to_cpu(rec->len) > 4 * MAX_TRANSFER_DATA) {
+	    PRINTK (KERN_ERR, "Bad microcode data (record too long)");
+	    return -EINVAL;
     }
-    i += 1;
+    if (be16_to_cpu(rec->len) & 3) {
+	    PRINTK (KERN_ERR, "Bad microcode data (odd number of bytes)");
+	    return -EINVAL;
+    }
+    res = loader_write(lb, dev, rec);
+    if (res)
+      break;
+
+    res = loader_verify(lb, dev, rec);
+    if (res)
+      break;
   }
-  if (*pointer == ATM_POISON) {
-    return loader_start (lb, dev, ucode_start);
-  } else {
-    // cast needed as there is no %? for pointer differnces
-    PRINTD (DBG_LOAD|DBG_ERR,
-	    "offset=%li, *pointer=%x, address=%x, total=%u",
-	    (long) (pointer - ucode_data), *pointer, address, total);
-    PRINTK (KERN_ERR, "incorrect microcode data");
-    return -ENOMEM;
-  }
+  release_firmware(fw);
+  if (!res)
+    res = loader_start(lb, dev, start_address);
+
+  return res;
 }
 
 /********** give adapter parameters **********/
diff --git a/drivers/atm/ambassador.h b/drivers/atm/ambassador.h
index df55fa8..bd1c46a 100644
--- a/drivers/atm/ambassador.h
+++ b/drivers/atm/ambassador.h
@@ -656,17 +656,6 @@
 #define AMB_DEV(atm_dev) ((amb_dev *) (atm_dev)->dev_data)
 #define AMB_VCC(atm_vcc) ((amb_vcc *) (atm_vcc)->dev_data)
 
-/* the microcode */
-
-typedef struct {
-  u32 start;
-  unsigned int count;
-} region;
-
-static region ucode_regions[];
-static u32 ucode_data[];
-static u32 ucode_start;
-
 /* rate rounding */
 
 typedef enum {
diff --git a/drivers/atm/atmsar11.data b/drivers/atm/atmsar11.data
deleted file mode 100644
index 5dc8a76..0000000
--- a/drivers/atm/atmsar11.data
+++ /dev/null
@@ -1,2063 +0,0 @@
-/*
-  Madge Ambassador ATM Adapter microcode.
-  Copyright (C) 1995-1999  Madge Networks Ltd.
-  
-  This microcode data is placed under the terms of the GNU General
-  Public License. The GPL is contained in /usr/doc/copyright/GPL on a
-  Debian system and in the file COPYING in the Linux kernel source.
-  
-  We would prefer you not to distribute modified versions without
-  consultation and not to ask for assembly/other microcode source.
-*/
-
-  0x401a6800,
-  0x00000000,
-  0x335b007c,
-  0x13600005,
-  0x335b1000,
-  0x3c1aa0c0,
-  0x375a0180,
-  0x03400008,
-  0x00000000,
-  0x1760fffb,
-  0x335b4000,
-  0x401a7000,
-  0x13600003,
-  0x241b0fc0,
-  0xaf9b4500,
-  0x25080008,
-  0x03400008,
-  0x42000010,
-  0x8f810c90,
-  0x32220002,
-  0x10400003,
-  0x3c03a0d1,
-  0x2463f810,
-  0x0060f809,
-  0x24210001,
-  0x1000001a,
-  0xaf810c90,
-  0x82020011,
-  0xaf900c48,
-  0x0441000a,
-  0x34420080,
-  0x967d0002,
-  0x96020012,
-  0x00000000,
-  0x105d0011,
-  0x00000000,
-  0x04110161,
-  0xa6620002,
-  0x1000000d,
-  0xae62000c,
-  0x34848000,
-  0xa2020011,
-  0x4d01ffff,
-  0x00000000,
-  0x8f834c00,
-  0x00000000,
-  0xaf830fec,
-  0x00e0f809,
-  0x03e03821,
-  0x00041400,
-  0x0440fff7,
-  0x00000000,
-  0xaf80460c,
-  0x8e100008,
-  0x4d01ffff,
-  0x00000000,
-  0x8f834c00,
-  0x4900001d,
-  0xaf830fec,
-  0x8f820cbc,
-  0x8f9d0c4c,
-  0x24420001,
-  0x97be0000,
-  0xaf820cbc,
-  0x13c00009,
-  0xaca200d8,
-  0xa7a00000,
-  0x3c0100d1,
-  0x003e0825,
-  0x9422002c,
-  0x0411013f,
-  0xa4220002,
-  0xac22000c,
-  0xac200010,
-  0x8f9e0c54,
-  0x27bd0002,
-  0x17be0002,
-  0x8ca200c0,
-  0x8f9d0c50,
-  0x8f970fc8,
-  0xaf9d0c4c,
-  0x12e20005,
-  0x87804002,
-  0x3c02a0d1,
-  0x2442f94c,
-  0x0040f809,
-  0x00000000,
-  0x00e0f809,
-  0x03e03821,
-  0x4500ffdc,
-  0x8e11000c,
-  0x3c1300d1,
-  0x00111102,
-  0x2c430400,
-  0x1060ffb9,
-  0x00021180,
-  0x02629821,
-  0x8e76003c,
-  0x32220008,
-  0x1440ffb7,
-  0x8e770034,
-  0x8e750030,
-  0x3c03cfb0,
-  0x16c00003,
-  0x02d5102b,
-  0x041100be,
-  0x00000000,
-  0x1040ffa6,
-  0x00701826,
-  0x4d01ffff,
-  0x00000000,
-  0x8f824c00,
-  0xaf974c00,
-  0xaf820fec,
-  0xac760010,
-  0x02609021,
-  0x32220002,
-  0x10400007,
-  0x8f944a00,
-  0x9602003a,
-  0x34840004,
-  0x14400003,
-  0xaf820fbc,
-  0x3c029000,
-  0xaf820fbc,
-  0x8e100008,
-  0x32943f00,
-  0x8e11000c,
-  0x2694ff00,
-  0x12800073,
-  0x3c1300d1,
-  0x49010071,
-  0x32370008,
-  0x16e0006f,
-  0x00111102,
-  0x2c430400,
-  0x1060006c,
-  0x0002b980,
-  0x00041740,
-  0x0440003a,
-  0x02779821,
-  0x12720023,
-  0x26d60030,
-  0xae56003c,
-  0x8e76003c,
-  0x8e770034,
-  0x8e750030,
-  0x3c03cfb0,
-  0x16c00003,
-  0x02d5102b,
-  0x04110091,
-  0x00000000,
-  0x10400060,
-  0x2e821000,
-  0x14400009,
-  0x00701826,
-  0x4d01ffff,
-  0x00000000,
-  0x8f824c00,
-  0xaf974c00,
-  0xac760010,
-  0xae420034,
-  0x1000ffd0,
-  0xaf80460c,
-  0x00e0f809,
-  0x03e03821,
-  0x3c03cfb0,
-  0x00701826,
-  0xae460034,
-  0x4d01ffff,
-  0x00000000,
-  0x8f824c00,
-  0xaf974c00,
-  0xaf820fec,
-  0xac760010,
-  0x1000ffc3,
-  0xaf80460c,
-  0x02d5102b,
-  0x10400042,
-  0x3c17cfb0,
-  0x2e821000,
-  0x14400006,
-  0x02f0b826,
-  0x4d01ffff,
-  0x00000000,
-  0xaef60010,
-  0x1000ffb8,
-  0xaf80460c,
-  0x00e0f809,
-  0x03e03821,
-  0x4d01ffff,
-  0x00000000,
-  0x8f824c00,
-  0xaf864c00,
-  0xaef60010,
-  0xaf820fec,
-  0x1000ffae,
-  0xaf80460c,
-  0x3084fffb,
-  0x8e570038,
-  0x3242ffc0,
-  0x00021182,
-  0xa7820fb8,
-  0xaf970fb4,
-  0x865d002a,
-  0x865e0008,
-  0xa79d0fba,
-  0x279d0f18,
-  0x33de0060,
-  0x03bee821,
-  0x001ef0c2,
-  0x03bee821,
-  0x8f970c58,
-  0x4d01ffff,
-  0x00000000,
-  0x8f834c00,
-  0x8fa2001c,
-  0x12e30003,
-  0x3c030c40,
-  0x3c1ec000,
-  0xaf9e0fbc,
-  0xac620fb4,
-  0x8fa30018,
-  0x2442000c,
-  0x14430002,
-  0xaf80460c,
-  0x8fa20014,
-  0xae40003c,
-  0xafa2001c,
-  0x8e76003c,
-  0x8e770034,
-  0x8e750030,
-  0x3c03cfb0,
-  0x16c00003,
-  0x02d5102b,
-  0x0411003c,
-  0x00000000,
-  0x00701826,
-  0x4d01ffff,
-  0x00000000,
-  0xaca500e4,
-  0x10400032,
-  0xaf974c00,
-  0x1000ff7f,
-  0xac760010,
-  0x00041740,
-  0x04400007,
-  0x26d60030,
-  0xae56003c,
-  0x00e0f809,
-  0x03e03821,
-  0xaf80460c,
-  0x1000ff39,
-  0xae460034,
-  0x8e570038,
-  0x3242ffc0,
-  0x00021182,
-  0xa7820fb8,
-  0xaf970fb4,
-  0x8f970c58,
-  0x00e0f809,
-  0x03e03821,
-  0x12e60003,
-  0x3c030c40,
-  0x3c02c000,
-  0xaf820fbc,
-  0x865d002a,
-  0x865e0008,
-  0xa79d0fba,
-  0x279d0f18,
-  0x33de0060,
-  0x03bee821,
-  0x001ef0c2,
-  0x03bee821,
-  0x8fa2001c,
-  0x4d01ffff,
-  0x00000000,
-  0x8f974c00,
-  0xac620fb4,
-  0x3084fffb,
-  0x8fa30018,
-  0x2442000c,
-  0x14430002,
-  0xaf80460c,
-  0x8fa20014,
-  0xae40003c,
-  0xafa2001c,
-  0x4d01ffff,
-  0x00000000,
-  0xaca500e4,
-  0x1000ff13,
-  0xaf974c00,
-  0x00e0f809,
-  0x03e03821,
-  0x1000ff0f,
-  0x00000000,
-  0x1040005b,
-  0x867e0008,
-  0x279d0f18,
-  0x33de0060,
-  0x03bee821,
-  0x001e10c2,
-  0x03a2e821,
-  0x8fb70008,
-  0x8fa2000c,
-  0x8ef60004,
-  0x12e20028,
-  0x86620008,
-  0x82030010,
-  0x00021740,
-  0x04410019,
-  0x24630001,
-  0x10600017,
-  0x3c02d1b0,
-  0x00501026,
-  0x4d01ffff,
-  0x00000000,
-  0x8f9e4c00,
-  0xac560010,
-  0x26d6fffe,
-  0x86020010,
-  0x3c03cfb0,
-  0x34632000,
-  0xa662002a,
-  0x8ee20000,
-  0x26f70008,
-  0xae620038,
-  0x8fa20020,
-  0xafb70008,
-  0x2417ffff,
-  0x02c2a821,
-  0x4d01ffff,
-  0x00000000,
-  0xaf9e4c00,
-  0x03e00008,
-  0xae750030,
-  0x8ee20000,
-  0x26f70008,
-  0xae620038,
-  0x8fa20020,
-  0xafb70008,
-  0x2417ffff,
-  0xa677002a,
-  0x02c2a821,
-  0x3c03cfb0,
-  0x03e00008,
-  0xae750030,
-  0x001e18c2,
-  0x00651821,
-  0x8c6300c8,
-  0x8fa20010,
-  0x00000000,
-  0x0062b023,
-  0x1ec00003,
-  0x8fa10004,
-  0x12c0001b,
-  0x0022b023,
-  0x2ec30041,
-  0x14600002,
-  0x3c150040,
-  0x24160040,
-  0x00161e80,
-  0x00031882,
-  0x00751825,
-  0x4d01ffff,
-  0x00000000,
-  0x8f954c00,
-  0x001eb840,
-  0x00771821,
-  0xac624d00,
-  0x00561021,
-  0x14410002,
-  0x27830d00,
-  0x8fa20000,
-  0x02e3b821,
-  0xafa20010,
-  0x02d71821,
-  0xafa3000c,
-  0x4d01ffff,
-  0x00000000,
-  0x8ef60004,
-  0x1000ffb5,
-  0xaf954c00,
-  0x3c16dead,
-  0xae76003c,
-  0xae600038,
-  0x26d5ffff,
-  0x00001021,
-  0x03e00008,
-  0xae750030,
-  0x2c430ab2,
-  0x10600005,
-  0x2c4324b2,
-  0x10000004,
-  0x24020ab2,
-  0x10000002,
-  0x240224b1,
-  0x1060fffd,
-  0x304301ff,
-  0x00031840,
-  0x3c1da0d1,
-  0x27bdd6cc,
-  0x007d1821,
-  0x94630000,
-  0x0002ea42,
-  0x00031c00,
-  0x27bdfffb,
-  0x03e00008,
-  0x03a31006,
-  0x24030fc0,
-  0xaf834500,
-  0x10000002,
-  0x01206021,
-  0x3c0ccfb0,
-  0x11e00056,
-  0x01896026,
-  0x85fe0000,
-  0x00000000,
-  0x13c00047,
-  0x3c02cfb0,
-  0x07c0002d,
-  0x001e1f80,
-  0x04610034,
-  0x001e1fc0,
-  0x04600009,
-  0x3c02d3b0,
-  0x00e0f809,
-  0x03e03821,
-  0x4d01ffff,
-  0x00000000,
-  0x8f864c00,
-  0x8f990fec,
-  0x1000000b,
-  0xaf994c00,
-  0x01e27826,
-  0x00e0f809,
-  0x03e03821,
-  0x4d01ffff,
-  0x00000000,
-  0x8f864c00,
-  0xaf994c00,
-  0xadef2010,
-  0x3c02d3b0,
-  0x01e27826,
-  0x8f820fc0,
-  0x8f830fc4,
-  0xaf824d00,
-  0x8de20004,
-  0xa5e00000,
-  0xac620000,
-  0x8c620000,
-  0x24020380,
-  0xaf824d00,
-  0x8f824d00,
-  0x8f820f14,
-  0x24630004,
-  0x14620002,
-  0x2419ffff,
-  0x8f830f10,
-  0xaca500e4,
-  0xaf830fc4,
-  0x4d01ffff,
-  0x00000000,
-  0x8f824c80,
-  0x1000001f,
-  0xade2003c,
-  0x00e0f809,
-  0x03e03821,
-  0x4d01ffff,
-  0x00000000,
-  0xa5e00000,
-  0x8f864c00,
-  0x15800022,
-  0xaf8f4540,
-  0x10000017,
-  0x01e27826,
-  0x00e0f809,
-  0x03e03821,
-  0x4d01ffff,
-  0x00000000,
-  0x8f864c00,
-  0xaf994c00,
-  0xadef2010,
-  0x3c02cfb0,
-  0x01e27826,
-  0xa5e00000,
-  0x4d01ffff,
-  0x00000000,
-  0x10000007,
-  0x8f994c00,
-  0x00e0f809,
-  0x03e03821,
-  0x4d01ffff,
-  0x00000000,
-  0x8f864c00,
-  0x8f990fec,
-  0x1580000a,
-  0xaf8f4500,
-  0x00007821,
-  0x10000014,
-  0xaf190014,
-  0x00e0f809,
-  0x03e03821,
-  0x4d01ffff,
-  0x00000000,
-  0x1180fff8,
-  0x8f864c00,
-  0x85220000,
-  0x01207821,
-  0x0440000a,
-  0x8d290008,
-  0x130b0004,
-  0x000c1602,
-  0xaf190014,
-  0x8d790014,
-  0x0160c021,
-  0xaf994c00,
-  0xad8e4010,
-  0x3042003f,
-  0x01c27021,
-  0x00041780,
-  0x0440018b,
-  0x8f824a00,
-  0x30818000,
-  0x30420004,
-  0x1440ff8d,
-  0x8d4b0000,
-  0x1020000c,
-  0x30847fff,
-  0x8f820c48,
-  0x0120f021,
-  0x24430034,
-  0x8c5d000c,
-  0x24420004,
-  0xafdd000c,
-  0x1462fffc,
-  0x27de0004,
-  0xa5210000,
-  0x1000ff82,
-  0x25080008,
-  0x11600058,
-  0x00000000,
-  0x857d0008,
-  0x8d63000c,
-  0x9562000a,
-  0x8d410004,
-  0x07a10026,
-  0x00621821,
-  0xa563000a,
-  0x00031c02,
-  0x041101a0,
-  0x000318c0,
-  0x001d16c0,
-  0x0441001f,
-  0x27a20080,
-  0x00021cc0,
-  0x0461000e,
-  0x0040e821,
-  0x27bd0080,
-  0x95620000,
-  0x95630002,
-  0x3442000c,
-  0xad22000c,
-  0x24020100,
-  0xa5220010,
-  0x9562002c,
-  0xa5230014,
-  0xa5220012,
-  0xa5200016,
-  0x34028000,
-  0xa5220000,
-  0xa57d0008,
-  0x07a0000c,
-  0x8f820c4c,
-  0x8f830c50,
-  0x2441ffe8,
-  0x0023f02b,
-  0x13c00002,
-  0x00201021,
-  0x24420400,
-  0x945e0000,
-  0x2441fffe,
-  0x17c0fff9,
-  0xad620010,
-  0xa44b0000,
-  0x142b001c,
-  0xad400000,
-  0xad400004,
-  0x254a0008,
-  0x3142007f,
-  0x1440000e,
-  0x00041780,
-  0x04410003,
-  0x8f820fe0,
-  0x10000006,
-  0x34840001,
-  0x34840002,
-  0x24420008,
-  0x34421000,
-  0x38421000,
-  0xaf820fe0,
-  0x354a0100,
-  0x394a0100,
-  0x39420080,
-  0xaf820fe4,
-  0x001d14c0,
-  0x04410003,
-  0x33a2efff,
-  0x1000ff3c,
-  0xa5620008,
-  0x07a0009f,
-  0x33a2fffe,
-  0x10000021,
-  0xa5620008,
-  0x8d620024,
-  0x001d1cc0,
-  0x04610004,
-  0xad420000,
-  0x33a3efff,
-  0x1000ff31,
-  0xa5630008,
-  0x07a00005,
-  0x33a3fffe,
-  0xa5630008,
-  0x8d4b0000,
-  0x1000ffaa,
-  0x00000000,
-  0x1000008e,
-  0x25080008,
-  0x254a0008,
-  0x3142007f,
-  0x1440000e,
-  0x00041780,
-  0x04410003,
-  0x8f820fe0,
-  0x10000006,
-  0x34840001,
-  0x34840002,
-  0x24420008,
-  0x34421000,
-  0x38421000,
-  0xaf820fe0,
-  0x354a0100,
-  0x394a0100,
-  0x39420080,
-  0xaf820fe4,
-  0x11000003,
-  0x8d4b0000,
-  0x1000ff93,
-  0x2508fff8,
-  0x8f820fd8,
-  0x8f830fdc,
-  0x8f810fd4,
-  0x1062001d,
-  0x24620008,
-  0x4d01ffff,
-  0x00000000,
-  0x8f8c4c00,
-  0x847f0000,
-  0x3c1e00d1,
-  0x33fd03ff,
-  0x001d5980,
-  0x017e5821,
-  0x857e0008,
-  0x001de900,
-  0x001e0f00,
-  0x03e1f825,
-  0x07e00003,
-  0xaf820fdc,
-  0x879e0ca0,
-  0x278b0c98,
-  0x07c10042,
-  0x3c020840,
-  0x3c01f7b0,
-  0x8d620020,
-  0x00230826,
-  0xac220000,
-  0x8c620004,
-  0x94630002,
-  0x2442fff8,
-  0x00431021,
-  0x1000004e,
-  0xad620020,
-  0x8f820fd0,
-  0x87830ca0,
-  0x14220007,
-  0x278b0c98,
-  0x41000051,
-  0x3c018000,
-  0xaca100e0,
-  0x8ca100c4,
-  0x00000000,
-  0x1022004c,
-  0x0022e823,
-  0x8f9f0f0c,
-  0x07a10002,
-  0xaf810fd4,
-  0x03e2e823,
-  0x2fa30041,
-  0x14600002,
-  0x3c1e0040,
-  0x241d0040,
-  0x001d1e80,
-  0x00031882,
-  0x007e1825,
-  0x4d01ffff,
-  0x00000000,
-  0x8f8c4c00,
-  0xac624cc0,
-  0x005d1021,
-  0x145f0002,
-  0x27830cc0,
-  0x8f820f08,
-  0x03a3f021,
-  0xaf820fd0,
-  0xaf9e0fd8,
-  0x4d01ffff,
-  0x00000000,
-  0x1000ffc3,
-  0x24620008,
-  0x8d63000c,
-  0x8d7d0010,
-  0xa563000a,
-  0x13a00002,
-  0x00031c02,
-  0xa7a00000,
-  0x000318c0,
-  0x041100ef,
-  0x00681821,
-  0x4d01ffff,
-  0x00000000,
-  0x8f820c44,
-  0x8f830c40,
-  0xad620010,
-  0xa5630004,
-  0xa5630006,
-  0x10000021,
-  0xaf8c4c00,
-  0xa57d0000,
-  0x8c7d0004,
-  0x94630002,
-  0xac5d4c40,
-  0x27a20008,
-  0xad620018,
-  0x03a3e821,
-  0x27bdfff4,
-  0xad7d001c,
-  0x27bd0004,
-  0xad7d0020,
-  0x37c18001,
-  0x001e17c0,
-  0x0441ffe0,
-  0xa5610008,
-  0x4d01ffff,
-  0x00000000,
-  0x8f820c44,
-  0x8f830c40,
-  0xad620010,
-  0xa5630004,
-  0xa5630006,
-  0x8f820fd8,
-  0x8f830fdc,
-  0x4d01ffff,
-  0x00000000,
-  0x1462ff95,
-  0x24620008,
-  0xaf8c4c00,
-  0x87830ca0,
-  0x278b0c98,
-  0x0461fe97,
-  0x00041700,
-  0x04400005,
-  0x95620000,
-  0x11780006,
-  0x00000000,
-  0xaf0e0010,
-  0xa70d0004,
-  0x3084fff7,
-  0x956d0004,
-  0x8d6e0010,
-  0x25adffd0,
-  0x05a1fe8f,
-  0xad22000c,
-  0x3c0cffb0,
-  0x01896026,
-  0x000d1822,
-  0x25ad0030,
-  0x8d7e0018,
-  0x8d61001c,
-  0x4d01ffff,
-  0x00000000,
-  0x103e0036,
-  0x8f9d4c00,
-  0x3c010840,
-  0xac3e4c40,
-  0x27de0008,
-  0x11a00017,
-  0xad7e0018,
-  0x000df600,
-  0x019e6025,
-  0x4d01ffff,
-  0x00000000,
-  0xad8e4010,
-  0x8f8d0c40,
-  0x957e0006,
-  0x8f8e0c44,
-  0x03cdf021,
-  0xa57e0006,
-  0x000cf782,
-  0x000c0e02,
-  0x03c1f021,
-  0x001e0f80,
-  0x000c6200,
-  0x000c6202,
-  0x01816025,
-  0x33de003c,
-  0x019e6021,
-  0x34010001,
-  0x10000008,
-  0xa5210000,
-  0x957e0006,
-  0x4d01ffff,
-  0x00000000,
-  0x8f8d0c40,
-  0x8f8e0c44,
-  0x03cdf021,
-  0xa57e0006,
-  0x4d01ffff,
-  0x00000000,
-  0x01a3f02b,
-  0x17c00008,
-  0x0003f600,
-  0x01a36823,
-  0x019e6025,
-  0x01896026,
-  0x4d01fff7,
-  0x00000000,
-  0x1000fe58,
-  0xaf9d4c00,
-  0x8d7e0018,
-  0x8d61001c,
-  0x00000000,
-  0x143effce,
-  0x006d1823,
-  0x4d01ffff,
-  0x00000000,
-  0x2c610008,
-  0x10200017,
-  0x95610008,
-  0x00000000,
-  0x0001ff80,
-  0x07e0000b,
-  0x34210002,
-  0x006d1821,
-  0x00031e00,
-  0x01836025,
-  0x01896026,
-  0x240d002c,
-  0xa5610008,
-  0x4d01ffff,
-  0x00000000,
-  0x1000fe40,
-  0xaf9d4c00,
-  0x3c1f0c40,
-  0xaffe4fa8,
-  0x3021fffd,
-  0xa5610008,
-  0x3c0cd3cf,
-  0x358ce000,
-  0x10000008,
-  0x34030002,
-  0x3c1f0c40,
-  0xaffe4fa8,
-  0x11a0fff9,
-  0x000df600,
-  0x34030003,
-  0x019e6025,
-  0x01896026,
-  0x34840008,
-  0x34420002,
-  0xad22000c,
-  0x95620006,
-  0xa5230000,
-  0xad220038,
-  0x4d01ffff,
-  0x00000000,
-  0x857e0008,
-  0x8f820fa8,
-  0x97830fac,
-  0xad220004,
-  0x33c17fff,
-  0xad600010,
-  0xa5610008,
-  0x1060fe20,
-  0xaf9d4c00,
-  0xa57e0008,
-  0x00031900,
-  0x30633ff0,
-  0xa5630000,
-  0x8f820fb0,
-  0x3c030840,
-  0xac624c40,
-  0x24430008,
-  0xad630018,
-  0x97830fae,
-  0x2442fff4,
-  0x00621821,
-  0xad63001c,
-  0x4d01ffff,
-  0x00000000,
-  0x8f8d0c40,
-  0x8f830c44,
-  0xa56d0004,
-  0xa56d0006,
-  0xad630010,
-  0x1000fe0a,
-  0xaf9d4c00,
-  0x8f820fe0,
-  0x00040fc0,
-  0x8c430000,
-  0x0421001b,
-  0x8f9f0fe4,
-  0x8c5d0004,
-  0xac400004,
-  0x1060000e,
-  0xac400000,
-  0x00000000,
-  0x94620028,
-  0x00000000,
-  0x005f1020,
-  0x8c410004,
-  0x00000000,
-  0x10200003,
-  0xac430004,
-  0x10000002,
-  0xac230024,
-  0xac430000,
-  0x17a3fff4,
-  0x8c630024,
-  0x8f820fe0,
-  0x3bff0080,
-  0x24420008,
-  0x34421000,
-  0x38421000,
-  0xaf820fe0,
-  0xaf9f0fe4,
-  0x1000fe57,
-  0x3084fffe,
-  0x10600010,
-  0x00000000,
-  0x947d0028,
-  0x00000000,
-  0x03bfe820,
-  0x8fa10004,
-  0xafa30004,
-  0x10200003,
-  0x8c5e0004,
-  0x10000002,
-  0xac230024,
-  0xafa30000,
-  0x8c610024,
-  0x17c3fe48,
-  0xac410000,
-  0xac400004,
-  0xac400000,
-  0x1000fe44,
-  0x3084fffd,
-  0x2c620100,
-  0x1440000e,
-  0x006a1021,
-  0x3143007f,
-  0x01431823,
-  0x00431823,
-  0x3062007f,
-  0xa5620028,
-  0x00621823,
-  0x00031902,
-  0x8f820fe0,
-  0x2463fff8,
-  0x00621821,
-  0x34631000,
-  0x10000003,
-  0x38631000,
-  0x34430100,
-  0x38630100,
-  0x8c620004,
-  0x00000000,
-  0x10400003,
-  0xac6b0004,
-  0x03e00008,
-  0xac4b0024,
-  0x03e00008,
-  0xac6b0000,
-  0x00000002,
-  0xa0d0e000,
-  0x00000000,
-  0x00001000,
-  0x00000006,
-  0x00000008,
-  0x00000000,
-  0x00000008,
-  0x00000002,
-  0xa0d0d648,
-  0x00000000,
-  0x00000888,
-  0x00000000,
-  0x00000000,
-  0x00000000,
-  0x00000000,
-  0x24313200,
-  0x24313200,
-  0x24313200,
-  0x00000000,
-  0x244d4352,
-  0x2420436f,
-  0x70797269,
-  0x67687420,
-  0x28632920,
-  0x4d616467,
-  0x65204e65,
-  0x74776f72,
-  0x6b73204c,
-  0x74642031,
-  0x3939352e,
-  0x20416c6c,
-  0x20726967,
-  0x68747320,
-  0x72657365,
-  0x72766564,
-  0x2e004d61,
-  0x64676520,
-  0x416d6261,
-  0x73736164,
-  0x6f722076,
-  0x312e3031,
-  0x00000000,
-  0x00000001,
-  0x00000001,
-  0x00000000,
-  0x00000000,
-  0x00000000,
-  0x00000000,
-  0x00000000,
-  0x00000000,
-  0x00000000,
-  0x00000000,
-  0x00000000,
-  0x00000000,
-  0x00000000,
-  0x00000000,
-  0x00000000,
-  0x00000000,
-  0x00000000,
-  0x00000000,
-  0x00000000,
-  0x00000000,
-  0x00000000,
-  0x00000000,
-  0x00000000,
-  0x00000000,
-  0x00000000,
-  0x00000000,
-  0x00000000,
-  0x00000000,
-  0x00000000,
-  0x00000000,
-  0x00000000,
-  0x00000000,
-  0x00000000,
-  0x00000000,
-  0x00000000,
-  0xfff04000,
-  0x00000000,
-  0x0c343e2d,
-  0x00000000,
-  0x3c1ca0d1,
-  0x279c5638,
-  0x3c1da0d1,
-  0x27bddfd0,
-  0x3c08a0d1,
-  0x2508dfd0,
-  0xaf878008,
-  0x0c343c13,
-  0x00000000,
-  0x24040003,
-  0x0097000d,
-  0x3c08bfc0,
-  0x35080230,
-  0x8d080000,
-  0x00000000,
-  0x01000008,
-  0x00000000,
-  0x27bdffd0,
-  0xafbf001c,
-  0xafb10018,
-  0xafb00014,
-  0x3c11fff0,
-  0x00008021,
-  0x3c180056,
-  0x37183b79,
-  0x26190200,
-  0x17200002,
-  0x0319001a,
-  0x0007000d,
-  0x2401ffff,
-  0x17210005,
-  0x00000000,
-  0x3c018000,
-  0x17010002,
-  0x00000000,
-  0x0006000d,
-  0x00001012,
-  0x00101840,
-  0x3c05a0d1,
-  0x24a5d6cc,
-  0x00a32021,
-  0xa4820000,
-  0x26100001,
-  0x2a010200,
-  0x1420ffea,
-  0x00000000,
-  0x3c06a0d1,
-  0x24c6f9e4,
-  0x3c07a0d1,
-  0x24e7d648,
-  0xace60000,
-  0x3c08a0d1,
-  0x2508fb14,
-  0xace80004,
-  0x3c09a0d1,
-  0x2529fc94,
-  0xace90008,
-  0x3c0aa0d1,
-  0x254afcd4,
-  0xacea000c,
-  0x3c0ba0d1,
-  0x256bfba8,
-  0xaceb0010,
-  0x3c0ca0d1,
-  0x258cfbc4,
-  0xacec0014,
-  0x3c0da0d1,
-  0x25adfbe0,
-  0xaced0018,
-  0x3c0ea0d1,
-  0x25cefbfc,
-  0xacee001c,
-  0x3c0fa0d1,
-  0x25effc18,
-  0xacef0020,
-  0x3c18a0d1,
-  0x2718fc34,
-  0xacf80024,
-  0x3c19a0d1,
-  0x2739fc50,
-  0xacf90028,
-  0x3c02a0d1,
-  0x2442fc60,
-  0xace2002c,
-  0x3c03a0d1,
-  0x2463fc70,
-  0xace30030,
-  0x3c04a0d1,
-  0x2484fc80,
-  0xace40034,
-  0x3c05a0d1,
-  0x24a5fcb4,
-  0xace50038,
-  0x3c06a0d1,
-  0x24c6fe08,
-  0xace6003c,
-  0x3c08a0d1,
-  0x2508fe90,
-  0xace80040,
-  0x3c09a0d1,
-  0x2529fa38,
-  0xace90044,
-  0x3c0aa0d1,
-  0x254afa74,
-  0xacea0048,
-  0x24100013,
-  0x3c0ba0d1,
-  0x256bf9d8,
-  0x00106080,
-  0x3c0ea0d1,
-  0x25ced648,
-  0x01cc6821,
-  0xadab0000,
-  0x26100001,
-  0x2a010020,
-  0x1420fff6,
-  0x00000000,
-  0x8f988000,
-  0x00000000,
-  0xaf000100,
-  0x8f828000,
-  0x241903ff,
-  0xa4590202,
-  0x00008021,
-  0x8f868000,
-  0x24030fff,
-  0x00102040,
-  0x24c70380,
-  0x00e42821,
-  0xa4a30000,
-  0x26100001,
-  0x2a010008,
-  0x1420fff7,
-  0x00000000,
-  0x8f898000,
-  0x34089c40,
-  0xad2803a0,
-  0x8f8b8000,
-  0x3c0a00ff,
-  0x354affff,
-  0xad6a03a4,
-  0x00008021,
-  0x8f8f8000,
-  0x240c0fff,
-  0x00106840,
-  0x25f80300,
-  0x030d7021,
-  0xa5cc0000,
-  0x26100001,
-  0x2a010008,
-  0x1420fff7,
-  0x00000000,
-  0x8f828000,
-  0x34199c40,
-  0xac590320,
-  0x8f848000,
-  0x3c0300ff,
-  0x3463ffff,
-  0xac830324,
-  0x8f868000,
-  0x240502ff,
-  0xa4c50202,
-  0x3c08a0c0,
-  0x35080180,
-  0x3c09a0d1,
-  0x2529d5b8,
-  0x250a0028,
-  0x8d0b0000,
-  0x8d0c0004,
-  0xad2b0000,
-  0xad2c0004,
-  0x25080008,
-  0x150afffa,
-  0x25290008,
-  0x40026000,
-  0x00000000,
-  0xafa20028,
-  0x24030022,
-  0x3c04a0e0,
-  0x34840014,
-  0xac830000,
-  0x8fa50028,
-  0x00000000,
-  0x34a61001,
-  0x00c01021,
-  0xafa60028,
-  0x3c07ffbf,
-  0x34e7ffff,
-  0x00c73824,
-  0x00e01021,
-  0xafa70028,
-  0x40876000,
-  0x00000000,
-  0x3c080002,
-  0x3508d890,
-  0x3c09fffe,
-  0x35290130,
-  0xad280000,
-  0x8faa0028,
-  0x3c0bf000,
-  0x014b5825,
-  0x01601021,
-  0xafab0028,
-  0x01606021,
-  0x408c6000,
-  0x00000000,
-  0x00008021,
-  0x00107080,
-  0x022e7821,
-  0xade00000,
-  0x26100001,
-  0x2a010400,
-  0x1420fffa,
-  0x00000000,
-  0x24180001,
-  0x3c19a0e8,
-  0xaf380000,
-  0x24020011,
-  0x3c03a0f0,
-  0x34630017,
-  0xa0620000,
-  0x3c04f0eb,
-  0x34840070,
-  0x3c05fff0,
-  0x34a54a00,
-  0xaca40000,
-  0x3c06fceb,
-  0x34c60070,
-  0xaca60000,
-  0x3c07fff0,
-  0x34e74700,
-  0xace00000,
-  0x00008021,
-  0x3c08fff0,
-  0x35080fc0,
-  0x3c09fff0,
-  0x35294500,
-  0xad280000,
-  0x26100001,
-  0x2a010004,
-  0x1420fff8,
-  0x00000000,
-  0x00008021,
-  0x3c0adead,
-  0x00105980,
-  0x3c0100d1,
-  0x002b0821,
-  0xac2a003c,
-  0x3c0100d1,
-  0x002b0821,
-  0xac200030,
-  0x3c0100d1,
-  0x002b0821,
-  0xac200038,
-  0x240dffff,
-  0x3c0100d1,
-  0x002b0821,
-  0xac2d0014,
-  0x00107100,
-  0x3c0100d1,
-  0x002b0821,
-  0xa42e0000,
-  0x3c0100d1,
-  0x002b0821,
-  0xa4200004,
-  0x24180020,
-  0x3c0100d1,
-  0x002b0821,
-  0xa4380008,
-  0x3c0100d1,
-  0x002b0821,
-  0xac200010,
-  0x26100001,
-  0x2a010400,
-  0x1420ffe0,
-  0x00000000,
-  0x00008021,
-  0x001018c0,
-  0x3c05a0d1,
-  0x24a5e000,
-  0x00a32021,
-  0xac800000,
-  0x3c07a0d1,
-  0x24e7e000,
-  0x24e80004,
-  0x01033021,
-  0xacc00000,
-  0x26100001,
-  0x2a010009,
-  0x1420fff3,
-  0x00000000,
-  0x24090380,
-  0x3c0afff0,
-  0x354a4d00,
-  0xad490000,
-  0x3c0ca080,
-  0x358c009c,
-  0xad800000,
-  0x3c0da080,
-  0x35ad00a0,
-  0xada00000,
-  0x3c0e1100,
-  0x3c0fa080,
-  0x35ef00a8,
-  0xadee0000,
-  0x41010003,
-  0x00000000,
-  0x4100ffff,
-  0x00000000,
-  0x3c18a080,
-  0x371800e0,
-  0x8f190000,
-  0x3c01a0d1,
-  0xac39d6c8,
-  0x0c343d43,
-  0x03202021,
-  0x8fb00014,
-  0x8fbf001c,
-  0x8fb10018,
-  0x03e00008,
-  0x27bd0030,
-  0x0080b821,
-  0x3c1cfff0,
-  0xa3800c84,
-  0xa3800c88,
-  0x8f904400,
-  0x00002021,
-  0xaf800cbc,
-  0x240200a8,
-  0x27830f00,
-  0x2c5d0040,
-  0x17a0000c,
-  0x3c1dffb0,
-  0x03a3e826,
-  0xafb74000,
-  0x00000000,
-  0x00000000,
-  0x00000000,
-  0x4d01ffff,
-  0x00000000,
-  0x2442ffc0,
-  0x24630040,
-  0x1000fff3,
-  0x26f70040,
-  0x1040000d,
-  0x00000000,
-  0x0002ee00,
-  0x3c010040,
-  0x03a1e825,
-  0x3c01fff0,
-  0x03a1e826,
-  0x03a3e826,
-  0xafb74000,
-  0x00000000,
-  0x00000000,
-  0x00000000,
-  0x4d01ffff,
-  0x00000000,
-  0x3c05a080,
-  0x8f820f08,
-  0x00000000,
-  0xaf820fd4,
-  0xaf820fd0,
-  0xaca200c4,
-  0x8f820f10,
-  0x00000000,
-  0x00021d82,
-  0xaf830fc0,
-  0x00031d80,
-  0x00431023,
-  0x3c01a080,
-  0x00411025,
-  0xaf820fc4,
-  0xaf820f10,
-  0x8f820f14,
-  0x00000000,
-  0x00431023,
-  0x3c01a080,
-  0x00411025,
-  0xaf820f14,
-  0x24030003,
-  0x279d0f18,
-  0x24be00c8,
-  0x27810d00,
-  0x8fa20000,
-  0x00000000,
-  0xafa20010,
-  0xafc20000,
-  0xafa10008,
-  0xafa1000c,
-  0x8fa20014,
-  0x00000000,
-  0xafa2001c,
-  0x27bd0024,
-  0x27de0004,
-  0x24210040,
-  0x1460fff3,
-  0x2463ffff,
-  0x8f820f00,
-  0x00000000,
-  0xaf820fc8,
-  0xaca200c0,
-  0x27820800,
-  0x2403000f,
-  0xac400000,
-  0x24420004,
-  0x1460fffd,
-  0x2463ffff,
-  0x8f830fc0,
-  0x00000000,
-  0xaf834d00,
-  0x8f834d00,
-  0x8f830f14,
-  0x8f820f10,
-  0x2463fffc,
-  0xac400000,
-  0x1443fffe,
-  0x24420004,
-  0x24020380,
-  0xaf824d00,
-  0x279d0f18,
-  0x27a10090,
-  0x8fa20014,
-  0x8fa30018,
-  0x00000000,
-  0x00621823,
-  0x2c7f0040,
-  0x17e00009,
-  0x3c1f0040,
-  0x37ff0800,
-  0x03a0f021,
-  0x4d01ffff,
-  0x00000000,
-  0xafe20000,
-  0x24420040,
-  0x1000fff6,
-  0x2463ffc0,
-  0x10600006,
-  0x37ff0800,
-  0x00031e00,
-  0x03e3f825,
-  0x4d01ffff,
-  0x00000000,
-  0xafe20000,
-  0x27bd0024,
-  0x17a1ffe8,
-  0x00000000,
-  0x00003821,
-  0x8fc20014,
-  0x8fc30018,
-  0x00000000,
-  0x00621823,
-  0x2c7f0040,
-  0x13e00004,
-  0x3c1f0040,
-  0x00030e00,
-  0x10000002,
-  0x03e1f825,
-  0x24030040,
-  0x37ff0800,
-  0x241e03e7,
-  0x00000821,
-  0x4d01ffff,
-  0x00000000,
-  0xafe20000,
-  0x00230821,
-  0x4900fffb,
-  0x00000000,
-  0x87804002,
-  0x17c0fff8,
-  0x27deffff,
-  0x14e00004,
-  0x34e74000,
-  0x03e7f825,
-  0x1000fff0,
-  0xaf810c60,
-  0xaf810c5c,
-  0x3c01a0d1,
-  0x8c22d6c8,
-  0x00000000,
-  0x3c01a080,
-  0xac2200e0,
-  0x3c01a080,
-  0x8c2000e0,
-  0xaf800fb4,
-  0xa7800fb8,
-  0xa7800fba,
-  0xa7800fbc,
-  0xa7800fbe,
-  0x27820cc0,
-  0xaf820fdc,
-  0xaf820fd8,
-  0x3c02a0d1,
-  0x2442dacc,
-  0xaf820c4c,
-  0xaf820c50,
-  0x24420400,
-  0xaf820c54,
-  0x2402001e,
-  0x3c03fff0,
-  0x247d0040,
-  0xac7d0008,
-  0x03a01821,
-  0x1440fffc,
-  0x2442ffff,
-  0x3c1dfff0,
-  0xac7d0008,
-  0x3c02c704,
-  0x3442dd7b,
-  0xaf820c58,
-  0x3c070000,
-  0x24e70158,
-  0x08343fa9,
-  0x00000000,
-  0x8e620038,
-  0x00000000,
-  0x14400005,
-  0x8f830c94,
-  0x12a00022,
-  0x24630001,
-  0x10000020,
-  0xaf830c94,
-  0xaf820fb4,
-  0x3262ffc0,
-  0x00021182,
-  0x8663002a,
-  0xa7820fb8,
-  0x3c02a000,
-  0xaf820fbc,
-  0xa7830fba,
-  0x867e0008,
-  0x279d0f18,
-  0x33de0060,
-  0x03bee821,
-  0x001ef0c2,
-  0x03bee821,
-  0x8fa2001c,
-  0x3c030c40,
-  0x4d01ffff,
-  0x00000000,
-  0x8f974c00,
-  0xac620fb4,
-  0x8fa30018,
-  0x2442000c,
-  0x14430003,
-  0x00000000,
-  0x8fa20014,
-  0x00000000,
-  0xafa2001c,
-  0x4d01ffff,
-  0x00000000,
-  0xaca500e4,
-  0xaf974c00,
-  0x03e00008,
-  0xae60003c,
-  0x3c0da0d1,
-  0x25add500,
-  0x11a00021,
-  0x00000000,
-  0x8da90000,
-  0x00000000,
-  0x1120001d,
-  0x00000000,
-  0x8daa0004,
-  0x8dab0008,
-  0x8dac000c,
-  0x00094740,
-  0x05010004,
-  0x00000000,
-  0x3c08a0d1,
-  0x2508d638,
-  0x01485021,
-  0x00094780,
-  0x05010007,
-  0x00000000,
-  0x1180000d,
-  0x00000000,
-  0xad400000,
-  0x254a0004,
-  0x1000fffb,
-  0x258cfffc,
-  0x11800007,
-  0x00000000,
-  0x8d6e0000,
-  0x256b0004,
-  0xad4e0000,
-  0x254a0004,
-  0x1000fff9,
-  0x258cfffc,
-  0x1000ffe1,
-  0x25ad0010,
-  0x03e00008,
-  0x00000000,
-  0x3c021040,
-  0xac574ff0,
-  0x00000000,
-  0x00000000,
-  0x00000000,
-  0x00000000,
-  0x4d01ffff,
-  0x00000000,
-  0x8f820ffc,
-  0x00000000,
-  0x3042001f,
-  0x00021080,
-  0x3c17a0d1,
-  0x02e2b821,
-  0x26f7d648,
-  0x8ef70000,
-  0x00000000,
-  0x02e00008,
-  0x00000000,
-  0x2402ffff,
-  0xaf820ffc,
-  0x8f970fc8,
-  0x3c021040,
-  0xac570ff0,
-  0x8f820f04,
-  0x26f70010,
-  0x16e20004,
-  0xaf970fc8,
-  0x8f970f00,
-  0x00000000,
-  0xaf970fc8,
-  0x4d01ffff,
-  0x00000000,
-  0x03e00008,
-  0x00000000,
-  0x3c1fa0d1,
-  0x27fff02c,
-  0x1000ffed,
-  0x8f970ff0,
-  0x3c0200d1,
-  0x32f703ff,
-  0x0017b980,
-  0x02e2b825,
-  0xaee0003c,
-  0x2402ffff,
-  0xaee20030,
-  0xaee20014,
-  0x97830ff4,
-  0x97820ff8,
-  0x3c1d0000,
-  0x27bd0698,
-  0xa6e30008,
-  0xa6e20002,
-  0xaf9f0fe8,
-  0x03a0f809,
-  0xa6e2002c,
-  0x8f9f0fe8,
-  0x1000ffd9,
-  0xaee2000c,
-  0x8f970ff0,
-  0x3c0200d1,
-  0x32f703ff,
-  0x0017b980,
-  0x02e2b825,
-  0x97820ff4,
-  0x3c030000,
-  0x24630698,
-  0xa6e20002,
-  0xaf9f0fe8,
-  0x0060f809,
-  0xa6e2002c,
-  0x8f9f0fe8,
-  0x1000ffca,
-  0xaee2000c,
-  0x8f970ff0,
-  0x3c0200d1,
-  0x32f703ff,
-  0x0017b980,
-  0x02e2b825,
-  0x97820ff4,
-  0x00000000,
-  0x96e30008,
-  0xa6e20008,
-  0x00431026,
-  0x30420060,
-  0x1040ffbd,
-  0x8ee2003c,
-  0xaee0003c,
-  0x1040ffba,
-  0x3c028800,
-  0xaf820fbc,
-  0x8ee20038,
-  0xaee00038,
-  0x30630060,
-  0x279d0f18,
-  0x03a3e821,
-  0x000318c2,
-  0x03a3e821,
-  0x8fa3001c,
-  0x1040ffaf,
-  0xaf820fb4,
-  0x3c020c40,
-  0xac430fb4,
-  0x8fa20018,
-  0x2463000c,
-  0x14430003,
-  0x00000000,
-  0x8fa30014,
-  0x00000000,
-  0xafa3001c,
-  0x4d01ffff,
-  0x00000000,
-  0x1000ffa2,
-  0x00000000,
-  0x8f970ff0,
-  0x3c0200d1,
-  0xa7970fb8,
-  0x0017b980,
-  0x32f7ffc0,
-  0x02e2b821,
-  0xaee00030,
-  0x3c02dead,
-  0x8ee3003c,
-  0xaee2003c,
-  0x8ee20038,
-  0x1060ff95,
-  0xaee00038,
-  0x3c038800,
-  0xaf830fbc,
-  0x86e30008,
-  0x27970f18,
-  0x30630060,
-  0x02e3b821,
-  0x000318c2,
-  0x02e3b821,
-  0x8ee3001c,
-  0x1040ff8a,
-  0xaf820fb4,
-  0x3c020c40,
-  0xac430fb4,
-  0x8ee20018,
-  0x2463000c,
-  0x14430003,
-  0x00000000,
-  0x8ee30014,
-  0x00000000,
-  0xaee3001c,
-  0x4d01ffff,
-  0x00000000,
-  0x1000ff7d,
-  0x00000000,
-  0x8f820ff0,
-  0x8f970ff4,
-  0x90410000,
-  0x00000000,
-  0x00370825,
-  0x1000ff76,
-  0xa0410000,
-  0x8f820ff0,
-  0x8f970ff4,
-  0x94410000,
-  0x00000000,
-  0x00370825,
-  0x1000ff6f,
-  0xa4410000,
-  0x8f820ff0,
-  0x8f970ff4,
-  0x8c410000,
-  0x00000000,
-  0x00370825,
-  0x1000ff68,
-  0xac410000,
-  0x8f820ff0,
-  0x8f970ff4,
-  0x90410000,
-  0x02e0b827,
-  0x00370824,
-  0x1000ff61,
-  0xa0410000,
-  0x8f820ff0,
-  0x8f970ff4,
-  0x94410000,
-  0x02e0b827,
-  0x00370824,
-  0x1000ff5a,
-  0xa4410000,
-  0x8f820ff0,
-  0x8f970ff4,
-  0x8c410000,
-  0x02e0b827,
-  0x00370824,
-  0x1000ff53,
-  0xac410000,
-  0x8f820ff0,
-  0x8f970ff4,
-  0x1000ff4f,
-  0xa0570000,
-  0x8f820ff0,
-  0x8f970ff4,
-  0x1000ff4b,
-  0xa4570000,
-  0x8f820ff0,
-  0x8f970ff4,
-  0x1000ff47,
-  0xac570000,
-  0x8f820ff0,
-  0x00000000,
-  0x8c420000,
-  0x1000ff42,
-  0xaf820ff4,
-  0x3c01a0c2,
-  0x8c22c000,
-  0x00000000,
-  0xaf820ff0,
-  0x3c01a0c2,
-  0x8c22c004,
-  0x1000ff3a,
-  0xaf820ff4,
-  0x3c01a0d1,
-  0x8c22d5ac,
-  0x00000000,
-  0xaf820ff0,
-  0x3c01a0d1,
-  0x8c22d5b0,
-  0x1000ff32,
-  0xaf820ff4,
-  0x3c02a0f0,
-  0xac400000,
-  0x90570153,
-  0x00000000,
-  0xa3970c80,
-  0x90570157,
-  0x00000000,
-  0xa3970c81,
-  0x9057015b,
-  0x00000000,
-  0xa3970c87,
-  0x9057015f,
-  0x00000000,
-  0xa3970c86,
-  0x90570163,
-  0x00000000,
-  0x32f70007,
-  0xa3970c85,
-  0x90570193,
-  0x00000000,
-  0xa3970c8b,
-  0x90570197,
-  0x00000000,
-  0xa3970c8a,
-  0x9057019b,
-  0x00000000,
-  0x32f70007,
-  0xa3970c89,
-  0x9057000b,
-  0x00000000,
-  0x32f700e0,
-  0x00170942,
-  0x90570047,
-  0x00000000,
-  0x32f70078,
-  0x00370825,
-  0x90570067,
-  0x00000000,
-  0x32f7000f,
-  0x0017b9c0,
-  0x00370825,
-  0x905700c7,
-  0x00000000,
-  0x32f7002f,
-  0x0017bac0,
-  0x00370825,
-  0x90570147,
-  0x00000000,
-  0x32f7001e,
-  0x0017bc00,
-  0x00370825,
-  0x90570183,
-  0x00000000,
-  0x32f70060,
-  0x0017bc00,
-  0x00370825,
-  0xaf810c8c,
-  0x3c021840,
-  0x8f970fc8,
-  0x00000000,
-  0x8f970ff0,
-  0x00000000,
-  0xac570c80,
-  0x00000000,
-  0x00000000,
-  0x00000000,
-  0x00000000,
-  0x00000000,
-  0x00000000,
-  0x4d01ffff,
-  0x00000000,
-  0x3c02a0d1,
-  0x2442f998,
-  0xaf800c90,
-  0xaf800c94,
-  0x00400008,
-  0x00000000,
-  0x87970ff0,
-  0x3c1300d1,
-  0xa6770008,
-  0x3c030000,
-  0x24630520,
-  0xaf9f0fe8,
-  0x0060f809,
-  0x24020001,
-  0x8f9f0fe8,
-  0x1040feda,
-  0x97970ff0,
-  0x27830f18,
-  0x00771821,
-  0x0017b8c2,
-  0x02e3b821,
-  0x3c028800,
-  0xaf820fbc,
-  0x8e620038,
-  0xa7800fb8,
-  0xaf820fb4,
-  0x8ee3001c,
-  0x3c020c40,
-  0xac430fb4,
-  0x8ee20018,
-  0x2463000c,
-  0x14430004,
-  0xaee3001c,
-  0x8ee30014,
-  0x00000000,
-  0xaee3001c,
-  0x4d01ffff,
-  0x00000000,
-  0x1000ffdf,
-  0x00000000,
-  0x8f820c5c,
-  0x8f830c60,
-  0xaf820ff0,
-  0x1000febe,
-  0xaf830ff4,
-  0x23890800,
-  0x01201821,
-  0x2402000f,
-  0x206c0040,
-  0xac6c0008,
-  0x01801821,
-  0x1440fffc,
-  0x2042ffff,
-  0xac690008,
-  0x278b0c98,
-  0xa5600000,
-  0x2403ffff,
-  0xad630014,
-  0x34020001,
-  0x34420020,
-  0xa5620008,
-  0x278a0e00,
-  0x01401021,
-  0x00001821,
-  0xac400000,
-  0x24630004,
-  0x2c6c0100,
-  0x1580fffc,
-  0x24420004,
-  0x3c02a0d1,
-  0x2442e000,
-  0xaf820fe0,
-  0x3c1800d1,
-  0x01206021,
-  0x00006821,
-  0x00007821,
-  0x00005821,
-  0x00004021,
-  0x40026000,
-  0x00000000,
-  0x34424001,
-  0x40826000,
-  0x3c020000,
-  0x244206f8,
-  0x00400008,
-  0x00000000,
diff --git a/drivers/atm/atmsar11.regions b/drivers/atm/atmsar11.regions
deleted file mode 100644
index 42252b7..0000000
--- a/drivers/atm/atmsar11.regions
+++ /dev/null
@@ -1,6 +0,0 @@
-/*
-  See copyright and licensing conditions in ambassador.* files.
-*/
-  { 0x00000080,  993, },
-  { 0xa0d0d500,   80, },
-  { 0xa0d0f000,  978, },
diff --git a/drivers/atm/atmsar11.start b/drivers/atm/atmsar11.start
deleted file mode 100644
index dba55e7..0000000
--- a/drivers/atm/atmsar11.start
+++ /dev/null
@@ -1,4 +0,0 @@
-/*
-  See copyright and licensing conditions in ambassador.* files.
-*/
-  0xa0d0f000