All of lore.kernel.org
 help / color / mirror / Atom feed
* [Qemu-devel] [PATCH 00/10] PPC: e500: Use u-boot as firmware
@ 2014-01-19 23:44 Alexander Graf
  2014-01-19 23:44 ` [Qemu-devel] [PATCH 01/10] PPC: Make all e500 CPUs SVR aware Alexander Graf
                   ` (9 more replies)
  0 siblings, 10 replies; 21+ messages in thread
From: Alexander Graf @ 2014-01-19 23:44 UTC (permalink / raw)
  To: qemu-devel; +Cc: qemu-ppc

Today we don't run any firmware on our e500 platform. You're either running
a Linux kernel directly through -kernel or you don't boot the VM at all.

This is bad for multiple reasons. The normal firmware on e500 based systems
is u-boot. Some OSes (IIRC FreeBSD) rely on u-boot for their 2nd stage boot
loader. Since that relies on interfaces u-boot provides we can't execute it
today.

The other case where we're falling short of expectations that I'm aware of
is network boot. With a firmware you can actually pxe boot a virtual machine.

This patch set implements all the pieces necessary to run u-boot as the
firmware for our e500 platforms: mpc8544ds and e500plat. It is based on a
u-boot patch set that I sent out earlier today and that is still pending review.

Please try out as many things as you're able to try.

If you want to revert back the the old behavior of loading a kernel directly
all you need to do is pass -kernel $uImage -bios $uImage to QEMU on the command
line. That will run the kernel as ePAPR compliant firmware instead.

Known missing bits:

  - -boot doesn't get interpreted yet
  - pflash is missing, so the environment is volatile
  - no block drivers available (ata_piix is broken in u-boot and virtio-blk
    is missing)
  - KVM is still missing a few emulation bits to support this


Alex

Alexander Graf (10):
  PPC: Make all e500 CPUs SVR aware
  PPC: Add definitions for GIVORs
  PPC: Add stub emulation for HDBCR0
  PPC: Add L1CFG1 SPR emulation
  PPC: Properly emulate L1CSR0 and L1CSR1
  PPC: Add dcbtls emulation
  PPC: guts: Add emulation of a few more registers
  PPC: e500: Expose kernel load address in dt
  PPC: Add u-boot firmware for e500
  PPC: e500: Move to u-boot as firmware

 hw/ppc/e500.c               | 116 ++++++++++++++++++++++++++++----------------
 hw/ppc/mpc8544_guts.c       |  12 +++++
 pc-bios/u-boot.e500         | Bin 0 -> 1049524 bytes
 target-ppc/cpu-models.c     |  28 +++++------
 target-ppc/cpu.h            |  20 ++++++++
 target-ppc/translate.c      |  12 +++++
 target-ppc/translate_init.c |  26 ++++++++--
 7 files changed, 154 insertions(+), 60 deletions(-)
 create mode 100755 pc-bios/u-boot.e500

-- 
1.8.1.4

^ permalink raw reply	[flat|nested] 21+ messages in thread

* [Qemu-devel] [PATCH 01/10] PPC: Make all e500 CPUs SVR aware
  2014-01-19 23:44 [Qemu-devel] [PATCH 00/10] PPC: e500: Use u-boot as firmware Alexander Graf
@ 2014-01-19 23:44 ` Alexander Graf
  2014-01-19 23:44 ` [Qemu-devel] [PATCH 02/10] PPC: Add definitions for GIVORs Alexander Graf
                   ` (8 subsequent siblings)
  9 siblings, 0 replies; 21+ messages in thread
From: Alexander Graf @ 2014-01-19 23:44 UTC (permalink / raw)
  To: qemu-devel; +Cc: qemu-ppc

Our pre-e500mc e500 CPU types didn't get instanciated with SVR information,
even though those systems do support the SVR register.

Spawn them with the SVR tag so that they don't get confused when someone tries
to read SPR_SVR.

Signed-off-by: Alexander Graf <agraf@suse.de>
---
 target-ppc/cpu-models.c | 28 ++++++++++++++--------------
 1 file changed, 14 insertions(+), 14 deletions(-)

diff --git a/target-ppc/cpu-models.c b/target-ppc/cpu-models.c
index f6c9b3a..b12ad64 100644
--- a/target-ppc/cpu-models.c
+++ b/target-ppc/cpu-models.c
@@ -671,20 +671,20 @@
     POWERPC_DEF_SVR("MPC8379E", "MPC8379E",
                     CPU_POWERPC_MPC837x,      POWERPC_SVR_8379E,     e300)
     /* e500 family                                                           */
-    POWERPC_DEF("e500_v10",      CPU_POWERPC_e500v1_v10,             e500v1,
-                "PowerPC e500 v1.0 core")
-    POWERPC_DEF("e500_v20",      CPU_POWERPC_e500v1_v20,             e500v1,
-                "PowerPC e500 v2.0 core")
-    POWERPC_DEF("e500v2_v10",    CPU_POWERPC_e500v2_v10,             e500v2,
-                "PowerPC e500v2 v1.0 core")
-    POWERPC_DEF("e500v2_v20",    CPU_POWERPC_e500v2_v20,             e500v2,
-                "PowerPC e500v2 v2.0 core")
-    POWERPC_DEF("e500v2_v21",    CPU_POWERPC_e500v2_v21,             e500v2,
-                "PowerPC e500v2 v2.1 core")
-    POWERPC_DEF("e500v2_v22",    CPU_POWERPC_e500v2_v22,             e500v2,
-                "PowerPC e500v2 v2.2 core")
-    POWERPC_DEF("e500v2_v30",    CPU_POWERPC_e500v2_v30,             e500v2,
-                "PowerPC e500v2 v3.0 core")
+    POWERPC_DEF_SVR("e500_v10", "PowerPC e500 v1.0 core",
+                    CPU_POWERPC_e500v1_v10,   POWERPC_SVR_E500,      e500v1);
+    POWERPC_DEF_SVR("e500_v20", "PowerPC e500 v2.0 core",
+                    CPU_POWERPC_e500v1_v20,   POWERPC_SVR_E500,      e500v1);
+    POWERPC_DEF_SVR("e500v2_v10", "PowerPC e500v2 v1.0 core",
+                    CPU_POWERPC_e500v2_v10,   POWERPC_SVR_E500,      e500v2);
+    POWERPC_DEF_SVR("e500v2_v20", "PowerPC e500v2 v2.0 core",
+                    CPU_POWERPC_e500v2_v20,   POWERPC_SVR_E500,      e500v2);
+    POWERPC_DEF_SVR("e500v2_v21", "PowerPC e500v2 v2.1 core",
+                    CPU_POWERPC_e500v2_v21,   POWERPC_SVR_E500,      e500v2);
+    POWERPC_DEF_SVR("e500v2_v22", "PowerPC e500v2 v2.2 core",
+                    CPU_POWERPC_e500v2_v22,   POWERPC_SVR_E500,      e500v2);
+    POWERPC_DEF_SVR("e500v2_v30", "PowerPC e500v2 v3.0 core",
+                    CPU_POWERPC_e500v2_v30,   POWERPC_SVR_E500,      e500v2);
     POWERPC_DEF_SVR("e500mc", "e500mc",
                     CPU_POWERPC_e500mc,       POWERPC_SVR_E500,      e500mc)
 #ifdef TARGET_PPC64
-- 
1.8.1.4

^ permalink raw reply related	[flat|nested] 21+ messages in thread

* [Qemu-devel] [PATCH 02/10] PPC: Add definitions for GIVORs
  2014-01-19 23:44 [Qemu-devel] [PATCH 00/10] PPC: e500: Use u-boot as firmware Alexander Graf
  2014-01-19 23:44 ` [Qemu-devel] [PATCH 01/10] PPC: Make all e500 CPUs SVR aware Alexander Graf
@ 2014-01-19 23:44 ` Alexander Graf
  2014-01-19 23:44 ` [Qemu-devel] [PATCH 03/10] PPC: Add stub emulation for HDBCR0 Alexander Graf
                   ` (7 subsequent siblings)
  9 siblings, 0 replies; 21+ messages in thread
From: Alexander Graf @ 2014-01-19 23:44 UTC (permalink / raw)
  To: qemu-devel; +Cc: qemu-ppc

We're missing SPR definitions for GIVORs. Add them to the list of SPRs.

Signed-off-by: Alexander Graf <agraf@suse.de>
---
 target-ppc/cpu.h | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/target-ppc/cpu.h b/target-ppc/cpu.h
index 51bcd4a..70708d4 100644
--- a/target-ppc/cpu.h
+++ b/target-ppc/cpu.h
@@ -1357,6 +1357,12 @@ static inline int cpu_mmu_index (CPUPPCState *env)
 #define SPR_BOOKE_IVOR40      (0x1B2)
 #define SPR_BOOKE_IVOR41      (0x1B3)
 #define SPR_BOOKE_IVOR42      (0x1B4)
+#define SPR_BOOKE_GIVOR2      (0x1B8)
+#define SPR_BOOKE_GIVOR3      (0x1B9)
+#define SPR_BOOKE_GIVOR4      (0x1BA)
+#define SPR_BOOKE_GIVOR8      (0x1BB)
+#define SPR_BOOKE_GIVOR13     (0x1BC)
+#define SPR_BOOKE_GIVOR14     (0x1BD)
 #define SPR_BOOKE_SPEFSCR     (0x200)
 #define SPR_Exxx_BBEAR        (0x201)
 #define SPR_Exxx_BBTAR        (0x202)
-- 
1.8.1.4

^ permalink raw reply related	[flat|nested] 21+ messages in thread

* [Qemu-devel] [PATCH 03/10] PPC: Add stub emulation for HDBCR0
  2014-01-19 23:44 [Qemu-devel] [PATCH 00/10] PPC: e500: Use u-boot as firmware Alexander Graf
  2014-01-19 23:44 ` [Qemu-devel] [PATCH 01/10] PPC: Make all e500 CPUs SVR aware Alexander Graf
  2014-01-19 23:44 ` [Qemu-devel] [PATCH 02/10] PPC: Add definitions for GIVORs Alexander Graf
@ 2014-01-19 23:44 ` Alexander Graf
  2014-01-19 23:44 ` [Qemu-devel] [PATCH 04/10] PPC: Add L1CFG1 SPR emulation Alexander Graf
                   ` (6 subsequent siblings)
  9 siblings, 0 replies; 21+ messages in thread
From: Alexander Graf @ 2014-01-19 23:44 UTC (permalink / raw)
  To: qemu-devel; +Cc: qemu-ppc

The HDBCR0 register is available for hardware debuggers which we don't
emulate.

However, we can treat it as a generic storage register that doesn't
have any effect, making guests happy.

Signed-off-by: Alexander Graf <agraf@suse.de>
---
 target-ppc/cpu.h            | 1 +
 target-ppc/translate_init.c | 4 ++++
 2 files changed, 5 insertions(+)

diff --git a/target-ppc/cpu.h b/target-ppc/cpu.h
index 70708d4..1289e13 100644
--- a/target-ppc/cpu.h
+++ b/target-ppc/cpu.h
@@ -1597,6 +1597,7 @@ static inline int cpu_mmu_index (CPUPPCState *env)
 #define SPR_403_VTBL          (0x3CC)
 #define SPR_403_VTBU          (0x3CD)
 #define SPR_DMISS             (0x3D0)
+#define SPR_Exxx_HDBCR0       (0x3D0)
 #define SPR_DCMP              (0x3D1)
 #define SPR_HASH1             (0x3D2)
 #define SPR_HASH2             (0x3D3)
diff --git a/target-ppc/translate_init.c b/target-ppc/translate_init.c
index 35470d4..37a0ed2 100644
--- a/target-ppc/translate_init.c
+++ b/target-ppc/translate_init.c
@@ -4581,6 +4581,10 @@ static void init_proc_e500 (CPUPPCState *env, int version)
                  SPR_NOACCESS, SPR_NOACCESS,
                  &spr_read_generic, SPR_NOACCESS,
                  0x00000000);
+    spr_register(env, SPR_Exxx_HDBCR0, "HDBCR0",
+                 SPR_NOACCESS, SPR_NOACCESS,
+                 &spr_read_generic, &spr_write_generic,
+                 0x00000000);
     /* XXX better abstract into Emb.xxx features */
     if (version == fsl_e5500) {
         spr_register(env, SPR_BOOKE_EPCR, "EPCR",
-- 
1.8.1.4

^ permalink raw reply related	[flat|nested] 21+ messages in thread

* [Qemu-devel] [PATCH 04/10] PPC: Add L1CFG1 SPR emulation
  2014-01-19 23:44 [Qemu-devel] [PATCH 00/10] PPC: e500: Use u-boot as firmware Alexander Graf
                   ` (2 preceding siblings ...)
  2014-01-19 23:44 ` [Qemu-devel] [PATCH 03/10] PPC: Add stub emulation for HDBCR0 Alexander Graf
@ 2014-01-19 23:44 ` Alexander Graf
  2014-01-23  0:15   ` [Qemu-devel] [Qemu-ppc] " Scott Wood
  2014-01-19 23:44 ` [Qemu-devel] [PATCH 05/10] PPC: Properly emulate L1CSR0 and L1CSR1 Alexander Graf
                   ` (5 subsequent siblings)
  9 siblings, 1 reply; 21+ messages in thread
From: Alexander Graf @ 2014-01-19 23:44 UTC (permalink / raw)
  To: qemu-devel; +Cc: qemu-ppc

In addition to the L1 data cache configuration register L1CFG0 there is
also another one for the L1 instruction cache called L1CFG1.

Emulate that one with the same values as the data one.

Signed-off-by: Alexander Graf <agraf@suse.de>
---
 target-ppc/cpu.h            | 1 +
 target-ppc/translate_init.c | 8 +++++++-
 2 files changed, 8 insertions(+), 1 deletion(-)

diff --git a/target-ppc/cpu.h b/target-ppc/cpu.h
index 1289e13..15abad4 100644
--- a/target-ppc/cpu.h
+++ b/target-ppc/cpu.h
@@ -1367,6 +1367,7 @@ static inline int cpu_mmu_index (CPUPPCState *env)
 #define SPR_Exxx_BBEAR        (0x201)
 #define SPR_Exxx_BBTAR        (0x202)
 #define SPR_Exxx_L1CFG0       (0x203)
+#define SPR_Exxx_L1CFG1       (0x204)
 #define SPR_Exxx_NPIDR        (0x205)
 #define SPR_ATBL              (0x20E)
 #define SPR_ATBU              (0x20F)
diff --git a/target-ppc/translate_init.c b/target-ppc/translate_init.c
index 37a0ed2..403ce7a 100644
--- a/target-ppc/translate_init.c
+++ b/target-ppc/translate_init.c
@@ -4437,6 +4437,8 @@ static void init_proc_e500 (CPUPPCState *env, int version)
     uint64_t ivpr_mask = 0xFFFF0000ULL;
     uint32_t l1cfg0 = 0x3800  /* 8 ways */
                     | 0x0020; /* 32 kb */
+    uint32_t l1cfg1 = 0x3800  /* 8 ways */
+                    | 0x0020; /* 32 kb */
 #if !defined(CONFIG_USER_ONLY)
     int i;
 #endif
@@ -4505,6 +4507,7 @@ static void init_proc_e500 (CPUPPCState *env, int version)
         env->dcache_line_size = 64;
         env->icache_line_size = 64;
         l1cfg0 |= 0x1000000; /* 64 byte cache block size */
+        l1cfg1 |= 0x1000000; /* 64 byte cache block size */
         break;
     default:
         cpu_abort(env, "Unknown CPU: " TARGET_FMT_lx "\n", env->spr[SPR_PVR]);
@@ -4555,7 +4558,10 @@ static void init_proc_e500 (CPUPPCState *env, int version)
                  SPR_NOACCESS, SPR_NOACCESS,
                  &spr_read_generic, &spr_write_generic,
                  l1cfg0);
-    /* XXX : not implemented */
+    spr_register(env, SPR_Exxx_L1CFG1, "L1CFG1",
+                 SPR_NOACCESS, SPR_NOACCESS,
+                 &spr_read_generic, &spr_write_generic,
+                 l1cfg1);
     spr_register(env, SPR_Exxx_L1CSR0, "L1CSR0",
                  SPR_NOACCESS, SPR_NOACCESS,
                  &spr_read_generic, &spr_write_e500_l1csr0,
-- 
1.8.1.4

^ permalink raw reply related	[flat|nested] 21+ messages in thread

* [Qemu-devel] [PATCH 05/10] PPC: Properly emulate L1CSR0 and L1CSR1
  2014-01-19 23:44 [Qemu-devel] [PATCH 00/10] PPC: e500: Use u-boot as firmware Alexander Graf
                   ` (3 preceding siblings ...)
  2014-01-19 23:44 ` [Qemu-devel] [PATCH 04/10] PPC: Add L1CFG1 SPR emulation Alexander Graf
@ 2014-01-19 23:44 ` Alexander Graf
  2014-01-19 23:44 ` [Qemu-devel] [PATCH 06/10] PPC: Add dcbtls emulation Alexander Graf
                   ` (4 subsequent siblings)
  9 siblings, 0 replies; 21+ messages in thread
From: Alexander Graf @ 2014-01-19 23:44 UTC (permalink / raw)
  To: qemu-devel; +Cc: qemu-ppc

There are 2 L1 cache control registers - one for data (L1CSR0) and
one for instructions (L1CSR1).

Emulate both of them well enough to give the guest the illusion that
it could actually do anything about its caches.

Signed-off-by: Alexander Graf <agraf@suse.de>
---
 target-ppc/cpu.h            | 12 ++++++++++++
 target-ppc/translate_init.c | 14 +++++++++++---
 2 files changed, 23 insertions(+), 3 deletions(-)

diff --git a/target-ppc/cpu.h b/target-ppc/cpu.h
index 15abad4..30b328d 100644
--- a/target-ppc/cpu.h
+++ b/target-ppc/cpu.h
@@ -1708,6 +1708,18 @@ static inline int cpu_mmu_index (CPUPPCState *env)
 /* External Input Interrupt Directed to Guest State */
 #define EPCR_EXTGS            (1 << 31)
 
+#define   L1CSR0_CPE		0x00010000	/* Data Cache Parity Enable */
+#define   L1CSR0_CUL		0x00000400	/* (D-)Cache Unable to Lock */
+#define   L1CSR0_DCLFR		0x00000100	/* D-Cache Lock Flash Reset */
+#define   L1CSR0_DCFI		0x00000002	/* Data Cache Flash Invalidate */
+#define   L1CSR0_DCE		0x00000001	/* Data Cache Enable */
+
+#define   L1CSR1_CPE		0x00010000	/* Instruction Cache Parity Enable */
+#define   L1CSR1_ICUL		0x00000400	/* I-Cache Unable to Lock */
+#define   L1CSR1_ICLFR		0x00000100	/* I-Cache Lock Flash Reset */
+#define   L1CSR1_ICFI		0x00000002	/* Instruction Cache Flash Invalidate */
+#define   L1CSR1_ICE		0x00000001	/* Instruction Cache Enable */
+
 /*****************************************************************************/
 /* PowerPC Instructions types definitions                                    */
 enum {
diff --git a/target-ppc/translate_init.c b/target-ppc/translate_init.c
index 403ce7a..7322116 100644
--- a/target-ppc/translate_init.c
+++ b/target-ppc/translate_init.c
@@ -1448,7 +1448,16 @@ static void spr_write_e500_l1csr0 (void *opaque, int sprn, int gprn)
 {
     TCGv t0 = tcg_temp_new();
 
-    tcg_gen_andi_tl(t0, cpu_gpr[gprn], ~256);
+    tcg_gen_andi_tl(t0, cpu_gpr[gprn], L1CSR0_DCE | L1CSR0_CPE);
+    gen_store_spr(sprn, t0);
+    tcg_temp_free(t0);
+}
+
+static void spr_write_e500_l1csr1(void *opaque, int sprn, int gprn)
+{
+    TCGv t0 = tcg_temp_new();
+
+    tcg_gen_andi_tl(t0, cpu_gpr[gprn], L1CSR1_ICE | L1CSR1_CPE);
     gen_store_spr(sprn, t0);
     tcg_temp_free(t0);
 }
@@ -4566,10 +4575,9 @@ static void init_proc_e500 (CPUPPCState *env, int version)
                  SPR_NOACCESS, SPR_NOACCESS,
                  &spr_read_generic, &spr_write_e500_l1csr0,
                  0x00000000);
-    /* XXX : not implemented */
     spr_register(env, SPR_Exxx_L1CSR1, "L1CSR1",
                  SPR_NOACCESS, SPR_NOACCESS,
-                 &spr_read_generic, &spr_write_generic,
+                 &spr_read_generic, &spr_write_e500_l1csr1,
                  0x00000000);
     spr_register(env, SPR_BOOKE_MCSRR0, "MCSRR0",
                  SPR_NOACCESS, SPR_NOACCESS,
-- 
1.8.1.4

^ permalink raw reply related	[flat|nested] 21+ messages in thread

* [Qemu-devel] [PATCH 06/10] PPC: Add dcbtls emulation
  2014-01-19 23:44 [Qemu-devel] [PATCH 00/10] PPC: e500: Use u-boot as firmware Alexander Graf
                   ` (4 preceding siblings ...)
  2014-01-19 23:44 ` [Qemu-devel] [PATCH 05/10] PPC: Properly emulate L1CSR0 and L1CSR1 Alexander Graf
@ 2014-01-19 23:44 ` Alexander Graf
  2014-01-19 23:44 ` [Qemu-devel] [PATCH 07/10] PPC: guts: Add emulation of a few more registers Alexander Graf
                   ` (3 subsequent siblings)
  9 siblings, 0 replies; 21+ messages in thread
From: Alexander Graf @ 2014-01-19 23:44 UTC (permalink / raw)
  To: qemu-devel; +Cc: qemu-ppc

The dcbtls instruction is able to lock data inside the L1 cache.

Unfortunately we don't emulate any caches, so we have to tell the guest
that its locking attempt failed.

However, by implementing the instruction we at least don't give the
guest a program exception which it definitely does not expect.

Signed-off-by: Alexander Graf <agraf@suse.de>
---
 target-ppc/translate.c | 12 ++++++++++++
 1 file changed, 12 insertions(+)

diff --git a/target-ppc/translate.c b/target-ppc/translate.c
index 759133c..5663541 100644
--- a/target-ppc/translate.c
+++ b/target-ppc/translate.c
@@ -4270,6 +4270,17 @@ static void gen_dcbtst(DisasContext *ctx)
      */
 }
 
+/* dcbtls */
+static void gen_dcbtls(DisasContext *ctx)
+{
+    /* Always fails locking the cache */
+    TCGv t0 = tcg_temp_new();
+    gen_load_spr(t0, SPR_Exxx_L1CSR0);
+    tcg_gen_ori_tl(t0, t0, L1CSR0_CUL);
+    gen_store_spr(SPR_Exxx_L1CSR0, t0);
+    tcg_temp_free(t0);
+}
+
 /* dcbz */
 static void gen_dcbz(DisasContext *ctx)
 {
@@ -9267,6 +9278,7 @@ GEN_HANDLER(dcbi, 0x1F, 0x16, 0x0E, 0x03E00001, PPC_CACHE),
 GEN_HANDLER(dcbst, 0x1F, 0x16, 0x01, 0x03E00001, PPC_CACHE),
 GEN_HANDLER(dcbt, 0x1F, 0x16, 0x08, 0x02000001, PPC_CACHE),
 GEN_HANDLER(dcbtst, 0x1F, 0x16, 0x07, 0x02000001, PPC_CACHE),
+GEN_HANDLER_E(dcbtls, 0x1F, 0x06, 0x05, 0x02000001, PPC_BOOKE, PPC2_BOOKE206),
 GEN_HANDLER(dcbz, 0x1F, 0x16, 0x1F, 0x03C00001, PPC_CACHE_DCBZ),
 GEN_HANDLER(dst, 0x1F, 0x16, 0x0A, 0x01800001, PPC_ALTIVEC),
 GEN_HANDLER(dstst, 0x1F, 0x16, 0x0B, 0x02000001, PPC_ALTIVEC),
-- 
1.8.1.4

^ permalink raw reply related	[flat|nested] 21+ messages in thread

* [Qemu-devel] [PATCH 07/10] PPC: guts: Add emulation of a few more registers
  2014-01-19 23:44 [Qemu-devel] [PATCH 00/10] PPC: e500: Use u-boot as firmware Alexander Graf
                   ` (5 preceding siblings ...)
  2014-01-19 23:44 ` [Qemu-devel] [PATCH 06/10] PPC: Add dcbtls emulation Alexander Graf
@ 2014-01-19 23:44 ` Alexander Graf
  2014-01-23  0:08   ` [Qemu-devel] [Qemu-ppc] " Scott Wood
  2014-01-19 23:44 ` [Qemu-devel] [PATCH 08/10] PPC: e500: Expose kernel load address in dt Alexander Graf
                   ` (2 subsequent siblings)
  9 siblings, 1 reply; 21+ messages in thread
From: Alexander Graf @ 2014-01-19 23:44 UTC (permalink / raw)
  To: qemu-devel; +Cc: qemu-ppc

The GUTS device is used by system software to find out about hardware
details of the current system.

We only emulate the bare minimum to be able to reboot a guest which is
not sufficient to make u-boot happy.

Add a few more registers to our portfolio with dummy values.

Signed-off-by: Alexander Graf <agraf@suse.de>
---
 hw/ppc/mpc8544_guts.c | 12 ++++++++++++
 1 file changed, 12 insertions(+)

diff --git a/hw/ppc/mpc8544_guts.c b/hw/ppc/mpc8544_guts.c
index a10abe9..af8c742 100644
--- a/hw/ppc/mpc8544_guts.c
+++ b/hw/ppc/mpc8544_guts.c
@@ -25,6 +25,8 @@
 #define MPC8544_GUTS_RSTCR_RESET      0x02
 
 #define MPC8544_GUTS_ADDR_PORPLLSR    0x00
+#define PORPLLSR_SYS_RATIO_MAX        0x3e
+#define PORPLLSR_CPU0_RATIO_MAX       (0x3f << 16)
 #define MPC8544_GUTS_ADDR_PORBMSR     0x04
 #define MPC8544_GUTS_ADDR_PORIMPSCR   0x08
 #define MPC8544_GUTS_ADDR_PORDEVSR    0x0C
@@ -36,6 +38,7 @@
 #define MPC8544_GUTS_ADDR_GPINDR      0x50
 #define MPC8544_GUTS_ADDR_PMUXCR      0x60
 #define MPC8544_GUTS_ADDR_DEVDISR     0x70
+#define DEVDISR_DISABLED_NONE         0x0
 #define MPC8544_GUTS_ADDR_POWMGTCSR   0x80
 #define MPC8544_GUTS_ADDR_MCPSUMR     0x90
 #define MPC8544_GUTS_ADDR_RSTRSCR     0x94
@@ -73,6 +76,15 @@ static uint64_t mpc8544_guts_read(void *opaque, hwaddr addr,
 
     addr &= MPC8544_GUTS_MMIO_SIZE - 1;
     switch (addr) {
+    case MPC8544_GUTS_ADDR_PORPLLSR:
+        value = PORPLLSR_SYS_RATIO_MAX | PORPLLSR_CPU0_RATIO_MAX;
+        break;
+    case MPC8544_GUTS_ADDR_PORDEVSR:
+        value = 0;
+        break;
+    case MPC8544_GUTS_ADDR_DEVDISR:
+        value = DEVDISR_DISABLED_NONE;
+        break;
     case MPC8544_GUTS_ADDR_PVR:
         value = env->spr[SPR_PVR];
         break;
-- 
1.8.1.4

^ permalink raw reply related	[flat|nested] 21+ messages in thread

* [Qemu-devel] [PATCH 08/10] PPC: e500: Expose kernel load address in dt
  2014-01-19 23:44 [Qemu-devel] [PATCH 00/10] PPC: e500: Use u-boot as firmware Alexander Graf
                   ` (6 preceding siblings ...)
  2014-01-19 23:44 ` [Qemu-devel] [PATCH 07/10] PPC: guts: Add emulation of a few more registers Alexander Graf
@ 2014-01-19 23:44 ` Alexander Graf
  2014-01-19 23:44 ` [Qemu-devel] [PATCH 09/10] PPC: Add u-boot firmware for e500 Alexander Graf
  2014-01-19 23:44 ` [Qemu-devel] [PATCH 10/10] PPC: e500: Move to u-boot as firmware Alexander Graf
  9 siblings, 0 replies; 21+ messages in thread
From: Alexander Graf @ 2014-01-19 23:44 UTC (permalink / raw)
  To: qemu-devel; +Cc: qemu-ppc

We want to move to a model where firmware loads our kernel. To achieve
this we need to be able to tell firmware where the kernel lies.

Let's copy the mechanism we already use for -M pseries and expose the
kernel load address and size through the device tree.

Signed-off-by: Alexander Graf <agraf@suse.de>
---
 hw/ppc/e500.c | 26 ++++++++++++++++++++++----
 1 file changed, 22 insertions(+), 4 deletions(-)

diff --git a/hw/ppc/e500.c b/hw/ppc/e500.c
index b37ce9d..f8a76b7 100644
--- a/hw/ppc/e500.c
+++ b/hw/ppc/e500.c
@@ -128,6 +128,8 @@ static int ppce500_load_device_tree(QEMUMachineInitArgs *args,
                                     hwaddr addr,
                                     hwaddr initrd_base,
                                     hwaddr initrd_size,
+                                    hwaddr kernel_base,
+                                    hwaddr kernel_size,
                                     bool dry_run)
 {
     CPUPPCState *env = first_cpu->env_ptr;
@@ -204,6 +206,13 @@ static int ppce500_load_device_tree(QEMUMachineInitArgs *args,
         if (ret < 0) {
             fprintf(stderr, "couldn't set /chosen/linux,initrd-end\n");
         }
+
+    }
+
+    if (kernel_base != -1ULL) {
+        qemu_fdt_setprop_cells(fdt, "/chosen", "qemu,boot-kernel",
+                                     kernel_base >> 32, kernel_base,
+                                     kernel_size >> 32, kernel_size);
     }
 
     ret = qemu_fdt_setprop_string(fdt, "/chosen", "bootargs",
@@ -389,20 +398,25 @@ typedef struct DeviceTreeParams {
     hwaddr addr;
     hwaddr initrd_base;
     hwaddr initrd_size;
+    hwaddr kernel_base;
+    hwaddr kernel_size;
 } DeviceTreeParams;
 
 static void ppce500_reset_device_tree(void *opaque)
 {
     DeviceTreeParams *p = opaque;
     ppce500_load_device_tree(&p->args, &p->params, p->addr, p->initrd_base,
-                             p->initrd_size, false);
+                             p->initrd_size, p->kernel_base, p->kernel_size,
+                             false);
 }
 
 static int ppce500_prep_device_tree(QEMUMachineInitArgs *args,
                                     PPCE500Params *params,
                                     hwaddr addr,
                                     hwaddr initrd_base,
-                                    hwaddr initrd_size)
+                                    hwaddr initrd_size,
+                                    hwaddr kernel_base,
+                                    hwaddr kernel_size)
 {
     DeviceTreeParams *p = g_new(DeviceTreeParams, 1);
     p->args = *args;
@@ -410,12 +424,15 @@ static int ppce500_prep_device_tree(QEMUMachineInitArgs *args,
     p->addr = addr;
     p->initrd_base = initrd_base;
     p->initrd_size = initrd_size;
+    p->kernel_base = kernel_base;
+    p->kernel_size = kernel_size;
 
     qemu_register_reset(ppce500_reset_device_tree, p);
 
     /* Issue the device tree loader once, so that we get the size of the blob */
     return ppce500_load_device_tree(args, params, addr, initrd_base,
-                                    initrd_size, true);
+                                    initrd_size, kernel_base, kernel_size,
+                                    true);
 }
 
 /* Create -kernel TLB entries for BookE.  */
@@ -782,7 +799,8 @@ void ppce500_init(QEMUMachineInitArgs *args, PPCE500Params *params)
         int dt_size;
 
         dt_size = ppce500_prep_device_tree(args, params, dt_base,
-                                           initrd_base, initrd_size);
+                                           initrd_base, initrd_size,
+                                           loadaddr, kernel_size);
         if (dt_size < 0) {
             fprintf(stderr, "couldn't load device tree\n");
             exit(1);
-- 
1.8.1.4

^ permalink raw reply related	[flat|nested] 21+ messages in thread

* [Qemu-devel] [PATCH 09/10] PPC: Add u-boot firmware for e500
  2014-01-19 23:44 [Qemu-devel] [PATCH 00/10] PPC: e500: Use u-boot as firmware Alexander Graf
                   ` (7 preceding siblings ...)
  2014-01-19 23:44 ` [Qemu-devel] [PATCH 08/10] PPC: e500: Expose kernel load address in dt Alexander Graf
@ 2014-01-19 23:44 ` Alexander Graf
  2014-01-20  0:17   ` Peter Maydell
  2014-01-19 23:44 ` [Qemu-devel] [PATCH 10/10] PPC: e500: Move to u-boot as firmware Alexander Graf
  9 siblings, 1 reply; 21+ messages in thread
From: Alexander Graf @ 2014-01-19 23:44 UTC (permalink / raw)
  To: qemu-devel; +Cc: qemu-ppc

This adds a special build of u-boot tailored for the e500 platforms we
emulate. It is based on patches that are currently in the review process,
so there's no hash commit to refer to yet.

This binary is provided purely for convenience and testing purposes.
Eventually we want to have it compiled based on an upstream commit.

Signed-off-by: Alexander Graf <agraf@suse.de>
---
 pc-bios/u-boot.e500 | Bin 0 -> 1049524 bytes
 1 file changed, 0 insertions(+), 0 deletions(-)
 create mode 100755 pc-bios/u-boot.e500

diff --git a/pc-bios/u-boot.e500 b/pc-bios/u-boot.e500
new file mode 100755
index 0000000000000000000000000000000000000000..ddd0ade5710c7a8d2420856847c96feb20fb42be
GIT binary patch
literal 1049524
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%0AR;irmF1;-=cZnGfttn5=z_--W
zN>xZJ*fmnWiHJ_%v4$>e8NS7@dx;tAlefq4Z57_)S)bOqhhF`|hqkmwZgE!1y5HgK
z`F7!~3fv>pirrd@wfE_}WwRxXJ14wPWr&GeH8eN_-F{AZtN#d^0hi;e*k{!JdF}l&
zqUBWVml5f6W?w-3fiZ@^SEp+46EDi1O>8Ro;w+`BjCg<g=3hz=t%?0R{AdNTx!r3J
z4X3Mi*QKNI7WQ#<$HbC>%;^~TyVK!J{Z0qxu}RO;9<Es<!Phm{psifyBQ%+HMD!+l
zo%K7_?RPc5V*0^)U`Ji%g4O5Xdj)Dw`X=~Ih0));Dyq~T#=PCnj{TJJ#IIaFznT*Z
zCz<(fWC%3XYUW4FyP6-<S%Y|*BizBA!+SQ*T*~BCjI_Rs(4y{>%Q16>G~RP5qj;Js
z6J?F5Ia5G-9_fmyqB|_2yyuh8ni(8CWaki1%_03)pEU>VotefT|Eq5ahh|(xT09CT
zOG+qj=&P4@z*DKiVU)4C1c$&BUM!9`8C<aL?7>AJ*+@SZ2^ZjD8tuL!9-vX<!%16f
zD04+TP$tAfzVN{Rf=h8B_{;_EJ!ET62o_J_;JjVukAI8zquiA^4_fBD{RLnJ=PM=!
zXPB4OsTlIc#%7N+R|n@OR6vUr+9&e1sE-<F`m@yar*~YdU7g4XGp^OlIq=VSW7P&T
zuB7pviyRRj%&Vy8_mCOaV$$^<B~N1?;Ta)6%J;cxXh`v-B|}(KNWNs7b>cle<7;C4
zC4&01vKep=U?ktoN>60ZW$>$WQyT9Fyln9z#vnHSo&nwB8|lZsGFLok34EgME@T_J
zs$@%FUc{M!W56oVH|d+dGB-UEISs5P?kYBXhi4UY9{%FuGYm9m!Nn_kcynQot;3xG
zUtf-VKayO*{uKH}6?0KG3wV8L+&6oB+Lwx1o7`7cxO4BjXd5=0<2&J3%Fo4Lu#2{t
z`$H1JeQ)!=KAq}ReADGIbPvj!JuY;|eX{51o(#&pk$!0Z2FfO%egGRmiZ!f%x7pt{
zwqJkDN%^xUg0B>6ea$!(r?oe(@7W9dvfB@*jy#L&|9k^jalKb<Rh|F2Q?eBuuuL{B
z@=AGXom?dOg`T!gW$7ztbiTQQ{?nI$`ho=phu|Tel@qy$Pdoe(->i=>(?4`^2gF?Q
zV`Q7}_M<b3&m$lGG;uSW&S>uARo&_X_`L>OxZ+G~;;sbljZ3KR!xq=~-70yWOkWpy
zq81+)<I{jmVJdNxhEWIiS)!YsNk7vmyyTK!Dt(XiO8$58RE(D+uHHlLE;yAPqrE(x
zsj_YO<`dvpZ78z!j@z7kjQ#d!tk0gtE<I0UMJ%Q}wO@<uP=B5=cx|A+S)?r$J-GW0
z)h^XvDV(z=mVH+1f;c?V*ZwqlrVKWlS$3QsG4}cNE6#Vp%$sqyiXNp~idR@an{n$T
zC!{~5D&H5~u&-p+o)O#jy0gL;Z8g4J@vN&FR9-ws-+Vb^?6tl2GH3VG81>rz))mvP
zIf{jY?Tj%Ry*bl(Vu9sX=Qpb!_x>C-V(g35Bir|S)fLXOSSL2UDK;Kh8#Keu#7@Ld
zKgZO^IRWTSz9X@wLhL8}myQ%$4PSj{?dzmhE6!r8kH4Q^-Z%cqT-in$>)eVOL(`LO
z-~ZD12+LQ7b|;$~Ph_fqpHA<qOFuSb7Pu;qPnj$Gf}2m~Zgj>49}CH6bKkP|)kP<H
zl3lbdD!D~pHP)Or>YvMgPp_Uk+IO~Nzex0N^}IEQn%|Wl=ZQs$;H86R%xFuj!#hvE
zax|{=7rpN<r?|cpggB=EvV&V6zU|!S$ry(?cX`^s@oKgQd#k{u_yBOieS&(^_Xp{F
z2Yr2LZ(aIpefn<7e)+|ozHh^KO?_XvH|)D&$gA(U@cnG~KK=I5)v^_Ts{lXw4WglN
zZ-+5Iik-PgdxxQIvUh*z*~117-_Zx`hk@BEN=}8Zvv=ZX@v=P{#@p@BJWJe{U<G*3
zTQpU8@5lb%<$F4P%Fk@dLVvTid2k!7)0oq4omVn_B2BUgAA+EOdlxqdHgM(t^{3jw
zeA+VD@%?Jeap*w&=XUz1vx4(@YE3+mr_NT*;TfGV%&QN5^wod2pH6*QvVmVV2kD3N
z3s}9DJGzRRe+%tl!{<JgZ_0KrTIb3B-A~#y@3@nyi2Jj+qd03p-}Y<2DjbVm+^nvL
zzm<v~)4oFHj{GcIvCkqSeyjCNl;^lur&)JuzXV@~-;U-#G~AuZtO^RC-G7YjKu`6o
zt{V3%!!rv7*ag?}&2sWn*f86%jV#t)k6^leh&*gxHcn!eZ}tF^(^(TbKLW+x58+d1
z|I6Fo(Gj*I?pLg{<L0;a?e`VFnG}va{Wbe2*sAwyEaKh(;gGTL#{y$VU%s_{Cu=>s
z7c@qG?dE<i`K+9;nv1>JlYSuibtk;4au;WO-sy-m59!VTcPzZZ#JfubiP`CAHhNXa
z1nd-bPA`qi|4y<ey|Q+M%1Q^2Oh~t*|DYFHoF#TD4wd|bG~d%#y$TP$t<c;%JU{5j
zykq5~crZBQuK2$k@6H}XnjSpSp*jRJ^+4?iy^C(>YmMZL(&AaD8H?<muJ9+i4sq8z
zcb_SiJaqI@2L7VFi{`a9pT@I+=Oo#c#7me@bCP?^{SUF0Y-H2GnhoUV&(872+?E5c
z;tp|iPVsE<g3|Fh1HLo+YLB?T!4c8m7ro$h=4K~*0@6`(Nz>lz+Lw1SZyc|1a?Grq
zKbag`H5oYuT^c#I9(w%{8a4OOv3~7yXW+?$norDW&LjjeaB{`DsdcHwyy~4*@aI~?
zpXp;+^Y#;4OpJW#O8&zxjx6`OVgI2onrAzdp9ucrZq=c>;(qtukFRHC2lbTP(hLm|
zqnCO%0>|Eg?oa#B@uR-=>{32{>gEn+SI>0n+1Qu9HK$)`vT=^voJ`i4Smg3$@)-Jy
z!b9rSZ^~9zy|c1hGCA(wdN1@F`YAQIHMxBGqoOyhZRxwAxkL~*{*=h&L!v=q@4;)j
zSJo#7H0nR^XIV>clE04phSKe<nPsoRkKT^S1@Zk}JAsRxM7v6R$E1Bu^BN;>cPE1X
zF&lW#i!OEcm2(^>hUANd#s^h$cB}M0D@#w7s9eo<vqxdhQo8hOY&w3zQzVbSv|9fe
z?^65!!rS$!0gd*(yW*nu%TDr&X@7CtKYy6E?+E!^$XlH5JVyG0iRbkzVt{+$p7YaN
zn0q<R*w}>E=B;Ml<RI5yXP%==W<}<o_j12_dO%~v1pLMx=N_(=S+Xte9e<DRB(A&Y
zPGaHE@CtZIY)25FTbQ_8!VP1zk$nH+{B!S#H?`EtCab#r1*`?L(k<pbx8+WMg(vun
zd3QX4dzaw}q@f@C^{$NMqs|OVK91ojxme9pa<ZIfJ<n2}WjrOL6<b{TyW-l)ck;_T
zb9w$Z;Ciku#=zJ5_h|YoYaIG!`e)Cg&_BhMKR4X)R@p^XdAsqA@7F?K1XFjD(I?|C
z2aM-u$34ZqT&prw*sZG2^;s)z6kg0Zi2^I@<*zNe06u)_qt^`lr>(86;{Fgf@XPxR
z&Md#YAKW}{_~jU$;+NH&tM7kFTeMa&wiMTvsLE8a7Sh=O+9Lgrz4#OI1%1=3``%+s
zv}X(Vf&GRvC`R|+`nP*L`HE?M|GcFU_7_Df?ZjszJ~MoGDS1)s$(+wQv2Qju7Wyrn
zIH|PR#jHo{_hZPDU(7VCC!e0^*0+ZK`1XMD`KJxk|EP&!fE-E$V;%_S2W2{e8*y;+
zfE6X}klM~SqeXAzhkiyiasTZ4P#4r#hO+5$nY4T{`~OCVL=P&csImG`C?5oa@2~0u
zYgRb#LRiU%KC5+((=V6TB!YK+U><_k<Z=Iq{N(E4U0&0J-SSD(dp7yfef7>BO|aa(
z=Tc^ud(Y#&$9Ix43tW1X_qcn{r_Af_y@2#H?!Acj2KQdfyZq}^S1Iph?!AonJojD>
zoObsfBV9U<%2)Hg!@bw&$^Yr3kD>fhmmVjr!@ZA%rsN}1kG-wVJ?q`G!96Fr=VbSs
z=AP5tle-qquomiL^B;}Ag6>rHb^M0k<<b}VJrUPH=cp$<7LBDJs&u&j!9HjpU;2;H
zhoBAiInKoWQ!Cq%VW~U!j^hpkjY~n?KfOHp{4K_pyke~9$JPetb+@Br8ZdHG#fiBK
z*#|_2IFtI)Uqz&oNEZ<=OfI-jaZJ35F~NDQHB~;j_LjK|eq_s6EC$|G;I#k`da9W0
zV1DENxeKS-GTdXS`-p4oeU`F+HRyj?a$P)<TrfJ4USRU|lztOUFKp2ML|$q}LtZLA
zPIH@eD!#PL)zn?wD>dzY69@Amys;J(-q1B=Qz??o$K3V8IdiLXEbCw%6{B09kq*vT
z;%%Y)ZyILWEE$)D{n2ylH~CDQ*V@p;1F+w;T;Us^JrA>w0q)Cb)6u>$j)gPT7tWvF
zxwA~?nJXN;e6@kOmkqBLuaT}TUZgoLA0*D(oje5WeHC9~Y;vsbX~vMfg;%f*sPDio
zRV*C&$C=pqL6tc}Q`Hg5#ih>+m$Gqx?>RR%_|L126W&9w-nNgujyG7V)qENpn7Gvy
zcLv>x9g|)`+!}Yjg7y^CE-(Gk*%7o$`d;r^el>nhY74yHj05ZR-n&JXqPIPJfwP1;
zT4QNX!q{%y`rMAov%@V;xF>LGh}SOD_psj=^;hy=_xY&LA63mw4Z6#X_Y&eqKiekW
zi+|!+#bZHE6iH5-`LYfh4F2osFZ~-j=Z`l_4+1wuCQoI^x9#aLHWB2=?y64H9v2&|
ztA>7W>1mUXT~YLBeHF*bK4He7=iKj-g3PKe=x+4|BM&n8i2EBS%6~S~*u`F@Kg-$~
z!}E;(G~^C#4!R^qB&Xwk`x82QM?1$Ddxn*%+$j#N_)lLzrYhEmStIZs3GWFA%f|g5
zRq$<|WOVxJ9kN$!Ri5Uz;`mFiP37;ci~G+_kv)&`$&dU0xLM~K!*(Wuf7=O+-K-1F
z=v#bYugPrh$}#%S4um1|PU&&KBa~;k7WYA^sbdQ31l9L-*<8*IG~ZI*e7}>tPW9zS
z!)42N_1_^|p{pO8#J`QE{y2K0g+rWd3+tn8z{)e@t3LI>dTzhPclYygf5ZC@4mAGD
zv(T}z^Tz$-vlz?WJ!4r2U$yh8+KeOTN-Ym*tB?E3!dTXf--Z<qUX<~}f2_;c#_0PX
z*Zy+aWNc4{cltlp-P5jL8y@J>uL9aL0~lMIM|Bn1Gco`0q1LPLEMuE9=PrgbSHUso
zzC&A8uFfq=FS7gR)g!5|$dm;yG3=&xEY`o(OLH&0=h|GH2;MkJdE+bF%i~t9b9#t_
z?H5Z<&^O)BV&Z189*|#RYxDc;6{L|@#wJ#^(&+o_!Aqw%`d)|h{;JzqOApldcCAun
zZEs;Y<{I>%as!E-rn_-Pznl;3Di<8lO5FdO7x-`X590o+ZR!hiI@vSUt0}ir^J(S#
z%Hxb&1iaw``<sWIUAo4cU#2eVS*Jc{4l+MPcZ$WNbDREuf01v^o<Jh_^)H~Yi2n2B
zd~t9=PqRkjjH=;T{`0z<MROM)+`TVAOEH^%v=~~t^7<DWac@lK|DQgeyVc>EdG`Fh
zJ-X>%8@T9Jdlml{p822Re~WJWuGbSkdHZT_tfSGS?mx2h`S+Y>)7km1G0e}Silq#_
zWGfB>um(b3)6}QrGTQNzTj=wX6QOU>BX#`v7v`IXP2F+ImV)!KwofZ-9X}8~*D1}?
z^K*VLpZM_;=~NG&s80m{%Id-EYJRY*A@h#?#?VBkH^82;{)f@7ZppcghMxepa&vH|
z@^o-UdkgH*Zzlb`=Ai22|GEljBwhPKM0~LEZQY^mRab77J$P?jW;1m97JJVB{r}9Z
zJdF<k`akjU)@6P|`magXKEQxi=cd2*KbZfgo=C6g6c5}5pFBf5C#eo|CJw%u{$4z$
zb|z0%{L1pzb-MS^&D|fZmVL>_?d_VJ2>!SAXMk22FUSA>kjI$y%0>85k6he|eWnST
zU5%XI;rWu2tq0i$_Cvk;3HsiB4X_I0{)h4jSswDH?M={`<xMknmfeo~;w_pV$bi+@
z+jNg<UKMkPv}sixoR5B|Yr5v>{Ow&c=dbFTl?cAj1fQ7$?%vedP{p4SKds7Wu1y~;
zJSh$i?TgYr(w=Gq-`b<oSS{8(ko<@5n7Ke-%9y9<D3cyF_j8k9F&bZn<hTtg(|ph?
zbL&}sBmZh2S=V3Zq>-ze%(!H8zHi-+#kY%*0awXJ$~ya{p1g%?`sOjN=T}Nb8~u#6
ztIm<e{jV?7|EiUu_th_m7qAys03N5u{UaC0HgB@yp)%5&EFQl<3%;>lJRZE6^KA6j
z#)h!=4kv4uwp}i3&ltWX8qz#Q_Ye;;ck<w?Y-BC>0_L(GQZV8D{x<e1b(p(ax1nQq
zViVn#_m}dIl3z7vH0!W|Wb6J`bcQ#KPLyGfQnJ<Rg`&0Mxc`54K_8PvM?Exh5Z)+V
zL~%zrGf4l|Y7X65kmY>xA79$s*fm$Wu;wIlVYJb8rB4Ws_#pL=UXnTBm*LOTFZK*}
z^qcc4>lfrz!iP9JdR=6E6?!4`qqDLaFWqHZ%K5R8nSNfyjg0M9uNB#$wd$hgg<jdW
zntl0!&24(vE1v%zbkU#K5&g0Ef1mmJ8fWbW7~Y?|<R)m2KDOa|`K@OBd)S+8=KbsK
zHQo}QPyQa?sR69NIUitrtp}L(e@-iY*EQc|-SG8sBa;78i2o*h;a_<F{cj?%bzZSM
z|0+7lN&YTYSO4zOSAZRXrzMRnU`~T;?a6hBzT^G}+WT(p!RzRrxi`n~QS^e|_*N~|
z%#-or5u-C%rSrQ_9AW+#T~YKvokdMwz+bVX-#=*28F^I9UC**TDK<(TF%rxkklqaq
zF&4DHy=pZ44jDDSu`8pwP`@s(G7*#??4`362Z@g)zEsxa1GCWXb7&o=`>9d`jZHZ>
zrS;ehtMkL#m#Qs-(YTg5x0-eTPU0)Lwl%|dDp2<EFR*PxACg?AZN2^J5Pp`-gFkmU
zKDZze>|wviH*#KmX1I&zHxav(GvUCG#{D1E>MXy;llfz8pUC=Z#b;2v)3miJ!#ogd
z<n2Z46#8z~DG#gvfAI+Ui&G`|oR;`Y8~6Pt()g=qBj_j5ul|x)nc7GA0^f_@!yD55
z;Vs`?W6r8dS2TP6S~nn%-CgRXw=D>CE}=;6N>@A?Nqs(ECwS(6%SL>kj7_V4LN+uH
z+~kTIA`@&|##5Jxo1(d3?!Tpu5SK<Ll8;m&F<Q6%crGxDdFM==_My6~d)BqAX`#DW
zTHnU~-|vR*F4ITNdY1FQu}l!Cu2!G8fy`^kO3S~#yDRRmcw4ee^a&ms%sE}@InuMB
z`?$aKHJyWimz#4lhVFsIce*1_-<Umol}ESlZ|^L{$KmM$_*<}-eDomUioNO{o#*#j
z_wI&wc;Q@mrLPVxor60|lIK{T<%jFD?;<ajRv4LT&!LG=EbXQ1rEj@7JW=$SMdn@+
z_<bVy7wP}gnX^V-o0vSNUrRo8{bIkMYq98$ve#0!+Q5VkkQsL*zfN25-Az9o6Ti+)
zw-;!QwSaG0!@EngPT{W4{o(=YW8D9p_&~4yyvfQA;gd12XS1Ot)`wYk92TM{ojAk%
znCRB`5$1OeHcZYHVV8avez%?ZtbHuY8yJ@*w^r0pA9bo9%#i{U%fOXMuKNg`<=msm
z@56JxalNsD(6(YrFYoQ3eVzEK_sD=(sL$yMMZ&vn*Me5`!v&e?$nOk4WOi!kU5tIb
z;`y8ZqNhw+dt&v^scqGg2k05Xh1J^zHYK;=C#H6DKbq#MZ1CW3sm0rCt67r}9|S#=
zwLu6McoUa2TfQ!Rl(rWbS>_))-*gxKF2ELve-}U9X=cvRuDIFyTPVMUclr3^*QEVd
zjUD!y-aAp6h9P8Txbl78Q;T}{>E!nk+F^S4>6$Z54|eT>PI8iu*KT-Xn6bx;*1KM2
zd}FM2LVIWrZIkYB>uhn&<@BHZw_SE$)juSg$Zq!Qdd35NJ+#qO>kPl}2Cwt&xHPLj
zyPHOJ?QY)QwU>33_+PnvEr{upZDsMU+C=c$NVi@PjlT&D^q^PeC$+XY0B@A1-LDHa
zX|0M~(|nqGz*D**E_rBT<B84_!L1)U-V_b%QT$u+62YV|Z`k}`c^}xjZd+maWJK{4
zESy(gl<p;64)~Gz-CeuUH}@v@{e|?+ea<IDyv?oOetQPo{0U!yro)Ngb>mwCPS{89
zIzW5w1-9lQJma?q`2Gy^XwJVe|Kz9eVuq*YkIt2fM&$p-FNa?)zdXi~*eAw!XKy%;
z+k3~cT)eM}I)uB*U0y#sE=@D3cgv9T9{%cEMx?*<Q|+lphaF2ihw}@uZHrdHxmmBM
z{}Zs4Y2AUJ#|Y%%!lo)OTX#NMAJgCvX|tES%$WZ4C5=Zud0|Y@JR1ixn4-0f!)LB(
zQ^xordd&~<9e(euS!PKF0c$w-`{fut5n0aD_*IcE`<>dg3!If{k0I_KT=1vyo?%_^
zZ<`%WIK1zaZ>7Wg!D)PN*0rxd%iuj<yh8I1erDF~;H4N}L-9G$a~?jrX0DQ6hcAq|
zpHH?@LvQdH?OW$B@Zf8~3}P*K8o$9goV6iO=Y3Llakc|^{BrSkly9u|Mf2!WG&UI;
z_d8$j+a{xv!H3m0V2-EG9Q5s6&I!neHxGHXM`^7y?0zQo$cNpNe4zaBK5*v%x0l}+
z_RQT<^;!Fk&_`C)JLxg>Kf8Ha4^P4;yvGK|S}AK2;~(M%Iz6`y{b(O)Azt$Euhm+L
zx#KUVZBh1-*oVUZYE{?Ps%m(33VgL|PToAy`Y-rn*%!*0eRGa<>E(P&U(dhDx7z2+
zmHiET>-{RmKr*A&+GqaxEMvJi6F^H3ftR6%*XFjqYvzj1CuNf+f31kx!T&twO$2@%
zT|#+&T938x%;gv1r~RI6;n3pm!h1{7ChkSKYl~SQ0xysDW~XYuTt?sI7fzc#+6=${
zG`QCu_blb>-S!I}e<x?HxR*<Ckst85?!g&g11nqfrZa7sclk#9Nt)k`VQawup^PW(
zBVXs)H5O6Q@<@wNCJO&NX?f|{Ht=1*97F!^t{L6l-A)~IF~ChK%wcUa&^Nw_6|`6L
z-Qsb#wdo<3X>+8dmNB$*AHE+PvSa8S&|G(OD5sVCd7JOY{!+;v344f3;00PgVT-v}
zWyqKAv3tVT@+v1(pjS4(F`|MwAo@tv?inH4pss=$_jr?1_ju*w@7dqT-t-?<OtN!H
zJi@iFNb*yCTT!iXIup`^XrSzp_HLrRZ%V(jxVT{M<gj=?zd5FPMgPEe?)0hNr$hfM
z<_2rcx5xICr}8_!M4mDyl4Xn?duG9$mVt)0iQiPS0iUvdq?aw0kLuM?{U5;EybC-$
z1P+c+*T}Fg>Nk6vm&o58J$!p~kNh2@IdA9UW4d?P=?1#1(U(to&XfN^oLS<ugD3fr
z=GZtu<FLCKIhMQRJD#@$I+iY$2yVP!e6vdi{oyIvnFzMut#Q(KD#!mB&CuAAZ=;WZ
zXJW}=zwqL~zM5wNG4Vs)q*%Dsx(%4pL9PFx{ojAdbq2>dOa3c$zhd6o1%rCV+A+ED
zQON+;rWwhp|0{wIi_Y5`oe7xZ1zWL(p1Mo6j^Qs-N8Z!W%hM_RziBId*ItrnH&^K^
zMw0%FsjCdR+=(6NP~{HfHsj5Df%EX))2a%*t1J1B4Bv<z@_c2D(cxTNg>L9(_}dmA
z-Rq&ZEasH_-$P!O-@=>_{b*j$7pt3kj#u+sG=n^Y&mg1NS(>-dRZZOg&AyP2fAJZ7
z*P439H{Yyzdd7I(n;Gl@%<b&-;|0h;&h?J*rpa#wS@N*ty~W?_Mz?`Cnf}|fooCfn
z+GpmB+9!S@yM@}EZW*^hI3q2TQ`y8FlYe8B_Dxp%<bM^?;48>Lrvv7Pa>vr)JozpZ
zppTgNM$(gCrmTy10S^kao;e)%YaVg9*ys4%BzVvTmnOMQz58YRyUdoXHIrnVt#9sD
zXO|n}{IiRwzlL|exw~sqMU5GsJ6F&zL!+a*c3>AgqB_mJwSN6Ly+c1^ga@A0Mh|`8
zycfX-T<nBl+tfDE6KU*Md67PP;Q{&;wpqIG6=kPuuY3UJ$Oklab9@8767U6ovg}lG
z|4#hIuV>CYam?bu6RwWp|9h{MVLR?%UYF|~el?QvC0bvp{~A~Ez$*0j6~OM(2NT27
z+PQ8paai$x$?MbhL-gga_S&RRvp(7l9fbQ3Tak0dK24frs*!25sY~#zU44t@-cqwy
zCp(V)R&a7@k7ztc_(}w?%rmjd{84W}m%`s9^&{?&+Nr*_CJk=QxgN?&->p#}^o?Rj
zP;SMN^IqPPN$?+hmnbh7CPo}`!tMJ7UHE<FNr$!gdZj;Qs?|=O<=`k{+r0B$vkx^t
z$S`guUbWWIiJ;KL|KpC-F4CoE89o;Gf35ZJmXP*S+zm4#+w->f>P2I@8^+xEsJg45
zqpA#gH1Cx)UZuvpGJ_m^=kLlZ3%q{Vvd%D$N77H75kAY(cj99$ewqAP#E#R+iAFvR
z|G7C&lAQWmbcTZW(@Aj7*-ys4pY-3jKeB}P%BR*aFYz;VY1f)P3G@v3nOEiU>ol|+
z=l)gysh9bG&fXEjc-~6=r95?yYa~qP8?9wzpSlGddaFzK1<UH)-ycWpI@wSP?Emu*
zxc_;IFAB^B`d;fP+Rd3(r3HsctGDF~mT8|}^N#$M<h<*2P6xlJS2jEQSb^fL8{5tA
zn45mx3!(%1DjjT{-5=am0=#_fttu`ab>_MHD$=Kj4fwQaN6u6CGyk74@3T}NcL@oX
z*H$I*x#EllFwjd2`lrFM#vt~z<lc$>(sL<WS~bb~wx#c4&2QEmL+@@}d2oYm`_NxB
zJ~c>ZC^%Ee_r_*4bhyUpsV{)%(?-7dDyuPz`&IL-4%=;FG}C6Yzmy1uE{vheBo}aI
zgf>vW8GoZ|o3S7A2J|GoE9Yr&Y1+wslE8EGpV*!&ZGUw)Zxgf#?Z#EFx!cHpQ~G?5
z{=k`vQt@ubM-|@+z2#eT&`)-Yhe9u*jM(a83R72Q=r587?+Wv$+x8B5&5qx(67hT4
zLlVJ|!SLDhR)!B5pB(n7xy<Kw(f1FLVQq!j7Dsh0=NU14g1N*yzAgjakUX*9y?i%)
zj$QQa8s`5&Q`UUXd!AtM-3omt9I5^E-}sKk{eP41XRC>qm1Auo+jcUq>3^&589TP^
z|KDmqXc6l-*<Z}LUY^n)XX%`=J7WRu`~hFnuJx>`BrC?MtdT1Z*zb6+(b+VeNtYf#
znTUf^OnL~LHOn7f6r740v!?SZc4*FBwOi*p#b=p!!q>(obdyTvFTCVa;e2lD?%F}0
zb+0e`&?oUVJDFX%gK?Wozx5PMa6&#fI*GhFnOo_R-T|Bflb25(^mJ7<{5p@d{72Zj
z6~C%15&YBsM6k)|=d@v_i{+gw`1B<&eVRQ=-c<){@4R&Tddb8v_I-Xcdh_4Nzv3~k
ze8OY<8;9{u{K*~ccVQFjzmKPEfDz5xbd39oR%OM=m+yz-i5dPuS`lemNdy0^7w<GO
z93GODYsbN#M4CBkKA&+=ynSHTla|f?>3Q&A;sMN`0dJW4G_;sMJo&fR&yC?r1l|``
z{5iT?A^e&-PM;3NGU6*A6(;Afww-O#HZo=fv?sUncEbxh8i##fbGRVxe_=D{4rHIq
zZM>$YPUEY*L~#Ai<Sgux*TBoL|7l)mt;3!scJBXdk^OVRcd(6s4>Pa7F&|p`@T~Y;
zGW7<wlIs+MynuaN-mf37r|ySn?B5Lk`}_;3k$Xp^O0dh<&eweLunqc6z)oFr*W8wI
zmev@ru}yb?*QLg<G*@~*=T7_ukD?31H^`6bF0J%N=4fjF2*%JC&Sa;U&kwtRr!|-8
zFHFyn1|Fb`pS;xAuX(Pa!^!Y9#-FrxDkr)Uj3@bVPFZmoB?H*s|H(oF=K<(to2`d6
ztLSJ9W1Abo8oj+=2mck1InVn1^lPO|0cl!SL~R=7cbKur(R=`|ofEW0?Il+6B%VHa
z&aK!%jO1^q-C67BqibZo#hkKjk`3Y{c8OW@zhb`kZhMk)+qDkQO0tjcfAzV%%El+-
zBP{NYU+eI8*wUEyCNXE#x9PNRH{;SDniwg%iTih~bhhps$z%Kd|6JJg7cj64@_EKS
z#`UzZGpju32i{g*s$}1Yi^uDKj)O*|+vJLl!I7tO`rfr=am5bd(0^TU8}C{ItkVyh
zIxJjMXR2g<2sg_2h8CFTK^yOhVDpFc)#y(l{Kne#BN|(N6tVD*4R&>P=v#|luPcL2
z&N<`RuAc?cVJm4P`SQPxG|uq$e)U@>PF#-CE0=N(c?Y^r2jkCw`ZP=QZtFPpqUK~G
zh_)n~|2AUvwIfr6XJ^C7V?Mwqql5U);*@(;Y`G}%`rq~Ky-nrN`;&36;#Kr$=BtIh
z`O_N9@76>28sAmHVpo1}dd9!ch38%kzWS$X2mL|mPt{81pE+pDY<i>VUrk%<1dDQ2
zasMxNX8wtOS{jOi2V%9XA0awR1TRSctw~SCUcJQ2&g{h2+KHmWy&co13hr~aC%<|9
z+}r-1^>(|Fc{>XKchKFohjrGDfV*J4H&c7?Wk>#xFWKKXL+irZ42_kNral$%93Wma
z13L=kqx{d&TuD_XjJ!+j{}%AoPosZpy!uftwAB_cSCpnb3HYj4%6NRL$}@c|GVjcx
ziXG;EG`;Ly!ORtJ4)bpNfq|XNnn7!UoW|f~cXsvcE>q76#us>_SDl}U-n<*xJ1h0-
zx0n+@KZ@*~73;u$jLsbD&)a>@GfDqg!CnqBTeKUS;uRr}m!e0Ht>V9x$=~Qo1fOe~
zP%<Dnf7Qvn<{@2MMhx__<~N?i&OD$SJNvHr51x$9A9XVSR(QbtAtwvwZx80MeqS%1
zw4~50ShAWm!)o!O!@uAe;g`=Z+B$_b#1zJAit;`vvGX-E&(U^n>s*76oF{q4I(##S
zt$um!v5Eq0x7hPn6cSGZy^jAnBT|tFez(lg3}*;_*WzRbH1NArMsPCHaep@(y)sX{
zRQ=}v6uvj>B;rsQzMKB)VcoL`K9QR%y{oGx8+uTT1hY3D?yYK`INq3FQEB$8x$DK7
z+*D}J6pBx&e?`*C;1{}IM!vN*N|XN${dV)be}n4b4y6p^DITnH)rvVG{LoJN@V@++
zB!4LvbcS{C{wD8+)_C8I+}3@5HzKQ-6OZ^t+EdQ|8~9(({~P$Pn1|>9*`4s*eY_8&
zoi#jJw`adj9b0*?qI?bIt6ce;$lFLC6gzwp<tOn>lE!X8mik+aKY`9s8d>GeiJ2G#
zMhABL`Zl%>F_4-~UsZpr!9~U!hKw%cf5zP%37u!lXHMstCaDbhl9k3^w+H{zpk4A*
z4!YlQ>G;&oxN21Dj&P07StQ{ddO-)dmNqLcf#M!1R*%lgUNpA)R(gW_9$R6*F|_+3
z#%MX?665_&jW5r~7%Ol?JP}}qb@YXep0UoQ(~l2Vxc57Ge<Cc;d()-;1K%2d*X9qW
z2)^*y7q-3$@p0+*Cf*V_Vk~9nOd*duH0Hf+>E3N<pEG2lEu|-dBeGLngy%kRbS4X0
z$eKp^H^XmfR~h$dl#73&*OigC#rT&Qc)zazuAyPlC!4yPMEk!lWQ}+uuo^C{&y~-j
zd|7Y#-yNeoG?yj1x~P4wyypC)d{Z5^i}$ck!!P}&w@>~)`ow(jJFZv;8mL)y?uhPs
zV?1_o9(Eq^%{?0YPxkincjGiq)s{r?-iOWTL3X`*LOP1sqqhGK`S^TvYksS5iQwQu
z<QdNw_BTDG^+Z<({IQ5%sf!!3Hq&^rNIW?a{KISXX@T<@nY`pDhDVC-!gG8PU?H<#
zFmwg%68h9*hXqbCFq(uP%H^tE*oU%Bf9^Evl5&k7XKEg>ZR>pBwQZy+Q%KyULhKb!
zn;2PnqyPS+eA=VCMYtb;^+x;t#=mJcGV=LLaf#m7b!nRF5O0JJF2t^ov2}hhkA1RO
zZ@VvO546w!ZqZk<&LF~rq+4WTw@m6=JGVbT4s^#7LFXH4bJb+#H?{!M4)E^v;wsod
zT6q)l4td#X?k)9q$?s(^aC+|nb!%0vfsv2pRxVD}UU>(&&>DCx&x_X3s(0Bi(ZQL8
zz%GmXyVe8uGCL~poDFsA9PHh@n=hc_JY#t%YbDkv8-}xfEM*T2d*aD5#j_{wT%P<C
zsKe)7v1oM8((Om?s-~XH_O>PCsY|{B*cqmBe(Yp<B3L_Iyo4ur^_&D>Yp(?k``fST
z4uGCLYWz5i->77ri{l*L*$J$_LI?lrWy~M({h3;GRdvdqe-dA`nNwtkV64oZf^0J}
zbb;7T`2hWm+uQd_;oW)YY{s^OPjn7zD)i$uZ=-waKB!#jgmJ&$PWfz_I3ex9CX3To
z$I#ARJFnkkvoAGz4gNm1zkgNGG@LfAwd*QuuQkTLL0dWN>+Fr5a8kp3_IQqI{*LJ7
z+aFdvT^8z`(==DmqrlIfUz5Z?TDZIIyJin3Uo<R#DB3y5(xh3RG{{d;`y{cBJm~__
zxSuT_C)w?$Q%_uUP1-@8=!HXH(4I@2`@h3)lCS<R6SJ2xkEqR*Tg-Q36T!1=6?zTW
zTC-y>-xiQoXY4-PZjQ+QME*+h<1VjWxKF-vGxYTALXDBJZJPEb+cb8x4S$Z44a~dO
zpgZZfW&EE+d4I`SXznTcVQ8iL0rEZaCHFM<I*_}w7?0w(zw>#<V?D8(d*=@4jh&rm
zl5}NrZv<z8Qr8<FEa+$Q;-;ItIP=HsAGQ@69#qhVu>|{dUh_I<_t~CxMD@qLVdfk%
zGT;butO)x@18tFhU1#+*FPF5jq~#LNpo`dr##U$Wxf;LTox*d!w;a9J7+h$4Y+eC6
zM}^BXK4`sTUN#tAwODWszS^_u;fwsg;SK2sHt&Yn<Y|vjxIusOB_j_($Hm}sGXB5=
zn-605GW{63jI?QqpkuZDe|^f;D>|IccgDAjJDrJFZ045I#RtdmWL!FC;LkjS_gVB?
zYmrj^59R+Hr-S8Jac`|`cya%)P6~$FMLx7~4tnz!;R~FHZ%=M|rLlqUGCsnqysfEf
zXlNzz`G^;t8vcRkBAISE!+E)2cZjb<aP@xVlkl-vX>sqG!OYcSSI;Ezrp&678TE~^
z&B3=){)V|cqddg}3Mi9<-)>R5_~%*=evSKH&%&FFkw?>b7O+P#llSSo>s!^uxq_1m
zboMV1JcA#D>CYnGAK-lpd5eW>{;w9ENo$2J#yEWB@Ly-0Z{WY|Um4>A(s;6!^0V0=
zF>3?pAfL8Hxlem1^%|b4@4;O=F!QNnskJdbGt!KkKV^mMv*91eleNh3Y<(-)&38&)
zPWocWvnA)CZ)n@ip}6EkTUAe*=3P1SL3R}8)&+Ee3&o7l*btYTX`^2e_U(dg<b#J`
z3v;g_?r+!L%H^?vnk-K=_AY!z#J{0w`TOU)GaJmo2jI6qUufuz^)c;jPXwz5@{I9R
zn~YB+bs1XC%olIG_9gY7GZydDK69V7p*8RP+cy1;LB@v=-5q<D_LhZ<DDNHaJr{rI
zOzTD8UU)mR&Fjdl^x9)P;PnRno<j5NK3xd!HN2Ry<4lgd*Ce^-7U+AM<Uprz8Ln@!
zuZMf1MT$q!cB2{JVUkBCen00~t!$XYnVn(b8J)6J^*-Hw6jfh(=YDCS_Hku51jmYP
zCjMvq1He7@$gRfr@e|Zvd3pW!FOB;*yr=yl`6gVs{##amO#L<Le^1|`U$eI7o&w2Q
z#=6M%_5NsP`^k>DKg0MG2xbj-H+TNLPk&yP{J%_BG4UltH}E?P?`xdFJGmBkFK`Y?
z=b`L*ruX2}{=;oLn*@HMqPe*L^4d?<#;?txjq5oBVq!Hg*63A1pf;|!)5@K=mtV46
z^A&ox_<woqCxos3a|Um^>Hi;r-Tz|PKb8ID6X15@R$y=B{Kxxd9$m5B*B`tD_R>!X
zdor*$0sDzR0ejmeu(b#NN!pza>@C2)-Pv8_vt)1!?{#!;eP!eRONTxg%!ZA?+=^cK
z_9uYZ3d~*|4*qLsSLbPUZ@8sjosEG{HB18T4&WMIC0!W$l@A#0HT%o*={Iz&wnH1}
zBrlbIvNlgR4{Utb|JuY7`QvkAOXnwV?}X=pxtqCQ^o>u}-YrSs@9vq)g$^IgITK?<
zcW)v8bgqthUERyWCya$(zn%z|uM71%WEty^pno6vv=_d$7a5sD**7UWkM`{|dif5k
zC(+gt(hh`a^1C+j-GBHR*}1f53?G*s(P@2em)~K})*3l?2$;jkJIr&i(J|2toX(Go
z>E2_`C$Rt6yz1nUs!rh1FUlWH1V8*xdNc1`%*#^R8D%VuFG8~A%m(THl-WaCZu%MH
ze|pH)^TW-Ib1d%vq#V3$4Dq&or`=!FxopXFa8-Y?AJ13Og+Ka*(V1D-0P76!XSh9U
z^{<Qn6KRLu&x148)IY3sdgL%Go6fzzXo@!sy=9_-^RVEYLN@-e(3LB&<<1YL9J=MT
zGy0Tc&H970u3WBk4p;VMZ<|grem{8Y;x_$2>wnsGDwj5a(;pDm?^K??;r+Qw${Kqi
zdMf(NXW!s#>oD#;(Rm-;6DNCNf5uXFX`?^7w%lOb@zIO4`37{2yZf{moc-W#1E)l1
z^37dxvUircZ>_8jJ{rWgg{rg9w^6>;`P#4z@=xj82JJnLad6C<2R(IkA6$U{WqU5}
z-?Eqb;DWX-d(O2jaBb6mYK?<wY<q$Uz6vb9md(2ap4L<$Zu5XQF<JGgxsvP651uM&
z9(AgC8NRfFH^2K-sqi%aol|9se-Za5e(2V^(sksMmofEr*mYCffA9_CPbdF{?qHDS
z4*Jnt>lc09I>*-y4d^?aD{TDde?qVJ%8jo@clUepkLmM`)*4!KU;NGQUWN|N?KCiG
zpKIGVwT(Rs`KuWoX>_oaK?8HAF7E%+k&AfbXs0t0N5HK4(XpgMnDaA=1H$^v^5gsV
zWmcUkPjq(=cWo(<Z-M4`HTqlJ`}KZsmo2_WKguW@Gxo3U3uZk++l#ff5BqDr@uMH|
zjeKQ89XZB#_H23gh0y=2;PUVM{(Q%naRvxkVD*B3DxzP@dw9ZXyB38Xlri5*>C;T3
z7u&P-$d~(=yJsJ@eeqijA2qy+v48O7n{mJ4EHqHlJml0E#y@V?<J?~+yN1Tu*b^qb
zZ|;<oFK73K+toLXnf5K>e$=(!H|Htz-F(_IpSI8@bp5jv9UeC^w~MT;@X5DAex4rw
zbIC)_X+N~k$<^Yf(fHrkGd(7LhZ$G+v*OMrf+scqZ9mk;)t)(HM?IrmJ@u^FisX-K
z&fo4d>oL|(J>yfYH61)RpLp$}wQ|~3fSoOeF%RX6Y;i@+t4?XnJ(Fi0&uKjCc~0Wl
zz_Xs`B%WhM?}?!8g-|wdhxb|G(b&A&ySH$z>kK@pfG2U0%sdjDJiebSdBJ-Q@6#^E
z`TdWI?lcC1Wyj(EDTc1z!|s8thB-f-dUdCy^n&Tcz393~&iYnoHZm0$mcIY;Q1kYa
zYsD*=zk8&k*JOnMM~3&|Ycqj+JMG#+9kbM~Wc8=!!Y}4DkCGg0yH@-|?OTS=ym&?x
zZLqeY@h^$~_;#A(8F9fiw4`#^Gl%@It<bk--W%Vi*4G5X@~;bK-hr=b@rd;G!foq1
z<(V?ZzB69uK~1bx=DyAV+Oq&FgI4NA_YZYE<FA7p{l~)>@dC*u?GtJ(vAXYC;>+k7
zUAH?rio)-6l2bpLn`94G`>q<NUj6(ZWf!`#E_yLc+TRu0Up@|I!zYBvyy^<+{o`O}
ze=?Z&?geJ;C+qu$jlevrwPeVLSleC{i$^qT>Fr+5Lu-9@zmW%wYrfW38cWW#*CwY%
z&(u$~d;1Qz*djO70l!y&ZgS&g&!CudfetpXP6>|AR%@*`#@Q)}M|8@b0~C+gDckJ*
z_`Vn$Wp499v)>#w^A(;Zxx}2^tTr=`tS!rbVb_)LCRj#p^z?7+a_D)F){59abJ0s=
zlQH`^#1~gAPu9{eWPsIcd!FL--(LDNwr9yR+pn=>`L@5AcRhOC6FUDVdxO*Co@k?<
zP>(~WdZLLwFEDeBv9LC>uif4Y<J2O`JRlhGyby-`VGRt;NAihta%!=@4dECaz@D3=
z+^JT<qujNWOI}jWoPTA#uX4_wwD?2%Uq%d$IrM*bUwV1P@h0Y<&OBB3(n}&vEOp|V
zoLa6q4lL|8i`Qvfd;7k4S=erPH~Qk@g@&g&9zvUsnei}uZMup7AzlM4_}XIhUq2~+
zCLV_D>wvE<znqWN9dmrl`2T>j8iSJ#aNEPj#=l|WgrWC{PZ|3;JS!1=|76I|<ZH^j
z8hJ7Qs#_NFFYJ+qhV6WqSmF3Fx~;db4`0im0~|0k?fR(shU^|kzs$LB`nFa$qwaZq
z`nJBOZ;Y>L_vDaI*Io1R{i{FrNBVc|#r?ZrWQR#J{P{08hyA-mH(L%p#E3&AKG$oD
zX>z(5aTTBiV~goM3szfAzv<WUvqsljg-NsV)bokp@sXhpK|F<Hj&EVtJ++a%LiD8*
zmPSr(;{P>{w?v7-B)zb=Zs^b1^7D0W-NlhXZ;J2WOhjC^ICRfPoh`_$eZ((Fdr$fb
zvXhu%f$X-(hM=4NsgA|eu|DLD_;Z`}|NPP3<m9jZLT3yn5nEucd|*wCt<&rs;BTk7
zul)q-o|KyOmAUc-Z2r8JWmV8>=rh^O`4-hz<!NnsYK!KsZBt9i%zN*%W<P|r-~%B)
zr`%RM$6F>QlOAhke++l>pwE7GqFd`0@E`x4&(<2e7Kx6J7@t|{YURvamgF({B_=;x
za`~eN#CO4g@V+AvEP5_EPq4i?;uF34<9*L*oj{pgiqS~9x129X-jZwC&zY>d&;INU
zePieiofFs#`|3W*i~ILY(OTW=RkB;3+6}Bb3X;0V<j>lOCxqWq)_T%kH}MG`7EfC=
zgZMQYLt3fa>h(t#T!^on=1nB|sJFNAnKkt5&&KiXOnZ*$&+ZP((}n@;cMfuRRGrAl
z@9orgd^4Cj&+uJ2{juv!+8*|u?^^oM<(rgU!?$RiS=p8NpicP8Rioq|#6ClhKCGAy
z_}yJ_-<1hZl^up>n==Cr_J5(w{!lNO{;1j8%A=gGcCZ(?yifb-?`fmgvUijD>aeRu
z;Y)M3_^o_cd7mwqwC$YZk^5-l9mzTB-!&tllLl}$z~beaTYKQzJx_S=hXyzB<|w#1
zU}@~TCxstuBQw<=)&s_u8QF+zuN|qrSzdmsGZB3EQOa$F_K=%-zmQ)Yu`Tk*@90w(
z^6kh#_gyh%vTC-o*U@<Dkm{rDr-9Q19h?S63-q^Ec*8C)zd6ow+@t$ph?8dae~MB!
z{)iZEhZPG^Z9eQ^`~evBS9_SJjx;V@GuQQ{L^2&YlczX3iSDDDX<rWQ9Y|e+;nCCN
z$Mz(90lZIt@;TGDoF&X#H(#SVj|SX4`5@M;(s{4$Bz&U5^89sW@QS0Q{d;w(@a!La
z!tHI3DHSik|49B*`DVYP1HO}y42VqBo}heefvNb0q^-*X=0<3@CgefDj2oSoao1W$
zV-Ea!t8d)3FVX#<Z%ZEPd*l1Tw{3;;U){Y~dpy9dBR+nwF6^(B{(DsG+dg&loZlCH
z5!<Fl@LU~pv@Zv|6~K$Ct(U-?#9c|%rv2ij_&D}C2j2DNj5%Z8t8Y)SeB0UY?H$I7
z%R{_ES06MJyr{b}kg;_Y4|p|-Ii4!1Bi<r@#@kq5yw92TD)2_X8K20)!Spl7>!&*u
zQzc)F5V!NF+F{~9-*sOkb@M$D%IW-(+25iM1>8dbzSqd+eVKnk@A!RjW~T8p>+puz
z`qt5LMB~R8F(>|Pna&XiC%PLMc+!9W6g>FQX>4r`g*~u(>4CFc_#fE%bfzb)FW1%;
zxwh#BXtjixXA9zWW*nM_QRlM<{&bzA;j5>?>4X=mGua_bLxUFXXSel%)tX)q{kS{Z
zk+Gxe6Wt#^tna9Q(v|8L9SM)3S39nwi)jaZXMS5|`)Nb(%8Psde8Iud7_m=TEIl_@
z=NdJ(jHB+ov}cRkgF~7_j;4-^?_G(8ZGANx;Ri=Et4?E!3lzhMwyxf2+WM!zle{B#
z;pr&f&350-{RH3D@Ld<*VH*r8+;`dw`?z-I@ZA}{E8shwQ&Br}_-;4jQ_#~tr;9ke
zR>%IsE3o~%b8qwZ(?#I6Sh{K=Xu6&EQujW5QCha*?zdz+<9)E|kR6@(A-vzJwF~b<
zd7r3wC86G^xG=yeO9YvNJl(zCnYY-RW(>QpfhVwDI32U~WVZ2MO`3^=!Z$C-9{@Xo
z?jn>;SLbFHi*GisI$c!NAsgoD8g#KevWqm2Iz2}114f*0XEW{%TCat=s@58m-4@#B
ztSu^2EB-E>z}2NX<ZCJ!WqoyIhX6h>2P-B=dL?(Zxi~$<jBEwRSJo%B-vj+x{EnJs
z=4INRnE<x&uSs;j@9byLYTEE2-Q6X>O><s?_(*%5?GL^38SMvr3>}P;PAGaE%UH~?
zbnuM#@!yTy?dY|R?{2r>t&-o^$J95n)zND`<9XJ7C!BoTcMXnS8~D!NeeSPn&>VfF
z_NM-~wG8?yIMROKpWuTd+2^kLFw}$Ur{+|HW7&Uv&286~Y`tfuqRTrw&UARXoBQkG
zpS|*{k6(}3PbdCkpV+tXtLjboT*<E|-^hTQkOPJIeiS3uS7xop7c1M+O;$VjpCtVy
z(fxa~Usy9gYYYA~Mf?iT|LU95ef)Wl-A30zmw`s*&%<2nbUNEbF=>?tKk1wyz7L%m
zov>Gq<lgK2d8{83{`}Nc2YnZV;|t2;sXgdR{CWIr^c(Tj$%!CU0shc!28?c|E%@ed
z<a}A*F+tZqJuML=w?UVuz_-z@(J|Xxo0LDD{FUT$CdO+8-qoB5J7(|^oSS{yGiGj;
zQ*I{Z9<}MGH~0B|7U}q8nS0CXC^v`y_X6irz<G|dg!%A-{+g$}4|ef*^LQ7pFlQUI
z4l?VLX@(#0o}2<a)`VBhK&P#)7-{sIB6LJ_5^smblQB!mHY|R@xXQmrexdU3Dc~vp
zo+!RO`RPUP%68DNqQ(R6@j=FJo$(GgjrNM!W1Zag5I)nRp^JyOAIj*Hr!$G*u_t)n
z#k@AYJJ5D@AHSV4`u1sb@n2Z~ozn{_|DyN-W9vf`Mbr&nKP|r%`S1J}%C0svXxmuO
z#FM^@CXBqJe&cT@ou#e9>UDe@SKshSHG37Dos~|8AI|Bd(&dMP?d3h^hqD7d@H*`^
zK4|#mz!xsmQ@3PG12OrQGdFwnvC(b~k4$Lw*;mn8TKX9K-7ZcR^QS_*c@cL)8Tw_N
zqW(D@XkeS>&Taj;OBdTVF$fRP-o2^n4<d@?AU#d|+SpMRzKgv74eKaxy?hbDC36a$
zaR>33R0dux-^93g0GwJM%sy$g+6SNfMRcG$9gh{CZ#=y?5zKoZ8qt~VIrI~{$Q}uP
z;HRfslUr|&w7$&yGx8Jq&b1nwur1Po8JlY?oz7dw_jzV)fUkA~i?-<8Ur-KC5Azgn
z?o@x>`<vjjfLL+yi*V|6T!T;Kh}r8!rdW9r!v=h6oa7y6z81zZ;IhN}O!8Ik>tQV8
z-oIai?9m#xnszNs1oxhFHcH}`o?dR~p!>IPaOU0Evl89!PQ=z7(Y}^zuk0Ca&uRH4
z+SM!Ln%r39dqvy&_|AL*9G=`JT>zWcF~+vqw#lA>X3SEW<HA2<7M0Hx`PI}t<B~d&
zb<4+4=Vdlv>N9t%RITy0SUh|oif_kq#$~DaNE`Du5xhA_@2o%8#$NH(!}DICP0mhs
z8hheg&7;YDvzYNUdr9a)?Xke?NUkjwotLOQ_S|X*XDM?~aA&x5oz2i)m9`(M8=Naf
zVItU%eZ|?4;X!f#hw^>c*HQ#syK}<K(}AzRSDf9c)W{mvEmg!yw0-*gSmyCk+L&+8
zq<?#yXw{sv<0<+=*V!T)o8*)7(k<MRwla8=ys<iKE&5bFz$vPqI-oK69o@b6?SU%G
z{hcx5gqRpjl$UPI#vq538T&-=cWu&fNY6pH+KB%oaePdS#wc{Oh5Xn0wxtRBhIY-J
zmZp9DCmyBx+*z94XHDy9xtaND=oz{-{k~A;==qKY@SWFmH+^}$Q+%woB8U0hZtjPc
zo{t^oQOT1Id~v<1c6`?C+@G#FnO?vh!lY?UADafx+^RdduZtvC-VjN2AJiEe&Es80
z_e<4o(7aCKS4@9uZGX&JDdAT717rPY%NN@5gC>>^X{F)!;>YQWzc)DT6L*DqyljEf
zFIvMf*EzLq2krTI`ag&BXvMN+_1Zbhb=O8VaXb9c^9Ss08g+V8a`P>7b^g`y^=VBH
zo?c(!1wrPW(;cx+c+1W3um?{+@18r_t~UR-HVrwwR%sPA_`25i`-j1`zCV6A_ib?o
zFuCZyNb>Nw4atSKkNCf&y?=aE)t&!;CmCRZ5l0=ngN-;yv<XItE!qhQkW^?V3GO3k
zQm~?i1$Mz|3m@^*SZA0S5^bWipQNA*8Z@cU1y^18R=e1Oh88Kd*hPyJEY{HaBe=Ta
zE|!2W^L@U~y*D#pu=cTk%;U_x_xyaH_j#Z9uk$|0w|#1dd^#&+xjrv8&Mh(e0O2)j
zO1`SW+SD6YIru-j95|Fi*OonUbmy|v(Ou=1<r#MY&wo6+9lYsTx-qqA+0vs=EThlM
zCLiqrhT&+u?<v8LwPgHJ<L`XT-5DO8;e~#le3?8x@$~Z9g)Z)aMs`Z)3ohi-p5|tr
z+U1<v?AlcCezV7j)}(fgjFpbu8@p!x=VEg=?A3kA@vXDCb76*L!4P?$jCTfgHwN#5
z)Hjs-*hA=lhBnrw@0cN)#9nwn?bW9L&xblA1<VyUNHWLSv|j{H3@7iM@I*n;_Slp|
zPqBYHb2EgsI^=|7pV6H?@|6fv_D1R`lpRre&(p`vKKwd+jDI!vKLJb5@TCKa^GrO&
z=ZQ-+jQ$odzq^h8VR&#{EP@V#`6SM2sH_TDbz8$?@4kj!!rapuS{?&82XE)j_?jlc
zv==||F8XyAd+&PA=AT6y^*keAc}jWKoxCBQbLe-!b9TRnXU5}g2bOF3Ka_7z^KB@1
zJFn*%ePd1uDYV9W8}+}({|l&ZH+e2_>N|&Ll|`?YBVX<j<gJ7^-N^sXQ(p;rKTlpi
z&q2Q7&+cjGe_ZvD5*O9$=iPQ-<pWm2mp<l%b-MUq68to@hgAQ`ud%*K{ZBs}7v2mB
z>%Dj~;Vkz>p%Xf}J{pfaMfq;KyrFr8`ma2yqw0~9ElwLTI}hia`A*xnCFWQK!i9J<
zdc@9?v&*+as~+pqow_Aq_-pCoqmNz^Fn6A&4kXzx3gj;#p20q|u=r)_4$(fg3Nwz8
z@eQ0ap&qCI?}<-UyYS}0cpLcIdE$ul#nHA<-O{&y&R(<l`*ztyuahsx_zWC0KCM^w
zgEzsk9<^=ixX0A7F?tW>>5J2kYLx}|ioO{XTu+E!2d<0S)b?O-Rb8UNoXef3{y2T{
zIOS%1N?+t_QQ(v{XPv_HxQk~FJOp>c#@F`M31-HYk@|!9ef7ihN!TrVfN#L=+i%%<
zzWw^?uu~t@cVM{NjUR?Bs#CsV<L_f0zhTpr<aN+d{wMW2Uwcobp*Qkp2j6egT|Mzl
zb&4rDE32OR<n;!RwEstv=V@<-hEhiNptA?rIzpaRM)#AE&u{K~*<|8{<}W?@b9gk)
zmaZ}V5Pe~P`}PIGJ#-Y#9`x-Ye{Bw+Go^+Pg-+L|_S^pDsr}y<%;NV1E8+Qcjw8s}
z!_4v8%zS-&h7G%K3IET4JJ_&J!If`I-yO8q0Cz)yA6irPdNR6a#_+8f$X(ORDj7F=
zlh`fQPt~UOom9E#rDxf;k!?ozt2_A$=$l{p9=KHJ!scIK)8ga#d{b;+?K=grnn<0>
z$BM5rv8eI&c~5%M!D-#mHoos-4UGoo3(yli0S)bvjxbpv-iN!FZY73j>i4heS@TBT
z^PxSGn|x&<@PYU2i|dnlFo}{AW;2%i%)BaQroL_Atg0P1*M5FNe4^g*tw(vFJ@72X
z9%W)gbW{-sDPj0U_>tcmzdC!Lz5UJ=N%*-@sd@2}_)evcZe$PLTn_vub_o}5o0GL4
z)j9N3GOp~>&|YFkw3+>DAN@bVe`v2Y&!MH-yLx%AbCiFl_oQ*&?c!ah#+q1qbkAz|
zMcR3v{ke|yGE48}mu|~Ko``)u{kE5w1I2U^4V1r~Uvjr-%n!TSSLr+WRj+xo`$G&T
z$7hFqPqK3${yoX$M?MnY>gKClL!c(wr%VW%y_-5zw^K*jdxknTsSf!1H=VpE8Sl#a
zyV<uNHau_r!#COZ=io?y_WiZ#e=s@*;NXXLbEfQFa4yvaE%zH9`8(o~zxft*vQ`})
zng75_^0i-flZW-IvhvJ&=N<W<c{m0?3J;^cIPX<&#9q_itm1z~5`GUpd66AA>3*Zf
z6P#WCFw9(k((W@BKf%<z)rFd$kK_}KPS-9Q=DfFC_LJp`Pt>M=>gfLNm;X<n;;;|o
zPulWZy9c@p|CHfDi+71{sZG6lZG4SnY}Piibo?#RmRDa;e`Ax5J!NDf6La9FLu9v5
zKJnbO=_S{aM{#J7olLxjpl#2%PkQfO;PIn@K2#0#p|HHy#A`-BP#gh2UL>CAli=mP
z+Vm9T<HUTqwi5J6AD=CqD&OJPri@n1bd7;L8*SQwPT*1213sbT>D9WgP2W1-=!%yf
zg(tA2!?0>of4o8Z>)P}}hyN4(S@040JoHDjKNN2K0(1Z0LyVp{^+)bI&3y-a-L3n&
zjIX9$cb?jV<}3aHbUwXSb<hU<B4<)~2TTLfM}-rd`Cy*GhsDH!mVR1#*<R$xj1Dqe
z=0|^G%Y#Lw)L$=uf%3OaTpW+&yV~?*WB*b8jJ40!O)R{NdP{BF<;nem3ExA)PxQ)O
zhqvBN9?>W1I(+n1IvwPe)?H;|xEyCJKG64Bd90~?&7Wi$-aiVD#(kd1M|0B~oOjP>
zy?asbRHstmoaXxZZYQQObJjXneNJ}^Kk(HGVJ`q@(jAI-%CmpwW1*{c2e;iPqkBLP
z&??)<ZWnK!J2)UWPcXPEJ(FVK|K7FxY0eBEdA(#rt#uPq6dDPAdGG!L)@rXc+>R#)
zjgFc=Gzd=SECca_uqWe3;5kwjOz*D0Yv|+#-_XhB_(ojbDwq&A>gJ>GHTbY44zE0w
zCm)kODcn&!W%{rPnCaQ$JU8-uf@gCV9^dPD{+Q=n=X<5r7tceS=ThhUFy~owpz=QF
z+0V1;&(pIhOMk_K%*-=B?CNWY)?++4Y)LHKQ+h{U&KP9ud3WSlt&+9x$n$tfix{g{
z_zYfNYwI%8R{M9MpJf*YW|o<;J8^MRSJ>ZEz2cYjz5H$~M|m1*fCV;E@lsA*9w+b9
z%@1Yjn%P-7F5dj7K$vnme+w_Y-^sV!e4|c%SDpG!{oe9~foBnUpLFszN={PS@iD&+
zM89+JDbr8p8-1>6--+kVesa=|y^=_k#LIT#YdCbW^2VEY8lH@~J}G=7m9DGQ=*~R%
zNZ)lh)@sLfbLp!S+a5Yq*vWc3{PS(bPCX&aKH%VdMjz^|W68_VS?8=;;R4_--cI;Y
ziM{Rc_fDD^6-D7Vv4dq}O8v)^<?-|`XWiQ8#L>|-ry19yeZpbrBKLxu^?FZ%yUt8}
zSJs-b@t+dMbj%U837)9ULap^MdO2wIhqiu@JG<GZp-brD{^KC^25lI$*tQ=>XXV0x
zu{b^nV^+}**JrzgHE}rnXU=&Jx5Dl3vUd_!nYghNh<6=s@B4&Kk$tS?Hu^3fg$j3V
z(=Y9T#!rEE>b2k6^l!`r_^QKY)zoMI*rR^C4L#-&^7#3mHz|~`lz&dKxewZxoSfD@
zBSoZ7kd}}hAf=wP6AL1JX~epF8sn`q^WkYeFc>VSuzu-_(Q(dA-`j2X=aTinQu7F{
z`p>s&({s;u=j+St4eWh=@EXUoCiPx4i09Q>i>qR+RbXuIi_P=gHr0mu4@`}YlzBdq
z&^z(X#NK!CYfyct(<fhZ>S%x46z^Dv{|eB*p|rbA{aDR=c;SBGf%ZbDt#h6JwQ$D7
zzCX&y{+>6X>pEv5c^ui_=oQ67$_`seij1D_0S3g0ING1A_7>RjX1oQ^lFi8qZz20$
zj`keG5AjU?cD_Z~D^;K5YW3|>&Ox5weJ8Z%SVg0i+c<YO`QGi|-K=ojo5y?31q+6r
zNL!Wob9@i(Qyqp^PiV{<PsbFmzYISWQm?^t1IyHvPT72wjZJwspgygxw!BI5a~>Q%
zA-#`w*sBM8|9gR9(EtqN-m{<~ha5O<H!!}%n@1jBth%O2XL87!w&yr?72`Qh`@7sa
z=x1RfP2Vb+cME*ro~5!c(ElyafAE34k;J23e;B)P#Coi)?H2EF%ARHDX-#dD<}TiB
z<VXIekCA^-H2sx;?jUOAzNT2sMDC9EPIm5K>TA2$JG`M9`qrwm4e8w~PninJeoQ)n
zRP>JZVCF64%v(s~0uJEciIW;DeoEM&(y~hw*|?ezP28#a-1X}E@J7d)7$Ox9aCfuf
z4cqv5af|B224*pK&+1#eMT#%YykDca0w0Toll%|zE8rL6SIDoFUrEO;Uih)bA<UCx
z0p{D&OMYxJo+y1hX7iYyCg@Io+gPs?+maamW4&I*M>lxK|M9K%zR#F_de??*2L6QL
z(~g9DSqDAVaOOqxa71~T#|eB_tmzW+ddh~Qi)*z;ithndA?KcMV(0K&Y~@hiuR5V)
z2G_~ITl|7}1$eel_&&<FV5`)<jE|=u4Xr~N)ddXK6$hMnQhxNcC#3794|O(=LEY5D
zb1CVgyfb_k|2Ob1K&n3J-4Xu37;i1L@Dtb)eY<RLv~OZSct*a$?-#i-4AIYXZXbL&
zta)!g<SkJ>4lMLubVs`2elu6q-mzK#^M$(|)!=BOske3fn)FG=KlRIZ6E7!;Jan<Q
zh_yScac*}gV!i!pYusB@Iv2it?nr#Rc80MpTvMCAxs16)CnG((H>mzm&&SjQ&452m
zSkiqA*IMRYl~>9cgROs01y=kF_}aW`zQ#sh<v$jVc$WIX$qa9}Z9t}&V07#9ul*@^
z!c>ap!E0IRS0?tlvPQuX;U{u>P_$q?{2??(H0o*e7prajvW{q-vnIJ)+1#PLGYMX5
z3=gHfV}*~RMc@pvI=s?>3V*myf&cdj?{ts3XI}DRuc0@wqMAVKA@on*vn~|9P+4HV
zhdh<MPw73+@3j@DPg0lu_W~R63?`XAX8Orl+CJ)f$E_>f3rwEodns-C)sE2t@(kX+
z8LQ#WkK(#I)j@rG%4)d8gZt*4F)d<Vp~bUT^KGT(guZo>o}mA;oNqDe);g5`VffVf
z?Q!OJ_6_72m|t`-=8TS0eiHC1rhdiD?mt8Mk=f<RtN2S7I5@D#$WdGD{idukonG-%
z8z;$k8*@}F*weS^)Ztg0<oLtjJ35_MMQs!G)hk_#Ij0-lR~IiM?saO%M<(w#{uGE+
za3`4!UvIqaPk|NW&#KeDuXWAI1K?b#WWk8%Zri`*jJ(l>QLUf0YW5NE0C?sn9_iPb
z#P-_nO)TyAB{p~q5-)l~i9_DPWS%!zo4#=y^}`q4T@Owl77ZStvl+Y&WMuUV3#fO2
zaF}s`lLK-3G@sP>jTfDCo0C54q?<@t@88(qq}@)s+DSXGW#0~+_lQQ*=aBp)b+?<@
z7dq2NSnJL{{ij2ApTFDX^2+Kv>)j{&h08N$_~wy|pjq|F$^H4prcsSe1OEgk&RYn$
z2tO-HB?E>@MJGy0MI-P}>4&~3UP^x<X^<4zMRI<>=$VhS)bQjEKhAhe?2s&(bbwY6
zOT#{sFa3vPNc;hHf0X0<>W3ejVDDqWoe`_=qvUAI*H&!wRQ7x>?VmuKrP4*1b1+61
zknRwS?E6R97sgm;ftT1WOkcxBmtxKi-0<qD^2S}7^9AmFKi5snshylpgMQJEPMy7s
zZgzYrK634)!4hx@p8c0G$wct@Va1ljj_c#+l|7dqz8(FQ@D?SkC3GIYILPx<p7Z(t
zDz=*K&UqlgGQ!<eFPrlx%eXrN9>K_Qsb4xem~<~?r#tT)U+lE>i0B^r>&io-%d^B=
z>{1?h`H2zhj|UZ(9Gi$a6C1JKxFS}*yRNJfdQ7}|(dgJU)lVtLJmvD^-@%ugdZcgE
zJ*m21usoqysHtkfwW>2WAHQzFe^J{+L(@}Q_dL&|Zzcx3iNl}zh2vks*-X|eb2^JX
z7u<U13g&T^JCDqZKRW+k?}FAh0YBl@ES(vZ?;>NlQf;$8tfJ18;%qXX_Blh@1=kpQ
zb3}LIh;N{-e9F&e943C7_yybF+rXz$_1bol^!nr&D^St%_~R8_yLL71c>M9kb-Q-O
z#+H_ads*{6)@AiOE>6Y97L_g7AzLsqCOU(PuEU3;J0=Di*Bw5reERNu^Hy}FE&E&A
zI_;b9&P&;cDW~^Ne!t)!eS0EzLHAd3Pm%nTtd5J#T|v6%XL<%-dNz?~o{cX(__cVJ
zvoEB8H@YqpE3cIC%4X{^dRplT(<dH~%u8EqfyV;9uT6jbEy~uJy*)t;C15$AS4^Ln
zZ|I60t5ZHX(@p(0J@-++*_)-01jco?{t8}d4tqUoj(M%CO>Ha2PVASyhdpzx=7u_q
z9P6xS<r$*7=o3C?UvB`X3eksY4OLQyIoE^F%!dZgj6SX3oO>m2G5mjjau%Cc@8ge)
z|7d*Y@yC;6v8`VgF01I-wJX}ooV{~#s&NPNcxh?bf_LnBBX3Sc5A*iUR|1VY4j)!o
zeb+qj-&@hcyqRxlBO7FW^WAwF^Ts!oaq|0P!@d&G-JRI^gSPEpb`1Kv%AEP}Ea?ZY
zf}`O{W5v~e;#Te+okz@gaILJ`YjLf`6VcxKlKf#fh*+MI`gew$*WhcsEaoe3(zlq^
zP=b8zGyf~eH{8xAxf8xUVBUv#pJ%@Z?@PdY@jgZHq8{|EL7rtdE+kdlgXzG#u%Xy9
zl{7@^onP$J9vI;NSLYYYKg;sXFAnP7DU~%co$}djHI!u0@003>_7;P?XWVzs_cGoJ
zd?o^Ac^)(7Smm^mvOIhI_W!Wo9;4oegPH$DS?`Mm-qQzk&IfL=_qjVZ3!dSH&<(+}
zv7jU$+H2rB_y0Y&U@kiO(|k<HFFyd|3$L<ec{kRXvb|FW<|6S+D_H;Tu;ci$od?`}
z_3v5}-F`Xa&dB|v2lSsM^$#URY5&pwRi3bR#=qgpUgzn)6w@yA@h1NzyQ}WVV^ge1
zc_VhJDZ&f8FR`q7)m>uX8+u&y#l(hUP23bK-&r@l4ZQ|;ATnpm2d%>bH+(iM=J>1}
z(|>SE_A`4d8Jt>NZRJ33r_;t4?KWQP&T8Wc+A!;pHLAFMtlQW2JH9w2d~?p$rr=-9
z8NZ4o_mGv1y>YhP&h!D?jYW2sp^MoZy9t{+^A+#9*2K4<-rK3y_$@^|i+3|GLG&Hx
zL9@9xmV2~nBBhgv@i3>j%8ErITCau9yqooL>bxIKX^vE%GgqJVlk0T+<TO_U{(Js;
z@a%2ulTHkM=sY$R>E7s{(aSJj@;eI5>|FN8_*Q&Q(S6zDFl!?xV(riNoBJPd6n*((
zopT7ncb;#`8+^U7Ugb{h_wQ4#j0Q|g(f6NS7GfWh&k5_jZ0xL%foBMKI%~dR%y&}Y
zH~uKYCTgrsJF-O@dpGw3t>_+OEgRqF$8W=$dbv_$V4fR!o<MpxDRPp(NPW{h^M4iZ
zfIlfTq^$UZFEAI1zoI%BBfcSwg=eG7j*YD=y)$B+1^)OkpbTYh#4Dl~Vh<Z*6*>K)
z{|+t7>Oa0!A@T>w>rq~nQJ+-?U8N~28Z)mY>%2r3?``vgBf7u^o1P}F9h7E*3-tT<
zFWEHX+bycIz9r`sm%nrQVt6}8mpWqlXRPxsr_NI9?A1N719esn$iC(*6!gF&-%#me
z;+;jMcHhtLN8fB{dA#>TN&dz5di|$#u4wUWd<cc>`TvwQHc#KobZ#J7?&d%9SZ8+j
z6B}Xg>#_^l_O{g4%zt7vb&5YquchzUn7$>Qr_qx?PoIH-eRd05+&z<=eWo(AhNtwV
zK0uX_j@{B9Hn`tAct0}jrK+<2x0N@-7bM^};1%?qwKaNXXMRQVad%u9IDF@jxgXIt
z7e2zRqZ}OvWvcGD8$NzndW-uWo?w6Ge`>VGX79tdYrgyHTcFL(J~gk!7kWN9FhBPB
z<^kJY{%p|}*0x!1(L_T@d9OJ)$G-Dw8@~6#<xi}|JIDIP^A|e$W^@Rae^Z6@Bt}Pr
zkGO1DmjBMNmGBSJN3(Yt`f!^$|BO!RV)ak`Vh+sNXV#ed64ai;8q9?j1b@!=M3x?!
zdJ5&&9fmg+-z58rXx7}d!4S`!OFg;Jp<x$oj1Ke%8zXl%*zHU2Z}zk2yG;x$bN45A
zoqhr@!wKu$aJSKk&#?J_Yf<-T%hyosUAuTJ{3kSEW_swYbJIcT@9?=ku{55JV4e(`
z^AtK4?&QDZcJhzEFJbufx#=9?JA7rOo_%xE9^Fskw12JPJNT|X>pVB{*1ow#bLzs&
z_+cw{g9C$^o$VJI7#g316AS;TrEZyUBids4Q($zWL1Q;_<N2n>-{-<V+is&e>~%W4
zg1JbDFEVo>eu}xNZ%d34ZJuB34aJHtZz>z^;>ENQc<V~)2WNh#`&kF@DSK~saHjOj
z_?UsqdmJ1o{5f``#Hn+P?Lc~Y!NBa3>?^l!c46>|y9B`(yWe@O!XF2Bp5XlR2Ig>(
z{q5+LHqY<rQD5ynjWvIfLysO$82TEk9DJ=)Mz9=CJ7)tI^>JRrdgZ1}U1u)ml!@A~
zdL_vi7dh+C@O<$u_!OrfGq(<#Fn7Jj?#mhYW7RWvs|VTgm8%@MJM|3CPm}+_i1o7W
z5fxA7`k3l`bg5l_gwtMzpF*E}*?iwHYmP5>pf4)VSVpjC21w5V4$?oK$6o5U$M!Pv
zntjH2N<wSs=tVZnv8gd9;LAL_J-^NOX7PZrvAyt3*q-14>FZ5d_`>;WQ@`Qe!4Ze&
zSfH~Y_L@#|2ZrOL4_u3!*lgO*Lp(1LFU(jK>)y4oAVcQ#+V9bQj<N1{{`cB+<bRBf
zu`(fjc+M8R1E=Ie46XUtj;n*s-p1ve&eOizXVW{=Z$bw~FdqEBhCaQxNVFqok(1X;
zUHRyI-?wQ@db9I>2=B2A9e>q%-$fny4P%Ggx;SEJPhoeJHN2r_;5opUZlmv#eZWU+
zUPJK^Y;it~w}7(4?dN<mes~Y@HrUe4b1?JW<d@tVa_W;Tn@_#cy&67?Z{l}!w}<#c
z;ele`)$>14j!&3bPl-26@(b+sbVr+&DDTSc)11y+^ZOJwpdWup{;FFK`Quw7VQgaa
z?m!nE$47l;=f$Zp+^Izy^104YIqH>9t>m*7e4aZrKlG`|fzwdn1b!WR(!sAIjK$~3
z5p`LxRGu~`&u(P&dDItBUf}XyqUW?J-N|qVUc4Xrf9$!kee=ZAXuPy9S!Ox^4G!@?
zF@8;MpVO9~=P-K_`lus!I_)(IHpsy?u4l<Aob?`yydro{pp2I?M&CsphWGxIGI@qS
zhAzP02sUPJG$-l@=cryXdb#8P4P_shzsOxDhK6Rza^lmZf3)eScWU!<{p*vX`n#H&
zk!L4y&b5#88By!phOwcmWq*jLbsl}xqF9Y*WkXFc%$=WgwqM9s_Dip3^wicpn*;~>
zfJ$EwvA(uCvBktB_v%bvd_FqG#L1HA!jmQS8@@WZZo~F*bsN4is%}Hi2*zRa)KfT%
zS^?~`W#vKi1XH>!&)lu|{s=e*L@(HzOIdI1N4s7?KFe>Y{_5lz)!WC-sQ${R8Pz=_
z;Kh+MvAs4L+nc-30Hb;G_sPh+@Ced{x-`XxPcD1v|6JtQXx<Zk3g)Z>*~BK4RU*Sx
zM@nhqYWh*g89k%dVUA|mb91cB(V4ENzf++nmW{)IIpn-=?*gYCe6s4-d6zb>OIRCu
z$DTIL$#a|C_ussw_OtZw!ZqX?vqtL4gM6}Uq?4X&+UoLD+Wk0sjQ7a5zd7c%74G^H
zczg7qo&Prn>7QTvNm6q*Li~t$i->1#5pX)3oXY$<eCC`QXadillrKC-puNnYt+z0G
zkU{2<Hor(;E}#wU5dX02^!giWtco+#zw)!!|LbR*`o#zBK1GI^GceZ^wAPJo108rq
ze(_8&?NmGC$l9|SiiiC)I_a#Y2PSdX0yHIl-@Y>5ZHDG)ZObpj+rfK72Y`d|>#cJ2
zUFd?&2#;S6(cIX2%v49#|F@8P;_y)`@l!VSHq;E;d<u+B?5jEQeazS$s?gop_&h=L
znz5H#b)P!63dTmPz4Bi4-i?OGuQT#Ti+pNN9+R9fGo4?7tl;eDS#tZ>VVm(k=5BlZ
zg@MOh;$LLSrY@2WCjRhlbIyyoaeSZ}2YBAoc~s4dy$;i>viqFPJHfk7l|GO)w{qrI
zTb~v08k{HUnrr<%aY5E-ZstCY9sRH1X;<9jzun27`&shO-KsrpXBoH<c65!i=dRD_
zsRo;W^$Q*le~z8ncf?a0*q(75reD8$6&S)V-_pvw_p#nHzMb$H&fJ^3t!)^l>WOVL
z+S#Z2j4o@qJBR299o<VJ%|8D<V*GOt7r0z$_MXtRjD9VY$;+O7h;ho-3)=FlX|{gM
ztuuoc;6sA-;dl8v$}A%9RCGt0x6-o8^l|LQ;ZyrGt%UY%{T}U0r%$;$*|PPYa#NKb
z|LKXyCk`%7lS~CKx#L;&3ww%Ua~0V6hHlKxC;N@yXVbWwrwWEHeS3aT_?=X2@2t7W
z@b3-|YHtpLgB8L7Th?fh?rDL8p9^NLAJ*^g<?sR?_y3u30^bAch4()@PQ0*<yyDX|
zfA|})R<|<lY<w~}bCc|VnZ3_5pffOMUI)%pzvlY7o+#`dV@0&rFh=NH&RyN;cXiJN
za)F+Mu}P6S;|sZlJ5D>bC*|OaV0b9$2LteP*ExID7GScTee5v(G;xgGZ|H6g@Xgp$
zxUbD4T*ZH8C%OQKM?dMrfJ#3du{>+z{U0~QZhSXzPZ&Jl{EU2zSffVH)7~>B1g}tb
zZ<lN;&@1PCM(2ZG5B;zwVdL-id%j%e%B#X5&vMbf_`~L0>MHsr8FDIP&^&J`Z_MrM
zdfuvW_ETbC9b4o4XYW3K*P;dDJ3QhyhDf&)v9>$+1$}(M9XvzNw^Qf7&>AZqZ5i#a
zZy6R2w{U3AsgwGy<^S}VYx65quW+7sqANvCJNWt?KX>K^Uxj?l>Tj(aS3ma`lVjIF
z>%Ut&&N)xJPkEu+m(mZdpUw22HJ5&m|I^*JpdI*S^uMn5qHFAP-SsWr$-H}!Z+^Ru
zW9w!vq%CN;so&IlyqbD^S#a9OT(#TzPhkHyy!KT4`S?ZP%yjC@r4Pg~O9#p8*kCfW
zV&<*BiiYBr$+3yok5gOd#1gDi__c2=KLuw8<=2iG8M}OgOF!Qmkg=shmOlzQ-gEI+
z-iU9&6T+ETb=@hx0cFTb=xnEwR&E04NpneSNQaV6C;cKR`-ptp2J*Uj%(pu>7`>0m
zR&HXQn6iwW6#q!;I&iDxj>kjB-uCJBc%@U@QWo-9PCeijca~Iw=OO&Fp`n{@vHt#!
z$G!Sq!=9^qv_kxs&mZ`aUatS7Edyn)q0BW-8OAkGW{h1%^U3(?D5w77n_*qY?|OR<
z-!eXu;Qu1N<<8uit60;(%4hn=`pBY>hW17NH|^4f;B~#$o$%LLdy9A$jXN72+{}~u
zMt>vV)_KSw9?swZr;kTF{Bxx(`~5pSl+B|_uGuu&{Li1c_1`A{q}%c-kNT>1_&!v8
zz3Q}aZ<gqv><xE9*Xpq$+)3N-kp@UxNYAhA%qb*QpDIc7D?2@Jl3(Xt_wcOquE>+R
z$I8=53JuAb4jydA4$&_<ShXgng6EBV<Ls(uCuRIjnGrm9@%|jj1j(cF=kjhP>3Pgo
zDd{Mlqm&s%8Dv#|P~UmxJf3GB>4lYRO#X}TZ$yXdS-`t%$y-2LO<y<CkJso2zPKLI
z)=Hj#q-W~aI3A+DCFFgGGL59h-a;Cqtl)9C&H#|!#WQk<C&d5d>OblIybDvueY8D`
z`i}4)Ta0G{-&T=F^*_irjURc&zXh2en2>UxH_y-T+{5!TJmaJG!EEZ7&iiM1zmNCN
zGDguh)$=>v?cv?;$cwMi2NgDK&DpeFe1DbioqT_leQOurT^mpj<y+7R-6#4;9(1;r
z^ed9v^0f{~+ernFR^dKrg49cjzpVHlvnGa;F5r0>X(Op*f?1?_q*{~6sfHd9U&gBB
zIiEC4dNye(=?Kyy(sM{dr0DyM9qC+BKhK(PAL;oW=s$(4vME7lKUR7s9tN3txOi#!
zlFMvf@Q7pp=Ekg{Lai(I7x|(FyB@Q?o0yC44c*<Mb?FZx)|aG148WtM*<1G+o`t=Y
zwPKxO`=(#vLyrC1nuN{Uk$EimMW3x7T78SPl0E~2t&3HsT~}s5o?qkI&#!g$O<Ff~
zc9|`be??!6-ZPe^Tbbhv4d^Qe<E1Fiyls)skaPvi*_IFOx*XeMR$UD~@1I=0Y|wF6
zTRnEaGj?Y3NmnGkAdrY#e)iGt3Vspmi+9@X_)Y%|KX3T2>-R8Mz2q5?si9l`=c@+z
zutJ>~v*+r+yP8w|?a7<_Td2#4#n8XJp~BYBNWN^oRem}d9Zme__!^?85pN59#vg0V
zN%p(74P$dgH57eiR6`AX!tm>x8j5;Gz(0?O)m(#r`Bx{$s%x9zm91F$!ExZ2&KG$(
zSByNL@l${vVq3f3NB<9J_y3c+fDe0VvjuyLiM42-S?yn*EJin46S`Wl6QXTnn%ah2
z`7`p+*W{tE$?F*b9HsLku3-P#Zsf=rg?uaITVc<Li05)+1A-@T@7YtlNOTC-Ne0?E
zz`uJ2WZ$fK&mYz|UqhS~{Isx>>}OoUe`9+xV>I|Y%f=({n|tso&_`)r#lJ?{Dy;iN
z55-q^SD3w^ntqBtT}xVIbXTrye+oWXOI>`D-Htm&uSy)C?R#ZY$O%#JYK<A%9&q$u
zm3IEjx@j2hsSF<q7wLVptD+=-h`pZXt+VB`XxF5Y@S(C#|Gp#r-?WL|%F~%h^>3`-
z!TIE0m5!5tR@C;p3{i*EHf=a-c7DyUMEFI=ucv21N&Zl~?IqjU%aG|Bd>%_S1J>4h
zbeui&eSfF_oveSePNO}H!zok0Bj@ku?Qr_s%eo)%5wd<^#?~{f#H83>spClE1o1HN
zJw_gtUf(~d@_Qf5frpC?uM3AaIDP6W8Gwh||7Z{Wcl){4Z_V3j`s%CS>G=FWpQwN3
z8Rit)Z|2lDzoyi(=foLHmM_h`cieGIE16$&c4Dypl;zp*%!a`d_2*Yke}3ih&U<H?
z!MSMfw31Wi9~|V_#lJxF7XGg>G^Ufj&jJ^R0+XOAV{n(aC*X(V9%xA-d;t2oA@|2x
z$MWrJ80(*yc$@z<U$<gkW9=!gY)$Y&#AkUE9<i%y3$#C)P5ZBS#?)VJ+osN>kASAK
z|NZ-#wu`NEk>$>7yT!U7@rDH-pBUBP<Gh})wu$$CbJoQEe||%8&j{yzAjbKV<Ym|!
zYZ6xYP`!ai%<LicwtS#5C9HE8iznK~m>3UZ2{eoia{jCSl<_$4yn~E!w*ybn>8TmG
zId(VNIK$q--v85Wf{Wl|)Af=ys*63bE8JsQ+<AZgmH0*5{&02SvP#Rksu-Qek8Jx%
z!`J*1lLh#5y>p$Va}zeMvu6A3Ju=!0zB+3`=W8U#A|LK@`a2Bz(gcmjBVEKhXpSYl
z$vkJS-bSYkpK!&c<{5hxeSDYa3%apIp<m{V`5VvGKYsK%%892D|B%BujY?=)sD9nB
zpDI>?%Em60t=W1T{WJAl{;bo!=pS}3@g&bY+Z>l~J#w)*$9cfW=#`J0zsT{$J;&j{
zv2%UUZFEgK=Zda{c;3_T@hG7W@>5>Gf6-t0+W<#fkA7z%abj#9y>gKHjBOsd@oC1D
zzqpvQD0W`f2!fVv7ZHD^@#S{VmfD~_vo9xav`WyM9`7I}Prhh5Z5OoNX#KO}JMXvi
zpnE2dV5MjN-$va9*x>T14?V-B<6PRNwZ=QyhG-)<(LBYfXdY?vHF0ZuNq*3#mB}*V
z!2mPblwKxq#}LA1bzuYBdU0yz)>ZO}emXw%m&T_>F-c|yhyCB$bje8D_j2z8lvjV`
z0~w|c+XvF-Q)Mq>PS3$+X%$SWOjzjVL;Mfg|2_Jj@BHtg9`<rilS?O*#w~2vgYaq{
zH&~09b8!DBFQ}X;ljY;oP@GFVjy~;M*!-+7k{7=2C#y{x?mn2MH(&e(aCX_}>M}aO
z&($xUY9(Tpby<V&;#7lgRWSUbvmUbcneZVGs41V)%o=Ha9+<Dup6O9+!yf_z%|E=h
z=YV8Ea9DO*Y^tv(vv3eU75~oDzRxi_Cfja{-E`P@7vsl_-sTDMbPqpo{ZRRVx%dQd
z`c?7q$knfJkWHv6;aQ^Z?CG~V&-3Wd3iSv1<}{n+fsdTFn!sP#BA-@1@~>oGD}ayM
zEwK4T*B2n$Ha~2$nFG=6kdcd5(wFxZ7s+49dXsmO)mNUWJo-kPmQtQ_Pdj_b6N|QM
zUaTbzUu8b;trQ#=EP0Fdw9IOR7hIyXp|wS9#3huA@@|oE2pf&f*Juq4!pnn)Ri?lA
zR@gA=trm<blg8(N0=l<K)_Td3H;o>oFnKZfcF4g^Xus;@?9fKH4y_;Bcl_Z;L{>bj
z{)~t~TaJ+)=G<}xW$^1u|Cd=KYphk!BFmodp)HO0u+^sbzGV8aY=p77@w`~{+~5fK
z!+*ywa?dgQ-PwE8k4cqQF>7Rk-4~-{hR$p>{x9JT_WNiSAJVwan&PzEhD{GW+FqSe
zx~p>8+3kbDim?arZ8p3pcK&(5uF@ShV=kRjLwp^xx4W?1>)N-SyWS4GZ0kC5qXq`m
z@OtRUMc*cca@Nl&&P^Z(NFL20EkNyA5AMmfE!j3#@9h3^&d{uz*Q)LMatguK;jC@+
z?1@pTBVzsAO-|li@}g&X?IJs`r(bvtel#`|Sy!``jEteNQEnc(s>X0%`Xsy@dJWHZ
zWP{E1@4$l|3Xh9@A#*loQpi&^r#QckaThxOOZgvk{@e7-8I#V%;(tD&q1fD+G|$P?
z125C({FgrRfb+kL|GRIm&RIXcEw`ODSL*yP<$s~`Kg9o_^B+Bo)u**a``S}H6}_IS
z#&`02;`fCmqdY;XSa0>t`#R_SO6Ps(_K2ryd~3eyOgR4~V{fLuMYn&AZ{N%B;#<4(
zZ6n{r+byr?%~{|0PHw4F--1ki^u0A#{i?q`V*ZCHvw$*FZ~q$4-^)$#t-$%#&bR4&
zD`0=s7{Z+W{0sj*4z3mPU-}E_89e-#4kIwW)jE&=^0k#dY$)>vzW5K2hqHn5)ses7
z@a?3?)5Eve>%`;g`iIeG0vyzyD7s<jBkO9I!xw-r@3c93xjNy?!r}z`Vmt*LBMx3&
zL|)E9?|1FrMVWPMjcQz%#CKwUu~SF>s<<WHyt!AL_6+{hws@v|QpKe#rG39}RrS}V
ze}8+H&E3yh^=XaTHurrmYyCL%UV0JvO=*wKCk>Di&(74Vct`T@m3}g-{XDa8kWXtX
zv!=R+uxGq7!=?dw%V|S(YCl(<Zp?9bI`2;QgH^l(cI?fjzi-@Rm-9+@0uT0t{J+H4
zoKN|`)t76aU1yx=D?O~WoQP9r_V@~&`3TtSeD77xI!6~|@M(hjz&JycMK5!XZG)@K
z=tY<pV><x;BUyV}25F-pYc2xPH)$Ry7k26{P~En@+pT|^_OHUMaw94Cu|0pkKi9zv
z>4-b2L%g5ae_R}355L{XGhKBs{|U`Mb&AJg4pM#2xDC#bf0C2m^p&>a?svP*y=%<A
z{zz&gaC~n7Cbs~Su}+_}_$Jy3Ips&%aNXm??Y1@xpP-+vPklkd*kQ*FZ1X;K>?fUm
zT=3V&zGtzGOIF?BW9RNEa4rL@JylNrkn(?W?5`@uj=3KXUhIfd_B>}?L+rAi1DbdE
zXCJW1_CpliK^HXS66i`7|2><?!+Kf{jEwC;@dos5arFmj>Fbd%mqVYlZgdt-G7z*$
za^;XqRF?mNImIDEujg>?M`g0`<UHc)e(3Zm!a6hlfADEj>ECR4ckPM77azRNY~G=B
zH*FaGulmtF#mHfz=k6Tl*<=0PNYx8J6QvLDoeINOPTFl+d$RiC7cA|0+vBWn>uIN)
zQ|Bu$IORIC%H=Iu_d(hzXYQH9KGZ~;hNl$WZYc7;z1VB~qJsDk7A>BJTv`c_U2}0t
zawV}>bD-(77()U7Mdw4Lo;k%qi~m9D3c{QIqu|GX@u`KU!I4-QzZ3uK%)57s;DU{R
zJpAh}c<>(J2L18`GqlXM-)8XY<wN$^(mmP(78j=<oii325_5>|V7dGPO#kjP{nH(t
z^v~DG+?f9HKSba1Nh?Xcr}a;;b=Ji1+!$fAm{05=mUt}3p7|O!+qAK*(l3X`z3kBF
zbdg}*xWQVax>eS}g^>80+pF2T+wyzpkH3E1khdGx`4*`^_3MUS*0|2I$eG80Jx{O1
zG*;$mIeN?8)Pua1+AY|?yPgoNsvhAyy-m~EH&QMh5bMFme!0uwR^_tPN~hinZJgV^
z&W2$snuQ-1E?W17gCDOr>n|l-9#n7M;LG`e;VY2|)R%~ryMEIxmhee9KYkPQN?Gk0
zih=L%=2?85-aCEq(ih~c-A*4pb#8v))v5UWABxAPHIfgG6d9YF#~LoWu-KQncyY~%
z^d_E#18Qe+A?uvH$SongZzvkJW$_S$*Zyvvd0*+g|L)>pr@T)%@59bIaPnhARXy^{
zH8LJ`*W?(SqtC8<ZQF}F&HifRpqVelSFl3hs(fpI%zxL<7T(&NHO$vH_*T)J;Vx{X
zn`dqWAD#V$|2O-!fhX`O$(lFT)NT{UK(J>n;H`4Z-5|hyi&LL`2dV3~Pdat2Ro(8l
z#&ze(e^7jk+RJnDB*3#D2*)&kqOs7|AJWDm<f$v1vXYg-v)`K7WZYq-_I0Mi*zH*x
z?)R(AK4;6y@|k^l@fVCA!xQi&^At~(xH7Bnuzmj5Q%Aooqg$Qj*u73|>m_IXqX)6~
z8>fwzUUvGu0C>^{^0@J#CY}=OLwPf@_zN-m2w(Nvi<~kO^u0Fy@<HCqCuw*&{u~kO
zM^D~i`*kFEj~>SO1ocqH(66da>uGd2E<aVtf5YF*scH2g^Od?XUs<IGdzWSO)6)AO
z6aIqdqB%7Q+mFZA1qHfq#4ecUS>%?J4ry@>`-ski<&AE1-}7I5dnx*-2fIISEtQ;&
z?P+pZ_2@=$!#CfTu-vstol)g?%StZ?9HdK{z<<`ZV;ks&_j2@zldM$F9Adph`zpip
zeVzedBd4s+GdN|7Y`ei{FN@C3BN!RqSK#2AQ`2L`3hU&{zxK{c=@)i^JHKG%lI~=T
zeRdyR+h9hgLB9sZi2t*rpU8Y~@C|uzz7L(RWMAn$KE<y(ljoK}>d76@ciVk&Y$cyz
z%=F)}?Jx<ZADRBm_xT3;-)-B3Rx@|V9sXxnZ>~)!_{nk^e?YTFI;|pncobJ+OM-js
zE|;F4^Cmna%LdN{m)VPRiOb&Kir(ZL(M9%h_#W$O<mfKNfwk>)VY@%zBJ%^jh6nWL
z=*$z?kbHJuWS<@Ud@}W|cj}W~)(4)+r=fs2d`0q~84V8+tC``C)o|{+#>(Tn^pQoR
zvW;OoF|v>L=>q7@aN5nG9(04?DLyo$lBI|7-q+x(8{1Ia^|@GHZBuOQ^-cB|9N&4y
zQ0~~1v(FIHkKoMou*>i*Jx)xb|2AjB=^tyL(v0m?`C~fkO0wA0f$vsk{@6pZaLcuQ
z4gTG>8*a;+6w0-TeOTz&52ZuSpA<Tu`LTSHLT9<(Sd%us$9sjhE}m!VZaq#6obPGx
zXC8e+E}7#?2sZw3?|*z8^M%7a=T!8bJkj`0`VBqX^VUE-t^Rh+?ZBK5Qg_3!VaJs}
zO51`Lx*(%>M!&i}-0SJHzg?yCuA&1K2JVhsJ^SqbymvwdpH$Cawh{1gC1<Qp$H(Pv
z-@=EA9DD@d=rhj_K4Sam1s`85GWZzny$buKdoEtKOxNB_xq<ODl-P67`(n7!_+!+A
zN5oqK7G>5FeBmm1_UON(3$)jK))`Mn&xTLIp;p<D@G)$+_r?#VVy{r#+;GG*p)hIt
zM(CV2{xQ}F_QawrzxzVX6XhiP3eSyvKq`N*T+$NCi{G->T8KH%v+V$j$A+v}2wuGS
z;?(G3<2zRB_-(9mZP&2`_cv^Vcd~uAZ|g|fapI?NXKVQ%Us=^Wxxce{RR8v6ss5eK
zH}|hv_Q(ER%bx2`EPJFsx@>8G)3TfUmn@syzkAuJ{yoW5|32u(0pL|xo4!aqS`+`*
z^8akn9Vecxt2-%FELZ!E`SaJvcc3<X;XSs^`a<^F+;(^Y#UHCQ-%_y+&huK6Cly=0
zB8r~)gymnc1sMvwGO<<WQ>V@mSWhbdfF6cBP0s~hLwV<=&Y{}7JJ|ElHNEBV1mZ1u
zKKD?P_lc$b2aqvxkTG_WYL8JIlwNpA$<67q9`K+7drgIPo56zv){@l~*8Tj94&Ss5
zu0*WQebjNl3aanzQQ}>mv?>z#Y;b=|3vC@V|Iq{Uyo~3Uo#zssTY28*Jdfk~UY>P#
zl6+-+Jm1HdhB(h&p1;d?<HwJ_>V<K{Z{R)&*?QhgJSu+cyt1l|#=pqujKHtIfNQy;
zC#L_L?I;Uv*eO`RZ%6sxL%OsqG&Dh)P#$=>2W!(kZza(gu$D!CiOU7<6}h;Fjorn)
zB6B7kcv|_yU@3C(wgX+A$~yI}pw1uA2hnKhw*Fc9=yM-wosA1UXWRM?6XWDP`@F)r
zx7*+Tkc5_aSIkE5j;{l8RlO_VJ(&}9c6+B~l{>6*suO%nfM+rMlkTegk!kA)?<d6H
z<}8GXWo+XdGUtr4N^6SxrMoG@J@^CSA6&VG_$YtAyD5Pma&6lG7G?Wlx73WouALLz
zab2K(hj%je?ZcrRKl|BZX=`cyZ@rV_Kj;_TJ)km6$J`H|`=2!bbDK>J>e!Au^lmkE
zb;f>qN7KwVPfP|!<yVLe=#>|3KG>?1O^`T~-q@t$0b;!5tj5n;zBQ!hVyE1xvbE{w
z2H-{f@e8mOdsdU$@cMXlD|=?^R_k2FB5HlzI<NJlb$;7L_)C+AK3wp_tybuV`1JiS
zW)=SMCUjY5Ev23;$2Zo*8e`3}W~vPQ5+{Q6*`ItJ8*Q)XTY72|`T<>AAbYAE6MTGu
z?tq1d@JF#-K!++RlOKK2{127orBlg5@!pS3);@usnWeKoyz@4Et?P5<{h?Z8L*$#U
zp~lH~4ffHg($jZ+G^e=ETKqM9d|9K!OEu52;%nS8ZVcOfz|`;3z2~$2d7)D_y?dz(
z{~_<pbYhgw)kg?Bqm+5b(_NZ2EY3Q&jeAY>U*Dk1e&})`b&nt)_&)qY-HWnlA%514
z#Lt;~v1A*aA<uKZzpU>IxSJ^I#8d%Z_#2N??1KTioK2IXKOEDPIh*p5wQRd(Eu){!
zV?3pbzZCwd^y-)F|N7CysPfO{hXlvu)o1m)YY{ppy9{TAay%1%dUkKJ3SF^nkN5H1
zqx)(U6AD=+U0!LQ!x6sI@BZX4_{y)b&c9%l#Jtx?p7uvutO=nOdmdwj=6`5$jmI<o
zK9BHxOX6S9(S8k@*TUTXlT}c^&YrXO&CK65%;|id=W|Ane)7(0m^Sd;OWD#zj~Q7!
zIIkt)YizOQlJ-@`H*q%ayp1iDW}nx)cxRn+|BZ=b7>KW#B|n4wSnS3o-8CNjW(0qa
zszCfc&H-TyCzWg(h~K}@&UZKYzHxn1d5}3GE>-v)#yiDR%ALx@<w|?CrwDJtJ)A3r
zHb$(x{YnSkn>o+Bw%KFs7xI1a#KPR~c6qJYUkv^DW(5AV%J1}Hg42h5^?^PWUf#)g
z+55+n(l<8-SAHz~ZXh0vgfA|`2Y=`<2ikP{F{8W;8M~6TqW(_#bzqX!Yhg$C@zcE*
zCN5~lNcP8(R=)bndu%fv<sl}ir&Qyz>$;%KjAt8m_a)r%H3mNV&(NxS9y59u@P~Eo
z8`(@5wWoWm)TiVnR;l`+w#)X*$DaT8{nI|(TLPW81lw47ZIfUxnbW|&t;fJ#xEB9B
zehBk9quL1FO<11LI_u(i6Ewy%wt;mfdxhVPhfdk$@rO7cp?Q3$S9L|>4~JCO62V!0
zE2Ex{aoSHjf`hN)E_j5$2L|7=0=y5#huCeY9ooy8cxSqI;yC1?gw5Mcw7`2$@qTw5
zMDJzovG!xz?`YCp;rMx9#k!FF`^@eAfcBnp+KcV;$7jFnSByrLS3SB<&22ZnQGCzw
zgYjv<v)9%-*3&wBZ3!;?55;T#pl^$GrqG4c#Ak?8>?yvo%<}kF{J<)ry^<e}K!3n}
z^zA>eDpriJ!W|>9>#iPS?n7T%c)y7|7r*Q`O=Z7jZ@r6t&7xmhcXD^sHe%8qziFxe
z*MZo}jPob|+VrXYxyJNodUk&zo}zW&mT$!-_TUcg4L=v20JybxSb_FUmcL^LK5f8K
zceAT6<(t6iO&a^Lx60rrgom-Qt#y+sckP-}v+Jc;G5)2+GxiEk35WB28&5}`i(ZCU
z$ewwe^-i1p;_4CBBx3*0DNa4_Jo|*pvA6CP-Ojhm4S6!*{CB_M7kEzN4r@d^@2P)?
zi)-N2KG90iNa$tSp_4`rlf3$zfJ;*wivRK)x;H=j>$zDr;UcwX)>4<(OZ$HAXv*s*
zAN$?~Zu~M^2Cxd?bNUn93tyY|>5L%b(*EIr_j1Q(8Cu?PwN+&5e46tH+pP2KF?lz2
zC9U%k|DR=1&x!h$x1Xb)hQ#xpc>{e|M~rWtBi02&5^2xu<i(y@?zhAno_f|lH2%E(
zc7NfEGj%s~@!x%~GQcWFybbqyZPGJmbv7j)^~^Iok?1M!@QcW6Cr%^l!`BYanFZ58
z;(6O1syg9`M`wLQPna2R=KlyQ(QV^}=?DEmCfEur&lCLEX9~1OW#?(!A^n^8Tz8C&
zZ<NMFxqD78mz~Ehm%CqlOT=@T&hPexyU?jQ=a1nP?D+F*#xy}QbkASbImZ{4)TS1n
zt@^}chPP@j{`|Fi=DhRwsgpC4mz{e4t$W}+usQ!`^Byl0Ha{l5_2><T-@^xQ=GMe0
zL!+rz^`VOCFl}tZzh3-^d6$y}mPX&HZw_n%;V$n+;DbL^&VJ@YKAKa31#^>g7jtWD
z)21%oFWQlQW25~|XFTCWE?o-@GUxS@%!4f-nwU0<)mpzLG0N`u_9e)lW<SQ~I^@RJ
z6Rnr7L4N#ZUGfc_E9K0;S(6F)P|o%S3wE%N#L)L#giNyoTK~ou109zcnZzOuk-xBG
zDEM?Q`7fdlc+-xr;^Xm;l(`AMBu4D~%Zx1SAzvx^!hEmf`&8aXqHmPeQE%m>5Ok$@
z*GthIqZUPXRPSwno;yQ;S37+oo=%%RUmv~hz~109_LFPfb*Z?HW-biON937jV3wH&
z>lpJu9Nc4;_AKa#{u2}Tm@lyvnePqD%UM@s2Crl|pWv+fDI=c33BWpYjyh?};*y=C
zk6o@fsT10Pe>*s1!~2)ap?5L&jRnDdgNNcpYtt1T6Q44{`Oimf*wc4(gU+5Sew8sq
ztk+)xAEs*mLXPt#o;#MW_w4bqJ9$-?@Fd(zjA6xA9xeL#+6#u?C7-!7C;er`^ev5e
z#^?-qzt#!;%ukN-R5&qjM<;j=Q)gC;|LlB~pE2Lm&zLXr8S_p5jQQ%$lrPq5-<`p@
z54&d&GI4;nH70L9=1-0_ymNkREPlqt<{TNkO8Uspfve=3_FLg~*c1LfVaI+Ppfh}T
z)|nGOZCieF@-ct&Ayc3H9=!2p@ujSVDdgopyiXAQlchPQjb8Arpf;UzE%RgZcAn7(
z=xgSzanf!>@<jdIdnYq*1*hJ>+p``y&YZhr{RSoDnE2A>4%pP|qV4$Nn6u0g&uGp6
z-%|H<>OR+5W2e`B!)bLF{B3nVf0*_9%;0sOeD&12Lp_7m&6+y}Cd9(B*WB|fsoT(H
z)^$L8lwiPqEg6aX{a9P@chVtn_O%MwL-Rwk|Hd|;Lnn>TW_BCsUIuC7#4~mq7x({d
zZ9KP&HaY~O>^9K54Aw@m)5gkA$NA@O6OIB0KlDF8exI@H`?K)=J>k9XTFAor!OzYR
z-^JVoRcTo^+@Iqf4)A}2>EF)gHQHOPjWZub&P7(5xhgS==T&zc8fId~iH5U3j|g{5
zZ<0E6f0dO#^BY#_%x?^ZZ-Ev*Wa#2N?cwAxdnWl@|3dj9LZ4ID%HG>`kabe5*fQ{`
ztwy#iV0_;A_soC4i7(CBOP#ew_v6!fBU`>n?<ptlTKv%-$&U-zzkE8U&iz``o41l@
zjajE*Cr)<Q?BSkKI!o6J{VXk`Z=%`ZJj?TZ6*AQp?s`V1q#vCZl}Im)-~5=GK>0%2
zyb+#y{dG-?&q8ioW;I23*2yNei1$A3`16%h7xR!Ge>_wdiy;TkMh<Q@^73?NOvL}6
zC3&i%`9|)JyBpnB@xDOJ_p+N$sc@x0`Jgp{j;|qK{gb)x!r)BVa?3NpGIrT{$R?hj
z(`V*6<j}T#lF3~9CfSU*e1@0MUIpzb=^%f{94p_R?=2<L;XuPej5iYQ@mOKz!Ndn(
zEiyM|f2Kd;F-xS=GHZ|c%;E)=mpsopG(hzf)}~IppP0iwmxQM<yiLJ&t(oLCp3-R7
z<xQHiGW<QB2WQHAnVT)vD&|1&ZolXj*`R<o_dk_CP90l;_nTvz7Ts^)eOt_nOC$GA
zC2wW#t6`q+!^ar^Oj5xN`My-oQ^o60HV|DmD-dm&5s0^#d`gwCFn&*|U@LwG+6ugW
z{l!4^H>Gv$FWT!8U7zQw<p#!!42<b3Fb+B}-mSgdh4J%qY~E7w&VjG)1aj^g`q@qg
zwndDs4!O}P<6HD~?y)ECVKiMX_#Sd-gWy{#9iB`3?K_Qu6=le`EepmawW*KW1Y_U}
zPw@Fh;QI;Q(eN{hE!b`1GM3o${j)G~=UvT7%Qy3}dv*T*qnVx7)!{Dm0{1ev=%v^%
zMn|lQJMFpqyf2#;(Ffo2+wA=;vj;!h%f9s{ar%A0emZ&NbMyqy(sc)U#-Gbmz_WBN
z%Nb{acSFdtig!cUTU&Y7UBK<6@-OWp&vO2AE}Hv+mFmoMv+*rk&hv1}M0u7kV+*Nb
z-aYNqE8p36^7zT4b~s0E>erc+cJj1<qsX^bJLv?{R?@J_l2(v5kyer}BArUQfHXqd
zNIIQ#7HJ)69cevjgme~ZCFyL^Fli%cDJgQG?ix6@fHXvU8!7gIV~a@rq)SMBq)k5u
zrr?+1PdJ<Ft)ENG&*lr8Tz#eR4xZmDAMI#MO_TJ2^)36CE&!$uPHuGZ@i_+{>!I1;
zW4*xxVjoGrGPghN(D}{b=0}bNmZgqGm;Lcr0vWj8)vq%D_L+)DJQXvK{VI+g#G&J!
z5~G{7^{yjq9{8g>-EzVq_*nLVkJ`FNv-UaXM10N3m$$J&udxo}gQm6TXO9@+?h#IX
zIg}gj)OW3TVduU3t_<D1>{6knfBtz>8Gb{=(a6E(z`57{SKanmBL|sp$v{)P=2*UE
zQOo*K(#ro4`;OvfTylqEV4S>a=9~9Up83{Osipt;a8vvXziEoz`uV1%t&cUCy8<@+
zEBB`LC*3;HJ$A<*4su^I>y{X}N!rx7)OK=`M?S1-&)hrVmeKtdnf)mB1na0y>pJ53
zyH%{y!`bxNT}#Z9!+-vCx%OY#S8G$ZeMnh9<rEjA*PUO=*z{a$TX=(Qjq=XDa6g?z
z+&Sq#3|+&A=Pyot)8OTgTC!#PsXrK9*#A^??yx1)&spEUE1~`je=vGLR<1C5KyW9z
z|4U8fT~@VCL!RjeZyU{CfNes3AcorQ_aDTU;8AM|ZR88r$P*!^>O?o6<QVeiJxo6G
zPeOLfiyt@oeD1tT?~b>bd-MX>)jZA_qAqZ8Gkpx37<8V`of`Ab+1J#*i6aYM0*3*4
z+39N?G232l?FOeLkHK5x!?zS%*@PS^9iNF0r1zqKygw%Sk~WJZ3r0Mj^AT6XO0p(n
z)i=t&D_`?h*66p0^Bn4!YZYq!UHMgfFfaA&Ax=;zb{R6r7^^V$wd<SAnL(dtPxRN<
zG)4cjw&}`m%D2L^GP^7>_0*3in1jBgmvvsqJzw)Izgt#ub-(mubm8}S_QdbIrYZif
z)bFKF*lXPSV#THYn6H>v{j=aD*zcMvE1`d3QnTjB4_{$o`4q-3FAc<o7YDTOb<kc1
z?YTS#bB0d{{FQj^0lp)h{yBYsKAHV*u<s5HT9u94G3?yWabKR~tLPr~yvxkpUbkWI
zE_w!iLUa@O+r^os|0y>-zwRa}|Km?KM*n$CQ|!EJnkHUpdB1+8e`0yBe84`u3Y-p(
z<6dpfvxnyt8=uf1bSq-;sz+ykKHM~L--nHB=vY6zG->O!S*M;LXQ||KSVSEYg`=_J
zNdMAnRx~w~dnZrqvaB!t9Glxio|V8Mfp2ycUd0Q|nqH3XLOL;>-IHBH?U0|?H6KpW
zJGWhMk-i?@q&Ay9*b2+6tH(Uc-nvTnLFtT*b+vfJ_y%jY+S47{*o*_pkImb}RFl5e
z<pFH|>ZGA-^dp>rzPfGMdV#}RbvFn!r~sbD%Xi;t-`8xY!ZxA$8GFp}O@OEM#EP$P
z+5}8hF8*k%<(8}JOl|DihAoM?VJufUI>~(aJySP+6vy1W<T;!7*mpm8E6KdFZWh=!
z$n&Jn8l0ve2S=YBpj}?^n)X`Vw6^&gPkr-T&+O)A4|ME<DkFdY_})d1-Yh8IJ^Es4
zUHy)s@Gc)LHs6s2>BmU>+fMgegPxso7t%-Y<AW+k9x?QUGFC;8=Ig|?#B1<`nf#&p
z9W7UrzpQ(-iT9TSoP3f$fOCa8x0)%Nm-xdeWee@H|8+9EEOTGt^rbM|<G0jSZTi2A
zUCViY8GS@A{a-I&lTtg=MK{$)<;MonO-zA8C$BkoQomydef+Q6yYxQO_fp;^owiL3
z9Og1x_vl5h?3G@bd^d=;Mm*;RPuX9pZ2nGrigXs4`T4hg?w9ap&rx(oQ5}7}(4LR?
z4-O9B<8R@k6iR;glzv`v<u{?3HJ&{U|JXub-hat~Z}?RB9^Zg$6-wTHO4-X!E8F3~
zZ1$-zJAQj|Hf5s&aJxuw%9IuS-oIiXPX>lx%;YhByAn9DPo8rGI33RB{YCGx_i(|h
zV~l4uzj}VNbf>kA+fVIE{Ml1#?ra=pac84P_qHJOc&x-B&U-8V0lFU(2cgrN#j|XC
z2f&+^*b($BoG3|bfS>#odM4x-_Sphb(f6klFY@gjX#Bll$u(;W-evzvb63wh=rJiz
zJ?+#}|5xg{?X-GkpH`2}?_$^ZEA<qfR!`uxdS;j5V+ai@x(feQ&cWj(Oy6wY4c?%?
zgXh^<&q<zVWj!xuKH!T+EMY!&gMY&Zcq51R6;A;EPH^$JzVqJ6_B=eveYNi%()t+R
zHdN=b@YNnVEdKDHoA}Rp5RdG^+kw|@*m&p3X5+3c*PcUrIijDkiD64S+qM5_ZL&_!
zmW{?<-$(G7>8%t$A^y?ObO*<vIUUV$*@^7)bI!V!zXHD9@5)v)d~vZg#NjUm_fqvm
zeQ^6D+mh%5@M=?E-9C|5djG-lDhAw5y3-E$m1?a-JZH-n&Rc)qy_1OtH?DsDP{m7A
z?4bOH8f1<8u5YSen;a2sfq!YazG+@d!fJ=-m3@IcoQ)XvTy(=&<A>LFDGHxF+Ye5>
z#p=uK*hT-#`nS0CN4v&l;($>9#vgyOe(BHaA5RkVCNT;=Z(_6sztd@#iyzC6t{c-d
zkJ!8I8#4Wu|Gvf&%R0ZMzGKHQahLv=eIJ0$su!T+)a%M|{|k6$;L$U_WUxB_Rv2jf
z(H{G*0*8+~+>T7`%Khz+5w}Qt2z*>d=HI{_pT}CDaTTPkq?M%0NvD#wlSW8al1?XG
zCHa>Bb?}fz##Nid;u_-Oi;2%YR_Ei>eTKgBo%>Wcvzl&J-qqJwxh5TB&zJdzFQ)U(
zO})_6Vdh<~?SHLu_4f@meop+i>RWc0|ErLj-Le|<|EkSOr_F2R2c1rsdOu^k%6l3d
zo`w%JaL_mUX>jKBeB@Eg>-Y4&buQ~J*IswJlU(C*-Ve#VA7<_r(*89-E1fxoPCByZ
zdVlf~3|-WXoFjcyfVo?nScra<en1!Dw|(X;WaV>4XShCMwOnM=Vqc$&J1*XQ5@-H}
zn2g6dg$vT%wo@;1P>G8Z^lkk>-@4&{z&H9fyS&TFwQ2XiEKzyKHq!|0s|Y7pS96dj
zQ`em|Is^6v{!fE1^y~eKZtxD>D9-`XLefG~{Ee__BAbvFkm~G7h_tje-FySKof5~k
z)5X|kMLa&m!s^TFo3Tx|d$8jS__6(XUsm5rT^dbaik*EcU-h~$)w*4A$jHckr>))L
z#`L?i7mRp@89l*3d%(+qg)>h-UVxnXK!hXEq~GV)#_t|}Nq#YYck#QE-(r5Z^IOPo
zKEFBqZsK<XKiyk5gWt9Ms`*Xhr}`%GE8}++zbpA&!LOL#rTj+oyNDlWeN*@@rq1Pe
zHorW6L-={nubkv}jNeE6KIHd4zeD`q;&+hW>-?~f4^{h5+PE`RvhRSclJ7S`cadf7
zyFwG5Gut)EdnI{;pOUwayOA?-lam9mbZoopboc4z%asScEHZOG`E~Aeqwet(Zy_9u
zSa(ihZTQ4b#M_L$rJeciDyy{4lCLT{p%cul{~p;Z9<39v){0N+5#C9U_=Iq?HuZKf
z&(bGube=~F4;ttG5`E(BhgSTFb#aNoi!geRi?Y7G<nXrzwW&9?{(w1mx-UKUbZzP_
z+1ZRNPa3*o13I2%>2}IWpYFe73un)lrPq^xxs6*x!l%Oe;}3yf!Kc74YhFHnfxO%o
zGx)p+U!#|w)kOV=BOY%D>mwj|!4rL-az;jR%i8nq-F#Y^o3hH>K$#+~qtnW?sD8ob
z%<JQ^NNuW0_HuvnD+Z?cum-~o#i6UCbBT*JxAsB$CpdfxEqn~wH@#Z-9aJ>-GDly9
z&pKvoylOk*$?gC2@;};6`5Q9jr>Xqe>XTD`Gv)i3%M9<@js3!=dB(>eBX|8M0X`O#
z6{48E`PgRg@odF&iryL-N1fZi!_7LIC!CtOmG=w#^nQaq-?`Hbyb@V!;1l%ZM?v~3
zeLp;PuIyrmX(Q*%@a^s+|1>*)&S8yXAaC{<kn79;oKD-cyL$`xm~ZpQ>AdA}&MBKc
z#l1@^NBRP_n^~)$=x6sL+I_%j*WlS->1QSR=R5f$rvAD3#(<}aL$7;--91Wp=k!zh
z(aq6?L15VbeWz@`Da)F2%YL$4*B;vHw)1;r{}+ya3Jkl}lHZYIJfeTxb^O=*)}{T=
z?b~RlE$Kwn)~EGN^u+C3<!9&{GT1=h{K`MrxV5&+xle6o+CR~T-J=JPYv!9ivTo2Z
z1H-=v55X&I=U?yVqwTco%&)cTulMuOM)EuJYb{XzGxHvgPDm_G7iQa8&NMD(Ecg+n
z3-JxRk`z2TD%-rqVNq^ye8)#C!w)>N3pn(M$B9^fH<JHb@cl7+esXeZ)r!aPm4XMt
zFYhG0hgW_<DjR>ddN1z|(N+-pHx*lQFrJ=XD*klEN&FQjsZ3h9zgu<-cV3=5Xw#0w
zLHH`ky;II=iXK4cx_xXQjE`RCuE<BGV)N-qewmn}#8Gdi{<0wVx9#|CDX|?VM0Z>m
z812K>aIorI$x-y#ha$9(JD#enFG#n5-DU!Nq-<C_@wM6>n|3|>+8Z;_V{9%D($2%b
zEsd_~DU08IVE{dAOQID$b+t8*ebf{G>hGH1CDEhjav$|20oh5Q0VdW1_3fgbJnC7b
zzC|DUMF3q#AiBAzE`Cp+bQ(VCStYa9rmF7|Y~}BeXd}<6P+h#m$s@mz&P(tQ>8sQE
z3Fmw=ysW3x9XI_!|84D#|4XH8$+w}4xH!qYMkk(S`p20|-QVLGU6byOd1ibIn!5#C
zvz55d9!vRX>kAsg%rfA`ION}}v8ZqH!rvGjacwGcFgY6j7U$-875BU&t~LYD=&@a;
zf`PHMUizCR#jSVi&4x?7+1Ns4Pv1@1dcj2fj*q3^&+ZH_J=Qk^_|A^5zW%{vkUFSS
zeb#&l&hfjy62Ko}UM%kuu-4q|(cIOhUSDnYB6R-I=&u9uslT)Dl}<$zOWso!$F^*p
zFgh<6&$8*B*1x@09!5_UxT-AV#YX3~<dcKVWNPA8aJU9o=Ux9`Y|N<AXzPr<p%yRu
z;7NP$uueQ(zmU6v7IIh6LhcG$NW4gVRvbBEKo)qe+p!_ApMcx5qyLWWT(pNh4_&&)
z=>s;_^EXBB{5-Hee}mQzK7U2aUbM8gt%=7z{~+%>6mysNde>Ht&%J!Nc@D%^?<}2J
zwjaAtdNI1nslYNM9TNQy%4cwN4fe_5zX-(2fAe6x_{F`^xi#<+J*Cmr`|9djiY7q!
z7HdC)?@OruOZG~SlfJb1PV7Z$N9{sC@JlI;cm9DhUFkgCt)xD}2cM+9#L~C%p`P^l
z2cru|?v0J<tBd~MSFkJonfCAzpY-Rw@iD>Dc-z6f(N4a#?B5Gtb<(vDFQAX$iLv=X
zJJ9!iEFVY1Uumzy4&(9`({)FBbQODZuM4|}3X_x5yUlu9DA=TK7i{oTo)b^+EH$wF
z4l<NzQSr_?zF)fpUl`8m^%|M0k-HmH|9ObL*pf{`cAVPOwA;r&D0uk#sAuHFO3Rvf
z)GGRi>;7kW^bXAtwuImRq^TRcE<dWf(0(y_#@MOj8mc+F)z*%z>D$b=q0)bmDo(@N
zhAV%8jV7I*aplx;U%%4C^YJZx;IXEO4?tU1wi+M3@eiO+#J>YMwdtY>=rF!q6JTv%
zlRmjRzAA{$G`$<x9~kuvHcI$7V~a^Y9_YrmkGb#;^y3@SkDr{M_z5s&TuXQS#L)KG
z-F<=BHx343b9a{FM-g*)m@w`68p?k$S?76XlusQu^KQF;@il*LD(9?symO!3zcuvl
zITOFJ{h|tVQgQKcCr+wwm7Qtv5WN>~)%(72@%X#guTC87E{9&^_S6mZO)y$z`y|Q^
zQ=97D27PNH-_XR}_T5ecd1q@JC)Sh!|L8ZdbCW;5br$CjW&|kL7HxVrfE+2`h6A;!
z{cTQt96=w_Gkz8R75Hy(PRBPh=%2XsC^Y#y(hCf;;wL}1D8ALRvTTxdR=ll;v3Uxb
zA4zv6D{NmX=3r_DHx9itfE(;_wW(`nh%R%66r?}aTlL70I`+f^vMWj^=KoIZjm^)c
z4&cj$Ul(KLzAe>{as|8i8!wlIu)&gFc6jZHD&w}NvbCv0Hw?6i-M%*UmDgooSV4K(
ze3N)A2iQ+7#xsj{cCwc4Qd?2x)%bgIhdgVd)2#!2Hgv21`}TZW0qW?hP3^nErk_JY
zs)stRQu+26coj?^QF-9F6Bv17ldAWkpEa<GO|o`Zb>>twFHLtMHy()xYjiiR@j(M_
z5qBK5slEr?_GO1>3?n56u3#MCkoJc6@JmKVGYIS+0d^Gwu&Y;F;0AE{;{yY*qfO(-
z@Cn%UT{O@xbPHLkTXvllH?p3eOE2gAui!Sj`4PeGc$M18f?N2La64+p9l<|~J|E_6
zK%>f2c8Gyjl(}At(*^y}dOsBg?{p0G#lWEIg41AtjGYV5o?e-SKYa#&9^pPM`sUyd
zFi7>=FnGOV5E%5iaJTX2osk3W8W>crIUNS^RsXrS`Q~&d_4aWl)|%NV*{fHw*A*H|
z7EI8QruyCbY+U+Fm4i!yNk3-<rmGISeE<6fE_Y*}4*%!g_=ZD!RX%=E4|;;!rr1r#
zz@_vNwY~K9LwjR2pEGy&nRxKRCF=Pk9N(^X+m|0pZEA|Kx2^c@04|}w@a&|WPp-o=
z;?jZYLEw1WI(+Npfp!fXr!<@nM{uDL7=lYjKROL=gW%Ffc^SAJhZpvUCLsqLeb$9p
z^UdJWpfGrA+CX0n3?{#5Xu<#tj(gdcw*PIo^oMDKz~D4odNV`+3=AgEI2{J@RX;fc
zF8$@;X)r;*emXAw&wvkeV(D>op}*UPE|GINp4JRb{blt4e3quYs?))dN*C|ZEnPYQ
zAG6jbZE)9G)pMygflF)F8Z$8<pvkSLuCcV&USqFaF$i3iyKUKP?9a~(v}fQlsVoDR
z)DqDdv&NRD`kB+^%RXj}wXw#&qdoJZ7tPo*^tvuq@t=ER#fSFB+j{HFTKtaI;z!-|
z+v~QYwI?{>6SPfuR7IRF17EXlKf2Sv2z<z_yR=v9PP~!!!05uBaX*8XN_e>EXf$VC
ze7QfSjSAo`T_3#l@%-A<D^>PBy1$tB(&<Jb)`u%UUEXY8*_=vmga<LYcJ@2NlOf+&
z<MCPLIe^a_vViZT;3_|O^6$>dkKTLVvsvFdv%cYzyKhbMX4bY-wqvZlXKFqTtxQ21
zv)U&A?a7;=si)@e%j9RCPt8Ax{H>?uU+(4y2L6b3Sbo5(Tv;MENE{3!w}N}(PYs{H
z*S(+Y|Fy%1whCu~MMYUJ`+pB-vL89_U$&I9`Hhw}F39uE$AilzA1_!o>Uijif3~bE
zK4)2TKIpRM{5Aot$f?7((n@q%En)Pc_@LRg4C0OR&Gv1UKU)_(-y4R{*>7mgnjC-Y
z^VSIT!nEyquk2FvidEnd@*=Uq{vx@L^N72{594!RRsAjGL!V?q_@vc#dCyw#Z+Y18
z$-Uczi?p#^@_ub<;xzF>)SJ*c0;WFkGvMbT;(CoJt3;lUSuL>}s-NQd9O)As7?hIc
z=zGUaRx5jE{zUB3;Gp8z4O@7XB|CN<?{rU1o%kl5lcU}Z4*i6WvsQNBWO<o04{f$K
zRKtT;!-E%lFVlVI_~dPjw>2r<61(dEG%bC`n(*~!_AkX>skG_`R!P-;=x4bLHtzi;
z<0y0Yv#uZh)Yv*bEB;-&3hN1ctXpkAef*agAALAmebHD9KbQXR3!Far<)c@ddi6uf
zEn;jQjSc^%9Qi~s??wC{CVwsd7x3Ss*ba;n+`>OAw;7l-#?)`OC1Psl!*y|FY_%gl
zE8cH#>hDONDw_wH8|$=pVPt|+<&wK=;FV3Be2pte-_=Hy{6nicPi}{I??Yx@ki0+r
zbgVfUidgS!&1d{_tB{}2?;0G(rxIDV-uPEap8cJR=gYflQ{j=quNA-w+0$RY(7M{i
zG2s{Ur5Ml9nJ<4>-VLsCMlAdoGKPWOm*>+rpYDqzzJzG}c;@eja7J)K*W~L!<^tb+
z%bq*7Z`sZ1-4lDDvy=rd$49K|??P6UpQB(JeCRcJ*>6yny`QSC!_<*aEKSAwlw2k}
znr-j^-3z{(T06*FCq~A@ziCpuQsl(7<D1j?czV{VtnicAk@d-|pka^NXXbh5>)@F_
z28|wtbqH^JuIgnUD`0K7Yd>tm{eu@LqB~;VLQ7jTx34dx|CY|r+w1D;_Z{62vY<6j
zc$QiBAFQ+SExnm<5vRVp@ENa=uLd$tz`&!^!q5Kd3&>+=gX-5ga(FPachFapkNvg^
z8>Mi<@6>h0($_~mC0tj$9r9PZdMI$D)SVYIR;?d9&!x@hNp3*D!+LVzXy!D1a;xyf
zp5Iqq)t+qH&i$oRHs=s+S1PWLU02S2?W4?1K=T&A>34=^5O=b`oqx?k$CvDNs(uUq
zNzotR`x&?DBG$Wo;BK#Q&863Z8EaDhP6m%VpmX4`<9FQFi%xEz_7eJ*@6<Ov`o@<W
z|KJnHR37~4!`>;{B%eg-D?H4-bbujXvx{#zddGLaz6-}VWA`-s2kYrw*?!cgY}=3N
zi~6Dd*t(#$>Fh<jrB`$I&L*BWYX1y((`FBJh5e8AM%#TtSH%0|r2{xt(0tJ716beh
z&w+o~=-6r}B<6!h_ppDg6D@uJCI^r9kY_jg9iR4Vd!P0+7+9KqAKFE~2h|zd{cT+Z
z>^}-8h$qIL!1zP8sn=Eu-=t47Hnh})i)1GjT!B@O?O*iXLZ|=j-BYaafXq)!-P^0v
z>G5qJTn`+VfQQpvJrVcAO7_vY2!lhEn>A1ly#o7yViQ4MIII4=wTJ(n6=`cX&$Bqc
zyG!lTuN>-`<Ft+Zi4PWY=D?^B9teKp#Yv`*soj_Ads(I3ci{(f8H`wcPXm)r(bs>k
zC9yQs_}TUK->cW0qp#!s8`e;>vBCP|%^|@Hp7=l3*gQy|>>ph&PH%N^Ir?pQj;-eG
z@4V;=cn|oF@?KXz_C4rXx&i)U>as)N?RfTzYIJ;GCRXTacabl>k~sHQ{wxqrM@q@(
zYnaGg<rBHzY9jYrP3##Ff5_2O{|uku^FQ9Z^r43W6YKFOzV3Kn>2)7JSoQ(?*vRH4
z_HFBjRnW#B^k%?L^rgHJ81}-iq3hS$Fy|0Pi%xrj;NJhw+PlX`Rh|3)dy)VHMhJGa
zQ9}ukYJdoV(spunxTqnacEp4r>JbXIptc9m{?4d-&z^)R3ECPiwOoRLN{b#}9Bl15
zUI62bBK3Hv$8xCGs2~w-MT;5(WPb0@+Iy0qsOS6p{{EQP-m~}GYd!0^t!F*!S<lLp
z@45L+bkeb-G3e8WGFhw#;M=UQ>{w%=WX@fA^e(sMv%PN1hD#LVp|bAkge7}Q?;T)r
zf}inQ6?GfiqRybnv9a06(Gv9c8fzZ7jJV5NJ^i!&E&ND33ggq?(zw{DxJ{F5L-EkR
zVIM{Epf4ZN2bzyqTivBQ3gr`X{(eg=Uinlg{ulgFXQQ|JJ&m5UrT{~ZY-jPl{cj!7
zs;+V0R-bv7|Hb;>!T;HBf-i&5L!%aFP)C&fD1rE1{NLb+zB4v=?HByiooV(FoV>1w
zdey}`Rx%2|%&xEw?D6?LA>D)S=+=iRJt*BHz2eDo!yaRoOIFc0_&B!nz4RMCqt5)Q
zuARoWPJhDE7oLpsr&aps$bkgkndj!)<9=R9PoG|#AWq5XlLNM7C&k0PeeymG#9n#+
zT=b{-zmWf1?H?Q6BHlIoCV8G?-#Q}ZOup3Mn=xDCh;*`K6uvqTI$1l)ML?hZ_0q*{
zRmuGyqGQm9M~8T{P)zkdPWNfvtG@lR{}qqXqrdB*k-z5c!M^wo;9_r7Cu8q3pNa0$
ziDthvV+r^S$fk&F!2XJN7Mk_su4n%2x0U0?()e*2T8~lOMY8KJ^aq`@zw~7N>D3pt
zJB4=Z)PJwe{pKp%>woX7?o;cHsy9W4o*21$d<mTq;amDh{HOH|gJb;c|9jn5A6wkj
zDcf0N)-v>v*>9vZC-k$SmF9yL*4y)dV_z7(rMXo%e@tZEL3XF7-wN1&kvV2aYQJxN
z{^EFN>EgRPC(uU3z4{e@AIyU7C07xbtZ{;v7$3hgmER8A!T1iKQzqv_t6zmYGxL7g
zqN#WdpBF-PS81-<8J6y+@5-Z=?XKS=Ti`+Zvz2`VW}m3pH(<ThOds01Vc&@U^7tc9
zeBkj&-E}?q=&A!BW^YfbUExIdXhy!E{r!?BPj23l?(eC)&clo3*Vy6kmtQ~rMDV?U
zI^a+8K%oD-&SXDp5IZ5$tZxxd>e=L8EDW%5R*;n^{*zp}>pFCm%vT5}S{JD5dP;Fr
zX9^bCauwE_TK8`|AwFqhw>;$8?C<j6N!Xn2nxI@i^76*GrYTk_@nhEf5~jUi;x>5x
zK#6!gAiUGI>~b4;ln*_R`B0{>Ymn>c^*ql|pCdc8#%GlR=d|+^Y50flI@A9?zgPK*
zDl6LYU7y7cdn-A=mH!&+(b2y;puMk*C;RzdUDeh4H`xQcf0cGaJ@x$XGrsSqwJ_;<
z-evcC_nPb+z6qAJp$})n>s{XsXgx{z)0(E}uQ7l=mZ_{~4^McFI*r}Le(yVIf2L$!
zYsJ9vs5iIP9?Z@w_+MkMfA6luj?UStKc^wR9sm4b-p%7(5!d-#S?}+>&ghM<=8siQ
z{r36a>}!K(XM6ng#(wB`VtkqS!`Ej%{Q@Pg$G1U)+0adAozDDf`W>4H{~8)fu0$v4
z4be}y0k(x&6H3{0^A~vQe#(ykOxd1(d1Gd8y%cUE$IH9qQ{2$AS3x?eC}DJf;44Uc
ztMkU3XIXb@9UtP{y$nCTf2R1VD1!cK;C!OnM`&&|#eTOWMx3o>zgH2mcTWrz9%S8r
zCwtTGFnbY@i?G?7kh2LprM&Y-XJq~uvtBwcJ4zq2u$^@t;Y#7Ow+`$LGi_#>xVqdE
zVMZQ+*NN2u?+|hy*zMCp?1#u0dz&}TIhBzy=vu~n#^eWp>)G+_g)@64Lgdp6Dz@Fe
z#)Cug^1!j}tKgvC&&NK~zI_-x<d8=vv+keh-zfHuFC90gnKe;j%QL>LPnwI^^Usb6
zpW-X+WBuHip}Ox&baloe+ss+PlA(Nib977fkDn^9o*NmXeG~R?#>c96221Tfjvr$`
zeHQsMGRk$PAp0oxeOcRDXJ2@mmEL=;-CjB(c9Qn<i7TjpN2Nm|I$x4L+Kv0!cb9)*
zdCkbk80?yW@{rl>lVUYN&Q~A6`H%f8W0N9Q=E6qwO?~nu)m^>0-;U}{hj)aRCXa=m
zwF0WgevWvAB_kx~(;A?gGje>a=A4?xRIhyvXO%9fJn{eB%2@S+n#a_4dw0bc;!|SP
z&+&gJZH}rKqwk^NBV!v0l6U}Erc4h3ccJ1Qz@rVm(tk0)3e=qA!EW#JVeaR{%(<At
zS<Q$G%frL0tV>2<tB=4|AJIBc<2&+w*q)o+(LEkf)|YSDKhW!DY{jnC$X=GpRamdI
znQww#j9Ci5zKx;s8uPrkSL+qcf!cb<@#wr<@rE<yQqjiq7cmYv->#C)rMb51u&HC6
zop*|Sl^HAN0Tc7Gs;+Z>>glCduJ{@lqz@YscXwS^)%CcEw^EzHp2v6ly89aF?rVW`
zwz0w3w^y=(xk#H;>cMi;VcFD1N29ANtiL{KFBoC=)gt=|w}1N<){!lLoC%?i`w%ns
ziTqQ{>vsW1BYE$P&7r;6z@sy&9#l>e!NmAr#sKPlRPBzN$DXmtftQ?Fd&16wwy;}S
zrM9LOk$-&XEMhd4R-EBJFm-SEiJrWDeCxPtn5zJv-Ox_l#+%Gn{(9!<26BuNQ-W^J
zEV&Puh!+B$JLE&D>Uzxa#}3(q&7Ph4*aGfX%0DB&B4sWE-}%(_5_pR`=Z@T)!kz3d
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
z1r$&~0R<FLKmi35P(T3%6i`3`1r$&~0R<FLKmi35P(T3%6i`3`1r$&~0R<FLKmi35
zP(T3%6i`3`1r$&~0R<FLKmi35P(T3%6i`3`1r$&~0R<FLKmi35P(T3%6i`3`1r$&~
z0R<FLKmi35P(T3%6i`3`1r$&~0R<FLKmi35P(T3%6i`3`1r$&~0R<FLKmi35P(T3%
z6i`3`1r$&~0R<FLKmi35P(T3%6i`3`1r$&~0R<FLKmi35P(T3%6i`3`1r$&~0R<FL
zKmi35P(T3%6i`3`1r$&~0R<FLKmi35P(T3%6i`3`1r$&~0R<FLKmi35P(T3%6i`3`
z1r$&~0R<FLKmi35P(T3%6i`3`1r$&~0R<FLKmi35P(T3%6i`3`1r$&~0R<FLKmi35
zP(T3%6i`3`1r$&~0R<FLKmi35P(T3%6i`3`1r$&~0R<FLKmi35P(T3%6i`3`1r$&~
z0R<FLKmi35P(T3%6i`3`1r$&~0R<FLKmi35P(T3%6i`3`1r$&~0R<FLKmi35P(T3%
z6i`3`1r$&~0R<FLKmi35P(T3%6i`3`1r$&~0R<FLKmi35P(T3%6i`3`1r$&~0R<FL
zKmi35P(T3%6i`3`1r$&~0R<FLKmi35P(T3%6i`3`1r$&~0R<FLKmi35P(T3%6i`3`
z1r$&~0R<FLKmi35P(T3%6i`3`1r$&~0R<FLKmi35P(T3%6i`3`1r$&~0R<FLKmi35
zP(T3%6i`3`1r$&~0R<FLKmi35P(T3%6i`3`1r$&~0R<FLKmi35P(T3%6i`3`1r$&~
z0R<FLKmi35P(T3%6i`3`1r$&~0R<FLKmi35P(T3%6i`3`1r$&~0R<FLKmi35P(T3%
z6i`3`1r$&~0R<FLKmi35P(T3%6i`3`1r$&~0R<FLKmi35P(T3%6i`3`1r$&~0R<FL
zKmi35P(T3%6i`3`1r$&~0R<FLKmi35P(T3%6i`3`1r$&~0R<FLKmi35P(T3%6i`3`
z1r$&~0R<FLKmi35P(T3%6i`3`1r$&~0R<FLKmi35P(T3%6i`3`1r$&~0R<FLKmi35
zP(T3%6i`3`1r$&~0R<FLKmi35P(T3%6i`3`1r$&~0R<FLKmi35P(T3%6i`3`1r$&~
z0R<FLKmi35P(T3%6i`3`1r$&~0R<FLKmi35P(T3%6i`3`1r$&~0R<FLKmi35P(T3%
z6i`3`1r$&~0R<FLKmi35P(T3%6i`3`1r$&~0R<FLKmi35P(T3%6i`3`1r$&~0R<FL
zKmi35P(T3%6i`3`1r$&~0R<FLKmi35P(T3%6i`3`1r$&~0R<FLKmi35P(T3%6i`3`
z1r$&~0R<FLKmi35P(T3%6i`3`1r$&~0R<FLKmi35P(T3%6i`3`1r$&~0R<FLKmi35
zP(T3%6i`3`1r$&~0R<FLKmi35P(T3%6i`3`1r$&~0R<FLKmi35P(T3%6i`3`1r$&~
z0R<FLKmi35P(T3%6i`3`1r$&~0R<FLKmi35P(T3%6i`3`1r$&~0R<FLKmi35P(T3%
z6i`3`1r$&~0R<FLKmi35P(T3%6i`3`1r$&~0R<FLKmi35P(T3%6i`3`1r$&~0R<FL
zKmi35P(T3%6i`3`1r$&~0R<FLKmi35P(T3%6i`3`1r$&~0R<FLKmi35P(T3%6i`3`
z1r$&~0R<FLKmi35P(T3%6i`3`1r$&~0R<FLKmi35P(T3%6i`3`1r$&~0R<FLKmi35
zP(T3%6i`3`1r$&~0R<FLKmi35P(T3%6i`3`1r$&~0R<FLKmi35P(T3%6i`3`1r$&~
z0R<FLKmi35P(T3%6i`3`1r$&~0R<FLKmi35P(T3%6i`3`1r$&~0R<FLKmi35P(T3%
z6i`3`1r$&~0R<FLKmi35P(T3%6i`3`1r$&~0R<FLKmi35P(T3%6i`3`1r$&~0R<FL
zKmi35P(T3%6i`3`1r$&~0R<FLKmi35P(T3%6i`3`1r$&~0R<FLKmi35P(T3%6i`3`
z1r$&~0R<FLKmi35P(T3%6i`3`1r$&~0R<FLKmi35P(T3%6i`3`1r$&~0R<FLKmi35
zP(T3%6i`3`1r$&~0R<FLKmi35P(T3%6i`3`1r$&~0R<FLKmi35P(T3%6i`3`1r$&~
z0R<FLKmi35P(T3%6i`3`1r$&~0R<FLKmi35P(T3%6i`3`1r$&~0R<FLKmi35P(T3%
z6i`3`1r$&~0R<FLKmi35P(T3%6i`3`1r$&~0R<FLKmi35P(T3%6i`3`1r$&~0R<FL
zKmi35P(T3%6i`3`1r$&~0R<FLKmi35P(T3%6i`3`1r$&~0R<FLKmi35P(T3%6i`3`
z1r$&~0R<FLKmi35P(T3%6i`3`1r$&~0R<FLKmi35P(T3%6i`3`1r$&~0R<FLKmi35
zP(T3%6i`3`1r$&~0R<FLKmi35P(T3%6i`3`1r$&~0R<FLKmi35P(T3%6i`3`1r$&~
z0R<FLKmi35P(T3%6i`3`1r$&~0R<FLKmi35P(T3%6i`3`1r$&~0R<FLKmi35P(T3%
z6i`3`1r$&~0R<FLKmi35P(T3%6i`3`1r$&~0R<FLKmi35P(T3%6i`3`1r$&~0R<FL
zKmi35P(T3%6i`3`1r$&~0R<FLKmi35P(T3%6i`3`1r$&~0R<FLKmi35P(T3%6i`3`
z1r$&~0R<FLKmi35P(T3%6i`3`1r$&~0R<FLKmi35P(T3%6i`3`1r$&~0R<FLKmi35
zP(T3%6i`3`1r$&~0R<FLKmi35P(T3%6i`3`1r$&~0R<FLKmi35P(T3%6i`3`1r$&~
z0R<FLKmi35P(T3%6i`3`1r$&~0R<FLKmi35P(T3%6i`3`1r$&~0R<FLKmi35P(T3%
z6i`3`1r$&~0R<FLKmi35P(T3%6i`3`1r$&~0R<FLKmi35P(T3%6i`3`1r$&~0R<FL
zKmi35P(T3%6i`3`1r$&~0R<FLKmi35P(T3%6i`3`1r$&~0R<FLKmi35P(T3%6i`3`
z1r$&~0R<FLKmi35P(T3%6i`3`1r$&~0R<FLKmi35P(T3%6i`3`1r$&~0R<FLKmi35
zP(T3%6i`3`1r$&~0R<FLKmi35P(T3%6i`3`1r$&~0R<FLKmi35P(T3%6i`3`1r$&~
z0R<FLKmi35P(T3%6i`3`1r$&~0R<FLKmi35P(T3%6i`3`1r$&~0R<FLKmi35P(T3%
z6i`3`1r$&~0R<FLKmi35P(T3%6i`3`1r$&~0R<FLKmi35P(T3%6i`3`1r$&~0R<FL
zKmi35P(T3%6i`3`1r$&~0R<FLKmi35P(T3%6i`3`1r$&~0R<FLKmi35P(T3%6i`3`
z1r$&~0R<FLKmi35P(T3%6i`3`1r$&~0R<FLKmi35P(T3%6i`3`1r$&~0R<FLKmi35
zP(T3%6i`3`1r$&~0R<FLKmi35P(T3%6i`3`1r$&~0R<FLKmi35P(T3%6i`3`1r$&~
z0R<FLKmi35P(T3%6i`3`1r$&~0R<FLKmi35P(T3%6i`3`1r$&~0R<FLKmi35P(T3%
z6i`3`1r$&~0R<FLKmi35P(T3%6i`3`1r$&~0R<FLKmi35P(T3%6i`3`1r$&~0R<FL
zKmi35P(T3%6i`3`1r$&~0R<FLKmi35P(T3%6i`3`1r$&~0R<FLKmi35P(T3%6i`3`
z1r$&~0R<FLKmi35P(T3%6i`3`1r$&~0R<FLKmi35P(T3%6i`3`1r$&~0R<FLKmi35
zP(T3%6i`3`1r$&~0R<FLKmi35P(T3%6i`3`1r$&~0R<FLKmi35P(T3%6i`3`1r$&~
z0R<FLKmi35P(T3%6i`3`1r$&~0R<FLKmi35P(T3%6i`3`1r$&~0R<FLKmi35P(T3%
z6i`3`1r$&~0R<FLKmi35P(T3%6i`3`1r$&~0R<FLKmi35P(T3%6i`3`1r$&~0R<FL
zKmi35P(T3%6i`3`1r$&~0R<FLKmi35P(T3%6i`3`1r$&~0R<FLKmi35P(T3%6i`3`
z1r$&~0R<FLKmi35P(T3%6i`3`1r$&~0R<FLKmi35P(T3%6i`3`1r$&~0R<FLKmi35
zP(T3%6i`3`1r$&~0R<FLKmi35P(T3%6i`3`1r$&~0R<FLKmi35P(T3%6i`3`1r$&~
z0R<FLKmi35P(T3%6i`3`1r$&~0R<FLKmi35P(T3%6i`3`1r$&~0R<FLKmi35P(T3%
z6i`3`1r$&~0R<FLKmi35P(T3%6i`3`1r$&~0R<FLKmi35P(T3%6i`3`1r$&~0R<FL
zKmi35P(T3%6i`3`1r$&~0R<FLKmi35P(T3%6i`3`1r$&~0R<FLKmi35P(T3%6i`3`
z1r$&~0R<FLKmi35P(T3%6i`3`1r$&~0R<FLKmi35P(T3%6i`3`1r$&~0R<FLKmi35
zP(T3%6i`3`1r$&~0R<FLKmi35P(T3%6i`3`1r$&~0R<FLKmi35P(T3%6i`3`1r$&~
z0R<FLKmi35P(T3%6i`3`1r$&~0R<FLKmi35P(T3%6i`3`1r$&~0R<FLKmi35P(T3%
z6i`3`1r$&~0R<FLKmi35P(T3%6i`3`1r$&~0R<FLKmi35P(T3%6i`3`1r$&~0R<FL
zKmi35P(T3%6i`3`1r$&~0R<FLKmi35P(T3%6i`3`1r$&~0R<FLKmi35P(T3%6i`3`
z1r$&~0R<FLKmi35P(T3%6i`3`1r$&~0R<FLKmi35P(T3%6i`3`1r$&~0R<FLKmi35
zP(T3%6i`3`1r$&~0R<FLKmi35P(T3%6i`3`1r$&~0R<FLKmi35P(T3%6i`3`1r$&~
z0R<FLKmi35P(T3%6i`3`1r$&~0R<FLKmi35P(T3%6i`3`1r$&~0R<FLKmi35P(XqI
zPYR4F^-OK09)lakr+3evc;@uxg(;0msb|~8KibiD2^skza_5eQQtD{?-~~Gx=BG4&
z5yO0<M{3)=XvdgOF#fMcvsY^SbToUXw%>^6+fv(>Xr7naelwcqr?$^TvrlUKt!Va5
zZBInAF10-s%?nc7)6wjg+O|gX?Wygzqj_O!`)o8XN^QSG6UBzonKNzg?6sq9(4-x0
zSCWy9JK6@2t1h71ukL8;(Q8LTYEM+PeSR9B+WP;9@kXY$Uz)h1Wl=gayjPk&p*{7X
z|M<3d{AkCNl-|}hwC9d7<5Oyz_4JOZsmJiP)O%N3x@hpn4nMVH=GPw^*Y=U8=zmdr
z+oJyK=P&A!nio;-N1n#x%$fO%I#S!!1IM(@cxp%6#DVMECSI_<ZN}3(+8VpPZtPy}
z`P-R~-fii;!AxgG+pqurj;0N78#jguMVW2AT2j;Ek6$%rQR*?_(KM*}bNy4>?#lS*
zZ?D#`S1C<sKXZg-m*!9G(X*|Q<+b*QJK7fXzh(TRXWn30^<Y``Xj}WEe4gmnvLMQ&
zUuB#bjI-t(<E$yhp<i{J1N|?W|1$nXv+XeRf8aox|MI1&?JuJ}b<n@A?HkqhOWXb`
zYiAhd?eM>Lv(4v&vM$W~Rm!@!Qda-0dtO$w{};-_;pLtq8;+$j^Iz+Hz3qprBj4)9
zG*dGc{bRjtoAl_8mWe&iG)*ks)OJU&Y<+4=?>^C%E}M#XX<|Ba>dub0HzfZQP(T3%
z6i`3`1r$&~f&U)~+<B&>H?z~HNY4q=XD(ay;OdknrXFch>T&y|Nn=Yx8)r7&TAI3S
z)w=b=N~7y<uD_u)YUB;0M&3N?#?qW6ix!O-{lLv57Oq*aYSGftn#B(-Tf1!as?rT(
zZn^p98|S5IjV<@yo~Esh|0gh+cPv@8j<Qqg+q-AKo~eHA(zUH?S{E!#^{tE7x2F0v
ztD6_JE}*%1#p*?=K7X<9frYDAw?439*;<B()|MqP#M;HJ4=rY(g=^QQ`svdr)!%y8
z#QFs->#|v>U$lDV%EhY~p=ha(*{Gj3y@`RTME!!+)-}r(u4`SqmfHN+|1MzAsQ-DX
zBO9qb^?Yq;x6%6-?eCx&!}Uy^^zZrF&XhKOqT6uc9)FjS7_L_;xA1>UdrH@g=XK>T
zhKrO)G2Exer(T~vkkWM<=~nrxly@y1isAOXl6pNig{rQo3`Das+>OO>=cO~u$VDCP
zOnhLs;i8QAdq0VGhC6dQaT<d5N*T0f{i1m*=|g&DBlb`2DJ|$;zvvf#A0p>xZSh|=
zTpCn;-BsQkx<yeVvwr>4R+<yD_WZx-7ilh<mEr!L*ZoN4uQJ@jtIwSIw@OE*`(4^E
YuD<S?ZVcb6+P!}|P5URSuZ!XSFF32Z*Z=?k

literal 0
HcmV?d00001

-- 
1.8.1.4

^ permalink raw reply	[flat|nested] 21+ messages in thread

* [Qemu-devel] [PATCH 10/10] PPC: e500: Move to u-boot as firmware
  2014-01-19 23:44 [Qemu-devel] [PATCH 00/10] PPC: e500: Use u-boot as firmware Alexander Graf
                   ` (8 preceding siblings ...)
  2014-01-19 23:44 ` [Qemu-devel] [PATCH 09/10] PPC: Add u-boot firmware for e500 Alexander Graf
@ 2014-01-19 23:44 ` Alexander Graf
  2014-01-23  0:23   ` Scott Wood
  9 siblings, 1 reply; 21+ messages in thread
From: Alexander Graf @ 2014-01-19 23:44 UTC (permalink / raw)
  To: qemu-devel; +Cc: qemu-ppc

Almost all platforms QEMU emulates have some sort of firmware they can load
to expose a guest environment that closely resembles the way it would look
like on real hardware.

This patch introduces such a firmware on our e500 platforms. U-boot is the
default firmware for most of these systems and as such our preferred choice.

For now, it is able to expose the same functionality to the user as the direct
-kernel option was, just that it prints some nice messages beforehand.

However, if you abort the boot (press any key) or boot without -kernel you
are actually able to modify the boot environment, execute a networked boot
through the e1000 emulation and execute u-boot payloads.

Signed-off-by: Alexander Graf <agraf@suse.de>
---
 hw/ppc/e500.c | 94 ++++++++++++++++++++++++++++++++++-------------------------
 1 file changed, 54 insertions(+), 40 deletions(-)

diff --git a/hw/ppc/e500.c b/hw/ppc/e500.c
index f8a76b7..d95c112 100644
--- a/hw/ppc/e500.c
+++ b/hw/ppc/e500.c
@@ -39,7 +39,6 @@
 
 #define EPAPR_MAGIC                (0x45504150)
 #define BINARY_DEVICE_TREE_FILE    "mpc8544ds.dtb"
-#define UIMAGE_LOAD_BASE           0
 #define DTC_LOAD_PAD               0x1800000
 #define DTC_PAD_MASK               0xFFFFF
 #define DTB_MAX_SIZE               (8 * 1024 * 1024)
@@ -618,15 +617,18 @@ void ppce500_init(QEMUMachineInitArgs *args, PPCE500Params *params)
     MemoryRegion *ram = g_new(MemoryRegion, 1);
     PCIBus *pci_bus;
     CPUPPCState *env = NULL;
-    uint64_t elf_entry;
-    uint64_t elf_lowaddr;
-    hwaddr entry=0;
-    hwaddr loadaddr=UIMAGE_LOAD_BASE;
-    target_long kernel_size=0;
-    target_ulong dt_base = 0;
-    target_ulong initrd_base = 0;
-    target_long initrd_size = 0;
-    target_ulong cur_base = 0;
+    uint64_t loadaddr;
+    hwaddr kernel_base = -1LL;
+    int kernel_size = 0;
+    hwaddr dt_base = 0;
+    hwaddr initrd_base = 0;
+    int initrd_size = 0;
+    hwaddr cur_base = 0;
+    char *filename;
+    hwaddr bios_entry = 0;
+    target_long bios_size;
+    struct boot_info *boot_info;
+    int dt_size;
     int i;
     unsigned int pci_irq_nrs[4] = {1, 2, 3, 4};
     qemu_irq **irqs, *mpic;
@@ -753,29 +755,24 @@ void ppce500_init(QEMUMachineInitArgs *args, PPCE500Params *params)
     /* Register spinning region */
     sysbus_create_simple("e500-spin", MPC8544_SPIN_BASE, NULL);
 
+    if (cur_base < (32 * 1024 * 1024)) {
+        /* u-boot occupies memory up to 32MB, so load blobs above */
+        cur_base = (32 * 1024 * 1024);
+    }
+
     /* Load kernel. */
     if (args->kernel_filename) {
-        kernel_size = load_uimage(args->kernel_filename, &entry,
-                                  &loadaddr, NULL);
-        if (kernel_size < 0) {
-            kernel_size = load_elf(args->kernel_filename, NULL, NULL,
-                                   &elf_entry, &elf_lowaddr, NULL, 1,
-                                   ELF_MACHINE, 0);
-            entry = elf_entry;
-            loadaddr = elf_lowaddr;
-        }
-        /* XXX try again as binary */
+        kernel_base = cur_base;
+        kernel_size = load_image_targphys(args->kernel_filename,
+                                          cur_base,
+                                          ram_size - cur_base);
         if (kernel_size < 0) {
             fprintf(stderr, "qemu: could not load kernel '%s'\n",
                     args->kernel_filename);
             exit(1);
         }
 
-        cur_base = loadaddr + kernel_size;
-
-        /* Reserve space for dtb */
-        dt_base = (cur_base + DTC_LOAD_PAD) & ~DTC_PAD_MASK;
-        cur_base += DTB_MAX_SIZE;
+        cur_base += kernel_size;
     }
 
     /* Load initrd. */
@@ -793,25 +790,42 @@ void ppce500_init(QEMUMachineInitArgs *args, PPCE500Params *params)
         cur_base = initrd_base + initrd_size;
     }
 
-    /* If we're loading a kernel directly, we must load the device tree too. */
-    if (args->kernel_filename) {
-        struct boot_info *boot_info;
-        int dt_size;
-
-        dt_size = ppce500_prep_device_tree(args, params, dt_base,
-                                           initrd_base, initrd_size,
-                                           loadaddr, kernel_size);
-        if (dt_size < 0) {
-            fprintf(stderr, "couldn't load device tree\n");
+    /* Load u-boot (ELF) */
+    if (bios_name == NULL) {
+        bios_name = "u-boot.e500";
+    }
+    filename = qemu_find_file(QEMU_FILE_TYPE_BIOS, bios_name);
+
+    bios_size = load_elf(filename, NULL, NULL, &bios_entry, &loadaddr, NULL,
+                         1, ELF_MACHINE, 0);
+    if (bios_size < 0) {
+        /*
+         * Hrm. No ELF image? Try a uImage, maybe someone is giving us an
+         * ePAPR compliant kernel
+         */
+        kernel_size = load_uimage(filename, &bios_entry, &loadaddr, NULL);
+        if (kernel_size < 0) {
+            fprintf(stderr, "qemu: could not load firmware '%s'\n", filename);
             exit(1);
         }
-        assert(dt_size < DTB_MAX_SIZE);
+    }
 
-        boot_info = env->load_info;
-        boot_info->entry = entry;
-        boot_info->dt_base = dt_base;
-        boot_info->dt_size = dt_size;
+    /* Reserve space for dtb */
+    dt_base = (loadaddr + bios_size + DTC_LOAD_PAD) & ~DTC_PAD_MASK;
+
+    dt_size = ppce500_prep_device_tree(args, params, dt_base,
+                                       initrd_base, initrd_size,
+                                       kernel_base, kernel_size);
+    if (dt_size < 0) {
+        fprintf(stderr, "couldn't load device tree\n");
+        exit(1);
     }
+    assert(dt_size < DTB_MAX_SIZE);
+
+    boot_info = env->load_info;
+    boot_info->entry = bios_entry;
+    boot_info->dt_base = dt_base;
+    boot_info->dt_size = dt_size;
 
     if (kvm_enabled()) {
         kvmppc_init();
-- 
1.8.1.4

^ permalink raw reply related	[flat|nested] 21+ messages in thread

* Re: [Qemu-devel] [PATCH 09/10] PPC: Add u-boot firmware for e500
  2014-01-19 23:44 ` [Qemu-devel] [PATCH 09/10] PPC: Add u-boot firmware for e500 Alexander Graf
@ 2014-01-20  0:17   ` Peter Maydell
  2014-01-20 10:04     ` Alexander Graf
  0 siblings, 1 reply; 21+ messages in thread
From: Peter Maydell @ 2014-01-20  0:17 UTC (permalink / raw)
  To: Alexander Graf; +Cc: qemu-ppc, QEMU Developers

On 19 January 2014 23:44, Alexander Graf <agraf@suse.de> wrote:
> This adds a special build of u-boot tailored for the e500 platforms we
> emulate. It is based on patches that are currently in the review process,
> so there's no hash commit to refer to yet.
>
> This binary is provided purely for convenience and testing purposes.
> Eventually we want to have it compiled based on an upstream commit.

I don't think we can commit binary blobs unless they are built
from sources that we have as a git submodule mirrored on
qemu.org, right?  (In particular u-boot is GPLed so strictly
speaking your patch email is a GPL violation :-)

thanks
-- PMM

^ permalink raw reply	[flat|nested] 21+ messages in thread

* Re: [Qemu-devel] [PATCH 09/10] PPC: Add u-boot firmware for e500
  2014-01-20  0:17   ` Peter Maydell
@ 2014-01-20 10:04     ` Alexander Graf
  2014-01-23  0:13       ` Scott Wood
  0 siblings, 1 reply; 21+ messages in thread
From: Alexander Graf @ 2014-01-20 10:04 UTC (permalink / raw)
  To: Peter Maydell; +Cc: qemu-ppc, QEMU Developers



> Am 20.01.2014 um 01:17 schrieb Peter Maydell <peter.maydell@linaro.org>:
> 
>> On 19 January 2014 23:44, Alexander Graf <agraf@suse.de> wrote:
>> This adds a special build of u-boot tailored for the e500 platforms we
>> emulate. It is based on patches that are currently in the review process,
>> so there's no hash commit to refer to yet.
>> 
>> This binary is provided purely for convenience and testing purposes.
>> Eventually we want to have it compiled based on an upstream commit.
> 
> I don't think we can commit binary blobs unless they are built
> from sources that we have as a git submodule mirrored on
> qemu.org, right?  

Yes :). That's why I added the sbove paragraph - eventually we want all the git submodule magic.

> (In particular u-boot is GPLed so strictly
> speaking your patch email is a GPL violation :-)

Is it? I do refer to the patch set required to build it, no? :)

Alex

> 
> thanks
> -- PMM

^ permalink raw reply	[flat|nested] 21+ messages in thread

* Re: [Qemu-devel] [Qemu-ppc] [PATCH 07/10] PPC: guts: Add emulation of a few more registers
  2014-01-19 23:44 ` [Qemu-devel] [PATCH 07/10] PPC: guts: Add emulation of a few more registers Alexander Graf
@ 2014-01-23  0:08   ` Scott Wood
  2014-01-23 11:34     ` Alexander Graf
  0 siblings, 1 reply; 21+ messages in thread
From: Scott Wood @ 2014-01-23  0:08 UTC (permalink / raw)
  To: Alexander Graf; +Cc: qemu-ppc, qemu-devel

On Mon, 2014-01-20 at 00:44 +0100, Alexander Graf wrote:
> The GUTS device is used by system software to find out about hardware
> details of the current system.
> 
> We only emulate the bare minimum to be able to reboot a guest which is
> not sufficient to make u-boot happy.
> 
> Add a few more registers to our portfolio with dummy values.
> 
> Signed-off-by: Alexander Graf <agraf@suse.de>
> ---
>  hw/ppc/mpc8544_guts.c | 12 ++++++++++++
>  1 file changed, 12 insertions(+)
> 
> diff --git a/hw/ppc/mpc8544_guts.c b/hw/ppc/mpc8544_guts.c
> index a10abe9..af8c742 100644
> --- a/hw/ppc/mpc8544_guts.c
> +++ b/hw/ppc/mpc8544_guts.c
> @@ -25,6 +25,8 @@
>  #define MPC8544_GUTS_RSTCR_RESET      0x02
>  
>  #define MPC8544_GUTS_ADDR_PORPLLSR    0x00
> +#define PORPLLSR_SYS_RATIO_MAX        0x3e
> +#define PORPLLSR_CPU0_RATIO_MAX       (0x3f << 16)
>  #define MPC8544_GUTS_ADDR_PORBMSR     0x04
>  #define MPC8544_GUTS_ADDR_PORIMPSCR   0x08
>  #define MPC8544_GUTS_ADDR_PORDEVSR    0x0C
> @@ -36,6 +38,7 @@
>  #define MPC8544_GUTS_ADDR_GPINDR      0x50
>  #define MPC8544_GUTS_ADDR_PMUXCR      0x60
>  #define MPC8544_GUTS_ADDR_DEVDISR     0x70
> +#define DEVDISR_DISABLED_NONE         0x0
>  #define MPC8544_GUTS_ADDR_POWMGTCSR   0x80
>  #define MPC8544_GUTS_ADDR_MCPSUMR     0x90
>  #define MPC8544_GUTS_ADDR_RSTRSCR     0x94
> @@ -73,6 +76,15 @@ static uint64_t mpc8544_guts_read(void *opaque, hwaddr addr,
>  
>      addr &= MPC8544_GUTS_MMIO_SIZE - 1;
>      switch (addr) {
> +    case MPC8544_GUTS_ADDR_PORPLLSR:
> +        value = PORPLLSR_SYS_RATIO_MAX | PORPLLSR_CPU0_RATIO_MAX;
> +        break;
> +    case MPC8544_GUTS_ADDR_PORDEVSR:
> +        value = 0;
> +        break;
> +    case MPC8544_GUTS_ADDR_DEVDISR:
> +        value = DEVDISR_DISABLED_NONE;
> +        break;

But we don't actually have most of these devices that you're claiming
aren't disabled via DEVDISR -- and with the paravirt target, what do
these registers even mean?

I'd rather see U-Boot not touch these registers for the QEMU target,
rather than returning arbitrary values.

-Scott

^ permalink raw reply	[flat|nested] 21+ messages in thread

* Re: [Qemu-devel] [PATCH 09/10] PPC: Add u-boot firmware for e500
  2014-01-20 10:04     ` Alexander Graf
@ 2014-01-23  0:13       ` Scott Wood
  0 siblings, 0 replies; 21+ messages in thread
From: Scott Wood @ 2014-01-23  0:13 UTC (permalink / raw)
  To: Alexander Graf; +Cc: Peter Maydell, qemu-ppc, QEMU Developers

On Mon, 2014-01-20 at 11:04 +0100, Alexander Graf wrote:
> 
> > Am 20.01.2014 um 01:17 schrieb Peter Maydell <peter.maydell@linaro.org>:
> > 
> >> On 19 January 2014 23:44, Alexander Graf <agraf@suse.de> wrote:
> >> This adds a special build of u-boot tailored for the e500 platforms we
> >> emulate. It is based on patches that are currently in the review process,
> >> so there's no hash commit to refer to yet.
> >> 
> >> This binary is provided purely for convenience and testing purposes.
> >> Eventually we want to have it compiled based on an upstream commit.
> > 
> > I don't think we can commit binary blobs unless they are built
> > from sources that we have as a git submodule mirrored on
> > qemu.org, right?  
> 
> Yes :). That's why I added the sbove paragraph - eventually we want all the git submodule magic.
> 
> > (In particular u-boot is GPLed so strictly
> > speaking your patch email is a GPL violation :-)
> 
> Is it? I do refer to the patch set required to build it, no? :)

While it's not hard to find the patches, you didn't actually link to
them...

-Scott

^ permalink raw reply	[flat|nested] 21+ messages in thread

* Re: [Qemu-devel] [Qemu-ppc] [PATCH 04/10] PPC: Add L1CFG1 SPR emulation
  2014-01-19 23:44 ` [Qemu-devel] [PATCH 04/10] PPC: Add L1CFG1 SPR emulation Alexander Graf
@ 2014-01-23  0:15   ` Scott Wood
  0 siblings, 0 replies; 21+ messages in thread
From: Scott Wood @ 2014-01-23  0:15 UTC (permalink / raw)
  To: Alexander Graf; +Cc: qemu-ppc, qemu-devel

On Mon, 2014-01-20 at 00:44 +0100, Alexander Graf wrote:
> In addition to the L1 data cache configuration register L1CFG0 there is
> also another one for the L1 instruction cache called L1CFG1.
> 
> Emulate that one with the same values as the data one.
> 
> Signed-off-by: Alexander Graf <agraf@suse.de>
> ---
>  target-ppc/cpu.h            | 1 +
>  target-ppc/translate_init.c | 8 +++++++-
>  2 files changed, 8 insertions(+), 1 deletion(-)
> 
> diff --git a/target-ppc/cpu.h b/target-ppc/cpu.h
> index 1289e13..15abad4 100644
> --- a/target-ppc/cpu.h
> +++ b/target-ppc/cpu.h
> @@ -1367,6 +1367,7 @@ static inline int cpu_mmu_index (CPUPPCState *env)
>  #define SPR_Exxx_BBEAR        (0x201)
>  #define SPR_Exxx_BBTAR        (0x202)
>  #define SPR_Exxx_L1CFG0       (0x203)
> +#define SPR_Exxx_L1CFG1       (0x204)
>  #define SPR_Exxx_NPIDR        (0x205)
>  #define SPR_ATBL              (0x20E)
>  #define SPR_ATBU              (0x20F)
> diff --git a/target-ppc/translate_init.c b/target-ppc/translate_init.c
> index 37a0ed2..403ce7a 100644
> --- a/target-ppc/translate_init.c
> +++ b/target-ppc/translate_init.c
> @@ -4437,6 +4437,8 @@ static void init_proc_e500 (CPUPPCState *env, int version)
>      uint64_t ivpr_mask = 0xFFFF0000ULL;
>      uint32_t l1cfg0 = 0x3800  /* 8 ways */
>                      | 0x0020; /* 32 kb */
> +    uint32_t l1cfg1 = 0x3800  /* 8 ways */
> +                    | 0x0020; /* 32 kb */
>  #if !defined(CONFIG_USER_ONLY)
>      int i;
>  #endif
> @@ -4505,6 +4507,7 @@ static void init_proc_e500 (CPUPPCState *env, int version)
>          env->dcache_line_size = 64;
>          env->icache_line_size = 64;
>          l1cfg0 |= 0x1000000; /* 64 byte cache block size */
> +        l1cfg1 |= 0x1000000; /* 64 byte cache block size */
>          break;
>      default:
>          cpu_abort(env, "Unknown CPU: " TARGET_FMT_lx "\n", env->spr[SPR_PVR]);
> @@ -4555,7 +4558,10 @@ static void init_proc_e500 (CPUPPCState *env, int version)
>                   SPR_NOACCESS, SPR_NOACCESS,
>                   &spr_read_generic, &spr_write_generic,
>                   l1cfg0);
> -    /* XXX : not implemented */
> +    spr_register(env, SPR_Exxx_L1CFG1, "L1CFG1",
> +                 SPR_NOACCESS, SPR_NOACCESS,
> +                 &spr_read_generic, &spr_write_generic,
> +                 l1cfg1);

LICFGn should be read-only.

-Scott

^ permalink raw reply	[flat|nested] 21+ messages in thread

* Re: [Qemu-devel] [PATCH 10/10] PPC: e500: Move to u-boot as firmware
  2014-01-19 23:44 ` [Qemu-devel] [PATCH 10/10] PPC: e500: Move to u-boot as firmware Alexander Graf
@ 2014-01-23  0:23   ` Scott Wood
  2014-01-23 10:40     ` Alexander Graf
  0 siblings, 1 reply; 21+ messages in thread
From: Scott Wood @ 2014-01-23  0:23 UTC (permalink / raw)
  To: Alexander Graf; +Cc: qemu-ppc, qemu-devel

On Mon, 2014-01-20 at 00:44 +0100, Alexander Graf wrote:
> Almost all platforms QEMU emulates have some sort of firmware they can load
> to expose a guest environment that closely resembles the way it would look
> like on real hardware.
> 
> This patch introduces such a firmware on our e500 platforms. U-boot is the
> default firmware for most of these systems and as such our preferred choice.
> 
> For now, it is able to expose the same functionality to the user as the direct
> -kernel option was, just that it prints some nice messages beforehand.
> 
> However, if you abort the boot (press any key) or boot without -kernel you
> are actually able to modify the boot environment, execute a networked boot
> through the e1000 emulation and execute u-boot payloads.

Have you removed support for loading the kernel directly?  I thought you
said you were only going to load U-Boot in the absence of -kernel.
Given the absence of runtime services, and the presence of a
standardized OS entry mechanism (ePAPR), inserting firmware into the
process seems like a niche use case rather than something that should be
the default, much less mandatory.

> +    /* Load u-boot (ELF) */
> +    if (bios_name == NULL) {
> +        bios_name = "u-boot.e500";
> +    }
> +    filename = qemu_find_file(QEMU_FILE_TYPE_BIOS, bios_name);
> +
> +    bios_size = load_elf(filename, NULL, NULL, &bios_entry, &loadaddr, NULL,
> +                         1, ELF_MACHINE, 0);
> +    if (bios_size < 0) {
> +        /*
> +         * Hrm. No ELF image? Try a uImage, maybe someone is giving us an
> +         * ePAPR compliant kernel
> +         */

ePAPR specifies ELF, not uImage (though QEMU does currently support
ePAPR-ish loading of uImages, as U-Boot does) -- and you still seem to
be trying to load firmware here, not a kernel.

-Scott

^ permalink raw reply	[flat|nested] 21+ messages in thread

* Re: [Qemu-devel] [PATCH 10/10] PPC: e500: Move to u-boot as firmware
  2014-01-23  0:23   ` Scott Wood
@ 2014-01-23 10:40     ` Alexander Graf
  2014-01-23 22:22       ` Scott Wood
  0 siblings, 1 reply; 21+ messages in thread
From: Alexander Graf @ 2014-01-23 10:40 UTC (permalink / raw)
  To: Scott Wood; +Cc: qemu-ppc, QEMU Developers


On 23.01.2014, at 01:23, Scott Wood <scottwood@freescale.com> wrote:

> On Mon, 2014-01-20 at 00:44 +0100, Alexander Graf wrote:
>> Almost all platforms QEMU emulates have some sort of firmware they can load
>> to expose a guest environment that closely resembles the way it would look
>> like on real hardware.
>> 
>> This patch introduces such a firmware on our e500 platforms. U-boot is the
>> default firmware for most of these systems and as such our preferred choice.
>> 
>> For now, it is able to expose the same functionality to the user as the direct
>> -kernel option was, just that it prints some nice messages beforehand.
>> 
>> However, if you abort the boot (press any key) or boot without -kernel you
>> are actually able to modify the boot environment, execute a networked boot
>> through the e1000 emulation and execute u-boot payloads.
> 
> Have you removed support for loading the kernel directly?  I thought you
> said you were only going to load U-Boot in the absence of -kernel.
> Given the absence of runtime services, and the presence of a
> standardized OS entry mechanism (ePAPR), inserting firmware into the
> process seems like a niche use case rather than something that should be
> the default, much less mandatory.

It's definitely not mandatory, but it makes things consistent. I'm not sure it's the better approach, but I figured we should definitely be able to go through the full u-boot cycle before we enter the guest kernel.

> 
>> +    /* Load u-boot (ELF) */
>> +    if (bios_name == NULL) {
>> +        bios_name = "u-boot.e500";
>> +    }
>> +    filename = qemu_find_file(QEMU_FILE_TYPE_BIOS, bios_name);
>> +
>> +    bios_size = load_elf(filename, NULL, NULL, &bios_entry, &loadaddr, NULL,
>> +                         1, ELF_MACHINE, 0);
>> +    if (bios_size < 0) {
>> +        /*
>> +         * Hrm. No ELF image? Try a uImage, maybe someone is giving us an
>> +         * ePAPR compliant kernel
>> +         */
> 
> ePAPR specifies ELF, not uImage (though QEMU does currently support
> ePAPR-ish loading of uImages, as U-Boot does) -- and you still seem to
> be trying to load firmware here, not a kernel.

Hrm. How do we load an ELF image when we have non-0 mapped memory? In fact, I'm wondering the same on uImages now that I think of it :).

So what this code does is it treats the "-bios" parameter the same as we used to treat -kernel, just in reverse probe order. So we check if -bios is an ELF image, if so, load it. If not, we load it as uImage and run it.

That means if you do -bios uImage you get a direct kernel boot, the same way we used to with -kernel before this patch set.

If we really want to make firmware only pop up when no -kernel is given (again, I'm not decided on that one yet), all we need to do is add this piece of code before the bios loader:

  if (args->kernel_filename) {
      /* Treat a -kernel passed kernel as firmware. This is possible because we don't have runtime services. */
      bios_name = args->kernel_filename;
  }

Then if we ever want to support both, all we need to do is replace the above piece of code with something that checks for a machine option on whether we want to skip firmware or not.


Alex

^ permalink raw reply	[flat|nested] 21+ messages in thread

* Re: [Qemu-devel] [Qemu-ppc] [PATCH 07/10] PPC: guts: Add emulation of a few more registers
  2014-01-23  0:08   ` [Qemu-devel] [Qemu-ppc] " Scott Wood
@ 2014-01-23 11:34     ` Alexander Graf
  2014-01-23 21:22       ` Scott Wood
  0 siblings, 1 reply; 21+ messages in thread
From: Alexander Graf @ 2014-01-23 11:34 UTC (permalink / raw)
  To: Scott Wood; +Cc: qemu-ppc, QEMU Developers


On 23.01.2014, at 01:08, Scott Wood <scottwood@freescale.com> wrote:

> On Mon, 2014-01-20 at 00:44 +0100, Alexander Graf wrote:
>> The GUTS device is used by system software to find out about hardware
>> details of the current system.
>> 
>> We only emulate the bare minimum to be able to reboot a guest which is
>> not sufficient to make u-boot happy.
>> 
>> Add a few more registers to our portfolio with dummy values.
>> 
>> Signed-off-by: Alexander Graf <agraf@suse.de>
>> ---
>> hw/ppc/mpc8544_guts.c | 12 ++++++++++++
>> 1 file changed, 12 insertions(+)
>> 
>> diff --git a/hw/ppc/mpc8544_guts.c b/hw/ppc/mpc8544_guts.c
>> index a10abe9..af8c742 100644
>> --- a/hw/ppc/mpc8544_guts.c
>> +++ b/hw/ppc/mpc8544_guts.c
>> @@ -25,6 +25,8 @@
>> #define MPC8544_GUTS_RSTCR_RESET      0x02
>> 
>> #define MPC8544_GUTS_ADDR_PORPLLSR    0x00
>> +#define PORPLLSR_SYS_RATIO_MAX        0x3e
>> +#define PORPLLSR_CPU0_RATIO_MAX       (0x3f << 16)
>> #define MPC8544_GUTS_ADDR_PORBMSR     0x04
>> #define MPC8544_GUTS_ADDR_PORIMPSCR   0x08
>> #define MPC8544_GUTS_ADDR_PORDEVSR    0x0C
>> @@ -36,6 +38,7 @@
>> #define MPC8544_GUTS_ADDR_GPINDR      0x50
>> #define MPC8544_GUTS_ADDR_PMUXCR      0x60
>> #define MPC8544_GUTS_ADDR_DEVDISR     0x70
>> +#define DEVDISR_DISABLED_NONE         0x0
>> #define MPC8544_GUTS_ADDR_POWMGTCSR   0x80
>> #define MPC8544_GUTS_ADDR_MCPSUMR     0x90
>> #define MPC8544_GUTS_ADDR_RSTRSCR     0x94
>> @@ -73,6 +76,15 @@ static uint64_t mpc8544_guts_read(void *opaque, hwaddr addr,
>> 
>>     addr &= MPC8544_GUTS_MMIO_SIZE - 1;
>>     switch (addr) {
>> +    case MPC8544_GUTS_ADDR_PORPLLSR:
>> +        value = PORPLLSR_SYS_RATIO_MAX | PORPLLSR_CPU0_RATIO_MAX;
>> +        break;
>> +    case MPC8544_GUTS_ADDR_PORDEVSR:
>> +        value = 0;
>> +        break;
>> +    case MPC8544_GUTS_ADDR_DEVDISR:
>> +        value = DEVDISR_DISABLED_NONE;
>> +        break;
> 
> But we don't actually have most of these devices that you're claiming
> aren't disabled via DEVDISR -- and with the paravirt target, what do
> these registers even mean?

For PORDEVSR and DEVDISR I agree - I'll just remove the code in u-boot that accesses them. It's all in board code anyway.

For PORPLLSR things are more complicated. I'm not really a big fan of touching speed.c and adding complicated and hard to test preprocessor statements. So how about we leave that one in?

Alex

> 
> I'd rather see U-Boot not touch these registers for the QEMU target,
> rather than returning arbitrary values.
> 
> -Scott

^ permalink raw reply	[flat|nested] 21+ messages in thread

* Re: [Qemu-devel] [Qemu-ppc] [PATCH 07/10] PPC: guts: Add emulation of a few more registers
  2014-01-23 11:34     ` Alexander Graf
@ 2014-01-23 21:22       ` Scott Wood
  0 siblings, 0 replies; 21+ messages in thread
From: Scott Wood @ 2014-01-23 21:22 UTC (permalink / raw)
  To: Alexander Graf; +Cc: qemu-ppc, QEMU Developers

On Thu, 2014-01-23 at 12:34 +0100, Alexander Graf wrote:
> On 23.01.2014, at 01:08, Scott Wood <scottwood@freescale.com> wrote:
> 
> > On Mon, 2014-01-20 at 00:44 +0100, Alexander Graf wrote:
> >> The GUTS device is used by system software to find out about hardware
> >> details of the current system.
> >> 
> >> We only emulate the bare minimum to be able to reboot a guest which is
> >> not sufficient to make u-boot happy.
> >> 
> >> Add a few more registers to our portfolio with dummy values.
> >> 
> >> Signed-off-by: Alexander Graf <agraf@suse.de>
> >> ---
> >> hw/ppc/mpc8544_guts.c | 12 ++++++++++++
> >> 1 file changed, 12 insertions(+)
> >> 
> >> diff --git a/hw/ppc/mpc8544_guts.c b/hw/ppc/mpc8544_guts.c
> >> index a10abe9..af8c742 100644
> >> --- a/hw/ppc/mpc8544_guts.c
> >> +++ b/hw/ppc/mpc8544_guts.c
> >> @@ -25,6 +25,8 @@
> >> #define MPC8544_GUTS_RSTCR_RESET      0x02
> >> 
> >> #define MPC8544_GUTS_ADDR_PORPLLSR    0x00
> >> +#define PORPLLSR_SYS_RATIO_MAX        0x3e
> >> +#define PORPLLSR_CPU0_RATIO_MAX       (0x3f << 16)
> >> #define MPC8544_GUTS_ADDR_PORBMSR     0x04
> >> #define MPC8544_GUTS_ADDR_PORIMPSCR   0x08
> >> #define MPC8544_GUTS_ADDR_PORDEVSR    0x0C
> >> @@ -36,6 +38,7 @@
> >> #define MPC8544_GUTS_ADDR_GPINDR      0x50
> >> #define MPC8544_GUTS_ADDR_PMUXCR      0x60
> >> #define MPC8544_GUTS_ADDR_DEVDISR     0x70
> >> +#define DEVDISR_DISABLED_NONE         0x0
> >> #define MPC8544_GUTS_ADDR_POWMGTCSR   0x80
> >> #define MPC8544_GUTS_ADDR_MCPSUMR     0x90
> >> #define MPC8544_GUTS_ADDR_RSTRSCR     0x94
> >> @@ -73,6 +76,15 @@ static uint64_t mpc8544_guts_read(void *opaque, hwaddr addr,
> >> 
> >>     addr &= MPC8544_GUTS_MMIO_SIZE - 1;
> >>     switch (addr) {
> >> +    case MPC8544_GUTS_ADDR_PORPLLSR:
> >> +        value = PORPLLSR_SYS_RATIO_MAX | PORPLLSR_CPU0_RATIO_MAX;
> >> +        break;
> >> +    case MPC8544_GUTS_ADDR_PORDEVSR:
> >> +        value = 0;
> >> +        break;
> >> +    case MPC8544_GUTS_ADDR_DEVDISR:
> >> +        value = DEVDISR_DISABLED_NONE;
> >> +        break;
> > 
> > But we don't actually have most of these devices that you're claiming
> > aren't disabled via DEVDISR -- and with the paravirt target, what do
> > these registers even mean?
> 
> For PORDEVSR and DEVDISR I agree - I'll just remove the code in u-boot
> that accesses them. It's all in board code anyway.
> 
> For PORPLLSR things are more complicated. I'm not really a big fan of
> touching speed.c and adding complicated and hard to test preprocessor
> statements. So how about we leave that one in?

I was thinking we could avoid the speed.c code entirely, along with
anything else that touches such things.

-Scott

^ permalink raw reply	[flat|nested] 21+ messages in thread

* Re: [Qemu-devel] [PATCH 10/10] PPC: e500: Move to u-boot as firmware
  2014-01-23 10:40     ` Alexander Graf
@ 2014-01-23 22:22       ` Scott Wood
  0 siblings, 0 replies; 21+ messages in thread
From: Scott Wood @ 2014-01-23 22:22 UTC (permalink / raw)
  To: Alexander Graf; +Cc: qemu-ppc, QEMU Developers

On Thu, 2014-01-23 at 11:40 +0100, Alexander Graf wrote:
> On 23.01.2014, at 01:23, Scott Wood <scottwood@freescale.com> wrote:
> 
> > On Mon, 2014-01-20 at 00:44 +0100, Alexander Graf wrote:
> >> Almost all platforms QEMU emulates have some sort of firmware they can load
> >> to expose a guest environment that closely resembles the way it would look
> >> like on real hardware.
> >> 
> >> This patch introduces such a firmware on our e500 platforms. U-boot is the
> >> default firmware for most of these systems and as such our preferred choice.
> >> 
> >> For now, it is able to expose the same functionality to the user as the direct
> >> -kernel option was, just that it prints some nice messages beforehand.
> >> 
> >> However, if you abort the boot (press any key) or boot without -kernel you
> >> are actually able to modify the boot environment, execute a networked boot
> >> through the e1000 emulation and execute u-boot payloads.
> > 
> > Have you removed support for loading the kernel directly?  I thought you
> > said you were only going to load U-Boot in the absence of -kernel.
> > Given the absence of runtime services, and the presence of a
> > standardized OS entry mechanism (ePAPR), inserting firmware into the
> > process seems like a niche use case rather than something that should be
> > the default, much less mandatory.
> 
> It's definitely not mandatory, but it makes things consistent. I'm not
> sure it's the better approach, but I figured we should definitely be
> able to go through the full u-boot cycle before we enter the guest
> kernel.

Able to, sure, but it should be optional.  As you noted on our call,
supporting U-Boot requires KVM modifications, so requiring U-Boot would
break old host kernels.  Plus, we'd lose ePAPR-ish ELF support, add at
least one second to boot time, and add complexity to the system (another
thing to possibly go wrong).

> >> +    /* Load u-boot (ELF) */
> >> +    if (bios_name == NULL) {
> >> +        bios_name = "u-boot.e500";
> >> +    }
> >> +    filename = qemu_find_file(QEMU_FILE_TYPE_BIOS, bios_name);
> >> +
> >> +    bios_size = load_elf(filename, NULL, NULL, &bios_entry, &loadaddr, NULL,
> >> +                         1, ELF_MACHINE, 0);
> >> +    if (bios_size < 0) {
> >> +        /*
> >> +         * Hrm. No ELF image? Try a uImage, maybe someone is giving us an
> >> +         * ePAPR compliant kernel
> >> +         */
> > 
> > ePAPR specifies ELF, not uImage (though QEMU does currently support
> > ePAPR-ish loading of uImages, as U-Boot does) -- and you still seem to
> > be trying to load firmware here, not a kernel.
> 
> Hrm. How do we load an ELF image when we have non-0 mapped memory? In
> fact, I'm wondering the same on uImages now that I think of it :).

Oh right, for mainline the answer is "we don't" -- that's currently only
in the SDK (and there, only for uImage).

But if you mean conceptually how would you do it, either you'd have the
image contain the proper load address for where memory is, or consider
it an offset into the beginning of RAM, or override it somehow.

> So what this code does is it treats the "-bios" parameter the same as
> we used to treat -kernel, just in reverse probe order. So we check if
> -bios is an ELF image, if so, load it. If not, we load it as uImage and
> run it.

OK, but the comment should be fixed.  Either the ELF or the uImage could
be an ePAPR-ish OS, and to be properly ePAPR compliant it should be ELF.

> That means if you do -bios uImage you get a direct kernel boot, the
> same way we used to with -kernel before this patch set.

Oh, I thought what you said on the call was that firmware would be used
when either -kernel is absent or -bios is specified.

The main issue with "-bios uImage", besides semantic awkwardness, is
that existing QEMU invocations will break with existing kernels when
used with newer QEMU versions.

-Scott

^ permalink raw reply	[flat|nested] 21+ messages in thread

end of thread, other threads:[~2014-01-23 22:23 UTC | newest]

Thread overview: 21+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2014-01-19 23:44 [Qemu-devel] [PATCH 00/10] PPC: e500: Use u-boot as firmware Alexander Graf
2014-01-19 23:44 ` [Qemu-devel] [PATCH 01/10] PPC: Make all e500 CPUs SVR aware Alexander Graf
2014-01-19 23:44 ` [Qemu-devel] [PATCH 02/10] PPC: Add definitions for GIVORs Alexander Graf
2014-01-19 23:44 ` [Qemu-devel] [PATCH 03/10] PPC: Add stub emulation for HDBCR0 Alexander Graf
2014-01-19 23:44 ` [Qemu-devel] [PATCH 04/10] PPC: Add L1CFG1 SPR emulation Alexander Graf
2014-01-23  0:15   ` [Qemu-devel] [Qemu-ppc] " Scott Wood
2014-01-19 23:44 ` [Qemu-devel] [PATCH 05/10] PPC: Properly emulate L1CSR0 and L1CSR1 Alexander Graf
2014-01-19 23:44 ` [Qemu-devel] [PATCH 06/10] PPC: Add dcbtls emulation Alexander Graf
2014-01-19 23:44 ` [Qemu-devel] [PATCH 07/10] PPC: guts: Add emulation of a few more registers Alexander Graf
2014-01-23  0:08   ` [Qemu-devel] [Qemu-ppc] " Scott Wood
2014-01-23 11:34     ` Alexander Graf
2014-01-23 21:22       ` Scott Wood
2014-01-19 23:44 ` [Qemu-devel] [PATCH 08/10] PPC: e500: Expose kernel load address in dt Alexander Graf
2014-01-19 23:44 ` [Qemu-devel] [PATCH 09/10] PPC: Add u-boot firmware for e500 Alexander Graf
2014-01-20  0:17   ` Peter Maydell
2014-01-20 10:04     ` Alexander Graf
2014-01-23  0:13       ` Scott Wood
2014-01-19 23:44 ` [Qemu-devel] [PATCH 10/10] PPC: e500: Move to u-boot as firmware Alexander Graf
2014-01-23  0:23   ` Scott Wood
2014-01-23 10:40     ` Alexander Graf
2014-01-23 22:22       ` Scott Wood

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.