From owner-freebsd-current@FreeBSD.ORG Mon Dec 9 08:59:17 2013 Return-Path: Delivered-To: current@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id D7463251 for ; Mon, 9 Dec 2013 08:59:17 +0000 (UTC) Received: from mail-we0-x230.google.com (mail-we0-x230.google.com [IPv6:2a00:1450:400c:c03::230]) (using TLSv1 with cipher ECDHE-RSA-RC4-SHA (128/128 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id EF5A31302 for ; Mon, 9 Dec 2013 08:59:16 +0000 (UTC) Received: by mail-we0-f176.google.com with SMTP id w62so3042285wes.7 for ; Mon, 09 Dec 2013 00:59:15 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type; bh=K5fpeVw1WEZdkrw1ic123Pwco031/aHQH50TDaOD7Ts=; b=M502ItQf2LAUD4lsX7981yXZFHj+gJutAKzI4eY3kt+pbHUIm1O/IGaD+T2DjGrJA/ vvNXFDMAvsbp5rzk8lQh3SJd8XXvv1Ieoe/F/xFq+y5Lt6wDZdteU8CUwc5O30gbJPZi oMUvvlwSqucFcnDGNsoLzm6dOTik8ZiQKxztCSwCy1glcl+MdivrqukZXddPe2pG/36J 10/Re2UQirzG3Hx22OrKgbNPOAV7sGEegabCNh+PtWhv9HcRkv1JXWCNJc3lkp/vGZ0h kegGEkjJNJMmtKYp7ZjDdY7Cu+YDQKo55fA/9ET5lKfNylXRGFEGc0ZXYvuQjUzH9LY5 iqFg== MIME-Version: 1.0 X-Received: by 10.180.109.201 with SMTP id hu9mr12843363wib.59.1386579554959; Mon, 09 Dec 2013 00:59:14 -0800 (PST) Received: by 10.227.226.12 with HTTP; Mon, 9 Dec 2013 00:59:14 -0800 (PST) In-Reply-To: <20131208163610.86e9e1ccc892aaf255d4cfb2@gmail.com> References: <201312052238.rB5McsVN020719@svn.freebsd.org> <20131208163610.86e9e1ccc892aaf255d4cfb2@gmail.com> Date: Mon, 9 Dec 2013 10:59:14 +0200 Message-ID: Subject: Re: svn commit: r259016 - in head/sys: conf dev/drm2 dev/drm2/i915 dev/drm2/radeon dev/fb dev/vt kern modules/drm2/i915kms modules/drm2/radeonkms sparc64/sparc64 sys teken From: Markiyan Kushnir To: Marc UBM Content-Type: multipart/mixed; boundary=e89a8f2356bdd4e41304ed1635fa Cc: current@freebsd.org X-BeenThere: freebsd-current@freebsd.org X-Mailman-Version: 2.1.17 Precedence: list List-Id: Discussions about the use of FreeBSD-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 09 Dec 2013 08:59:17 -0000 --e89a8f2356bdd4e41304ed1635fa Content-Type: text/plain; charset=ISO-8859-1 Hello, I'm on rev. 259102 and hitting drm not being able to attach to fbd device at X startup (X freezing). Attaching /var/log/messages, pciconf output and kern.conftxt. Please let me know if there is something I'm missing here. Posting in this thread since I thought it might be relevant to this commit? Thanks, Markiyan 2013/12/8 Marc UBM : > Hiho! :-) > > Thanks a lot for working on this! > > As soon as X is started, things work fine. Before that (as soon as vt > is initialized after the boot menu), output on all ttys is flickering, > resolution is at 640x480 (guessing here) and changing anything via > vidcontrol fails with "inappropriate ioctl for device". Also, screen > output starts overlapping, but a "clear" command fixes that > temporarily. The "Alt-Gr" key does nothing, manually entering ascii > keycodes via alt+number (e.g. alt-124 for |) works. > > Relevant pciconf output: > > vgapci0@pci0:0:2:0: class=0x030000 card=0x40011297 chip=0x2e328086 > rev=0x03 hdr=0x00 vendor = 'Intel Corporation' > device = '4 Series Chipset Integrated Graphics Controller' > class = display > subclass = VGA > > vgapci1@pci0:0:2:1: class=0x038000 card=0x40011297 chip=0x2e338086 > rev=0x03 hdr=0x00 vendor = 'Intel Corporation' > device = '4 Series Chipset Integrated Graphics Controller' > class = display > > Best regards, > Marc > > >> Author: ray >> Date: Thu Dec 5 22:38:53 2013 >> New Revision: 259016 >> URL: http://svnweb.freebsd.org/changeset/base/259016 >> >> Log: >> Merge VT(9) project (a.k.a. newcons). >> >> Reviewed by: nwhitehorn >> MFC_to_10_after: re approval >> >> Sponsored by: The FreeBSD Foundation >> >> Added: >> head/sys/dev/fb/fb_if.m >> - copied unchanged from r259015, user/ed/newcons/sys/dev/fb/fb_if.m >> head/sys/dev/fb/fbd.c >> - copied unchanged from r259015, user/ed/newcons/sys/dev/fb/fbd.c >> head/sys/dev/vt/ >> - copied from r259015, user/ed/newcons/sys/dev/vt/ >> head/sys/kern/subr_terminal.c >> - copied unchanged from r259015, user/ed/newcons/sys/kern/subr_terminal.c >> head/sys/sys/terminal.h >> - copied unchanged from r259015, user/ed/newcons/sys/sys/terminal.h >> Modified: >> head/sys/conf/files >> head/sys/conf/files.amd64 >> head/sys/conf/files.arm >> head/sys/conf/files.i386 >> head/sys/conf/files.powerpc >> head/sys/conf/files.sparc64 >> head/sys/conf/kmod.mk >> head/sys/conf/options >> head/sys/dev/drm2/drm_fb_helper.c >> head/sys/dev/drm2/drm_os_freebsd.h >> head/sys/dev/drm2/i915/i915_drv.c >> head/sys/dev/drm2/i915/intel_fb.c >> head/sys/dev/drm2/radeon/radeon.h >> head/sys/dev/drm2/radeon/radeon_drv.c >> head/sys/dev/drm2/radeon/radeon_fb.c >> head/sys/dev/drm2/radeon/radeon_pm.c >> head/sys/modules/drm2/i915kms/Makefile >> head/sys/modules/drm2/radeonkms/Makefile >> head/sys/sparc64/sparc64/machdep.c >> head/sys/sys/consio.h >> head/sys/sys/eventhandler.h >> head/sys/sys/fbio.h >> head/sys/sys/tty.h >> head/sys/teken/teken.c >> head/sys/teken/teken.h >> head/sys/teken/teken_subr.h >> Directory Properties: >> head/sys/ (props changed) >> head/sys/conf/ (props changed) >> >> Modified: head/sys/conf/files >> ============================================================================== >> --- head/sys/conf/files Thu Dec 5 21:58:02 2013 (r259015) >> +++ head/sys/conf/files Thu Dec 5 22:38:53 2013 (r259016) >> @@ -82,7 +82,7 @@ pccarddevs.h standard \ >> compile-with "${AWK} -f $S/tools/pccarddevs2h.awk $S/dev/pccard/pccarddevs" \ >> no-obj no-implicit-rule before-depend \ >> clean "pccarddevs.h" >> -teken_state.h optional sc \ >> +teken_state.h optional sc | vt \ >> dependency "$S/teken/gensequences $S/teken/sequences" \ >> compile-with "${AWK} -f $S/teken/gensequences $S/teken/sequences > teken_state.h" \ >> no-obj no-implicit-rule before-depend \ >> @@ -1396,6 +1396,8 @@ dev/ex/if_ex_isa.c optional ex isa >> dev/ex/if_ex_pccard.c optional ex pccard >> dev/exca/exca.c optional cbb >> dev/fatm/if_fatm.c optional fatm pci >> +dev/fb/fbd.c optional fbd | vt >> +dev/fb/fb_if.m optional fbd | vt >> dev/fb/splash.c optional splash >> dev/fdt/fdt_common.c optional fdt >> dev/fdt/fdt_ic_if.m optional fdt >> @@ -2461,6 +2463,17 @@ dev/vge/if_vge.c optional vge >> >> dev/vkbd/vkbd.c optional vkbd >> dev/vr/if_vr.c optional vr pci >> +dev/vt/colors/vt_termcolors.c optional vt >> +dev/vt/font/vt_font_default.c optional vt >> +dev/vt/font/vt_mouse_cursor.c optional vt >> +dev/vt/hw/fb/vt_fb.c optional vt >> +dev/vt/hw/vga/vga.c optional vt vt_vga >> +dev/vt/logo/logo_freebsd.c optional vt >> +dev/vt/vt_buf.c optional vt >> +dev/vt/vt_consolectl.c optional vt >> +dev/vt/vt_core.c optional vt >> +dev/vt/vt_font.c optional vt >> +dev/vt/vt_sysmouse.c optional vt >> dev/vte/if_vte.c optional vte pci >> dev/vx/if_vx.c optional vx >> dev/vx/if_vx_eisa.c optional vx eisa >> @@ -2897,6 +2910,7 @@ kern/subr_sleepqueue.c standard >> kern/subr_smp.c standard >> kern/subr_stack.c optional ddb | stack | ktr >> kern/subr_taskqueue.c standard >> +kern/subr_terminal.c optional vt >> kern/subr_trap.c standard >> kern/subr_turnstile.c standard >> kern/subr_uio.c standard >> @@ -3796,7 +3810,7 @@ security/mac_portacl/mac_portacl.c optio >> security/mac_seeotheruids/mac_seeotheruids.c optional mac_seeotheruids >> security/mac_stub/mac_stub.c optional mac_stub >> security/mac_test/mac_test.c optional mac_test >> -teken/teken.c optional sc >> +teken/teken.c optional sc | vt >> ufs/ffs/ffs_alloc.c optional ffs >> ufs/ffs/ffs_balloc.c optional ffs >> ufs/ffs/ffs_inode.c optional ffs >> >> Modified: head/sys/conf/files.amd64 >> ============================================================================== >> --- head/sys/conf/files.amd64 Thu Dec 5 21:58:02 2013 (r259015) >> +++ head/sys/conf/files.amd64 Thu Dec 5 22:38:53 2013 (r259016) >> @@ -241,7 +241,7 @@ dev/hyperv/vmbus/hv_connection.c optio >> dev/hyperv/vmbus/hv_hv.c optional hyperv >> dev/hyperv/vmbus/hv_ring_buffer.c optional hyperv >> dev/hyperv/vmbus/hv_vmbus_drv_freebsd.c optional hyperv >> -dev/kbd/kbd.c optional atkbd | sc | ukbd >> +dev/kbd/kbd.c optional atkbd | sc | ukbd | vt >> dev/lindev/full.c optional lindev >> dev/lindev/lindev.c optional lindev >> dev/nfe/if_nfe.c optional nfe pci >> >> Modified: head/sys/conf/files.arm >> ============================================================================== >> --- head/sys/conf/files.arm Thu Dec 5 21:58:02 2013 (r259015) >> +++ head/sys/conf/files.arm Thu Dec 5 22:38:53 2013 (r259016) >> @@ -62,7 +62,7 @@ crypto/blowfish/bf_enc.c optional crypto >> crypto/des/des_enc.c optional crypto | ipsec | netsmb >> dev/fb/fb.c optional sc >> dev/hwpmc/hwpmc_arm.c optional hwpmc >> -dev/kbd/kbd.c optional sc >> +dev/kbd/kbd.c optional sc | vt >> dev/syscons/scgfbrndr.c optional sc >> dev/syscons/scterm-teken.c optional sc >> dev/syscons/scvtb.c optional sc >> >> Modified: head/sys/conf/files.i386 >> ============================================================================== >> --- head/sys/conf/files.i386 Thu Dec 5 21:58:02 2013 (r259015) >> +++ head/sys/conf/files.i386 Thu Dec 5 22:38:53 2013 (r259016) >> @@ -249,7 +249,7 @@ dev/ipmi/ipmi_smbios.c optional ipmi >> dev/ipmi/ipmi_ssif.c optional ipmi smbus >> dev/ipmi/ipmi_pci.c optional ipmi pci >> dev/ipmi/ipmi_linux.c optional ipmi compat_linux >> -dev/kbd/kbd.c optional atkbd | sc | ukbd >> +dev/kbd/kbd.c optional atkbd | sc | ukbd | vt >> dev/le/if_le_isa.c optional le isa >> dev/lindev/full.c optional lindev >> dev/lindev/lindev.c optional lindev >> @@ -293,6 +293,7 @@ dev/viawd/viawd.c optional viawd >> dev/vmware/vmxnet3/if_vmx.c optional vmx >> dev/acpica/acpi_if.m standard >> dev/acpi_support/acpi_wmi_if.m standard >> +dev/vt/hw/xboxfb/xboxfb.c optional vt_xboxfb >> dev/wbwd/wbwd.c optional wbwd >> dev/wpi/if_wpi.c optional wpi >> dev/isci/isci.c optional isci >> >> Modified: head/sys/conf/files.powerpc >> ============================================================================== >> --- head/sys/conf/files.powerpc Thu Dec 5 21:58:02 2013 (r259015) >> +++ head/sys/conf/files.powerpc Thu Dec 5 22:38:53 2013 (r259016) >> @@ -35,7 +35,7 @@ dev/iicbus/ad7417.c optional ad7417 pow >> dev/iicbus/ds1631.c optional ds1631 powermac >> dev/iicbus/ds1775.c optional ds1775 powermac >> dev/iicbus/max6690.c optional max6690 powermac >> -dev/kbd/kbd.c optional sc >> +dev/kbd/kbd.c optional sc | vt >> dev/nand/nfc_fsl.c optional nand mpc85xx >> # ofw can be either aim or fdt: fdt case handled in files. aim only powerpc specific. >> dev/ofw/openfirm.c optional aim >> @@ -65,6 +65,7 @@ dev/tsec/if_tsec.c optional tsec >> dev/tsec/if_tsec_fdt.c optional tsec fdt >> dev/uart/uart_cpu_powerpc.c optional uart >> dev/usb/controller/ehci_fsl.c optional ehci mpc85xx >> +dev/vt/hw/ofwfb/ofwfb.c optional vt aim >> kern/kern_clocksource.c standard >> kern/subr_dummy_vdso_tc.c standard >> kern/syscalls.c optional ktr >> >> Modified: head/sys/conf/files.sparc64 >> ============================================================================== >> --- head/sys/conf/files.sparc64 Thu Dec 5 21:58:02 2013 (r259015) >> +++ head/sys/conf/files.sparc64 Thu Dec 5 22:38:53 2013 (r259016) >> @@ -39,7 +39,7 @@ dev/fb/fb.c optional sc >> dev/fb/gallant12x22.c optional sc >> dev/fb/machfb.c optional machfb sc >> dev/hwpmc/hwpmc_sparc64.c optional hwpmc >> -dev/kbd/kbd.c optional atkbd | sc | ukbd >> +dev/kbd/kbd.c optional atkbd | sc | ukbd | vt >> dev/le/if_le_lebuffer.c optional le sbus >> dev/le/if_le_ledma.c optional le sbus >> dev/le/lebuffer_sbus.c optional le sbus >> @@ -59,7 +59,8 @@ dev/syscons/scgfbrndr.c optional sc >> dev/syscons/scterm-teken.c optional sc >> dev/syscons/scvtb.c optional sc >> dev/uart/uart_cpu_sparc64.c optional uart >> -dev/uart/uart_kbd_sun.c optional uart sc >> +dev/uart/uart_kbd_sun.c optional uart sc | vt >> +dev/vt/hw/ofwfb/ofwfb.c optional vt >> kern/kern_clocksource.c standard >> kern/subr_dummy_vdso_tc.c standard >> kern/syscalls.c optional ktr >> >> Modified: head/sys/conf/kmod.mk >> ============================================================================== >> --- head/sys/conf/kmod.mk Thu Dec 5 21:58:02 2013 (r259015) >> +++ head/sys/conf/kmod.mk Thu Dec 5 22:38:53 2013 (r259016) >> @@ -340,7 +340,7 @@ CFLAGS+= ${CONF_CFLAGS} >> >> MFILES?= dev/acpica/acpi_if.m dev/acpi_support/acpi_wmi_if.m \ >> dev/agp/agp_if.m dev/ata/ata_if.m dev/eisa/eisa_if.m \ >> - dev/gpio/gpio_if.m dev/gpio/gpiobus_if.m \ >> + dev/fb/fb_if.m dev/gpio/gpio_if.m dev/gpio/gpiobus_if.m \ >> dev/iicbus/iicbb_if.m dev/iicbus/iicbus_if.m \ >> dev/mmc/mmcbr_if.m dev/mmc/mmcbus_if.m \ >> dev/mii/miibus_if.m dev/mvs/mvs_if.m dev/ofw/ofw_bus_if.m \ >> >> Modified: head/sys/conf/options >> ============================================================================== >> --- head/sys/conf/options Thu Dec 5 21:58:02 2013 (r259015) >> +++ head/sys/conf/options Thu Dec 5 22:38:53 2013 (r259016) >> @@ -731,8 +731,10 @@ SAFE_DEBUG opt_safe.h >> SAFE_NO_RNG opt_safe.h >> SAFE_RNDTEST opt_safe.h >> >> -# syscons options >> +# syscons/vt options >> MAXCONS opt_syscons.h >> +VT_FB_DEFAULT_WIDTH opt_syscons.h >> +VT_FB_DEFAULT_HEIGHT opt_syscons.h >> SC_ALT_MOUSE_IMAGE opt_syscons.h >> SC_CUT_SPACES2TABS opt_syscons.h >> SC_CUT_SEPCHARS opt_syscons.h >> >> Modified: head/sys/dev/drm2/drm_fb_helper.c >> ============================================================================== >> --- head/sys/dev/drm2/drm_fb_helper.c Thu Dec 5 21:58:02 2013 (r259015) >> +++ head/sys/dev/drm2/drm_fb_helper.c Thu Dec 5 22:38:53 2013 (r259016) >> @@ -36,6 +36,41 @@ __FBSDID("$FreeBSD$"); >> #include >> #include >> >> +#if defined(__FreeBSD__) >> +struct vt_kms_softc { >> + struct drm_fb_helper *fb_helper; >> + struct task fb_mode_task; >> +}; >> + >> +static fb_enter_t vt_kms_postswitch; >> +static void vt_restore_fbdev_mode(void *, int); >> + >> +/* Call restore out of vt(9) locks. */ >> +static void >> +vt_restore_fbdev_mode(void *arg, int pending) >> +{ >> + struct drm_fb_helper *fb_helper; >> + struct vt_kms_softc *sc; >> + >> + sc = (struct vt_kms_softc *)arg; >> + fb_helper = sc->fb_helper; >> + sx_xlock(&fb_helper->dev->mode_config.mutex); >> + drm_fb_helper_restore_fbdev_mode(fb_helper); >> + sx_xunlock(&fb_helper->dev->mode_config.mutex); >> +} >> + >> +static int >> +vt_kms_postswitch(void *arg) >> +{ >> + struct vt_kms_softc *sc; >> + >> + sc = (struct vt_kms_softc *)arg; >> + taskqueue_enqueue_fast(taskqueue_thread, &sc->fb_mode_task); >> + >> + return (0); >> +} >> +#endif >> + >> static DRM_LIST_HEAD(kernel_fb_helper_list); >> >> /* simple single crtc case helper function */ >> @@ -216,6 +251,10 @@ static int >> fb_get_options(const char *connector_name, char **option) >> { >> >> + /* >> + * TODO: store mode options pointer in ${option} for connector with >> + * name ${connector_name} >> + */ >> return (1); >> } >> >> @@ -892,11 +931,13 @@ int drm_fb_helper_single_fb_probe(struct >> int new_fb = 0; >> int crtc_count = 0; >> int i; >> -#if 0 >> struct fb_info *info; >> -#endif >> struct drm_fb_helper_surface_size sizes; >> int gamma_size = 0; >> +#if defined(__FreeBSD__) >> + struct vt_kms_softc *sc; >> + device_t kdev; >> +#endif >> >> memset(&sizes, 0, sizeof(struct drm_fb_helper_surface_size)); >> sizes.surface_depth = 24; >> @@ -973,8 +1014,21 @@ int drm_fb_helper_single_fb_probe(struct >> if (new_fb < 0) >> return new_fb; >> >> -#if 0 >> +#if defined(__FreeBSD__) >> + sc = malloc(sizeof(struct vt_kms_softc), DRM_MEM_KMS, >> + M_WAITOK | M_ZERO); >> + sc->fb_helper = fb_helper; >> + TASK_INIT(&sc->fb_mode_task, 0, vt_restore_fbdev_mode, sc); >> + >> info = fb_helper->fbdev; >> + >> + info->fb_name = device_get_nameunit(fb_helper->dev->device); >> + info->fb_depth = fb_helper->fb->bits_per_pixel; >> + info->fb_height = fb_helper->fb->height; >> + info->fb_width = fb_helper->fb->width; >> + info->fb_stride = fb_helper->fb->pitches[0]; >> + info->fb_priv = sc; >> + info->enter = &vt_kms_postswitch; >> #endif >> >> /* set the fb pointer */ >> @@ -982,7 +1036,18 @@ int drm_fb_helper_single_fb_probe(struct >> fb_helper->crtc_info[i].mode_set.fb = fb_helper->fb; >> } >> >> -#if 0 >> +#if defined(__FreeBSD__) >> + if (new_fb) { >> + device_t fbd; >> + int ret; >> + >> + kdev = fb_helper->dev->device; >> + fbd = device_add_child(kdev, "fbd", device_get_unit(kdev)); >> + ret = device_probe_and_attach(fbd); >> + if (ret != 0) >> + DRM_ERROR("Failed to attach fbd device: %d\n", ret); >> + } >> +#else >> if (new_fb) { >> info->var.pixclock = 0; >> if (register_framebuffer(info) < 0) { >> @@ -1006,7 +1071,6 @@ int drm_fb_helper_single_fb_probe(struct >> if (new_fb) >> list_add(&fb_helper->kernel_fb_list, &kernel_fb_helper_list); >> #endif >> - >> return 0; >> } >> >> >> Modified: head/sys/dev/drm2/drm_os_freebsd.h >> ============================================================================== >> --- head/sys/dev/drm2/drm_os_freebsd.h Thu Dec 5 21:58:02 2013 (r259015) >> +++ head/sys/dev/drm2/drm_os_freebsd.h Thu Dec 5 22:38:53 2013 (r259016) >> @@ -6,6 +6,8 @@ >> #include >> __FBSDID("$FreeBSD$"); >> >> +#include >> + >> #if _BYTE_ORDER == _BIG_ENDIAN >> #define __BIG_ENDIAN 4321 >> #else >> >> Modified: head/sys/dev/drm2/i915/i915_drv.c >> ============================================================================== >> --- head/sys/dev/drm2/i915/i915_drv.c Thu Dec 5 21:58:02 2013 (r259015) >> +++ head/sys/dev/drm2/i915/i915_drv.c Thu Dec 5 22:38:53 2013 (r259016) >> @@ -40,6 +40,8 @@ __FBSDID("$FreeBSD$"); >> #include >> #include >> >> +#include "fb_if.h" >> + >> /* drv_PCI_IDs comes from drm_pciids.h, generated from drm_pciids.txt. */ >> static drm_pci_id_list_t i915_pciidlist[] = { >> i915_PCI_IDS >> @@ -380,6 +382,25 @@ i915_attach(device_t kdev) >> return (drm_attach(kdev, i915_pciidlist)); >> } >> >> +static struct fb_info * >> +i915_fb_helper_getinfo(device_t kdev) >> +{ >> + struct intel_fbdev *ifbdev; >> + drm_i915_private_t *dev_priv; >> + struct drm_device *dev; >> + struct fb_info *info; >> + >> + dev = device_get_softc(kdev); >> + dev_priv = dev->dev_private; >> + ifbdev = dev_priv->fbdev; >> + if (ifbdev == NULL) >> + return (NULL); >> + >> + info = ifbdev->helper.fbdev; >> + >> + return (info); >> +} >> + >> const struct intel_device_info * >> i915_get_device_id(int device) >> { >> @@ -400,6 +421,10 @@ static device_method_t i915_methods[] = >> DEVMETHOD(device_suspend, i915_suspend), >> DEVMETHOD(device_resume, i915_resume), >> DEVMETHOD(device_detach, drm_detach), >> + >> + /* Framebuffer service methods */ >> + DEVMETHOD(fb_getinfo, i915_fb_helper_getinfo), >> + >> DEVMETHOD_END >> }; >> >> >> Modified: head/sys/dev/drm2/i915/intel_fb.c >> ============================================================================== >> --- head/sys/dev/drm2/i915/intel_fb.c Thu Dec 5 21:58:02 2013 (r259015) >> +++ head/sys/dev/drm2/i915/intel_fb.c Thu Dec 5 22:38:53 2013 (r259016) >> @@ -41,8 +41,8 @@ static int intelfb_create(struct intel_f >> struct drm_device *dev = ifbdev->helper.dev; >> #if 0 >> struct drm_i915_private *dev_priv = dev->dev_private; >> - struct fb_info *info; >> #endif >> + struct fb_info *info; >> struct drm_framebuffer *fb; >> struct drm_mode_fb_cmd2 mode_cmd; >> struct drm_i915_gem_object *obj; >> @@ -86,6 +86,16 @@ static int intelfb_create(struct intel_f >> } >> >> info->par = ifbdev; >> +#else >> + info = malloc(sizeof(struct fb_info), DRM_MEM_KMS, M_WAITOK | M_ZERO); >> + info->fb_size = size; >> + info->fb_bpp = sizes->surface_bpp; >> + info->fb_width = sizes->fb_width; >> + info->fb_height = sizes->fb_height; >> + info->fb_pbase = dev->agp->base + obj->gtt_offset; >> + info->fb_vbase = (vm_offset_t)pmap_mapdev_attr(info->fb_pbase, size, >> + PAT_WRITE_COMBINING); >> + >> #endif >> >> ret = intel_framebuffer_init(dev, &ifbdev->ifb, &mode_cmd, obj); >> @@ -95,8 +105,8 @@ static int intelfb_create(struct intel_f >> fb = &ifbdev->ifb.base; >> >> ifbdev->helper.fb = fb; >> -#if 0 >> ifbdev->helper.fbdev = info; >> +#if 0 >> >> strcpy(info->fix.id, "inteldrmfb"); >> >> @@ -135,9 +145,8 @@ static int intelfb_create(struct intel_f >> >> /* Use default scratch pixmap (info->pixmap.flags = FB_PIXMAP_SYSTEM) */ >> #endif >> - >> - DRM_DEBUG_KMS("allocated %dx%d fb: 0x%08x, bo %p\n", >> - fb->width, fb->height, >> + DRM_DEBUG_KMS("allocated %dx%d (s %dbits) fb: 0x%08x, bo %p\n", >> + fb->width, fb->height, fb->depth, >> obj->gtt_offset, obj); >> >> DRM_UNLOCK(dev); >> >> Modified: head/sys/dev/drm2/radeon/radeon.h >> ============================================================================== >> --- head/sys/dev/drm2/radeon/radeon.h Thu Dec 5 21:58:02 2013 (r259015) >> +++ head/sys/dev/drm2/radeon/radeon.h Thu Dec 5 22:38:53 2013 (r259016) >> @@ -2041,6 +2041,9 @@ void radeon_pm_acpi_event_handler(struct >> int radeon_ttm_init(struct radeon_device *rdev); >> void radeon_ttm_fini(struct radeon_device *rdev); >> >> +/* radeon_fb.c */ >> +struct fb_info * radeon_fb_helper_getinfo(device_t kdev); >> + >> /* r600.c */ >> int r600_ih_ring_alloc(struct radeon_device *rdev); >> void r600_ih_ring_fini(struct radeon_device *rdev); >> >> Modified: head/sys/dev/drm2/radeon/radeon_drv.c >> ============================================================================== >> --- head/sys/dev/drm2/radeon/radeon_drv.c Thu Dec 5 21:58:02 2013 (r259015) >> +++ head/sys/dev/drm2/radeon/radeon_drv.c Thu Dec 5 22:38:53 2013 (r259016) >> @@ -41,6 +41,7 @@ __FBSDID("$FreeBSD$"); >> >> #include >> >> +#include "fb_if.h" >> >> /* >> * KMS wrapper. >> @@ -495,6 +496,8 @@ radeon_resume(device_t kdev) >> return (-ret); >> } >> >> +extern struct fb_info * radeon_fb_helper_getinfo(device_t kdev); >> + >> static device_method_t radeon_methods[] = { >> /* Device interface */ >> DEVMETHOD(device_probe, radeon_probe), >> @@ -502,6 +505,10 @@ static device_method_t radeon_methods[] >> DEVMETHOD(device_suspend, radeon_suspend), >> DEVMETHOD(device_resume, radeon_resume), >> DEVMETHOD(device_detach, drm_detach), >> + >> + /* Framebuffer service methods */ >> + DEVMETHOD(fb_getinfo, radeon_fb_helper_getinfo), >> + >> DEVMETHOD_END >> }; >> >> >> Modified: head/sys/dev/drm2/radeon/radeon_fb.c >> ============================================================================== >> --- head/sys/dev/drm2/radeon/radeon_fb.c Thu Dec 5 21:58:02 2013 (r259015) >> +++ head/sys/dev/drm2/radeon/radeon_fb.c Thu Dec 5 22:38:53 2013 (r259016) >> @@ -27,6 +27,8 @@ >> #include >> __FBSDID("$FreeBSD$"); >> >> +#include >> + >> #include >> #include >> #include >> @@ -46,7 +48,7 @@ struct radeon_fbdev { >> struct radeon_device *rdev; >> }; >> >> -#ifdef DUMBBELL_WIP >> +#if defined(__linux__) >> static struct fb_ops radeonfb_ops = { >> .owner = THIS_MODULE, >> .fb_check_var = drm_fb_helper_check_var, >> @@ -60,7 +62,7 @@ static struct fb_ops radeonfb_ops = { >> .fb_debug_enter = drm_fb_helper_debug_enter, >> .fb_debug_leave = drm_fb_helper_debug_leave, >> }; >> -#endif /* DUMBBELL_WIP */ >> +#endif >> >> >> int radeon_align_pitch(struct radeon_device *rdev, int width, int bpp, bool tiled) >> @@ -191,20 +193,13 @@ static int radeonfb_create(struct radeon >> struct drm_fb_helper_surface_size *sizes) >> { >> struct radeon_device *rdev = rfbdev->rdev; >> -#ifdef DUMBBELL_WIP >> struct fb_info *info; >> -#endif /* DUMBBELL_WIP */ >> struct drm_framebuffer *fb = NULL; >> struct drm_mode_fb_cmd2 mode_cmd; >> struct drm_gem_object *gobj = NULL; >> struct radeon_bo *rbo = NULL; >> -#ifdef DUMBBELL_WIP >> - device_t device = rdev->dev; >> -#endif /* DUMBBELL_WIP */ >> int ret; >> -#ifdef DUMBBELL_WIP >> unsigned long tmp; >> -#endif /* DUMBBELL_WIP */ >> >> mode_cmd.width = sizes->surface_width; >> mode_cmd.height = sizes->surface_height; >> @@ -224,16 +219,7 @@ static int radeonfb_create(struct radeon >> >> rbo = gem_to_radeon_bo(gobj); >> >> -#ifdef DUMBBELL_WIP >> - /* okay we have an object now allocate the framebuffer */ >> - info = framebuffer_alloc(0, device); >> - if (info == NULL) { >> - ret = -ENOMEM; >> - goto out_unref; >> - } >> - >> - info->par = rfbdev; >> -#endif /* DUMBBELL_WIP */ >> + info = malloc(sizeof(*info), DRM_MEM_KMS, M_WAITOK | M_ZERO); >> >> ret = radeon_framebuffer_init(rdev->ddev, &rfbdev->rfb, &mode_cmd, gobj); >> if (ret) { >> @@ -245,61 +231,29 @@ static int radeonfb_create(struct radeon >> >> /* setup helper */ >> rfbdev->helper.fb = fb; >> -#ifdef DUMBBELL_WIP >> rfbdev->helper.fbdev = info; >> >> - memset_io(rbo->kptr, 0x0, radeon_bo_size(rbo)); >> - >> - strcpy(info->fix.id, "radeondrmfb"); >> - >> - drm_fb_helper_fill_fix(info, fb->pitches[0], fb->depth); >> - >> - info->flags = FBINFO_DEFAULT | FBINFO_CAN_FORCE_OUTPUT; >> - info->fbops = &radeonfb_ops; >> + memset(rbo->kptr, 0x0, radeon_bo_size(rbo)); >> >> tmp = radeon_bo_gpu_offset(rbo) - rdev->mc.vram_start; >> - info->fix.smem_start = rdev->mc.aper_base + tmp; >> - info->fix.smem_len = radeon_bo_size(rbo); >> - info->screen_base = rbo->kptr; >> - info->screen_size = radeon_bo_size(rbo); >> - >> - drm_fb_helper_fill_var(info, &rfbdev->helper, sizes->fb_width, sizes->fb_height); >> - >> - /* setup aperture base/size for vesafb takeover */ >> - info->apertures = alloc_apertures(1); >> - if (!info->apertures) { >> - ret = -ENOMEM; >> - goto out_unref; >> - } >> - info->apertures->ranges[0].base = rdev->ddev->mode_config.fb_base; >> - info->apertures->ranges[0].size = rdev->mc.aper_size; >> + info->fb_size = radeon_bo_size(rbo); >> + info->fb_bpp = sizes->surface_bpp; >> + info->fb_width = sizes->surface_width; >> + info->fb_height = sizes->surface_height; >> + info->fb_pbase = rdev->mc.aper_base + tmp; >> + info->fb_vbase = (vm_offset_t)rbo->kptr; >> >> - /* Use default scratch pixmap (info->pixmap.flags = FB_PIXMAP_SYSTEM) */ >> - >> - if (info->screen_base == NULL) { >> - ret = -ENOSPC; >> - goto out_unref; >> - } >> - >> - ret = fb_alloc_cmap(&info->cmap, 256, 0); >> - if (ret) { >> - ret = -ENOMEM; >> - goto out_unref; >> - } >> - >> - DRM_INFO("fb mappable at 0x%lX\n", info->fix.smem_start); >> + DRM_INFO("fb mappable at 0x%" PRIXPTR "\n", info->fb_pbase); >> DRM_INFO("vram apper at 0x%lX\n", (unsigned long)rdev->mc.aper_base); >> DRM_INFO("size %lu\n", (unsigned long)radeon_bo_size(rbo)); >> DRM_INFO("fb depth is %d\n", fb->depth); >> DRM_INFO(" pitch is %d\n", fb->pitches[0]); >> >> - vga_switcheroo_client_fb_set(rdev->ddev->pdev, info); >> -#endif /* DUMBBELL_WIP */ >> return 0; >> >> out_unref: >> if (rbo) { >> - >> + /* TODO? dumbbell@ */ >> } >> if (fb && ret) { >> drm_gem_object_unreference(gobj); >> @@ -332,21 +286,13 @@ void radeon_fb_output_poll_changed(struc >> >> static int radeon_fbdev_destroy(struct drm_device *dev, struct radeon_fbdev *rfbdev) >> { >> -#ifdef DUMBBELL_WIP >> struct fb_info *info; >> -#endif /* DUMBBELL_WIP */ >> struct radeon_framebuffer *rfb = &rfbdev->rfb; >> >> -#ifdef DUMBBELL_WIP >> if (rfbdev->helper.fbdev) { >> info = rfbdev->helper.fbdev; >> - >> - unregister_framebuffer(info); >> - if (info->cmap.len) >> - fb_dealloc_cmap(&info->cmap); >> - framebuffer_release(info); >> + free(info, DRM_MEM_KMS); >> } >> -#endif /* DUMBBELL_WIP */ >> >> if (rfb->obj) { >> DRM_UNLOCK(dev); /* Work around lock recursion. dumbbell@ */ >> @@ -431,3 +377,22 @@ bool radeon_fbdev_robj_is_fb(struct rade >> return true; >> return false; >> } >> + >> +struct fb_info * >> +radeon_fb_helper_getinfo(device_t kdev) >> +{ >> + struct drm_device *dev; >> + struct radeon_device *rdev; >> + struct radeon_fbdev *rfbdev; >> + struct fb_info *info; >> + >> + dev = device_get_softc(kdev); >> + rdev = dev->dev_private; >> + rfbdev = rdev->mode_info.rfbdev; >> + if (rfbdev == NULL) >> + return (NULL); >> + >> + info = rfbdev->helper.fbdev; >> + >> + return (info); >> +} >> >> Modified: head/sys/dev/drm2/radeon/radeon_pm.c >> ============================================================================== >> --- head/sys/dev/drm2/radeon/radeon_pm.c Thu Dec 5 21:58:02 2013 (r259015) >> +++ head/sys/dev/drm2/radeon/radeon_pm.c Thu Dec 5 22:38:53 2013 (r259016) >> @@ -248,7 +248,7 @@ static void radeon_pm_set_clocks(struct >> (rdev->pm.requested_power_state_index == rdev->pm.current_power_state_index)) >> return; >> >> - DRM_LOCK(rdev->ddev); >> + //DRM_LOCK(rdev->ddev); XXX Recursion, already locked in drm_attach/drm_load -- dumbbell@ >> sx_xlock(&rdev->pm.mclk_lock); >> sx_xlock(&rdev->ring_lock); >> >> @@ -263,7 +263,7 @@ static void radeon_pm_set_clocks(struct >> /* needs a GPU reset dont reset here */ >> sx_xunlock(&rdev->ring_lock); >> sx_xunlock(&rdev->pm.mclk_lock); >> - DRM_UNLOCK(rdev->ddev); >> + //DRM_UNLOCK(rdev->ddev); XXX Recursion, already locked in drm_attach/drm_load -- dumbbell@ >> return; >> } >> } >> @@ -299,7 +299,7 @@ static void radeon_pm_set_clocks(struct >> >> sx_xunlock(&rdev->ring_lock); >> sx_xunlock(&rdev->pm.mclk_lock); >> - DRM_UNLOCK(rdev->ddev); >> + //DRM_UNLOCK(rdev->ddev); XXX Recursion, already locked in drm_attach/drm_load -- dumbbell@ >> } >> >> static void radeon_pm_print_states(struct radeon_device *rdev) >> >> Copied: head/sys/dev/fb/fb_if.m (from r259015, user/ed/newcons/sys/dev/fb/fb_if.m) >> ============================================================================== >> --- /dev/null 00:00:00 1970 (empty, because file is newly added) >> +++ head/sys/dev/fb/fb_if.m Thu Dec 5 22:38:53 2013 (r259016, copy of r259015, user/ed/newcons/sys/dev/fb/fb_if.m) >> @@ -0,0 +1,13 @@ >> +#include >> +#include >> + >> +INTERFACE fb; >> + >> +METHOD int pin_max { >> + device_t dev; >> + int *npins; >> +}; >> + >> +METHOD struct fb_info * getinfo { >> + device_t dev; >> +}; >> >> Copied: head/sys/dev/fb/fbd.c (from r259015, user/ed/newcons/sys/dev/fb/fbd.c) >> ============================================================================== >> --- /dev/null 00:00:00 1970 (empty, because file is newly added) >> +++ head/sys/dev/fb/fbd.c Thu Dec 5 22:38:53 2013 (r259016, copy of r259015, user/ed/newcons/sys/dev/fb/fbd.c) >> @@ -0,0 +1,467 @@ >> +/*- >> + * Copyright (c) 2013 The FreeBSD Foundation >> + * All rights reserved. >> + * >> + * This software was developed by Aleksandr Rybalko under sponsorship from the >> + * FreeBSD Foundation. >> + * >> + * Redistribution and use in source and binary forms, with or without >> + * modification, are permitted provided that the following conditions >> + * are met: >> + * 1. Redistributions of source code must retain the above copyright >> + * notice, this list of conditions and the following disclaimer. >> + * 2. Redistributions in binary form must reproduce the above copyright >> + * notice, this list of conditions and the following disclaimer in the >> + * documentation and/or other materials provided with the distribution. >> + * >> + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND >> + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE >> + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE >> + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE >> + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL >> + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS >> + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) >> + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT >> + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY >> + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF >> + * SUCH DAMAGE. >> + * >> + * $FreeBSD$ >> + */ >> + >> +/* Generic framebuffer */ >> +/* TODO unlink from VT(9) */ >> +/* TODO done normal /dev/fb methods */ >> + >> +#include >> +__FBSDID("$FreeBSD$"); >> + >> +#include >> +#include >> +#include >> +#include >> +#include >> +#include >> +#include >> +#include >> +#include >> + >> +#include >> + >> +#include >> +#include >> + >> +#include "fb_if.h" >> + >> +LIST_HEAD(fb_list_head_t, fb_list_entry) fb_list_head = >> + LIST_HEAD_INITIALIZER(fb_list_head); >> +struct fb_list_entry { >> + struct fb_info *fb_info; >> + struct cdev *fb_si; >> + LIST_ENTRY(fb_list_entry) fb_list; >> +}; >> + >> +struct fbd_softc { >> + device_t sc_dev; >> + struct fb_info *sc_info; >> +}; >> + >> +static void fbd_evh_init(void *); >> +/* SI_ORDER_SECOND, just after EVENTHANDLERs initialized. */ >> +SYSINIT(fbd_evh_init, SI_SUB_CONFIGURE, SI_ORDER_SECOND, fbd_evh_init, NULL); >> + >> +static d_open_t fb_open; >> +static d_close_t fb_close; >> +static d_read_t fb_read; >> +static d_write_t fb_write; >> +static d_ioctl_t fb_ioctl; >> +static d_mmap_t fb_mmap; >> + >> +static struct cdevsw fb_cdevsw = { >> + .d_version = D_VERSION, >> + .d_flags = D_NEEDGIANT, >> + .d_open = fb_open, >> + .d_close = fb_close, >> + .d_read = fb_read, >> + .d_write = fb_write, >> + .d_ioctl = fb_ioctl, >> + .d_mmap = fb_mmap, >> + .d_name = "fb", >> +}; >> + >> +static int framebuffer_dev_unit = 0; >> + >> +static int >> +fb_open(struct cdev *dev, int oflags, int devtype, struct thread *td) >> +{ >> + >> + return (0); >> +} >> + >> +static int >> +fb_close(struct cdev *dev, int fflag, int devtype, struct thread *td) >> +{ >> + >> + return (0); >> +} >> + >> +static int >> +fb_ioctl(struct cdev *dev, u_long cmd, caddr_t data, int fflag, >> + struct thread *td) >> +{ >> + struct fb_info *info; >> + int error; >> + >> + error = 0; >> + info = dev->si_drv1; >> + >> + switch (cmd) { >> + case FBIOGTYPE: >> + bcopy(info, (struct fbtype *)data, sizeof(struct fbtype)); >> + break; >> + >> + case FBIO_GETWINORG: /* get frame buffer window origin */ >> + *(u_int *)data = 0; >> + break; >> + >> + case FBIO_GETDISPSTART: /* get display start address */ >> + ((video_display_start_t *)data)->x = 0; >> + ((video_display_start_t *)data)->y = 0; >> + break; >> + >> + case FBIO_GETLINEWIDTH: /* get scan line width in bytes */ >> + *(u_int *)data = info->fb_stride; >> + break; >> + >> + case FBIO_BLANK: /* blank display */ >> + error = 0; /* TODO */ >> + break; >> + >> + default: >> + error = ENOIOCTL; >> + break; >> + } >> + return (error); >> +} >> + >> +static int >> +fb_read(struct cdev *dev, struct uio *uio, int ioflag) >> +{ >> + >> + return (0); /* XXX nothing to read, yet */ >> +} >> + >> +static int >> +fb_write(struct cdev *dev, struct uio *uio, int ioflag) >> +{ >> + >> + return (0); /* XXX nothing written */ >> +} >> + >> +static int >> +fb_mmap(struct cdev *dev, vm_ooffset_t offset, vm_paddr_t *paddr, int nprot, >> + vm_memattr_t *memattr) >> +{ >> + struct fb_info *info; >> + >> + info = dev->si_drv1; >> + if (offset < info->fb_size) { >> + *paddr = info->fb_pbase + offset; >> + return (0); >> + } >> + return (EINVAL); >> +} >> + >> + >> +static void >> +vt_fb_mem_wr1(struct fb_info *sc, uint32_t o, uint8_t v) >> +{ >> + >> + KASSERT((o < sc->fb_size), ("Offset %#08x out of fb size", o)); >> + *(uint8_t *)(sc->fb_vbase + o) = v; >> +} >> + >> +static void >> +vt_fb_mem_wr2(struct fb_info *sc, uint32_t o, uint16_t v) >> +{ >> + >> + KASSERT((o < sc->fb_size), ("Offset %#08x out of fb size", o)); >> + *(uint16_t *)(sc->fb_vbase + o) = v; >> +} >> + >> +static void >> +vt_fb_mem_wr4(struct fb_info *sc, uint32_t o, uint32_t v) >> +{ >> + >> + KASSERT((o < sc->fb_size), ("Offset %#08x out of fb size", o)); >> + *(uint32_t *)(sc->fb_vbase + o) = v; >> +} >> + >> +static void >> +vt_fb_mem_copy(struct fb_info *sc, uint32_t offset_to, uint32_t offset_from, >> + uint32_t size) >> +{ >> + >> + memmove((void *)(sc->fb_vbase + offset_to), (void *)(sc->fb_vbase + >> + offset_from), size); >> +} >> + >> +static void >> +vt_fb_indir_wr1(struct fb_info *sc, uint32_t o, uint8_t v) >> +{ >> + >> + KASSERT((o < sc->fb_size), ("Offset %#08x out of fb size", o)); >> + sc->fb_write(sc->fb_priv, o, &v, 1); >> +} >> + >> +static void >> +vt_fb_indir_wr2(struct fb_info *sc, uint32_t o, uint16_t v) >> +{ >> + >> + KASSERT((o < sc->fb_size), ("Offset %#08x out of fb size", o)); >> + sc->fb_write(sc->fb_priv, o, &v, 2); >> +} >> + >> +static void >> +vt_fb_indir_wr4(struct fb_info *sc, uint32_t o, uint32_t v) >> +{ >> + >> + KASSERT((o < sc->fb_size), ("Offset %#08x out of fb size", o)); >> + sc->fb_write(sc->fb_priv, o, &v, 4); >> +} >> + >> +static void >> +vt_fb_indir_copy(struct fb_info *sc, uint32_t offset_to, uint32_t offset_from, >> + uint32_t size) >> +{ >> + >> + sc->copy(sc->fb_priv, offset_to, offset_from, size); >> +} >> + >> +int >> +fb_probe(struct fb_info *info) >> +{ >> + >> + if (info->fb_size == 0) >> + return (ENXIO); >> + >> + if (info->fb_write != NULL) { >> + if (info->fb_write == NULL) { >> + return (EINVAL); >> + } >> + info->fb_flags |= FB_FLAG_NOMMAP; >> + info->wr1 = &vt_fb_indir_wr1; >> + info->wr2 = &vt_fb_indir_wr2; >> + info->wr4 = &vt_fb_indir_wr4; >> + info->copy = &vt_fb_indir_copy; >> + } else if (info->fb_vbase != 0) { >> + if (info->fb_pbase == 0) >> + info->fb_flags |= FB_FLAG_NOMMAP; >> + info->wr1 = &vt_fb_mem_wr1; >> + info->wr2 = &vt_fb_mem_wr2; >> + info->wr4 = &vt_fb_mem_wr4; >> + info->copy = &vt_fb_mem_copy; >> + } else >> + return (ENXIO); >> + >> + return (0); >> +} >> + >> + >> +static int >> +fb_init(struct fb_list_entry *entry, int unit) >> +{ >> + struct fb_info *info; >> + >> + info = entry->fb_info; >> + entry->fb_si = make_dev(&fb_cdevsw, unit, UID_ROOT, GID_WHEEL, >> + 0600, "fb%d", unit); >> + entry->fb_si->si_drv1 = info; >> + >> + return (0); >> +} >> + >> +int >> +fbd_list() >> +{ >> + struct fb_list_entry *entry; >> + >> + if (LIST_EMPTY(&fb_list_head)) >> + return (ENOENT); >> + >> + LIST_FOREACH(entry, &fb_list_head, fb_list) { >> + printf("FB %s @%p\n", entry->fb_info->fb_name, >> + (void *)entry->fb_info->fb_pbase); >> + } >> + >> + return (0); >> +} >> + >> +static struct fb_list_entry * >> +fbd_find(struct fb_info* info) >> +{ >> + struct fb_list_entry *entry, *tmp; >> + >> + LIST_FOREACH_SAFE(entry, &fb_list_head, fb_list, tmp) { >> + if (entry->fb_info == info) { >> + return (entry); >> + } >> + } >> + >> + return (NULL); >> +} >> + >> +int >> +fbd_register(struct fb_info* info) >> +{ >> + struct fb_list_entry *entry; >> + int err, first; >> + >> + first = 0; >> + if (LIST_EMPTY(&fb_list_head)) >> + first++; >> + >> + entry = fbd_find(info); >> + if (entry != NULL) { >> + /* XXX Update framebuffer params */ >> + return (0); >> + } >> + >> + err = fb_probe(info); >> + if (err) >> + return (err); >> >> *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** >> _______________________________________________ >> svn-src-all@freebsd.org mailing list >> http://lists.freebsd.org/mailman/listinfo/svn-src-all >> To unsubscribe, send any mail to "svn-src-all-unsubscribe@freebsd.org" >> > > > -- > Marc "UBM" Bocklet > _______________________________________________ > freebsd-current@freebsd.org mailing list > http://lists.freebsd.org/mailman/listinfo/freebsd-current > To unsubscribe, send any mail to "freebsd-current-unsubscribe@freebsd.org" --e89a8f2356bdd4e41304ed1635fa Content-Type: application/octet-stream; name="kern.conftxt" Content-Disposition: attachment; filename="kern.conftxt" Content-Transfer-Encoding: base64 X-Attachment-Id: f_hozhlpi90 a2Vybi5jb25mdHh0OiBvcHRpb25zCUNPTkZJR19BVVRPR0VORVJBVEVECmlkZW50CU1BUkVLCm1h Y2hpbmUJYW1kNjQKY3B1CUhBTU1FUgptYWtlb3B0aW9ucwlXSVRIX0NURj0xCm1ha2VvcHRpb25z CURFQlVHPS1nCm9wdGlvbnMJTElOU1lTRlMKb3B0aW9ucwlMSU5QUk9DRlMKb3B0aW9ucwlDT01Q QVRfTElOVVgzMgpvcHRpb25zCUVOQUJMRV9BTEFSVApvcHRpb25zCU1TR0JVRl9TSVpFPTY1NTM2 Cm9wdGlvbnMJRFVNTVlORVQKb3B0aW9ucwlJUERJVkVSVApvcHRpb25zCUlQRklSRVdBTEwKb3B0 aW9ucwlBTFRfQlJFQUtfVE9fREVCVUdHRVIKb3B0aW9ucwlLREJfVU5BVFRFTkRFRApvcHRpb25z CVVTQl9ERUJVRwpvcHRpb25zCVNDX1BJWEVMX01PREUKb3B0aW9ucwlWRVNBCm9wdGlvbnMJQVRB X1NUQVRJQ19JRApvcHRpb25zCUFDUElfRE1BUgpvcHRpb25zCVNNUApvcHRpb25zCU1BTExPQ19E RUJVR19NQVhaT05FUz04Cm9wdGlvbnMJV0lUTkVTU19TS0lQU1BJTgpvcHRpb25zCVdJVE5FU1MK b3B0aW9ucwlJTlZBUklBTlRfU1VQUE9SVApvcHRpb25zCUlOVkFSSUFOVFMKb3B0aW9ucwlERUFE TEtSRVMKb3B0aW9ucwlHREIKb3B0aW9ucwlEREIKb3B0aW9ucwlLREJfVFJBQ0UKb3B0aW9ucwlL REIKb3B0aW9ucwlJTkNMVURFX0NPTkZJR19GSUxFCm9wdGlvbnMJRERCX0NURgpvcHRpb25zCUtE VFJBQ0VfSE9PS1MKb3B0aW9ucwlLRFRSQUNFX0ZSQU1FCm9wdGlvbnMJTUFDCm9wdGlvbnMJQ0FQ QUJJTElUSUVTCm9wdGlvbnMJQ0FQQUJJTElUWV9NT0RFCm9wdGlvbnMJQVVESVQKb3B0aW9ucwlI V1BNQ19IT09LUwpvcHRpb25zCUtCRF9JTlNUQUxMX0NERVYKb3B0aW9ucwlQUklOVEZfQlVGUl9T SVpFPTEyOApvcHRpb25zCV9LUE9TSVhfUFJJT1JJVFlfU0NIRURVTElORwpvcHRpb25zCVNZU1ZT RU0Kb3B0aW9ucwlTWVNWTVNHCm9wdGlvbnMJU1lTVlNITQpvcHRpb25zCVNUQUNLCm9wdGlvbnMJ S1RSQUNFCm9wdGlvbnMJU0NTSV9ERUxBWT01MDAwCm9wdGlvbnMJQ09NUEFUX0ZSRUVCU0QzMgpv cHRpb25zCUdFT01fTEFCRUwKb3B0aW9ucwlHRU9NX1JBSUQKb3B0aW9ucwlHRU9NX1BBUlRfR1BU Cm9wdGlvbnMJUFNFVURPRlMKb3B0aW9ucwlQUk9DRlMKb3B0aW9ucwlDRDk2NjAKb3B0aW9ucwlN U0RPU0ZTCm9wdGlvbnMJTkZTX1JPT1QKb3B0aW9ucwlORlNMT0NLRApvcHRpb25zCU5GU0QKb3B0 aW9ucwlORlNDTApvcHRpb25zCU1EX1JPT1QKb3B0aW9ucwlRVU9UQQpvcHRpb25zCVVGU19HSk9V Uk5BTApvcHRpb25zCVVGU19ESVJIQVNICm9wdGlvbnMJVUZTX0FDTApvcHRpb25zCVNPRlRVUERB VEVTCm9wdGlvbnMJRkZTCm9wdGlvbnMJU0NUUApvcHRpb25zCVRDUF9PRkZMT0FECm9wdGlvbnMJ SU5FVDYKb3B0aW9ucwlJTkVUCm9wdGlvbnMJUFJFRU1QVElPTgpvcHRpb25zCVNDSEVEX1VMRQpv cHRpb25zCU5FV19QQ0lCCm9wdGlvbnMJR0VPTV9QQVJUX01CUgpvcHRpb25zCUdFT01fUEFSVF9F QlJfQ09NUEFUCm9wdGlvbnMJR0VPTV9QQVJUX0VCUgpvcHRpb25zCUdFT01fUEFSVF9CU0QKZGV2 aWNlCWlzYQpkZXZpY2UJbWVtCmRldmljZQlpbwpkZXZpY2UJdWFydF9uczgyNTAKZGV2aWNlCWNw dWZyZXEKZGV2aWNlCWFjcGkKZGV2aWNlCXBjaQpkZXZpY2UJYWhjaQpkZXZpY2UJYXRhCmRldmlj ZQlzY2J1cwpkZXZpY2UJZGEKZGV2aWNlCXBhc3MKZGV2aWNlCWhwdG5yCmRldmljZQlocHQyN3h4 CmRldmljZQlhdGtiZGMKZGV2aWNlCWF0a2JkCmRldmljZQlwc20KZGV2aWNlCWtiZG11eApkZXZp Y2UJdmdhCmRldmljZQlzcGxhc2gKZGV2aWNlCXNjCmRldmljZQlhZ3AKZGV2aWNlCXVhcnQKZGV2 aWNlCWVtCmRldmljZQltaWlidXMKZGV2aWNlCXJlCmRldmljZQlsb29wCmRldmljZQlyYW5kb20K ZGV2aWNlCXBhZGxvY2tfcm5nCmRldmljZQlyZHJhbmRfcm5nCmRldmljZQlldGhlcgpkZXZpY2UJ dmxhbgpkZXZpY2UJdHVuCmRldmljZQltZApkZXZpY2UJZ2lmCmRldmljZQlmYWl0aApkZXZpY2UJ ZmlybXdhcmUKZGV2aWNlCWJwZgpkZXZpY2UJdWhjaQpkZXZpY2UJb2hjaQpkZXZpY2UJZWhjaQpk ZXZpY2UJeGhjaQpkZXZpY2UJdXNiCmRldmljZQl1a2JkCmRldmljZQl1bWFzcwpkZXZpY2UJc291 bmQKZGV2aWNlCXNuZF9oZGEKZGV2aWNlCXNuZF9pY2gKZGV2aWNlCXZpcnRpbwpkZXZpY2UJdmly dGlvX3BjaQpkZXZpY2UJdnRuZXQKZGV2aWNlCXZpcnRpb19ibGsKZGV2aWNlCXZpcnRpb19zY3Np CmRldmljZQl2aXJ0aW9fYmFsbG9vbgpkZXZpY2UJaHlwZXJ2CmRldmljZQlhZGEKZGV2aWNlCWZp cmV3aXJlCmRldmljZQlkcG1zCmRldmljZQlzcGVha2VyCmRldmljZQlzbWJpb3MKZGV2aWNlCWNv cmV0ZW1wCmRldmljZQljcHVjdGwKZGV2aWNlCXNtYgpkZXZpY2UJc21idXMKZGV2aWNlCWljaHNt YgpkZXZpY2UJaWNod2QKZGV2aWNlCWxpbmRldgoK --e89a8f2356bdd4e41304ed1635fa Content-Type: application/octet-stream; name=messages Content-Disposition: attachment; filename=messages Content-Transfer-Encoding: base64 X-Attachment-Id: f_hozhlpim1 RGVjICA5IDEwOjI5OjUxIG1rdXNobmlyIHN5c2xvZ2Q6IGtlcm5lbCBib290IGZpbGUgaXMgL2Jv b3Qva2VybmVsL2tlcm5lbApEZWMgIDkgMTA6Mjk6NTEgbWt1c2huaXIga2VybmVsOiBXYWl0aW5n IChtYXggNjAgc2Vjb25kcykgZm9yIHN5c3RlbSBwcm9jZXNzIGB2bmxydScgdG8gc3RvcC4uLmRv bmUKRGVjICA5IDEwOjI5OjUxIG1rdXNobmlyIGtlcm5lbDogV2FpdGluZyAobWF4IDYwIHNlY29u ZHMpIGZvciBzeXN0ZW0gcHJvY2VzcyBgYnVmZGFlbW9uJyB0byBzdG9wLi4uZG9uZQpEZWMgIDkg MTA6Mjk6NTEgbWt1c2huaXIga2VybmVsOiBXYWl0aW5nIChtYXggNjAgc2Vjb25kcykgZm9yIHN5 c3RlbSBwcm9jZXNzIGBzeW5jZXInIHRvIHN0b3AuLi4KRGVjICA5IDEwOjI5OjUxIG1rdXNobmly IGtlcm5lbDogU3luY2luZyBkaXNrcywgdm5vZGVzIHJlbWFpbmluZy4uLjExIDExIDExIDggOCA4 IDQgNCA0IDQgMCAxIDEgMSAwIDEgMSAxIDEgMCAwIDAgMCBkb25lCkRlYyAgOSAxMDoyOTo1MSBt a3VzaG5pciBrZXJuZWw6IEFsbCBidWZmZXJzIHN5bmNlZC4KRGVjICA5IDEwOjI5OjUxIG1rdXNo bmlyIGtlcm5lbDogQ29weXJpZ2h0IChjKSAxOTkyLTIwMTMgVGhlIEZyZWVCU0QgUHJvamVjdC4K RGVjICA5IDEwOjI5OjUxIG1rdXNobmlyIGtlcm5lbDogQ29weXJpZ2h0IChjKSAxOTc5LCAxOTgw LCAxOTgzLCAxOTg2LCAxOTg4LCAxOTg5LCAxOTkxLCAxOTkyLCAxOTkzLCAxOTk0CkRlYyAgOSAx MDoyOTo1MSBta3VzaG5pciBrZXJuZWw6IFRoZSBSZWdlbnRzIG9mIHRoZSBVbml2ZXJzaXR5IG9m IENhbGlmb3JuaWEuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCkRlYyAgOSAxMDoyOTo1MSBta3VzaG5p ciBrZXJuZWw6IEZyZWVCU0QgaXMgYSByZWdpc3RlcmVkIHRyYWRlbWFyayBvZiBUaGUgRnJlZUJT RCBGb3VuZGF0aW9uLgpEZWMgIDkgMTA6Mjk6NTEgbWt1c2huaXIga2VybmVsOiBGcmVlQlNEIDEx LjAtQ1VSUkVOVCAjMDogU3VuIERlYyAgOCAyMjoyOToxNCBFRVQgMjAxMwpEZWMgIDkgMTA6Mjk6 NTEgbWt1c2huaXIga2VybmVsOiByb290QHZtLm1rdXNobmlyLnphcHRvLm9yZzovdXNyL29iai91 c3Ivc3JjL3N5cy9NQVJFSyBhbWQ2NApEZWMgIDkgMTA6Mjk6NTEgbWt1c2huaXIga2VybmVsOiBG cmVlQlNEIGNsYW5nIHZlcnNpb24gMy4zICh0YWdzL1JFTEVBU0VfMzMvZmluYWwgMTgzNTAyKSAy MDEzMDYxMApEZWMgIDkgMTA6Mjk6NTEgbWt1c2huaXIga2VybmVsOiBXQVJOSU5HOiBXSVRORVNT IG9wdGlvbiBlbmFibGVkLCBleHBlY3QgcmVkdWNlZCBwZXJmb3JtYW5jZS4KRGVjICA5IDEwOjI5 OjUxIG1rdXNobmlyIGtlcm5lbDogQ1BVOiBJbnRlbChSKSBDb3JlKFRNKSBpNy0zODIwIENQVSBA IDMuNjBHSHogKDM2MDAuMTAtTUh6IEs4LWNsYXNzIENQVSkKRGVjICA5IDEwOjI5OjUxIG1rdXNo bmlyIGtlcm5lbDogT3JpZ2luID0gIkdlbnVpbmVJbnRlbCIgIElkID0gMHgyMDZkNyAgRmFtaWx5 ID0gMHg2ICBNb2RlbCA9IDB4MmQgIFN0ZXBwaW5nID0gNwpEZWMgIDkgMTA6Mjk6NTEgbWt1c2hu aXIga2VybmVsOiBGZWF0dXJlcz0weGJmZWJmYmZmPEZQVSxWTUUsREUsUFNFLFRTQyxNU1IsUEFF LE1DRSxDWDgsQVBJQyxTRVAsTVRSUixQR0UsTUNBLENNT1YsUEFULFBTRTM2LENMRkxVU0gsRFRT LEFDUEksTU1YLEZYU1IsU1NFLFNTRTIsU1MsSFRULFRNLFBCRT4KRGVjICA5IDEwOjI5OjUxIG1r dXNobmlyIGtlcm5lbDogRmVhdHVyZXMyPTB4MWZiZWUzYmY8U1NFMyxQQ0xNVUxRRFEsRFRFUzY0 LE1PTixEU19DUEwsVk1YLEVTVCxUTTIsU1NTRTMsQ1gxNix4VFBSLFBEQ00sUENJRCxEQ0EsU1NF NC4xLFNTRTQuMix4MkFQSUMsUE9QQ05ULFRTQ0RMVCxBRVNOSSxYU0FWRSxPU1hTQVZFLEFWWD4K RGVjICA5IDEwOjI5OjUxIG1rdXNobmlyIGtlcm5lbDogQU1EIEZlYXR1cmVzPTB4MmMxMDA4MDA8 U1lTQ0FMTCxOWCxQYWdlMUdCLFJEVFNDUCxMTT4KRGVjICA5IDEwOjI5OjUxIG1rdXNobmlyIGtl cm5lbDogQU1EIEZlYXR1cmVzMj0weDE8TEFIRj4KRGVjICA5IDEwOjI5OjUxIG1rdXNobmlyIGtl cm5lbDogVFNDOiBQLXN0YXRlIGludmFyaWFudCwgcGVyZm9ybWFuY2Ugc3RhdGlzdGljcwpEZWMg IDkgMTA6Mjk6NTEgbWt1c2huaXIga2VybmVsOiByZWFsIG1lbW9yeSAgPSAzNDM1OTczODM2OCAo MzI3NjggTUIpCkRlYyAgOSAxMDoyOTo1MSBta3VzaG5pciBrZXJuZWw6IGF2YWlsIG1lbW9yeSA9 IDMzMjY4NDUzMzc2ICgzMTcyNyBNQikKRGVjICA5IDEwOjI5OjUxIG1rdXNobmlyIGtlcm5lbDog RXZlbnQgdGltZXIgIkxBUElDIiBxdWFsaXR5IDYwMApEZWMgIDkgMTA6Mjk6NTEgbWt1c2huaXIg a2VybmVsOiBBQ1BJIEFQSUMgVGFibGU6IDxBTEFTS0EgQSBNIEk+CkRlYyAgOSAxMDoyOTo1MSBt a3VzaG5pciBrZXJuZWw6IEZyZWVCU0QvU01QOiBNdWx0aXByb2Nlc3NvciBTeXN0ZW0gRGV0ZWN0 ZWQ6IDggQ1BVcwpEZWMgIDkgMTA6Mjk6NTEgbWt1c2huaXIga2VybmVsOiBGcmVlQlNEL1NNUDog MSBwYWNrYWdlKHMpIHggNCBjb3JlKHMpIHggMiBTTVQgdGhyZWFkcwpEZWMgIDkgMTA6Mjk6NTEg bWt1c2huaXIga2VybmVsOiBjcHUwIChCU1ApOiBBUElDIElEOiAgMApEZWMgIDkgMTA6Mjk6NTEg bWt1c2huaXIga2VybmVsOiBjcHUxIChBUCk6IEFQSUMgSUQ6ICAxCkRlYyAgOSAxMDoyOTo1MSBt a3VzaG5pciBrZXJuZWw6IGNwdTIgKEFQKTogQVBJQyBJRDogIDIKRGVjICA5IDEwOjI5OjUxIG1r dXNobmlyIGtlcm5lbDogY3B1MyAoQVApOiBBUElDIElEOiAgMwpEZWMgIDkgMTA6Mjk6NTEgbWt1 c2huaXIga2VybmVsOiBjcHU0IChBUCk6IEFQSUMgSUQ6ICA0CkRlYyAgOSAxMDoyOTo1MSBta3Vz aG5pciBrZXJuZWw6IGNwdTUgKEFQKTogQVBJQyBJRDogIDUKRGVjICA5IDEwOjI5OjUxIG1rdXNo bmlyIGtlcm5lbDogY3B1NiAoQVApOiBBUElDIElEOiAgNgpEZWMgIDkgMTA6Mjk6NTEgbWt1c2hu aXIga2VybmVsOiBjcHU3IChBUCk6IEFQSUMgSUQ6ICA3CkRlYyAgOSAxMDoyOTo1MSBta3VzaG5p ciBrZXJuZWw6IGlvYXBpYzAgPFZlcnNpb24gMi4wPiBpcnFzIDAtMjMgb24gbW90aGVyYm9hcmQK RGVjICA5IDEwOjI5OjUxIG1rdXNobmlyIGtlcm5lbDogQ3VzZTRCU0QgdjAuMS4zMCBAIC9kZXYv Y3VzZQpEZWMgIDkgMTA6Mjk6NTEgbWt1c2huaXIga2VybmVsOiBrYmQxIGF0IGtiZG11eDAKRGVj ICA5IDEwOjI5OjUxIG1rdXNobmlyIGtlcm5lbDogcmFuZG9tOiA8U29mdHdhcmUsIFlhcnJvdz4g aW5pdGlhbGl6ZWQKRGVjICA5IDEwOjI5OjUxIG1rdXNobmlyIGtlcm5lbDogc21iaW9zMDogPFN5 c3RlbSBNYW5hZ2VtZW50IEJJT1M+IGF0IGlvbWVtIDB4ZjA0YzAtMHhmMDRkZSBvbiBtb3RoZXJi b2FyZApEZWMgIDkgMTA6Mjk6NTEgbWt1c2huaXIga2VybmVsOiBzbWJpb3MwOiBWZXJzaW9uOiAy LjcsIEJDRCBSZXZpc2lvbjogMi43CkRlYyAgOSAxMDoyOTo1MSBta3VzaG5pciBrZXJuZWw6IGFj cGkwOiA8QUxBU0tBIEEgTSBJPiBvbiBtb3RoZXJib2FyZApEZWMgIDkgMTA6Mjk6NTEgbWt1c2hu aXIga2VybmVsOiBhY3BpMDogUG93ZXIgQnV0dG9uIChmaXhlZCkKRGVjICA5IDEwOjI5OjUxIG1r dXNobmlyIGtlcm5lbDogY3B1MDogPEFDUEkgQ1BVPiBvbiBhY3BpMApEZWMgIDkgMTA6Mjk6NTEg bWt1c2huaXIga2VybmVsOiBjcHUxOiA8QUNQSSBDUFU+IG9uIGFjcGkwCkRlYyAgOSAxMDoyOTo1 MSBta3VzaG5pciBrZXJuZWw6IGNwdTI6IDxBQ1BJIENQVT4gb24gYWNwaTAKRGVjICA5IDEwOjI5 OjUxIG1rdXNobmlyIGtlcm5lbDogY3B1MzogPEFDUEkgQ1BVPiBvbiBhY3BpMApEZWMgIDkgMTA6 Mjk6NTEgbWt1c2huaXIga2VybmVsOiBjcHU0OiA8QUNQSSBDUFU+IG9uIGFjcGkwCkRlYyAgOSAx MDoyOTo1MSBta3VzaG5pciBrZXJuZWw6IGNwdTU6IDxBQ1BJIENQVT4gb24gYWNwaTAKRGVjICA5 IDEwOjI5OjUxIG1rdXNobmlyIGtlcm5lbDogY3B1NjogPEFDUEkgQ1BVPiBvbiBhY3BpMApEZWMg IDkgMTA6Mjk6NTEgbWt1c2huaXIga2VybmVsOiBjcHU3OiA8QUNQSSBDUFU+IG9uIGFjcGkwCkRl YyAgOSAxMDoyOTo1MSBta3VzaG5pciBrZXJuZWw6IGF0dGltZXIwOiA8QVQgdGltZXI+IHBvcnQg MHg0MC0weDQzIGlycSAwIG9uIGFjcGkwCkRlYyAgOSAxMDoyOTo1MSBta3VzaG5pciBrZXJuZWw6 IFRpbWVjb3VudGVyICJpODI1NCIgZnJlcXVlbmN5IDExOTMxODIgSHogcXVhbGl0eSAwCkRlYyAg OSAxMDoyOTo1MSBta3VzaG5pciBrZXJuZWw6IEV2ZW50IHRpbWVyICJpODI1NCIgZnJlcXVlbmN5 IDExOTMxODIgSHogcXVhbGl0eSAxMDAKRGVjICA5IDEwOjI5OjUxIG1rdXNobmlyIGtlcm5lbDog YXRydGMwOiA8QVQgcmVhbHRpbWUgY2xvY2s+IHBvcnQgMHg3MC0weDcxIGlycSA4IG9uIGFjcGkw CkRlYyAgOSAxMDoyOTo1MSBta3VzaG5pciBrZXJuZWw6IEV2ZW50IHRpbWVyICJSVEMiIGZyZXF1 ZW5jeSAzMjc2OCBIeiBxdWFsaXR5IDAKRGVjICA5IDEwOjI5OjUxIG1rdXNobmlyIGtlcm5lbDog aHBldDA6IDxIaWdoIFByZWNpc2lvbiBFdmVudCBUaW1lcj4gaW9tZW0gMHhmZWQwMDAwMC0weGZl ZDAwM2ZmIG9uIGFjcGkwCkRlYyAgOSAxMDoyOTo1MSBta3VzaG5pciBrZXJuZWw6IFRpbWVjb3Vu dGVyICJIUEVUIiBmcmVxdWVuY3kgMTQzMTgxODAgSHogcXVhbGl0eSA5NTAKRGVjICA5IDEwOjI5 OjUxIG1rdXNobmlyIGtlcm5lbDogRXZlbnQgdGltZXIgIkhQRVQiIGZyZXF1ZW5jeSAxNDMxODE4 MCBIeiBxdWFsaXR5IDU1MApEZWMgIDkgMTA6Mjk6NTEgbWt1c2huaXIga2VybmVsOiBUaW1lY291 bnRlciAiQUNQSS1mYXN0IiBmcmVxdWVuY3kgMzU3OTU0NSBIeiBxdWFsaXR5IDkwMApEZWMgIDkg MTA6Mjk6NTEgbWt1c2huaXIga2VybmVsOiBhY3BpX3RpbWVyMDogPDI0LWJpdCB0aW1lciBhdCAz LjU3OTU0NU1Iej4gcG9ydCAweDQwOC0weDQwYiBvbiBhY3BpMApEZWMgIDkgMTA6Mjk6NTEgbWt1 c2huaXIga2VybmVsOiBwY2liMDogPEFDUEkgSG9zdC1QQ0kgYnJpZGdlPiBwb3J0IDB4Y2Y4LTB4 Y2ZmIG9uIGFjcGkwCkRlYyAgOSAxMDoyOTo1MSBta3VzaG5pciBrZXJuZWw6IHBjaTA6IDxBQ1BJ IFBDSSBidXM+IG9uIHBjaWIwCkRlYyAgOSAxMDoyOTo1MSBta3VzaG5pciBrZXJuZWw6IHBjaWIx OiA8QUNQSSBQQ0ktUENJIGJyaWRnZT4gaXJxIDE2IGF0IGRldmljZSAxLjAgb24gcGNpMApEZWMg IDkgMTA6Mjk6NTEgbWt1c2huaXIga2VybmVsOiBwY2kxOiA8QUNQSSBQQ0kgYnVzPiBvbiBwY2li MQpEZWMgIDkgMTA6Mjk6NTEgbWt1c2huaXIga2VybmVsOiBwY2kwOiA8b2xkLCBub24tVkdBIGRp c3BsYXkgZGV2aWNlPiBhdCBkZXZpY2UgMS4yIChubyBkcml2ZXIgYXR0YWNoZWQpCkRlYyAgOSAx MDoyOTo1MSBta3VzaG5pciBrZXJuZWw6IHBjaTA6IDxvbGQsIG5vbi1WR0EgZGlzcGxheSBkZXZp Y2U+IGF0IGRldmljZSAxLjMgKG5vIGRyaXZlciBhdHRhY2hlZCkKRGVjICA5IDEwOjI5OjUxIG1r dXNobmlyIGtlcm5lbDogcGNpMDogPG9sZCwgbm9uLVZHQSBkaXNwbGF5IGRldmljZT4gYXQgZGV2 aWNlIDEuNCAobm8gZHJpdmVyIGF0dGFjaGVkKQpEZWMgIDkgMTA6Mjk6NTEgbWt1c2huaXIga2Vy bmVsOiBwY2kwOiA8b2xkLCBub24tVkdBIGRpc3BsYXkgZGV2aWNlPiBhdCBkZXZpY2UgMS41IChu byBkcml2ZXIgYXR0YWNoZWQpCkRlYyAgOSAxMDoyOTo1MSBta3VzaG5pciBrZXJuZWw6IHBjaTA6 IDxvbGQsIG5vbi1WR0EgZGlzcGxheSBkZXZpY2U+IGF0IGRldmljZSAxLjYgKG5vIGRyaXZlciBh dHRhY2hlZCkKRGVjICA5IDEwOjI5OjUxIG1rdXNobmlyIGtlcm5lbDogcGNpMDogPG9sZCwgbm9u LVZHQSBkaXNwbGF5IGRldmljZT4gYXQgZGV2aWNlIDEuNyAobm8gZHJpdmVyIGF0dGFjaGVkKQpE ZWMgIDkgMTA6Mjk6NTEgbWt1c2huaXIga2VybmVsOiBwY2liMjogPEFDUEkgUENJLVBDSSBicmlk Z2U+IGlycSAxNiBhdCBkZXZpY2UgMi4wIG9uIHBjaTAKRGVjICA5IDEwOjI5OjUxIG1rdXNobmly IGtlcm5lbDogcGNpMjogPEFDUEkgUENJIGJ1cz4gb24gcGNpYjIKRGVjICA5IDEwOjI5OjUxIG1r dXNobmlyIGtlcm5lbDogdmdhcGNpMDogPFZHQS1jb21wYXRpYmxlIGRpc3BsYXk+IHBvcnQgMHhl MDAwLTB4ZTBmZiBtZW0gMHhlMDAwMDAwMC0weGVmZmZmZmZmLDB4ZmJlMjAwMDAtMHhmYmUyZmZm ZiBpcnEgMTYgYXQgZGV2aWNlIDAuMCBvbiBwY2kyCkRlYyAgOSAxMDoyOTo1MSBta3VzaG5pciBr ZXJuZWw6IGhkYWMwOiA8QVRJIFJWNzMwIEhEQSBDb250cm9sbGVyPiBtZW0gMHhmYmUzMDAwMC0w eGZiZTMzZmZmIGlycSAxNyBhdCBkZXZpY2UgMC4xIG9uIHBjaTIKRGVjICA5IDEwOjI5OjUxIG1r dXNobmlyIGtlcm5lbDogcGNpMDogPG9sZCwgbm9uLVZHQSBkaXNwbGF5IGRldmljZT4gYXQgZGV2 aWNlIDIuNCAobm8gZHJpdmVyIGF0dGFjaGVkKQpEZWMgIDkgMTA6Mjk6NTEgbWt1c2huaXIga2Vy bmVsOiBwY2kwOiA8b2xkLCBub24tVkdBIGRpc3BsYXkgZGV2aWNlPiBhdCBkZXZpY2UgMi41IChu byBkcml2ZXIgYXR0YWNoZWQpCkRlYyAgOSAxMDoyOTo1MSBta3VzaG5pciBrZXJuZWw6IHBjaTA6 IDxvbGQsIG5vbi1WR0EgZGlzcGxheSBkZXZpY2U+IGF0IGRldmljZSAyLjYgKG5vIGRyaXZlciBh dHRhY2hlZCkKRGVjICA5IDEwOjI5OjUxIG1rdXNobmlyIGtlcm5lbDogcGNpMDogPG9sZCwgbm9u LVZHQSBkaXNwbGF5IGRldmljZT4gYXQgZGV2aWNlIDIuNyAobm8gZHJpdmVyIGF0dGFjaGVkKQpE ZWMgIDkgMTA6Mjk6NTEgbWt1c2huaXIga2VybmVsOiBwY2liMzogPEFDUEkgUENJLVBDSSBicmlk Z2U+IGlycSAxNiBhdCBkZXZpY2UgMy4wIG9uIHBjaTAKRGVjICA5IDEwOjI5OjUxIG1rdXNobmly IGtlcm5lbDogcGNpMzogPEFDUEkgUENJIGJ1cz4gb24gcGNpYjMKRGVjICA5IDEwOjI5OjUxIG1r dXNobmlyIGtlcm5lbDogcGNpMDogPG9sZCwgbm9uLVZHQSBkaXNwbGF5IGRldmljZT4gYXQgZGV2 aWNlIDMuNCAobm8gZHJpdmVyIGF0dGFjaGVkKQpEZWMgIDkgMTA6Mjk6NTEgbWt1c2huaXIga2Vy bmVsOiBwY2kwOiA8b2xkLCBub24tVkdBIGRpc3BsYXkgZGV2aWNlPiBhdCBkZXZpY2UgMy41IChu byBkcml2ZXIgYXR0YWNoZWQpCkRlYyAgOSAxMDoyOTo1MSBta3VzaG5pciBrZXJuZWw6IHBjaTA6 IDxvbGQsIG5vbi1WR0EgZGlzcGxheSBkZXZpY2U+IGF0IGRldmljZSAzLjYgKG5vIGRyaXZlciBh dHRhY2hlZCkKRGVjICA5IDEwOjI5OjUxIG1rdXNobmlyIGtlcm5lbDogcGNpMDogPG9sZCwgbm9u LVZHQSBkaXNwbGF5IGRldmljZT4gYXQgZGV2aWNlIDMuNyAobm8gZHJpdmVyIGF0dGFjaGVkKQpE ZWMgIDkgMTA6Mjk6NTEgbWt1c2huaXIga2VybmVsOiBwY2kwOiA8YmFzZSBwZXJpcGhlcmFsPiBh dCBkZXZpY2UgNC4wIChubyBkcml2ZXIgYXR0YWNoZWQpCkRlYyAgOSAxMDoyOTo1MSBta3VzaG5p ciBrZXJuZWw6IHBjaTA6IDxiYXNlIHBlcmlwaGVyYWw+IGF0IGRldmljZSA0LjEgKG5vIGRyaXZl ciBhdHRhY2hlZCkKRGVjICA5IDEwOjI5OjUxIG1rdXNobmlyIGtlcm5lbDogcGNpMDogPGJhc2Ug cGVyaXBoZXJhbD4gYXQgZGV2aWNlIDQuMiAobm8gZHJpdmVyIGF0dGFjaGVkKQpEZWMgIDkgMTA6 Mjk6NTEgbWt1c2huaXIga2VybmVsOiBwY2kwOiA8YmFzZSBwZXJpcGhlcmFsPiBhdCBkZXZpY2Ug NC4zIChubyBkcml2ZXIgYXR0YWNoZWQpCkRlYyAgOSAxMDoyOTo1MSBta3VzaG5pciBrZXJuZWw6 IHBjaTA6IDxiYXNlIHBlcmlwaGVyYWw+IGF0IGRldmljZSA0LjQgKG5vIGRyaXZlciBhdHRhY2hl ZCkKRGVjICA5IDEwOjI5OjUxIG1rdXNobmlyIGtlcm5lbDogcGNpMDogPGJhc2UgcGVyaXBoZXJh bD4gYXQgZGV2aWNlIDQuNSAobm8gZHJpdmVyIGF0dGFjaGVkKQpEZWMgIDkgMTA6Mjk6NTEgbWt1 c2huaXIga2VybmVsOiBwY2kwOiA8YmFzZSBwZXJpcGhlcmFsPiBhdCBkZXZpY2UgNC42IChubyBk cml2ZXIgYXR0YWNoZWQpCkRlYyAgOSAxMDoyOTo1MSBta3VzaG5pciBrZXJuZWw6IHBjaTA6IDxi YXNlIHBlcmlwaGVyYWw+IGF0IGRldmljZSA0LjcgKG5vIGRyaXZlciBhdHRhY2hlZCkKRGVjICA5 IDEwOjI5OjUxIG1rdXNobmlyIGtlcm5lbDogcGNpMDogPGJhc2UgcGVyaXBoZXJhbD4gYXQgZGV2 aWNlIDUuMCAobm8gZHJpdmVyIGF0dGFjaGVkKQpEZWMgIDkgMTA6Mjk6NTEgbWt1c2huaXIga2Vy bmVsOiBwY2kwOiA8b2xkLCBub24tVkdBIGRpc3BsYXkgZGV2aWNlPiBhdCBkZXZpY2UgNS4xIChu byBkcml2ZXIgYXR0YWNoZWQpCkRlYyAgOSAxMDoyOTo1MSBta3VzaG5pciBrZXJuZWw6IHBjaTA6 IDxiYXNlIHBlcmlwaGVyYWw+IGF0IGRldmljZSA1LjIgKG5vIGRyaXZlciBhdHRhY2hlZCkKRGVj ICA5IDEwOjI5OjUxIG1rdXNobmlyIGtlcm5lbDogcGNpMDogPG9sZCwgbm9uLVZHQSBkaXNwbGF5 IGRldmljZT4gYXQgZGV2aWNlIDUuMyAobm8gZHJpdmVyIGF0dGFjaGVkKQpEZWMgIDkgMTA6Mjk6 NTEgbWt1c2huaXIga2VybmVsOiBwY2kwOiA8b2xkLCBub24tVkdBIGRpc3BsYXkgZGV2aWNlPiBh dCBkZXZpY2UgNS41IChubyBkcml2ZXIgYXR0YWNoZWQpCkRlYyAgOSAxMDoyOTo1MSBta3VzaG5p ciBrZXJuZWw6IHBjaTA6IDxvbGQsIG5vbi1WR0EgZGlzcGxheSBkZXZpY2U+IGF0IGRldmljZSA1 LjcgKG5vIGRyaXZlciBhdHRhY2hlZCkKRGVjICA5IDEwOjI5OjUxIG1rdXNobmlyIGtlcm5lbDog cGNpYjQ6IDxBQ1BJIFBDSS1QQ0kgYnJpZGdlPiBpcnEgMTYgYXQgZGV2aWNlIDE3LjAgb24gcGNp MApEZWMgIDkgMTA6Mjk6NTEgbWt1c2huaXIga2VybmVsOiBwY2k0OiA8QUNQSSBQQ0kgYnVzPiBv biBwY2liNApEZWMgIDkgMTA6Mjk6NTEgbWt1c2huaXIga2VybmVsOiBwY2kwOiA8c2ltcGxlIGNv bW1zPiBhdCBkZXZpY2UgMjIuMCAobm8gZHJpdmVyIGF0dGFjaGVkKQpEZWMgIDkgMTA6Mjk6NTEg bWt1c2huaXIga2VybmVsOiBlbTA6IDxJbnRlbChSKSBQUk8vMTAwMCBOZXR3b3JrIENvbm5lY3Rp b24gNy4zLjg+IHBvcnQgMHhmMDQwLTB4ZjA1ZiBtZW0gMHhmYmYwMDAwMC0weGZiZjFmZmZmLDB4 ZmJmNDgwMDAtMHhmYmY0OGZmZiBpcnEgMjAgYXQgZGV2aWNlIDI1LjAgb24gcGNpMApEZWMgIDkg MTA6Mjk6NTEgbWt1c2huaXIga2VybmVsOiBlbTA6IFVzaW5nIGFuIE1TSSBpbnRlcnJ1cHQKRGVj ICA5IDEwOjI5OjUxIG1rdXNobmlyIGtlcm5lbDogZW0wOiBFdGhlcm5ldCBhZGRyZXNzOiA3NDpk NDozNToxNTo4ODplYQpEZWMgIDkgMTA6Mjk6NTEgbWt1c2huaXIga2VybmVsOiBlaGNpMDogPEVI Q0kgKGdlbmVyaWMpIFVTQiAyLjAgY29udHJvbGxlcj4gbWVtIDB4ZmJmNDcwMDAtMHhmYmY0NzNm ZiBpcnEgMTYgYXQgZGV2aWNlIDI2LjAgb24gcGNpMApEZWMgIDkgMTA6Mjk6NTEgbWt1c2huaXIg a2VybmVsOiB1c2J1czA6IEVIQ0kgdmVyc2lvbiAxLjAKRGVjICA5IDEwOjI5OjUxIG1rdXNobmly IGtlcm5lbDogdXNidXMwIG9uIGVoY2kwCkRlYyAgOSAxMDoyOTo1MSBta3VzaG5pciBrZXJuZWw6 IGhkYWMxOiA8SW50ZWwgUGF0c2J1cmcgSERBIENvbnRyb2xsZXI+IG1lbSAweGZiZjIwMDAwLTB4 ZmJmMjNmZmYgaXJxIDIyIGF0IGRldmljZSAyNy4wIG9uIHBjaTAKRGVjICA5IDEwOjI5OjUxIG1r dXNobmlyIGtlcm5lbDogcGNpYjU6IDxBQ1BJIFBDSS1QQ0kgYnJpZGdlPiBpcnEgMTcgYXQgZGV2 aWNlIDI4LjAgb24gcGNpMApEZWMgIDkgMTA6Mjk6NTEgbWt1c2huaXIga2VybmVsOiBwY2k1OiA8 QUNQSSBQQ0kgYnVzPiBvbiBwY2liNQpEZWMgIDkgMTA6Mjk6NTEgbWt1c2huaXIga2VybmVsOiBh aGNpMDogPE1hcnZlbGwgODhTRTkxNzIgQUhDSSBTQVRBIGNvbnRyb2xsZXI+IHBvcnQgMHhkMDQw LTB4ZDA0NywweGQwMzAtMHhkMDMzLDB4ZDAyMC0weGQwMjcsMHhkMDEwLTB4ZDAxMywweGQwMDAt MHhkMDBmIG1lbSAweGZiZDEwMDAwLTB4ZmJkMTAxZmYgaXJxIDE2IGF0IGRldmljZSAwLjAgb24g cGNpNQpEZWMgIDkgMTA6Mjk6NTEgbWt1c2huaXIga2VybmVsOiBhaGNpMDogQUhDSSB2MS4wMCB3 aXRoIDIgNkdicHMgcG9ydHMsIFBvcnQgTXVsdGlwbGllciBzdXBwb3J0ZWQgd2l0aCBGQlMKRGVj ICA5IDEwOjI5OjUxIG1rdXNobmlyIGtlcm5lbDogYWhjaTA6IHF1aXJrcz0weDEwMDxOT0JTWVJF Uz4KRGVjICA5IDEwOjI5OjUxIG1rdXNobmlyIGtlcm5lbDogYWhjaWNoMDogPEFIQ0kgY2hhbm5l bD4gYXQgY2hhbm5lbCAwIG9uIGFoY2kwCkRlYyAgOSAxMDoyOTo1MSBta3VzaG5pciBrZXJuZWw6 IGFoY2ljaDE6IDxBSENJIGNoYW5uZWw+IGF0IGNoYW5uZWwgMSBvbiBhaGNpMApEZWMgIDkgMTA6 Mjk6NTEgbWt1c2huaXIga2VybmVsOiBwY2liNjogPEFDUEkgUENJLVBDSSBicmlkZ2U+IGlycSAx NiBhdCBkZXZpY2UgMjguMSBvbiBwY2kwCkRlYyAgOSAxMDoyOTo1MSBta3VzaG5pciBrZXJuZWw6 IHBjaTY6IDxBQ1BJIFBDSSBidXM+IG9uIHBjaWI2CkRlYyAgOSAxMDoyOTo1MSBta3VzaG5pciBr ZXJuZWw6IGFoY2kxOiA8TWFydmVsbCA4OFNFOTE3MiBBSENJIFNBVEEgY29udHJvbGxlcj4gcG9y dCAweGMwNDAtMHhjMDQ3LDB4YzAzMC0weGMwMzMsMHhjMDIwLTB4YzAyNywweGMwMTAtMHhjMDEz LDB4YzAwMC0weGMwMGYgbWVtIDB4ZmJjMTAwMDAtMHhmYmMxMDFmZiBpcnEgMTcgYXQgZGV2aWNl IDAuMCBvbiBwY2k2CkRlYyAgOSAxMDoyOTo1MSBta3VzaG5pciBrZXJuZWw6IGFoY2kxOiBBSENJ IHYxLjAwIHdpdGggMiA2R2JwcyBwb3J0cywgUG9ydCBNdWx0aXBsaWVyIHN1cHBvcnRlZCB3aXRo IEZCUwpEZWMgIDkgMTA6Mjk6NTEgbWt1c2huaXIga2VybmVsOiBhaGNpMTogcXVpcmtzPTB4MTAw PE5PQlNZUkVTPgpEZWMgIDkgMTA6Mjk6NTEgbWt1c2huaXIga2VybmVsOiBhaGNpY2gyOiA8QUhD SSBjaGFubmVsPiBhdCBjaGFubmVsIDAgb24gYWhjaTEKRGVjICA5IDEwOjI5OjUxIG1rdXNobmly IGtlcm5lbDogYWhjaWNoMzogPEFIQ0kgY2hhbm5lbD4gYXQgY2hhbm5lbCAxIG9uIGFoY2kxCkRl YyAgOSAxMDoyOTo1MSBta3VzaG5pciBrZXJuZWw6IHBjaWI3OiA8QUNQSSBQQ0ktUENJIGJyaWRn ZT4gaXJxIDE4IGF0IGRldmljZSAyOC4yIG9uIHBjaTAKRGVjICA5IDEwOjI5OjUxIG1rdXNobmly IGtlcm5lbDogcGNpNzogPEFDUEkgUENJIGJ1cz4gb24gcGNpYjcKRGVjICA5IDEwOjI5OjUxIG1r dXNobmlyIGtlcm5lbDogYWhjaTI6IDxNYXJ2ZWxsIDg4U0U5MTcyIEFIQ0kgU0FUQSBjb250cm9s bGVyPiBwb3J0IDB4YjA0MC0weGIwNDcsMHhiMDMwLTB4YjAzMywweGIwMjAtMHhiMDI3LDB4YjAx MC0weGIwMTMsMHhiMDAwLTB4YjAwZiBtZW0gMHhmYmIxMDAwMC0weGZiYjEwMWZmIGlycSAxOCBh dCBkZXZpY2UgMC4wIG9uIHBjaTcKRGVjICA5IDEwOjI5OjUxIG1rdXNobmlyIGtlcm5lbDogYWhj aTI6IEFIQ0kgdjEuMDAgd2l0aCAyIDZHYnBzIHBvcnRzLCBQb3J0IE11bHRpcGxpZXIgc3VwcG9y dGVkIHdpdGggRkJTCkRlYyAgOSAxMDoyOTo1MSBta3VzaG5pciBrZXJuZWw6IGFoY2kyOiBxdWly a3M9MHgxMDA8Tk9CU1lSRVM+CkRlYyAgOSAxMDoyOTo1MSBta3VzaG5pciBrZXJuZWw6IGFoY2lj aDQ6IDxBSENJIGNoYW5uZWw+IGF0IGNoYW5uZWwgMCBvbiBhaGNpMgpEZWMgIDkgMTA6Mjk6NTEg bWt1c2huaXIga2VybmVsOiBhaGNpY2g1OiA8QUhDSSBjaGFubmVsPiBhdCBjaGFubmVsIDEgb24g YWhjaTIKRGVjICA5IDEwOjI5OjUxIG1rdXNobmlyIGtlcm5lbDogcGNpYjg6IDxBQ1BJIFBDSS1Q Q0kgYnJpZGdlPiBpcnEgMTkgYXQgZGV2aWNlIDI4LjMgb24gcGNpMApEZWMgIDkgMTA6Mjk6NTEg bWt1c2huaXIga2VybmVsOiBwY2k4OiA8QUNQSSBQQ0kgYnVzPiBvbiBwY2liOApEZWMgIDkgMTA6 Mjk6NTEgbWt1c2huaXIga2VybmVsOiBmd29oY2kwOiA8MTM5NCBPcGVuIEhvc3QgQ29udHJvbGxl ciBJbnRlcmZhY2U+IHBvcnQgMHhhMDAwLTB4YTBmZiBtZW0gMHhmYmExMDAwMC0weGZiYTEwN2Zm IGlycSAxOSBhdCBkZXZpY2UgMC4wIG9uIHBjaTgKRGVjICA5IDEwOjI5OjUxIG1rdXNobmlyIGtl cm5lbDogZndvaGNpMDogT0hDSSB2ZXJzaW9uIDEuMCAoUk9NPTEpCkRlYyAgOSAxMDoyOTo1MSBt a3VzaG5pciBrZXJuZWw6IGZ3b2hjaTA6IE5vLiBvZiBJc29jaHJvbm91cyBjaGFubmVscyBpcyA0 LgpEZWMgIDkgMTA6Mjk6NTEgbWt1c2huaXIga2VybmVsOiBmd29oY2kwOiBFVUk2NCBmZjowMDow MDowMDowMDowMDowMDowMApEZWMgIDkgMTA6Mjk6NTEgbWt1c2huaXIga2VybmVsOiBmd29oY2kw OiBQaHkgMTM5NGEgYXZhaWxhYmxlIFM0MDAsIDIgcG9ydHMuCkRlYyAgOSAxMDoyOTo1MSBta3Vz aG5pciBrZXJuZWw6IGZ3b2hjaTA6IExpbmsgUzEwMCwgbWF4X3JlYyAyMDQ4IGJ5dGVzLgpEZWMg IDkgMTA6Mjk6NTEgbWt1c2huaXIga2VybmVsOiBmaXJld2lyZTA6IDxJRUVFMTM5NChGaXJlV2ly ZSkgYnVzPiBvbiBmd29oY2kwCkRlYyAgOSAxMDoyOTo1MSBta3VzaG5pciBrZXJuZWw6IGZ3b2hj aTA6IEluaXRpYXRlIGJ1cyByZXNldApEZWMgIDkgMTA6Mjk6NTEgbWt1c2huaXIga2VybmVsOiBm d29oY2kwOiBmd29oY2lfaW50cl9jb3JlOiBCVVMgcmVzZXQKRGVjICA5IDEwOjI5OjUxIG1rdXNo bmlyIGtlcm5lbDogZndvaGNpMDogZndvaGNpX2ludHJfY29yZTogbm9kZV9pZD0weDAwMDAwMDAw LCBTZWxmSUQgQ291bnQ9MSwgQ1lDTEVNQVNURVIgbW9kZQpEZWMgIDkgMTA6Mjk6NTEgbWt1c2hu aXIga2VybmVsOiBhdGFwY2kwOiA8VklBIEFUQSBjb250cm9sbGVyPiBwb3J0IDB4YTE0MC0weGEx NDcsMHhhMTMwLTB4YTEzMywweGExMjAtMHhhMTI3LDB4YTExMC0weGExMTMsMHhhMTAwLTB4YTEw ZiBpcnEgMTkgYXQgZGV2aWNlIDAuMSBvbiBwY2k4CkRlYyAgOSAxMDoyOTo1MSBta3VzaG5pciBr ZXJuZWw6IGF0YTI6IDxBVEEgY2hhbm5lbD4gYXQgY2hhbm5lbCAwIG9uIGF0YXBjaTAKRGVjICA5 IDEwOjI5OjUxIG1rdXNobmlyIGtlcm5lbDogYXRhMzogPEFUQSBjaGFubmVsPiBhdCBjaGFubmVs IDEgb24gYXRhcGNpMApEZWMgIDkgMTA6Mjk6NTEgbWt1c2huaXIga2VybmVsOiBwY2liOTogPEFD UEkgUENJLVBDSSBicmlkZ2U+IGlycSAxNiBhdCBkZXZpY2UgMjguNSBvbiBwY2kwCkRlYyAgOSAx MDoyOTo1MSBta3VzaG5pciBrZXJuZWw6IHBjaTk6IDxBQ1BJIFBDSSBidXM+IG9uIHBjaWI5CkRl YyAgOSAxMDoyOTo1MSBta3VzaG5pciBrZXJuZWw6IHhoY2kwOiA8WEhDSSAoZ2VuZXJpYykgVVNC IDMuMCBjb250cm9sbGVyPiBtZW0gMHhmYjkwMDAwMC0weGZiOTBmZmZmLDB4ZmI5MTEwMDAtMHhm YjkxMWZmZiwweGZiOTEwMDAwLTB4ZmI5MTBmZmYgaXJxIDE3IGF0IGRldmljZSAwLjAgb24gcGNp OQpEZWMgIDkgMTA6Mjk6NTEgbWt1c2huaXIga2VybmVsOiB4aGNpMDogMzIgYnl0ZSBjb250ZXh0 IHNpemUuCkRlYyAgOSAxMDoyOTo1MSBta3VzaG5pciBrZXJuZWw6IHVzYnVzMSBvbiB4aGNpMApE ZWMgIDkgMTA6Mjk6NTEgbWt1c2huaXIga2VybmVsOiBwY2liMTA6IDxBQ1BJIFBDSS1QQ0kgYnJp ZGdlPiBpcnEgMTggYXQgZGV2aWNlIDI4LjYgb24gcGNpMApEZWMgIDkgMTA6Mjk6NTEgbWt1c2hu aXIga2VybmVsOiBwY2kxMDogPEFDUEkgUENJIGJ1cz4gb24gcGNpYjEwCkRlYyAgOSAxMDoyOTo1 MSBta3VzaG5pciBrZXJuZWw6IHhoY2kxOiA8WEhDSSAoZ2VuZXJpYykgVVNCIDMuMCBjb250cm9s bGVyPiBtZW0gMHhmYjgwMDAwMC0weGZiODBmZmZmLDB4ZmI4MTEwMDAtMHhmYjgxMWZmZiwweGZi ODEwMDAwLTB4ZmI4MTBmZmYgaXJxIDE4IGF0IGRldmljZSAwLjAgb24gcGNpMTAKRGVjICA5IDEw OjI5OjUxIG1rdXNobmlyIGtlcm5lbDogeGhjaTE6IDMyIGJ5dGUgY29udGV4dCBzaXplLgpEZWMg IDkgMTA6Mjk6NTEgbWt1c2huaXIga2VybmVsOiB1c2J1czIgb24geGhjaTEKRGVjICA5IDEwOjI5 OjUxIG1rdXNobmlyIGtlcm5lbDogZWhjaTE6IDxFSENJIChnZW5lcmljKSBVU0IgMi4wIGNvbnRy b2xsZXI+IG1lbSAweGZiZjQ2MDAwLTB4ZmJmNDYzZmYgaXJxIDIzIGF0IGRldmljZSAyOS4wIG9u IHBjaTAKRGVjICA5IDEwOjI5OjUxIG1rdXNobmlyIGtlcm5lbDogdXNidXMzOiBFSENJIHZlcnNp b24gMS4wCkRlYyAgOSAxMDoyOTo1MSBta3VzaG5pciBrZXJuZWw6IHVzYnVzMyBvbiBlaGNpMQpE ZWMgIDkgMTA6Mjk6NTEgbWt1c2huaXIga2VybmVsOiBwY2liMTE6IDxBQ1BJIFBDSS1QQ0kgYnJp ZGdlPiBhdCBkZXZpY2UgMzAuMCBvbiBwY2kwCkRlYyAgOSAxMDoyOTo1MSBta3VzaG5pciBrZXJu ZWw6IHBjaTExOiA8QUNQSSBQQ0kgYnVzPiBvbiBwY2liMTEKRGVjICA5IDEwOjI5OjUxIG1rdXNo bmlyIGtlcm5lbDogcmUwOiA8UmVhbFRlayA4MTY5LzgxNjlTLzgxNjlTQihMKS84MTEwUy84MTEw U0IoTCkgR2lnYWJpdCBFdGhlcm5ldD4gcG9ydCAweDkwMDAtMHg5MGZmIG1lbSAweGZiNzEwMDAw LTB4ZmI3MTAwZmYgaXJxIDE2IGF0IGRldmljZSAwLjAgb24gcGNpMTEKRGVjICA5IDEwOjI5OjUx IG1rdXNobmlyIGtlcm5lbDogcmUwOiBDaGlwIHJldi4gMHgxMDAwMDAwMApEZWMgIDkgMTA6Mjk6 NTEgbWt1c2huaXIga2VybmVsOiByZTA6IE1BQyByZXYuIDB4MDAwMDAwMDAKRGVjICA5IDEwOjI5 OjUxIG1rdXNobmlyIGtlcm5lbDogbWlpYnVzMDogPE1JSSBidXM+IG9uIHJlMApEZWMgIDkgMTA6 Mjk6NTEgbWt1c2huaXIga2VybmVsOiByZ2VwaHkwOiA8UlRMODE2OVMvODExMFMvODIxMSAxMDAw QkFTRS1UIG1lZGlhIGludGVyZmFjZT4gUEhZIDEgb24gbWlpYnVzMApEZWMgIDkgMTA6Mjk6NTEg bWt1c2huaXIga2VybmVsOiByZ2VwaHkwOiAgbm9uZSwgMTBiYXNlVCwgMTBiYXNlVC1GRFgsIDEw YmFzZVQtRkRYLWZsb3csIDEwMGJhc2VUWCwgMTAwYmFzZVRYLUZEWCwgMTAwYmFzZVRYLUZEWC1m bG93LCAxMDAwYmFzZVQsIDEwMDBiYXNlVC1tYXN0ZXIsIDEwMDBiYXNlVC1GRFgsIDEwMDBiYXNl VC1GRFgtbWFzdGVyLCAxMDAwYmFzZVQtRkRYLWZsb3csIDEwMDBiYXNlVC1GRFgtZmxvdy1tYXN0 ZXIsIGF1dG8sIGF1dG8tZmxvdwpEZWMgIDkgMTA6Mjk6NTEgbWt1c2huaXIga2VybmVsOiByZTA6 IEV0aGVybmV0IGFkZHJlc3M6IDE0OmRhOmU5OmYxOjUyOjI2CkRlYyAgOSAxMDoyOTo1MSBta3Vz aG5pciBrZXJuZWw6IGlzYWIwOiA8UENJLUlTQSBicmlkZ2U+IGF0IGRldmljZSAzMS4wIG9uIHBj aTAKRGVjICA5IDEwOjI5OjUxIG1rdXNobmlyIGtlcm5lbDogaXNhMDogPElTQSBidXM+IG9uIGlz YWIwCkRlYyAgOSAxMDoyOTo1MSBta3VzaG5pciBrZXJuZWw6IGFoY2kzOiA8SW50ZWwgUGF0c2J1 cmcgQUhDSSBTQVRBIGNvbnRyb2xsZXI+IHBvcnQgMHhmMDkwLTB4ZjA5NywweGYwODAtMHhmMDgz LDB4ZjA3MC0weGYwNzcsMHhmMDYwLTB4ZjA2MywweGYwMjAtMHhmMDNmIG1lbSAweGZiZjQ1MDAw LTB4ZmJmNDU3ZmYgaXJxIDE5IGF0IGRldmljZSAzMS4yIG9uIHBjaTAKRGVjICA5IDEwOjI5OjUx IG1rdXNobmlyIGtlcm5lbDogYWhjaTM6IEFIQ0kgdjEuMzAgd2l0aCA2IDZHYnBzIHBvcnRzLCBQ b3J0IE11bHRpcGxpZXIgbm90IHN1cHBvcnRlZApEZWMgIDkgMTA6Mjk6NTEgbWt1c2huaXIga2Vy bmVsOiBhaGNpY2g2OiA8QUhDSSBjaGFubmVsPiBhdCBjaGFubmVsIDAgb24gYWhjaTMKRGVjICA5 IDEwOjI5OjUxIG1rdXNobmlyIGtlcm5lbDogYWhjaWNoNzogPEFIQ0kgY2hhbm5lbD4gYXQgY2hh bm5lbCAxIG9uIGFoY2kzCkRlYyAgOSAxMDoyOTo1MSBta3VzaG5pciBrZXJuZWw6IGFoY2llbTA6 IDxBSENJIGVuY2xvc3VyZSBtYW5hZ2VtZW50IGJyaWRnZT4gb24gYWhjaTMKRGVjICA5IDEwOjI5 OjUxIG1rdXNobmlyIGtlcm5lbDogaWNoc21iMDogPEludGVsIFBhdHNidXJnIFNNQnVzIGNvbnRy b2xsZXI+IHBvcnQgMHhmMDAwLTB4ZjAxZiBtZW0gMHhmYmY0NDAwMC0weGZiZjQ0MGZmIGlycSAx OCBhdCBkZXZpY2UgMzEuMyBvbiBwY2kwCkRlYyAgOSAxMDoyOTo1MSBta3VzaG5pciBrZXJuZWw6 IHNtYnVzMDogPFN5c3RlbSBNYW5hZ2VtZW50IEJ1cz4gb24gaWNoc21iMApEZWMgIDkgMTA6Mjk6 NTEgbWt1c2huaXIga2VybmVsOiBzbWIwOiA8U01CdXMgZ2VuZXJpYyBJL08+IG9uIHNtYnVzMApE ZWMgIDkgMTA6Mjk6NTEgbWt1c2huaXIga2VybmVsOiBwY2liMTI6IDxBQ1BJIEhvc3QtUENJIGJy aWRnZT4gb24gYWNwaTAKRGVjICA5IDEwOjI5OjUxIG1rdXNobmlyIGtlcm5lbDogcGNpMjU1OiA8 QUNQSSBQQ0kgYnVzPiBvbiBwY2liMTIKRGVjICA5IDEwOjI5OjUxIG1rdXNobmlyIGtlcm5lbDog cGNpMjU1OiA8YmFzZSBwZXJpcGhlcmFsPiBhdCBkZXZpY2UgOC4wIChubyBkcml2ZXIgYXR0YWNo ZWQpCkRlYyAgOSAxMDoyOTo1MSBta3VzaG5pciBrZXJuZWw6IHBjaTI1NTogPGJhc2UgcGVyaXBo ZXJhbD4gYXQgZGV2aWNlIDguMyAobm8gZHJpdmVyIGF0dGFjaGVkKQpEZWMgIDkgMTA6Mjk6NTEg bWt1c2huaXIga2VybmVsOiBwY2kyNTU6IDxiYXNlIHBlcmlwaGVyYWw+IGF0IGRldmljZSA4LjQg KG5vIGRyaXZlciBhdHRhY2hlZCkKRGVjICA5IDEwOjI5OjUxIG1rdXNobmlyIGtlcm5lbDogcGNp MjU1OiA8YmFzZSBwZXJpcGhlcmFsPiBhdCBkZXZpY2UgOS4wIChubyBkcml2ZXIgYXR0YWNoZWQp CkRlYyAgOSAxMDoyOTo1MSBta3VzaG5pciBrZXJuZWw6IHBjaTI1NTogPGJhc2UgcGVyaXBoZXJh bD4gYXQgZGV2aWNlIDkuMyAobm8gZHJpdmVyIGF0dGFjaGVkKQpEZWMgIDkgMTA6Mjk6NTEgbWt1 c2huaXIga2VybmVsOiBwY2kyNTU6IDxiYXNlIHBlcmlwaGVyYWw+IGF0IGRldmljZSA5LjQgKG5v IGRyaXZlciBhdHRhY2hlZCkKRGVjICA5IDEwOjI5OjUxIG1rdXNobmlyIGtlcm5lbDogcGNpMjU1 OiA8YmFzZSBwZXJpcGhlcmFsPiBhdCBkZXZpY2UgMTAuMCAobm8gZHJpdmVyIGF0dGFjaGVkKQpE ZWMgIDkgMTA6Mjk6NTEgbWt1c2huaXIga2VybmVsOiBwY2kyNTU6IDxiYXNlIHBlcmlwaGVyYWw+ IGF0IGRldmljZSAxMC4xIChubyBkcml2ZXIgYXR0YWNoZWQpCkRlYyAgOSAxMDoyOTo1MSBta3Vz aG5pciBrZXJuZWw6IHBjaTI1NTogPGJhc2UgcGVyaXBoZXJhbD4gYXQgZGV2aWNlIDEwLjIgKG5v IGRyaXZlciBhdHRhY2hlZCkKRGVjICA5IDEwOjI5OjUxIG1rdXNobmlyIGtlcm5lbDogcGNpMjU1 OiA8YmFzZSBwZXJpcGhlcmFsPiBhdCBkZXZpY2UgMTAuMyAobm8gZHJpdmVyIGF0dGFjaGVkKQpE ZWMgIDkgMTA6Mjk6NTEgbWt1c2huaXIga2VybmVsOiBwY2kyNTU6IDxiYXNlIHBlcmlwaGVyYWw+ IGF0IGRldmljZSAxMS4wIChubyBkcml2ZXIgYXR0YWNoZWQpCkRlYyAgOSAxMDoyOTo1MSBta3Vz aG5pciBrZXJuZWw6IHBjaTI1NTogPGJhc2UgcGVyaXBoZXJhbD4gYXQgZGV2aWNlIDExLjMgKG5v IGRyaXZlciBhdHRhY2hlZCkKRGVjICA5IDEwOjI5OjUxIG1rdXNobmlyIGtlcm5lbDogcGNpMjU1 OiA8YmFzZSBwZXJpcGhlcmFsPiBhdCBkZXZpY2UgMTIuMCAobm8gZHJpdmVyIGF0dGFjaGVkKQpE ZWMgIDkgMTA6Mjk6NTEgbWt1c2huaXIga2VybmVsOiBwY2kyNTU6IDxiYXNlIHBlcmlwaGVyYWw+ IGF0IGRldmljZSAxMi4xIChubyBkcml2ZXIgYXR0YWNoZWQpCkRlYyAgOSAxMDoyOTo1MSBta3Vz aG5pciBrZXJuZWw6IHBjaTI1NTogPGJhc2UgcGVyaXBoZXJhbD4gYXQgZGV2aWNlIDEyLjYgKG5v IGRyaXZlciBhdHRhY2hlZCkKRGVjICA5IDEwOjI5OjUxIG1rdXNobmlyIGtlcm5lbDogcGNpMjU1 OiA8YmFzZSBwZXJpcGhlcmFsPiBhdCBkZXZpY2UgMTIuNyAobm8gZHJpdmVyIGF0dGFjaGVkKQpE ZWMgIDkgMTA6Mjk6NTEgbWt1c2huaXIga2VybmVsOiBwY2kyNTU6IDxiYXNlIHBlcmlwaGVyYWw+ IGF0IGRldmljZSAxMy4wIChubyBkcml2ZXIgYXR0YWNoZWQpCkRlYyAgOSAxMDoyOTo1MSBta3Vz aG5pciBrZXJuZWw6IHBjaTI1NTogPGJhc2UgcGVyaXBoZXJhbD4gYXQgZGV2aWNlIDEzLjEgKG5v IGRyaXZlciBhdHRhY2hlZCkKRGVjICA5IDEwOjI5OjUxIG1rdXNobmlyIGtlcm5lbDogcGNpMjU1 OiA8YmFzZSBwZXJpcGhlcmFsPiBhdCBkZXZpY2UgMTMuNiAobm8gZHJpdmVyIGF0dGFjaGVkKQpE ZWMgIDkgMTA6Mjk6NTEgbWt1c2huaXIga2VybmVsOiBwY2kyNTU6IDxiYXNlIHBlcmlwaGVyYWw+ IGF0IGRldmljZSAxNC4wIChubyBkcml2ZXIgYXR0YWNoZWQpCkRlYyAgOSAxMDoyOTo1MSBta3Vz aG5pciBrZXJuZWw6IHBjaTI1NTogPGRhc3A+IGF0IGRldmljZSAxNC4xIChubyBkcml2ZXIgYXR0 YWNoZWQpCkRlYyAgOSAxMDoyOTo1MSBta3VzaG5pciBrZXJuZWw6IHBjaTI1NTogPGJhc2UgcGVy aXBoZXJhbD4gYXQgZGV2aWNlIDE1LjAgKG5vIGRyaXZlciBhdHRhY2hlZCkKRGVjICA5IDEwOjI5 OjUxIG1rdXNobmlyIGtlcm5lbDogcGNpMjU1OiA8YmFzZSBwZXJpcGhlcmFsPiBhdCBkZXZpY2Ug MTUuMSAobm8gZHJpdmVyIGF0dGFjaGVkKQpEZWMgIDkgMTA6Mjk6NTEgbWt1c2huaXIga2VybmVs OiBwY2kyNTU6IDxiYXNlIHBlcmlwaGVyYWw+IGF0IGRldmljZSAxNS4yIChubyBkcml2ZXIgYXR0 YWNoZWQpCkRlYyAgOSAxMDoyOTo1MSBta3VzaG5pciBrZXJuZWw6IHBjaTI1NTogPGJhc2UgcGVy aXBoZXJhbD4gYXQgZGV2aWNlIDE1LjMgKG5vIGRyaXZlciBhdHRhY2hlZCkKRGVjICA5IDEwOjI5 OjUxIG1rdXNobmlyIGtlcm5lbDogcGNpMjU1OiA8YmFzZSBwZXJpcGhlcmFsPiBhdCBkZXZpY2Ug MTUuNCAobm8gZHJpdmVyIGF0dGFjaGVkKQpEZWMgIDkgMTA6Mjk6NTEgbWt1c2huaXIga2VybmVs OiBwY2kyNTU6IDxiYXNlIHBlcmlwaGVyYWw+IGF0IGRldmljZSAxNS41IChubyBkcml2ZXIgYXR0 YWNoZWQpCkRlYyAgOSAxMDoyOTo1MSBta3VzaG5pciBrZXJuZWw6IHBjaTI1NTogPGJhc2UgcGVy aXBoZXJhbD4gYXQgZGV2aWNlIDE1LjYgKG5vIGRyaXZlciBhdHRhY2hlZCkKRGVjICA5IDEwOjI5 OjUxIG1rdXNobmlyIGtlcm5lbDogcGNpMjU1OiA8YmFzZSBwZXJpcGhlcmFsPiBhdCBkZXZpY2Ug MTYuMCAobm8gZHJpdmVyIGF0dGFjaGVkKQpEZWMgIDkgMTA6Mjk6NTEgbWt1c2huaXIga2VybmVs OiBwY2kyNTU6IDxiYXNlIHBlcmlwaGVyYWw+IGF0IGRldmljZSAxNi4xIChubyBkcml2ZXIgYXR0 YWNoZWQpCkRlYyAgOSAxMDoyOTo1MSBta3VzaG5pciBrZXJuZWw6IHBjaTI1NTogPGJhc2UgcGVy aXBoZXJhbD4gYXQgZGV2aWNlIDE2LjIgKG5vIGRyaXZlciBhdHRhY2hlZCkKRGVjICA5IDEwOjI5 OjUxIG1rdXNobmlyIGtlcm5lbDogcGNpMjU1OiA8YmFzZSBwZXJpcGhlcmFsPiBhdCBkZXZpY2Ug MTYuMyAobm8gZHJpdmVyIGF0dGFjaGVkKQpEZWMgIDkgMTA6Mjk6NTEgbWt1c2huaXIga2VybmVs OiBwY2kyNTU6IDxiYXNlIHBlcmlwaGVyYWw+IGF0IGRldmljZSAxNi40IChubyBkcml2ZXIgYXR0 YWNoZWQpCkRlYyAgOSAxMDoyOTo1MSBta3VzaG5pciBrZXJuZWw6IHBjaTI1NTogPGJhc2UgcGVy aXBoZXJhbD4gYXQgZGV2aWNlIDE2LjUgKG5vIGRyaXZlciBhdHRhY2hlZCkKRGVjICA5IDEwOjI5 OjUxIG1rdXNobmlyIGtlcm5lbDogcGNpMjU1OiA8YmFzZSBwZXJpcGhlcmFsPiBhdCBkZXZpY2Ug MTYuNiAobm8gZHJpdmVyIGF0dGFjaGVkKQpEZWMgIDkgMTA6Mjk6NTEgbWt1c2huaXIga2VybmVs OiBwY2kyNTU6IDxiYXNlIHBlcmlwaGVyYWw+IGF0IGRldmljZSAxNi43IChubyBkcml2ZXIgYXR0 YWNoZWQpCkRlYyAgOSAxMDoyOTo1MSBta3VzaG5pciBrZXJuZWw6IHBjaTI1NTogPGJhc2UgcGVy aXBoZXJhbD4gYXQgZGV2aWNlIDE3LjAgKG5vIGRyaXZlciBhdHRhY2hlZCkKRGVjICA5IDEwOjI5 OjUxIG1rdXNobmlyIGtlcm5lbDogcGNpMjU1OiA8YmFzZSBwZXJpcGhlcmFsPiBhdCBkZXZpY2Ug MTkuMCAobm8gZHJpdmVyIGF0dGFjaGVkKQpEZWMgIDkgMTA6Mjk6NTEgbWt1c2huaXIga2VybmVs OiBwY2kyNTU6IDxkYXNwPiBhdCBkZXZpY2UgMTkuMSAobm8gZHJpdmVyIGF0dGFjaGVkKQpEZWMg IDkgMTA6Mjk6NTEgbWt1c2huaXIga2VybmVsOiBwY2kyNTU6IDxkYXNwPiBhdCBkZXZpY2UgMTku NCAobm8gZHJpdmVyIGF0dGFjaGVkKQpEZWMgIDkgMTA6Mjk6NTEgbWt1c2huaXIga2VybmVsOiBw Y2kyNTU6IDxkYXNwPiBhdCBkZXZpY2UgMTkuNSAobm8gZHJpdmVyIGF0dGFjaGVkKQpEZWMgIDkg MTA6Mjk6NTEgbWt1c2huaXIga2VybmVsOiBwY2kyNTU6IDxiYXNlIHBlcmlwaGVyYWw+IGF0IGRl dmljZSAxOS42IChubyBkcml2ZXIgYXR0YWNoZWQpCkRlYyAgOSAxMDoyOTo1MSBta3VzaG5pciBr ZXJuZWw6IGFjcGlfYnV0dG9uMDogPFBvd2VyIEJ1dHRvbj4gb24gYWNwaTAKRGVjICA5IDEwOjI5 OjUxIG1rdXNobmlyIGtlcm5lbDogYXRrYmRjMDogPEtleWJvYXJkIGNvbnRyb2xsZXIgKGk4MDQy KT4gcG9ydCAweDYwLDB4NjQgaXJxIDEgb24gYWNwaTAKRGVjICA5IDEwOjI5OjUxIG1rdXNobmly IGtlcm5lbDogYXRrYmQwOiA8QVQgS2V5Ym9hcmQ+IGlycSAxIG9uIGF0a2JkYzAKRGVjICA5IDEw OjI5OjUxIG1rdXNobmlyIGtlcm5lbDoga2JkMCBhdCBhdGtiZDAKRGVjICA5IDEwOjI5OjUxIG1r dXNobmlyIGtlcm5lbDogYXRrYmQwOiBbR0lBTlQtTE9DS0VEXQpEZWMgIDkgMTA6Mjk6NTEgbWt1 c2huaXIga2VybmVsOiB1YXJ0MDogPDE2NTUwIG9yIGNvbXBhdGlibGU+IHBvcnQgMHgzZjgtMHgz ZmYgaXJxIDQgZmxhZ3MgMHgxMCBvbiBhY3BpMApEZWMgIDkgMTA6Mjk6NTEgbWt1c2huaXIga2Vy bmVsOiBpY2h3ZDAgb24gaXNhMApEZWMgIDkgMTA6Mjk6NTEgbWt1c2huaXIga2VybmVsOiBvcm0w OiA8SVNBIE9wdGlvbiBST01zPiBhdCBpb21lbSAweGMwMDAwLTB4Y2ZmZmYsMHhkMDAwMC0weGQz ZmZmIG9uIGlzYTAKRGVjICA5IDEwOjI5OjUxIG1rdXNobmlyIGtlcm5lbDogc2MwOiA8U3lzdGVt IGNvbnNvbGU+IGF0IGZsYWdzIDB4MTAwIG9uIGlzYTAKRGVjICA5IDEwOjI5OjUxIG1rdXNobmly IGtlcm5lbDogc2MwOiBWR0EgPDE2IHZpcnR1YWwgY29uc29sZXMsIGZsYWdzPTB4MzAwPgpEZWMg IDkgMTA6Mjk6NTEgbWt1c2huaXIga2VybmVsOiB2Z2EwOiA8R2VuZXJpYyBJU0EgVkdBPiBhdCBw b3J0IDB4M2MwLTB4M2RmIGlvbWVtIDB4YTAwMDAtMHhiZmZmZiBvbiBpc2EwCkRlYyAgOSAxMDoy OTo1MSBta3VzaG5pciBrZXJuZWw6IGNvcmV0ZW1wMDogPENQVSBPbi1EaWUgVGhlcm1hbCBTZW5z b3JzPiBvbiBjcHUwCkRlYyAgOSAxMDoyOTo1MSBta3VzaG5pciBrZXJuZWw6IGVzdDA6IDxFbmhh bmNlZCBTcGVlZFN0ZXAgRnJlcXVlbmN5IENvbnRyb2w+IG9uIGNwdTAKRGVjICA5IDEwOjI5OjUx IG1rdXNobmlyIGtlcm5lbDogcDR0Y2MwOiA8Q1BVIEZyZXF1ZW5jeSBUaGVybWFsIENvbnRyb2w+ IG9uIGNwdTAKRGVjICA5IDEwOjI5OjUxIG1rdXNobmlyIGtlcm5lbDogY29yZXRlbXAxOiA8Q1BV IE9uLURpZSBUaGVybWFsIFNlbnNvcnM+IG9uIGNwdTEKRGVjICA5IDEwOjI5OjUxIG1rdXNobmly IGtlcm5lbDogZXN0MTogPEVuaGFuY2VkIFNwZWVkU3RlcCBGcmVxdWVuY3kgQ29udHJvbD4gb24g Y3B1MQpEZWMgIDkgMTA6Mjk6NTEgbWt1c2huaXIga2VybmVsOiBwNHRjYzE6IDxDUFUgRnJlcXVl bmN5IFRoZXJtYWwgQ29udHJvbD4gb24gY3B1MQpEZWMgIDkgMTA6Mjk6NTEgbWt1c2huaXIga2Vy bmVsOiBjb3JldGVtcDI6IDxDUFUgT24tRGllIFRoZXJtYWwgU2Vuc29ycz4gb24gY3B1MgpEZWMg IDkgMTA6Mjk6NTEgbWt1c2huaXIga2VybmVsOiBlc3QyOiA8RW5oYW5jZWQgU3BlZWRTdGVwIEZy ZXF1ZW5jeSBDb250cm9sPiBvbiBjcHUyCkRlYyAgOSAxMDoyOTo1MSBta3VzaG5pciBrZXJuZWw6 IHA0dGNjMjogPENQVSBGcmVxdWVuY3kgVGhlcm1hbCBDb250cm9sPiBvbiBjcHUyCkRlYyAgOSAx MDoyOTo1MSBta3VzaG5pciBrZXJuZWw6IGNvcmV0ZW1wMzogPENQVSBPbi1EaWUgVGhlcm1hbCBT ZW5zb3JzPiBvbiBjcHUzCkRlYyAgOSAxMDoyOTo1MSBta3VzaG5pciBrZXJuZWw6IGVzdDM6IDxF bmhhbmNlZCBTcGVlZFN0ZXAgRnJlcXVlbmN5IENvbnRyb2w+IG9uIGNwdTMKRGVjICA5IDEwOjI5 OjUxIG1rdXNobmlyIGtlcm5lbDogcDR0Y2MzOiA8Q1BVIEZyZXF1ZW5jeSBUaGVybWFsIENvbnRy b2w+IG9uIGNwdTMKRGVjICA5IDEwOjI5OjUxIG1rdXNobmlyIGtlcm5lbDogY29yZXRlbXA0OiA8 Q1BVIE9uLURpZSBUaGVybWFsIFNlbnNvcnM+IG9uIGNwdTQKRGVjICA5IDEwOjI5OjUxIG1rdXNo bmlyIGtlcm5lbDogZXN0NDogPEVuaGFuY2VkIFNwZWVkU3RlcCBGcmVxdWVuY3kgQ29udHJvbD4g b24gY3B1NApEZWMgIDkgMTA6Mjk6NTEgbWt1c2huaXIga2VybmVsOiBwNHRjYzQ6IDxDUFUgRnJl cXVlbmN5IFRoZXJtYWwgQ29udHJvbD4gb24gY3B1NApEZWMgIDkgMTA6Mjk6NTEgbWt1c2huaXIg a2VybmVsOiBjb3JldGVtcDU6IDxDUFUgT24tRGllIFRoZXJtYWwgU2Vuc29ycz4gb24gY3B1NQpE ZWMgIDkgMTA6Mjk6NTEgbWt1c2huaXIga2VybmVsOiBlc3Q1OiA8RW5oYW5jZWQgU3BlZWRTdGVw IEZyZXF1ZW5jeSBDb250cm9sPiBvbiBjcHU1CkRlYyAgOSAxMDoyOTo1MSBta3VzaG5pciBrZXJu ZWw6IHA0dGNjNTogPENQVSBGcmVxdWVuY3kgVGhlcm1hbCBDb250cm9sPiBvbiBjcHU1CkRlYyAg OSAxMDoyOTo1MSBta3VzaG5pciBrZXJuZWw6IGNvcmV0ZW1wNjogPENQVSBPbi1EaWUgVGhlcm1h bCBTZW5zb3JzPiBvbiBjcHU2CkRlYyAgOSAxMDoyOTo1MSBta3VzaG5pciBrZXJuZWw6IGVzdDY6 IDxFbmhhbmNlZCBTcGVlZFN0ZXAgRnJlcXVlbmN5IENvbnRyb2w+IG9uIGNwdTYKRGVjICA5IDEw OjI5OjUxIG1rdXNobmlyIGtlcm5lbDogcDR0Y2M2OiA8Q1BVIEZyZXF1ZW5jeSBUaGVybWFsIENv bnRyb2w+IG9uIGNwdTYKRGVjICA5IDEwOjI5OjUxIG1rdXNobmlyIGtlcm5lbDogY29yZXRlbXA3 OiA8Q1BVIE9uLURpZSBUaGVybWFsIFNlbnNvcnM+IG9uIGNwdTcKRGVjICA5IDEwOjI5OjUxIG1r dXNobmlyIGtlcm5lbDogZXN0NzogPEVuaGFuY2VkIFNwZWVkU3RlcCBGcmVxdWVuY3kgQ29udHJv bD4gb24gY3B1NwpEZWMgIDkgMTA6Mjk6NTEgbWt1c2huaXIga2VybmVsOiBwNHRjYzc6IDxDUFUg RnJlcXVlbmN5IFRoZXJtYWwgQ29udHJvbD4gb24gY3B1NwpEZWMgIDkgMTA6Mjk6NTEgbWt1c2hu aXIga2VybmVsOiBUaW1lY291bnRlcnMgdGljayBldmVyeSAxLjAwMCBtc2VjCkRlYyAgOSAxMDoy OTo1MSBta3VzaG5pciBrZXJuZWw6IGZpcmV3aXJlMDogMSBub2RlcywgbWF4aG9wIDw9IDAgY2Fi bGUgSVJNIGlybSgwKSAgKG1lKSAKRGVjICA5IDEwOjI5OjUxIG1rdXNobmlyIGtlcm5lbDogZmly ZXdpcmUwOiBidXMgbWFuYWdlciAwIApEZWMgIDkgMTA6Mjk6NTEgbWt1c2huaXIga2VybmVsOiBp cGZ3MiAoK2lwdjYpIGluaXRpYWxpemVkLCBkaXZlcnQgZW5hYmxlZCwgbmF0IGxvYWRhYmxlLCBk ZWZhdWx0IHRvIGRlbnksIGxvZ2dpbmcgZGlzYWJsZWQKRGVjICA5IDEwOjI5OjUxIG1rdXNobmly IGtlcm5lbDogRFVNTVlORVQgMCB3aXRoIElQdjYgaW5pdGlhbGl6ZWQgKDEwMDQwOSkKRGVjICA5 IDEwOjI5OjUxIG1rdXNobmlyIGtlcm5lbDogbG9hZF9kbl9zY2hlZCBkbl9zY2hlZCBQUklPIGxv YWRlZApEZWMgIDkgMTA6Mjk6NTEgbWt1c2huaXIga2VybmVsOiBsb2FkX2RuX3NjaGVkIGRuX3Nj aGVkIFFGUSBsb2FkZWQKRGVjICA5IDEwOjI5OjUxIG1rdXNobmlyIGtlcm5lbDogbG9hZF9kbl9z Y2hlZCBkbl9zY2hlZCBSUiBsb2FkZWQKRGVjICA5IDEwOjI5OjUxIG1rdXNobmlyIGtlcm5lbDog bG9hZF9kbl9zY2hlZCBkbl9zY2hlZCBXRjJRKyBsb2FkZWQKRGVjICA5IDEwOjI5OjUxIG1rdXNo bmlyIGtlcm5lbDogbG9hZF9kbl9zY2hlZCBkbl9zY2hlZCBGSUZPIGxvYWRlZApEZWMgIDkgMTA6 Mjk6NTEgbWt1c2huaXIga2VybmVsOiBoZGFjYzA6IDxBVEkgUjZ4eCBIREEgQ09ERUM+IGF0IGNh ZCAwIG9uIGhkYWMwCkRlYyAgOSAxMDoyOTo1MSBta3VzaG5pciBrZXJuZWw6IGhkYWEwOiA8QVRJ IFI2eHggQXVkaW8gRnVuY3Rpb24gR3JvdXA+IGF0IG5pZCAxIG9uIGhkYWNjMApEZWMgIDkgMTA6 Mjk6NTEgbWt1c2huaXIga2VybmVsOiBwY20wOiA8QVRJIFI2eHggKEhETUkpPiBhdCBuaWQgMyBv biBoZGFhMApEZWMgIDkgMTA6Mjk6NTEgbWt1c2huaXIga2VybmVsOiBoZGFjYzE6IDxSZWFsdGVr IEFMQzg5MiBIREEgQ09ERUM+IGF0IGNhZCAyIG9uIGhkYWMxCkRlYyAgOSAxMDoyOTo1MSBta3Vz aG5pciBrZXJuZWw6IGhkYWExOiA8UmVhbHRlayBBTEM4OTIgQXVkaW8gRnVuY3Rpb24gR3JvdXA+ IGF0IG5pZCAxIG9uIGhkYWNjMQpEZWMgIDkgMTA6Mjk6NTEgbWt1c2huaXIga2VybmVsOiBwY20x OiA8UmVhbHRlayBBTEM4OTIgKFJlYXIgQW5hbG9nIDcuMS8yLjApPiBhdCBuaWQgMjAsMjIsMjEs MjMgYW5kIDI0LDI2IG9uIGhkYWExCkRlYyAgOSAxMDoyOTo1MSBta3VzaG5pciBrZXJuZWw6IHBj bTI6IDxSZWFsdGVrIEFMQzg5MiAoRnJvbnQgQW5hbG9nKT4gYXQgbmlkIDI3IGFuZCAyNSBvbiBo ZGFhMQpEZWMgIDkgMTA6Mjk6NTEgbWt1c2huaXIga2VybmVsOiBwY20zOiA8UmVhbHRlayBBTEM4 OTIgKE9uYm9hcmQgRGlnaXRhbCk+IGF0IG5pZCAxNyBvbiBoZGFhMQpEZWMgIDkgMTA6Mjk6NTEg bWt1c2huaXIga2VybmVsOiBwY200OiA8UmVhbHRlayBBTEM4OTIgKFJlYXIgRGlnaXRhbCk+IGF0 IG5pZCAzMCBvbiBoZGFhMQpEZWMgIDkgMTA6Mjk6NTEgbWt1c2huaXIga2VybmVsOiByYW5kb206 IHVuYmxvY2tpbmcgZGV2aWNlLgpEZWMgIDkgMTA6Mjk6NTEgbWt1c2huaXIga2VybmVsOiB1c2J1 czA6IDQ4ME1icHMgSGlnaCBTcGVlZCBVU0IgdjIuMApEZWMgIDkgMTA6Mjk6NTEgbWt1c2huaXIg a2VybmVsOiB1c2J1czE6IDUuMEdicHMgU3VwZXIgU3BlZWQgVVNCIHYzLjAKRGVjICA5IDEwOjI5 OjUxIG1rdXNobmlyIGtlcm5lbDogdXNidXMyOiA1LjBHYnBzIFN1cGVyIFNwZWVkIFVTQiB2My4w CkRlYyAgOSAxMDoyOTo1MSBta3VzaG5pciBrZXJuZWw6IHVzYnVzMzogNDgwTWJwcyBIaWdoIFNw ZWVkIFVTQiB2Mi4wCkRlYyAgOSAxMDoyOTo1MSBta3VzaG5pciBrZXJuZWw6IHVnZW4wLjE6IDxJ bnRlbD4gYXQgdXNidXMwCkRlYyAgOSAxMDoyOTo1MSBta3VzaG5pciBrZXJuZWw6IHVodWIwOiA8 SW50ZWwgRUhDSSByb290IEhVQiwgY2xhc3MgOS8wLCByZXYgMi4wMC8xLjAwLCBhZGRyIDE+IG9u IHVzYnVzMApEZWMgIDkgMTA6Mjk6NTEgbWt1c2huaXIga2VybmVsOiB1Z2VuMy4xOiA8SW50ZWw+ IGF0IHVzYnVzMwpEZWMgIDkgMTA6Mjk6NTEgbWt1c2huaXIga2VybmVsOiB1aHViMTogPEludGVs IEVIQ0kgcm9vdCBIVUIsIGNsYXNzIDkvMCwgcmV2IDIuMDAvMS4wMCwgYWRkciAxPiBvbiB1c2J1 czMKRGVjICA5IDEwOjI5OjUxIG1rdXNobmlyIGtlcm5lbDogdWdlbjIuMTogPDB4MWI3Mz4gYXQg dXNidXMyCkRlYyAgOSAxMDoyOTo1MSBta3VzaG5pciBrZXJuZWw6IHVodWIyOiA8MHgxYjczIFhI Q0kgcm9vdCBIVUIsIGNsYXNzIDkvMCwgcmV2IDMuMDAvMS4wMCwgYWRkciAxPiBvbiB1c2J1czIK RGVjICA5IDEwOjI5OjUxIG1rdXNobmlyIGtlcm5lbDogdWdlbjEuMTogPDB4MWI3Mz4gYXQgdXNi dXMxCkRlYyAgOSAxMDoyOTo1MSBta3VzaG5pciBrZXJuZWw6IHVodWIzOiA8MHgxYjczIFhIQ0kg cm9vdCBIVUIsIGNsYXNzIDkvMCwgcmV2IDMuMDAvMS4wMCwgYWRkciAxPiBvbiB1c2J1czEKRGVj ICA5IDEwOjI5OjUxIG1rdXNobmlyIGtlcm5lbDogdWh1YjI6IDQgcG9ydHMgd2l0aCA0IHJlbW92 YWJsZSwgc2VsZiBwb3dlcmVkCkRlYyAgOSAxMDoyOTo1MSBta3VzaG5pciBrZXJuZWw6IHVodWIz OiA0IHBvcnRzIHdpdGggNCByZW1vdmFibGUsIHNlbGYgcG93ZXJlZApEZWMgIDkgMTA6Mjk6NTEg bWt1c2huaXIga2VybmVsOiBhZGEwIGF0IGFoY2ljaDYgYnVzIDAgc2NidXM4IHRhcmdldCAwIGx1 biAwCkRlYyAgOSAxMDoyOTo1MSBta3VzaG5pciBrZXJuZWw6IGFkYTA6IDxXREMgV0QxMDAyRkFF WC0wMFozQTAgMDUuMDFEMDU+IEFUQS04IFNBVEEgMy54IGRldmljZQpEZWMgIDkgMTA6Mjk6NTEg bWt1c2huaXIga2VybmVsOiBhZGEwOiBTZXJpYWwgTnVtYmVyIFdELVdDQVRSNTExNDkwMgpEZWMg IDkgMTA6Mjk6NTEgbWt1c2huaXIga2VybmVsOiBhZGEwOiA2MDAuMDAwTUIvcyB0cmFuc2ZlcnMg KFNBVEEgMy54LCBVRE1BNiwgUElPIDgxOTJieXRlcykKRGVjICA5IDEwOjI5OjUxIG1rdXNobmly IGtlcm5lbDogYWRhMDogQ29tbWFuZCBRdWV1ZWluZyBlbmFibGVkCkRlYyAgOSAxMDoyOTo1MSBt a3VzaG5pciBrZXJuZWw6IGFkYTA6IDk1Mzg2OU1CICgxOTUzNTI1MTY4IDUxMiBieXRlIHNlY3Rv cnM6IDE2SCA2M1MvVCAxNjM4M0MpCkRlYyAgOSAxMDoyOTo1MSBta3VzaG5pciBrZXJuZWw6IGFk YTA6IFByZXZpb3VzbHkgd2FzIGtub3duIGFzIGFkMjAKRGVjICA5IDEwOjI5OjUxIG1rdXNobmly IGtlcm5lbDogYWRhMSBhdCBhaGNpY2g3IGJ1cyAwIHNjYnVzOSB0YXJnZXQgMCBsdW4gMApEZWMg IDkgMTA6Mjk6NTEgbWt1c2huaXIga2VybmVsOiBhZGExOiA8U1QzMjUwNjIwQVMgMy5BQUM+IEFU QS03IFNBVEEgMS54IGRldmljZQpEZWMgIDkgMTA6Mjk6NTEgbWt1c2huaXIga2VybmVsOiBhZGEx OiBTZXJpYWwgTnVtYmVyIDVRRTBKWFpMCkRlYyAgOSAxMDoyOTo1MSBta3VzaG5pciBrZXJuZWw6 IGFkYTE6IDE1MC4wMDBNQi9zIHRyYW5zZmVycyAoU0FUQSAxLngsIFVETUE2LCBQSU8gODE5MmJ5 dGVzKQpEZWMgIDkgMTA6Mjk6NTEgbWt1c2huaXIga2VybmVsOiBhZGExOiBDb21tYW5kIFF1ZXVl aW5nIGVuYWJsZWQKRGVjICA5IDEwOjI5OjUxIG1rdXNobmlyIGtlcm5lbDogYWRhMTogMjM4NDc1 TUIgKDQ4ODM5NzE2OCA1MTIgYnl0ZSBzZWN0b3JzOiAxNkggNjNTL1QgMTYzODNDKQpEZWMgIDkg MTA6Mjk6NTEgbWt1c2huaXIga2VybmVsOiBhZGExOiBQcmV2aW91c2x5IHdhcyBrbm93biBhcyBh ZDIyCkRlYyAgOSAxMDoyOTo1MSBta3VzaG5pciBrZXJuZWw6IHBhc3MyIGF0IGFoY2llbTAgYnVz IDAgc2NidXMxMCB0YXJnZXQgMCBsdW4gMApEZWMgIDkgMTA6Mjk6NTEgbWt1c2huaXIga2VybmVs OiBwYXNzMjogPEFIQ0kgU0dQSU8gRW5jbG9zdXJlIDEuMDAgMDAwMT4gU0VNQiBTLUUtUyAyLjAw IGRldmljZQpEZWMgIDkgMTA6Mjk6NTEgbWt1c2huaXIga2VybmVsOiBOZXR2c2MgaW5pdGlhbGl6 aW5nLi4uIFNNUDogQVAgQ1BVICMxIExhdW5jaGVkIQpEZWMgIDkgMTA6Mjk6NTEgbWt1c2huaXIg a2VybmVsOiBTTVA6IEFQIENQVSAjMyBMYXVuY2hlZCEKRGVjICA5IDEwOjI5OjUxIG1rdXNobmly IGtlcm5lbDogU01QOiBBUCBDUFUgIzUgTGF1bmNoZWQhCkRlYyAgOSAxMDoyOTo1MSBta3VzaG5p ciBrZXJuZWw6IFNNUDogQVAgQ1BVICM3IExhdW5jaGVkIQpEZWMgIDkgMTA6Mjk6NTEgbWt1c2hu aXIga2VybmVsOiBTTVA6IEFQIENQVSAjNCBMYXVuY2hlZCEKRGVjICA5IDEwOjI5OjUxIG1rdXNo bmlyIGtlcm5lbDogU01QOiBBUCBDUFUgIzIgTGF1bmNoZWQhCkRlYyAgOSAxMDoyOTo1MSBta3Vz aG5pciBrZXJuZWw6IFNNUDogQVAgQ1BVICM2IExhdW5jaGVkIQpEZWMgIDkgMTA6Mjk6NTEgbWt1 c2huaXIga2VybmVsOiBXQVJOSU5HOiBXSVRORVNTIG9wdGlvbiBlbmFibGVkLCBleHBlY3QgcmVk dWNlZCBwZXJmb3JtYW5jZS4KRGVjICA5IDEwOjI5OjUxIG1rdXNobmlyIGtlcm5lbDogdWh1YjA6 IDIgcG9ydHMgd2l0aCAyIHJlbW92YWJsZSwgc2VsZiBwb3dlcmVkCkRlYyAgOSAxMDoyOTo1MSBt a3VzaG5pciBrZXJuZWw6IHVodWIxOiAyIHBvcnRzIHdpdGggMiByZW1vdmFibGUsIHNlbGYgcG93 ZXJlZApEZWMgIDkgMTA6Mjk6NTEgbWt1c2huaXIga2VybmVsOiBSb290IG1vdW50IHdhaXRpbmcg Zm9yOiB1c2J1czMgdXNidXMwCkRlYyAgOSAxMDoyOTo1MSBta3VzaG5pciBrZXJuZWw6IHVnZW4w LjI6IDx2ZW5kb3IgMHg4MDg3PiBhdCB1c2J1czAKRGVjICA5IDEwOjI5OjUxIG1rdXNobmlyIGtl cm5lbDogdWh1YjQ6IDx2ZW5kb3IgMHg4MDg3IHByb2R1Y3QgMHgwMDI0LCBjbGFzcyA5LzAsIHJl diAyLjAwLzAuMDAsIGFkZHIgMj4gb24gdXNidXMwCkRlYyAgOSAxMDoyOTo1MSBta3VzaG5pciBr ZXJuZWw6IHVnZW4zLjI6IDx2ZW5kb3IgMHg4MDg3PiBhdCB1c2J1czMKRGVjICA5IDEwOjI5OjUx IG1rdXNobmlyIGtlcm5lbDogdWh1YjU6IDx2ZW5kb3IgMHg4MDg3IHByb2R1Y3QgMHgwMDI0LCBj bGFzcyA5LzAsIHJldiAyLjAwLzAuMDAsIGFkZHIgMj4gb24gdXNidXMzCkRlYyAgOSAxMDoyOTo1 MSBta3VzaG5pciBrZXJuZWw6IHVodWI0OiA2IHBvcnRzIHdpdGggNiByZW1vdmFibGUsIHNlbGYg cG93ZXJlZApEZWMgIDkgMTA6Mjk6NTEgbWt1c2huaXIga2VybmVsOiBSb290IG1vdW50IHdhaXRp bmcgZm9yOiB1c2J1czMgdXNidXMwCkRlYyAgOSAxMDoyOTo1MSBta3VzaG5pciBrZXJuZWw6IHVo dWI1OiA4IHBvcnRzIHdpdGggOCByZW1vdmFibGUsIHNlbGYgcG93ZXJlZApEZWMgIDkgMTA6Mjk6 NTEgbWt1c2huaXIga2VybmVsOiB1Z2VuMC4zOiA8dmVuZG9yIDB4MDRkOT4gYXQgdXNidXMwCkRl YyAgOSAxMDoyOTo1MSBta3VzaG5pciBrZXJuZWw6IFRyeWluZyB0byBtb3VudCByb290IGZyb20g dWZzOi9kZXYvYWRhMHMxYSBbXS4uLgpEZWMgIDkgMTA6Mjk6NTEgbWt1c2huaXIga2VybmVsOiBs b2NrIG9yZGVyIHJldmVyc2FsOgpEZWMgIDkgMTA6Mjk6NTEgbWt1c2huaXIga2VybmVsOiAxc3Qg MHhmZmZmZjgwMDBmODMzOWEwIHVmcyAodWZzKSBAIC91c3Ivc3JjL3N5cy9rZXJuL3Zmc19tb3Vu dC5jOjg1MQpEZWMgIDkgMTA6Mjk6NTEgbWt1c2huaXIga2VybmVsOiAybmQgMHhmZmZmZjgwMDBm ODMzN2M4IGRldmZzIChkZXZmcykgQCAvdXNyL3NyYy9zeXMva2Vybi92ZnNfc3Vici5jOjIxMDEK RGVjICA5IDEwOjI5OjUxIG1rdXNobmlyIGtlcm5lbDogS0RCOiBzdGFjayBiYWNrdHJhY2U6CkRl YyAgOSAxMDoyOTo1MSBta3VzaG5pciBrZXJuZWw6IGRiX3RyYWNlX3NlbGZfd3JhcHBlcigpIGF0 IGRiX3RyYWNlX3NlbGZfd3JhcHBlcisweDJiL2ZyYW1lIDB4ZmZmZmZlMDBkOTdiOTI5MApEZWMg IDkgMTA6Mjk6NTEgbWt1c2huaXIga2VybmVsOiBrZGJfYmFja3RyYWNlKCkgYXQga2RiX2JhY2t0 cmFjZSsweDM5L2ZyYW1lIDB4ZmZmZmZlMDBkOTdiOTM0MApEZWMgIDkgMTA6Mjk6NTEgbWt1c2hu aXIga2VybmVsOiB3aXRuZXNzX2NoZWNrb3JkZXIoKSBhdCB3aXRuZXNzX2NoZWNrb3JkZXIrMHhk M2EvZnJhbWUgMHhmZmZmZmUwMGQ5N2I5M2QwCkRlYyAgOSAxMDoyOTo1MSBta3VzaG5pciBrZXJu ZWw6IF9fbG9ja21ncl9hcmdzKCkgYXQgX19sb2NrbWdyX2FyZ3MrMHg4NmMvZnJhbWUgMHhmZmZm ZmUwMGQ5N2I5NTAwCkRlYyAgOSAxMDoyOTo1MSBta3VzaG5pciBrZXJuZWw6IHZvcF9zdGRsb2Nr KCkgYXQgdm9wX3N0ZGxvY2srMHgzYy9mcmFtZSAweGZmZmZmZTAwZDk3Yjk1MjAKRGVjICA5IDEw OjI5OjUxIG1rdXNobmlyIGtlcm5lbDogVk9QX0xPQ0sxX0FQVigpIGF0IFZPUF9MT0NLMV9BUFYr MHhmNS9mcmFtZSAweGZmZmZmZTAwZDk3Yjk1NTAKRGVjICA5IDEwOjI5OjUxIG1rdXNobmlyIGtl cm5lbDogX3ZuX2xvY2soKSBhdCBfdm5fbG9jaysweGFiL2ZyYW1lIDB4ZmZmZmZlMDBkOTdiOTVj MApEZWMgIDkgMTA6Mjk6NTEgbWt1c2huaXIga2VybmVsOiB2Z2V0KCkgYXQgdmdldCsweDcwL2Zy YW1lIDB4ZmZmZmZlMDBkOTdiOTYxMApEZWMgIDkgMTA6Mjk6NTEgbWt1c2huaXIga2VybmVsOiBk ZXZmc19hbGxvY3YoKSBhdCBkZXZmc19hbGxvY3YrMHhmZC9mcmFtZSAweGZmZmZmZTAwZDk3Yjk2 NjAKRGVjICA5IDEwOjI5OjUxIG1rdXNobmlyIGtlcm5lbDogZGV2ZnNfcm9vdCgpIGF0IGRldmZz X3Jvb3QrMHg0My9mcmFtZSAweGZmZmZmZTAwZDk3Yjk2OTAKRGVjICA5IDEwOjI5OjUxIG1rdXNo bmlyIGtlcm5lbDogdmZzX2Rvbm1vdW50KCkgYXQgdmZzX2Rvbm1vdW50KzB4MTE1ZS9mcmFtZSAw eGZmZmZmZTAwZDk3Yjk5NjAKRGVjICA5IDEwOjI5OjUxIG1rdXNobmlyIGtlcm5lbDogc3lzX25t b3VudCgpIGF0IHN5c19ubW91bnQrMHg3Mi9mcmFtZSAweGZmZmZmZTAwZDk3Yjk5YTAKRGVjICA5 IDEwOjI5OjUxIG1rdXNobmlyIGtlcm5lbDogYW1kNjRfc3lzY2FsbCgpIGF0IGFtZDY0X3N5c2Nh bGwrMHgyNjUvZnJhbWUgMHhmZmZmZmUwMGQ5N2I5YWIwCkRlYyAgOSAxMDoyOTo1MSBta3VzaG5p ciBrZXJuZWw6IFhmYXN0X3N5c2NhbGwoKSBhdCBYZmFzdF9zeXNjYWxsKzB4ZmIvZnJhbWUgMHhm ZmZmZmUwMGQ5N2I5YWIwCkRlYyAgOSAxMDoyOTo1MSBta3VzaG5pciBrZXJuZWw6IC0tLSBzeXNj YWxsICgzNzgsIEZyZWVCU0QgRUxGNjQsIHN5c19ubW91bnQpLCByaXAgPSAweDgwMGE5ZTIxYSwg cnNwID0gMHg3ZmZmZmZmZmNjYzgsIHJicCA9IDB4N2ZmZmZmZmZkMjMwIC0tLQpEZWMgIDkgMTA6 Mjk6NTEgbWt1c2huaXIga2VybmVsOiB1bXMwOiA8dmVuZG9yIDB4MDRkOSBwcm9kdWN0IDB4MDQ5 OSwgY2xhc3MgMC8wLCByZXYgMS4xMC8yLjkwLCBhZGRyIDM+IG9uIHVzYnVzMApEZWMgIDkgMTA6 Mjk6NTEgbWt1c2huaXIga2VybmVsOiB1bXMwOiAzIGJ1dHRvbnMgYW5kIFtYWVpdIGNvb3JkaW5h dGVzIElEPTAKRGVjICA5IDEwOjI5OjUxIG1rdXNobmlyIGtlcm5lbDogV0FSTklORzogYXR0ZW1w dCB0byBkb21haW5fYWRkKG5ldGdyYXBoKSBhZnRlciBkb21haW5maW5hbGl6ZSgpCkRlYyAgOSAx MDoyOTo1MSBta3VzaG5pciBrZXJuZWw6IGxvY2sgb3JkZXIgcmV2ZXJzYWw6CkRlYyAgOSAxMDoy OTo1MSBta3VzaG5pciBrZXJuZWw6IDFzdCAweGZmZmZmZTAwNDA0MjZkYTAgYnVmd2FpdCAoYnVm d2FpdCkgQCAvdXNyL3NyYy9zeXMva2Vybi92ZnNfYmlvLmM6MzA4MQpEZWMgIDkgMTA6Mjk6NTEg bWt1c2huaXIga2VybmVsOiAybmQgMHhmZmZmZjgwMDBmNDJhNDAwIGRpcmhhc2ggKGRpcmhhc2gp IEAgL3Vzci9zcmMvc3lzL3Vmcy91ZnMvdWZzX2Rpcmhhc2guYzoyODQKRGVjICA5IDEwOjI5OjUx IG1rdXNobmlyIGtlcm5lbDogS0RCOiBzdGFjayBiYWNrdHJhY2U6CkRlYyAgOSAxMDoyOTo1MSBt a3VzaG5pciBrZXJuZWw6IGRiX3RyYWNlX3NlbGZfd3JhcHBlcigpIGF0IGRiX3RyYWNlX3NlbGZf d3JhcHBlcisweDJiL2ZyYW1lIDB4ZmZmZmZlMDBkOTgwNDI3MApEZWMgIDkgMTA6Mjk6NTEgbWt1 c2huaXIga2VybmVsOiBrZGJfYmFja3RyYWNlKCkgYXQga2RiX2JhY2t0cmFjZSsweDM5L2ZyYW1l IDB4ZmZmZmZlMDBkOTgwNDMyMApEZWMgIDkgMTA6Mjk6NTEgbWt1c2huaXIga2VybmVsOiB3aXRu ZXNzX2NoZWNrb3JkZXIoKSBhdCB3aXRuZXNzX2NoZWNrb3JkZXIrMHhkM2EvZnJhbWUgMHhmZmZm ZmUwMGQ5ODA0M2IwCkRlYyAgOSAxMDoyOTo1MSBta3VzaG5pciBrZXJuZWw6IF9zeF94bG9jaygp IGF0IF9zeF94bG9jaysweDc1L2ZyYW1lIDB4ZmZmZmZlMDBkOTgwNDNmMApEZWMgIDkgMTA6Mjk6 NTEgbWt1c2huaXIga2VybmVsOiB1ZnNkaXJoYXNoX2FkZCgpIGF0IHVmc2Rpcmhhc2hfYWRkKzB4 M2IvZnJhbWUgMHhmZmZmZmUwMGQ5ODA0NDMwCkRlYyAgOSAxMDoyOTo1MSBta3VzaG5pciBrZXJu ZWw6IHVmc19kaXJlbnRlcigpIGF0IHVmc19kaXJlbnRlcisweDY1Yy9mcmFtZSAweGZmZmZmZTAw ZDk4MDQ0ZjAKRGVjICA5IDEwOjI5OjUxIG1rdXNobmlyIGtlcm5lbDogdWZzX21ha2Vpbm9kZSgp IGF0IHVmc19tYWtlaW5vZGUrMHg1NzMvZnJhbWUgMHhmZmZmZmUwMGQ5ODA0NmIwCkRlYyAgOSAx MDoyOTo1MSBta3VzaG5pciBrZXJuZWw6IFZPUF9DUkVBVEVfQVBWKCkgYXQgVk9QX0NSRUFURV9B UFYrMHhlYS9mcmFtZSAweGZmZmZmZTAwZDk4MDQ2ZTAKRGVjICA5IDEwOjI5OjUxIG1rdXNobmly IGtlcm5lbDogdm5fb3Blbl9jcmVkKCkgYXQgdm5fb3Blbl9jcmVkKzB4MzAwL2ZyYW1lIDB4ZmZm ZmZlMDBkOTgwNDgzMApEZWMgIDkgMTA6Mjk6NTEgbWt1c2huaXIga2VybmVsOiBrZXJuX29wZW5h dCgpIGF0IGtlcm5fb3BlbmF0KzB4MjYxL2ZyYW1lIDB4ZmZmZmZlMDBkOTgwNDlhMApEZWMgIDkg MTA6Mjk6NTEgbWt1c2huaXIga2VybmVsOiBhbWQ2NF9zeXNjYWxsKCkgYXQgYW1kNjRfc3lzY2Fs bCsweDI2NS9mcmFtZSAweGZmZmZmZTAwZDk4MDRhYjAKRGVjICA5IDEwOjI5OjUxIG1rdXNobmly IGtlcm5lbDogWGZhc3Rfc3lzY2FsbCgpIGF0IFhmYXN0X3N5c2NhbGwrMHhmYi9mcmFtZSAweGZm ZmZmZTAwZDk4MDRhYjAKRGVjICA5IDEwOjI5OjUxIG1rdXNobmlyIGtlcm5lbDogLS0tIHN5c2Nh bGwgKDUsIEZyZWVCU0QgRUxGNjQsIHN5c19vcGVuKSwgcmlwID0gMHg4MDA5M2ViNWEsIHJzcCA9 IDB4N2ZmZmZmZmZkOWY4LCByYnAgPSAweDdmZmZmZmZmZGEzMCAtLS0KRGVjICA5IDEwOjMxOjA3 IG1rdXNobmlyIGtlcm5lbDogaW5mbzogW2RybV0gSW5pdGlhbGl6ZWQgZHJtIDEuMS4wIDIwMDYw ODEwCkRlYyAgOSAxMDozMTowNyBta3VzaG5pciBrZXJuZWw6IGRybW4wOiA8QVRJIFJhZGVvbiBI RCA0MzUwPiBvbiB2Z2FwY2kwCkRlYyAgOSAxMDozMTowNyBta3VzaG5pciBrZXJuZWw6IGluZm86 IFtkcm1dIE1TSSBlbmFibGVkIDEgbWVzc2FnZShzKQpEZWMgIDkgMTA6MzE6MDcgbWt1c2huaXIg a2VybmVsOiBpbmZvOiBbZHJtXSBSQURFT05fSVNfUENJRQpEZWMgIDkgMTA6MzE6MDcgbWt1c2hu aXIga2VybmVsOiBpbmZvOiBbZHJtXSBpbml0aWFsaXppbmcga2VybmVsIG1vZGVzZXR0aW5nIChS VjcxMCAweDEwMDI6MHg5NTRGIDB4MTA0MzoweDAzNTQpLgpEZWMgIDkgMTA6MzE6MDcgbWt1c2hu aXIga2VybmVsOiBpbmZvOiBbZHJtXSByZWdpc3RlciBtbWlvIGJhc2U6IDB4RkJFMjAwMDAKRGVj ICA5IDEwOjMxOjA3IG1rdXNobmlyIGtlcm5lbDogaW5mbzogW2RybV0gcmVnaXN0ZXIgbW1pbyBz aXplOiA2NTUzNgpEZWMgIDkgMTA6MzE6MDcgbWt1c2huaXIga2VybmVsOiBpbmZvOiBbZHJtXSBy YWRlb25fYXRybV9nZXRfYmlvczogPT09PiBUcnkgQVRSTS4uLgpEZWMgIDkgMTA6MzE6MDcgbWt1 c2huaXIga2VybmVsOiBpbmZvOiBbZHJtXSByYWRlb25fYXRybV9nZXRfYmlvczogcGNpX2ZpbmRf Y2xhc3MoKSBmb3VuZDogMDoyOjA6MCwgdmVuZG9yPTEwMDIsIGRldmljZT05NTRmCkRlYyAgOSAx MDozMTowNyBta3VzaG5pciBrZXJuZWw6IGluZm86IFtkcm1dIHJhZGVvbl9hdHJtX2dldF9iaW9z OiBHZXQgQUNQSSBkZXZpY2UgaGFuZGxlCkRlYyAgOSAxMDozMTowNyBta3VzaG5pciBrZXJuZWw6 IGluZm86IFtkcm1dIHJhZGVvbl9hY3BpX3ZmY3RfYmlvczogPT09PiBUcnkgVkZDVC4uLgpEZWMg IDkgMTA6MzE6MDcgbWt1c2huaXIga2VybmVsOiBpbmZvOiBbZHJtXSByYWRlb25fYWNwaV92ZmN0 X2Jpb3M6IEdldCAiVkZDVCIgQUNQSSB0YWJsZQpEZWMgIDkgMTA6MzE6MDcgbWt1c2huaXIga2Vy bmVsOiBpbmZvOiBbZHJtXSByYWRlb25fYWNwaV92ZmN0X2Jpb3M6IEZhaWxlZCB0byBnZXQgIlZG Q1QiIHRhYmxlOiBBRV9OT1RfRk9VTkQKRGVjICA5IDEwOjMxOjA3IG1rdXNobmlyIGtlcm5lbDog aW5mbzogW2RybV0gaWdwX3JlYWRfYmlvc19mcm9tX3ZyYW06ID09PT4gVHJ5IElHUCdzIFZSQU0u Li4KRGVjICA5IDEwOjMxOjA3IG1rdXNobmlyIGtlcm5lbDogaW5mbzogW2RybV0gaWdwX3JlYWRf Ymlvc19mcm9tX3ZyYW06IFZSQU0gYmFzZSBhZGRyZXNzOiAweGUwMDAwMDAwCkRlYyAgOSAxMDoz MTowNyBta3VzaG5pciBrZXJuZWw6IGluZm86IFtkcm1dIGlncF9yZWFkX2Jpb3NfZnJvbV92cmFt OiBNYXAgYWRkcmVzczogMHhmZmZmZjgwMGUwMDAwMDAwICgyNjIxNDQgYnl0ZXMpCkRlYyAgOSAx MDozMTowNyBta3VzaG5pciBrZXJuZWw6IGluZm86IFtkcm1dIGlncF9yZWFkX2Jpb3NfZnJvbV92 cmFtOiBJbmNvcnJlY3QgQklPUyBzaWduYXR1cmU6IDB4MjA3MApEZWMgIDkgMTA6MzE6MDcgbWt1 c2huaXIga2VybmVsOiBpbmZvOiBbZHJtXSByYWRlb25fcmVhZF9iaW9zOiA9PT0+IFRyeSBQQ0kg RXhwYW5zaW9uIFJPTS4uLgpEZWMgIDkgMTA6MzE6MDcgbWt1c2huaXIga2VybmVsOiBpbmZvOiBb ZHJtXSByYWRlb25fcmVhZF9iaW9zOiBNYXAgYWRkcmVzczogMHhmZmZmZjgwMDAwMGMwMDAwICgx MzEwNzIgYnl0ZXMpCkRlYyAgOSAxMDozMTowNyBta3VzaG5pciBrZXJuZWw6IGluZm86IFtkcm1d IEFUT00gQklPUzogOTU0Ri4xMS4yMi42LjAuQVMwNApEZWMgIDkgMTA6MzE6MDcgbWt1c2huaXIg a2VybmVsOiBkcm1uMDogaW5mbzogVlJBTTogMTAyNE0gMHgwMDAwMDAwMDAwMDAwMDAwIC0gMHgw MDAwMDAwMDNGRkZGRkZGICgxMDI0TSB1c2VkKQpEZWMgIDkgMTA6MzE6MDcgbWt1c2huaXIga2Vy bmVsOiBkcm1uMDogaW5mbzogR1RUOiA1MTJNIDB4MDAwMDAwMDA0MDAwMDAwMCAtIDB4MDAwMDAw MDA1RkZGRkZGRgpEZWMgIDkgMTA6MzE6MDcgbWt1c2huaXIga2VybmVsOiBpbmZvOiBbZHJtXSBE ZXRlY3RlZCBWUkFNIFJBTT0xMDI0TSwgQkFSPTI1Nk0KRGVjICA5IDEwOjMxOjA3IG1rdXNobmly IGtlcm5lbDogaW5mbzogW2RybV0gUkFNIHdpZHRoIDY0Yml0cyBERFIKRGVjICA5IDEwOjMxOjA3 IG1rdXNobmlyIGtlcm5lbDogW1RUTV0gWm9uZSAga2VybmVsOiBBdmFpbGFibGUgZ3JhcGhpY3Mg bWVtb3J5OiAxNjcyMTI2NCBraUIKRGVjICA5IDEwOjMxOjA3IG1rdXNobmlyIGtlcm5lbDogW1RU TV0gWm9uZSAgIGRtYTMyOiBBdmFpbGFibGUgZ3JhcGhpY3MgbWVtb3J5OiAyMDk3MTUyIGtpQgpE ZWMgIDkgMTA6MzE6MDcgbWt1c2huaXIga2VybmVsOiBbVFRNXSBJbml0aWFsaXppbmcgcG9vbCBh bGxvY2F0b3IKRGVjICA5IDEwOjMxOjA3IG1rdXNobmlyIGtlcm5lbDogaW5mbzogW2RybV0gcmFk ZW9uOiAxMDI0TSBvZiBWUkFNIG1lbW9yeSByZWFkeQpEZWMgIDkgMTA6MzE6MDcgbWt1c2huaXIg a2VybmVsOiBpbmZvOiBbZHJtXSByYWRlb246IDUxMk0gb2YgR1RUIG1lbW9yeSByZWFkeS4KRGVj ICA5IDEwOjMxOjA3IG1rdXNobmlyIGtlcm5lbDogaW5mbzogW2RybV0gU3VwcG9ydHMgdmJsYW5r IHRpbWVzdGFtcCBjYWNoaW5nIFJldiAxICgxMC4xMC4yMDEwKS4KRGVjICA5IDEwOjMxOjA3IG1r dXNobmlyIGtlcm5lbDogaW5mbzogW2RybV0gRHJpdmVyIHN1cHBvcnRzIHByZWNpc2UgdmJsYW5r IHRpbWVzdGFtcCBxdWVyeS4KRGVjICA5IDEwOjMxOjA3IG1rdXNobmlyIGtlcm5lbDogaW5mbzog W2RybV0gcmFkZW9uOiBpcnEgaW5pdGlhbGl6ZWQuCkRlYyAgOSAxMDozMTowNyBta3VzaG5pciBr ZXJuZWw6IGluZm86IFtkcm1dIEdBUlQ6IG51bSBjcHUgcGFnZXMgMTMxMDcyLCBudW0gZ3B1IHBh Z2VzIDEzMTA3MgpEZWMgIDkgMTA6MzE6MDcgbWt1c2huaXIga2VybmVsOiBpbmZvOiBbZHJtXSBw cm9iaW5nIGdlbiAyIGNhcHMgZm9yIGRldmljZSA4MDg2OjNjMDQgPSAzL2UKRGVjICA5IDEwOjMx OjA3IG1rdXNobmlyIGtlcm5lbDogaW5mbzogW2RybV0gZW5hYmxpbmcgUENJRSBnZW4gMiBsaW5r IHNwZWVkcywgZGlzYWJsZSB3aXRoIHJhZGVvbi5wY2llX2dlbjI9MApEZWMgIDkgMTA6MzE6MDcg bWt1c2huaXIga2VybmVsOiBpbmZvOiBbZHJtXSBMb2FkaW5nIFJWNzEwIE1pY3JvY29kZQpEZWMg IDkgMTA6MzE6MDcgbWt1c2huaXIga2VybmVsOiBpbmZvOiBbZHJtXSBQQ0lFIEdBUlQgb2YgNTEy TSBlbmFibGVkICh0YWJsZSBhdCAweDAwMDAwMDAwMDAwNDAwMDApLgpEZWMgIDkgMTA6MzE6MDcg bWt1c2huaXIga2VybmVsOiBkcm1uMDogaW5mbzogV0IgZW5hYmxlZApEZWMgIDkgMTA6MzE6MDcg bWt1c2huaXIga2VybmVsOiBkcm1uMDogaW5mbzogZmVuY2UgZHJpdmVyIG9uIHJpbmcgMCB1c2Ug Z3B1IGFkZHIgMHgwMDAwMDAwMDQwMDAwYzAwIGFuZCBjcHUgYWRkciAweDB4ZmZmZmY4MDE1YTUw M2MwMApEZWMgIDkgMTA6MzE6MDcgbWt1c2huaXIga2VybmVsOiBkcm1uMDogaW5mbzogZmVuY2Ug ZHJpdmVyIG9uIHJpbmcgMyB1c2UgZ3B1IGFkZHIgMHgwMDAwMDAwMDQwMDAwYzBjIGFuZCBjcHUg YWRkciAweDB4ZmZmZmY4MDE1YTUwM2MwYwpEZWMgIDkgMTA6MzE6MDcgbWt1c2huaXIga2VybmVs OiBpbmZvOiBbZHJtXSByaW5nIHRlc3Qgb24gMCBzdWNjZWVkZWQgaW4gMSB1c2VjcwpEZWMgIDkg MTA6MzE6MDcgbWt1c2huaXIga2VybmVsOiBpbmZvOiBbZHJtXSByaW5nIHRlc3Qgb24gMyBzdWNj ZWVkZWQgaW4gMSB1c2VjcwpEZWMgIDkgMTA6MzE6MDcgbWt1c2huaXIga2VybmVsOiBpbmZvOiBb ZHJtXSBpYiB0ZXN0IG9uIHJpbmcgMCBzdWNjZWVkZWQgaW4gMCB1c2VjcwpEZWMgIDkgMTA6MzE6 MDcgbWt1c2huaXIga2VybmVsOiBpbmZvOiBbZHJtXSBpYiB0ZXN0IG9uIHJpbmcgMyBzdWNjZWVk ZWQgaW4gMCB1c2VjcwpEZWMgIDkgMTA6MzE6MDcgbWt1c2huaXIga2VybmVsOiBpbmZvOiBbZHJt XSByYWRlb25fZGV2aWNlX2luaXQ6IFRha2luZyBvdmVyIHRoZSBmaWN0aXRpb3VzIHJhbmdlIDB4 ZTAwMDAwMDAtMHhmMDAwMDAwMApEZWMgIDkgMTA6MzE6MDcgbWt1c2huaXIga2VybmVsOiBpaWNi dXMwOiA8UGhpbGlwcyBJMkMgYnVzPiBvbiBpaWNiYjAgYWRkciAweGZmCkRlYyAgOSAxMDozMTow NyBta3VzaG5pciBrZXJuZWw6IGlpYzA6IDxJMkMgZ2VuZXJpYyBJL08+IG9uIGlpY2J1czAKRGVj ICA5IDEwOjMxOjA3IG1rdXNobmlyIGtlcm5lbDogaWljYnVzMTogPFBoaWxpcHMgSTJDIGJ1cz4g b24gaWljYmIxIGFkZHIgMHhmZgpEZWMgIDkgMTA6MzE6MDcgbWt1c2huaXIga2VybmVsOiBpaWMx OiA8STJDIGdlbmVyaWMgSS9PPiBvbiBpaWNidXMxCkRlYyAgOSAxMDozMTowNyBta3VzaG5pciBr ZXJuZWw6IGlpY2J1czI6IDxQaGlsaXBzIEkyQyBidXM+IG9uIGlpY2JiMiBhZGRyIDB4ZmYKRGVj ICA5IDEwOjMxOjA3IG1rdXNobmlyIGtlcm5lbDogaWljMjogPEkyQyBnZW5lcmljIEkvTz4gb24g aWljYnVzMgpEZWMgIDkgMTA6MzE6MDcgbWt1c2huaXIga2VybmVsOiBpaWNidXMzOiA8UGhpbGlw cyBJMkMgYnVzPiBvbiBpaWNiYjMgYWRkciAweGZmCkRlYyAgOSAxMDozMTowNyBta3VzaG5pciBr ZXJuZWw6IGlpYzM6IDxJMkMgZ2VuZXJpYyBJL08+IG9uIGlpY2J1czMKRGVjICA5IDEwOjMxOjA3 IG1rdXNobmlyIGtlcm5lbDogaWljYnVzNDogPFBoaWxpcHMgSTJDIGJ1cz4gb24gaWljYmI0IGFk ZHIgMHhmZgpEZWMgIDkgMTA6MzE6MDcgbWt1c2huaXIga2VybmVsOiBpaWM0OiA8STJDIGdlbmVy aWMgSS9PPiBvbiBpaWNidXM0CkRlYyAgOSAxMDozMTowNyBta3VzaG5pciBrZXJuZWw6IGlpY2J1 czU6IDxQaGlsaXBzIEkyQyBidXM+IG9uIGlpY2JiNSBhZGRyIDB4ZmYKRGVjICA5IDEwOjMxOjA3 IG1rdXNobmlyIGtlcm5lbDogaWljNTogPEkyQyBnZW5lcmljIEkvTz4gb24gaWljYnVzNQpEZWMg IDkgMTA6MzE6MDcgbWt1c2huaXIga2VybmVsOiBpaWNidXM2OiA8UGhpbGlwcyBJMkMgYnVzPiBv biBpaWNiYjYgYWRkciAweGZmCkRlYyAgOSAxMDozMTowNyBta3VzaG5pciBrZXJuZWw6IGlpYzY6 IDxJMkMgZ2VuZXJpYyBJL08+IG9uIGlpY2J1czYKRGVjICA5IDEwOjMxOjA3IG1rdXNobmlyIGtl cm5lbDogaW5mbzogW2RybV0gUmFkZW9uIERpc3BsYXkgQ29ubmVjdG9ycwpEZWMgIDkgMTA6MzE6 MDcgbWt1c2huaXIga2VybmVsOiBpbmZvOiBbZHJtXSBDb25uZWN0b3IgMDoKRGVjICA5IDEwOjMx OjA3IG1rdXNobmlyIGtlcm5lbDogaW5mbzogW2RybV0gICBIRE1JLUEtMQpEZWMgIDkgMTA6MzE6 MDcgbWt1c2huaXIga2VybmVsOiBpbmZvOiBbZHJtXSAgIEhQRDEKRGVjICA5IDEwOjMxOjA3IG1r dXNobmlyIGtlcm5lbDogaW5mbzogW2RybV0gICBEREM6IDB4N2U1MCAweDdlNTAgMHg3ZTU0IDB4 N2U1NCAweDdlNTggMHg3ZTU4IDB4N2U1YyAweDdlNWMKRGVjICA5IDEwOjMxOjA3IG1rdXNobmly IGtlcm5lbDogaW5mbzogW2RybV0gICBFbmNvZGVyczoKRGVjICA5IDEwOjMxOjA3IG1rdXNobmly IGtlcm5lbDogaW5mbzogW2RybV0gICAgIERGUDE6IElOVEVSTkFMX1VOSVBIWQpEZWMgIDkgMTA6 MzE6MDcgbWt1c2huaXIga2VybmVsOiBpbmZvOiBbZHJtXSBDb25uZWN0b3IgMToKRGVjICA5IDEw OjMxOjA3IG1rdXNobmlyIGtlcm5lbDogaW5mbzogW2RybV0gICBWR0EtMQpEZWMgIDkgMTA6MzE6 MDcgbWt1c2huaXIga2VybmVsOiBpbmZvOiBbZHJtXSAgIEREQzogMHg3ZTQwIDB4N2U0MCAweDdl NDQgMHg3ZTQ0IDB4N2U0OCAweDdlNDggMHg3ZTRjIDB4N2U0YwpEZWMgIDkgMTA6MzE6MDcgbWt1 c2huaXIga2VybmVsOiBpbmZvOiBbZHJtXSAgIEVuY29kZXJzOgpEZWMgIDkgMTA6MzE6MDcgbWt1 c2huaXIga2VybmVsOiBpbmZvOiBbZHJtXSAgICAgQ1JUMjogSU5URVJOQUxfS0xEU0NQX0RBQzIK RGVjICA5IDEwOjMxOjA3IG1rdXNobmlyIGtlcm5lbDogaW5mbzogW2RybV0gQ29ubmVjdG9yIDI6 CkRlYyAgOSAxMDozMTowNyBta3VzaG5pciBrZXJuZWw6IGluZm86IFtkcm1dICAgRFZJLUktMQpE ZWMgIDkgMTA6MzE6MDcgbWt1c2huaXIga2VybmVsOiBpbmZvOiBbZHJtXSAgIEhQRDQKRGVjICA5 IDEwOjMxOjA3IG1rdXNobmlyIGtlcm5lbDogaW5mbzogW2RybV0gICBEREM6IDB4N2YxMCAweDdm MTAgMHg3ZjE0IDB4N2YxNCAweDdmMTggMHg3ZjE4IDB4N2YxYyAweDdmMWMKRGVjICA5IDEwOjMx OjA3IG1rdXNobmlyIGtlcm5lbDogaW5mbzogW2RybV0gICBFbmNvZGVyczoKRGVjICA5IDEwOjMx OjA3IG1rdXNobmlyIGtlcm5lbDogaW5mbzogW2RybV0gICAgIENSVDE6IElOVEVSTkFMX0tMRFND UF9EQUMxCkRlYyAgOSAxMDozMTowNyBta3VzaG5pciBrZXJuZWw6IGluZm86IFtkcm1dICAgICBE RlAyOiBJTlRFUk5BTF9VTklQSFkyCkRlYyAgOSAxMDozMTowNyBta3VzaG5pciBrZXJuZWw6IGlu Zm86IFtkcm1dIEludGVybmFsIHRoZXJtYWwgY29udHJvbGxlciB3aXRob3V0IGZhbiBjb250cm9s CkRlYyAgOSAxMDozMTowNyBta3VzaG5pciBrZXJuZWw6IGluZm86IFtkcm1dIHJhZGVvbjogcG93 ZXIgbWFuYWdlbWVudCBpbml0aWFsaXplZApEZWMgIDkgMTA6MzE6MDcgbWt1c2huaXIga2VybmVs OiBpbmZvOiBbZHJtXSBmYiBtYXBwYWJsZSBhdCAweEUwMTQyMDAwCkRlYyAgOSAxMDozMTowNyBt a3VzaG5pciBrZXJuZWw6IGluZm86IFtkcm1dIHZyYW0gYXBwZXIgYXQgMHhFMDAwMDAwMApEZWMg IDkgMTA6MzE6MDcgbWt1c2huaXIga2VybmVsOiBpbmZvOiBbZHJtXSBzaXplIDgyOTQ0MDAKRGVj ICA5IDEwOjMxOjA3IG1rdXNobmlyIGtlcm5lbDogaW5mbzogW2RybV0gZmIgZGVwdGggaXMgMjQK RGVjICA5IDEwOjMxOjA3IG1rdXNobmlyIGtlcm5lbDogaW5mbzogW2RybV0gICAgcGl0Y2ggaXMg NzY4MApEZWMgIDkgMTA6MzE6MDcgbWt1c2huaXIga2VybmVsOiBlcnJvcjogW2RybTpwaWQxNzM4 OmRybV9mYl9oZWxwZXJfc2luZ2xlX2ZiX3Byb2JlXSAqRVJST1IqIEZhaWxlZCB0byBhdHRhY2gg ZmJkIGRldmljZTogNgpEZWMgIDkgMTA6MzE6MDcgbWt1c2huaXIga2VybmVsOiBpbmZvOiBbZHJt XSBJbml0aWFsaXplZCByYWRlb24gMi4yOS4wIDIwMDgwNTI4Cg== --e89a8f2356bdd4e41304ed1635fa Content-Type: application/octet-stream; name="pciconf.lvbce" Content-Disposition: attachment; filename="pciconf.lvbce" Content-Transfer-Encoding: base64 X-Attachment-Id: f_hozhlpir2 aG9zdGIwQHBjaTA6MDowOjA6CWNsYXNzPTB4MDYwMDAwIGNhcmQ9MHg1MDAwMTQ1OCBjaGlwPTB4 M2MwMDgwODYgcmV2PTB4MDcgaGRyPTB4MDAKICAgIHZlbmRvciAgICAgPSAnSW50ZWwgQ29ycG9y YXRpb24nCiAgICBkZXZpY2UgICAgID0gJ1hlb24gRTUvQ29yZSBpNyBETUkyJwogICAgY2xhc3Mg ICAgICA9IGJyaWRnZQogICAgc3ViY2xhc3MgICA9IEhPU1QtUENJCiAgICBjYXAgMTBbOTBdID0g UENJLUV4cHJlc3MgMiByb290IHBvcnQgbWF4IGRhdGEgMTI4KDEyOCkgbGluayB4MCh4NCkKICAg ICAgICAgICAgICAgICBzcGVlZCAwLjAoMi41KSBBU1BNIGRpc2FibGVkKEwwcy9MMSkKICAgIGNh cCAwMVtlMF0gPSBwb3dlcnNwZWMgMyAgc3VwcG9ydHMgRDAgRDMgIGN1cnJlbnQgRDAKICAgIGVj YXAgMDAwYlsxMDBdID0gVmVuZG9yIDEgSUQgMgogICAgZWNhcCAwMDBiWzE0NF0gPSBWZW5kb3Ig MSBJRCA0CiAgICBlY2FwIDAwMGJbMWQwXSA9IFZlbmRvciAxIElEIDMKICAgIGVjYXAgMDAwYlsy ODBdID0gVmVuZG9yIDEgSUQgNAogICAgUENJIGVycm9ycyA9IFNlbnQgVGFyZ2V0LUFib3J0CnBj aWIxQHBjaTA6MDoxOjA6CWNsYXNzPTB4MDYwNDAwIGNhcmQ9MHg1MDAwMTQ1OCBjaGlwPTB4M2Mw MjgwODYgcmV2PTB4MDcgaGRyPTB4MDEKICAgIHZlbmRvciAgICAgPSAnSW50ZWwgQ29ycG9yYXRp b24nCiAgICBkZXZpY2UgICAgID0gJ1hlb24gRTUvQ29yZSBpNyBJSU8gUENJIEV4cHJlc3MgUm9v dCBQb3J0IDFhJwogICAgY2xhc3MgICAgICA9IGJyaWRnZQogICAgc3ViY2xhc3MgICA9IFBDSS1Q Q0kKICAgIGNhcCAwZFs0MF0gPSBQQ0kgQnJpZGdlIGNhcmQ9MHg1MDAwMTQ1OAogICAgY2FwIDA1 WzYwXSA9IE1TSSBzdXBwb3J0cyAyIG1lc3NhZ2VzLCB2ZWN0b3IgbWFza3MgCiAgICBjYXAgMTBb OTBdID0gUENJLUV4cHJlc3MgMiByb290IHBvcnQgc2xvdCBtYXggZGF0YSAxMjgoMjU2KSBsaW5r IHgwKHg4KQogICAgICAgICAgICAgICAgIHNwZWVkIDAuMCg4LjApIEFTUE0gZGlzYWJsZWQoTDEp CiAgICBjYXAgMDFbZTBdID0gcG93ZXJzcGVjIDMgIHN1cHBvcnRzIEQwIEQzICBjdXJyZW50IEQw CiAgICBlY2FwIDAwMGJbMTAwXSA9IFZlbmRvciAxIElEIDIKICAgIGVjYXAgMDAwZFsxMTBdID0g QUNTIDEKICAgIGVjYXAgMDAwMVsxNDhdID0gQUVSIDEgMCBmYXRhbCAwIG5vbi1mYXRhbCAwIGNv cnJlY3RlZAogICAgZWNhcCAwMDBiWzFkMF0gPSBWZW5kb3IgMSBJRCAzCiAgICBlY2FwIDAwMTlb MjUwXSA9IFBDSWUgU2VjIDEgbGFuZSBlcnJvcnMgMAogICAgZWNhcCAwMDBiWzI4MF0gPSBWZW5k b3IgMSBJRCA0Cm5vbmUwQHBjaTA6MDoxOjI6CWNsYXNzPTB4MDAwMDAwIGNhcmQ9MHgwMDAwMDAw MCBjaGlwPTB4MDAwMDAwMDAgcmV2PTB4MDAgaGRyPTB4MDAKICAgIGNsYXNzICAgICAgPSBvbGQK ICAgIHN1YmNsYXNzICAgPSBub24tVkdBIGRpc3BsYXkgZGV2aWNlCm5vbmUxQHBjaTA6MDoxOjM6 CWNsYXNzPTB4MDAwMDAwIGNhcmQ9MHgwMDAwMDAwMCBjaGlwPTB4MDAwMDAwMDAgcmV2PTB4MDAg aGRyPTB4MDAKICAgIGNsYXNzICAgICAgPSBvbGQKICAgIHN1YmNsYXNzICAgPSBub24tVkdBIGRp c3BsYXkgZGV2aWNlCm5vbmUyQHBjaTA6MDoxOjQ6CWNsYXNzPTB4MDAwMDAwIGNhcmQ9MHgwMDAw MDAwMCBjaGlwPTB4MDAwMDAwMDAgcmV2PTB4MDAgaGRyPTB4MDAKICAgIGNsYXNzICAgICAgPSBv bGQKICAgIHN1YmNsYXNzICAgPSBub24tVkdBIGRpc3BsYXkgZGV2aWNlCm5vbmUzQHBjaTA6MDox OjU6CWNsYXNzPTB4MDAwMDAwIGNhcmQ9MHgwMDAwMDAwMCBjaGlwPTB4MDAwMDAwMDAgcmV2PTB4 MDAgaGRyPTB4MDAKICAgIGNsYXNzICAgICAgPSBvbGQKICAgIHN1YmNsYXNzICAgPSBub24tVkdB IGRpc3BsYXkgZGV2aWNlCm5vbmU0QHBjaTA6MDoxOjY6CWNsYXNzPTB4MDAwMDAwIGNhcmQ9MHgw MDAwMDAwMCBjaGlwPTB4MDAwMDAwMDAgcmV2PTB4MDAgaGRyPTB4MDAKICAgIGNsYXNzICAgICAg PSBvbGQKICAgIHN1YmNsYXNzICAgPSBub24tVkdBIGRpc3BsYXkgZGV2aWNlCm5vbmU1QHBjaTA6 MDoxOjc6CWNsYXNzPTB4MDAwMDAwIGNhcmQ9MHgwMDAwMDAwMCBjaGlwPTB4MDAwMDAwMDAgcmV2 PTB4MDAgaGRyPTB4MDAKICAgIGNsYXNzICAgICAgPSBvbGQKICAgIHN1YmNsYXNzICAgPSBub24t VkdBIGRpc3BsYXkgZGV2aWNlCnBjaWIyQHBjaTA6MDoyOjA6CWNsYXNzPTB4MDYwNDAwIGNhcmQ9 MHg1MDAwMTQ1OCBjaGlwPTB4M2MwNDgwODYgcmV2PTB4MDcgaGRyPTB4MDEKICAgIHZlbmRvciAg ICAgPSAnSW50ZWwgQ29ycG9yYXRpb24nCiAgICBkZXZpY2UgICAgID0gJ1hlb24gRTUvQ29yZSBp NyBJSU8gUENJIEV4cHJlc3MgUm9vdCBQb3J0IDJhJwogICAgY2xhc3MgICAgICA9IGJyaWRnZQog ICAgc3ViY2xhc3MgICA9IFBDSS1QQ0kKICAgIGNhcCAwZFs0MF0gPSBQQ0kgQnJpZGdlIGNhcmQ9 MHg1MDAwMTQ1OAogICAgY2FwIDA1WzYwXSA9IE1TSSBzdXBwb3J0cyAyIG1lc3NhZ2VzLCB2ZWN0 b3IgbWFza3MgCiAgICBjYXAgMTBbOTBdID0gUENJLUV4cHJlc3MgMiByb290IHBvcnQgc2xvdCBt YXggZGF0YSAxMjgoMjU2KSBsaW5rIHgxNih4MTYpCiAgICAgICAgICAgICAgICAgc3BlZWQgMi41 KDguMCkgQVNQTSBkaXNhYmxlZChMMSkKICAgIGNhcCAwMVtlMF0gPSBwb3dlcnNwZWMgMyAgc3Vw cG9ydHMgRDAgRDMgIGN1cnJlbnQgRDAKICAgIGVjYXAgMDAwYlsxMDBdID0gVmVuZG9yIDEgSUQg MgogICAgZWNhcCAwMDBkWzExMF0gPSBBQ1MgMQogICAgZWNhcCAwMDAxWzE0OF0gPSBBRVIgMSAw IGZhdGFsIDAgbm9uLWZhdGFsIDAgY29ycmVjdGVkCiAgICBlY2FwIDAwMGJbMWQwXSA9IFZlbmRv ciAxIElEIDMKICAgIGVjYXAgMDAxOVsyNTBdID0gUENJZSBTZWMgMSBsYW5lIGVycm9ycyAwCiAg ICBlY2FwIDAwMGJbMjgwXSA9IFZlbmRvciAxIElEIDQKbm9uZTZAcGNpMDowOjI6NDoJY2xhc3M9 MHgwMDAwMDAgY2FyZD0weDAwMDAwMDAwIGNoaXA9MHgwMDAwMDAwMCByZXY9MHgwMCBoZHI9MHgw MAogICAgY2xhc3MgICAgICA9IG9sZAogICAgc3ViY2xhc3MgICA9IG5vbi1WR0EgZGlzcGxheSBk ZXZpY2UKbm9uZTdAcGNpMDowOjI6NToJY2xhc3M9MHgwMDAwMDAgY2FyZD0weDAwMDAwMDAwIGNo aXA9MHgwMDAwMDAwMCByZXY9MHgwMCBoZHI9MHgwMAogICAgY2xhc3MgICAgICA9IG9sZAogICAg c3ViY2xhc3MgICA9IG5vbi1WR0EgZGlzcGxheSBkZXZpY2UKbm9uZThAcGNpMDowOjI6NjoJY2xh c3M9MHgwMDAwMDAgY2FyZD0weDAwMDAwMDAwIGNoaXA9MHgwMDAwMDAwMCByZXY9MHgwMCBoZHI9 MHgwMAogICAgY2xhc3MgICAgICA9IG9sZAogICAgc3ViY2xhc3MgICA9IG5vbi1WR0EgZGlzcGxh eSBkZXZpY2UKbm9uZTlAcGNpMDowOjI6NzoJY2xhc3M9MHgwMDAwMDAgY2FyZD0weDAwMDAwMDAw IGNoaXA9MHgwMDAwMDAwMCByZXY9MHgwMCBoZHI9MHgwMAogICAgY2xhc3MgICAgICA9IG9sZAog ICAgc3ViY2xhc3MgICA9IG5vbi1WR0EgZGlzcGxheSBkZXZpY2UKcGNpYjNAcGNpMDowOjM6MDoJ Y2xhc3M9MHgwNjA0MDAgY2FyZD0weDUwMDAxNDU4IGNoaXA9MHgzYzA4ODA4NiByZXY9MHgwNyBo ZHI9MHgwMQogICAgdmVuZG9yICAgICA9ICdJbnRlbCBDb3Jwb3JhdGlvbicKICAgIGRldmljZSAg ICAgPSAnWGVvbiBFNS9Db3JlIGk3IElJTyBQQ0kgRXhwcmVzcyBSb290IFBvcnQgM2EgaW4gUENJ IEV4cHJlc3MgTW9kZScKICAgIGNsYXNzICAgICAgPSBicmlkZ2UKICAgIHN1YmNsYXNzICAgPSBQ Q0ktUENJCiAgICBjYXAgMGRbNDBdID0gUENJIEJyaWRnZSBjYXJkPTB4NTAwMDE0NTgKICAgIGNh cCAwNVs2MF0gPSBNU0kgc3VwcG9ydHMgMiBtZXNzYWdlcywgdmVjdG9yIG1hc2tzIAogICAgY2Fw IDEwWzkwXSA9IFBDSS1FeHByZXNzIDIgcm9vdCBwb3J0IHNsb3QgbWF4IGRhdGEgMTI4KDI1Nikg bGluayB4MCh4MTYpCiAgICAgICAgICAgICAgICAgc3BlZWQgMC4wKDguMCkgQVNQTSBkaXNhYmxl ZChMMSkKICAgIGNhcCAwMVtlMF0gPSBwb3dlcnNwZWMgMyAgc3VwcG9ydHMgRDAgRDMgIGN1cnJl bnQgRDAKICAgIGVjYXAgMDAwYlsxMDBdID0gVmVuZG9yIDEgSUQgMgogICAgZWNhcCAwMDBkWzEx MF0gPSBBQ1MgMQogICAgZWNhcCAwMDAxWzE0OF0gPSBBRVIgMSAwIGZhdGFsIDAgbm9uLWZhdGFs IDAgY29ycmVjdGVkCiAgICBlY2FwIDAwMGJbMWQwXSA9IFZlbmRvciAxIElEIDMKICAgIGVjYXAg MDAxOVsyNTBdID0gUENJZSBTZWMgMSBsYW5lIGVycm9ycyAwCiAgICBlY2FwIDAwMGJbMjgwXSA9 IFZlbmRvciAxIElEIDQKbm9uZTEwQHBjaTA6MDozOjQ6CWNsYXNzPTB4MDAwMDAwIGNhcmQ9MHgw MDAwMDAwMCBjaGlwPTB4MDAwMDAwMDAgcmV2PTB4MDAgaGRyPTB4MDAKICAgIGNsYXNzICAgICAg PSBvbGQKICAgIHN1YmNsYXNzICAgPSBub24tVkdBIGRpc3BsYXkgZGV2aWNlCm5vbmUxMUBwY2kw OjA6Mzo1OgljbGFzcz0weDAwMDAwMCBjYXJkPTB4MDAwMDAwMDAgY2hpcD0weDAwMDAwMDAwIHJl dj0weDAwIGhkcj0weDAwCiAgICBjbGFzcyAgICAgID0gb2xkCiAgICBzdWJjbGFzcyAgID0gbm9u LVZHQSBkaXNwbGF5IGRldmljZQpub25lMTJAcGNpMDowOjM6NjoJY2xhc3M9MHgwMDAwMDAgY2Fy ZD0weDAwMDAwMDAwIGNoaXA9MHgwMDAwMDAwMCByZXY9MHgwMCBoZHI9MHgwMAogICAgY2xhc3Mg ICAgICA9IG9sZAogICAgc3ViY2xhc3MgICA9IG5vbi1WR0EgZGlzcGxheSBkZXZpY2UKbm9uZTEz QHBjaTA6MDozOjc6CWNsYXNzPTB4MDAwMDAwIGNhcmQ9MHgwMDAwMDAwMCBjaGlwPTB4MDAwMDAw MDAgcmV2PTB4MDAgaGRyPTB4MDAKICAgIGNsYXNzICAgICAgPSBvbGQKICAgIHN1YmNsYXNzICAg PSBub24tVkdBIGRpc3BsYXkgZGV2aWNlCm5vbmUxNEBwY2kwOjA6NDowOgljbGFzcz0weDA4ODAw MCBjYXJkPTB4M2MyMDgwODYgY2hpcD0weDNjMjA4MDg2IHJldj0weDA3IGhkcj0weDAwCiAgICB2 ZW5kb3IgICAgID0gJ0ludGVsIENvcnBvcmF0aW9uJwogICAgZGV2aWNlICAgICA9ICdYZW9uIEU1 L0NvcmUgaTcgRE1BIENoYW5uZWwgMCcKICAgIGNsYXNzICAgICAgPSBiYXNlIHBlcmlwaGVyYWwK ICAgIGJhciAgIFsxMF0gPSB0eXBlIE1lbW9yeSwgcmFuZ2UgNjQsIGJhc2UgMHhmYmY0MDAwMCwg c2l6ZSAxNjM4NCwgZW5hYmxlZAogICAgY2FwIDExWzgwXSA9IE1TSS1YIHN1cHBvcnRzIDEgbWVz c2FnZQogICAgICAgICAgICAgICAgIFRhYmxlIGluIG1hcCAweDEwWzB4MjAwMF0sIFBCQSBpbiBt YXAgMHgxMFsweDMwMDBdCiAgICBjYXAgMTBbOTBdID0gUENJLUV4cHJlc3MgMiByb290IGVuZHBv aW50IG1heCBkYXRhIDEyOCgxMjgpIGxpbmsgeDAoeDApCiAgICBjYXAgMDFbZTBdID0gcG93ZXJz cGVjIDMgIHN1cHBvcnRzIEQwIEQzICBjdXJyZW50IEQwCm5vbmUxNUBwY2kwOjA6NDoxOgljbGFz cz0weDA4ODAwMCBjYXJkPTB4M2MyMTgwODYgY2hpcD0weDNjMjE4MDg2IHJldj0weDA3IGhkcj0w eDAwCiAgICB2ZW5kb3IgICAgID0gJ0ludGVsIENvcnBvcmF0aW9uJwogICAgZGV2aWNlICAgICA9 ICdYZW9uIEU1L0NvcmUgaTcgRE1BIENoYW5uZWwgMScKICAgIGNsYXNzICAgICAgPSBiYXNlIHBl cmlwaGVyYWwKICAgIGJhciAgIFsxMF0gPSB0eXBlIE1lbW9yeSwgcmFuZ2UgNjQsIGJhc2UgMHhm YmYzYzAwMCwgc2l6ZSAxNjM4NCwgZW5hYmxlZAogICAgY2FwIDExWzgwXSA9IE1TSS1YIHN1cHBv cnRzIDEgbWVzc2FnZQogICAgICAgICAgICAgICAgIFRhYmxlIGluIG1hcCAweDEwWzB4MjAwMF0s IFBCQSBpbiBtYXAgMHgxMFsweDMwMDBdCiAgICBjYXAgMTBbOTBdID0gUENJLUV4cHJlc3MgMiBy b290IGVuZHBvaW50IG1heCBkYXRhIDEyOCgxMjgpIGxpbmsgeDAoeDApCiAgICBjYXAgMDFbZTBd ID0gcG93ZXJzcGVjIDMgIHN1cHBvcnRzIEQwIEQzICBjdXJyZW50IEQwCm5vbmUxNkBwY2kwOjA6 NDoyOgljbGFzcz0weDA4ODAwMCBjYXJkPTB4M2MyMjgwODYgY2hpcD0weDNjMjI4MDg2IHJldj0w eDA3IGhkcj0weDAwCiAgICB2ZW5kb3IgICAgID0gJ0ludGVsIENvcnBvcmF0aW9uJwogICAgZGV2 aWNlICAgICA9ICdYZW9uIEU1L0NvcmUgaTcgRE1BIENoYW5uZWwgMicKICAgIGNsYXNzICAgICAg PSBiYXNlIHBlcmlwaGVyYWwKICAgIGJhciAgIFsxMF0gPSB0eXBlIE1lbW9yeSwgcmFuZ2UgNjQs IGJhc2UgMHhmYmYzODAwMCwgc2l6ZSAxNjM4NCwgZW5hYmxlZAogICAgY2FwIDExWzgwXSA9IE1T SS1YIHN1cHBvcnRzIDEgbWVzc2FnZQogICAgICAgICAgICAgICAgIFRhYmxlIGluIG1hcCAweDEw WzB4MjAwMF0sIFBCQSBpbiBtYXAgMHgxMFsweDMwMDBdCiAgICBjYXAgMTBbOTBdID0gUENJLUV4 cHJlc3MgMiByb290IGVuZHBvaW50IG1heCBkYXRhIDEyOCgxMjgpIGxpbmsgeDAoeDApCiAgICBj YXAgMDFbZTBdID0gcG93ZXJzcGVjIDMgIHN1cHBvcnRzIEQwIEQzICBjdXJyZW50IEQwCm5vbmUx N0BwY2kwOjA6NDozOgljbGFzcz0weDA4ODAwMCBjYXJkPTB4M2MyMzgwODYgY2hpcD0weDNjMjM4 MDg2IHJldj0weDA3IGhkcj0weDAwCiAgICB2ZW5kb3IgICAgID0gJ0ludGVsIENvcnBvcmF0aW9u JwogICAgZGV2aWNlICAgICA9ICdYZW9uIEU1L0NvcmUgaTcgRE1BIENoYW5uZWwgMycKICAgIGNs YXNzICAgICAgPSBiYXNlIHBlcmlwaGVyYWwKICAgIGJhciAgIFsxMF0gPSB0eXBlIE1lbW9yeSwg cmFuZ2UgNjQsIGJhc2UgMHhmYmYzNDAwMCwgc2l6ZSAxNjM4NCwgZW5hYmxlZAogICAgY2FwIDEx WzgwXSA9IE1TSS1YIHN1cHBvcnRzIDEgbWVzc2FnZQogICAgICAgICAgICAgICAgIFRhYmxlIGlu IG1hcCAweDEwWzB4MjAwMF0sIFBCQSBpbiBtYXAgMHgxMFsweDMwMDBdCiAgICBjYXAgMTBbOTBd ID0gUENJLUV4cHJlc3MgMiByb290IGVuZHBvaW50IG1heCBkYXRhIDEyOCgxMjgpIGxpbmsgeDAo eDApCiAgICBjYXAgMDFbZTBdID0gcG93ZXJzcGVjIDMgIHN1cHBvcnRzIEQwIEQzICBjdXJyZW50 IEQwCm5vbmUxOEBwY2kwOjA6NDo0OgljbGFzcz0weDA4ODAwMCBjYXJkPTB4M2MyNDgwODYgY2hp cD0weDNjMjQ4MDg2IHJldj0weDA3IGhkcj0weDAwCiAgICB2ZW5kb3IgICAgID0gJ0ludGVsIENv cnBvcmF0aW9uJwogICAgZGV2aWNlICAgICA9ICdYZW9uIEU1L0NvcmUgaTcgRE1BIENoYW5uZWwg NCcKICAgIGNsYXNzICAgICAgPSBiYXNlIHBlcmlwaGVyYWwKICAgIGJhciAgIFsxMF0gPSB0eXBl IE1lbW9yeSwgcmFuZ2UgNjQsIGJhc2UgMHhmYmYzMDAwMCwgc2l6ZSAxNjM4NCwgZW5hYmxlZAog ICAgY2FwIDExWzgwXSA9IE1TSS1YIHN1cHBvcnRzIDEgbWVzc2FnZQogICAgICAgICAgICAgICAg IFRhYmxlIGluIG1hcCAweDEwWzB4MjAwMF0sIFBCQSBpbiBtYXAgMHgxMFsweDMwMDBdCiAgICBj YXAgMTBbOTBdID0gUENJLUV4cHJlc3MgMiByb290IGVuZHBvaW50IG1heCBkYXRhIDEyOCgxMjgp IGxpbmsgeDAoeDApCiAgICBjYXAgMDFbZTBdID0gcG93ZXJzcGVjIDMgIHN1cHBvcnRzIEQwIEQz ICBjdXJyZW50IEQwCm5vbmUxOUBwY2kwOjA6NDo1OgljbGFzcz0weDA4ODAwMCBjYXJkPTB4M2My NTgwODYgY2hpcD0weDNjMjU4MDg2IHJldj0weDA3IGhkcj0weDAwCiAgICB2ZW5kb3IgICAgID0g J0ludGVsIENvcnBvcmF0aW9uJwogICAgZGV2aWNlICAgICA9ICdYZW9uIEU1L0NvcmUgaTcgRE1B IENoYW5uZWwgNScKICAgIGNsYXNzICAgICAgPSBiYXNlIHBlcmlwaGVyYWwKICAgIGJhciAgIFsx MF0gPSB0eXBlIE1lbW9yeSwgcmFuZ2UgNjQsIGJhc2UgMHhmYmYyYzAwMCwgc2l6ZSAxNjM4NCwg ZW5hYmxlZAogICAgY2FwIDExWzgwXSA9IE1TSS1YIHN1cHBvcnRzIDEgbWVzc2FnZQogICAgICAg ICAgICAgICAgIFRhYmxlIGluIG1hcCAweDEwWzB4MjAwMF0sIFBCQSBpbiBtYXAgMHgxMFsweDMw MDBdCiAgICBjYXAgMTBbOTBdID0gUENJLUV4cHJlc3MgMiByb290IGVuZHBvaW50IG1heCBkYXRh IDEyOCgxMjgpIGxpbmsgeDAoeDApCiAgICBjYXAgMDFbZTBdID0gcG93ZXJzcGVjIDMgIHN1cHBv cnRzIEQwIEQzICBjdXJyZW50IEQwCm5vbmUyMEBwY2kwOjA6NDo2OgljbGFzcz0weDA4ODAwMCBj YXJkPTB4M2MyNjgwODYgY2hpcD0weDNjMjY4MDg2IHJldj0weDA3IGhkcj0weDAwCiAgICB2ZW5k b3IgICAgID0gJ0ludGVsIENvcnBvcmF0aW9uJwogICAgZGV2aWNlICAgICA9ICdYZW9uIEU1L0Nv cmUgaTcgRE1BIENoYW5uZWwgNicKICAgIGNsYXNzICAgICAgPSBiYXNlIHBlcmlwaGVyYWwKICAg IGJhciAgIFsxMF0gPSB0eXBlIE1lbW9yeSwgcmFuZ2UgNjQsIGJhc2UgMHhmYmYyODAwMCwgc2l6 ZSAxNjM4NCwgZW5hYmxlZAogICAgY2FwIDExWzgwXSA9IE1TSS1YIHN1cHBvcnRzIDEgbWVzc2Fn ZQogICAgICAgICAgICAgICAgIFRhYmxlIGluIG1hcCAweDEwWzB4MjAwMF0sIFBCQSBpbiBtYXAg MHgxMFsweDMwMDBdCiAgICBjYXAgMTBbOTBdID0gUENJLUV4cHJlc3MgMiByb290IGVuZHBvaW50 IG1heCBkYXRhIDEyOCgxMjgpIGxpbmsgeDAoeDApCiAgICBjYXAgMDFbZTBdID0gcG93ZXJzcGVj IDMgIHN1cHBvcnRzIEQwIEQzICBjdXJyZW50IEQwCm5vbmUyMUBwY2kwOjA6NDo3OgljbGFzcz0w eDA4ODAwMCBjYXJkPTB4M2MyNzgwODYgY2hpcD0weDNjMjc4MDg2IHJldj0weDA3IGhkcj0weDAw CiAgICB2ZW5kb3IgICAgID0gJ0ludGVsIENvcnBvcmF0aW9uJwogICAgZGV2aWNlICAgICA9ICdY ZW9uIEU1L0NvcmUgaTcgRE1BIENoYW5uZWwgNycKICAgIGNsYXNzICAgICAgPSBiYXNlIHBlcmlw aGVyYWwKICAgIGJhciAgIFsxMF0gPSB0eXBlIE1lbW9yeSwgcmFuZ2UgNjQsIGJhc2UgMHhmYmYy NDAwMCwgc2l6ZSAxNjM4NCwgZW5hYmxlZAogICAgY2FwIDExWzgwXSA9IE1TSS1YIHN1cHBvcnRz IDEgbWVzc2FnZQogICAgICAgICAgICAgICAgIFRhYmxlIGluIG1hcCAweDEwWzB4MjAwMF0sIFBC QSBpbiBtYXAgMHgxMFsweDMwMDBdCiAgICBjYXAgMTBbOTBdID0gUENJLUV4cHJlc3MgMiByb290 IGVuZHBvaW50IG1heCBkYXRhIDEyOCgxMjgpIGxpbmsgeDAoeDApCiAgICBjYXAgMDFbZTBdID0g cG93ZXJzcGVjIDMgIHN1cHBvcnRzIEQwIEQzICBjdXJyZW50IEQwCm5vbmUyMkBwY2kwOjA6NTow OgljbGFzcz0weDA4ODAwMCBjYXJkPTB4NTAwMDE0NTggY2hpcD0weDNjMjg4MDg2IHJldj0weDA3 IGhkcj0weDAwCiAgICB2ZW5kb3IgICAgID0gJ0ludGVsIENvcnBvcmF0aW9uJwogICAgZGV2aWNl ICAgICA9ICdYZW9uIEU1L0NvcmUgaTcgQWRkcmVzcyBNYXAsIFZUZF9NaXNjLCBTeXN0ZW0gTWFu YWdlbWVudCcKICAgIGNsYXNzICAgICAgPSBiYXNlIHBlcmlwaGVyYWwKICAgIGNhcCAxMFs0MF0g PSBQQ0ktRXhwcmVzcyAyIHJvb3QgZW5kcG9pbnQgbWF4IGRhdGEgMTI4KDEyOCkgbGluayB4MCh4 MCkKbm9uZTIzQHBjaTA6MDo1OjE6CWNsYXNzPTB4MDAwMDAwIGNhcmQ9MHgwMDAwMDAwMCBjaGlw PTB4MDAwMDAwMDAgcmV2PTB4MDAgaGRyPTB4MDAKICAgIGNsYXNzICAgICAgPSBvbGQKICAgIHN1 YmNsYXNzICAgPSBub24tVkdBIGRpc3BsYXkgZGV2aWNlCm5vbmUyNEBwY2kwOjA6NToyOgljbGFz cz0weDA4ODAwMCBjYXJkPTB4NTAwMDE0NTggY2hpcD0weDNjMmE4MDg2IHJldj0weDA3IGhkcj0w eDAwCiAgICB2ZW5kb3IgICAgID0gJ0ludGVsIENvcnBvcmF0aW9uJwogICAgZGV2aWNlICAgICA9 ICdYZW9uIEU1L0NvcmUgaTcgQ29udHJvbCBTdGF0dXMgYW5kIEdsb2JhbCBFcnJvcnMnCiAgICBj bGFzcyAgICAgID0gYmFzZSBwZXJpcGhlcmFsCiAgICBjYXAgMTBbNDBdID0gUENJLUV4cHJlc3Mg MiByb290IGVuZHBvaW50IG1heCBkYXRhIDEyOCgxMjgpIGxpbmsgeDAoeDApCm5vbmUyNUBwY2kw OjA6NTozOgljbGFzcz0weDAwMDAwMCBjYXJkPTB4MDAwMDAwMDAgY2hpcD0weDAwMDAwMDAwIHJl dj0weDAwIGhkcj0weDAwCiAgICBjbGFzcyAgICAgID0gb2xkCiAgICBzdWJjbGFzcyAgID0gbm9u LVZHQSBkaXNwbGF5IGRldmljZQppb2FwaWMwQHBjaTA6MDo1OjQ6CWNsYXNzPTB4MDgwMDIwIGNh cmQ9MHg1MDAwMTQ1OCBjaGlwPTB4M2MyYzgwODYgcmV2PTB4MDcgaGRyPTB4MDAKICAgIHZlbmRv ciAgICAgPSAnSW50ZWwgQ29ycG9yYXRpb24nCiAgICBkZXZpY2UgICAgID0gJ1hlb24gRTUvQ29y ZSBpNyBJL08gQVBJQycKICAgIGNsYXNzICAgICAgPSBiYXNlIHBlcmlwaGVyYWwKICAgIHN1YmNs YXNzICAgPSBpbnRlcnJ1cHQgY29udHJvbGxlcgogICAgYmFyICAgWzEwXSA9IHR5cGUgTWVtb3J5 LCByYW5nZSAzMiwgYmFzZSAweGZiZjRhMDAwLCBzaXplIDQwOTYsIGVuYWJsZWQKICAgIGNhcCAw MVs2Y10gPSBwb3dlcnNwZWMgMyAgc3VwcG9ydHMgRDAgRDMgIGN1cnJlbnQgRDAKbm9uZTI2QHBj aTA6MDo1OjU6CWNsYXNzPTB4MDAwMDAwIGNhcmQ9MHgwMDAwMDAwMCBjaGlwPTB4MDAwMDAwMDAg cmV2PTB4MDAgaGRyPTB4MDAKICAgIGNsYXNzICAgICAgPSBvbGQKICAgIHN1YmNsYXNzICAgPSBu b24tVkdBIGRpc3BsYXkgZGV2aWNlCm5vbmUyN0BwY2kwOjA6NTo3OgljbGFzcz0weDAwMDAwMCBj YXJkPTB4MDAwMDAwMDAgY2hpcD0weDAwMDAwMDAwIHJldj0weDAwIGhkcj0weDAwCiAgICBjbGFz cyAgICAgID0gb2xkCiAgICBzdWJjbGFzcyAgID0gbm9uLVZHQSBkaXNwbGF5IGRldmljZQpwY2li NEBwY2kwOjA6MTc6MDoJY2xhc3M9MHgwNjA0MDAgY2FyZD0weDUwMDAxNDU4IGNoaXA9MHgxZDNl ODA4NiByZXY9MHgwNiBoZHI9MHgwMQogICAgdmVuZG9yICAgICA9ICdJbnRlbCBDb3Jwb3JhdGlv bicKICAgIGRldmljZSAgICAgPSAnQzYwMC9YNzkgc2VyaWVzIGNoaXBzZXQgUENJIEV4cHJlc3Mg VmlydHVhbCBSb290IFBvcnQnCiAgICBjbGFzcyAgICAgID0gYnJpZGdlCiAgICBzdWJjbGFzcyAg ID0gUENJLVBDSQogICAgY2FwIDEwWzQwXSA9IFBDSS1FeHByZXNzIDIgcm9vdCBwb3J0IG1heCBk YXRhIDEyOCgxMjgpIGxpbmsgeDEoeDEpCiAgICAgICAgICAgICAgICAgc3BlZWQgMi41KDIuNSkg QVNQTSBkaXNhYmxlZChMMHMvTDEpCiAgICBjYXAgMDFbODBdID0gcG93ZXJzcGVjIDMgIHN1cHBv cnRzIEQwIEQzICBjdXJyZW50IEQwCiAgICBjYXAgMGRbODhdID0gUENJIEJyaWRnZSBjYXJkPTB4 NTAwMDE0NTgKICAgIGNhcCAwNVs5MF0gPSBNU0kgc3VwcG9ydHMgMSBtZXNzYWdlIAogICAgZWNh cCAwMDAxWzEwMF0gPSBBRVIgMSAwIGZhdGFsIDAgbm9uLWZhdGFsIDAgY29ycmVjdGVkCiAgICBl Y2FwIDAwMGRbMTM4XSA9IEFDUyAxCm5vbmUyOEBwY2kwOjA6MjI6MDoJY2xhc3M9MHgwNzgwMDAg Y2FyZD0weDFjM2ExNDU4IGNoaXA9MHgxZDNhODA4NiByZXY9MHgwNSBoZHI9MHgwMAogICAgdmVu ZG9yICAgICA9ICdJbnRlbCBDb3Jwb3JhdGlvbicKICAgIGRldmljZSAgICAgPSAnQzYwMC9YNzkg c2VyaWVzIGNoaXBzZXQgTUVJIENvbnRyb2xsZXInCiAgICBjbGFzcyAgICAgID0gc2ltcGxlIGNv bW1zCiAgICBiYXIgICBbMTBdID0gdHlwZSBNZW1vcnksIHJhbmdlIDY0LCBiYXNlIDB4ZmJmNDkw MDAsIHNpemUgMTYsIGVuYWJsZWQKICAgIGNhcCAwMVs1MF0gPSBwb3dlcnNwZWMgMyAgc3VwcG9y dHMgRDAgRDMgIGN1cnJlbnQgRDAKICAgIGNhcCAwNVs4Y10gPSBNU0kgc3VwcG9ydHMgMSBtZXNz YWdlLCA2NCBiaXQgCmVtMEBwY2kwOjA6MjU6MDoJY2xhc3M9MHgwMjAwMDAgY2FyZD0weGUwMDAx NDU4IGNoaXA9MHgxNTAyODA4NiByZXY9MHgwNiBoZHI9MHgwMAogICAgdmVuZG9yICAgICA9ICdJ bnRlbCBDb3Jwb3JhdGlvbicKICAgIGRldmljZSAgICAgPSAnODI1NzlMTSBHaWdhYml0IE5ldHdv cmsgQ29ubmVjdGlvbicKICAgIGNsYXNzICAgICAgPSBuZXR3b3JrCiAgICBzdWJjbGFzcyAgID0g ZXRoZXJuZXQKICAgIGJhciAgIFsxMF0gPSB0eXBlIE1lbW9yeSwgcmFuZ2UgMzIsIGJhc2UgMHhm YmYwMDAwMCwgc2l6ZSAxMzEwNzIsIGVuYWJsZWQKICAgIGJhciAgIFsxNF0gPSB0eXBlIE1lbW9y eSwgcmFuZ2UgMzIsIGJhc2UgMHhmYmY0ODAwMCwgc2l6ZSA0MDk2LCBlbmFibGVkCiAgICBiYXIg ICBbMThdID0gdHlwZSBJL08gUG9ydCwgcmFuZ2UgMzIsIGJhc2UgMHhmMDQwLCBzaXplIDMyLCBl bmFibGVkCiAgICBjYXAgMDFbYzhdID0gcG93ZXJzcGVjIDIgIHN1cHBvcnRzIEQwIEQzICBjdXJy ZW50IEQwCiAgICBjYXAgMDVbZDBdID0gTVNJIHN1cHBvcnRzIDEgbWVzc2FnZSwgNjQgYml0IGVu YWJsZWQgd2l0aCAxIG1lc3NhZ2UKICAgIGNhcCAxM1tlMF0gPSBQQ0kgQWR2YW5jZWQgRmVhdHVy ZXM6IEZMUiBUUAplaGNpMEBwY2kwOjA6MjY6MDoJY2xhc3M9MHgwYzAzMjAgY2FyZD0weDUwMDYx NDU4IGNoaXA9MHgxZDJkODA4NiByZXY9MHgwNiBoZHI9MHgwMAogICAgdmVuZG9yICAgICA9ICdJ bnRlbCBDb3Jwb3JhdGlvbicKICAgIGRldmljZSAgICAgPSAnQzYwMC9YNzkgc2VyaWVzIGNoaXBz ZXQgVVNCMiBFbmhhbmNlZCBIb3N0IENvbnRyb2xsZXInCiAgICBjbGFzcyAgICAgID0gc2VyaWFs IGJ1cwogICAgc3ViY2xhc3MgICA9IFVTQgogICAgYmFyICAgWzEwXSA9IHR5cGUgTWVtb3J5LCBy YW5nZSAzMiwgYmFzZSAweGZiZjQ3MDAwLCBzaXplIDEwMjQsIGVuYWJsZWQKICAgIGNhcCAwMVs1 MF0gPSBwb3dlcnNwZWMgMiAgc3VwcG9ydHMgRDAgRDMgIGN1cnJlbnQgRDAKICAgIGNhcCAwYVs1 OF0gPSBFSENJIERlYnVnIFBvcnQgYXQgb2Zmc2V0IDB4YTAgaW4gbWFwIDB4MTQKICAgIGNhcCAx M1s5OF0gPSBQQ0kgQWR2YW5jZWQgRmVhdHVyZXM6IEZMUiBUUApoZGFjMUBwY2kwOjA6Mjc6MDoJ Y2xhc3M9MHgwNDAzMDAgY2FyZD0weGEwMDIxNDU4IGNoaXA9MHgxZDIwODA4NiByZXY9MHgwNiBo ZHI9MHgwMAogICAgdmVuZG9yICAgICA9ICdJbnRlbCBDb3Jwb3JhdGlvbicKICAgIGRldmljZSAg ICAgPSAnQzYwMC9YNzkgc2VyaWVzIGNoaXBzZXQgSGlnaCBEZWZpbml0aW9uIEF1ZGlvIENvbnRy b2xsZXInCiAgICBjbGFzcyAgICAgID0gbXVsdGltZWRpYQogICAgc3ViY2xhc3MgICA9IEhEQQog ICAgYmFyICAgWzEwXSA9IHR5cGUgTWVtb3J5LCByYW5nZSA2NCwgYmFzZSAweGZiZjIwMDAwLCBz aXplIDE2Mzg0LCBlbmFibGVkCiAgICBjYXAgMDFbNTBdID0gcG93ZXJzcGVjIDIgIHN1cHBvcnRz IEQwIEQzICBjdXJyZW50IEQwCiAgICBjYXAgMDVbNjBdID0gTVNJIHN1cHBvcnRzIDEgbWVzc2Fn ZSwgNjQgYml0IGVuYWJsZWQgd2l0aCAxIG1lc3NhZ2UKICAgIGNhcCAxMFs3MF0gPSBQQ0ktRXhw cmVzcyAxIHJvb3QgZW5kcG9pbnQgbWF4IGRhdGEgMTI4KDEyOCkgRkxSIGxpbmsgeDAoeDApCiAg ICBlY2FwIDAwMDJbMTAwXSA9IFZDIDEgbWF4IFZDMQogICAgZWNhcCAwMDA1WzEzMF0gPSBSb290 IENvbXBsZXggTGluayBEZWNsYXJhdGlvbiAxCnBjaWI1QHBjaTA6MDoyODowOgljbGFzcz0weDA2 MDQwMCBjYXJkPTB4NTAwMTE0NTggY2hpcD0weDFkMTA4MDg2IHJldj0weGI2IGhkcj0weDAxCiAg ICB2ZW5kb3IgICAgID0gJ0ludGVsIENvcnBvcmF0aW9uJwogICAgZGV2aWNlICAgICA9ICdDNjAw L1g3OSBzZXJpZXMgY2hpcHNldCBQQ0kgRXhwcmVzcyBSb290IFBvcnQgMScKICAgIGNsYXNzICAg ICAgPSBicmlkZ2UKICAgIHN1YmNsYXNzICAgPSBQQ0ktUENJCiAgICBjYXAgMTBbNDBdID0gUENJ LUV4cHJlc3MgMiByb290IHBvcnQgc2xvdCBtYXggZGF0YSAxMjgoMTI4KSBsaW5rIHgxKHgxKQog ICAgICAgICAgICAgICAgIHNwZWVkIDUuMCg1LjApCiAgICBjYXAgMDVbODBdID0gTVNJIHN1cHBv cnRzIDEgbWVzc2FnZSAKICAgIGNhcCAwZFs5MF0gPSBQQ0kgQnJpZGdlIGNhcmQ9MHg1MDAxMTQ1 OAogICAgY2FwIDAxW2EwXSA9IHBvd2Vyc3BlYyAyICBzdXBwb3J0cyBEMCBEMyAgY3VycmVudCBE MApwY2liNkBwY2kwOjA6Mjg6MToJY2xhc3M9MHgwNjA0MDAgY2FyZD0weDUwMDExNDU4IGNoaXA9 MHgxZDEyODA4NiByZXY9MHhiNiBoZHI9MHgwMQogICAgdmVuZG9yICAgICA9ICdJbnRlbCBDb3Jw b3JhdGlvbicKICAgIGRldmljZSAgICAgPSAnQzYwMC9YNzkgc2VyaWVzIGNoaXBzZXQgUENJIEV4 cHJlc3MgUm9vdCBQb3J0IDInCiAgICBjbGFzcyAgICAgID0gYnJpZGdlCiAgICBzdWJjbGFzcyAg ID0gUENJLVBDSQogICAgY2FwIDEwWzQwXSA9IFBDSS1FeHByZXNzIDIgcm9vdCBwb3J0IHNsb3Qg bWF4IGRhdGEgMTI4KDEyOCkgbGluayB4MSh4MSkKICAgICAgICAgICAgICAgICBzcGVlZCA1LjAo NS4wKQogICAgY2FwIDA1WzgwXSA9IE1TSSBzdXBwb3J0cyAxIG1lc3NhZ2UgCiAgICBjYXAgMGRb OTBdID0gUENJIEJyaWRnZSBjYXJkPTB4NTAwMTE0NTgKICAgIGNhcCAwMVthMF0gPSBwb3dlcnNw ZWMgMiAgc3VwcG9ydHMgRDAgRDMgIGN1cnJlbnQgRDAKcGNpYjdAcGNpMDowOjI4OjI6CWNsYXNz PTB4MDYwNDAwIGNhcmQ9MHg1MDAxMTQ1OCBjaGlwPTB4MWQxNDgwODYgcmV2PTB4YjYgaGRyPTB4 MDEKICAgIHZlbmRvciAgICAgPSAnSW50ZWwgQ29ycG9yYXRpb24nCiAgICBkZXZpY2UgICAgID0g J0M2MDAvWDc5IHNlcmllcyBjaGlwc2V0IFBDSSBFeHByZXNzIFJvb3QgUG9ydCAzJwogICAgY2xh c3MgICAgICA9IGJyaWRnZQogICAgc3ViY2xhc3MgICA9IFBDSS1QQ0kKICAgIGNhcCAxMFs0MF0g PSBQQ0ktRXhwcmVzcyAyIHJvb3QgcG9ydCBzbG90IG1heCBkYXRhIDEyOCgxMjgpIGxpbmsgeDEo eDEpCiAgICAgICAgICAgICAgICAgc3BlZWQgNS4wKDUuMCkKICAgIGNhcCAwNVs4MF0gPSBNU0kg c3VwcG9ydHMgMSBtZXNzYWdlIAogICAgY2FwIDBkWzkwXSA9IFBDSSBCcmlkZ2UgY2FyZD0weDUw MDExNDU4CiAgICBjYXAgMDFbYTBdID0gcG93ZXJzcGVjIDIgIHN1cHBvcnRzIEQwIEQzICBjdXJy ZW50IEQwCnBjaWI4QHBjaTA6MDoyODozOgljbGFzcz0weDA2MDQwMCBjYXJkPTB4NTAwMTE0NTgg Y2hpcD0weDFkMTY4MDg2IHJldj0weGI2IGhkcj0weDAxCiAgICB2ZW5kb3IgICAgID0gJ0ludGVs IENvcnBvcmF0aW9uJwogICAgZGV2aWNlICAgICA9ICdDNjAwL1g3OSBzZXJpZXMgY2hpcHNldCBQ Q0kgRXhwcmVzcyBSb290IFBvcnQgNCcKICAgIGNsYXNzICAgICAgPSBicmlkZ2UKICAgIHN1YmNs YXNzICAgPSBQQ0ktUENJCiAgICBjYXAgMTBbNDBdID0gUENJLUV4cHJlc3MgMiByb290IHBvcnQg c2xvdCBtYXggZGF0YSAxMjgoMTI4KSBsaW5rIHgxKHgxKQogICAgICAgICAgICAgICAgIHNwZWVk IDIuNSg1LjApCiAgICBjYXAgMDVbODBdID0gTVNJIHN1cHBvcnRzIDEgbWVzc2FnZSAKICAgIGNh cCAwZFs5MF0gPSBQQ0kgQnJpZGdlIGNhcmQ9MHg1MDAxMTQ1OAogICAgY2FwIDAxW2EwXSA9IHBv d2Vyc3BlYyAyICBzdXBwb3J0cyBEMCBEMyAgY3VycmVudCBEMApwY2liOUBwY2kwOjA6Mjg6NToJ Y2xhc3M9MHgwNjA0MDAgY2FyZD0weDUwMDExNDU4IGNoaXA9MHgxZDFhODA4NiByZXY9MHhiNiBo ZHI9MHgwMQogICAgdmVuZG9yICAgICA9ICdJbnRlbCBDb3Jwb3JhdGlvbicKICAgIGRldmljZSAg ICAgPSAnQzYwMC9YNzkgc2VyaWVzIGNoaXBzZXQgUENJIEV4cHJlc3MgUm9vdCBQb3J0IDYnCiAg ICBjbGFzcyAgICAgID0gYnJpZGdlCiAgICBzdWJjbGFzcyAgID0gUENJLVBDSQogICAgY2FwIDEw WzQwXSA9IFBDSS1FeHByZXNzIDIgcm9vdCBwb3J0IHNsb3QgbWF4IGRhdGEgMTI4KDEyOCkgbGlu ayB4MSh4MSkKICAgICAgICAgICAgICAgICBzcGVlZCA1LjAoNS4wKQogICAgY2FwIDA1WzgwXSA9 IE1TSSBzdXBwb3J0cyAxIG1lc3NhZ2UgCiAgICBjYXAgMGRbOTBdID0gUENJIEJyaWRnZSBjYXJk PTB4NTAwMTE0NTgKICAgIGNhcCAwMVthMF0gPSBwb3dlcnNwZWMgMiAgc3VwcG9ydHMgRDAgRDMg IGN1cnJlbnQgRDAKICAgIFBDSSBlcnJvcnMgPSBTZW50IFRhcmdldC1BYm9ydAogIFBDSS1lIGVy cm9ycyA9IE5vbi1GYXRhbCBFcnJvciBEZXRlY3RlZApwY2liMTBAcGNpMDowOjI4OjY6CWNsYXNz PTB4MDYwNDAwIGNhcmQ9MHg1MDAxMTQ1OCBjaGlwPTB4MWQxYzgwODYgcmV2PTB4YjYgaGRyPTB4 MDEKICAgIHZlbmRvciAgICAgPSAnSW50ZWwgQ29ycG9yYXRpb24nCiAgICBkZXZpY2UgICAgID0g J0M2MDAvWDc5IHNlcmllcyBjaGlwc2V0IFBDSSBFeHByZXNzIFJvb3QgUG9ydCA3JwogICAgY2xh c3MgICAgICA9IGJyaWRnZQogICAgc3ViY2xhc3MgICA9IFBDSS1QQ0kKICAgIGNhcCAxMFs0MF0g PSBQQ0ktRXhwcmVzcyAyIHJvb3QgcG9ydCBzbG90IG1heCBkYXRhIDEyOCgxMjgpIGxpbmsgeDEo eDEpCiAgICAgICAgICAgICAgICAgc3BlZWQgNS4wKDUuMCkKICAgIGNhcCAwNVs4MF0gPSBNU0kg c3VwcG9ydHMgMSBtZXNzYWdlIAogICAgY2FwIDBkWzkwXSA9IFBDSSBCcmlkZ2UgY2FyZD0weDUw MDExNDU4CiAgICBjYXAgMDFbYTBdID0gcG93ZXJzcGVjIDIgIHN1cHBvcnRzIEQwIEQzICBjdXJy ZW50IEQwCiAgICBQQ0kgZXJyb3JzID0gU2VudCBUYXJnZXQtQWJvcnQKICBQQ0ktZSBlcnJvcnMg PSBOb24tRmF0YWwgRXJyb3IgRGV0ZWN0ZWQKZWhjaTFAcGNpMDowOjI5OjA6CWNsYXNzPTB4MGMw MzIwIGNhcmQ9MHg1MDA2MTQ1OCBjaGlwPTB4MWQyNjgwODYgcmV2PTB4MDYgaGRyPTB4MDAKICAg IHZlbmRvciAgICAgPSAnSW50ZWwgQ29ycG9yYXRpb24nCiAgICBkZXZpY2UgICAgID0gJ0M2MDAv WDc5IHNlcmllcyBjaGlwc2V0IFVTQjIgRW5oYW5jZWQgSG9zdCBDb250cm9sbGVyJwogICAgY2xh c3MgICAgICA9IHNlcmlhbCBidXMKICAgIHN1YmNsYXNzICAgPSBVU0IKICAgIGJhciAgIFsxMF0g PSB0eXBlIE1lbW9yeSwgcmFuZ2UgMzIsIGJhc2UgMHhmYmY0NjAwMCwgc2l6ZSAxMDI0LCBlbmFi bGVkCiAgICBjYXAgMDFbNTBdID0gcG93ZXJzcGVjIDIgIHN1cHBvcnRzIEQwIEQzICBjdXJyZW50 IEQwCiAgICBjYXAgMGFbNThdID0gRUhDSSBEZWJ1ZyBQb3J0IGF0IG9mZnNldCAweGEwIGluIG1h cCAweDE0CiAgICBjYXAgMTNbOThdID0gUENJIEFkdmFuY2VkIEZlYXR1cmVzOiBGTFIgVFAKcGNp YjExQHBjaTA6MDozMDowOgljbGFzcz0weDA2MDQwMSBjYXJkPTB4NTAwMTE0NTggY2hpcD0weDI0 NGU4MDg2IHJldj0weGE2IGhkcj0weDAxCiAgICB2ZW5kb3IgICAgID0gJ0ludGVsIENvcnBvcmF0 aW9uJwogICAgZGV2aWNlICAgICA9ICc4MjgwMSBQQ0kgQnJpZGdlJwogICAgY2xhc3MgICAgICA9 IGJyaWRnZQogICAgc3ViY2xhc3MgICA9IFBDSS1QQ0kKICAgIGNhcCAwZFs1MF0gPSBQQ0kgQnJp ZGdlIGNhcmQ9MHg1MDAxMTQ1OAppc2FiMEBwY2kwOjA6MzE6MDoJY2xhc3M9MHgwNjAxMDAgY2Fy ZD0weDUwMDExNDU4IGNoaXA9MHgxZDQxODA4NiByZXY9MHgwNiBoZHI9MHgwMAogICAgdmVuZG9y ICAgICA9ICdJbnRlbCBDb3Jwb3JhdGlvbicKICAgIGRldmljZSAgICAgPSAnQzYwMC9YNzkgc2Vy aWVzIGNoaXBzZXQgTFBDIENvbnRyb2xsZXInCiAgICBjbGFzcyAgICAgID0gYnJpZGdlCiAgICBz dWJjbGFzcyAgID0gUENJLUlTQQogICAgY2FwIDA5W2UwXSA9IHZlbmRvciAobGVuZ3RoIDEyKSBJ bnRlbCBjYXAgMSB2ZXJzaW9uIDAKCQkgZmVhdHVyZXM6IEFNVCwgNCBQQ0ktZSB4MSBzbG90cwph aGNpM0BwY2kwOjA6MzE6MjoJY2xhc3M9MHgwMTA2MDEgY2FyZD0weGIwMDIxNDU4IGNoaXA9MHgx ZDAyODA4NiByZXY9MHgwNiBoZHI9MHgwMAogICAgdmVuZG9yICAgICA9ICdJbnRlbCBDb3Jwb3Jh dGlvbicKICAgIGRldmljZSAgICAgPSAnQzYwMC9YNzkgc2VyaWVzIGNoaXBzZXQgNi1Qb3J0IFNB VEEgQUhDSSBDb250cm9sbGVyJwogICAgY2xhc3MgICAgICA9IG1hc3Mgc3RvcmFnZQogICAgc3Vi Y2xhc3MgICA9IFNBVEEKICAgIGJhciAgIFsxMF0gPSB0eXBlIEkvTyBQb3J0LCByYW5nZSAzMiwg YmFzZSAweGYwOTAsIHNpemUgOCwgZW5hYmxlZAogICAgYmFyICAgWzE0XSA9IHR5cGUgSS9PIFBv cnQsIHJhbmdlIDMyLCBiYXNlIDB4ZjA4MCwgc2l6ZSA0LCBlbmFibGVkCiAgICBiYXIgICBbMThd ID0gdHlwZSBJL08gUG9ydCwgcmFuZ2UgMzIsIGJhc2UgMHhmMDcwLCBzaXplIDgsIGVuYWJsZWQK ICAgIGJhciAgIFsxY10gPSB0eXBlIEkvTyBQb3J0LCByYW5nZSAzMiwgYmFzZSAweGYwNjAsIHNp emUgNCwgZW5hYmxlZAogICAgYmFyICAgWzIwXSA9IHR5cGUgSS9PIFBvcnQsIHJhbmdlIDMyLCBi YXNlIDB4ZjAyMCwgc2l6ZSAzMiwgZW5hYmxlZAogICAgYmFyICAgWzI0XSA9IHR5cGUgTWVtb3J5 LCByYW5nZSAzMiwgYmFzZSAweGZiZjQ1MDAwLCBzaXplIDIwNDgsIGVuYWJsZWQKICAgIGNhcCAw NVs4MF0gPSBNU0kgc3VwcG9ydHMgMSBtZXNzYWdlIGVuYWJsZWQgd2l0aCAxIG1lc3NhZ2UKICAg IGNhcCAwMVs3MF0gPSBwb3dlcnNwZWMgMyAgc3VwcG9ydHMgRDAgRDMgIGN1cnJlbnQgRDAKICAg IGNhcCAxMlthOF0gPSBTQVRBIEluZGV4LURhdGEgUGFpcgogICAgY2FwIDEzW2IwXSA9IFBDSSBB ZHZhbmNlZCBGZWF0dXJlczogRkxSIFRQCmljaHNtYjBAcGNpMDowOjMxOjM6CWNsYXNzPTB4MGMw NTAwIGNhcmQ9MHg1MDAxMTQ1OCBjaGlwPTB4MWQyMjgwODYgcmV2PTB4MDYgaGRyPTB4MDAKICAg IHZlbmRvciAgICAgPSAnSW50ZWwgQ29ycG9yYXRpb24nCiAgICBkZXZpY2UgICAgID0gJ0M2MDAv WDc5IHNlcmllcyBjaGlwc2V0IFNNQnVzIEhvc3QgQ29udHJvbGxlcicKICAgIGNsYXNzICAgICAg PSBzZXJpYWwgYnVzCiAgICBzdWJjbGFzcyAgID0gU01CdXMKICAgIGJhciAgIFsxMF0gPSB0eXBl IE1lbW9yeSwgcmFuZ2UgNjQsIGJhc2UgMHhmYmY0NDAwMCwgc2l6ZSAyNTYsIGVuYWJsZWQKICAg IGJhciAgIFsyMF0gPSB0eXBlIEkvTyBQb3J0LCByYW5nZSAzMiwgYmFzZSAweGYwMDAsIHNpemUg MzIsIGVuYWJsZWQKdmdhcGNpMEBwY2kwOjI6MDowOgljbGFzcz0weDAzMDAwMCBjYXJkPTB4MDM1 NDEwNDMgY2hpcD0weDk1NGYxMDAyIHJldj0weDAwIGhkcj0weDAwCiAgICB2ZW5kb3IgICAgID0g J0FkdmFuY2VkIE1pY3JvIERldmljZXMgW0FNRF0gbmVlIEFUSScKICAgIGRldmljZSAgICAgPSAn UlY3MTAgW1JhZGVvbiBIRCA0MzUwXScKICAgIGNsYXNzICAgICAgPSBkaXNwbGF5CiAgICBzdWJj bGFzcyAgID0gVkdBCiAgICBiYXIgICBbMTBdID0gdHlwZSBQcmVmZXRjaGFibGUgTWVtb3J5LCBy YW5nZSA2NCwgYmFzZSAweGUwMDAwMDAwLCBzaXplIDI2ODQzNTQ1NiwgZW5hYmxlZAogICAgYmFy ICAgWzE4XSA9IHR5cGUgTWVtb3J5LCByYW5nZSA2NCwgYmFzZSAweGZiZTIwMDAwLCBzaXplIDY1 NTM2LCBlbmFibGVkCiAgICBiYXIgICBbMjBdID0gdHlwZSBJL08gUG9ydCwgcmFuZ2UgMzIsIGJh c2UgMHhlMDAwLCBzaXplIDI1NiwgZW5hYmxlZAogICAgY2FwIDAxWzUwXSA9IHBvd2Vyc3BlYyAz ICBzdXBwb3J0cyBEMCBEMSBEMiBEMyAgY3VycmVudCBEMAogICAgY2FwIDEwWzU4XSA9IFBDSS1F eHByZXNzIDIgbGVnYWN5IGVuZHBvaW50IG1heCBkYXRhIDEyOCgxMjgpIGxpbmsgeDE2KHgxNikK ICAgICAgICAgICAgICAgICBzcGVlZCAyLjUoMi41KSBBU1BNIGRpc2FibGVkKEwwcy9MMSkKICAg IGNhcCAwNVthMF0gPSBNU0kgc3VwcG9ydHMgMSBtZXNzYWdlLCA2NCBiaXQgCiAgICBlY2FwIDAw MGJbMTAwXSA9IFZlbmRvciAxIElEIDEKICBQQ0ktZSBlcnJvcnMgPSBOb24tRmF0YWwgRXJyb3Ig RGV0ZWN0ZWQKICAgICAgICAgICAgICAgICBVbnN1cHBvcnRlZCBSZXF1ZXN0IERldGVjdGVkCmhk YWMwQHBjaTA6MjowOjE6CWNsYXNzPTB4MDQwMzAwIGNhcmQ9MHhhYTM4MTA0MyBjaGlwPTB4YWEz ODEwMDIgcmV2PTB4MDAgaGRyPTB4MDAKICAgIHZlbmRvciAgICAgPSAnQWR2YW5jZWQgTWljcm8g RGV2aWNlcyBbQU1EXSBuZWUgQVRJJwogICAgZGV2aWNlICAgICA9ICdSVjcxMC83MzAgSERNSSBB dWRpbyBbUmFkZW9uIEhEIDQwMDAgc2VyaWVzXScKICAgIGNsYXNzICAgICAgPSBtdWx0aW1lZGlh CiAgICBzdWJjbGFzcyAgID0gSERBCiAgICBiYXIgICBbMTBdID0gdHlwZSBNZW1vcnksIHJhbmdl IDY0LCBiYXNlIDB4ZmJlMzAwMDAsIHNpemUgMTYzODQsIGVuYWJsZWQKICAgIGNhcCAwMVs1MF0g PSBwb3dlcnNwZWMgMyAgc3VwcG9ydHMgRDAgRDEgRDIgRDMgIGN1cnJlbnQgRDAKICAgIGNhcCAx MFs1OF0gPSBQQ0ktRXhwcmVzcyAyIGxlZ2FjeSBlbmRwb2ludCBtYXggZGF0YSAxMjgoMTI4KSBs aW5rIHgxNih4MTYpCiAgICAgICAgICAgICAgICAgc3BlZWQgMi41KDIuNSkgQVNQTSBkaXNhYmxl ZChMMHMvTDEpCiAgICBjYXAgMDVbYTBdID0gTVNJIHN1cHBvcnRzIDEgbWVzc2FnZSwgNjQgYml0 IGVuYWJsZWQgd2l0aCAxIG1lc3NhZ2UKICAgIGVjYXAgMDAwYlsxMDBdID0gVmVuZG9yIDEgSUQg MQogIFBDSS1lIGVycm9ycyA9IE5vbi1GYXRhbCBFcnJvciBEZXRlY3RlZAogICAgICAgICAgICAg ICAgIFVuc3VwcG9ydGVkIFJlcXVlc3QgRGV0ZWN0ZWQKYWhjaTBAcGNpMDo1OjA6MDoJY2xhc3M9 MHgwMTA2MDEgY2FyZD0weGIwMDAxNDU4IGNoaXA9MHg5MTcyMWI0YiByZXY9MHgxMSBoZHI9MHgw MAogICAgdmVuZG9yICAgICA9ICdNYXJ2ZWxsIFRlY2hub2xvZ3kgR3JvdXAgTHRkLicKICAgIGRl dmljZSAgICAgPSAnODhTRTkxNzIgU0FUQSA2R2IvcyBDb250cm9sbGVyJwogICAgY2xhc3MgICAg ICA9IG1hc3Mgc3RvcmFnZQogICAgc3ViY2xhc3MgICA9IFNBVEEKICAgIGJhciAgIFsxMF0gPSB0 eXBlIEkvTyBQb3J0LCByYW5nZSAzMiwgYmFzZSAweGQwNDAsIHNpemUgOCwgZW5hYmxlZAogICAg YmFyICAgWzE0XSA9IHR5cGUgSS9PIFBvcnQsIHJhbmdlIDMyLCBiYXNlIDB4ZDAzMCwgc2l6ZSA0 LCBlbmFibGVkCiAgICBiYXIgICBbMThdID0gdHlwZSBJL08gUG9ydCwgcmFuZ2UgMzIsIGJhc2Ug MHhkMDIwLCBzaXplIDgsIGVuYWJsZWQKICAgIGJhciAgIFsxY10gPSB0eXBlIEkvTyBQb3J0LCBy YW5nZSAzMiwgYmFzZSAweGQwMTAsIHNpemUgNCwgZW5hYmxlZAogICAgYmFyICAgWzIwXSA9IHR5 cGUgSS9PIFBvcnQsIHJhbmdlIDMyLCBiYXNlIDB4ZDAwMCwgc2l6ZSAxNiwgZW5hYmxlZAogICAg YmFyICAgWzI0XSA9IHR5cGUgTWVtb3J5LCByYW5nZSAzMiwgYmFzZSAweGZiZDEwMDAwLCBzaXpl IDUxMiwgZW5hYmxlZAogICAgY2FwIDAxWzQwXSA9IHBvd2Vyc3BlYyAzICBzdXBwb3J0cyBEMCBE MyAgY3VycmVudCBEMAogICAgY2FwIDA1WzUwXSA9IE1TSSBzdXBwb3J0cyAxIG1lc3NhZ2UgZW5h YmxlZCB3aXRoIDEgbWVzc2FnZQogICAgY2FwIDEwWzcwXSA9IFBDSS1FeHByZXNzIDIgbGVnYWN5 IGVuZHBvaW50IG1heCBkYXRhIDEyOCg1MTIpIGxpbmsgeDEoeDEpCiAgICAgICAgICAgICAgICAg c3BlZWQgNS4wKDUuMCkgQVNQTSBkaXNhYmxlZChMMHMvTDEpCiAgICBlY2FwIDAwMDFbMTAwXSA9 IEFFUiAxIDAgZmF0YWwgMCBub24tZmF0YWwgMSBjb3JyZWN0ZWQKICBQQ0ktZSBlcnJvcnMgPSBD b3JyZWN0YWJsZSBFcnJvciBEZXRlY3RlZAogICAgICAgICAgICAgICAgIFVuc3VwcG9ydGVkIFJl cXVlc3QgRGV0ZWN0ZWQKICAgICBDb3JyZWN0ZWQgPSBBZHZpc29yeSBOb24tRmF0YWwgRXJyb3IK YWhjaTFAcGNpMDo2OjA6MDoJY2xhc3M9MHgwMTA2MDEgY2FyZD0weGIwMDAxNDU4IGNoaXA9MHg5 MTcyMWI0YiByZXY9MHgxMSBoZHI9MHgwMAogICAgdmVuZG9yICAgICA9ICdNYXJ2ZWxsIFRlY2hu b2xvZ3kgR3JvdXAgTHRkLicKICAgIGRldmljZSAgICAgPSAnODhTRTkxNzIgU0FUQSA2R2IvcyBD b250cm9sbGVyJwogICAgY2xhc3MgICAgICA9IG1hc3Mgc3RvcmFnZQogICAgc3ViY2xhc3MgICA9 IFNBVEEKICAgIGJhciAgIFsxMF0gPSB0eXBlIEkvTyBQb3J0LCByYW5nZSAzMiwgYmFzZSAweGMw NDAsIHNpemUgOCwgZW5hYmxlZAogICAgYmFyICAgWzE0XSA9IHR5cGUgSS9PIFBvcnQsIHJhbmdl IDMyLCBiYXNlIDB4YzAzMCwgc2l6ZSA0LCBlbmFibGVkCiAgICBiYXIgICBbMThdID0gdHlwZSBJ L08gUG9ydCwgcmFuZ2UgMzIsIGJhc2UgMHhjMDIwLCBzaXplIDgsIGVuYWJsZWQKICAgIGJhciAg IFsxY10gPSB0eXBlIEkvTyBQb3J0LCByYW5nZSAzMiwgYmFzZSAweGMwMTAsIHNpemUgNCwgZW5h YmxlZAogICAgYmFyICAgWzIwXSA9IHR5cGUgSS9PIFBvcnQsIHJhbmdlIDMyLCBiYXNlIDB4YzAw MCwgc2l6ZSAxNiwgZW5hYmxlZAogICAgYmFyICAgWzI0XSA9IHR5cGUgTWVtb3J5LCByYW5nZSAz MiwgYmFzZSAweGZiYzEwMDAwLCBzaXplIDUxMiwgZW5hYmxlZAogICAgY2FwIDAxWzQwXSA9IHBv d2Vyc3BlYyAzICBzdXBwb3J0cyBEMCBEMyAgY3VycmVudCBEMAogICAgY2FwIDA1WzUwXSA9IE1T SSBzdXBwb3J0cyAxIG1lc3NhZ2UgZW5hYmxlZCB3aXRoIDEgbWVzc2FnZQogICAgY2FwIDEwWzcw XSA9IFBDSS1FeHByZXNzIDIgbGVnYWN5IGVuZHBvaW50IG1heCBkYXRhIDEyOCg1MTIpIGxpbmsg eDEoeDEpCiAgICAgICAgICAgICAgICAgc3BlZWQgNS4wKDUuMCkgQVNQTSBkaXNhYmxlZChMMHMv TDEpCiAgICBlY2FwIDAwMDFbMTAwXSA9IEFFUiAxIDAgZmF0YWwgMCBub24tZmF0YWwgMSBjb3Jy ZWN0ZWQKICBQQ0ktZSBlcnJvcnMgPSBDb3JyZWN0YWJsZSBFcnJvciBEZXRlY3RlZAogICAgICAg ICAgICAgICAgIFVuc3VwcG9ydGVkIFJlcXVlc3QgRGV0ZWN0ZWQKICAgICBDb3JyZWN0ZWQgPSBB ZHZpc29yeSBOb24tRmF0YWwgRXJyb3IKYWhjaTJAcGNpMDo3OjA6MDoJY2xhc3M9MHgwMTA2MDEg Y2FyZD0weGIwMDAxNDU4IGNoaXA9MHg5MTcyMWI0YiByZXY9MHgxMSBoZHI9MHgwMAogICAgdmVu ZG9yICAgICA9ICdNYXJ2ZWxsIFRlY2hub2xvZ3kgR3JvdXAgTHRkLicKICAgIGRldmljZSAgICAg PSAnODhTRTkxNzIgU0FUQSA2R2IvcyBDb250cm9sbGVyJwogICAgY2xhc3MgICAgICA9IG1hc3Mg c3RvcmFnZQogICAgc3ViY2xhc3MgICA9IFNBVEEKICAgIGJhciAgIFsxMF0gPSB0eXBlIEkvTyBQ b3J0LCByYW5nZSAzMiwgYmFzZSAweGIwNDAsIHNpemUgOCwgZW5hYmxlZAogICAgYmFyICAgWzE0 XSA9IHR5cGUgSS9PIFBvcnQsIHJhbmdlIDMyLCBiYXNlIDB4YjAzMCwgc2l6ZSA0LCBlbmFibGVk CiAgICBiYXIgICBbMThdID0gdHlwZSBJL08gUG9ydCwgcmFuZ2UgMzIsIGJhc2UgMHhiMDIwLCBz aXplIDgsIGVuYWJsZWQKICAgIGJhciAgIFsxY10gPSB0eXBlIEkvTyBQb3J0LCByYW5nZSAzMiwg YmFzZSAweGIwMTAsIHNpemUgNCwgZW5hYmxlZAogICAgYmFyICAgWzIwXSA9IHR5cGUgSS9PIFBv cnQsIHJhbmdlIDMyLCBiYXNlIDB4YjAwMCwgc2l6ZSAxNiwgZW5hYmxlZAogICAgYmFyICAgWzI0 XSA9IHR5cGUgTWVtb3J5LCByYW5nZSAzMiwgYmFzZSAweGZiYjEwMDAwLCBzaXplIDUxMiwgZW5h YmxlZAogICAgY2FwIDAxWzQwXSA9IHBvd2Vyc3BlYyAzICBzdXBwb3J0cyBEMCBEMyAgY3VycmVu dCBEMAogICAgY2FwIDA1WzUwXSA9IE1TSSBzdXBwb3J0cyAxIG1lc3NhZ2UgZW5hYmxlZCB3aXRo IDEgbWVzc2FnZQogICAgY2FwIDEwWzcwXSA9IFBDSS1FeHByZXNzIDIgbGVnYWN5IGVuZHBvaW50 IG1heCBkYXRhIDEyOCg1MTIpIGxpbmsgeDEoeDEpCiAgICAgICAgICAgICAgICAgc3BlZWQgNS4w KDUuMCkgQVNQTSBkaXNhYmxlZChMMHMvTDEpCiAgICBlY2FwIDAwMDFbMTAwXSA9IEFFUiAxIDAg ZmF0YWwgMCBub24tZmF0YWwgMSBjb3JyZWN0ZWQKICBQQ0ktZSBlcnJvcnMgPSBDb3JyZWN0YWJs ZSBFcnJvciBEZXRlY3RlZAogICAgICAgICAgICAgICAgIFVuc3VwcG9ydGVkIFJlcXVlc3QgRGV0 ZWN0ZWQKICAgICBDb3JyZWN0ZWQgPSBBZHZpc29yeSBOb24tRmF0YWwgRXJyb3IKZndvaGNpMEBw Y2kwOjg6MDowOgljbGFzcz0weDBjMDAxMCBjYXJkPTB4MDAwMDAwMDAgY2hpcD0weDM0MDMxMTA2 IHJldj0weDAwIGhkcj0weDAwCiAgICB2ZW5kb3IgICAgID0gJ1ZJQSBUZWNobm9sb2dpZXMsIElu Yy4nCiAgICBkZXZpY2UgICAgID0gJ1ZUNjMxNSBTZXJpZXMgRmlyZXdpcmUgQ29udHJvbGxlcicK ICAgIGNsYXNzICAgICAgPSBzZXJpYWwgYnVzCiAgICBzdWJjbGFzcyAgID0gRmlyZVdpcmUKICAg IGJhciAgIFsxMF0gPSB0eXBlIE1lbW9yeSwgcmFuZ2UgNjQsIGJhc2UgMHhmYmExMDAwMCwgc2l6 ZSAyMDQ4LCBlbmFibGVkCiAgICBiYXIgICBbMThdID0gdHlwZSBJL08gUG9ydCwgcmFuZ2UgMzIs IGJhc2UgMHhhMDAwLCBzaXplIDI1NiwgZW5hYmxlZAogICAgY2FwIDAxWzUwXSA9IHBvd2Vyc3Bl YyAzICBzdXBwb3J0cyBEMCBEMyAgY3VycmVudCBEMAogICAgY2FwIDA1WzgwXSA9IE1TSSBzdXBw b3J0cyAxIG1lc3NhZ2UsIDY0IGJpdCwgdmVjdG9yIG1hc2tzIAogICAgY2FwIDEwWzk4XSA9IFBD SS1FeHByZXNzIDEgZW5kcG9pbnQgbWF4IGRhdGEgMTI4KDEyOCkgbGluayB4MSh4MSkKICAgICAg ICAgICAgICAgICBzcGVlZCAyLjUoMi41KSBBU1BNIGRpc2FibGVkKEwwcy9MMSkKICAgIGVjYXAg MDAwMVsxMDBdID0gQUVSIDEgMCBmYXRhbCAwIG5vbi1mYXRhbCAxIGNvcnJlY3RlZAogICAgZWNh cCAwMDAzWzEzMF0gPSBTZXJpYWwgMSAwMDAwMDAwMDAwMDAwMDAwCiAgUENJLWUgZXJyb3JzID0g Q29ycmVjdGFibGUgRXJyb3IgRGV0ZWN0ZWQKICAgICAgICAgICAgICAgICBVbnN1cHBvcnRlZCBS ZXF1ZXN0IERldGVjdGVkCiAgICAgQ29ycmVjdGVkID0gQWR2aXNvcnkgTm9uLUZhdGFsIEVycm9y CmF0YXBjaTBAcGNpMDo4OjA6MToJY2xhc3M9MHgwMTAxODUgY2FyZD0weDAwMDAwMDAwIGNoaXA9 MHgwNDE1MTEwNiByZXY9MHhhMCBoZHI9MHgwMAogICAgdmVuZG9yICAgICA9ICdWSUEgVGVjaG5v bG9naWVzLCBJbmMuJwogICAgZGV2aWNlICAgICA9ICdWVDY0MTUgUEFUQSBJREUgSG9zdCBDb250 cm9sbGVyJwogICAgY2xhc3MgICAgICA9IG1hc3Mgc3RvcmFnZQogICAgc3ViY2xhc3MgICA9IEFU QQogICAgYmFyICAgWzEwXSA9IHR5cGUgSS9PIFBvcnQsIHJhbmdlIDMyLCBiYXNlIDB4YTE0MCwg c2l6ZSA4LCBlbmFibGVkCiAgICBiYXIgICBbMTRdID0gdHlwZSBJL08gUG9ydCwgcmFuZ2UgMzIs IGJhc2UgMHhhMTMwLCBzaXplIDQsIGVuYWJsZWQKICAgIGJhciAgIFsxOF0gPSB0eXBlIEkvTyBQ b3J0LCByYW5nZSAzMiwgYmFzZSAweGExMjAsIHNpemUgOCwgZW5hYmxlZAogICAgYmFyICAgWzFj XSA9IHR5cGUgSS9PIFBvcnQsIHJhbmdlIDMyLCBiYXNlIDB4YTExMCwgc2l6ZSA0LCBlbmFibGVk CiAgICBiYXIgICBbMjBdID0gdHlwZSBJL08gUG9ydCwgcmFuZ2UgMzIsIGJhc2UgMHhhMTAwLCBz aXplIDE2LCBlbmFibGVkCiAgICBjYXAgMDFbNTBdID0gcG93ZXJzcGVjIDMgIHN1cHBvcnRzIEQw IEQzICBjdXJyZW50IEQwCiAgICBjYXAgMDVbNzBdID0gTVNJIHN1cHBvcnRzIDEgbWVzc2FnZSwg NjQgYml0LCB2ZWN0b3IgbWFza3MgCiAgICBjYXAgMTBbOTBdID0gUENJLUV4cHJlc3MgMSBsZWdh Y3kgZW5kcG9pbnQgbWF4IGRhdGEgMTI4KDEyOCkgbGluayB4MSh4MSkKICAgICAgICAgICAgICAg ICBzcGVlZCAyLjUoMi41KSBBU1BNIGRpc2FibGVkKEwwcy9MMSkKICBQQ0ktZSBlcnJvcnMgPSBD b3JyZWN0YWJsZSBFcnJvciBEZXRlY3RlZAogICAgICAgICAgICAgICAgIFVuc3VwcG9ydGVkIFJl cXVlc3QgRGV0ZWN0ZWQKeGhjaTBAcGNpMDo5OjA6MDoJY2xhc3M9MHgwYzAzMzAgY2FyZD0weDUw MDcxNDU4IGNoaXA9MHgxMDA5MWI3MyByZXY9MHgwMiBoZHI9MHgwMAogICAgdmVuZG9yICAgICA9 ICdGcmVzY28gTG9naWMnCiAgICBkZXZpY2UgICAgID0gJ0ZMMTAwOSBVU0IgMy4wIEhvc3QgQ29u dHJvbGxlcicKICAgIGNsYXNzICAgICAgPSBzZXJpYWwgYnVzCiAgICBzdWJjbGFzcyAgID0gVVNC CiAgICBiYXIgICBbMTBdID0gdHlwZSBNZW1vcnksIHJhbmdlIDY0LCBiYXNlIDB4ZmI5MDAwMDAs IHNpemUgNjU1MzYsIGVuYWJsZWQKICAgIGJhciAgIFsxOF0gPSB0eXBlIE1lbW9yeSwgcmFuZ2Ug NjQsIGJhc2UgMHhmYjkxMTAwMCwgc2l6ZSA0MDk2LCBlbmFibGVkCiAgICBiYXIgICBbMjBdID0g dHlwZSBNZW1vcnksIHJhbmdlIDY0LCBiYXNlIDB4ZmI5MTAwMDAsIHNpemUgNDA5NiwgZW5hYmxl ZAogICAgY2FwIDAxWzQwXSA9IHBvd2Vyc3BlYyAzICBzdXBwb3J0cyBEMCBEMSBEMyAgY3VycmVu dCBEMAogICAgY2FwIDA1WzUwXSA9IE1TSSBzdXBwb3J0cyA4IG1lc3NhZ2VzLCA2NCBiaXQgZW5h YmxlZCB3aXRoIDEgbWVzc2FnZQogICAgY2FwIDEwWzcwXSA9IFBDSS1FeHByZXNzIDIgZW5kcG9p bnQgbWF4IGRhdGEgMTI4KDUxMikgbGluayB4MSh4MSkKICAgICAgICAgICAgICAgICBzcGVlZCA1 LjAoNS4wKSBBU1BNIGRpc2FibGVkKEwwcy9MMSkKICAgIGNhcCAxMVtiMF0gPSBNU0ktWCBzdXBw b3J0cyA4IG1lc3NhZ2VzCiAgICAgICAgICAgICAgICAgVGFibGUgaW4gbWFwIDB4MThbMHgwXSwg UEJBIGluIG1hcCAweDIwWzB4MF0KICAgIGVjYXAgMDAwMVsxMDBdID0gQUVSIDEgMCBmYXRhbCAy IG5vbi1mYXRhbCAxIGNvcnJlY3RlZAogICAgUENJIGVycm9ycyA9IFNlbnQgVGFyZ2V0LUFib3J0 CiAgUENJLWUgZXJyb3JzID0gQ29ycmVjdGFibGUgRXJyb3IgRGV0ZWN0ZWQKICAgICAgICAgICAg ICAgICBOb24tRmF0YWwgRXJyb3IgRGV0ZWN0ZWQKICAgICAgICAgICAgICAgICBVbnN1cHBvcnRl ZCBSZXF1ZXN0IERldGVjdGVkCiAgICAgTm9uLWZhdGFsID0gQ29tcGxldGVyIEFib3J0CiAgICAg ICAgICAgICAgICAgVW5zdXBwb3J0ZWQgUmVxdWVzdAogICAgIENvcnJlY3RlZCA9IEFkdmlzb3J5 IE5vbi1GYXRhbCBFcnJvcgp4aGNpMUBwY2kwOjEwOjA6MDoJY2xhc3M9MHgwYzAzMzAgY2FyZD0w eDUwMDcxNDU4IGNoaXA9MHgxMDA5MWI3MyByZXY9MHgwMiBoZHI9MHgwMAogICAgdmVuZG9yICAg ICA9ICdGcmVzY28gTG9naWMnCiAgICBkZXZpY2UgICAgID0gJ0ZMMTAwOSBVU0IgMy4wIEhvc3Qg Q29udHJvbGxlcicKICAgIGNsYXNzICAgICAgPSBzZXJpYWwgYnVzCiAgICBzdWJjbGFzcyAgID0g VVNCCiAgICBiYXIgICBbMTBdID0gdHlwZSBNZW1vcnksIHJhbmdlIDY0LCBiYXNlIDB4ZmI4MDAw MDAsIHNpemUgNjU1MzYsIGVuYWJsZWQKICAgIGJhciAgIFsxOF0gPSB0eXBlIE1lbW9yeSwgcmFu Z2UgNjQsIGJhc2UgMHhmYjgxMTAwMCwgc2l6ZSA0MDk2LCBlbmFibGVkCiAgICBiYXIgICBbMjBd ID0gdHlwZSBNZW1vcnksIHJhbmdlIDY0LCBiYXNlIDB4ZmI4MTAwMDAsIHNpemUgNDA5NiwgZW5h YmxlZAogICAgY2FwIDAxWzQwXSA9IHBvd2Vyc3BlYyAzICBzdXBwb3J0cyBEMCBEMSBEMyAgY3Vy cmVudCBEMAogICAgY2FwIDA1WzUwXSA9IE1TSSBzdXBwb3J0cyA4IG1lc3NhZ2VzLCA2NCBiaXQg ZW5hYmxlZCB3aXRoIDEgbWVzc2FnZQogICAgY2FwIDEwWzcwXSA9IFBDSS1FeHByZXNzIDIgZW5k cG9pbnQgbWF4IGRhdGEgMTI4KDUxMikgbGluayB4MSh4MSkKICAgICAgICAgICAgICAgICBzcGVl ZCA1LjAoNS4wKSBBU1BNIGRpc2FibGVkKEwwcy9MMSkKICAgIGNhcCAxMVtiMF0gPSBNU0ktWCBz dXBwb3J0cyA4IG1lc3NhZ2VzCiAgICAgICAgICAgICAgICAgVGFibGUgaW4gbWFwIDB4MThbMHgw XSwgUEJBIGluIG1hcCAweDIwWzB4MF0KICAgIGVjYXAgMDAwMVsxMDBdID0gQUVSIDEgMCBmYXRh bCAyIG5vbi1mYXRhbCAxIGNvcnJlY3RlZAogICAgUENJIGVycm9ycyA9IFNlbnQgVGFyZ2V0LUFi b3J0CiAgUENJLWUgZXJyb3JzID0gQ29ycmVjdGFibGUgRXJyb3IgRGV0ZWN0ZWQKICAgICAgICAg ICAgICAgICBOb24tRmF0YWwgRXJyb3IgRGV0ZWN0ZWQKICAgICAgICAgICAgICAgICBVbnN1cHBv cnRlZCBSZXF1ZXN0IERldGVjdGVkCiAgICAgTm9uLWZhdGFsID0gQ29tcGxldGVyIEFib3J0CiAg ICAgICAgICAgICAgICAgVW5zdXBwb3J0ZWQgUmVxdWVzdAogICAgIENvcnJlY3RlZCA9IEFkdmlz b3J5IE5vbi1GYXRhbCBFcnJvcgpyZTBAcGNpMDoxMTowOjA6CWNsYXNzPTB4MDIwMDAwIGNhcmQ9 MHg4MTY5MTBlYyBjaGlwPTB4ODE2OTEwZWMgcmV2PTB4MTAgaGRyPTB4MDAKICAgIHZlbmRvciAg ICAgPSAnUmVhbHRlayBTZW1pY29uZHVjdG9yIENvLiwgTHRkLicKICAgIGRldmljZSAgICAgPSAn UlRMODE2OSBQQ0kgR2lnYWJpdCBFdGhlcm5ldCBDb250cm9sbGVyJwogICAgY2xhc3MgICAgICA9 IG5ldHdvcmsKICAgIHN1YmNsYXNzICAgPSBldGhlcm5ldAogICAgYmFyICAgWzEwXSA9IHR5cGUg SS9PIFBvcnQsIHJhbmdlIDMyLCBiYXNlIDB4OTAwMCwgc2l6ZSAyNTYsIGVuYWJsZWQKICAgIGJh ciAgIFsxNF0gPSB0eXBlIE1lbW9yeSwgcmFuZ2UgMzIsIGJhc2UgMHhmYjcxMDAwMCwgc2l6ZSAy NTYsIGVuYWJsZWQKICAgIGNhcCAwMVtkY10gPSBwb3dlcnNwZWMgMiAgc3VwcG9ydHMgRDAgRDEg RDIgRDMgIGN1cnJlbnQgRDAKbm9uZTI5QHBjaTA6MjU1Ojg6MDoJY2xhc3M9MHgwODgwMDAgY2Fy ZD0weDNjODAxNDU4IGNoaXA9MHgzYzgwODA4NiByZXY9MHgwNyBoZHI9MHgwMAogICAgdmVuZG9y ICAgICA9ICdJbnRlbCBDb3Jwb3JhdGlvbicKICAgIGRldmljZSAgICAgPSAnWGVvbiBFNS9Db3Jl IGk3IFFQSSBMaW5rIDAnCiAgICBjbGFzcyAgICAgID0gYmFzZSBwZXJpcGhlcmFsCm5vbmUzMEBw Y2kwOjI1NTo4OjM6CWNsYXNzPTB4MDg4MDAwIGNhcmQ9MHgzYzgzMTQ1OCBjaGlwPTB4M2M4Mzgw ODYgcmV2PTB4MDcgaGRyPTB4MDAKICAgIHZlbmRvciAgICAgPSAnSW50ZWwgQ29ycG9yYXRpb24n CiAgICBkZXZpY2UgICAgID0gJ1hlb24gRTUvQ29yZSBpNyBRUEkgTGluayBSZXV0IDAnCiAgICBj bGFzcyAgICAgID0gYmFzZSBwZXJpcGhlcmFsCiAgICBjYXAgMTBbNDBdID0gUENJLUV4cHJlc3Mg MSByb290IGVuZHBvaW50IG1heCBkYXRhIDEyOCgxMjgpIGxpbmsgeDAoeDApCiAgICBlY2FwIDAw MGJbMTAwXSA9IFZlbmRvciAwCm5vbmUzMUBwY2kwOjI1NTo4OjQ6CWNsYXNzPTB4MDg4MDAwIGNh cmQ9MHgzYzg0MTQ1OCBjaGlwPTB4M2M4NDgwODYgcmV2PTB4MDcgaGRyPTB4MDAKICAgIHZlbmRv ciAgICAgPSAnSW50ZWwgQ29ycG9yYXRpb24nCiAgICBkZXZpY2UgICAgID0gJ1hlb24gRTUvQ29y ZSBpNyBRUEkgTGluayBSZXV0IDAnCiAgICBjbGFzcyAgICAgID0gYmFzZSBwZXJpcGhlcmFsCiAg ICBjYXAgMTBbNDBdID0gUENJLUV4cHJlc3MgMSByb290IGVuZHBvaW50IG1heCBkYXRhIDEyOCgx MjgpIGxpbmsgeDAoeDApCm5vbmUzMkBwY2kwOjI1NTo5OjA6CWNsYXNzPTB4MDg4MDAwIGNhcmQ9 MHgzYzkwMTQ1OCBjaGlwPTB4M2M5MDgwODYgcmV2PTB4MDcgaGRyPTB4MDAKICAgIHZlbmRvciAg ICAgPSAnSW50ZWwgQ29ycG9yYXRpb24nCiAgICBkZXZpY2UgICAgID0gJ1hlb24gRTUvQ29yZSBp NyBRUEkgTGluayAxJwogICAgY2xhc3MgICAgICA9IGJhc2UgcGVyaXBoZXJhbApub25lMzNAcGNp MDoyNTU6OTozOgljbGFzcz0weDA4ODAwMCBjYXJkPTB4M2M5MzE0NTggY2hpcD0weDNjOTM4MDg2 IHJldj0weDA3IGhkcj0weDAwCiAgICB2ZW5kb3IgICAgID0gJ0ludGVsIENvcnBvcmF0aW9uJwog ICAgZGV2aWNlICAgICA9ICdYZW9uIEU1L0NvcmUgaTcgUVBJIExpbmsgUmV1dCAxJwogICAgY2xh c3MgICAgICA9IGJhc2UgcGVyaXBoZXJhbAogICAgY2FwIDEwWzQwXSA9IFBDSS1FeHByZXNzIDEg cm9vdCBlbmRwb2ludCBtYXggZGF0YSAxMjgoMTI4KSBsaW5rIHgwKHgwKQogICAgZWNhcCAwMDBi WzEwMF0gPSBWZW5kb3IgMApub25lMzRAcGNpMDoyNTU6OTo0OgljbGFzcz0weDA4ODAwMCBjYXJk PTB4M2M5NDE0NTggY2hpcD0weDNjOTQ4MDg2IHJldj0weDA3IGhkcj0weDAwCiAgICB2ZW5kb3Ig ICAgID0gJ0ludGVsIENvcnBvcmF0aW9uJwogICAgZGV2aWNlICAgICA9ICdYZW9uIEU1L0NvcmUg aTcgUVBJIExpbmsgUmV1dCAxJwogICAgY2xhc3MgICAgICA9IGJhc2UgcGVyaXBoZXJhbAogICAg Y2FwIDEwWzQwXSA9IFBDSS1FeHByZXNzIDEgcm9vdCBlbmRwb2ludCBtYXggZGF0YSAxMjgoMTI4 KSBsaW5rIHgwKHgwKQpub25lMzVAcGNpMDoyNTU6MTA6MDoJY2xhc3M9MHgwODgwMDAgY2FyZD0w eDNjYzAxNDU4IGNoaXA9MHgzY2MwODA4NiByZXY9MHgwNyBoZHI9MHgwMAogICAgdmVuZG9yICAg ICA9ICdJbnRlbCBDb3Jwb3JhdGlvbicKICAgIGRldmljZSAgICAgPSAnWGVvbiBFNS9Db3JlIGk3 IFBvd2VyIENvbnRyb2wgVW5pdCAwJwogICAgY2xhc3MgICAgICA9IGJhc2UgcGVyaXBoZXJhbApu b25lMzZAcGNpMDoyNTU6MTA6MToJY2xhc3M9MHgwODgwMDAgY2FyZD0weDNjYzExNDU4IGNoaXA9 MHgzY2MxODA4NiByZXY9MHgwNyBoZHI9MHgwMAogICAgdmVuZG9yICAgICA9ICdJbnRlbCBDb3Jw b3JhdGlvbicKICAgIGRldmljZSAgICAgPSAnWGVvbiBFNS9Db3JlIGk3IFBvd2VyIENvbnRyb2wg VW5pdCAxJwogICAgY2xhc3MgICAgICA9IGJhc2UgcGVyaXBoZXJhbApub25lMzdAcGNpMDoyNTU6 MTA6MjoJY2xhc3M9MHgwODgwMDAgY2FyZD0weDNjYzIxNDU4IGNoaXA9MHgzY2MyODA4NiByZXY9 MHgwNyBoZHI9MHgwMAogICAgdmVuZG9yICAgICA9ICdJbnRlbCBDb3Jwb3JhdGlvbicKICAgIGRl dmljZSAgICAgPSAnWGVvbiBFNS9Db3JlIGk3IFBvd2VyIENvbnRyb2wgVW5pdCAyJwogICAgY2xh c3MgICAgICA9IGJhc2UgcGVyaXBoZXJhbApub25lMzhAcGNpMDoyNTU6MTA6MzoJY2xhc3M9MHgw ODgwMDAgY2FyZD0weDNjZDAxNDU4IGNoaXA9MHgzY2QwODA4NiByZXY9MHgwNyBoZHI9MHgwMAog ICAgdmVuZG9yICAgICA9ICdJbnRlbCBDb3Jwb3JhdGlvbicKICAgIGRldmljZSAgICAgPSAnWGVv biBFNS9Db3JlIGk3IFBvd2VyIENvbnRyb2wgVW5pdCAzJwogICAgY2xhc3MgICAgICA9IGJhc2Ug cGVyaXBoZXJhbApub25lMzlAcGNpMDoyNTU6MTE6MDoJY2xhc3M9MHgwODgwMDAgY2FyZD0weDNj ZTAxNDU4IGNoaXA9MHgzY2UwODA4NiByZXY9MHgwNyBoZHI9MHgwMAogICAgdmVuZG9yICAgICA9 ICdJbnRlbCBDb3Jwb3JhdGlvbicKICAgIGRldmljZSAgICAgPSAnWGVvbiBFNS9Db3JlIGk3IElu dGVycnVwdCBDb250cm9sIFJlZ2lzdGVycycKICAgIGNsYXNzICAgICAgPSBiYXNlIHBlcmlwaGVy YWwKbm9uZTQwQHBjaTA6MjU1OjExOjM6CWNsYXNzPTB4MDg4MDAwIGNhcmQ9MHgzY2UzMTQ1OCBj aGlwPTB4M2NlMzgwODYgcmV2PTB4MDcgaGRyPTB4MDAKICAgIHZlbmRvciAgICAgPSAnSW50ZWwg Q29ycG9yYXRpb24nCiAgICBkZXZpY2UgICAgID0gJ1hlb24gRTUvQ29yZSBpNyBTZW1hcGhvcmUg YW5kIFNjcmF0Y2hwYWQgQ29uZmlndXJhdGlvbiBSZWdpc3RlcnMnCiAgICBjbGFzcyAgICAgID0g YmFzZSBwZXJpcGhlcmFsCm5vbmU0MUBwY2kwOjI1NToxMjowOgljbGFzcz0weDA4ODAwMCBjYXJk PTB4M2NlODE0NTggY2hpcD0weDNjZTg4MDg2IHJldj0weDA3IGhkcj0weDAwCiAgICB2ZW5kb3Ig ICAgID0gJ0ludGVsIENvcnBvcmF0aW9uJwogICAgZGV2aWNlICAgICA9ICdYZW9uIEU1L0NvcmUg aTcgVW5pY2FzdCBSZWdpc3RlciAwJwogICAgY2xhc3MgICAgICA9IGJhc2UgcGVyaXBoZXJhbApu b25lNDJAcGNpMDoyNTU6MTI6MToJY2xhc3M9MHgwODgwMDAgY2FyZD0weDNjZTgxNDU4IGNoaXA9 MHgzY2U4ODA4NiByZXY9MHgwNyBoZHI9MHgwMAogICAgdmVuZG9yICAgICA9ICdJbnRlbCBDb3Jw b3JhdGlvbicKICAgIGRldmljZSAgICAgPSAnWGVvbiBFNS9Db3JlIGk3IFVuaWNhc3QgUmVnaXN0 ZXIgMCcKICAgIGNsYXNzICAgICAgPSBiYXNlIHBlcmlwaGVyYWwKbm9uZTQzQHBjaTA6MjU1OjEy OjY6CWNsYXNzPTB4MDg4MDAwIGNhcmQ9MHgzY2U4MTQ1OCBjaGlwPTB4M2NmNDgwODYgcmV2PTB4 MDcgaGRyPTB4MDAKICAgIHZlbmRvciAgICAgPSAnSW50ZWwgQ29ycG9yYXRpb24nCiAgICBkZXZp Y2UgICAgID0gJ1hlb24gRTUvQ29yZSBpNyBJbnRlZ3JhdGVkIE1lbW9yeSBDb250cm9sbGVyIFN5 c3RlbSBBZGRyZXNzIERlY29kZXIgMCcKICAgIGNsYXNzICAgICAgPSBiYXNlIHBlcmlwaGVyYWwK bm9uZTQ0QHBjaTA6MjU1OjEyOjc6CWNsYXNzPTB4MDg4MDAwIGNhcmQ9MHgzY2U4MTQ1OCBjaGlw PTB4M2NmNjgwODYgcmV2PTB4MDcgaGRyPTB4MDAKICAgIHZlbmRvciAgICAgPSAnSW50ZWwgQ29y cG9yYXRpb24nCiAgICBkZXZpY2UgICAgID0gJ1hlb24gRTUvQ29yZSBpNyBTeXN0ZW0gQWRkcmVz cyBEZWNvZGVyJwogICAgY2xhc3MgICAgICA9IGJhc2UgcGVyaXBoZXJhbApub25lNDVAcGNpMDoy NTU6MTM6MDoJY2xhc3M9MHgwODgwMDAgY2FyZD0weDNjZTgxNDU4IGNoaXA9MHgzY2U4ODA4NiBy ZXY9MHgwNyBoZHI9MHgwMAogICAgdmVuZG9yICAgICA9ICdJbnRlbCBDb3Jwb3JhdGlvbicKICAg IGRldmljZSAgICAgPSAnWGVvbiBFNS9Db3JlIGk3IFVuaWNhc3QgUmVnaXN0ZXIgMCcKICAgIGNs YXNzICAgICAgPSBiYXNlIHBlcmlwaGVyYWwKbm9uZTQ2QHBjaTA6MjU1OjEzOjE6CWNsYXNzPTB4 MDg4MDAwIGNhcmQ9MHgzY2U4MTQ1OCBjaGlwPTB4M2NlODgwODYgcmV2PTB4MDcgaGRyPTB4MDAK ICAgIHZlbmRvciAgICAgPSAnSW50ZWwgQ29ycG9yYXRpb24nCiAgICBkZXZpY2UgICAgID0gJ1hl b24gRTUvQ29yZSBpNyBVbmljYXN0IFJlZ2lzdGVyIDAnCiAgICBjbGFzcyAgICAgID0gYmFzZSBw ZXJpcGhlcmFsCm5vbmU0N0BwY2kwOjI1NToxMzo2OgljbGFzcz0weDA4ODAwMCBjYXJkPTB4M2Nl ODE0NTggY2hpcD0weDNjZjU4MDg2IHJldj0weDA3IGhkcj0weDAwCiAgICB2ZW5kb3IgICAgID0g J0ludGVsIENvcnBvcmF0aW9uJwogICAgZGV2aWNlICAgICA9ICdYZW9uIEU1L0NvcmUgaTcgSW50 ZWdyYXRlZCBNZW1vcnkgQ29udHJvbGxlciBTeXN0ZW0gQWRkcmVzcyBEZWNvZGVyIDEnCiAgICBj bGFzcyAgICAgID0gYmFzZSBwZXJpcGhlcmFsCm5vbmU0OEBwY2kwOjI1NToxNDowOgljbGFzcz0w eDA4ODAwMCBjYXJkPTB4M2NhMDE0NTggY2hpcD0weDNjYTA4MDg2IHJldj0weDA3IGhkcj0weDAw CiAgICB2ZW5kb3IgICAgID0gJ0ludGVsIENvcnBvcmF0aW9uJwogICAgZGV2aWNlICAgICA9ICdY ZW9uIEU1L0NvcmUgaTcgUHJvY2Vzc29yIEhvbWUgQWdlbnQnCiAgICBjbGFzcyAgICAgID0gYmFz ZSBwZXJpcGhlcmFsCm5vbmU0OUBwY2kwOjI1NToxNDoxOgljbGFzcz0weDExMDEwMCBjYXJkPTB4 M2M0NjE0NTggY2hpcD0weDNjNDY4MDg2IHJldj0weDA3IGhkcj0weDAwCiAgICB2ZW5kb3IgICAg ID0gJ0ludGVsIENvcnBvcmF0aW9uJwogICAgZGV2aWNlICAgICA9ICdYZW9uIEU1L0NvcmUgaTcg UHJvY2Vzc29yIEhvbWUgQWdlbnQgUGVyZm9ybWFuY2UgTW9uaXRvcmluZycKICAgIGNsYXNzICAg ICAgPSBkYXNwCm5vbmU1MEBwY2kwOjI1NToxNTowOgljbGFzcz0weDA4ODAwMCBjYXJkPTB4M2Nh ODE0NTggY2hpcD0weDNjYTg4MDg2IHJldj0weDA3IGhkcj0weDAwCiAgICB2ZW5kb3IgICAgID0g J0ludGVsIENvcnBvcmF0aW9uJwogICAgZGV2aWNlICAgICA9ICdYZW9uIEU1L0NvcmUgaTcgSW50 ZWdyYXRlZCBNZW1vcnkgQ29udHJvbGxlciBSZWdpc3RlcnMnCiAgICBjbGFzcyAgICAgID0gYmFz ZSBwZXJpcGhlcmFsCiAgICBjYXAgMTBbNDBdID0gUENJLUV4cHJlc3MgMSByb290IGVuZHBvaW50 IG1heCBkYXRhIDEyOCgxMjgpIGxpbmsgeDAoeDApCm5vbmU1MUBwY2kwOjI1NToxNToxOgljbGFz cz0weDA4ODAwMCBjYXJkPTB4M2M3MTE0NTggY2hpcD0weDNjNzE4MDg2IHJldj0weDA3IGhkcj0w eDAwCiAgICB2ZW5kb3IgICAgID0gJ0ludGVsIENvcnBvcmF0aW9uJwogICAgZGV2aWNlICAgICA9 ICdYZW9uIEU1L0NvcmUgaTcgSW50ZWdyYXRlZCBNZW1vcnkgQ29udHJvbGxlciBSQVMgUmVnaXN0 ZXJzJwogICAgY2xhc3MgICAgICA9IGJhc2UgcGVyaXBoZXJhbAogICAgY2FwIDEwWzQwXSA9IFBD SS1FeHByZXNzIDEgcm9vdCBlbmRwb2ludCBtYXggZGF0YSAxMjgoMTI4KSBsaW5rIHgwKHgwKQpu b25lNTJAcGNpMDoyNTU6MTU6MjoJY2xhc3M9MHgwODgwMDAgY2FyZD0weDNjYWExNDU4IGNoaXA9 MHgzY2FhODA4NiByZXY9MHgwNyBoZHI9MHgwMAogICAgdmVuZG9yICAgICA9ICdJbnRlbCBDb3Jw b3JhdGlvbicKICAgIGRldmljZSAgICAgPSAnWGVvbiBFNS9Db3JlIGk3IEludGVncmF0ZWQgTWVt b3J5IENvbnRyb2xsZXIgVGFyZ2V0IEFkZHJlc3MgRGVjb2RlciAwJwogICAgY2xhc3MgICAgICA9 IGJhc2UgcGVyaXBoZXJhbAogICAgY2FwIDEwWzQwXSA9IFBDSS1FeHByZXNzIDEgcm9vdCBlbmRw b2ludCBtYXggZGF0YSAxMjgoMTI4KSBsaW5rIHgwKHgwKQpub25lNTNAcGNpMDoyNTU6MTU6MzoJ Y2xhc3M9MHgwODgwMDAgY2FyZD0weDNjYWIxNDU4IGNoaXA9MHgzY2FiODA4NiByZXY9MHgwNyBo ZHI9MHgwMAogICAgdmVuZG9yICAgICA9ICdJbnRlbCBDb3Jwb3JhdGlvbicKICAgIGRldmljZSAg ICAgPSAnWGVvbiBFNS9Db3JlIGk3IEludGVncmF0ZWQgTWVtb3J5IENvbnRyb2xsZXIgVGFyZ2V0 IEFkZHJlc3MgRGVjb2RlciAxJwogICAgY2xhc3MgICAgICA9IGJhc2UgcGVyaXBoZXJhbAogICAg Y2FwIDEwWzQwXSA9IFBDSS1FeHByZXNzIDEgcm9vdCBlbmRwb2ludCBtYXggZGF0YSAxMjgoMTI4 KSBsaW5rIHgwKHgwKQpub25lNTRAcGNpMDoyNTU6MTU6NDoJY2xhc3M9MHgwODgwMDAgY2FyZD0w eDNjYWMxNDU4IGNoaXA9MHgzY2FjODA4NiByZXY9MHgwNyBoZHI9MHgwMAogICAgdmVuZG9yICAg ICA9ICdJbnRlbCBDb3Jwb3JhdGlvbicKICAgIGRldmljZSAgICAgPSAnWGVvbiBFNS9Db3JlIGk3 IEludGVncmF0ZWQgTWVtb3J5IENvbnRyb2xsZXIgVGFyZ2V0IEFkZHJlc3MgRGVjb2RlciAyJwog ICAgY2xhc3MgICAgICA9IGJhc2UgcGVyaXBoZXJhbAogICAgY2FwIDEwWzQwXSA9IFBDSS1FeHBy ZXNzIDEgcm9vdCBlbmRwb2ludCBtYXggZGF0YSAxMjgoMTI4KSBsaW5rIHgwKHgwKQpub25lNTVA cGNpMDoyNTU6MTU6NToJY2xhc3M9MHgwODgwMDAgY2FyZD0weDNjYWQxNDU4IGNoaXA9MHgzY2Fk ODA4NiByZXY9MHgwNyBoZHI9MHgwMAogICAgdmVuZG9yICAgICA9ICdJbnRlbCBDb3Jwb3JhdGlv bicKICAgIGRldmljZSAgICAgPSAnWGVvbiBFNS9Db3JlIGk3IEludGVncmF0ZWQgTWVtb3J5IENv bnRyb2xsZXIgVGFyZ2V0IEFkZHJlc3MgRGVjb2RlciAzJwogICAgY2xhc3MgICAgICA9IGJhc2Ug cGVyaXBoZXJhbAogICAgY2FwIDEwWzQwXSA9IFBDSS1FeHByZXNzIDEgcm9vdCBlbmRwb2ludCBt YXggZGF0YSAxMjgoMTI4KSBsaW5rIHgwKHgwKQpub25lNTZAcGNpMDoyNTU6MTU6NjoJY2xhc3M9 MHgwODgwMDAgY2FyZD0weDNjYWUxNDU4IGNoaXA9MHgzY2FlODA4NiByZXY9MHgwNyBoZHI9MHgw MAogICAgdmVuZG9yICAgICA9ICdJbnRlbCBDb3Jwb3JhdGlvbicKICAgIGRldmljZSAgICAgPSAn WGVvbiBFNS9Db3JlIGk3IEludGVncmF0ZWQgTWVtb3J5IENvbnRyb2xsZXIgVGFyZ2V0IEFkZHJl c3MgRGVjb2RlciA0JwogICAgY2xhc3MgICAgICA9IGJhc2UgcGVyaXBoZXJhbApub25lNTdAcGNp MDoyNTU6MTY6MDoJY2xhc3M9MHgwODgwMDAgY2FyZD0weDNjYjAxNDU4IGNoaXA9MHgzY2IwODA4 NiByZXY9MHgwNyBoZHI9MHgwMAogICAgdmVuZG9yICAgICA9ICdJbnRlbCBDb3Jwb3JhdGlvbicK ICAgIGRldmljZSAgICAgPSAnWGVvbiBFNS9Db3JlIGk3IEludGVncmF0ZWQgTWVtb3J5IENvbnRy b2xsZXIgQ2hhbm5lbCAwLTMgVGhlcm1hbCBDb250cm9sIDAnCiAgICBjbGFzcyAgICAgID0gYmFz ZSBwZXJpcGhlcmFsCiAgICBjYXAgMTBbNDBdID0gUENJLUV4cHJlc3MgMSByb290IGVuZHBvaW50 IG1heCBkYXRhIDEyOCgxMjgpIGxpbmsgeDAoeDApCm5vbmU1OEBwY2kwOjI1NToxNjoxOgljbGFz cz0weDA4ODAwMCBjYXJkPTB4M2NiMTE0NTggY2hpcD0weDNjYjE4MDg2IHJldj0weDA3IGhkcj0w eDAwCiAgICB2ZW5kb3IgICAgID0gJ0ludGVsIENvcnBvcmF0aW9uJwogICAgZGV2aWNlICAgICA9 ICdYZW9uIEU1L0NvcmUgaTcgSW50ZWdyYXRlZCBNZW1vcnkgQ29udHJvbGxlciBDaGFubmVsIDAt MyBUaGVybWFsIENvbnRyb2wgMScKICAgIGNsYXNzICAgICAgPSBiYXNlIHBlcmlwaGVyYWwKICAg IGNhcCAxMFs0MF0gPSBQQ0ktRXhwcmVzcyAxIHJvb3QgZW5kcG9pbnQgbWF4IGRhdGEgMTI4KDEy OCkgbGluayB4MCh4MCkKbm9uZTU5QHBjaTA6MjU1OjE2OjI6CWNsYXNzPTB4MDg4MDAwIGNhcmQ9 MHgzY2IyMTQ1OCBjaGlwPTB4M2NiMjgwODYgcmV2PTB4MDcgaGRyPTB4MDAKICAgIHZlbmRvciAg ICAgPSAnSW50ZWwgQ29ycG9yYXRpb24nCiAgICBkZXZpY2UgICAgID0gJ1hlb24gRTUvQ29yZSBp NyBJbnRlZ3JhdGVkIE1lbW9yeSBDb250cm9sbGVyIEVSUk9SIFJlZ2lzdGVycyAwJwogICAgY2xh c3MgICAgICA9IGJhc2UgcGVyaXBoZXJhbAogICAgY2FwIDEwWzQwXSA9IFBDSS1FeHByZXNzIDEg cm9vdCBlbmRwb2ludCBtYXggZGF0YSAxMjgoMTI4KSBsaW5rIHgwKHgwKQpub25lNjBAcGNpMDoy NTU6MTY6MzoJY2xhc3M9MHgwODgwMDAgY2FyZD0weDNjYjMxNDU4IGNoaXA9MHgzY2IzODA4NiBy ZXY9MHgwNyBoZHI9MHgwMAogICAgdmVuZG9yICAgICA9ICdJbnRlbCBDb3Jwb3JhdGlvbicKICAg IGRldmljZSAgICAgPSAnWGVvbiBFNS9Db3JlIGk3IEludGVncmF0ZWQgTWVtb3J5IENvbnRyb2xs ZXIgRVJST1IgUmVnaXN0ZXJzIDEnCiAgICBjbGFzcyAgICAgID0gYmFzZSBwZXJpcGhlcmFsCiAg ICBjYXAgMTBbNDBdID0gUENJLUV4cHJlc3MgMSByb290IGVuZHBvaW50IG1heCBkYXRhIDEyOCgx MjgpIGxpbmsgeDAoeDApCm5vbmU2MUBwY2kwOjI1NToxNjo0OgljbGFzcz0weDA4ODAwMCBjYXJk PTB4M2NiNDE0NTggY2hpcD0weDNjYjQ4MDg2IHJldj0weDA3IGhkcj0weDAwCiAgICB2ZW5kb3Ig ICAgID0gJ0ludGVsIENvcnBvcmF0aW9uJwogICAgZGV2aWNlICAgICA9ICdYZW9uIEU1L0NvcmUg aTcgSW50ZWdyYXRlZCBNZW1vcnkgQ29udHJvbGxlciBDaGFubmVsIDAtMyBUaGVybWFsIENvbnRy b2wgMicKICAgIGNsYXNzICAgICAgPSBiYXNlIHBlcmlwaGVyYWwKICAgIGNhcCAxMFs0MF0gPSBQ Q0ktRXhwcmVzcyAxIHJvb3QgZW5kcG9pbnQgbWF4IGRhdGEgMTI4KDEyOCkgbGluayB4MCh4MCkK bm9uZTYyQHBjaTA6MjU1OjE2OjU6CWNsYXNzPTB4MDg4MDAwIGNhcmQ9MHgzY2I1MTQ1OCBjaGlw PTB4M2NiNTgwODYgcmV2PTB4MDcgaGRyPTB4MDAKICAgIHZlbmRvciAgICAgPSAnSW50ZWwgQ29y cG9yYXRpb24nCiAgICBkZXZpY2UgICAgID0gJ1hlb24gRTUvQ29yZSBpNyBJbnRlZ3JhdGVkIE1l bW9yeSBDb250cm9sbGVyIENoYW5uZWwgMC0zIFRoZXJtYWwgQ29udHJvbCAzJwogICAgY2xhc3Mg ICAgICA9IGJhc2UgcGVyaXBoZXJhbAogICAgY2FwIDEwWzQwXSA9IFBDSS1FeHByZXNzIDEgcm9v dCBlbmRwb2ludCBtYXggZGF0YSAxMjgoMTI4KSBsaW5rIHgwKHgwKQpub25lNjNAcGNpMDoyNTU6 MTY6NjoJY2xhc3M9MHgwODgwMDAgY2FyZD0weDNjYjYxNDU4IGNoaXA9MHgzY2I2ODA4NiByZXY9 MHgwNyBoZHI9MHgwMAogICAgdmVuZG9yICAgICA9ICdJbnRlbCBDb3Jwb3JhdGlvbicKICAgIGRl dmljZSAgICAgPSAnWGVvbiBFNS9Db3JlIGk3IEludGVncmF0ZWQgTWVtb3J5IENvbnRyb2xsZXIg RVJST1IgUmVnaXN0ZXJzIDInCiAgICBjbGFzcyAgICAgID0gYmFzZSBwZXJpcGhlcmFsCiAgICBj YXAgMTBbNDBdID0gUENJLUV4cHJlc3MgMSByb290IGVuZHBvaW50IG1heCBkYXRhIDEyOCgxMjgp IGxpbmsgeDAoeDApCm5vbmU2NEBwY2kwOjI1NToxNjo3OgljbGFzcz0weDA4ODAwMCBjYXJkPTB4 M2NiNzE0NTggY2hpcD0weDNjYjc4MDg2IHJldj0weDA3IGhkcj0weDAwCiAgICB2ZW5kb3IgICAg ID0gJ0ludGVsIENvcnBvcmF0aW9uJwogICAgZGV2aWNlICAgICA9ICdYZW9uIEU1L0NvcmUgaTcg SW50ZWdyYXRlZCBNZW1vcnkgQ29udHJvbGxlciBFUlJPUiBSZWdpc3RlcnMgMycKICAgIGNsYXNz ICAgICAgPSBiYXNlIHBlcmlwaGVyYWwKICAgIGNhcCAxMFs0MF0gPSBQQ0ktRXhwcmVzcyAxIHJv b3QgZW5kcG9pbnQgbWF4IGRhdGEgMTI4KDEyOCkgbGluayB4MCh4MCkKbm9uZTY1QHBjaTA6MjU1 OjE3OjA6CWNsYXNzPTB4MDg4MDAwIGNhcmQ9MHgzY2I4MTQ1OCBjaGlwPTB4M2NiODgwODYgcmV2 PTB4MDcgaGRyPTB4MDAKICAgIHZlbmRvciAgICAgPSAnSW50ZWwgQ29ycG9yYXRpb24nCiAgICBk ZXZpY2UgICAgID0gJ1hlb24gRTUvQ29yZSBpNyBERFJJTycKICAgIGNsYXNzICAgICAgPSBiYXNl IHBlcmlwaGVyYWwKbm9uZTY2QHBjaTA6MjU1OjE5OjA6CWNsYXNzPTB4MDg4MDAwIGNhcmQ9MHgz Y2U0MTQ1OCBjaGlwPTB4M2NlNDgwODYgcmV2PTB4MDcgaGRyPTB4MDAKICAgIHZlbmRvciAgICAg PSAnSW50ZWwgQ29ycG9yYXRpb24nCiAgICBkZXZpY2UgICAgID0gJ1hlb24gRTUvQ29yZSBpNyBS MlBDSWUnCiAgICBjbGFzcyAgICAgID0gYmFzZSBwZXJpcGhlcmFsCm5vbmU2N0BwY2kwOjI1NTox OToxOgljbGFzcz0weDExMDEwMCBjYXJkPTB4M2M0MzE0NTggY2hpcD0weDNjNDM4MDg2IHJldj0w eDA3IGhkcj0weDAwCiAgICB2ZW5kb3IgICAgID0gJ0ludGVsIENvcnBvcmF0aW9uJwogICAgZGV2 aWNlICAgICA9ICdYZW9uIEU1L0NvcmUgaTcgUmluZyB0byBQQ0kgRXhwcmVzcyBQZXJmb3JtYW5j ZSBNb25pdG9yJwogICAgY2xhc3MgICAgICA9IGRhc3AKbm9uZTY4QHBjaTA6MjU1OjE5OjQ6CWNs YXNzPTB4MTEwMTAwIGNhcmQ9MHgzY2U2MTQ1OCBjaGlwPTB4M2NlNjgwODYgcmV2PTB4MDcgaGRy PTB4MDAKICAgIHZlbmRvciAgICAgPSAnSW50ZWwgQ29ycG9yYXRpb24nCiAgICBkZXZpY2UgICAg ID0gJ1hlb24gRTUvQ29yZSBpNyBRdWlja1BhdGggSW50ZXJjb25uZWN0IEFnZW50IFJpbmcgUmVn aXN0ZXJzJwogICAgY2xhc3MgICAgICA9IGRhc3AKbm9uZTY5QHBjaTA6MjU1OjE5OjU6CWNsYXNz PTB4MTEwMTAwIGNhcmQ9MHgzYzQ0MTQ1OCBjaGlwPTB4M2M0NDgwODYgcmV2PTB4MDcgaGRyPTB4 MDAKICAgIHZlbmRvciAgICAgPSAnSW50ZWwgQ29ycG9yYXRpb24nCiAgICBkZXZpY2UgICAgID0g J1hlb24gRTUvQ29yZSBpNyBSaW5nIHRvIFF1aWNrUGF0aCBJbnRlcmNvbm5lY3QgTGluayAwIFBl cmZvcm1hbmNlIE1vbml0b3InCiAgICBjbGFzcyAgICAgID0gZGFzcApub25lNzBAcGNpMDoyNTU6 MTk6NjoJY2xhc3M9MHgwODgwMDAgY2FyZD0weDNjNDUxNDU4IGNoaXA9MHgzYzQ1ODA4NiByZXY9 MHgwNyBoZHI9MHgwMAogICAgdmVuZG9yICAgICA9ICdJbnRlbCBDb3Jwb3JhdGlvbicKICAgIGRl dmljZSAgICAgPSAnWGVvbiBFNS9Db3JlIGk3IFJpbmcgdG8gUXVpY2tQYXRoIEludGVyY29ubmVj dCBMaW5rIDEgUGVyZm9ybWFuY2UgTW9uaXRvcicKICAgIGNsYXNzICAgICAgPSBiYXNlIHBlcmlw aGVyYWwK --e89a8f2356bdd4e41304ed1635fa--