Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 9 Dec 2013 10:59:14 +0200
From:      Markiyan Kushnir <markiyan.kushnir@gmail.com>
To:        Marc UBM <ubm.freebsd@googlemail.com>
Cc:        current@freebsd.org
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
Message-ID:  <CACvtUJdbxvZrJw1FzwpmzfAfVV9NCdqOg2esrs=b=1mUCvLO0A@mail.gmail.com>
In-Reply-To: <20131208163610.86e9e1ccc892aaf255d4cfb2@gmail.com>
References:  <201312052238.rB5McsVN020719@svn.freebsd.org> <20131208163610.86e9e1ccc892aaf255d4cfb2@gmail.com>

next in thread | previous in thread | raw e-mail | index | archive | help
--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 <ubm.freebsd@googlemail.com>:
> 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 <dev/drm2/drm_fb_helper.h>
>>  #include <dev/drm2/drm_crtc_helper.h>
>>
>> +#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 <sys/cdefs.h>
>>  __FBSDID("$FreeBSD$");
>>
>> +#include <sys/fbio.h>
>> +
>>  #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 <dev/drm2/drm_pciids.h>
>>  #include <dev/drm2/i915/intel_drv.h>
>>
>> +#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 <dev/drm2/drm_pciids.h>
>>
>> +#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 <sys/cdefs.h>
>>  __FBSDID("$FreeBSD$");
>>
>> +#include <machine/_inttypes.h>
>> +
>>  #include <dev/drm2/drmP.h>
>>  #include <dev/drm2/drm_crtc.h>
>>  #include <dev/drm2/drm_crtc_helper.h>
>> @@ -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 <sys/bus.h>
>> +#include <sys/fbio.h>
>> +
>> +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 <sys/cdefs.h>
>> +__FBSDID("$FreeBSD$");
>> +
>> +#include <sys/param.h>
>> +#include <sys/systm.h>
>> +#include <sys/bus.h>
>> +#include <sys/conf.h>
>> +#include <sys/kernel.h>
>> +#include <sys/malloc.h>
>> +#include <sys/module.h>
>> +#include <sys/queue.h>
>> +#include <sys/fbio.h>
>> +
>> +#include <machine/bus.h>
>> +
>> +#include <dev/vt/vt.h>
>> +#include <dev/vt/hw/fb/vt_fb.h>
>> +
>> +#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 <eternal.ubm@gmail.com>
> _______________________________________________
> 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--



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CACvtUJdbxvZrJw1FzwpmzfAfVV9NCdqOg2esrs=b=1mUCvLO0A>